Commit 96cd69141ebe3200ced685558907cec0cf87f310

Authored by Georg Hopp
1 parent 1884143d

added some documentation

Too many changes to show.

To preserve performance only 22 of 22+ files are displayed.

  1 +/* Messages used by the Terminal and TerminalManager classes. */
  2 +
  3 +
  4 +
  5 +#ifndef MSG_H
  6 +
  7 +#define MSG_H
  8 +
  9 +
  10 +
  11 +enum MsgType
  12 +
  13 +{
  14 +
  15 + CREATE_TERMINAL,
  16 +
  17 + DELETE_TERMINAL,
  18 +
  19 + RUN_DIAGNOSTICS,
  20 +
  21 + PERFORM_SWITCHOVER
  22 +
  23 +};
  24 +
  25 +
  26 +
  27 +typedef struct
  28 +
  29 +{
  30 +
  31 + /*...*/
  32 +
  33 + int msgType;
  34 +
  35 + int terminalType;
  36 +
  37 + int terminalId;
  38 +
  39 + int otherTerminalId;
  40 +
  41 + int terminalStatus;
  42 +
  43 +} Msg;
  44 +
  45 +
  46 +
  47 +/* Message used to create a terminal. */
  48 +
  49 +typedef struct
  50 +
  51 +{
  52 +
  53 + Msg header;
  54 +
  55 +}TerminalCreateMsg;
  56 +
  57 +
  58 +
  59 +/* Acknowledgement to Terminal Create message. */
  60 +
  61 +typedef struct
  62 +
  63 +{
  64 +
  65 + Msg header;
  66 +
  67 +} TerminalCreateAck;
  68 +
  69 +
  70 +
  71 +/* Terminal Delete message */
  72 +
  73 +typedef struct
  74 +
  75 +{
  76 +
  77 + Msg header;
  78 +
  79 +} TerminalDeleteMsg;
  80 +
  81 +
  82 +
  83 +
  84 +
  85 +typedef struct
  86 +
  87 +{
  88 +
  89 + Msg header;
  90 +
  91 +} RunDiagnosticsMsg;
  92 +
  93 +#endif
  1 +// Messages used by the Terminal and TerminalManager classes.
  2 +
  3 +
  4 +
  5 +enum MsgType
  6 +
  7 +{
  8 +
  9 + CREATE_TERMINAL,
  10 +
  11 + DELETE_TERMINAL,
  12 +
  13 + RUN_DIAGNOSTICS,
  14 +
  15 + PERFORM_SWITCHOVER
  16 +
  17 +};
  18 +
  19 +
  20 +
  21 +
  22 +
  23 +class Msg
  24 +
  25 +{
  26 +
  27 + //...
  28 +
  29 + int msgType;
  30 +
  31 + int terminalType;
  32 +
  33 + int terminalId;
  34 +
  35 + int otherTerminalId;
  36 +
  37 + int terminalStatus;
  38 +
  39 +
  40 +
  41 +public:
  42 +
  43 + MsgType GetType() const;
  44 +
  45 + int GetTerminalId() const;
  46 +
  47 + int GetOtherTerminalId() const;
  48 +
  49 + int GetTerminalType() const;
  50 +
  51 +};
  52 +
  53 +
  54 +
  55 +// Message used to create a terminal
  56 +
  57 +class TerminalCreateMsg : public Msg
  58 +
  59 +{
  60 +
  61 +public:
  62 +
  63 + int GetTerminalStatus() const;
  64 +
  65 +};
  66 +
  67 +
  68 +
  69 +// Acknowledgement to Terminal Create message.
  70 +
  71 +class TerminalCreateAck : public Msg
  72 +
  73 +{
  74 +
  75 +public:
  76 +
  77 + TerminalCreateAck(int terminalId, int terminalStatus);
  78 +
  79 +};
  80 +
  81 +
  82 +
  83 +// Terminal Delete message
  84 +
  85 +class TerminalDeleteMsg : public Msg
  86 +
  87 +{
  88 +
  89 +};
  1 +/* Terminal struct source file. */
  2 +
  3 +
  4 +
  5 +#include "Terminal.h"
  6 +
  7 +#include "Msg.h"
  8 +
  9 +#include <stdlib.h>
  10 +
  11 +
  12 +
  13 +/*
  14 +
  15 +Terminal_SendMessage is not visible to outside the Terminal.c file.
  16 +
  17 +This is equivalent to a private method in C++.
  18 +
  19 +*/
  20 +
  21 +
  22 +
  23 +static void Terminal_SendMessage(Terminal *pTerm, Msg *pMsg)
  24 +
  25 +{
  26 +
  27 + /*...*/
  28 +
  29 +}
  30 +
  31 +
  32 +
  33 +void Terminal_Construct(Terminal *pTerm)
  34 +
  35 +{
  36 +
  37 + pTerm->terminalId = UNKNOWN;
  38 +
  39 + pTerm->terminalType = UNKNOWN;
  40 +
  41 + pTerm->terminalStatus = UNKNOWN;
  42 +
  43 +}
  44 +
  45 +
  46 +
  47 +void Terminal_Destroy(Terminal *pTerm)
  48 +
  49 +{
  50 +
  51 + /*...*/
  52 +
  53 +}
  54 +
  55 +
  56 +
  57 +int Terminal_HandleRunDiagnostics(Terminal *pTerm, const RunDiagnosticsMsg *pMsg)
  58 +
  59 +{
  60 +
  61 + int status = 1;
  62 +
  63 + /*...*/
  64 +
  65 + return status;
  66 +
  67 +}
  68 +
  69 +
  70 +
  71 +int Terminal_HandleOutOfService(Terminal *pTerm)
  72 +
  73 +{
  74 +
  75 + int status = 1;
  76 +
  77 + pTerm->terminalStatus = OUT_OF_SERVICE;
  78 +
  79 + /*...*/
  80 +
  81 + return status;
  82 +
  83 +}
  84 +
  85 +
  86 +
  87 +int Terminal_HandleInService(Terminal *pTerm)
  88 +
  89 +{
  90 +
  91 + int status = 1;
  92 +
  93 + pTerm->terminalStatus = INSERVICE;
  94 +
  95 + /*...*/
  96 +
  97 + return status;
  98 +
  99 +}
  100 +
  101 +
  102 +
  103 +void Terminal_Activate(Terminal *pTerm, const TerminalCreateMsg *pMsg)
  104 +
  105 +{
  106 +
  107 + TerminalCreateAck *pAck;
  108 +
  109 + pTerm->terminalId = pMsg->header.terminalId;
  110 +
  111 + pTerm->terminalType = pMsg->header.terminalType;
  112 +
  113 + pTerm->terminalStatus = pMsg->header.terminalStatus;
  114 +
  115 + /*...*/
  116 +
  117 +
  118 +
  119 + pAck = (TerminalCreateAck *)malloc(sizeof(TerminalCreateAck));
  120 +
  121 + pAck->header.terminalId = pTerm->terminalId;
  122 +
  123 + pAck->header.terminalStatus = pTerm->terminalStatus;
  124 +
  125 +
  126 +
  127 + Terminal_SendMessage(pTerm, (Msg *)pAck);
  128 +
  129 +}
  130 +
  131 +
  132 +
  133 +void Terminal_Deactivate(Terminal *pTerm, const TerminalDeleteMsg *pMsg)
  134 +
  135 +{
  136 +
  137 + /*...*/
  138 +
  139 + pTerm->terminalId = UNKNOWN;
  140 +
  141 + pTerm->terminalType = UNKNOWN;
  142 +
  143 + pTerm->terminalStatus = UNKNOWN;
  144 +
  145 + /*...*/
  146 +
  147 +}
  1 +// Terminal class source file.
  2 +
  3 +
  4 +
  5 +#include "Terminal.hpp"
  6 +
  7 +#include "Msg.hpp"
  8 +
  9 +void Terminal::SendMessage(Msg *pMsg)
  10 +
  11 +{
  12 +
  13 + //...
  14 +
  15 +}
  16 +
  17 +
  18 +
  19 +Terminal::Terminal()
  20 +
  21 +{
  22 +
  23 + terminalId = UNKNOWN;
  24 +
  25 + terminalType = UNKNOWN;
  26 +
  27 + terminalStatus = UNKNOWN;
  28 +
  29 +}
  30 +
  31 +
  32 +
  33 +Terminal::~Terminal()
  34 +
  35 +{
  36 +
  37 + //...
  38 +
  39 +}
  40 +
  41 +
  42 +
  43 +int Terminal::HandleRunDiagnostics(const RunDiagnosticsMsg *pMsg)
  44 +
  45 +{
  46 +
  47 + int status = 1;
  48 +
  49 + //...
  50 +
  51 + return status;
  52 +
  53 +}
  54 +
  55 +
  56 +
  57 +int Terminal::HandleOutOfService()
  58 +
  59 +{
  60 +
  61 + int status = 1;
  62 +
  63 + terminalStatus = OUT_OF_SERVICE;
  64 +
  65 + //...
  66 +
  67 + return status;
  68 +
  69 +}
  70 +
  71 +
  72 +
  73 +int Terminal::HandleInService()
  74 +
  75 +{
  76 +
  77 + int status = 1;
  78 +
  79 + terminalStatus = INSERVICE;
  80 +
  81 + //...
  82 +
  83 + return status;
  84 +
  85 +}
  86 +
  87 +
  88 +
  89 +void Terminal::Activate(const TerminalCreateMsg *pMsg)
  90 +
  91 +{
  92 +
  93 + terminalId = pMsg->GetTerminalId();
  94 +
  95 + terminalType = pMsg->GetTerminalType();
  96 +
  97 + terminalStatus = pMsg->GetTerminalStatus();
  98 +
  99 + //...
  100 +
  101 +
  102 +
  103 + TerminalCreateAck *pAck = new TerminalCreateAck(terminalId, terminalStatus);
  104 +
  105 + SendMessage(pAck);
  106 +
  107 +}
  108 +
  109 +
  110 +
  111 +void Terminal::Deactivate(const TerminalDeleteMsg *pMsg)
  112 +
  113 +{
  114 +
  115 + //...
  116 +
  117 + terminalId = UNKNOWN;
  118 +
  119 + terminalType = UNKNOWN;
  120 +
  121 + terminalStatus = UNKNOWN;
  122 +
  123 + //...
  124 +
  125 +}
  1 +/* Terminal struct header file. */
  2 +
  3 +
  4 +
  5 +#include "Msg.h"
  6 +
  7 +
  8 +
  9 +#define UNKNOWN 0
  10 +
  11 +#define OUT_OF_SERVICE 1
  12 +
  13 +#define INSERVICE 2
  14 +
  15 +
  16 +
  17 +/* Terminal struct */
  18 +
  19 +typedef struct
  20 +
  21 +{
  22 +
  23 + /*...*/
  24 +
  25 + int terminalId;
  26 +
  27 + int terminalType;
  28 +
  29 + int terminalStatus;
  30 +
  31 +} Terminal;
  32 +
  33 +
  34 +
  35 +/*
  36 +
  37 +Prototypes for Terminal structure related functions. Helper
  38 +
  39 +functions needed by these functions are marked static are not
  40 +
  41 +included here.
  42 +
  43 +*/
  44 +
  45 +
  46 +
  47 +void Terminal_Activate(Terminal *pTerm, const TerminalCreateMsg *pMsg);
  48 +
  49 +void Terminal_Deactivate(Terminal *pTerm, const TerminalDeleteMsg *pMsg);
  50 +
  51 +int Terminal_HandleRunDiagnostics(Terminal *pTerm, const RunDiagnosticsMsg *pMsg);
  52 +
  53 +int Terminal_HandleOutOfService(Terminal *pTerm);
  54 +
  55 +int Terminal_HandleInService(Terminal *pTerm);
  56 +
  57 +void Terminal_Construct(Terminal *pTerm);
  58 +
  59 +void Terminal_Destroy(Terminal *pTerm);
  1 +// Terminal class header file.
  2 +
  3 +
  4 +
  5 +// Forward declaration for messages
  6 +
  7 +class TerminalCreateMsg;
  8 +
  9 +class TerminalDeleteMsg;
  10 +
  11 +class RunDiagnosticsMsg;
  12 +
  13 +class Msg;
  14 +
  15 +
  16 +
  17 +// Terminal class
  18 +
  19 +class Terminal
  20 +
  21 +{
  22 +
  23 + enum { UNKNOWN = 0 };
  24 +
  25 + enum {OUT_OF_SERVICE=1, INSERVICE=2};
  26 +
  27 + //...
  28 +
  29 + int terminalId;
  30 +
  31 + int terminalType;
  32 +
  33 + int terminalStatus;
  34 +
  35 + void SendMessage(Msg *pMsg);
  36 +
  37 +
  38 +
  39 +public:
  40 +
  41 + void Activate(const TerminalCreateMsg *pMsg);
  42 +
  43 + void Deactivate(const TerminalDeleteMsg *pMsg);
  44 +
  45 + int HandleRunDiagnostics(const RunDiagnosticsMsg *pMsg);
  46 +
  47 + int HandleOutOfService();
  48 +
  49 + int HandleInService();
  50 +
  51 + Terminal();
  52 +
  53 + ~Terminal();
  54 +
  55 +};
  1 +/*
  2 +
  3 +TerminalManager source file. We will be using this class
  4 +
  5 +as an example for Object Oriented Programming in C.
  6 +
  7 +*/
  8 +
  9 +
  10 +
  11 +#include <stdio.h>
  12 +
  13 +#include "TerminalManager.h"
  14 +
  15 +#include "Msg.h"
  16 +
  17 +#include <stdlib.h>
  18 +
  19 +
  20 +
  21 +Terminal *TerminalManager_FindTerminal(TerminalManager *pMgr, int terminalId)
  22 +
  23 +{
  24 +
  25 + if (terminalId < MAX_TERMINALS)
  26 +
  27 + {
  28 +
  29 + return (&(pMgr->terminals[terminalId]));
  30 +
  31 + }
  32 +
  33 + else
  34 +
  35 + {
  36 +
  37 + return NULL;
  38 +
  39 + }
  40 +
  41 +}
  42 +
  43 +
  44 +
  45 +void TerminalManager_Construct(TerminalManager *pMgr)
  46 +
  47 +{
  48 +
  49 + int i;
  50 +
  51 + /*
  52 +
  53 + C will not call construction functions, so loop through all call the
  54 +
  55 + construction functions for all terminals.
  56 +
  57 + */
  58 +
  59 + for (i=0; i < MAX_TERMINALS; i++)
  60 +
  61 + {
  62 +
  63 + Terminal_Construct(&(pMgr->terminals[i]));
  64 +
  65 + }
  66 +
  67 +}
  68 +
  69 +
  70 +
  71 +void TerminalManager_Destroy(TerminalManager *pMgr)
  72 +
  73 +{
  74 +
  75 + int i;
  76 +
  77 + /*
  78 +
  79 + C will not call destruction functions, so loop through all call the
  80 +
  81 + destruction functions for all terminals.
  82 +
  83 + */
  84 +
  85 + for (i=0; i < MAX_TERMINALS; i++)
  86 +
  87 + {
  88 +
  89 + Terminal_Destroy(&(pMgr->terminals[i]));
  90 +
  91 + }
  92 +
  93 +}
  94 +
  95 +
  96 +
  97 +void TerminalManager_HandleMessage(TerminalManager *pMgr, Msg* pMsg)
  98 +
  99 +{
  100 +
  101 + int status, status1;
  102 +
  103 +
  104 +
  105 + int terminalId = pMsg->terminalId;
  106 +
  107 +
  108 +
  109 + Terminal *pTerm = TerminalManager_FindTerminal(pMgr, terminalId);
  110 +
  111 + Terminal *pOtherTerm = NULL;
  112 +
  113 +
  114 +
  115 + /*
  116 +
  117 + Switch on the message type and invoke the Terminal's message handlers for
  118 +
  119 + the terminal specified in the message. Here the terminal manager takes
  120 +
  121 + care of indexing into the terminal structure and it passes the pointer
  122 +
  123 + to the terminal handler functions. Due to this design, implementation
  124 +
  125 + of the terminal handler functions just focus on handling the specified
  126 +
  127 + terminal.
  128 +
  129 + */
  130 +
  131 + if (pTerm != NULL)
  132 +
  133 + {
  134 +
  135 + switch (pMsg->msgType)
  136 +
  137 + {
  138 +
  139 + case CREATE_TERMINAL:
  140 +
  141 + Terminal_Activate(pTerm, (const TerminalCreateMsg *)pMsg);
  142 +
  143 + break;
  144 +
  145 + case DELETE_TERMINAL:
  146 +
  147 + Terminal_Deactivate(pTerm, (const TerminalDeleteMsg *) pMsg);
  148 +
  149 + break;
  150 +
  151 + case RUN_DIAGNOSTICS:
  152 +
  153 + status = Terminal_HandleRunDiagnostics(pTerm, (const RunDiagnosticsMsg *) pMsg);
  154 +
  155 + break;
  156 +
  157 + case PERFORM_SWITCHOVER:
  158 +
  159 + pOtherTerm = TerminalManager_FindTerminal(pMgr, pMsg->otherTerminalId);
  160 +
  161 + status = Terminal_HandleOutOfService(pTerm);
  162 +
  163 + status1 = Terminal_HandleInService(pOtherTerm);
  164 +
  165 + break;
  166 +
  167 + }
  168 +
  169 + }
  170 +
  171 + free(pMsg);
  172 +
  173 +}
  1 +// TerminalManager source file. We will be using this class
  2 +
  3 +// as an example for Object Oriented Programming in C.
  4 +
  5 +
  6 +
  7 +#include <stdio.h>
  8 +
  9 +#include "TerminalManager.hpp"
  10 +
  11 +#include "Msg.hpp"
  12 +
  13 +
  14 +
  15 +TerminalManager::TerminalManager()
  16 +
  17 +
  18 +
  19 +{
  20 +
  21 + //...
  22 +
  23 +}
  24 +
  25 +
  26 +
  27 +TerminalManager::~TerminalManager()
  28 +
  29 +{
  30 +
  31 +}
  32 +
  33 +
  34 +
  35 +void TerminalManager::HandleMessage(Msg* pMsg)
  36 +
  37 +{
  38 +
  39 + int status, status1;
  40 +
  41 +
  42 +
  43 + int terminalId = pMsg->GetTerminalId();
  44 +
  45 +
  46 +
  47 + Terminal *pTerm = FindTerminal(terminalId);
  48 +
  49 + Terminal *pOtherTerm = NULL;
  50 +
  51 +
  52 +
  53 + if (pTerm != NULL)
  54 +
  55 + {
  56 +
  57 + switch (pMsg->GetType())
  58 +
  59 + {
  60 +
  61 + case CREATE_TERMINAL:
  62 +
  63 + pTerm->Activate((const TerminalCreateMsg *)pMsg);
  64 +
  65 + break;
  66 +
  67 + case DELETE_TERMINAL:
  68 +
  69 + pTerm->Deactivate((const TerminalDeleteMsg *) pMsg);
  70 +
  71 + break;
  72 +
  73 + case RUN_DIAGNOSTICS:
  74 +
  75 + status = pTerm->HandleRunDiagnostics((const RunDiagnosticsMsg *) pMsg);
  76 +
  77 + break;
  78 +
  79 + case PERFORM_SWITCHOVER:
  80 +
  81 + pOtherTerm = FindTerminal(pMsg->GetOtherTerminalId());
  82 +
  83 + status = pTerm->HandleOutOfService();
  84 +
  85 + status1 = pOtherTerm->HandleInService();
  86 +
  87 + break;
  88 +
  89 + }
  90 +
  91 + }
  92 +
  93 + delete pMsg;
  94 +
  95 +}
  96 +
  97 +
  98 +
  99 +Terminal *TerminalManager::FindTerminal(int terminalId)
  100 +
  101 +{
  102 +
  103 + if (terminalId < MAX_TERMINALS)
  104 +
  105 + {
  106 +
  107 + return (&terminals[terminalId]);
  108 +
  109 + }
  110 +
  111 + else
  112 +
  113 + {
  114 +
  115 + return NULL;
  116 +
  117 + }
  118 +
  119 +}
  1 +/*
  2 +
  3 +TerminalManager header file. We will be using this class
  4 +
  5 +as an example for Object Oriented Programming in C.
  6 +
  7 +*/
  8 +
  9 +
  10 +
  11 +#include "Terminal.h"
  12 +
  13 +
  14 +
  15 +#define MAX_TERMINALS 500
  16 +
  17 +
  18 +
  19 +/* Structure contains all data used by the Terminal Manager. */
  20 +
  21 +typedef struct
  22 +
  23 +{
  24 +
  25 + Terminal terminals[MAX_TERMINALS];
  26 +
  27 +} TerminalManager;
  28 +
  29 +
  30 +
  31 +/*
  32 +
  33 +ANSI C Function prototypes of all functions that operate
  34 +
  35 +on the TerminalManager structure.
  36 +
  37 +*/
  38 +
  39 +void TerminalManager_Construct(TerminalManager *pMgr);
  40 +
  41 +void TerminalManager_Destroy(TerminalManager *pMgr);
  42 +
  43 +void TerminalManager_HandleMessage(TerminalManager *pMgr, Msg* pMsg);
  1 +// TerminalManager header file. We will be using this class
  2 +
  3 +// as an example for Object Oriented Programming in C.
  4 +
  5 +#include "Terminal.hpp"
  6 +
  7 +
  8 +
  9 +class TerminalManager
  10 +
  11 +{
  12 +
  13 +private:
  14 +
  15 + enum {MAX_TERMINALS=500};
  16 +
  17 +
  18 +
  19 + Terminal terminals[MAX_TERMINALS];
  20 +
  21 +
  22 +
  23 + Terminal *FindTerminal(int terminalId);
  24 +
  25 +
  26 +
  27 +public:
  28 +
  29 + TerminalManager();
  30 +
  31 + ~TerminalManager();
  32 +
  33 + void HandleMessage(Msg* pMsg);
  34 +
  35 +};
  1 +www.w3.org/Protocols/rfc2616/rfc2616.html
  1 +<HTML>
  2 +<HEAD>
  3 + <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1252">
  4 + <META NAME="Generator" CONTENT="Microsoft Word 97">
  5 + <META NAME="Template" CONTENT="C:\Program Files\Microsoft Office\Office\Dictdoc.dot">
  6 + <TITLE>Realising the Full Potential of the Web</TITLE>
  7 +</HEAD>
  8 +<BODY BGCOLOR="white" TEXT="black">
  9 +<P>
  10 +<FONT FACE="Garamond"></FONT>
  11 +<P>
  12 +<H1 ALIGN="CENTER">
  13 + Realising the Full Potential of the Web
  14 +</H1>
  15 +<P ALIGN="CENTER">
  16 +<P ALIGN="CENTER">
  17 +Tim Berners-Lee, Director of the World-Wide Web Consortium
  18 +<P ALIGN=CENTER>
  19 +Based on a talk presented at the W3C meeting, London, 1997/12/3
  20 +<P>
  21 +&nbsp;
  22 +<H3>
  23 + Abstract
  24 +</H3>
  25 +<P>
  26 +<FONT FACE="Garamond"></FONT>
  27 +<P>
  28 +The first phase of the Web is human communication though shared knowledge.
  29 +We have a lot of work to do before we have an intuitive space in which we
  30 +can put down our thoughts and build our understanding of what we want to
  31 +do and how and why we will do it. The second side to the Web, yet to emerge,
  32 +is that of machine-understandable information. As this happens, the day-to-day
  33 +mechanisms of trade and bureaucracy will be handled by agents, leaving humans
  34 +to provide the inspiration and the intuition. This will come about though
  35 +the implementation of a series of projects addressing data formats and languages
  36 +for the Web, and digital signatures.
  37 +<P>
  38 +&nbsp;
  39 +<H3>
  40 + The original dream
  41 +</H3>
  42 +<P>
  43 +<P>
  44 +The Web was designed to be a universal space of information, so when you
  45 +make a bookmark or a hypertext link, you should be able to make that link
  46 +to absolutely any piece of information that can be accessed using networks.
  47 +The universality is essential to the Web: it looses its power if there are
  48 +certain types of things to which you can&#146;t link.
  49 +<P>
  50 +There are a lot of sides to that universality. You should be able to make
  51 +links to a hastily jotted crazy idea and to link to a beautifully produced
  52 +work of art. You should be able to link to a very personal page and to something
  53 +available to the whole planet. There will be information on the Web which
  54 +has a clearly defined meaning and can be analysed and traced by computer
  55 +programs; there will be information, such as poetry and art, which requires
  56 +the full human intellect for an understanding which will always be subjective.
  57 +<P>
  58 +And what was the purpose of all this? The first goal was to work together
  59 +better. While the use of the Web across all scales is essential to the concept,
  60 +the original driving force was collaboration at home and at work. The idea
  61 +was, that by building together a hypertext Web, a group of whatever size
  62 +would force itself to use a common vocabulary, to overcome its misunderstandings,
  63 +and at any time to have a running model - in the Web - of their plans and
  64 +reasons.
  65 +<P>
  66 +For me, the forerunner to the Web was a program called &#145;Enquire&#146;,
  67 +which I made for my own purposes. I wrote it in 1980, when I was working
  68 +at the European Particle Physics Lab (CERN), to keep track of the complex
  69 +web of relationships between people, programs, machines and ideas. In 1989,
  70 +when I proposed the Web, it was as an extension of that personal tool to
  71 +a common information space.
  72 +<P>
  73 +When we make decisions in meetings, how often are the reasons for those decisions
  74 +(which we so carefully elaborated in the meeting) then just typed up, filed
  75 +as minutes and essentially lost? How often do we pay for this, in time spent
  76 +passing on half-understandings verbally, duplicating effort through ignorance
  77 +and reversing good decisions from misunderstanding? How much lack of co-operation
  78 +can be traced to an inability to understand where another party is &#145;coming
  79 +from&#146;? The Web was designed as an instrument to prevent misunderstandings.
  80 +<P>
  81 +For this to work, it had to be not only easy to &#145;browse&#146;, but also
  82 +easy to express oneself. In a world of people and information, the people
  83 +and information should be in some kind of equilibrium. Anything in the Web
  84 +can be quickly learned by a person and any knowledge you see as being missing
  85 +from the Web can be quickly added. The Web should be a medium for the
  86 +communication between people: communication through shared knowledge. For
  87 +this to work, the computers, networks, operating systems and commands have
  88 +to become invisible, and leave us with an intuitive interface as directly
  89 +as possible to the information.
  90 +<H3>
  91 + Re-enter machines
  92 +</H3>
  93 +<P>
  94 +<FONT FACE="Garamond"></FONT>
  95 +<P>
  96 +There was a second goal for the Web, which is dependent on the first. The
  97 +second part of the dream was that, if you can imagine a project (company,
  98 +whatever) which uses the Web in its work, then there will be an map, in
  99 +cyberspace, of all the dependencies and relationships which define how the
  100 +project is going. This raises the exciting possibility of letting programs
  101 +run over this material, and help us analyze and manage what we are doing.
  102 +The computer renters the scene visibly as a software agent, doing anything
  103 +it can to help us deal with the bulk of data, to take over the tedium of
  104 +anything that can be reduced to a rational process, and to manage the scale
  105 +of our human systems.
  106 +<H3>
  107 + Where are we now?<FONT SIZE=2> </FONT>
  108 +</H3>
  109 +<P>
  110 +The Web you see as a glorified television channel today is just one part
  111 +of the plan. Although the Web was driven initially by the group work need,
  112 +it is not surprising that the most rapid growth was in public information.
  113 +Web publishing, when a few write and many read, profited most from the snowball
  114 +effect of exponentially rising numbers of readers and writers. Now, with
  115 +the invention of the term &#145;intranet&#146;, Web use is coming back into
  116 +organisations. (In fact, it never left. There have always been since 1991,
  117 +many internal servers, but as they were generally invisible from outside
  118 +the companies&#146; firewalls they didn't get much press!). However, the
  119 +intuitive editing interfaces which make authoring a natural part of daily
  120 +life are still maturing. I thought that in 12 months we would have generally
  121 +available intuitive hypertext editors. (<I>I have stuck to that and am still
  122 +saying the same thing today!)</I>
  123 +<P>
  124 +It is not just the lack of simple editors that has prevented use of the Web
  125 +as a collaborative medium. For a group of people to use the Web in practice,
  126 +they need reliable access control, so that they know their ideas will only
  127 +be seen by those they trust. They also need access control and archival tools
  128 +that, like browsing, don't require one to get into the details of computer
  129 +operating systems.
  130 +<P>
  131 +There is also a limit to what we can do by ourselves with information, without
  132 +the help of machines. A familiar complaint of the newcomer to the Web, who
  133 +has not learned to follow links only from reliable sources, is the about
  134 +the mass of junk out there. Search engines flounder in the mass of
  135 +undifferentiated documents that range vastly in terms of quality, timeliness
  136 +and relevance. We need information about information, &#145;metadata&#146;,
  137 +to help us organise it.
  138 +<P>
  139 +As it turns out, many of these long-term needs will hopefully be met by
  140 +technology, which for one reason or another is being developed by the technical
  141 +community, and agreed upon by groups such as the World-Wide Web Consortium
  142 +(W3C), in response to various medium-term demands.
  143 +<P>
  144 +&nbsp;
  145 +<P>
  146 +<B><I><FONT FACE="Arial"></FONT></I></B>
  147 +<H3>
  148 + The World Wide Web Consortium - W3C
  149 +</H3>
  150 +<P>
  151 +<FONT FACE="Garamond"></FONT>
  152 +<P>
  153 +The Consortium exists as a place for those companies for whom the Web is
  154 +essential to meet and agree on the common underpinnings that will allow everyone
  155 +to go forward. (There are currently over 230 member organisations.)
  156 +<P>
  157 +Whether developing software, hardware, networks, information for sale, or
  158 +using the Web as a crucial part of their business life, these companies are
  159 +driven by current emerging areas such as Web publishing, intranet use, electronic
  160 +commerce, and Web-based education and training. From these fields medium-term
  161 +needs arise and, where appropriate, the Consortium starts an Activity to
  162 +help reach a consensus on computer protocols for that area. Protocols are
  163 +the rules that allow computers to talk together about a given topic. When
  164 +the industry agrees on protocols, then a new application can spread across
  165 +the world, and new programs can all work together as they all speak the same
  166 +language. This is key to the development of the Web.
  167 +<P>
  168 +&nbsp;
  169 +<P>
  170 +<B><I><FONT FACE="Arial"></FONT></I></B>
  171 +<H2>
  172 + Where is the Web Going Next?
  173 +</H2>
  174 +<H3>
  175 + Avoiding the World Wide Wait
  176 +</H3>
  177 +<P>
  178 +<FONT FACE="Garamond"></FONT>
  179 +<P>
  180 +You've heard about it, you may have experienced it, but can anything be done
  181 +about it?
  182 +<P>
  183 +One reason for the slow response you may get from a dial-up Internet account
  184 +simply follows from the &#145;all you can eat&#146; pricing policy. The only
  185 +thing which keeps the number of Internet users down is unacceptable response,
  186 +so if we were to suddenly make it faster, there would almost immediately
  187 +be more users until it was slow again. I've seen it: when we speeded up an
  188 +overloaded server by a factor of five, it once again rose to 100% utilisation
  189 +as the number of users increased by a factor of five.
  190 +<P>
  191 +Eventually, there will be different ways of paying for different levels of
  192 +quality. But today there some things we can do to make better use of the
  193 +bandwidth we have, such as using compression and enabling many overlapping
  194 +asynchronous requests. There is also the ability to guess ahead and push
  195 +out what a user may want next, so that the user does not have to request
  196 +and then wait. Taken to one extreme, this becomes subscription-based
  197 +distribution, which works more like email or newsgroups.
  198 +<P>
  199 +One crazy thing is that the user has to decide whether to use mailing lists,
  200 +newsgroups, or the Web to publish something. The best choice depends on the
  201 +demand and the readership pattern. A mistake can be costly. Today, it is
  202 +not always easy for a person to anticipate the demand for a page. For example,
  203 +the pictures of the Schoemaker-Levy comet hitting Jupiter taken on a mountain
  204 +top and just put on the nearest Mac server or the decision Judge Zobel put
  205 +onto the Web - both these generated so much demand that their servers were
  206 +swamped, and in fact, these items would have been better delivered as messages
  207 +via newsgroups. It would be better if the &#145;system&#146;, the collaborating
  208 +servers and clients together, could adapt to differing demands, and use
  209 +pre-emptive or reactive retrieval as necessary.
  210 +<P>
  211 +&nbsp;
  212 +<P>
  213 +<B><I><FONT FACE="Arial"></FONT></I></B>
  214 +<H3>
  215 + Data about Data - Metadata
  216 +</H3>
  217 +<P>
  218 +<FONT FACE="Garamond"></FONT>
  219 +<P>
  220 +It is clear that there should be a common format for expressing information
  221 +about information (called metadata), for a dozen or so fields that needed
  222 +it, including privacy information, endorsement labels, library catalogues,
  223 +tools for structuring and organising Web data, distribution terms and annotation.
  224 +The Consortium's Resource Description Framework (RDF) is designed to allow
  225 +data from all these fields to be written in the same form, and therefore
  226 +carried together and mixed.
  227 +<P>
  228 +That by itself will be quite exciting. Proxy caches, which make the Web more
  229 +efficient, will be able to check that they are really acting in accordance
  230 +with the publisher's wishes when it comes to redistributing material. A browser
  231 +will be able to get an assurance, before imparting personal information in
  232 +a Web form, on how that information will be used. People will be able, if
  233 +the technology is matched by suitable tools, to endorse Web pages that they
  234 +perceive to be of value. Search engines will be able to take such endorsements
  235 +into account and give results that are perceived to be of much higher quality.
  236 +So a common format for information about information will make the Web a
  237 +whole lot better.
  238 +<P>
  239 +&nbsp;
  240 +<P>
  241 +<B><I><FONT FACE="Arial"></FONT></I></B>
  242 +<H3>
  243 + The Web of trust
  244 +</H3>
  245 +<P>
  246 +<FONT FACE="Garamond"></FONT>
  247 +<P>
  248 +In cases in which a high level of trust is needed for metadata, digitally
  249 +signed metadata will allow the Web to include a &#145;Web of trust&#146;.
  250 +The Web of trust will be a set of documents on the Web that are digitally
  251 +signed with certain keys, and contain statements about those keys and about
  252 +other documents. Like the Web itself, the Web of trust does not need to have
  253 +a specific structure like a tree or a matrix. Statements of trust can be
  254 +added exactly so as to reflect actual trust. People learn to trust through
  255 +experience and though recommendation. We change our minds about who we trust
  256 +for different purposes. The Web of trust must allow us to express this.
  257 +<P>
  258 +Hypertext was suitable for a global information system because it has this
  259 +same flexibility: the power to represent any structure of the real world
  260 +or a created imagined one. Systems that force you to express information
  261 +in trees or matrices are fine so long as they are used for describing trees
  262 +or matrices. The moment you try to use one to hold information that does
  263 +not fit the mold, you end up twisting the information to fit, and so
  264 +misrepresenting the situation. Similarly, the W3C's role in creating the
  265 +Web of trust will be to help the community have common language for expressing
  266 +trust. <I>The Consortium will not seek a central or controlling role in the
  267 +content of the Web.</I>
  268 +<P>
  269 +&nbsp;
  270 +<P>
  271 +<B><I><FONT FACE="Arial"></FONT></I></B>
  272 +<H3>
  273 + &#145;Oh, yeah?&#146;
  274 +</H3>
  275 +<P>
  276 +<FONT FACE="Garamond"></FONT>
  277 +<P>
  278 +So, signed metadata is the next step. When we have this, we will be able
  279 +to ask the computer not just for information, but why we should believe it.
  280 +Imagine an &#145;Oh, yeah?&#146; button on your browser. There you are looking
  281 +at a fantastic deal that can be yours just for the entry of a credit card
  282 +number and the click of a button. "Oh, yeah?", you think. You press the
  283 +&#145;Oh, yeah?&#146; button. You are asking your browser why you should
  284 +believe it. It, in turn, can challenge the server to provide some credentials:
  285 +perhaps, a signature for the document or a list of documents that expresses
  286 +what that key is good for. Those documents will be signed. Your browser rummages
  287 +through with the server, looking for a way to convince you that the page
  288 +is trustworthy for a purchase. Maybe it will come up with an endorsement
  289 +from a magazine, which in turn has been endorsed by a friend. Maybe it will
  290 +come up with an endorsement by the seller's bank, which has in turn an
  291 +endorsement from your bank. Maybe it won't find any reason for you to actually
  292 +believe what you are reading at all.
  293 +<P>
  294 +&nbsp;
  295 +<P>
  296 +<B><I><FONT FACE="Arial"></FONT></I></B>
  297 +<H3>
  298 + Data about things
  299 +</H3>
  300 +<P>
  301 +<FONT FACE="Garamond"></FONT>
  302 +<P>
  303 +All the information mentioned above is information about information. Perhaps
  304 +the most important aspect of it is that it is machine-understandable data,
  305 +and it may introduce a new phase of the Web in which much more data in general
  306 +can be handled by computer programs in a meaningful way. All these ideas
  307 +are just as relevant to information about the real world: about cars and
  308 +people and stocks and shares and flights and food and rivers.
  309 +<P>
  310 +The Enquire program assumed that every page was about something. When you
  311 +created a new page it made you say what sort of thing it was: a person, a
  312 +piece of machinery, a group, a program, a concept, etc. Not only that, when
  313 +you created a link between two nodes, it would prompt you to fill in the
  314 +relationship between the two things or people. For example, the relationships
  315 +were defined as &#145;A is part of B&#146; or &#145;A made B&#146;. The idea
  316 +was that if Enquire were to be used heavily, it could then automatically
  317 +trace the dependencies within an organisation.
  318 +<P>
  319 +Unfortunately this was lost as the Web grew. Although it had relationship
  320 +types in the original specifications, this has not generally become a Web
  321 +of assertions about things or people. Can we still build a Web of well-defined
  322 +information?
  323 +<P>
  324 +My initial attempts to suggest this fell on stony ground, and not surprisingly.
  325 +HTML is a language for communicating a document for human consumption. SGML
  326 +(and now XML) gives structure, but not semantics. Neither the application,
  327 +nor the language, called for it.
  328 +<P>
  329 +With metadata we have a need for a machine-understandable language that has
  330 +all the qualities we need. Technically, the same apparatus we are constructing
  331 +in the Resource Description Framework for describing the properties of documents
  332 +can be used equally well for describing anything else.
  333 +<P>
  334 +&nbsp;
  335 +<P>
  336 +<B><I><FONT FACE="Arial"></FONT></I></B>
  337 +<H3>
  338 + A crying need for RDF
  339 +</H3>
  340 +<P>
  341 +<FONT FACE="Garamond"></FONT>
  342 +<P>
  343 +Is there a real need for this metadata and is there a market in the medium
  344 +term that will lead companies to develop in this direction? Well, in the
  345 +medium term, we see the drivers already - web publishing, education and training,
  346 +electronic commerce and intranets.
  347 +<P>
  348 +I have mentioned the vicious circle that caused the Web to take off initially.
  349 +The increasing amount of information on the Web was an incentive for people
  350 +to get browsers, and the increasing number of browsers created more incentive
  351 +for people to put up more Web sites. It had to start somewhere and it was
  352 +bootstrapped by making &#145;virtual hypertext&#146; servers. These servers
  353 +typically had access to large databases - such as phone books, library catalogues
  354 +and existing documentation management systems. They had simple programs which
  355 +would generate Web pages &#145;on the fly&#146; corresponding to various
  356 +views and queries on the database. This has been a very powerful
  357 +&#145;bootstrap&#146; as there is now a healthy market for tools to allow
  358 +one to map one's data from its existing database form on to the Web.
  359 +<P>
  360 +Now here is the curious thing. There is so much data available on Web pages,
  361 +that there is a market for tools that &#145;reverse engineer&#146; that process.
  362 +These are tools that read pages, and with a bit of human advice, recreate
  363 +the database object. Even though it takes human effort to analyse the way
  364 +different Web sites are offering their data, it is worth it. It is so powerful
  365 +to have a common, well defined interface to all the data so that you can
  366 +program on top of it. So the need for well defined interface to Web data
  367 +in the short term is undeniable.
  368 +<P>
  369 +What we propose is that, when a program goes out to a server looking for
  370 +data, say a database record, that the same data should be available in RDF,
  371 +in such a way that the rows and columns are all labelled in a well-defined
  372 +way. That it may be possible to look up the equivalence between field names
  373 +at one Web site and at another, and so merge information intelligently from
  374 +many sources. This is a clear need for metadata, just from looking at the
  375 +trouble libraries have had with the numbers of very similar, but slightly
  376 +different ways of making up a catalogue card for a book.
  377 +<P>
  378 +&nbsp;
  379 +<P>
  380 +<B><I><FONT FACE="Arial"></FONT></I></B>
  381 +<H3>
  382 + Interactive Creativity
  383 +</H3>
  384 +<P>
  385 +<FONT SIZE=2></FONT>
  386 +<P>
  387 +&nbsp;
  388 +<P>
  389 +<FONT FACE="Garamond"></FONT>
  390 +<P>
  391 +I want the Web to be much more creative than it is at the moment. I have
  392 +even had to coin a new word - Intercreativity - which means building things
  393 +together on the Web. I found that people thought that the Web already was
  394 +&#145;interactive&#146;, because you get to click with a mouse and fill in
  395 +forms! I have mentioned that better intuitive interfaces will be needed,
  396 +but I don&#146;t think they will be sufficient without better security.
  397 +<P>
  398 +It would be wrong to assume that digital signature will be mainly important
  399 +for electronic commerce, as if security were only important where money is
  400 +concerned. One of my key themes is the importance of the Web being used on
  401 +all levels from the personal, through groups of all sizes, to the global
  402 +population.
  403 +<P>
  404 +When you are working in a group, you do things you would not do outside the
  405 +group, You share half-baked ideas, reveal sensitive information. You use
  406 +a vernacular that will be understood; you can cut corners in language and
  407 +formality. You do these things because you trust the people in the group,
  408 +and that others won't suddenly have access to it. To date, on the Web, it
  409 +has been difficult to manage such groups or to allow one to control access
  410 +to information in an intuitive way.
  411 +<P>
  412 +&nbsp;
  413 +<P>
  414 +<B><I><FONT FACE="Arial"></FONT></I></B>
  415 +<H3>
  416 + Letting go
  417 +</H3>
  418 +<P>
  419 +<FONT FACE="Garamond"></FONT>
  420 +<P>
  421 +So, where will this get us? The Web fills with documents, each of which has
  422 +pointers to help a computer understand it and relate it to terms it knows.
  423 +Software agents acting on our behalf can reason about this data. They can
  424 +ask for and validate proofs of the credibility of the data. They can negotiate
  425 +as to who will have what access to what and ensure that our personal wishes
  426 +for privacy level be met.
  427 +<P>
  428 +The world is a world of human beings, as it was before, but the power of
  429 +our actions is again increased. The Web already increases the power of our
  430 +writings, making them accessible to huge numbers of people and allowing us
  431 +to draw on any part of the global information base by a simple hypertext
  432 +link. Now we image the world of people with active machines forming part
  433 +of the infrastructure. We only have to express a request for bids, or make
  434 +a bid, and machines will turn a small profit matching the two. Search engines,
  435 +from looking for pages containing interesting words, will start indexes of
  436 +assertions that might be useful for answering questions or finding
  437 +justifications.
  438 +<P>
  439 +I think this will take a long time. I say this deliberately, because in the
  440 +past I have underestimated how long something will take to become available
  441 +(e.g. good editors in 12 months).
  442 +<P>
  443 +Now we will have to find how best to integrate our warm fuzzy right-brain
  444 +selves into this clearly defined left-brain world. It is easy to know who
  445 +we trust, but it might be difficult to explain that to a computer. After
  446 +seeding the semantic Web with specific applications, we must be sure to
  447 +generalise it cleanly, leaving it clean and simple so that the next generation
  448 +can learn its logical concepts along with the alphabet.
  449 +<P>
  450 +If we can make something decentralised, out of control, and of great simplicity,
  451 +we must be prepared to be astonished at whatever might grow out of that new
  452 +medium.
  453 +<H3>
  454 + It&#146;s up to us
  455 +</H3>
  456 +<P>
  457 +<FONT SIZE=2> </FONT>&nbsp;
  458 +<P>
  459 +One thing is certain. The Web will have a profound effect on the markets
  460 +and the cultures around the world: intelligent agents will either stabilise
  461 +or destabilise markets; the demise of distance will either homogenise or
  462 +polarise cultures; the ability to access the Web will be either a great divider
  463 +or a great equaliser; the path will either lead to jealousy and hatred or
  464 +peace and understanding.
  465 +<P>
  466 +The technology we are creating may influence some of these choices, but mostly
  467 +it will leave them to us. It may expose the questions in a starker form than
  468 +before and force us to state clearly where we stand.
  469 +<P>
  470 +We are forming cells within a global brain and we are excited that we might
  471 +start to think collectively. What becomes of us still hangs crucially on
  472 +how we think individually.
  473 +<P>
  474 + <HR>
  475 +<P>
  476 +</BODY></HTML>
  1 +<rdf:RDF
  2 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  3 + xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
  4 + xmlns:owl="http://www.w3.org/2002/07/owl#"
  5 + xmlns:dc="http://purl.org/dc/elements/1.1/">
  6 +
  7 + <owl:Ontology
  8 + rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  9 + <dc:title>The RDF Vocabulary (RDF)</dc:title>
  10 + <dc:description>This is the RDF Schema for the RDF vocabulary defined in the RDF namespace.</dc:description>
  11 + </owl:Ontology>
  12 +
  13 + <!-- Added by Ivan Herman, 2010-12-30, from here... -->
  14 + <rdfs:Datatype rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#PlainLiteral">
  15 + <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
  16 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/TR/rdf-plain-literal/"/>
  17 + <rdfs:label>PlainLiteral</rdfs:label>
  18 + <rdfs:comment>The class of plain (i.e. untyped) literal values.</rdfs:comment>
  19 +</rdfs:Datatype>
  20 +<!-- ... until here -->
  21 +
  22 +
  23 +<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#type">
  24 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  25 + <rdfs:label>type</rdfs:label>
  26 + <rdfs:comment>The subject is an instance of a class.</rdfs:comment>
  27 + <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Class"/>
  28 + <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  29 +</rdf:Property>
  30 +
  31 +<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Property">
  32 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  33 + <rdfs:label>Property</rdfs:label>
  34 + <rdfs:comment>The class of RDF properties.</rdfs:comment>
  35 + <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  36 +</rdfs:Class>
  37 +
  38 +<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement">
  39 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  40 + <rdfs:label>Statement</rdfs:label>
  41 + <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  42 + <rdfs:comment>The class of RDF statements.</rdfs:comment>
  43 +</rdfs:Class>
  44 +
  45 +<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#subject">
  46 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  47 + <rdfs:label>subject</rdfs:label>
  48 + <rdfs:comment>The subject of the subject RDF statement.</rdfs:comment>
  49 + <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
  50 + <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  51 +</rdf:Property>
  52 +
  53 +<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#predicate">
  54 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  55 + <rdfs:label>predicate</rdfs:label>
  56 + <rdfs:comment>The predicate of the subject RDF statement.</rdfs:comment>
  57 + <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
  58 + <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  59 +</rdf:Property>
  60 +
  61 +<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#object">
  62 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  63 + <rdfs:label>object</rdfs:label>
  64 + <rdfs:comment>The object of the subject RDF statement.</rdfs:comment>
  65 + <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#Statement"/>
  66 + <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  67 +</rdf:Property>
  68 +
  69 +<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Bag">
  70 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  71 + <rdfs:label>Bag</rdfs:label>
  72 + <rdfs:comment>The class of unordered containers.</rdfs:comment>
  73 + <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Container"/>
  74 +</rdfs:Class>
  75 +
  76 +<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Seq">
  77 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  78 + <rdfs:label>Seq</rdfs:label>
  79 + <rdfs:comment>The class of ordered containers.</rdfs:comment>
  80 + <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Container"/>
  81 +</rdfs:Class>
  82 +
  83 +<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#Alt">
  84 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  85 + <rdfs:label>Alt</rdfs:label>
  86 + <rdfs:comment>The class of containers of alternatives.</rdfs:comment>
  87 + <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Container"/>
  88 +</rdfs:Class>
  89 +
  90 +<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#value">
  91 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  92 + <rdfs:label>value</rdfs:label>
  93 + <rdfs:comment>Idiomatic property used for structured values.</rdfs:comment>
  94 + <rdfs:domain rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  95 + <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  96 +</rdf:Property>
  97 +
  98 +<!-- the following are new additions, Nov 2002 -->
  99 +
  100 +<rdfs:Class rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#List">
  101 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  102 + <rdfs:label>List</rdfs:label>
  103 + <rdfs:comment>The class of RDF Lists.</rdfs:comment>
  104 + <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  105 +</rdfs:Class>
  106 +
  107 +<rdf:List rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#nil">
  108 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  109 + <rdfs:label>nil</rdfs:label>
  110 + <rdfs:comment>The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it.</rdfs:comment>
  111 +</rdf:List>
  112 +
  113 +<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#first">
  114 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  115 + <rdfs:label>first</rdfs:label>
  116 + <rdfs:comment>The first item in the subject RDF list.</rdfs:comment>
  117 + <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/>
  118 + <rdfs:range rdf:resource="http://www.w3.org/2000/01/rdf-schema#Resource"/>
  119 +</rdf:Property>
  120 +
  121 +<rdf:Property rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#rest">
  122 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  123 + <rdfs:label>rest</rdfs:label>
  124 + <rdfs:comment>The rest of the subject RDF list after the first item.</rdfs:comment>
  125 + <rdfs:domain rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/>
  126 + <rdfs:range rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#List"/>
  127 +</rdf:Property>
  128 +
  129 +<rdfs:Datatype rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#XMLLiteral">
  130 + <rdfs:subClassOf rdf:resource="http://www.w3.org/2000/01/rdf-schema#Literal"/>
  131 + <rdfs:isDefinedBy rdf:resource="http://www.w3.org/1999/02/22-rdf-syntax-ns#"/>
  132 + <rdfs:label>XMLLiteral</rdfs:label>
  133 + <rdfs:comment>The class of XML literal values.</rdfs:comment>
  134 +</rdfs:Datatype>
  135 +
  136 +<rdf:Description rdf:about="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
  137 + <rdfs:seeAlso rdf:resource="http://www.w3.org/2000/01/rdf-schema-more"/>
  138 +</rdf:Description>
  139 +
  140 +</rdf:RDF>
  141 +
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
  2 + "http://www.w3.org/TR/REC-html40/loose.dtd">
  3 +<html>
  4 +<head>
  5 +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
  6 +<title>Book outline</title>
  7 +<link rel="stylesheet" href="/StyleSheets/public.css">
  8 +</head>
  9 +<body bgcolor="#f8fed3" text="black" link="blue" vlink="green" style="color:
  10 +#000000;background-color: #FFF8ED" lang="en">
  11 +
  12 +<p></p>
  13 +
  14 +<p>Transcript of <a
  15 +href="http://www.w3.org/People/Berners-Lee/Overview.html#Talks">Tim
  16 +Berners-Lee</a>'s talk to the LCS 35th Anniversary celebrations, Cambridge
  17 +Massachusetts, 1999/April/14. See also:</p>
  18 +<ul>
  19 +<li>
  20 +<a href="../../Talks/1999/0414-LCS35-tbl/slide1-1.html">Slides</a>
  21 +</li>
  22 +<li>
  23 +<a href="http://www.lcs.mit.edu/">MIT Laboratory for Computer Science</a>
  24 +</li>
  25 +<li>
  26 +<a href="http://www.lcs.mit.edu/anniv/agenda/">MIT LCS 35th Anniversary
  27 +</a>(April 1999)
  28 +</li>
  29 +</ul>
  30 +
  31 +<p>[edited for comprehensibility]</p>
  32 +
  33 +<p></p>
  34 +
  35 +<p>TIM BERNERS-LEE: It's a great pleasure to be addressing you on this 35th
  36 +anniversary. Of course, it's a 35th anniversary of LCS, and it's also the
  37 +35th anniversary of the Web, if you count in Web years. [Laughter.]</p>
  38 +
  39 +<p>I will say a little bit about where I'm coming from, what the original idea
  40 +was, because I don't want to talk about the future as a prediction. I don't
  41 +give predictions. That I leave to Bob. It's dangerous: you end up eating your
  42 +articles, and so I will stick to talking about what I would like to see
  43 +partly because when there are a bunch of people from LCS in the audience, the
  44 +next thing you find is somebody has come around to your office, knocked on
  45 +the door, and said that, by the way, they've done it.</p>
  46 +
  47 +<p>When I'm talking about what I would like to see, you know, it hasn't
  48 +changed very much in ten years. So if I talk about where I'm coming from, what
  49 +I wanted to see then, then, that's two-thirds of my hopes for the future.
  50 +I'll give a little bit of history of how where the World Wide Web Consortium
  51 +came to LCS, and then I'll talk a bit about the Web and about an interesting
  52 +distinction between what we used to call documents, and what we used to call
  53 +data.</p>
  54 +
  55 +<p>The basic ideas of the Web is that an information space through which
  56 +people can communicate, but communicate in a special way: communicate by
  57 +sharing their knowledge in a pool. The idea was not just that it should be a
  58 +big browsing medium. The idea was that everybody would be putting their ideas
  59 +in, as well as taking them out. This is not supposed to be a glorified
  60 +television channel Also everybody should be excited about the power to
  61 +actually create hypertext. Writing hypertext is good fun, and being with a
  62 +group of people writing hypertext and trying to work something out, by making
  63 +links is a different way of working. I hoped that it would be a way that
  64 +soon, for example, the European Particle Physics Laboratory at Geneva,
  65 +Switzerland, where I was at the time. I'd hoped it would be a way for us to
  66 +much more efficiently use people who came and went, use student work, use
  67 +people working remotely. And leave a trail, not a paper trail, but a trail in
  68 +hyperspace.</p>
  69 +
  70 +<p>So I had hoped that the Web would be a tool for us, understanding each
  71 +other and working together efficiently on larger scales. Getting over the
  72 +problem which befalls the organization that was so fun when it was a start-up
  73 +of six people (many of you will know about this phenomenon). When you get to
  74 +60 people it is still great fun, and you're still rollerblading in the parking
  75 +lot. And then when you get to 61 people, you worry that you don't know that
  76 +person's name, and the difficulties of scaling the organization set in.</p>
  77 +
  78 +<p>There's a second half to the dream really, and I must admit that originally
  79 +I was a little bit careful about expressing this. But the second half is the
  80 +hope that when we've got all of our organization communicating together
  81 +through this medium which is accessible to machines, to computer programs,
  82 +that there will be some cool computer programs which we could write to analyze
  83 +that stuff: to figure out how the organization really runs; and what is its
  84 +real structure, never mind the structure we have given it; and all kinds of
  85 +things like that. And to do that, of course, the information on the Web would
  86 +have to be understandable to some extent by a machine and at the moment it's
  87 +not.</p>
  88 +
  89 +<p>Here is a very basic history overview. I originally wrote a proposal.
  90 +That's the piece of paper which I dropped into the time capsule, for those of
  91 +you who were at the party. I wrote the proposal in 1989 and tried to explain
  92 +that I thought the global hypertext would be a great idea. Now, the world is
  93 +full of people writing these proposals and since Vennevor Bush started in
  94 +1945 and it was published in the Atlantic Monthly and still nobody developed
  95 +a global hypertext system. And then Doug Enbgelbart actually showed people
  96 +how to do it two decades later, and still it didn't happen because he just
  97 +didn't happen to be in the right place at the right time. But I was.</p>
  98 +
  99 +<p>I was in right place in that the European particle physics community was
  100 +full of people with machines on their desk &mdash; now just about starting
  101 +to be Internet worked: connected to the Internet as opposed to all sorts of
  102 +proprietary networks. And I was at a place where my boss Mike Sandel and his
  103 +boss David Williams, who is sitting down here, were prepared to not say no.
  104 +They let me go ahead and do it, "even though we can't actually justify it."
  105 +That happened actually in 1990 when I bought one of those new NeXT machines,
  106 +which was a great programming environment in lots of ways. I could actually
  107 +put together a hypertext editor, (browser/editor; it was the same
  108 +thing&mdash;It was modeless) pretty quickly. And then in the summer of '91 we
  109 +actually released the code, put it up on an FTP server and drew people's
  110 +attention to the first Web site and the first Web client and started to try
  111 +to push this. It was still very difficult, you know, to explain how exciting
  112 +global hypertext is if you only have a couple of Web pages. That may seem
  113 +silly now and obvious, but it's very difficult to show the excitement in one
  114 +Web page.</p>
  115 +
  116 +<p>The excitement of a hypertext link is that it can point to anything out
  117 +there. When there's nothing out there then that is just difficult to
  118 +demonstrate. So for several years it's a question of first trying to justify
  119 +my existence. In fact I wasn't working on anything else, and the other people
  120 +who had got onto the team one way or another. They sort of slipped through,
  121 +working in different places, working across the world collaborating over the
  122 +Internet. And persuading people to put out Web browsers was tricky. It
  123 +involved all kinds of doing sneaky things, suggesting that they needed a Web
  124 +browser for a very specific application so that they would get it and then
  125 +that they would be&mdash;they would just increase the number of clients out
  126 +there which would increase the incentive for somebody to put up a server and
  127 +vice-versa. And eventually the thing started snowballing.</p>
  128 +
  129 +<p>Now, in 1992 it was clear that it was taking off. It still wasn't clear
  130 +that it would, for example ever take over from the Internet Gopher, which was
  131 +another system expanding exponentially on the Internet. But people were
  132 +already starting to come into my office. Alan Kotok from Digital came with
  133 +three colleagues, unannounced. Now, people don't generally drop in Geneva
  134 +unannounced, particularly Americans. We found a conference room quickly and
  135 +he explained that they were starting to investigate what Digital should do,
  136 +how Digital should address this "Internet" and the World Wide Web. "We're
  137 +concerned about stability and we understand that it all hinges on some
  138 +specifications which you have stored on a disk somewhere..". They wondered
  139 +how stable they were and how we get to insure their continued stability and
  140 +their evolution.</p>
  141 +
  142 +<p>I started talking with them and other people about what sort of a body we
  143 +needed to make sure that the Web would evolve into something we could
  144 +use&mdash;now it was becoming a serious thing. They were very adamant, like
  145 +everyone else, that there should be some neutral forum where people could
  146 +meet. I started shopping around. I looked at a number of different
  147 +possibilities: setting it up as a company; joining a large company and
  148 +setting it up base there, setting it up at some other institution. I traveled
  149 +around a bit and talked to a lot of people and there's one place which came up
  150 +with checks in all the boxes. In fact it was on a bus going from a conference
  151 +dinner in Newcastle in northern England on one rainy night to a small hotel
  152 +that I sat next to David Gifford from LCS, who listened to the story politely
  153 +and said I should mail this Michael D
  154 +something&mdash;<code>mld@hq.lcs.mit.edu</code>&mdash;and he might be
  155 +interested.</p>
  156 +
  157 +<p>I did and next thing Michael dropped in in Zurich and from then on I
  158 +discovered that not only could I sell him the idea of setting up as a base in
  159 +the U.S. but I could sell him on the idea of setting it up as an
  160 +international thing. He was just as enthusiastic as me about that. So that's
  161 +the story of how the Web Consortium came to LCS. And the rest is more or less
  162 +history and acronyms, and I won't to into the acronyms in case you are
  163 +frightened about them. But basically things have been happening.</p>
  164 +
  165 +<p>The fundamental thing about the space&mdash;about this Web, as I said, is
  166 +that anything can refer to anything. Otherwise it's no fun. You've got to be
  167 +able to make the link to anything. It's no good asking people to put things
  168 +on the Web, saying that anything of importance should have this "URL",if you
  169 +then request anything else. To make such an audacious request you have to
  170 +then release anything else. So that requires that the Web has completely
  171 +minimalist design. We don't impose anything else. It has to be independent of
  172 +anything. The great challenge, really the raison d'etre initially for getting
  173 +the Web protocols out, was to be independent of hardware platform: to be able
  174 +to see the stuff on the mainframe from your PC and to be able to see the
  175 +stuff on the PC from the Mac. To get across those boundaries was at the time
  176 +so huge and strange and unbelievable. And if we don't do things right it will
  177 +be huge and strange and unbelievable again: we could go back down that route
  178 +very easily.</p>
  179 +
  180 +<p>It was important to get it should be independent of software. The World
  181 +Wide Web originally was a client program called "World Wide Web". I
  182 +eventually renamed the program because I didn't want the World Wide Web to be
  183 +one program. It's very important that any program that can talk the World Wide
  184 +Web protocols&mdash;(HTTP, HTML,...) can provide equivalent access to the
  185 +information.</p>
  186 +
  187 +<p>It's very important to be independent of the way you actually happen to
  188 +access this information. We're using a rather large screen here but it works
  189 +just as well on this small screen. It should also work if you need to have
  190 +these read to you, because maybe you're visually impaired or maybe you're
  191 +driving along. 20 percent of the people who have access to the Web have some
  192 +sort of impairment; maybe they can see the screen fine but they can't use a
  193 +mouse. So it's very important that we separate the content from the way we're
  194 +presenting it. This slide is just an HTML file, but it has a style sheet that
  195 +says it needs to be big and it should be white on blue according to the
  196 +guidelines.</p>
  197 +
  198 +<p>It's important that the Web should be independent of language and culture,
  199 +and I could now talk for two hours just about that. In the Consortium, just
  200 +as we have a Web accessibility initiative addressed the question of
  201 +accessibility, we have an activity which looks specifically about
  202 +internationalization. But then you have to add culture, then you're talking
  203 +about a whole lot more than just using Unicode and just making sure that you
  204 +can make the letters go up and down the page instead of across the page.</p>
  205 +
  206 +<p>It's important that the Web should be independent of quality of
  207 +information. I don't want it to be somewhere where you would publish technical
  208 +reports only after you had finished. If you can link to anything I want this
  209 +to be part of the process. So the review of the technical report and the
  210 +scribbling of the original note which led to the idea that became the project
  211 +which resulted in the technical report should all be there and they should all
  212 +be linked together. So it's very important that you should be able to
  213 +instantly go in there and edit. (Now actually I'm very sorry that this is not
  214 +my machine so I'm not using my editor. Otherwise I would be able to just go
  215 +into this slide and put the cursor in the middle and edit the slide.) At the
  216 +same time, when I use the word "quality," it's important to remember that the
  217 +idea of quality is completely subjective. So the Web shouldn't have in it any
  218 +particular built-in notion of what quality means at all.</p>
  219 +
  220 +<p>There are one, two, three, four, five, six dimensions I have mentioned
  221 +along which documents on the Web can vary. Throughout all the history and
  222 +through the future evolution it's been very important to maintain this
  223 +invariance with all the fancy new ideas that came in. Every now and again we
  224 +get a new suggestion that flagrantly violates one of these areas, and we have
  225 +to find ways to turn it around and express it in a way which does not.</p>
  226 +
  227 +<p>The last dimension of independence is an interesting one. There's a
  228 +difference between documents and data. This division that David Williams used
  229 +to lead originally was called "Documents and Data." There was a feeling around
  230 +the organization that it was a very funny old name, and it should be renamed
  231 +as "Computing and Networking," and now it's probably being renamed as
  232 +"Information Technology," or "Information Systems". But at one point it was
  233 +Documents and Data. And perhaps that was the silliest name at all, but
  234 +perhaps it was the most insightful. Because on the Web you find "documents"
  235 +of the sorts of things people read and write, and you find "data" out there
  236 +which is the sorts of things machines read and write. And that distinction is
  237 +interesting. And it's important that the Web should allow everything on that
  238 +spectrum as well; that we should have things which are very specifically
  239 +aimed at people, caligraphy and poetry. At the same time we should have hard
  240 +data which is processable very efficiently, and logic which can be analyzed by
  241 +a machine. And things in between. A lot of the Web is sort of things in
  242 +between. When you hit a Web page which has stock prices on it, there is data
  243 +on there. You're looking for data. When you look for the weather you're
  244 +looking for data but it comes in this sort of dressed up fashion with a nice
  245 +pink flashing border and a few ads at the top in a way that's designed to
  246 +appeal to you and entice you to buy things.</p>
  247 +
  248 +<p>So you could think of it, if you like, as three layers: at the top, there
  249 +is the presentation layer. For this slide it's defined by style sheet. And
  250 +in the middle there's content, a funny word which seems to be popular on the
  251 +Web nowadays. This, the HTML code, which says that this thing which in fact
  252 +the style sheet had turned yellow is a first level heading, and this thing is
  253 +an unordered list. And then underneath&mdash;there isn't a lot on this page I
  254 +would say would be data. There's a metadata at the top which gives the
  255 +relationship between this slide and the other slides. But the data are the
  256 +things like the stock prices and who actually wrote this and when it was
  257 +created, and what we think the weather is going to be like tomorrow in Boston
  258 +and things like that.</p>
  259 +
  260 +<p>I'm going to contrast these two sides a little bit. Because when we're
  261 +looking at the way forward and also when we're assessing how far we've got,
  262 +those are the two benchmarks.</p>
  263 +
  264 +<p>How well are we doing? Are we doing human communication through shared
  265 +knowledge? Let's look through the document side. On this side the languages
  266 +are natural language. They're people talking to people. So the language is
  267 +you just can't analyze them very well. And this is the big problem on the net
  268 +for a lot of people, is the problem for my mother and your mother and our
  269 +kids. They go out to search engines and they ask a question and the search
  270 +engine gives these stupid answers. It has read a large proportion of the pages
  271 +on the entire Web (which is of course amazing) but it doesn't understand any
  272 +of them &mdash; and it tries to answer the question on that basis. Obviously
  273 +you get pretty unpredictable results. However, the wonderful thing is that
  274 +when people communicate in this way, this kind of fuzzy way, people can solve
  275 +problems intuitively. When people browse across the Web and see something
  276 +expressed in natural language, they think, "Aha!" and suddenly solve a totally
  277 +unrelated problem due to the incredible ability that the human brain has to
  278 +spot a pattern totally out of context by a huge amount of parallel
  279 +processing.</p>
  280 +
  281 +<p>It's very important that we use this human intuitive ability because
  282 +everything else we can automate, but we're not very good at automatically
  283 +doing that. I wanted the Web to be what I call an interactive space where
  284 +everybody can edit. And I started saying "interactive," and then I read in
  285 +the media that the Web was great because it was "interactive," meaning you
  286 +could click. This was not what I meant by interactivity, so I started calling
  287 +it "intercreativity". (I don't generally believe in making up words to solve
  288 +problems, so I'm sorry about this one.) What I mean is being creative with
  289 +others. A few fundamental rules make this possible. As you can read, so you
  290 +should be able (given the authority) to write. If you can see pictures on
  291 +your screen, why can't you take pictures and very easily and intuitively put
  292 +them up there? You feel that you know how to use the Web? Somebody yesterday
  293 +asked me, "What's the problem? The Web is so intuitive. Hasn't it solved that
  294 +problem?" I asked,<br>
  295 +"Do you take digital photographs?" <br>
  296 +"Yes"<br>
  297 +"So how long does it take you to get them on a Web page so the rest of the
  298 +family can see them?"<br>
  299 +"Oh, I wouldn't know how to do that."</p>
  300 +
  301 +<p>We're certainly not there. At the moment I certainly cannot put the cursor
  302 +in the middle of this slide and correct a spelling mistake. So in fact there's
  303 +a huge amount we have to do. One of the reasons this is difficult is that
  304 +it's actually hard. The research community produced group editors which would
  305 +allow you to edit documents and share a document. And while two people are
  306 +working at the same time&mdash;we know how to do that; we the academic
  307 +community. But I don't have it here now. I can't edit this so that somebody
  308 +watching this on a broadcast can see the edit at the same time.</p>
  309 +
  310 +<p>So one of the reasons is that it's actually hard to get the software
  311 +working seriously, as a product. It also needs a whole lot of infrastructure.
  312 +We need a lot more stability. We need people to learn to stop changing URL's,
  313 +so links don't break. That's just a question often of hygiene and making an
  314 +organizational commitment, when you put something on the Web, to keeping it
  315 +there. But also, underneath, we need digital signature. We need digital
  316 +signature so that when you share things with your colleagues you know that
  317 +you're sharing it with your colleagues and you're not sharing it with just
  318 +anybody, any hacker who happened to turn up on that strip of Ethernet. So if
  319 +you ask me what is the most important thing for us to do over the next 35
  320 +years, that I would hope in the next five to ten years we can fix this. We can
  321 +fix this so that you can use the Web intuitively as the way that you express
  322 +an "aha!", a thought, the moment that you think of something. And I can fix
  323 +this slide the moment I realize it's got garbage on the bottom.</p>
  324 +
  325 +<p>Now a look on the other side. The other side is very different. Data has
  326 +very well-defined meaning. So typically a huge number of Web pages are
  327 +generated from databases. The people who produce the databases may, when they
  328 +started it with a little spreadsheet, have had a vague idea of what the
  329 +columns meant, but by now have a very good idea of what the columns mean. The
  330 +database expresses well-defined relationship between things in the columns.
  331 +When you had a weather server to pick up the temperature in Massachusetts, in
  332 +fact the person behind it knows that this is the temperature in degrees
  333 +Centigrade measured at seven o'clock in the morning at Logan Airport using
  334 +this little thermometer four feet above the ground by that little bench that
  335 +you see on the television. So there is well-defined data and there are
  336 +well-defined things you do with it. When you write a digital check a fairly
  337 +well-defined thing has got to happen. And when you look at your bank
  338 +statement after having written the check and the check having even been
  339 +cashed, there's got to be a very simple logical relationship between those
  340 +things. You don't generally send pieces of poetry, which should give the bank
  341 +a feel for the amount of money to pay to the payee.</p>
  342 +
  343 +<p>At the moment there's a very strange phenomenon going on. The data is being
  344 +exported as Web pages. There are programs which want to process that data, who
  345 +want to, for example, analyze the stock prices, who want to look at all the
  346 +bookstores and find out where you can get that book cheapest and then present
  347 +you with a comparative shopping list&mdash;and there are lots of Web sites out
  348 +there. If you're not using one, do: you could save yourself some money.
  349 +What's happening is that they are often going out to a Web site which may or
  350 +may not be cooperative: it may just be putting that information on the Web.
  351 +Sometimes the Web sites that they are scraping for data, would not cooperate
  352 +if asked to. But the data is out there; it's available. And so you have one
  353 +program which is turning it from data into documents, and another program
  354 +which is taking the document and trying to figure out where in that mass of
  355 +glowing flashing things is the price of the book. It picks it out from the
  356 +third row of the second column of the third table in the page. And then when
  357 +something changes suddenly you get the ISBN number instead of the price of a
  358 +book and you have a problem. This process is called "screen scraping," and is
  359 +clearly ridiculous, and the fact that everybody is doing it shows to me that
  360 +there is a very very clear demand for actually shipping the data as data. So
  361 +that if somebody wants to do an SQL query, if somebody wants to query an
  362 +object out here, they don't have to go through this whole simulation of a
  363 +very simple query in order to actually get at the data.</p>
  364 +
  365 +<p>The idea of "the semantic Web" is the side of the Web where data has
  366 +meaning. What's meaning? I'm not suggesting that you should program your
  367 +computer to understand the meaning of life right now. I am using meaning in
  368 +the sense that either there is a program which knows somehow how to pay a
  369 +check and therefore can just process a check, or somebody has to find a
  370 +relationship between what the documents, the checks, call price and what this
  371 +catalog calls price. So there has been a link made between the meaning of one
  372 +column and the meaning of another. So meaning in general on the semantic Web
  373 +is defined relatively. Just like in a dictionary.</p>
  374 +
  375 +<p>Don't panic. I'm not becoming relativist about my morals. I'm just
  376 +pointing out that all definitions that we use at the moment are relative to
  377 +other definitions and so on just as in a dictionary. One of the things which
  378 +we are doing now is we are moving to a state when all documents will be self
  379 +defining, self describing. So with the top of a document which uses all kinds
  380 +of tags like price and shoe size there will be a URL of the document that
  381 +defines exactly what shoe size means in this context. We won't have remove
  382 +this ambiguity which happened when we extended HTML and started putting cool
  383 +things like tables into HTML. People who were around in those days will
  384 +rememeber how the word spread that it would be really nice to have tables in
  385 +HTML: you couldn't put a table in a Web page before that. But everybody
  386 +started doing it at once and when anyone started a table they marked up in the
  387 +HTML code with "<code>&lt;TABLE>"</code>. So when you read "&lt;TABLE>" you
  388 +had no idea what sort of markup was coming in. And that lasted until we
  389 +organized a global meeting of all the people involved to agree on it.</p>
  390 +
  391 +<p>Now, we can't&mdash;every time somebody wants to think of a new idea, a new
  392 +term, a new column in a database&mdash;have a global meeting to decide about
  393 +it. We have to let people invent new terms all the time as they do anyway, but
  394 +just make sure there's no ambiguity. Also we have to allow people to combine
  395 +more than one vocabulary in the document. We don't just want to make
  396 +something which works; we want to make something which can evolve. This is
  397 +very important from the point of view of the World Wide Web Consortium
  398 +cutting itself out of the loop as much as possible.</p>
  399 +
  400 +<p>We have 320 members, various types&mdash;companies, organizations,
  401 +individuals&mdash;all coming together to discuss global status. and we can't
  402 +do that when you want to invent languages for pharmaceuticals, languages for
  403 +whatever your favorite new database application may be. What we need to be
  404 +able to do is to be able to send documents around which use standard
  405 +vocabulary, and add extensions in in a well-defined way; which mix in the
  406 +extensions, so that somebody who understands the standards but doesn't an
  407 +extension can figure out whether this is a problem. And in the case that the
  408 +data is in fact just informational data on the side, can process the rest.
  409 +This in fact allows us to move from using one vocabulary to another
  410 +vocabulary.</p>
  411 +
  412 +<p>This partial understanding sounds like a failure. But in fact partial
  413 +understanding is what allows us to actually function in the world. If you
  414 +think of an invoice, if you send an invoice from one company to another, when
  415 +it's paid, the person who allows that to be paid and sends the check off,
  416 +checks various fields on that invoice and checks that it's been authorized an
  417 +appropriate person. They check the amount, but when they look at the parts
  418 +they don't have to understand exactly what a "lower left-hand engine bearing
  419 +cover bolt bracket" is, because that part of the document is in fact
  420 +completely ignorable for purposes of paying the invoice. A huge amount of
  421 +information, stuff we read, everything that runs our business, is like that.
  422 +There are documents going around in which different people understand
  423 +different parts. And that is how we can extend the language. And that is how
  424 +we can evolve the whole of society that uses this language. If we're going to
  425 +be moving to the semantic Web we have to be able to do that.</p>
  426 +
  427 +<p>We've talked a lot during this fest about digital signature. And, of
  428 +course, digital signature, if we were only allowed to do it, would be
  429 +fundamental to this. And it will be fundamental to this. We have, in fact,
  430 +directly following this on Thursday and Friday, at the Consortium, a workshop
  431 +about signing XML, the basic language for data, with digital
  432 +signatures.Digital signature on top of the semantic Web turns it into a Web of
  433 +trust in which a computer can not only reason and make deductions, using not
  434 +only the logic of it, but also the model of trust. I could also talk to you
  435 +about this for six hours, but I won't.</p>
  436 +
  437 +<p>Let's look about what happens as we scale these things up. Remember the
  438 +human side that when the Web was difficult to sell not only because looking at
  439 +two hypertext pages wasn't sufficient to make people very excited, but also
  440 +there was a certain fear that the Web would break structures. There was a lot
  441 +of people I spoke to initially wanted the Web to be hierarchical because they
  442 +wanted the hierarchical feeling of control. Or they decided the best
  443 +documentation system for them was a matrix. In fact the Web broke out of the
  444 +box and allowed you to express a hierarchy or a matrix equally well, but it
  445 +allowed you to express other things, too, which was a little bit frightening.
  446 +It's been a dramatic change for the individual. I am, of course, very
  447 +interested in whether it can be a dramatic change for society. And I've got a
  448 +feeling that I could talk for two hours about most of these points.</p>
  449 +
  450 +<p>A really exciting thing would be if we could scale that ability to make
  451 +intuitive leaps. I've always wanted to be able to do this with a group, of
  452 +very bright, very enthusiastic people really interested in specific
  453 +overlapping areas, say LCS, or all the people who are trying to find a cure
  454 +for AIDS, or whatever. A typical thing researcher tries to do is to get as
  455 +much into his or her head at once and then hope that the solution forms, the
  456 +penny drops, that connection is made, and they can write it down before they
  457 +go to sleep. How can you get a group of people to do the same thing? Maybe if
  458 +we can use the Web as a very low bandwidth ineffective small set of neural
  459 +connections which connect the people. Imagine that one person surfing the Web
  460 +can leave a trail. In other words, if somebody, as they're surfing the Web
  461 +and they notice an interesting association and connection can represent that
  462 +with a link, then another person surfing the Web on another topic maybe find
  463 +that link and use it and as a result bring a new communal path a little bit
  464 +further on. And so the group as a whole after a while will be able to make
  465 +that "Aha!". That's something I would find very exciting.</p>
  466 +
  467 +<p>On the other side, promoting the machine communication is running across
  468 +all the same hopes and fears as promoting the human communication. The same
  469 +problems that&mdash;when suggesting this to somebody, it's very difficult to
  470 +explain how if you, instead of just putting a database on the Web you put it
  471 +on in a way that everything has a URL and it's part of a Web&mdash;that when
  472 +all the databases are linked together, and when there are links
  473 +meaning&mdash;when there are links between the meaning of this column and the
  474 +meaning, well, that's not very exciting when I just described it as, you know,
  475 +the last name in this is the same as the last name in this. But imagine that
  476 +all the last name columns in all the databases on the Web were all directly
  477 +or indirectly linked together by links. Then effectively you'd be able to join
  478 +any databases that talk about the last name of a person on that together.
  479 +You'd be able to query the whole Web as all the data on Web is one huge
  480 +database. Which would be very very powerful, and I'm glad we talked about
  481 +privacy yesterday. So the same rules have to apply. Anything can refer to
  482 +anything. Wherever there was an identifier in your data language suddenly you
  483 +have to be able to use a URI, and there's a certain amount of resistance to
  484 +that. Because people want to maintain the fact that the systems are
  485 +predictable. They don't want the language to become too expressive, because
  486 +computer science is all about&mdash;this is perhaps a little unfair&mdash;the
  487 +art of designing languages which are sufficiently constraining so that you
  488 +can only write solvable problems in them. If you look at a particular query or
  489 +you look at the language of writing what you can ask an ATM to do it's very
  490 +simple, because an ATM can only do a few things. But when you link together
  491 +all the data you end up with a representation of the world, and the world is
  492 +a very complex place, and you need an arbitrarily expressive language for
  493 +expressing that.</p>
  494 +
  495 +<p>We end up with this tension between that and systems which we will be
  496 +producing which will be predictable, like checks. We will have to constrain
  497 +the checks so that you can only put an integer in there. You cannot put an
  498 +expression, say that this is "pay the bearer on demand the smallest number
  499 +expresseable in two distinct ways as the sum of two cubes", or something which
  500 +Ron will cook up you can only calculate it in 35 years. People want that check
  501 +to terminate. They want the payment to happen in a finite time. They're very
  502 +worried when we suggest that the underlying structure for this will be very
  503 +expressive. But in fact, when you put all these systems together, the result
  504 +will be all the independent machines &mdash; Michael's bulldozers&mdash;
  505 +taken together will be a huge very very complex map of the world.</p>
  506 +
  507 +<p>I used to say that the Web would mimic the world. In fact, it ends up being
  508 +the world to a certain extent. So the well be on their heuristics, we will not
  509 +have to use heuristics, don't panic, in order to pay checks. But it will be a
  510 +very exciting place to explore algorithms which break what we call the closed
  511 +world assumption of the people who try to export things in boxes without any
  512 +breathing holes. Of course, the really exciting thing happens when we mix the
  513 +two worlds. I don't know we can solve any serious problems unless we do. I'm
  514 +not asking for the machines to join the human world with artificial
  515 +intelligence. I'm happy for other people to ask for that. But I'm just saying
  516 +that if we as humans, when we have gone already to the trouble of putting data
  517 +into databases, putting our schedules, our appointments into a schedule
  518 +database&mdash;we've already in other cases done that; it's in a very
  519 +well-defined form. Let's not lose that information. Let's not lose that
  520 +semantics. Let's use it. Let's digitally sign it. Let's allow machines to
  521 +start operating on it. And with this mixture of predictable mechanisms of
  522 +heuristics I think it should be very exciting. For me the fundamental Web is
  523 +the Web of people. It's not the Web of machines talking to each other; it's
  524 +not the network of machines talking to each other. It's not the Web of
  525 +documents. Remember when machines talked to each other over some protocol,
  526 +two machines are talking on behalf of two people. The Consortium has a whole
  527 +technical domain "Technology and Society" which recognizes that, at the end
  528 +of the day, if we're not doing something for the Web of People, then we're
  529 +really not doing something useful at all.</p>
  530 +
  531 +<p>Originally it was social need that drove me to make the Web in the first
  532 +place. In the future one of the exciting things is finding what I call social
  533 +machines. We know about working groups and we know about social voting
  534 +structures and we know about all sorts of social systems, and a lot of people
  535 +are very excited about what sort of new social systems we can make on the
  536 +Web, which maybe can be run by little machines; things that you can log onto
  537 +and become part of and progress, just as we progress documents along
  538 +standardization tracks, as we endorse things. We can invent new forms which
  539 +maybe will allow us to exploit the fact that we don't have geographical
  540 +boundaries anymore. I'm very interested in a more fractal, less hierarchical
  541 +structure arising in society, allowing us to operate using the web of trust.
  542 +Perhaps we can, now that we've got machines that can help us find out
  543 +individually where we best fit, how we can weave ourselves into the Web to
  544 +contribute best to society. Maybe we can continue another very small step
  545 +along that path that we started when we stopped (some of us, most of the time)
  546 +using violence to settle or to decide things, and moved on to using money, or
  547 +in some cases stopped using money and started actually thinking about what
  548 +other people were feeling and trying to do, and sharing their goals. Maybe
  549 +we can find new systems based on peer respect, in which we work together and
  550 +appreciate that we are all in fact trying to go in the same direction. To me
  551 +that would be very exciting and make the whole thing worthwhile. Thank you
  552 +very much for your attention.</p>
  553 +
  554 +<p>[Applause.]</p>
  555 +
  556 +<p></p>
  557 +</body>
  558 +</html>
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
  2 + "http://www.w3.org/TR/REC-html40/loose.dtd">
  3 +<html>
  4 +<head>
  5 +<title>Web Characterization Terminology &amp; Definitions Sheet</title>
  6 +<link rel="stylesheet" type="text/css"
  7 +href="http://www.w3.org/StyleSheets/TR/W3C-WD">
  8 +</head>
  9 +<body lang="en">
  10 +
  11 +<div class="head">
  12 +
  13 +<a href="http://www.w3.org/"><img src="http://www.w3.org/Icons/w3c_home"
  14 +alt="W3C" height="48" width="72" border="0">
  15 +</a>
  16 +
  17 +<h1>Web Characterization Terminology &amp; Definitions Sheet</h1>
  18 +
  19 +<h2>W3C Working Draft 24-May-1999</h2>
  20 +<dl>
  21 +<dt>This version:</dt>
  22 +<dd>
  23 +<a
  24 +href="http://www.w3.org/1999/05/WCA-terms/01">http://www.w3.org/1999/05/WCA-terms/01</a>
  25 +</dd>
  26 +<dt>Latest version:</dt>
  27 +<dd>
  28 +<a
  29 +href="http://www.w3.org/1999/05/WCA-terms/">http://www.w3.org/1999/05/WCA-terms/</a>
  30 +</dd>
  31 +<dt>Editors:</dt>
  32 +<dd>
  33 +Brian Lavoie &lt;<a href="mailto:lavoie@oclc.org">lavoie@oclc.org</a>>,
  34 +</dd>
  35 +<dd>
  36 +Henrik Frystyk Nielsen &lt;<a href="mailto:frystyk@w3.org">frystyk@w3.org</a>>
  37 +</dd>
  38 +</dl>
  39 +
  40 +<a
  41 +href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a>
  42 +&copy; 1999 <a href="http://www.w3.org/">W3C</a> (<a
  43 +href="http://www.lcs.mit.edu/">MIT</a>, <a
  44 +href="http://www.inria.fr/">INRIA</a>, <a
  45 +href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a
  46 +href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
  47 +<a
  48 +href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
  49 +<a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
  50 +use</a> and <a
  51 +href="http://www.w3.org/Consortium/Legal/copyright-software">software
  52 +licensing</a> rules apply.&nbsp;
  53 +<hr title="Separator for header">
  54 +
  55 +</div>
  56 +
  57 +<h2><a name="abstract"></a>Abstract</h2>
  58 +
  59 +In characterizing the structure and content of the Web, it is necessary to
  60 +establish precise semantics for Web concepts. The Web has proceeded for a
  61 +surprisingly long time without consistent definitions for concepts which have
  62 +become part of the common vernacular, such as "Web site" or "Web page". This
  63 +can lead to a great deal of confusion when attempting to develop, interpret,
  64 +and compare Web metrics.
  65 +
  66 +<p>This document represents an effort on the part of the W3C Web
  67 +Characterization Activity to establish a shared understanding of key Web
  68 +concepts. The primary goal in preparing this document was to develop a common
  69 +interpretation for terminology related to Web characterization research.
  70 +However, it is hoped that the Web community at large will also benefit from
  71 +the enumeration and definition of important Web concepts.</p>
  72 +
  73 +<h2><a name="status"></a>Status of this document</h2>
  74 +
  75 +This document is a working draft for review by W3C members and other
  76 +interested parties. It reflects rough consensus of the W3C Web
  77 +Characterization Activity Working Group. We do not claim the set of terms
  78 +defined in this Working Draft to be exhaustive nor (despite our efforts) that
  79 +all definitions are applicable in all situations. The purpose of this Working
  80 +Draft is to bring clarity to the terms often used when talking about the Web
  81 +as well as to encourage discussion of these and other terms. It is expected
  82 +that future changes will be elaborations on the concepts contained in this
  83 +document, rather than changes in the concepts themselves. Please send comments
  84 +to the &lt;<a href="mailto:www-wca@w3.org">www-wca@w3.org</a>> mailing list
  85 +which is archived at "<a
  86 +href="http://lists.w3.org/Archives/Public/www-wca/">http://lists.w3.org/Archives/Public/www-wca/</a><a></a>"
  87 +
  88 +<p>Information on the W3C Web Characterization Activity is located at "<a
  89 +href="http://www.w3.org/WCA/">http://www.w3.org/WCA/</a>". A list of current
  90 +W3C Recommendations and other technical documents can be found at "<a
  91 +href="http://www.w3.org/TR/">http://www.w3.org/TR/</a>".</p>
  92 +
  93 +<h2><a name="contents"></a>Table of contents</h2>
  94 +<dl>
  95 +<dt><a href="#PRIMITIVE">1. Primitive Elements</a></dt>
  96 +<dt><a href="#WEBSCOPE">2. The Scope of the Web from Perspective of Web
  97 +Characterization</a></dt>
  98 +<dd><dl>
  99 +<dt><a href="#WEBCLIENTS">2.1 Web Clients</a></dt>
  100 +<dt><a href="#WEBSERVERS">2.2 Web Servers</a></dt>
  101 +<dt><a href="#RESOURCESTRUCTURE">2.3 Resource Structure</a></dt>
  102 +</dl>
  103 +</dd>
  104 +<dt><a href="#References">3. References</a></dt>
  105 +</dl>
  106 +
  107 +<h2><a name="PRIMITIVE">1. Primitive Elements</a></h2>
  108 +
  109 +Primitive elements are general concepts and terms that can be used to describe
  110 +an information space like the Web. These terms are not necessarily limited to
  111 +resources accessible via any particular access mechanism nor are they
  112 +guaranteed to be accessible via the Internet.
  113 +
  114 +<p>In this context we use them to describe the information space known as
  115 +<em>the Web</em>. However, in addition to illustrating the scope of the Web in
  116 +general, the reason why we mention them here is that they are needed to define
  117 +a more <a href="#WEBSCOPE">restrictive set of terms used in Web
  118 +characterization research</a> which we can measure and define a set of metrics
  119 +for.</p>
  120 +
  121 +<h3><a name="Resource">Resource</a></h3>
  122 +
  123 +<p>The <a href="http://www.rfc-editor.org/rfc/rfc2396.txt">URI
  124 +specification</a> describes a <a
  125 +href="http://www.rfc-editor.org/rfc/rfc2396.txt">resource</a> as the common
  126 +term for "...anything that has identity. Familiar examples include an
  127 +electronic document, an image, a service (e.g., "today's weather report for
  128 +Los Angeles"), as well as a collection of other resources. Not all resources
  129 +are network "retrievable"; e.g., human beings, corporations, and bound books
  130 +in a library can also be considered resources..." (see also the term <a
  131 +href="#Resource2">Web Resource</a>).</p>
  132 +
  133 +<p><em><strong>Examples:</strong> Web page, collection of Web pages, service
  134 +that provides information from a database, e-mail message, Java classes
  135 +...</em></p>
  136 +
  137 +<h3><a name="URI">URI</a></h3>
  138 +
  139 +<p>The <a href="http://www.rfc-editor.org/rfc/rfc2396.txt">URI
  140 +specification</a> defines a <a
  141 +href="http://www.rfc-editor.org/rfc/rfc2396.txt">Uniform Resource Identifier
  142 +(URI)</a> as a compact string of characters for identifying an abstract or
  143 +physical <a href="#Resource">resource</a>.</p>
  144 +
  145 +<h3><a name="Resource1">Resource Manifestation</a></h3>
  146 +
  147 +A resource manifestation is a rendition of a resource at a specific point in
  148 +time and space. A conceptual mapping exists between a resource and a resource
  149 +manifestation (or set of manifestations), in the sense that the resource has
  150 +certain properties - e.g., its URI, its intended purpose, etc. - which are
  151 +inherited by each manifestation, although the specific structure, form, and
  152 +content of the manifestation may vary according to factors such as the
  153 +environment in which it is displayed, the time it is accessed, etc. Regardless
  154 +of the form the manifestation's rendering ultimately takes, the conceptual
  155 +mapping to the resource is preserved.
  156 +
  157 +<p><em><strong>Note:</strong> For historical reasons, HTTP/1.x calls a
  158 +manifestation for an "entity"</em><em>.</em></p>
  159 +
  160 +<p><em><strong>Examples:</strong> real-time information accessed from a news
  161 +Web site on a particular day, up-to-the-minute stock quotes, a rendering of a
  162 +multimedia Web page accessed with a particular client ...</em></p>
  163 +
  164 +<h3><a name="Link">Link</a></h3>
  165 +
  166 +<p>A link expresses one or more (explicit or implicit) relationships between
  167 +two or more resources.</p>
  168 +
  169 +<p><em><strong>Note:</strong> The type of the relationship can describe
  170 +relationships like "authored by", "embedded", etc. Types can themselves be
  171 +identified by URIs as for example is the case for </em><a
  172 +href="/RDF/"><em>RDF</em></a><em>.</em></p>
  173 +
  174 +<p><em><strong>Examples:</strong> An HTML </em><code><em>&lt;a
  175 +href="http://www.w3.org/Protocols/#News">...&lt;/a></em></code><em> element,
  176 +an HTML <code>&lt;img src=&lt;http://www.w3.org/icons/w3c-home"></code>
  177 +element.</em></p>
  178 +
  179 +<h3><a name="Anchor">Anchor</a></h3>
  180 +
  181 +<p>An area within a resource that can be the source or destination of zero,
  182 +one or more <a href="#Link">links</a>. An anchor may refer to the whole
  183 +resource, particular parts of the resource, or to particular manifestations of
  184 +the resource.</p>
  185 +
  186 +<p><em><strong>Examples:</strong> An HTML </em><code><em>&lt;a
  187 +name="http://www.w3.org/Protocols/#News">...&lt;/a></em></code><em>
  188 +element.</em></p>
  189 +
  190 +<h3><a name="Client">Client</a></h3>
  191 +
  192 +The role adopted by an application when it is retrieving and/or rendering
  193 +resources or resource manifestations.
  194 +
  195 +<p><em><strong>Examples:</strong> A Web browser, an e-mail reader, a Usenet
  196 +reader ...</em></p>
  197 +
  198 +<h3><a name="Server">Server</a></h3>
  199 +
  200 +The role adopted by an application when it is supplying resources or resource
  201 +manifestations.
  202 +
  203 +<p><em><strong>Examples:</strong> An HTTP server, a file server, etc
  204 +...</em></p>
  205 +
  206 +<h3><a name="Proxy">Proxy</a></h3>
  207 +
  208 +<p>A proxy is an intermediary which acts as both a server and a client for the
  209 +purpose of retrieving resources or resource manifestations on behalf of other
  210 +clients. Clients using a proxy know the proxy is present and that it is an
  211 +intermediary.</p>
  212 +
  213 +<p><em><strong>Examples:</strong> An HTTP firewall proxy ...</em></p>
  214 +
  215 +<h3><a name="Gateway">Gateway</a></h3>
  216 +
  217 +<p>A gateway is an intermediary which acts as a server on behalf of some other
  218 +server with the purpose of supplying resources or resource manifestations from
  219 +that other server. Clients using a gateway know the gateway is present but
  220 +does not know that it is an intermediary.</p>
  221 +
  222 +<p><em><strong>Examples:</strong> An HTTP to FTP gateway</em></p>
  223 +
  224 +<h3><a name="Message">Message</a></h3>
  225 +
  226 +A unit of communication exchanged between equivalent network layers or
  227 +services, located at different hosts.
  228 +
  229 +<p><em><strong>Examples:</strong> A datagram sent from one Internet layer to
  230 +another, an e-mail sent from one e-mail reader and received at another
  231 +...</em></p>
  232 +
  233 +<h3><a name="Request">Request</a></h3>
  234 +
  235 +A message describing an atomic operation to be carried out in the context of a
  236 +specified resource.
  237 +
  238 +<p><em><strong>Examples:</strong> HTTP GET, POST, PUT, and HEAD requests
  239 +...</em></p>
  240 +
  241 +<h3><a name="Response">Response</a></h3>
  242 +
  243 +A message containing the result of an executed request.
  244 +
  245 +<p><em><strong>Examples:</strong> An HTML document, a server error message
  246 +...</em></p>
  247 +
  248 +<h3><a name="User">User</a></h3>
  249 +
  250 +The principal using a client to interactively retrieve and render resources or
  251 +resource manifestations.
  252 +
  253 +<p><em><strong>Examples:</strong> A person using a Web browser, a person using
  254 +an e-mail reader, a person using a CRT terminal emulator ...</em></p>
  255 +
  256 +<h3><a name="Publisher">Publisher</a></h3>
  257 +
  258 +<p>The principal responsible for the publication of a given resource and for
  259 +the mapping between the resource and any of its resource manifestations. See
  260 +also the term <a href="#site1">Web Site Publisher</a></p>
  261 +
  262 +<p><em><strong>Examples:</strong> A person writing an e-mail message, a person
  263 +composing a Web page</em></p>
  264 +
  265 +<h2><a name="WEBSCOPE">2. The Scope of the Web from the Perspective of Web
  266 +Characterization</a></h2>
  267 +
  268 +<p>The primitive elements defined above are useful when talking about the Web
  269 +in general but are too broad in practice to enable us to characterize the Web
  270 +with the desired level of rigor. This does not mean that we do not consider
  271 +the general terms important or interesting, but that we need a mechanism for
  272 +limiting the scope of the problem of characterizing the Web.</p>
  273 +
  274 +<p>Therefore, we define the following terms to address the question of "What
  275 +is the Web?" from the perspective of Web Characterization. For the purposes of
  276 +Web Characterization research, the Web may be viewed as consisting of three
  277 +components: the core, the neighborhood, and the periphery:</p>
  278 +
  279 +<p style="text-align: center"><img src="Web-WCA" alt="Scope of the Web from
  280 +WCA's perspective"></p>
  281 +
  282 +<p>where</p>
  283 +
  284 +<h3><a name="Core">Web Core</a></h3>
  285 +
  286 +The collection of resources residing on the Internet that can be accessed
  287 +using any implemented version of HTTP as part of the protocol stack (or its
  288 +equivalent), either directly or via an intermediary.
  289 +
  290 +<p><em><strong>Notes:</strong> By the term "or its equivalent" we consider any
  291 +version of HTTP that is currently implemented as well as any new standards
  292 +which may replace HTTP (HTTP-NG, for example). Also, we include any protocol
  293 +stack including HTTP at any level, for example HTTP running over SSL.</em></p>
  294 +
  295 +<h3><a name="Resource2">Web Resource</a></h3>
  296 +
  297 +<p>A resource, identified by a URI, that is a member of the <a
  298 +href="#Core">Web Core</a>.</p>
  299 +
  300 +<p><em><strong>Note:</strong> The URI identifying the Web Resource does not
  301 +itself have to be found within the Web Core. That is, a URI written on a bus
  302 +identifying a resource that is a member of the </em><a href="#Core"><em>Web
  303 +Core</em></a><em> identifies a Web Resource.</em></p>
  304 +
  305 +<h3><a name="Resource3">Web Resource Manifestation</a></h3>
  306 +
  307 +<p>A <a href="#Resource1">resource manifestation</a> generated by a <a
  308 +href="#Resource2">Web resource</a>.</p>
  309 +
  310 +<h3><a name="Neighborho">Web Neighborhood</a></h3>
  311 +
  312 +<p>The collection of <a href="#Resource">resources</a> directly <a
  313 +href="#Link">linked</a> from a <a href="#Resource2">Web resource</a>.</p>
  314 +
  315 +<h3><a name="Web-access">Web Neighborhood Resource</a></h3>
  316 +
  317 +A resource, identified by a URI, that is a member of the <a
  318 +href="#Neighborho">Web Neighborhood</a>.
  319 +
  320 +<p><em><strong>Examples:</strong> An "<code>ftp</code>" link within an HTML
  321 +document which can be accessed via HTTP, a "<code>mailto</code>" link within
  322 +an HTML document which can be accessed via HTTP.</em></p>
  323 +
  324 +<h3><a name="Periphery">Web Periphery</a></h3>
  325 +
  326 +<p>The collection of resources on the Web which is <em>not</em> part of the <a
  327 +href="#Core">Web Core</a> or the <a href="#Neighborho">Web
  328 +Neighborhood</a>.</p>
  329 +
  330 +<h2><a name="WEBCLIENTS">2.1 Web Clients</a></h2>
  331 +
  332 +<p>Concepts relating to the process of accessing Web resources and render <a
  333 +href="#Resource3">Web resource manifestations</a>.</p>
  334 +
  335 +<h3><a name="Client1">Web Client</a></h3>
  336 +
  337 +A client that is capable of accessing Web resources by issuing requests and
  338 +render responses containing Web resource manifestations.
  339 +
  340 +<p><em><strong>Examples:</strong> A Web browser, a harvester, a spider
  341 +...</em></p>
  342 +
  343 +<h3><a name="Click">Web Request</a></h3>
  344 +
  345 +<p>A Web request is a <a href="#Request">request</a> issued by a <a
  346 +href="#Client1">Web client</a>. A Web request can be described as either:</p>
  347 +<dl>
  348 +<dt>Explicit Web request:</dt>
  349 +<dd>
  350 +A request that is initiated manually by the <a href="#User">user</a>.
  351 +</dd>
  352 +<dt>Implicit Web request:</dt>
  353 +<dd>
  354 +A request that is initiated transparently by the <a href="#Client1">Web
  355 +client</a>, without manual intervention on the part of the user, as an
  356 +ancillary event corresponding to an explicit Web request.
  357 +</dd>
  358 +</dl>
  359 +
  360 +<p>and as either:</p>
  361 +<dl>
  362 +<dt>Embedded Web request:</dt>
  363 +<dd>
  364 +A request for dereferencing a URI embedded within a Web resource
  365 +manifestation: e.g., following the <a href="#Link">link</a> in an HTML
  366 +document, etc.
  367 +</dd>
  368 +<dt>User-input Web request:</dt>
  369 +<dd>
  370 +A request for dereferencing a URI supplied by the user directly to the Web
  371 +client: e.g., typed into the address window, bookmarks, history, etc.
  372 +</dd>
  373 +</dl>
  374 +
  375 +<p><strong><em>Examples:</em></strong><em> a) A user follows a link appearing
  376 +in a HTML document (explicit, embedded Web request). The Web client retrieves
  377 +the requested HTML document, and also makes an additional request for an image
  378 +referenced in the HTML document (implicit, embedded Web request); b) A user
  379 +reads the URI printed on a bus and feeds it to the Web client (explicit,
  380 +user-input Web request).</em></p>
  381 +
  382 +<h3><a name="Client2">Web Request Header</a></h3>
  383 +
  384 +<p>The request header contains information about the request, information
  385 +about the client itself, and potentially information about any resource
  386 +manifestation included in the request.</p>
  387 +
  388 +<p><em><strong>Examples:</strong><a href="request.txt"> Sample HTTP request
  389 +header</a></em></p>
  390 +
  391 +<h3 id="Request1">Web Request Body</h3>
  392 +
  393 +<p>The request body (if any) of an HTTP request is used to carry the payload
  394 +of the HTTP message.</p>
  395 +
  396 +<h3><a name="User1">User Session</a></h3>
  397 +
  398 +A delimited set of user clicks across one or more Web servers.
  399 +
  400 +<p><em>Example: At a library, a patron sits down at a public Internet-access
  401 +terminal, accesses one or more Web resources, then relinquishes control of the
  402 +terminal to another patron.</em></p>
  403 +
  404 +<h3><a name="Episode">Episode</a></h3>
  405 +
  406 +A subset of related user clicks that occur within a user session.
  407 +
  408 +<p><em>Example: Continuing the previous example, the library patron accesses a
  409 +weather report (episode 1), checks stock prices (episode 2), then downloads a
  410 +patch for his operating system (episode 3).</em></p>
  411 +
  412 +<h2><a name="WEBSERVERS">2.2 Web Servers</a></h2>
  413 +
  414 +Concepts relating to the process of supplying Web resource manifestations.
  415 +
  416 +<h3><a name="Server3">Web Server</a></h3>
  417 +
  418 +A server that provides access to Web resources and which supplies Web resource
  419 +manifestations to the requestor.
  420 +
  421 +<h3><a name="Response1">Web Response</a></h3>
  422 +
  423 +<p>A Web response is a <a href="#Response">response</a> issued by a <a
  424 +href="#Server3">Web server</a>.</p>
  425 +
  426 +<h3><a name="Server4">Web Response Header</a></h3>
  427 +
  428 +The response header contains information about the response, information about
  429 +the server itself, and potentially information about any resource
  430 +manifestation which may or may not be included in the response.
  431 +
  432 +<p><em><strong>Examples:</strong> <a href="response.txt">Sample HTTP Response
  433 +Header</a></em></p>
  434 +
  435 +<h3><a name="Server5">Web Response Body</a></h3>
  436 +
  437 +The response body (if any) of an HTTP response is used to carry the payload of
  438 +the HTTP message.
  439 +
  440 +<h3><a name="Server1">Server Session</a></h3>
  441 +
  442 +<p>A collection of user clicks to a single Web server during a user session.
  443 +Also called a visit.</p>
  444 +
  445 +<h3><a name="Cookie">Cookie</a></h3>
  446 +
  447 +Data sent by a Web server to a Web client, to be stored locally by the client
  448 +and sent back to the server on subsequent requests.
  449 +
  450 +<p><em>Example: When the Web site of an online retail store is accessed for
  451 +the first time by a particular client, a unique hashcode is sent back to the
  452 +client to be stored locally. Then, when the client requests URLs from the
  453 +site, the hashcode is appended to the URL request, allowing the Web site
  454 +administrators to track the surfing pattern of the customer through the
  455 +site.</em>&nbsp;</p>
  456 +
  457 +<h2><a name="RESOURCESTRUCTURE">2.3 Resource Structures</a></h2>
  458 +
  459 +The following concepts relates to the structure of Web content.
  460 +
  461 +<h3><a name="page">Web page</a></h3>
  462 +
  463 +A collection of information, consisting of one or more Web resources, intended
  464 +to be rendered simultaneously, and identified by a single URI. More
  465 +specifically, a Web page consists of a <a href="#Resource2">Web resource</a>
  466 +with zero, one, or more embedded <a href="#Resource2">Web resources</a>
  467 +intended to be rendered as a single unit, and referred to by the URI of the
  468 +one Web resource which is not embedded.
  469 +
  470 +<p><em><strong>Examples:</strong> An image file, an applet, and an HTML file
  471 +identified and accessed through a single URI, and rendered simultaneously by a
  472 +Web client.</em></p>
  473 +
  474 +<p><em><strong>Note:</strong> The components of a Web page can reside at
  475 +different network locations. The location of the Web page, however, is
  476 +determined by the URI identifying the page.</em></p>
  477 +
  478 +<p><em><strong>Note:</strong> The scope of a Web page is limited to the
  479 +collection of Web resources which are displayed simultaneously by requesting
  480 +the Web page's URI. The components of a Web page actually rendered in a page
  481 +view is client-dependent.</em></p>
  482 +
  483 +<h3><a name="Page">Page View</a></h3>
  484 +
  485 +Visual rendering of a Web page in a specific client environment at a specific
  486 +point in time.
  487 +
  488 +<p><em><strong>Examples:</strong> Displaying a particular Web page in Internet
  489 +Explorer is a pageview; displaying the same page in Netscape Navigator is a
  490 +different page view.</em></p>
  491 +
  492 +<h3><a name="Home">Host Page</a></h3>
  493 +
  494 +A Web page identified by a URI containing an <code>&lt;authority></code>
  495 +component but where the <code>&lt;path></code> component is either empty or
  496 +simply consists of a single <code>"/"</code> only.
  497 +
  498 +<p><em><strong>Examples:</strong> The Web pages identified by
  499 +<code>http://www.w3.org</code> and <code>http://www.cern.ch</code> are host
  500 +pages</em></p>
  501 +
  502 +<h3><a name="site">Web site</a></h3>
  503 +
  504 +A collection of interlinked Web pages, including a <a href="#Home">host
  505 +page</a>, residing at the same network location. "Interlinked" is understood
  506 +to mean that any of a Web site's constituent <a href="#page">Web pages</a> can
  507 +be accessed by following a sequence of references beginning at the site's <a
  508 +href="#Home">host page</a>; spanning zero, one or more <a href="#page">Web
  509 +pages</a> located at the same site; and ending at the Web page in question.
  510 +
  511 +<p><strong><em>Examples:</em></strong><em> The Web page consisting of the
  512 +article "Thought Paper on Automatic Recharacterization" is part of the <a
  513 +href="http://www.w3.org">W3C Web site</a>, since it satisfies the two
  514 +properties mentioned above. First, it resides at the same network location as
  515 +the W3C </em><a href="#Home"><em>host page,</em></a><em>
  516 +</em><code><em>http://www.w3.org</em></code><em>. Second, we can begin at the
  517 +W3C host page (</em><code><em>http://www.w3.org</em></code><em>) and follow a
  518 +sequence of internal links, ending at the article: specifically:</em></p>
  519 +<ol>
  520 +<li>
  521 +<em><code>http://www.w3.org</code> to <code>http://www.w3.org/WCA/</code>,
  522 +and</em>
  523 +</li>
  524 +<li>
  525 +<em><code>http://www.w3.org/WCA/</code> to
  526 +<code>http://www.w3.org/WCA/1998/12/aut_char.html</code></em>
  527 +</li>
  528 +</ol>
  529 +
  530 +<p><em><strong>Notes:</strong> It is not uncommon for Web sites to be
  531 +duplicated, or mirrored, on multiple physical host machines (e.g., for load
  532 +balancing purposes). Typically, it is immaterial to the client (or user) which
  533 +host machine is used to access the Web site.</em><em> In this case, it may be
  534 +useful to consider this collection of "physical" Web sites, located at
  535 +multiple host machines, as one "logical" Web site.</em><em> This is possible
  536 +in the case where a single domain name is mapped to each of the host machines;
  537 +the logical Web site can then be identified using the unique domain name.
  538 +</em><em>If there is no unique domain name that can be applied to the
  539 +collection of duplicate sites, we consider each physical host machine as a
  540 +separate Web site.</em></p>
  541 +
  542 +<h3><a name="Independen">Independent Web Page</a></h3>
  543 +
  544 +A Web page that is not part of the Web site associated with its network
  545 +location. Specifically, it is not possible to reach the Web page in question
  546 +by traversing a sequence of links internal to the Web site, beginning at the
  547 +<a href="#Home">host page</a>.
  548 +
  549 +<p><em><strong>Examples:</strong> If a page is mounted on a Web server, but is
  550 +not linked to by any page on the Web site associated with the server, then the
  551 +page is like an "island" on the Web. The only way the page can be accessed is
  552 +through explicit knowledge of its URI.&nbsp;&nbsp;</em></p>
  553 +
  554 +<h3><a name="site1">Web Site Publisher</a></h3>
  555 +
  556 +A person or corporate body that is the primary claimant to the rewards or
  557 +benefits resulting from usage of the Web site, incurs at least part of the
  558 +costs necessary to produce and distribute the site, and exercises editorial
  559 +control over the finished form of the Web site and its content. See also the
  560 +term <a href="#Publisher">publisher</a>.
  561 +
  562 +<p><em><strong>Examples:</strong> The W3C is the publisher of the site located
  563 +at http://www.w3.org/ ...</em></p>
  564 +
  565 +<h3><a name="Subsite">Subsite</a></h3>
  566 +
  567 +A cluster of Web pages within a Web site, that is maintained by a different
  568 +publisher than that of the parent Web site, or host site. The subsite
  569 +publisher exercises editorial control over the Web pages comprising the
  570 +subsite, perhaps restrained by some broad guidelines imposed by the host site
  571 +publisher.
  572 +
  573 +<p><em><strong>Examples:</strong> An Internet service provider supplying
  574 +hosting services to its customers. All of the customers' Web sites may be
  575 +located at the same IP address, but nevertheless represent logically
  576 +independent sites (and, in the case of virtual hosting, may even have distinct
  577 +domain names).</em></p>
  578 +
  579 +<h3><a name="Collection">Web Collection</a></h3>
  580 +
  581 +A portion or section of a <a href="#site">Web site</a>, consisting of two or
  582 +more Web pages, that represents a non-trivial, self-contained resource, but is
  583 +still maintained by the same publisher of the overall <a href="#site">Web
  584 +site</a>.
  585 +
  586 +<p><em><strong>Examples:</strong> Web journal, electronic monograph, photo
  587 +gallery ...</em></p>
  588 +
  589 +<h3><a name="Supersite">Supersite</a></h3>
  590 +
  591 +A single, logical <a href="#site">Web site</a> that extends over multiple
  592 +network locations, but is intended to be viewed as a single <a
  593 +href="#site">Web site</a>. It is transparent to the user that the site is
  594 +distributed over multiple locations. A single <a href="#Home">host page</a>
  595 +applies to the entire supersite.
  596 +
  597 +<p><em><strong>Examples:</strong> The resources available from a particular
  598 +entity may be distributed over multiple servers, but users access the
  599 +supersite through one <a href="#Home">host page</a>, and view the distributed
  600 +resources as one logical site.</em></p>
  601 +
  602 +<h2><a name="References" href="#contents">4. References</a></h2>
  603 +
  604 +<p>Other useful places to look for terminology sections are</p>
  605 +<ul>
  606 +<li>
  607 +<a href="/Terms">Hypertext terms defined by Tim Berners-Lee in 1995</a>
  608 +</li>
  609 +<li>
  610 +<a href="/Architecture/Terms.html">Another set of hypertext terms defined by
  611 +Dan Connolly in 1996</a>
  612 +</li>
  613 +<li>
  614 +<a
  615 +href="http://www.w3.org/Protocols/HTTP/1.1/draft-ietf-http-v11-spec-rev-06.txt">Hypertext
  616 +Transfer Protocol 1.1 Specification</a>
  617 +</li>
  618 +<li>
  619 +<a href="http://www.w3.org/TR/REC-html40/">Hypertext Markup Language 4.0
  620 +Specification</a>
  621 +</li>
  622 +<li>
  623 +<a href="http://info.internet.isi.edu/in-notes/rfc/files/rfc2396.txt">Uniform
  624 +Resource Identifier Specification</a>
  625 +</li>
  626 +</ul>
  627 +
  628 +<p></p>
  629 +<hr title="Separator from footer">
  630 +
  631 +<address>
  632 +
  633 +<p>@(#) $Id: 01.html,v 1.46 1999/05/24 13:58:18 frystyk Exp $</p>
  634 +</address>
  635 +
  636 +<p></p>
  637 +</body>
  638 +</html>
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
  2 +<HTML>
  3 +<HEAD>
  4 + <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
  5 + <META NAME="GENERATOR" CONTENT="Mozilla/4.04 [en] (WinNT; I) [Netscape]">
  6 + <!-- Created with AOLpress/2.0 -->
  7 + <STYLE type=text/css>
  8 + .example {
  9 + BACKGROUND-COLOR: #f9f5de; BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; COLOR: #5d0091; MARGIN-LEFT: 10%; WIDTH: 65%
  10 + }
  11 + img.W3CIcon {
  12 + BORDER: 0;
  13 + }
  14 +</STYLE>
  15 + <TITLE>CC/PP: A user side framework for enhanced content negotiation</TITLE>
  16 + <LINK rel="stylesheet" type="text/css" href="http://www.w3.org/StyleSheets/TR/W3C-NOTE">
  17 +</HEAD>
  18 +<BODY>
  19 +<DIV class="head">
  20 + <IMG src="http://www.w3.org/Icons/WWW/w3c_home" ALT ="W3C" class="W3CIcon">
  21 + <H1>
  22 + Composite Capability/Preference Profiles (CC/PP): A user side framework for
  23 + content negotiation
  24 + </H1>
  25 + <H2>
  26 + W3C Note 27 July 1999
  27 + </H2>
  28 + <DL>
  29 + <DT>
  30 + This Version:
  31 + <DD>
  32 + <A HREF="http://www.w3.org/1999/07/NOTE-CCPP-19990727/">http://www.w3.org/TR/1999/NOTE-CCPP-19990727</A>
  33 + <DT>
  34 + Latest Version:
  35 + <DD>
  36 + <A HREF="http://www.w3.org/TR/NOTE-CCPP">http://www.w3.org/TR/NOTE-CCPP</A>
  37 + <DT>
  38 + Previous version:
  39 + <DD>
  40 + <A HREF="http://www.w3.org/TR/1998/NOTE-CCPP-19981130">http://www.w3.org/TR/1998/NOTE-CCPP-19981130</A>
  41 + </DL>
  42 + <DL>
  43 + <DT>
  44 + Editors
  45 + <DD>
  46 + Franklin Reynolds
  47 + <A HREF="mailto:franklin.reynolds@research.nokia.com">franklin.reynolds@research.nokia.com</A>,
  48 + Nokia Research Center
  49 + <DD>
  50 + Johan Hjelm <A HREF="mailto:hjelm@w3.org">hjelm@w3.org</A>, W3C/Ericsson
  51 + <DD>
  52 + Spencer Dawkins <A HREF="mailto:sdawkins@nt.com">sdawkins@nt.com</A>, Nortel
  53 + <DD>
  54 + Sandeep Singhal <A HREF="mailto:singhal@us.ibm.com">singhal@us.ibm.com</A>,
  55 + IBM
  56 + </DL>
  57 + <P>
  58 + <H2>Status of this document</H2>
  59 + <P>
  60 + This document is a work in progress, representing a revision of the working
  61 + draft dated 1998-10-05 incorporating suggestions received in review comments
  62 + and further deliberations of the W3C Mobile Access Interest Group. It also
  63 + incorporates suggestions resulting from reviews by members of the IETF CONNEG
  64 + working group and the WAPForum. It is the first public review draft of this
  65 + document. Publication as a working draft does not imply endorsement by the
  66 + W3C membership.
  67 + <P>
  68 + All RDF code has been <A HREF="http://jigsaw.w3.org:8000/description">validated
  69 + </A>with <A HREF="http://www.w3.org/RDF/Implementations/SiRPAC/">SiRPAC</A>,
  70 + the W3C RDF validator.
  71 + <P>
  72 + The RDF code has been updated on July 26, 1999, to reflect the Resource
  73 + Description Framework (RDF) Model and Syntax Specification Recommendation,
  74 + and the 3&nbsp;March Resource Description Framework (RDF) Schemas Proposed
  75 + Recommendation. Minor updates to the text, reflecting the work that has been
  76 + conducted in the W3C since November 1998, has also been added.
  77 + <P>
  78 + Review comments from the public on this document should be sent to
  79 + <A HREF="mailto:www-mobile@w3.org">www-mobile@w3.org</A> which is an
  80 + automatically
  81 + <A HREF="http://lists.w3.org/Archives/Public/www-mobile/">archived</A> email
  82 + list. Information on how to subscribe to public W3C email lists can be found
  83 + at <A HREF="http://www.w3.org/Mail/Lists">http://www.w3.org/Mail/Request</A>.
  84 + <P>
  85 + <EM>This document is a NOTE made available by the W3 Consortium for discussion
  86 + only. This indicates no endorsement of its content, nor that the Consortium
  87 + has, is, or will be allocating any resources to the issues addressed by this
  88 + NOTE.</EM>
  89 + <P>
  90 + <A HREF="http://www.w3.org/Consortium/Legal/ipr-notice.html#Copyright">Copyright</A>
  91 + &copy; 1997,1998, 1999 <A HREF="http://www.w3.org">W3C</A>
  92 + (<A HREF="http://www.lcs.mit.edu">MIT</A>,
  93 + <A HREF="http://www.inria.fr/">INRIA</A>,
  94 + <A HREF="http://www.keio.ac.jp/">Keio</A> ), All Rights Reserved. W3C
  95 + <A HREF="http://www.w3.org/Consortium/Legal/ipr-notice.html#LegalDisclaimer">liability</A>,
  96 + <A HREF="http://www.w3.org/Consortium/Legal/ipr-notice.html#W3CTrademarks">trademark</A>,
  97 + <A HREF="http://www.w3.org/Consortium/Legal/copyright-documents.html">document
  98 + use</A> and
  99 + <A HREF="http://www.w3.org/Consortium/Legal/copyright-software.html">software
  100 + licensing</A> rules apply.
  101 +</DIV>
  102 + <H2>
  103 + Table of Contents
  104 + </H2>
  105 + <P>
  106 + <A HREF="#Abstract">Abstract</A>
  107 + <P>
  108 + <A HREF="#1">1. Introduction</A>
  109 + <P>
  110 + <A HREF="#11">1.1 Wireless networks</A>
  111 + <P>
  112 + <A HREF="#12">1.2 Goals of this work</A>
  113 + <P>
  114 + <A HREF="#2">2. Metadata and profiles</A>
  115 + <P>
  116 + <A HREF="#3">3. Composite Capability/Preferences Profiles (CC/PP)</A>
  117 + <P>
  118 + <A HREF="#31">3.1 Inline example</A>
  119 + <P>
  120 + <A HREF="#32">3.2 Indirect references</A>
  121 + <P>
  122 + <A HREF="#33">3.3 Runtime changes</A>
  123 + <P>
  124 + <A HREF="#4">4. Protocol considerations</A>
  125 + <P>
  126 + <A HREF="#5">5. Summary</A>
  127 + <P>
  128 + <A HREF="#References">References</A>
  129 + <H2>
  130 + <A NAME="Abstract">Abstract</A>
  131 + </H2>
  132 + <P>
  133 + In this note we describe a method for using RDF, the Resource Description
  134 + Format of the W3C, to create a general, yet extensible framework for describing
  135 + user preferences and device capabilities. This information can be provided
  136 + by the user to servers and content providers. The servers can use this
  137 + information describing the user's preferences to customize the service or
  138 + content provided. The ability of RDF to reference profile information via
  139 + URLs assists in minimizing the number of network transactions required to
  140 + adapt content to a device, while the framework fits well into the current
  141 + and future protocols being developed a the W3C and the WAP Forum.
  142 + <H2>
  143 + <A NAME="1">1. Introduction</A>
  144 + </H2>
  145 + <P>
  146 + This document describes the rationale and design of a profile service to
  147 + describe the capabilities and preferences of Web enabled applications. A
  148 + Composite Capability/Preference Profile (CC/PP) is a collection of the
  149 + capabilities and preferences associated with user and the agents used by
  150 + the user to access the World Wide Web. These user agents include the hardware
  151 + platform, system software and applications used by the user. User agent
  152 + capabilities and references can be thought of as metadata or properties and
  153 + descriptions of the user agent hardware and software.
  154 + <P>
  155 + A description of the user's capabilities and preferences is necessary but
  156 + insufficient to provide a general content negotiation solution. A general
  157 + framework for content negotiation requires a means for describing the meta
  158 + data or attributes and preferences of the user and his/hers/its agents, the
  159 + attributes of the content and the rules for adapting content to the capabilities
  160 + and preferences of the user. The current mechanisms, such as accept headers
  161 + and &lt;alt&gt; tags, are somewhat limited. Future services will be more
  162 + demanding. For example: the content might be authored in multiple languages
  163 + with different levels of confidence in the translation and the user might
  164 + be able to understand multiple languages with different levels of proficiency.
  165 + To complete the negotiation some rule is needed for selecting a version of
  166 + the document based on weighing the user's proficiency in different languages
  167 + against the quality of the documents various translations.
  168 + <P>
  169 + This proposal focuses on the design of a user agent profile service based
  170 + on XML/RDF. RDF, the Resource Description Format
  171 + [<A HREF="#[RDF]">RDF</A>][<A HREF="#[RDF-Schema]">RDF-Schema</A>], was designed
  172 + by the W3C consortium. There is a specification that describes how to encode
  173 + RDF using XML. RDF was designed to describe the machine understandable properties
  174 + of web content. In this proposal we explore to use of RDF to describe
  175 + capabilities and preferences associated with a user and the hardware and
  176 + software agents used to access the web. We expect the use of a common technology
  177 + to encode metadata describing both content and a user's preferences will
  178 + encourage the adoption of the technology and simplify the use of metadata
  179 + in the Web. Hopefully, powerful tools for dealing with XML and RDF, some
  180 + of which are already under development, will be available.
  181 + <P>
  182 + Some potentially complex negotiation may have to take place between the content
  183 + or the server of the content and the user of the content. For example: the
  184 + content might be authored in multiple languages with different levels of
  185 + confidence in the translation and the user might be able to understand multiple
  186 + languages with different levels of proficiency. Though we hope that the use
  187 + of RDF to encode the metadata describing the content and the user's preferences
  188 + will facilitate the development of solutions to these kinds of complex
  189 + negotiations, the implementation of appropriate rules for the negotiation
  190 + is left to application developers.
  191 + <P>
  192 + Alternate methods for describing the attributes or meta data of documents
  193 + are under investigation by other organizations such as the IETF Content
  194 + Negotiation [<A HREF="#CONNEG">CONNEG</A>] working group. Though this proposal
  195 + is not directly compatible with the IETF CONNEG proposals currently under
  196 + development, RDF allows the use of multiple vocabularies. Hopefully, this
  197 + will provide a means for interoperability, at least at the level of attribute
  198 + vocabularies. The CONNEG working group is also developing a media feature
  199 + matching algebra. Efforts are underway to insure that the CONNEG algebra
  200 + and RDF are complementary technologies. In addition to the IETF we are
  201 + particularly concerned about the WAPForum and ETSI. The success of the CC/PP
  202 + effort will undoubtedly hinge on our ability to cooperate with those
  203 + organizations.
  204 + <H3>
  205 + <A NAME="11">1.1 Wireless Networks</A>
  206 + </H3>
  207 + <P>
  208 + Compared to the typical wireline data networks available to corporate desktop
  209 + users, wireless networks are more expensive, provide less bandwidth, with
  210 + higher latency and less reliability. SMS data service on GSM networks provides
  211 + 22 bytes (!) per second to a typical mobile host. The situation is rapidly
  212 + changing. Emerging packet oriented, cellular networks, such as CDPD and CDMA,
  213 + and with packet oriented bearer technologies such as GPRS and EDGE are providing
  214 + higher bandwidth and lower latency. Within the next decade we should see
  215 + the deployment of "third generation" cellular networks that provide low latency
  216 + and megabit bandwidth to mobile hosts.
  217 + <P>
  218 + But today's wireless networks are slow and tomorrow's wireless networks will
  219 + be slow compared to tomorrow's wireline networks. Protocols designed for
  220 + wireline networks without regard for the limitations of wireless networks
  221 + often exhibit undesirable behavior when deployed on wireless networks.
  222 + <P>
  223 + CC/PPs are intended to provide information necessary to adapt the content
  224 + and the content delivery mechanisms to best fit the capabilities and preferences
  225 + of the user and its agents. Protocol design is beyond the scope of this group,
  226 + however, the use of CC/PPs does have some impact on web protocols and in
  227 + this section some of those issues are discussed. The design and implementation
  228 + of HTTP-NG is being actively carried out by another group. In this section
  229 + we limit our discussion to some of the issues that many need to be considered
  230 + in HTTPng or similar protocols:
  231 + <DL>
  232 + <DT>
  233 + Profiles can be quite verbose.
  234 + <DD>
  235 + We need ways to reduce the overhead for low bandwidth networks like the cell
  236 + phone network.
  237 + <DT>
  238 + CC/PPs should be cacheable on gateways/proxies.
  239 + <DT>
  240 + Components used to construct CC/PPs, such as vendor default profiles, should
  241 + be independently cacheable.
  242 + <DT>
  243 + Changes to the active profile should be very lightweight.
  244 + <DD>
  245 + We don't want to have to resend the whole profile to turn off sound.
  246 + <DT>
  247 + The protocols must be able to exploit gateways and proxies if they exist.
  248 + <DT>
  249 + Though vendors may be able to supply URLs that name default profiles, the
  250 + client devices may store this information in case the vendor site&nbsp; is
  251 + unreachable for some reason.
  252 + </DL>
  253 + <H3>
  254 + <A NAME="12">1.2 Goals of this work</A>
  255 + </H3>
  256 + <P>
  257 + The goal of this work is to:
  258 + <DL>
  259 + <DT>
  260 + Enhance content negotiation speed through a standardized format for user
  261 + agent profiles.
  262 + <DT>
  263 + Minimize content negotiation transactions through the use of standardized
  264 + formats and referencing URLs.
  265 + <DT>
  266 + Recognize and support the composition of preferences and profiles originating
  267 + from multiple sources (e.g. hardware vendors, software vendors, users, etc.).
  268 + <DT>
  269 + Enable user control over user agent information (e.g. personal preferences,
  270 + etc.).
  271 + <DT>
  272 + Enable the use of compact data formats, such as tokenized XML
  273 + [<A HREF="#[TokenXML]">TokenXML</A>], for content negotiation.
  274 + <DT>
  275 + Support the presence of multiple network elements (proxies, servers, etc.)
  276 + between the user agent and the origin server.
  277 + </DL>
  278 + <P>
  279 + The data model for the capability and preferences profile is similar to a
  280 + table of tables. Each individual table roughly compares to a significant
  281 + hardware or software component. The primary goal is to be able to describe
  282 + the desired table of tables in an unambiguous and inter operable fashion.
  283 + Secondary goals include general applicability and good performance.
  284 + <H2>
  285 + <A NAME="2">2. Metadata and profiles</A>
  286 + </H2>
  287 + <P>
  288 + In most documents on 3rd generation networks, scenarios are presented where
  289 + users will want to assert several preferential
  290 + factors[<A HREF="#IMT-2000">IMT-2000</A>]. Also, mechanisms for this exist
  291 + [<A HREF="#[Agent-attrib]">Agent-attrib</A>]. The preferences are such as:
  292 + <DL>
  293 + <DT>
  294 + preferred language
  295 + <DT>
  296 + sound on/off
  297 + <DT>
  298 + images on/off
  299 + <DT>
  300 + privacy preferences (like P3P)
  301 + <DT>
  302 + scripting on/off
  303 + <DT>
  304 + cookies on/off
  305 + <DT>
  306 + etc.
  307 + </DL>
  308 + <P>
  309 + They will also want to assert hardware platform attributes, like:
  310 + <DL>
  311 + <DT>
  312 + vendor
  313 + <DT>
  314 + model
  315 + <DT>
  316 + class of device {phone, pda, printer, etc.}
  317 + <DT>
  318 + screen size
  319 + <DT>
  320 + colors
  321 + <DT>
  322 + available bandwidth
  323 + <DT>
  324 + CPU
  325 + <DT>
  326 + memory
  327 + <DT>
  328 + input device
  329 + <DT>
  330 + secondary storage
  331 + <DT>
  332 + loudspeaker
  333 + <DT>
  334 + etc.
  335 + </DL>
  336 + <P>
  337 + We also expect them to want to assert software defined variables, such as:
  338 + <DL>
  339 + <DT>
  340 + application brand and version
  341 + <DT>
  342 + level of HTML support
  343 + <DT>
  344 + supported XML vocabularies
  345 + <DT>
  346 + Level of CSS support
  347 + <DT>
  348 + supported RDF vocabularies
  349 + <DT>
  350 + level of WAP support
  351 + <DT>
  352 + supported scripting languages(s)
  353 + <DT>
  354 + etc.
  355 + </DL>
  356 + <P>
  357 + It is interesting to note that metadata (capabilities and preferences) associated
  358 + with the device, the software used to access the web and the user of the
  359 + device could originate from different sources created at different times.
  360 + The hardware vendor might have profile information available for its products,
  361 + the software vendor might supply a default profile, and the user's preferences
  362 + might apply across multiple applications (preferred language) or change during
  363 + a session (sound on/off). If it is too complex people won't use it and if
  364 + it too slow people won't use it. The challenge is to provide an efficient
  365 + mechanism for communicating the profiles for constrained devices, such as
  366 + smart phones, using slow networks, such as GSM SMS.
  367 + <H2>
  368 + <A NAME="3">3. Composite Capability/Preferences Profiles (CC/PP)</A>
  369 + </H2>
  370 + <P>
  371 + The CC/PP proposal describes an interoperable encoding for capabilities and
  372 + preferences of user agents, specifically web browsers. The proposal is also
  373 + intended to support applications other than browsers, including email, calendars,
  374 + etc. Support for peripherals like printers and fax machines will require
  375 + other types of attributes such as type of printer, location, Postscript support,
  376 + color, etc. We believe an XML/RDF based approach would be suitable. However,
  377 + metadata descriptions of devices like printers or fax machines may use a
  378 + different scheme. Every reasonable effort will be made to provide
  379 + interoperability other important proposals.
  380 + <P>
  381 + The basic data model for a CC/PP is a collection of tables. Though RDF makes
  382 + modeling a wide range of data structures possible, it is unlikely that this
  383 + flexibility will used in the creation of complex data models for profiles.
  384 + In the simplest form each table in the CC/PP is a collection of RDF statements
  385 + with simple, atomic properties. These tables may be constructed from default
  386 + settings, persistent local changes or temporary changes made by a user. One
  387 + extension to the simple table of properties data model is the notion of a
  388 + separate, subordinate collection of default properties. Default settings
  389 + might be properties defined by the vendor. In the case of hardware the vendor
  390 + often has a very good idea of the physical properties of any given model
  391 + of product. However, the current owner of the product may be able to add
  392 + options, such as memory or persistent store or additional I/O devices that
  393 + add new properties or change the values of some original properties. These
  394 + would be persistent local changes. An example of a temporary change would
  395 + be turning sound on or off.
  396 + <P>
  397 + The profile is associated with the current network session or transaction.
  398 + Each major component may have a collection of attributes or preferences.
  399 + Examples of major components are the hardware platform upon which all the
  400 + software is executing, the software platform upon which all the applications
  401 + are hosted and each of the applications. This following is a simplified example
  402 + of the sort of data expected to be encoded in these profiles.
  403 + <P>
  404 + <B>Hardware Platform</B>
  405 + <P>
  406 + Memory = 64mb
  407 + <P>
  408 + CPU = PPC
  409 + <P>
  410 + Screen = 640*400*8
  411 + <P>
  412 + BlueTooth = Yes
  413 + <P>
  414 + <B>Software Platform</B>
  415 + <P>
  416 + OS version = 1.0
  417 + <P>
  418 + HTML version = 4.0
  419 + <P>
  420 + WML version = 1.0
  421 + <P>
  422 + Sound = ON
  423 + <P>
  424 + Images = Yes
  425 + <P>
  426 + <B>Email</B>
  427 + <P>
  428 + Language = English
  429 + <P>
  430 + ...
  431 + <P>
  432 + Some collections of properties and property values may be common to a particular
  433 + component. For example: a specific model of a smart phone may come with a
  434 + specific CPU, screen size and amount of memory by default. Gathering these
  435 + "default" properties together as a distinct RDF resource makes it possible
  436 + to independently retrieve and cache those properties. A collection of "default"
  437 + properties is not mandatory, but it may improve network performance, especially
  438 + the performance of relatively slow wireless networks.
  439 + <P>
  440 + Any RDF graph consists of nodes, arcs and leafs. Nodes are resources, arcs
  441 + are properties and leafs are property values. An RDF graph based on the previous
  442 + example that includes "Default" properties for each major component is relatively
  443 + straightforward.
  444 + <P>
  445 + <IMG HEIGHT=432 WIDTH=528 SRC="CCPP-WD-IMG.gif" ALT="">
  446 + <P>
  447 + The introduction of "Defaults" makes the graph of each major component more
  448 + of a simple tree than a table. In this example the major components are
  449 + associated with the current network session. In this case, the network session
  450 + is serving as the root of a tree that includes the trees of each major component.
  451 + RDF was originally intended to describe metadata associated with documents
  452 + or other objects that can be named via a URI. The closest thing to a "document"
  453 + associated with a CC/PP is the current network session.
  454 + <P>
  455 + From the point of view of any particular network transaction the only property
  456 + or capability information that is important is whatever is "current". The
  457 + network transaction does not care about the differences between defaults
  458 + or persistent local changes, it only cares about the capabilities and preferences
  459 + that apply to the current network transaction. Because this information may
  460 + originate from multiple sources and because different parts of the capability
  461 + profile may be differentially cached, the various components must be explicitly
  462 + described in the network transaction.
  463 + <P>
  464 + The CC/PP is the encoding of profile information that needs to be shared
  465 + between a client and a server, gateway or proxy. The persistent encoding
  466 + of profile information and the encoding for the purposes of interoperability
  467 + (communication) need not be the same. In this document we consider the use
  468 + of XML/RDF as the interoperability encoding. Persistent storage of profile
  469 + information is left to the individual applications.
  470 + <H3>
  471 + <A NAME="31">3.1 Inline example</A>
  472 + </H3>
  473 + <P>
  474 + Consider a more realistic example of inline encoding of a CC/PP for a
  475 + hypothetical smart phone. This is an example of the type of information a
  476 + phone might provide to a gateway/proxy/server. Note that we do not explicitly
  477 + name the "current network session". Instead, the profiles of each major component
  478 + is collected in a "Bag". This is probably not necessary since the document
  479 + in question, the network session, is unlikely to contain additional RDF.
  480 + <PRE>&lt;?xml version="1.0"?&gt;
  481 +&lt;rdf:RDF
  482 +xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  483 +xmlns:prf="http://www.w3.org/TR/WD-profile-vocabulary#"&gt;
  484 +&nbsp;&lt;rdf:Description about="HardwarePlatform"&gt;
  485 +&nbsp; &nbsp;&lt;prf:Defaults
  486 +&nbsp; &nbsp; Vendor="Nokia"
  487 +&nbsp; &nbsp; Model="2160"
  488 +&nbsp; &nbsp; Type="PDA"
  489 +&nbsp; &nbsp; ScreenSize="800x600x24"
  490 +&nbsp; &nbsp; CPU="PPC"
  491 +&nbsp; &nbsp; Keyboard="Yes"
  492 +&nbsp; &nbsp; Memory="16mB"
  493 +&nbsp; &nbsp; Bluetooth="YES"
  494 +&nbsp; &nbsp; Speaker="Yes" /&gt;
  495 +&nbsp; &lt;prf:Modifications
  496 +&nbsp; &nbsp; Memory="32mB" /&gt;
  497 +&nbsp;&lt;/rdf:Description&gt;
  498 +&nbsp;&lt;rdf:Description about="SoftwarePlatform"&gt;
  499 +&nbsp; &lt;prf:Defaults
  500 +&nbsp; &nbsp;OS="EPOC1.0"
  501 +&nbsp; &nbsp;HTMLVersion="4.0"
  502 +&nbsp; &nbsp;JavaScriptVersion="4.0"
  503 +&nbsp; &nbsp;WAPVersion="1.0"
  504 +&nbsp; &nbsp;WMLScript="1.0" /&gt;
  505 +&nbsp; &lt;prf:Modifications
  506 +&nbsp; &nbsp;Sound="Off"
  507 +&nbsp; &nbsp;Images="Off" /&gt;
  508 +&nbsp;&lt;/rdf:Description&gt;
  509 +&nbsp;&lt;rdf:Description about="EpocEmail1.0"&gt;
  510 +&nbsp; &nbsp;&lt;prf:Defaults
  511 +&nbsp; &nbsp;HTMLVersion="4.0" /&gt;
  512 +&nbsp;&lt;/rdf:Description&gt;
  513 +&nbsp; &lt;rdf:Description about="EpocCalendar1.0"&gt;
  514 +&nbsp; &lt;prf:Defaults
  515 +&nbsp; &nbsp;HTMLVersion="4.0" /&gt;
  516 +&nbsp;&lt;/rdf:Description&gt;
  517 +&nbsp; &lt;rdf:Description about="UserPreferences"&gt;
  518 +&nbsp;&lt;prf:Defaults
  519 +&nbsp; &nbsp; &nbsp; &nbsp; Language="English"/&gt;
  520 +&nbsp;&lt;/rdf:Description&gt;
  521 +&lt;/rdf:RDF&gt;
  522 +
  523 +</PRE>
  524 + <P>
  525 + This sample profile is a collection of the capabilities and preferences
  526 + associated with either a user or the hardware platform or a software component.
  527 + Each collection of capabilities and preferences are organized within a
  528 + description block. These description blocks may contain subordinate description
  529 + blocks to describe default attributes or other collections of attributes.
  530 + <P>
  531 + There is nothing that prevents the use of multiple namespaces. This might
  532 + be useful to either define experimental or non-standard attributes or to
  533 + define application specific capabilities and preferences.
  534 + <P>
  535 + Delivering all of the CC/PP at one time, inline makes some simplifications
  536 + possible. If the user has overridden some default property, then there is
  537 + no reason to send the default - all that is needed is to send the current
  538 + value for that attribute. In the example above, there is no reason to send
  539 + the hardware platform's default setting of "Memory=16mb" since the user has
  540 + upgraded the memory to 32mb.
  541 + <P>
  542 + The significance of an attribute is generally limited to the component it
  543 + is describing. For example, each software application can define a value
  544 + for a "Version" attribute. This indicates the version of the particular
  545 + application being described. In general, side effects that extend beyond
  546 + the bounds of a particular component are not defined in this document. The
  547 + relationship between components is system and application dependent.
  548 + <P>
  549 + The major disadvantage of this format is that it is verbose. Some networks
  550 + are very slow and this would be a moderately expensive way to handle metadata.
  551 + There are several optimizations possible to help deal network performance
  552 + issues. One strategy is compressed form of XML
  553 + [<A HREF="#[TokenXML]">TokenXML</A>] and a complementary strategy is to use
  554 + indirect references.
  555 + <H3>
  556 + <A NAME="32">3.2 Indirect References</A>
  557 + </H3>
  558 + <P>
  559 + Instead of enumerating each set of attributes, a remote reference can be
  560 + used to name a collection of attributes such as the hardware platform defaults.
  561 + This has the advantage of enabling the separate fetching and caching of
  562 + functional subsets. This might be very nice if the link between the gateway
  563 + or the proxy and the client agent was slow and the link between the gateway
  564 + or proxy and the site named by the remote reference was fast - a typical
  565 + case when the user agent is a smart phone. Another advantage is the
  566 + simplification of the development of different vocabularies for hardware
  567 + vendors and software vendors (assuming this is a good thing).
  568 + <P>
  569 + The following example uses indirect references. First the profile provided
  570 + by the user agent. It refers to default profiles provided by the hardware
  571 + and software platform vendors:
  572 + <P>
  573 + <TT>-----------------------------------</TT> <BR>
  574 + <PRE>&lt;?xml version="1.0"?&gt;
  575 +&lt;rdf:RDF
  576 +xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  577 +xmlns:prf="http://www.w3.org/TR/WD-profile-vocabulary#"&gt;
  578 + &lt;rdf:Description about="HardwarePlatform"&gt;
  579 + &lt;prf:Defaults&gt;
  580 + &lt;rdf:li resource="http://www.nokia.com/profiles/2160"/&gt;
  581 + &lt;/prf:Defaults&gt;
  582 + &lt;prf:Modifications
  583 + Memory="32mB"/&gt;
  584 + &lt;/rdf:Description&gt;
  585 + &lt;rdf:Description about="SoftwarePlatform"&gt;
  586 + &lt;prf:Defaults&gt;
  587 + &lt;rdf:li resource="http://www.symbian.com/profiles/pda"/&gt;
  588 + &lt;/prf:Defaults&gt;
  589 + &lt;prf:Modifications
  590 + Sound="Off"
  591 + Images="Off" /&gt;
  592 + &lt;/rdf:Description&gt;
  593 + &lt;rdf:Description about="EpocEmail"&gt;
  594 +&nbsp;&nbsp; &nbsp;&lt;prf:Defaults&gt;
  595 + &lt;rdf:li resource="http://www.symbian.com/epoc/profiles/epocemail" /&gt;
  596 + &lt;/prf:Defaults&gt;
  597 + &lt;/rdf:Description&gt;
  598 +&nbsp; &lt;rdf:Description about="EpocCalendar"&gt;
  599 +&nbsp;&nbsp;&nbsp; &lt;prf:Defaults&gt;
  600 + &lt;rdf:li resource="http://www.symbian.com/epoc/profiles/epoccal"/&gt;
  601 + &lt;/prf:Defaults&gt;
  602 + &lt;/rdf:Description&gt;
  603 +&nbsp; &lt;rdf:Description about="UserPreferences"&gt;
  604 + &lt;prf:Defaults
  605 + Language="English" /&gt;
  606 +&lt;/rdf:Description&gt;
  607 +&lt;/rdf:RDF&gt;
  608 +</PRE>
  609 + <P>
  610 + -----------------------------------------------------
  611 + <P>
  612 + Next, the profile provided by the hardware vendor.
  613 + <P>
  614 + ----------------------------------------------------- <BR>
  615 + <PRE>&lt;?xml version="1.0"?&gt;
  616 +&lt;rdf:RDF
  617 +xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"&gt;
  618 +&lt;rdf:Description
  619 +Vendor="Nokia"
  620 +Model="2160"
  621 +Type="PDA"
  622 +ScreenSize="800x600x24"
  623 +CPU="PPC"
  624 +Keyboard="Yes"
  625 +Memory="16mB"
  626 +Bluetooth="YES"
  627 +Speaker="Yes" /&gt;
  628 +&lt;/rdf:RDF&gt;
  629 +</PRE>
  630 + <P>
  631 + -----------------------------------------------------
  632 + <P>
  633 + Finally, the profiles provided by the software platform and application vendors.
  634 + <P>
  635 + ----------------------------------------------------- <BR>
  636 + <PRE>&lt;?xml version="1.0"?&gt;
  637 +&lt;rdf:RDF
  638 +xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"&gt;
  639 +&lt;rdf:Description
  640 +OS="EPOC1.0"
  641 +HTMLVersion="4.0"
  642 +JavaScriptVersion="4.0"
  643 +WAPVersion="1.0"
  644 +WMLScript="1.0" /&gt;
  645 +&lt;/rdf:RDF&gt;
  646 +<TT>-----------------------------------------------------------------------</TT>
  647 +</PRE>
  648 + <PRE>
  649 +&lt;?xml version="1.0"?&gt;
  650 +&lt;rdf:RDF
  651 +xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"&gt;
  652 +&lt;Description
  653 +&nbsp;&nbsp;&nbsp; Version="EpocEmail1.0"
  654 +&nbsp;&nbsp;&nbsp; HTMLVersion="4.0" /&gt;
  655 +&lt;/rdf:RDF&gt;
  656 +</PRE>
  657 + <P>
  658 + <TT>------------------------------------------------------------------------</TT>
  659 + <PRE>
  660 +&lt;?xml version="1.0"?&gt;
  661 +&lt;rdf:RDF
  662 +xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"&gt;
  663 +&lt;Description
  664 +&nbsp;&nbsp;&nbsp; Version="EpocCalendar1.0"
  665 +&nbsp;&nbsp;&nbsp; HTMLVersion="4.0" /&gt;
  666 +&lt;/rdf:RDF&gt;
  667 +</PRE>
  668 + <P>
  669 + <TT>-----------------------------------------------------</TT>
  670 + <P>
  671 + All we did in the second example was group different collections of default
  672 + attributes together in such a way that they could be named by a URL. Since
  673 + the hardware and software platform default profiles were independently described
  674 + using a URL, they can be separately fetched and cached. When an application
  675 + in the server/gateway/proxy uses RDF to process the CC/PP it may encounter
  676 + attrributes with default values and user specified values. It is up the
  677 + application to enforce the rule that user specified attributes over ride
  678 + default values. RDF does not provide a convenient mechanism for implementing
  679 + that rule.
  680 + <H3>
  681 + <A NAME="33">3.3 Runtime Changes</A>
  682 + </H3>
  683 + <P>
  684 + It is worth noting again that the information we are most concerned with
  685 + is the <B>current</B> profile. Default properties might have some importance,
  686 + for example, they may be worth caching independently of any particular session
  687 + or user. However, the key is for the client and the server/gateway/proxy
  688 + to have a consistent view of the current profile.
  689 + <P>
  690 + It is important to be able to add to and modify attributes associated with
  691 + the current CC/PP. We need to be able to modify the value of certain attributes,
  692 + such as turning sound on and off and we need to make persistent changes to
  693 + reflect things like a memory upgrade. We need to be able to override the
  694 + default profile provided by the vendor. However, we only need to concern
  695 + ourselves with changes to the current profile. Reflecting changes to preferences
  696 + or capabilities in persistent storage is beyond the scope of this document.
  697 + <P>
  698 + Our problem is to propogate changes to the current CC/PP to the
  699 + server/gateway/proxy. One solution is to transmit the entire CC/PP with each
  700 + change. It would replace the previous profile. This is not ideal for slow
  701 + networks. An alternative is to send only the changes. Thus if Sound were
  702 + to be changed from "Off" to "On" the only data that would need to be sent
  703 + would be:
  704 + <P>
  705 + &lt;?xml version="1.0"?&gt;
  706 + <P>
  707 + &lt;rdf:RDF
  708 + <P>
  709 + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
  710 + <P>
  711 + xmlns:prf="http://www.w3C.org/TR/WD-profile-vocabulary#"&gt;
  712 + <P>
  713 + &nbsp; &lt;Description about="SoftwarePlatform"
  714 + <P>
  715 + &nbsp;&nbsp;&nbsp; Sound="On" /&gt;
  716 + <P>
  717 + &lt;/rdf:RDF&gt;&nbsp;
  718 + <P>
  719 + Alternatively, the <TT>&lt;Modifications&gt;</TT> element could be used to
  720 + communicate changes.
  721 + <H2>
  722 + <A NAME="4">4. Protocol considerations</A>
  723 + </H2>
  724 + <P>
  725 + When used in the context of a web browsing application, a CC/PP should be
  726 + associated with a notion of a current session rather than a user or a node.
  727 + HTTP and WSP (the WAP session protocol) both define different session semantics.
  728 + The client, server and and gateways and proxies may already have their own,
  729 + well defined notions of what constitutes a connection or a session. Our protocol
  730 + strategy is to send as little information as possible and if anyone is missing
  731 + something, they have to ask for it. If there is good reason to believe that
  732 + someone is going to ask for a profile, the client can elect to send the most
  733 + efficient form of the profile that makes sense.
  734 + <P>
  735 + Consider the following possible interaction between a server and a client.
  736 + When the Client begins a session it sends a minimal profile using as much
  737 + indirection as possible.&nbsp; If the server/gateway/proxy does not have
  738 + a CC/PP for this session, then it asks for one. When a profile is sent the
  739 + client tries a minimal form, i.e., it uses as much indirection as possible
  740 + and only names the non default attributes of the profile. The
  741 + server/gateway/proxy can try to fill in the profile using the indirect HTTP
  742 + references (which may be independently cached). If any of these fail, a request
  743 + for additional data can be sent to the user which can reply with a fully
  744 + enumerated profile. If the client changes the value of an attribute, such
  745 + as turning sound off, only that change needs to be sent.
  746 + <P>
  747 + It is likely that servers and gateways/proxies will be concerned with different
  748 + preferences. For example, the server may need to know which language the
  749 + user prefers and the gateway may have responsibility to trim images to 8
  750 + bits of color (to save bandwidth). However, the exact use of profile information
  751 + by each server/gateway/proxy is hard to predict. Therefore gateways/proxies
  752 + should forward all profile information to the server. Any requests for profile
  753 + information that the gateway/proxy cannot satisfy should be forwarded to
  754 + the client.
  755 + <P>
  756 + The ability to compose a profile from sources provided by third parties at
  757 + run-time exposes the system to a new type of attack. For example, if the
  758 + URL that named the hardware default platform defaults were to be compromised
  759 + via an attack on DNS it would be possible to load incorrect profile information.
  760 + If cached within a server/gateway/proxy this could be a serious denial of
  761 + service attack. If this is a serious enough problem it may be worth adding
  762 + digital signatures to the URLs used to refer to profile components.
  763 + <P>
  764 + New versions of HTTP such as HTTPng should be able to support the CC/PP framework
  765 + without difficulty. HTTP 1.0 servers and proxies may not be able to handle
  766 + CC/PPs. Clients need to be able to detect communication with old servers
  767 + and adapt the protocol accordingly. HTTP 1.1, perhaps via the Mandatory/Optional
  768 + Extension Framework should be able to support sessions and profiles. At the
  769 + least, 1.1 proxy servers should pass requests that include CC/PPs on to servers
  770 + in the hope that the servers will understand the requests. New versions of
  771 + 1.1 proxies and servers should be able to use CC/PPs.
  772 + <P>
  773 + This protocol discussion is not a specific proposal for HTTP or WSP. Its
  774 + intent is merely to illustrate how the design allows us to exploit the
  775 + cachability of both the current session state and the default profiles.
  776 + <P>
  777 + Since the original writing of this document, a W3C Note has been produced,
  778 + which describes how to use the HTTP 1.1 extension framework to implement
  779 + a mechanism for communicating CC/PP profiles and profile differences. See
  780 + the note, <A HREF="http://www.w3.org/TR/NOTE-CCPPexchange">CC/PP exchange
  781 + protocol based on HTTP Extension Framework</A> <A HREF="# [Ohto]">[Ohto]</A>,
  782 + for more information.
  783 + <H2>
  784 + <A NAME="5">5. Summary</A>
  785 + </H2>
  786 + <P>
  787 + In this document, we have described a proposal for the use of XML/RDF to
  788 + describe user preferences and the capabilities of the device and software
  789 + used to access the Web. Encodings of hypothetical user profiles were used
  790 + to illustrate some of the benefits of RDF. Some of the possible ramifications
  791 + for Web protocol design were discussed.
  792 + <H2>
  793 + <A NAME="References">References</A>
  794 + </H2>
  795 + <P>
  796 + <A NAME="[Agent-attrib]">[Agent-attrib]</A>
  797 + <A HREF="http://www.w3.org/TR/NOTE-agent-attributes">Client-Specific Web
  798 + Services by Using User Agent Attributes. Tomihisa Kamada, Tomohiko Miyazaki.
  799 + W3C Note.</A>
  800 + <P>
  801 + <A NAME="[CONNEG]">[CONNEG]</A>
  802 + <A HREF="http://www.ietf.org/html.charters/conneg-charter.html">IETF working
  803 + group on content negotiation</A>
  804 + <P>
  805 + <A NAME="[IMT-2000]">[IMT-2000]</A> <A HREF="http://www.imt-2000.com">Ericsson
  806 + in Wideband Wireless Multimedia</A>.
  807 + <P>
  808 + <A NAME="[MIME]">[MIME]</A>
  809 + <A HREF="http://info.internet.isi.edu:80/in-notes/rfc/files/rfc2045.txt">RFC
  810 + 2045 Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet
  811 + Message Bodies, Borenstein N., Freed N., 1996/11/27</A>
  812 + <P>
  813 + <A NAME="[Ohto]">[Ohto]
  814 + </A><A HREF="http://www.w3.org/TR/NOTE-CCPPexchange">CC/PP exchange protocol
  815 + based on HTTP Extension Framework</A>
  816 + <P>
  817 + <A NAME="[RDF]">[RDF]</A>
  818 + <A HREF="http://www.w3.org/TR/WD-rdf-syntax/">Resource Description Framework,
  819 + (RDF) Model and Syntax Specification. Lassila O., Swick R. W3C Working
  820 + Draft.</A>
  821 + <P>
  822 + <A NAME="[RDF-Schema]">[RDF-Schema]</A>
  823 + <A HREF="http://www.w3.org/TR/WD-rdf-schema/">Resource Description Framework
  824 + (RDF) Schema Specification. Brickley, D., Guha, R.V. , Layman, A., W3C Working
  825 + Draft.</A>
  826 + <P>
  827 + <A NAME="[TokenXML]">[TokenXML]</A>
  828 + <A HREF="http://www1.wapforum.org/tech/terms.asp?doc=SPEC-WBXML-19990616.pdf">Binary
  829 + XML Content Format Specification</A>
  830 +</BODY></HTML>
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
  2 + "http://www.w3.org/TR/REC-html40/loose.dtd">
  3 +<html lang="en">
  4 +<head>
  5 +<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6 +<meta name="PRAGMA" content="no-cache">
  7 +<meta name="RCS-Id" content="$Id: Overview.html,v 1.6 1999/07/09 17:42:28 renaudb Exp $">
  8 +<title>Mathematical Markup Language (MathML) 1.01 Specification</title>
  9 +<link rel="stylesheet" type="text/css" media="screen"
  10 + href="/StyleSheets/TR/W3C-REC.css">
  11 +</head>
  12 +<body>
  13 +
  14 +<div class="head">
  15 +
  16 +<a href="http://www.w3.org/"><img height="48" width="72"
  17 +alt="W3C" src="/Icons/w3c_home.gif"></a>
  18 +
  19 +<h1>Mathematical Markup Language (MathML<sup>&#8482;</sup>) 1.01
  20 +Specification</h1>
  21 +
  22 +<h2>W3C Recommendation, revision of 7 July 1999</h2>
  23 +
  24 +<p>
  25 +<I>REC-MathML-19980407; revised 19990707</I>
  26 +</p>
  27 +
  28 +<dl>
  29 +<dt>This version:</dt>
  30 +<dd>
  31 +<a href="http://www.w3.org/1999/07/REC-MathML-19990707">http://www.w3.org/1999/07/REC-MathML-19990707</a>
  32 +</dd>
  33 +<dt>Latest version:</dt>
  34 +<dd>
  35 +<a href="http://www.w3.org/TR/REC-MathML">http://www.w3.org/TR/REC-MathML</a>
  36 +</dd>
  37 +<dt>Previous version:</dt>
  38 +<dd>
  39 +<a href="http://www.w3.org/TR/1998/REC-MathML-19980407">http://www.w3.org/TR/1998/REC-MathML-19980407</a>
  40 +</dd>
  41 +<dt>Editors:</dt>
  42 +<dd>
  43 +Patrick Ion <a href="mailto:ion@ams.org">&lt;ion@ams.org></a><br>
  44 +(Mathematical Reviews / American Mathematical Society) <br>
  45 +</dd>
  46 +<dd>
  47 +Robert Miner <a
  48 +href="mailto:rminer@geomtech.com">&lt;rminer@geomtech.com></a><br>
  49 +(Geometry Technologies, Inc.) <br>
  50 +</dd>
  51 +<dt>Principal Writers:</dt>
  52 +<dd>
  53 +Stephen Buswell, Stan Devitt, Angel Diaz, Patrick Ion, Robert
  54 +Miner,<br>
  55 +Nico Poppelier, Bruce Smith, Neil Soiffer, Robert Sutor, Stephen Watt
  56 +</dd>
  57 +</dl>
  58 +
  59 +<p class="copyright"><a
  60 +href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright"><br>
  61 +Copyright</a> &copy; 1999 <a href="http://www.w3.org/">W3C</a> (<a
  62 +href="http://www.lcs.mit.edu/">MIT</a>, <a
  63 +href="http://www.inria.fr/">INRIA</a>, <a
  64 +href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C
  65 +<a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>,
  66 +<a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a>,
  67 +<a href="http://www.w3.org/Consortium/Legal/copyright-documents">document
  68 +use</a> and
  69 +<a href="http://www.w3.org/Consortium/Legal/copyright-software">software
  70 +licensing</a> rules apply.</p>
  71 +<hr title="Separator for header">
  72 +
  73 +</div>
  74 +
  75 +<h2><a name="abstract">Abstract</a></h2>
  76 +
  77 +<p>This specification defines the Mathematical Markup
  78 +Language, or
  79 +<acronym title="Mathematical Markup Language">MathML</acronym>.
  80 +MathML is an XML application for describing mathematical
  81 +notation and capturing both its structure and content. The
  82 +goal of MathML is to enable mathematics to be served,
  83 +received, and processed on the Web, just as
  84 +<acronym title="Hypertext Markup Language">HTML</acronym>
  85 +has enabled this functionality for text.</p>
  86 +
  87 +<p>This specification of the markup language MathML is
  88 +intended primarily for a readership consisting of those who
  89 +will be developing or implementing renderers or editors using
  90 +it, or software that will communicate using MathML as a
  91 +protocol for input or output. It is not a User's Guide but
  92 +rather a reference document.</p>
  93 +
  94 +<p>This document begins with background information on
  95 +mathematical notation, the problems it poses, and the
  96 +philosophy underlying the solutions MathML proposes. MathML
  97 +can be used to encode both mathematical notation and
  98 +mathematical content. Twenty-eight of the MathML tags
  99 +describe abstract notational structures, while another
  100 +seventy-five provide a way of unambiguously specifying the
  101 +intended meaning of an expression. Additional chapters
  102 +discuss how the MathML content and presentation elements
  103 +interact, and how MathML renderers might be implemented and
  104 +should interact with browsers. Finally, this document
  105 +addresses the issue of MathML entities (extended characters)
  106 +and their relation to fonts.</p>
  107 +
  108 +<p>While MathML is human-readable it is anticipated that, in
  109 +all but the simplest cases, authors will use equation
  110 +editors, conversion programs, and other specialized software
  111 +tools to generate MathML. Several early versions of such
  112 +MathML tools already exist, and a number of others, both
  113 +freely available software and commercial products, are under
  114 +development.</p>
  115 +
  116 +<h2><a name="status">Status of this document</a></h2>
  117 +
  118 +<p>This document has been reviewed by
  119 +<acronym title="World Wide Web Consortium">W3C</acronym>
  120 +Members and other interested parties and has been endorsed by
  121 +the Director as a W3C Recommendation. It is a stable document
  122 +and may be used as reference material or cited as a normative
  123 +reference from another document. W3C's role in making the
  124 +Recommendation is to draw attention to the specification and
  125 +to promote its widespread deployment. This enhances the
  126 +functionality and interoperability of the Web.</p>
  127 +
  128 +<p>The fundamental
  129 +<a href="http://www.w3.org/pub/WWW/TR/REC-xml">eXtensible Markup
  130 +Language
  131 +(<acronym title="Extensible Markup
  132 +Language">XML</acronym>)</a>
  133 +1.0 specification upon which MathML is based has been adopted
  134 +as a W3C Recommendation. Should future changes in the XML
  135 +specification necessitate changes in the MathML specification,
  136 +it is the intention of the W3C Math Working Group to issue a
  137 +revision of the MathML specification. However, any changes
  138 +are very unlikely to be substantial.</p>
  139 +
  140 +<p>Most of this document represents technology tested by multiple
  141 +implementations. A summary of MathML rendering and authoring software
  142 +is described on the <a href="http://www.w3.org/Math">W3C Math Working
  143 +Group</a> home page.</p>
  144 +
  145 +<p>The <a href="http://lists.w3.org/Archives/Public/www-math">www-math</a>
  146 +mailing list is a public forum for questions and comments about MathML
  147 +and issues related to putting math on the Web.</p>
  148 +
  149 +<P>The W3C Math Working Group intends further development of
  150 +recommendations for mathematics on the Web, as set out
  151 +<a href="chapter1.html#goals">below</a>.</p>
  152 +
  153 +<p>A list of current W3C Recommendations and other technical reports
  154 +can be found at <a href="http://www.w3.org/TR">http://www.w3.org/TR</a>.</P>
  155 +
  156 +<p><em>This document is a revised version of the document first released
  157 +on 7 April 1998. <a href="appendixG.html">Changes from the original
  158 +version</a> are only editorial in nature. The present W3C Math
  159 +Working Group is working on further improvements of MathML.</em></p>
  160 +
  161 +
  162 +<h3>Available formats</h3>
  163 +<p>The MathML 1.01 W3C Recommendation is made available in different formats
  164 +from the <a HREF="http://www.w3.org/Math">W3C Math WG's site</A>. In case
  165 +of a discrepancy between any of the derived forms and that found in
  166 +the W3C's archive of Recommendations the definitive version is naturally
  167 +the Recommendation. At first it is expected that zipped and gzipped
  168 +bundles will be made available, but such easily printable formats as
  169 +PostScript or PDF may be supplied.</p>
  170 +
  171 +<h3>Available languages</h3>
  172 +
  173 +<p>The English version of this specification is the only normative
  174 +version. However, for translations of this document, see
  175 +<a href="http://www.w3.org/MarkUp/mathml101-updates/translations.html">
  176 +http://www.w3.org/MarkUp/mathml101-updates/translations.html</a>.
  177 +</p>
  178 +
  179 +
  180 +<h3>Errata</h3>
  181 +
  182 +<dl>
  183 +<dt>The list of known errors in this specification is available at:
  184 +<dd><a href="http://www.w3.org/MarkUp/mathml101-updates/errata.html">
  185 +http://www.w3.org/MarkUp/mathml101-updates/errata.html</a>.
  186 +</dl>
  187 +
  188 +<p>Please report errors in this document to <a
  189 +href="mailto:www-math@w3.org">www-math@w3.org</a>.
  190 +</p>
  191 +
  192 +<h2><a name="contents">Table of contents</a></h2>
  193 +
  194 +
  195 +<p><a href="toc.html"><b>Extended Table of Contents</b></a></p>
  196 +
  197 +<ul>
  198 +<li><a href="chapter1.html">Chapter 1. Introduction</a></li>
  199 +<li><a href="chapter2.html">Chapter 2. MathML Fundamentals</a></li>
  200 +<li><a href="chap3_1.html">Chapter 3. Presentation Markup</a></li>
  201 +<li><a href="chap4_1.html">Chapter 4. Content Markup</a></li>
  202 +<li><a href="chapter5.html">Chapter 5. Mixing Presentation and Content </a></li>
  203 +<li><a href="chapter6.html">Chapter 6. Entities, Characters and Fonts</a></li>
  204 +<li><a href="chapter7.html">Chapter 7. Implementing MathML</a></li>
  205 +</ul>
  206 +
  207 +<ul>
  208 +<li><a href="appendixA.html">Appendix A.
  209 +<acronym title="Document Type Definition">DTD</acronym>
  210 + for MathML</a></li>
  211 +<li><a href="appendixB.html">Appendix B. Glossary</a></li>
  212 +<li><a href="appendixC.html">Appendix C. Operator Dictionary</a></li>
  213 +<li><a href="appendixD.html">Appendix D. Working Group Membership</a></li>
  214 +<li><a href="appendixE.html">Appendix E. Informal
  215 +<acronym title="Extended Backus-Naur Form">EBNF</acronym>
  216 +Grammar for Content Elements</a></li>
  217 +<li><a href="appendixF.html">Appendix F. Default Semantic Bindings for
  218 +Content Elements</a></li>
  219 +<li><a href="appendixG.html">Appendix G. MathML 1.0 Changes</a></li>
  220 +</ul>
  221 +<ul>
  222 +<li><a href="refs.html">References</a></li>
  223 +</ul>
  224 +
  225 +
  226 +</body>
  227 +</html>
  228 +
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
  2 + "http://www.w3.org/TR/REC-html40/loose.dtd">
  3 +<html>
  4 +<head>
  5 + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  6 + <title>Tim Berners-Lee</title>
  7 + <style type="text/css">
  8 +H1 { font-size: 14pt; font-style: italic}</style>
  9 +</head>
  10 +
  11 +<body bgcolor="white" text="black" link="blue" vlink="green"
  12 +style="color: #000000;background-color: #FFFFFF">
  13 +<p></p>
  14 +
  15 +<h1>D.M. Sendall</h1>
  16 +
  17 +<p>Mike Sendall, my friend and supervisor at CERN, died on Thursday July 15,
  18 +1999 after a valiant struggle with cancer. His brightness and wisdom and
  19 +great personal warmth gave very much to everyone he met. He was a wonderful
  20 +person.</p>
  21 +
  22 +<p>Mike was very astute, always one to spot the flaw no one else had spotted
  23 +in a technical argument, but also posessed of a diplomacy when it came to
  24 +pointing it out.</p>
  25 +
  26 +<p>He was also the English gentleman. I understood that once he had arrived
  27 +at Heathrow having forgotten his passport. When the immigration authorities
  28 +asked him how they were to believe who he was, I can imagine him replying "Ah
  29 +yes-- how indeed?" and them letting him through at once.</p>
  30 +
  31 +<p>It was Mike who went along with my idea of getting one of the "NeXT"
  32 +machines, and Mike who suggested that I could go ahead and use it to play
  33 +with the idea of that global hypertext thing I had been talking about. When
  34 +Robert Cailliau and I could not figure out how to run the World Wide Web
  35 +project between the two different divisions we were in, Mike advised us how
  36 +to continue.</p>
  37 +
  38 +<p>I think I remember best his quiet smile and that omnipresent twinkle in
  39 +his eye. I'll miss him.</p>
  40 +<address>
  41 + Tim Berners-Lee
  42 +</address>
  43 +
  44 +<p></p>
  45 +<hr>
  46 +
  47 +<p></p>
  48 +
  49 +<p><i>$Id: dms.html,v 1.4 2003/03/10 15:10:16 amy Exp $</i></p>
  50 +
  51 +<p></p>
  52 +</body>
  53 +</html>
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
  2 + "http://www.w3.org/TR/REC-html40/loose.dtd">
  3 +<html>
  4 +<head>
  5 + <title>The essentials of a specification - Tim BL</title>
  6 + <link rel="stylesheet" href="/StyleSheets/base.css">
  7 + <!-- Changed by: tbl 19990524 -->
  8 +</head>
  9 +
  10 +<body lang="en">
  11 +<p><a href="../"><img alt="W3" border="0" src="/Icons/WWW/w3c_home" width="72"
  12 +height="48"></a></p>
  13 +
  14 +<h1>The essentials of a specification</h1>
  15 +
  16 +<blockquote>
  17 + <p>This note is a little <em>motherhood and apple pie</em> about how a
  18 + specification should be couched so as to clearly add a new well-defined
  19 + piece to the technology.</p>
  20 +</blockquote>
  21 +
  22 +<p>A technical specification defines something. The document must specify
  23 +the thing being defined as well as give its definition: a "left hand side" as
  24 +well as a "right hand side". Both must be done quite precisely.</p>
  25 +
  26 +<p>Typically, technical specifications for the web specify a language or a
  27 +protocol. A protocol is a language for messages, plus a set of constraints on
  28 +the sequence of messages. A language is a set of symbols, the syntactic
  29 +constraints on the way their are combined, and the semantics of what they
  30 +"mean" at some (possibly more than one) level. (See also <a
  31 +href="/DesignIssues/Meaning.html">Meaning of web documents</a>)</p>
  32 +
  33 +<p>The test of a good specification is that it clearly defines what
  34 +implementation (document, message, program) conforms, and of course that it
  35 +ensures by its design that whatever conforms works to provides the required
  36 +function.</p>
  37 +
  38 +<h2>The left hand side</h2>
  39 +
  40 +<p>The document should state what sort of things is being defined. It should
  41 +introduce a new term which characterizes that which conforms to the
  42 +specification. Examples of a conformance term could be</p>
  43 +<ul>
  44 + <li>A well-formed XML 1.0 document</li>
  45 + <li>A conforming HTTP 1.1 server</li>
  46 + <li>An xml-schema-valid XML document</li>
  47 + <li>A W3C/WAI "AAA" accessible web site</li>
  48 + <li>The SVG 1.0 language</li>
  49 +</ul>
  50 +
  51 +<p>The same specification document can define more than one term. such as a
  52 +"strictly conforming WWidget" and a "loosely conforming WWidget" but one
  53 +should beware of diluting the "WWidget" brand.</p>
  54 +
  55 +<p>As systems become more self-describing, the term is given a formal
  56 +identifier. Examples could be</p>
  57 +<ul>
  58 + <li>The MIME type "image/svg1"</li>
  59 + <li>The XML Namespace "http://www.w3.org/1999/asdf-2-0"</li>
  60 +</ul>
  61 +
  62 +<p>In this case where a MIME type or namespace has an identifier, then this is
  63 +obviously the crucial term to use to be unambiguous.</p>
  64 +
  65 +<p>Wherever possible, conformance phrases will be grounded in the Web:
  66 +identified by a URI.</p>
  67 +
  68 +<h2>The Right Hand Side</h2>
  69 +
  70 +<p>More has already been written on this, and most of it seems to be in
  71 +consensus in the W3C.</p>
  72 +
  73 +<p>It is important to remember what you are defining as you write the text.
  74 +For example, if you are defining a "foo-valid document" then using "is
  75 +invalid" in the text can be assumed to apply to this but "is incorrect" or "is
  76 +wrong" or "produces an error" does not unless the language is explicitly
  77 +linked to the conformance term.</p>
  78 +
  79 +<p>A good spec similarly pays attention to:</p>
  80 +<ul>
  81 + <li>The distinction between the use of MUST, as opposed to MAY (etc., see <a
  82 + href="#Bradner,">Bradner's BCP14</a>)</li>
  83 + <li>The use of this distinction in defining the conformance term
  84 + precisely;</li>
  85 + <li>The distinction between normative and non-normative parts of the
  86 + specification.</li>
  87 +</ul>
  88 +
  89 +<p>When defining a language, whenever possible specify directly the meaning
  90 +rather than the sort of thing you would expect some software to do with it.
  91 +Typical behaviors of an agent may be very useful to explain the intent
  92 +non-normatively.</p>
  93 +
  94 +<p>For example,</p>
  95 +
  96 +<blockquote>
  97 + <p>"x" indicated that the check is void</p>
  98 +</blockquote>
  99 +
  100 +<p>is better than</p>
  101 +
  102 +<blockquote>
  103 + <p>"x" indicates that the check should be rejected with a fatal error.</p>
  104 +</blockquote>
  105 +
  106 +<p>You can tell people what something means, you can't tell them what to do
  107 +about it, unless you are defining a protocol. When defining a protocol, then
  108 +the constraints should ideally be given as a state transition diagram or table
  109 +to make them totally clear.</p>
  110 +
  111 +<p>When defining a message which in fact binds to human social entities, then
  112 +this must be clear. You could end up in court explaining it if not. ("The
  113 +MMTP protocol defines the meaning of a message sent by or on behalf of a party
  114 +herein referred to as the "debtor" to a party referred to as the "creditor".
  115 +The creditor is identified by the foo-email-address...)</p>
  116 +
  117 +<p>When defining a part of a specification deliberately to be similar to
  118 +another specification,</p>
  119 +<ul>
  120 + <li>Make it clear that you have noticed the similarity;</li>
  121 + <li>Make it clear whether the similarity is exact and if not where not (and
  122 + why not);</li>
  123 + <li>Ideally, it clear that the existing specification is being referred to
  124 + normatively and is definitive, and that what is in this specification is a
  125 + non-normative copy for information only.</li>
  126 + <li>Make it clear whether the use in this specification will track any new
  127 + version of the referenced specification.</li>
  128 + <li>Think about whether there is any way in which such changes could break
  129 + this system.</li>
  130 + <li>If necessary negotiate constraints with the authority for changes to the
  131 + referenced specification.</li>
  132 +</ul>
  133 +
  134 +<h2>Test questions</h2>
  135 +
  136 +<p>A few examples of things to ask about a spec -- though generalization is
  137 +difficult.</p>
  138 +<ul>
  139 + <li>Does the spec give enough information to determine, for any arbitrary
  140 + object, whether the conformance term applies to it?</li>
  141 + <li>Could you write a program to test conformance?</li>
  142 + <li>Is conformance alone enough to ensure that systems build using this
  143 + language will function as intended and with integrity?</li>
  144 + <li>Can you prove important properties of the system from the state
  145 + transition tables etc?</li>
  146 +</ul>
  147 +
  148 +<p>So much for another bit of folklore. Comments, suggestions welcome.</p>
  149 +
  150 +<p></p>
  151 +<address>
  152 + <a href="/People/Berners-Lee">Tim BL</a>
  153 +</address>
  154 +
  155 +<p></p>
  156 +
  157 +<h3>References</h3>
  158 +
  159 +<p><a href="ftp://ftp.isi.edu/in-notes/bcp/bcp14.txt" name="Bradner,">S.
  160 +Bradner, "Key words for use in RFCs to Indicate Requirement Levels",
  161 +BCP0041</a></p>
  162 +
  163 +<p></p>
  164 +<hr>
  165 +
  166 +
  167 +<p><em>These are some of the raw bits of standards which I picked up from
  168 +Peggie Rimmer at CERN, and from working with IEEE, IETF and W3C specifications
  169 +over the years. I am sure others have written books on it. Comments,
  170 +suggestions welcome</em></p>
  171 +
  172 +<p><small>Last change $Id: blank.html,v 1.1 1999/05/24 14:24:19 timbl Exp
  173 +$</small></p>
  174 +<address>
  175 + <a href="/People/Berners-Lee">Tim BL</a>
  176 +</address>
  177 +</body>
  178 +</html>
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
  2 + "http://www.w3.org/TR/REC-html40/loose.dtd">
  3 +<html>
  4 +<head>
  5 + <title>The essentials of a specification - Tim BL</title>
  6 + <link rel="stylesheet" href="/StyleSheets/base.css">
  7 + <!-- Changed by: tbl 19990524 -->
  8 +</head>
  9 +
  10 +<body lang="en">
  11 +<p><a href="../"><img alt="W3" border="0" src="/Icons/WWW/w3c_home" width="72"
  12 +height="48"></a></p>
  13 +
  14 +<h1>The essentials of a specification</h1>
  15 +
  16 +<blockquote>
  17 + <p>This note is a little <em>motherhood and apple pie</em> about how a
  18 + specification should be couched so as to clearly add a new well-defined
  19 + piece to the technology.</p>
  20 +</blockquote>
  21 +
  22 +<p>A technical specification defines something. The document must specify
  23 +the thing being defined as well as give its definition: a "left hand side" as
  24 +well as a "right hand side". Both must be done quite precisely.</p>
  25 +
  26 +<p>Typically, technical specifications for the web specify a language or a
  27 +protocol. A protocol is a language for messages, plus a set of constraints on
  28 +the sequence of messages. A language is a set of symbols, the syntactic
  29 +constraints on the way their are combined, and the semantics of what they
  30 +"mean" at some (possibly more than one) level. (See also <a
  31 +href="/DesignIssues/Meaning.html">Meaning of web documents</a>)</p>
  32 +
  33 +<p>The test of a good specification is that it clearly defines what
  34 +implementation (document, message, program) conforms, and of course that it
  35 +ensures by its design that whatever conforms works to provides the required
  36 +function.</p>
  37 +
  38 +<h2>The left hand side</h2>
  39 +
  40 +<p>The document should state what sort of things is being defined. It should
  41 +introduce a new term which characterizes that which conforms to the
  42 +specification. Examples of a conformance term could be</p>
  43 +<ul>
  44 + <li>A well-formed XML 1.0 document</li>
  45 + <li>A conforming HTTP 1.1 server</li>
  46 + <li>An xml-schema-valid XML document</li>
  47 + <li>A W3C/WAI "AAA" accessible web site</li>
  48 + <li>The SVG 1.0 language</li>
  49 +</ul>
  50 +
  51 +<p>The same specification document can define more than one term. such as a
  52 +"strictly conforming WWidget" and a "loosely conforming WWidget" but one
  53 +should beware of diluting the "WWidget" brand.</p>
  54 +
  55 +<p>As systems become more self-describing, the term is given a formal
  56 +identifier. Examples could be</p>
  57 +<ul>
  58 + <li>The MIME type "image/svg1"</li>
  59 + <li>The XML Namespace "http://www.w3.org/1999/asdf-2-0"</li>
  60 +</ul>
  61 +
  62 +<p>In this case where a MIME type or namespace has an identifier, then this is
  63 +obviously the crucial term to use to be unambiguous.</p>
  64 +
  65 +<p>Wherever possible, conformance phrases will be grounded in the Web:
  66 +identified by a URI.</p>
  67 +
  68 +<h2>The Right Hand Side</h2>
  69 +
  70 +<p>More has already been written on this, and most of it seems to be in
  71 +consensus in the W3C.</p>
  72 +
  73 +<p>It is important to remember what you are defining as you write the text.
  74 +For example, if you are defining a "foo-valid document" then using "is
  75 +invalid" in the text can be assumed to apply to this but "is incorrect" or "is
  76 +wrong" or "produces an error" does not unless the language is explicitly
  77 +linked to the conformance term.</p>
  78 +
  79 +<p>A good spec similarly pays attention to:</p>
  80 +<ul>
  81 + <li>The distinction between the use of MUST, as opposed to MAY (etc., see <a
  82 + href="#Bradner,">Bradner's BCP14</a>)</li>
  83 + <li>The use of this distinction in defining the conformance term
  84 + precisely;</li>
  85 + <li>The distinction between normative and non-normative parts of the
  86 + specification.</li>
  87 +</ul>
  88 +
  89 +<p>When defining a language, whenever possible specify directly the meaning
  90 +rather than the sort of thing you would expect some software to do with it.
  91 +Typical behaviors of an agent may be very useful to explain the intent
  92 +non-normatively.</p>
  93 +
  94 +<p>For example,</p>
  95 +
  96 +<blockquote>
  97 + <p>"x" indicated that the check is void</p>
  98 +</blockquote>
  99 +
  100 +<p>is better than</p>
  101 +
  102 +<blockquote>
  103 + <p>"x" indicates that the check should be rejected with a fatal error.</p>
  104 +</blockquote>
  105 +
  106 +<p>You can tell people what something means, you can't tell them what to do
  107 +about it, unless you are defining a protocol. When defining a protocol, then
  108 +the constraints should ideally be given as a state transition diagram or table
  109 +to make them totally clear.</p>
  110 +
  111 +<p>When defining a message which in fact binds to human social entities, then
  112 +this must be clear. You could end up in court explaining it if not. ("The
  113 +MMTP protocol defines the meaning of a message sent by or on behalf of a party
  114 +herein referred to as the "debtor" to a party referred to as the "creditor".
  115 +The creditor is identified by the foo-email-address...)</p>
  116 +
  117 +<p>When defining a part of a specification deliberately to be similar to
  118 +another specification,</p>
  119 +<ul>
  120 + <li>Make it clear that you have noticed the similarity;</li>
  121 + <li>Make it clear whether the similarity is exact and if not where not (and
  122 + why not);</li>
  123 + <li>Ideally, it clear that the existing specification is being referred to
  124 + normatively and is definitive, and that what is in this specification is a
  125 + non-normative copy for information only.</li>
  126 + <li>Make it clear whether the use in this specification will track any new
  127 + version of the referenced specification.</li>
  128 + <li>Think about whether there is any way in which such changes could break
  129 + this system.</li>
  130 + <li>If necessary negotiate constraints with the authority for changes to the
  131 + referenced specification.</li>
  132 +</ul>
  133 +
  134 +<h2>Test questions</h2>
  135 +
  136 +<p>A few examples of things to ask about a spec -- though generalization is
  137 +difficult.</p>
  138 +<ul>
  139 + <li>Does the spec give enough information to determine, for any arbitrary
  140 + object, whether the conformance term applies to it?</li>
  141 + <li>Could you write a program to test conformance?</li>
  142 + <li>Is conformance alone enough to ensure that systems build using this
  143 + language will function as intended and with integrity?</li>
  144 + <li>Can you prove important properties of the system from the state
  145 + transition tables etc?</li>
  146 +</ul>
  147 +
  148 +<p>So much for another bit of folklore. Comments, suggestions welcome.</p>
  149 +
  150 +<p></p>
  151 +<address>
  152 + <a href="/People/Berners-Lee">Tim BL</a>
  153 +</address>
  154 +
  155 +<p></p>
  156 +
  157 +<h3>References</h3>
  158 +
  159 +<p><a href="ftp://ftp.isi.edu/in-notes/bcp/bcp14.txt" name="Bradner,">S.
  160 +Bradner, "Key words for use in RFCs to Indicate Requirement Levels",
  161 +BCP0041</a></p>
  162 +
  163 +<p></p>
  164 +<hr>
  165 +
  166 +
  167 +<p><em>These are some of the raw bits of standards which I picked up from
  168 +Peggie Rimmer at CERN, and from working with IEEE, IETF and W3C specifications
  169 +over the years. I am sure others have written books on it. Comments,
  170 +suggestions welcome</em></p>
  171 +
  172 +<p><small>Last change $Id: blank.html,v 1.1 1999/05/24 14:24:19 timbl Exp
  173 +$</small></p>
  174 +<address>
  175 + <a href="/People/Berners-Lee">Tim BL</a>
  176 +</address>
  177 +</body>
  178 +</html>
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2 +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><meta name="generator" content="HTML Tidy for Mac OS X (vers 31 October 2006 - Apple Inc. build 13), see www.w3.org" /><title>Mirroring the W3C Site</title><link rel="stylesheet" href="/2008/site/css/minimum" type="text/css" media="handheld, all" /><style type="text/css" media="print, screen and (min-width: 481px)" xml:space="preserve">
  3 + @import url("/2008/site/css/advanced");
  4 +</style><link href="/2008/site/css/minimum" rel="stylesheet" type="text/css" media="handheld, only screen and (max-device-width: 480px)" /><meta name="viewport" content="width=device-width" /><link rel="stylesheet" href="/2008/site/css/print" type="text/css" media="print" /><link rel="shortcut icon" href="/2008/site/images/favicon.ico" type="image/x-icon" /></head><body id="www-w3-org" class="w3c_public"><div id="w3c_container">
  5 +
  6 +
  7 +
  8 + <div id="w3c_mast">
  9 + <h1 class="logo">
  10 + <a tabindex="2" accesskey="1" href="/"><img src="/2008/site/images/logo-w3c-mobile-lg" width="90" height="53" alt="W3C" /></a>
  11 + <span class="alt-logo">W3C</span>
  12 + </h1>
  13 +
  14 + <div id="w3c_nav">
  15 +
  16 +
  17 +
  18 + <form action="/Help/search" method="get" enctype="application/x-www-form-urlencoded"><div class="w3c_sec_nav"><!-- --></div><ul class="main_nav"><li class="first-item">
  19 + <a href="/standards/">Standards</a>
  20 + </li><li>
  21 + <a href="/participate/">Participate</a>
  22 + </li><li>
  23 + <a href="/Consortium/membership">Membership</a>
  24 + </li><li class="last-item">
  25 + <a href="/Consortium/">About W3C</a>
  26 + </li><li class="search-item">
  27 + <div id="search-form">
  28 + <input tabindex="3" class="text" name="q" value="" title="Search" type="text" />
  29 + <button id="search-submit" name="search-submit" type="submit"><img class="submit" src="/2008/site/images/search-button" alt="Search" width="21" height="17" /></button>
  30 + </div>
  31 + </li></ul></form>
  32 + </div>
  33 +
  34 + </div>
  35 +
  36 +
  37 + <div id="w3c_main">
  38 + <div id="w3c_logo_shadow" class="w3c_leftCol">
  39 + <img height="32" alt="" src="/2008/site/images/logo-shadow" />
  40 + </div>
  41 +
  42 + <div class="w3c_leftCol"><h2 class="offscreen">Site Navigation</h2>
  43 + <h3 class="category"><span class="ribbon"><a href="/Consortium/Legal/ipr-notice.html" title="Up to Policies and Legal Information">Policies and Legal Information <img src="/2008/site/images/header-link" alt="Header link" width="13" height="13" class="header-link" /></a></span></h3>
  44 + <ul class="theme">
  45 + <li><a href="/Consortium/Legal/2008/04-testsuite-copyright.html">Licenses for W3C Test Suites</a></li>
  46 + <li><a href="/2004/10/27-testcases.html">Policies for Contribution of Test Cases to W3C</a></li>
  47 + <li><a href="/Consortium/Legal/IPR-FAQ-20000620.html">Intellectual Rights FAQ</a></li>
  48 + <li><a href="/Consortium/Legal/privacy-statement-20000612.html">W3C Privacy Statements</a></li>
  49 + <li><a href="/Consortium/Legal/2002/copyright-documents-20021231.html">W3C Document License</a></li>
  50 + <li><a href="/Consortium/Legal/2002/trademarks-20021231.html">W3C Trademarks and Generic Terms</a></li>
  51 + <li><a href="/Consortium/Legal/2002/trademark-license-20021231.html">W3C&#xAE; Trademark and Service Mark License</a></li>
  52 + <li><a href="/Consortium/Legal/2002/copyright-software-20021231.html">W3C Software Notice and License</a></li>
  53 + <li><a href="/Consortium/Legal/2002/collaborators-agreement-20021231.html">W3C Invited Expert and Collaborators Agreement</a></li>
  54 + <li><a href="/Consortium/Persistence.html">W3C URI Persistence Policy</a></li>
  55 + <li><a class="current">Mirroring the W3C Site</a></li>
  56 + <li><a href="/Consortium/Legal/2006/08-copyright-translations.html">Translations of the Copyright Notice</a></li>
  57 + </ul>
  58 + <br /></div>
  59 + <div class="w3c_mainCol">
  60 + <div id="w3c_crumbs">
  61 + <div id="w3c_crumbs_frame">
  62 + <ul class="bct"> <!-- .bct / Breadcrumbs -->
  63 + <li class="skip"><a tabindex="1" accesskey="2" title="Skip to content (e.g., when browsing via audio)" href="#w3c_content_body">Skip</a></li>
  64 + <li><a href="/">W3C</a>&#xA0;<span class="cr">&#xBB;</span>&#xA0;</li>
  65 + <li><a href="/Consortium/">About&#xA0;W3C</a>&#xA0;<span class="cr">&#xBB;</span>&#xA0;</li>
  66 + <li><a href="/Consortium/facts.html">Facts&#xA0;About&#xA0;W3C</a>&#xA0;<span class="cr">&#xBB;</span>&#xA0;</li>
  67 + <li><a href="/Consortium/Legal/ipr-notice.html">Policies&#xA0;and&#xA0;Legal&#xA0;Information</a>&#xA0;<span class="cr">&#xBB;</span>&#xA0;</li>
  68 + <li class="current">Mirroring the W3C Site</li>
  69 + </ul>
  70 + </div>
  71 + </div>
  72 + <h1 class="title">Mirroring the W3C Site</h1>
  73 + <ul class="w3c_toc"><li class="toc_prefix">On this page &#x2192; </li><li><a href="#new">mirroring</a><span class="bullet">&#xA0;&#x2022; </span></li><li><a href="#caching">caching</a></li></ul>
  74 + <div id="w3c_content_body">
  75 + <div class="line">
  76 + <p class="intro tPadding">In order to promote efficient access to W3C content the W3C Webmaster Team has deployed
  77 +mirrors on several continents: North America, Asia, Europe.</p>
  78 +
  79 +
  80 +
  81 + <h2 id="new">Mirroring</h2>
  82 +
  83 + <p><em>This document is out-of-date and needs review by W3C.</em></p>
  84 +
  85 + <p>Presently all mirrors are under the control of the W3C.
  86 +W3C is currently not granting permission to other parties to run mirrors
  87 +of W3C sites. You are welcome to maintain copies of W3C resources as outlined in our <a href="/Consortium/Legal/2002/copyright-documents-20021231.html">W3C Document License</a>.</p>
  88 +
  89 + <p>Some of the challenges to mirroring include:</p>
  90 +
  91 + <ul class="show_items"><li>Mirroring the W3C Site with tools such as <i>wget</i> is inadequate: documents are
  92 + constantly changing and that would mean that the mirror would constantly be out-of-date.</li><li>Changes on the site should appear on all the mirrors at the same time.</li><li>The W3C must ensure that content is up to date and served in accordance with W3C
  93 + trademark, copyright, privacy, and administrative policies. Furthermore, the W3C will
  94 + clearly define the responsibilities and liabilities associated with those policies -- and
  95 + their abuse. As an example, sites that don't abide by our privacy policies may be subject
  96 + to civil or even criminal prosecution in some jurisdictions.</li></ul>
  97 +
  98 + <h2 id="caching">Caching of W3C materials</h2>
  99 +
  100 + <p>Caching of W3C materials should comply with the "maximum time to live"
  101 +information provided with the materials. After such materials have expired they should not
  102 +be served from shared caches without first validating the contents of the W3C Site. For more on HTTP caching, see <a href="http://www.ietf.org/rfc/rfc2616.txt">RFC 2616: Hypertext Transfer Protocol -- HTTP/1.1</a>.</p>
  103 +
  104 + </div>
  105 + </div>
  106 + </div>
  107 + </div>
  108 +
  109 +
  110 +
  111 + </div><div id="w3c_footer">
  112 + <div id="w3c_footer-inner">
  113 + <h2 class="offscreen">Footer Navigation</h2>
  114 + <div class="w3c_footer-nav">
  115 + <h3>Navigation</h3>
  116 + <ul class="footer_top_nav"><li>
  117 + <a href="/">Home</a>
  118 + </li><li>
  119 + <a href="/standards/">Standards</a>
  120 + </li><li>
  121 + <a href="/participate/">Participate</a>
  122 + </li><li>
  123 + <a href="/Consortium/membership">Membership</a>
  124 + </li><li class="last-item">
  125 + <a href="/Consortium/">About W3C</a>
  126 + </li></ul>
  127 + </div>
  128 + <div class="w3c_footer-nav">
  129 + <h3>Contact W3C</h3>
  130 + <ul class="footer_bottom_nav"><li>
  131 + <a href="/Consortium/contact">Contact</a>
  132 + </li><li>
  133 + <a accesskey="0" href="/Help/">Help and FAQ</a>
  134 + </li><li>
  135 + <a href="/Consortium/sponsor/">Sponsor / Donate</a>
  136 + </li><li>
  137 + <a href="/Consortium/siteindex">Site Map</a>
  138 + </li><li>
  139 + <address id="w3c_signature">
  140 + <a href="mailto:site-comments@w3.org">Feedback</a> (<a href="http://lists.w3.org/Archives/Public/site-comments/">archive</a>)</address>
  141 + </li></ul>
  142 + </div>
  143 + <div class="w3c_footer-nav">
  144 + <h3>W3C Updates</h3>
  145 + <ul class="footer_follow_nav"><li>
  146 + <a href="http://twitter.com/W3C" title="Follow W3C on Twitter">
  147 + <img src="/2008/site/images/twitter-bird" alt="Twitter" width="78" height="83" class="social-icon" />
  148 + </a>
  149 + <a href="http://identi.ca/w3c" title="See W3C on Identica">
  150 + <img src="/2008/site/images/identica-logo" alt="Identica" width="91" height="83" class="social-icon" />
  151 + </a>
  152 + </li></ul>
  153 + </div>
  154 + <p class="copyright">Copyright &#xA9; 2012 W3C <sup>&#xAE;</sup> (<a href="http://www.csail.mit.edu/">
  155 + <acronym title="Massachusetts Institute of Technology">MIT</acronym>
  156 + </a>, <a href="http://www.ercim.org/">
  157 + <acronym title="European Research Consortium for Informatics and Mathematics"> ERCIM</acronym>
  158 + </a>, <a href="http://www.keio.ac.jp/">Keio</a>) <a href="/Consortium/Legal/ipr-notice">Usage policies apply</a>.</p>
  159 + </div>
  160 + </div><!-- Generated from data/scripts.php, ../../smarty/{scripts.tpl} --><!-- At the bottom for performance reasons --><div id="w3c_scripts">
  161 + <script type="text/javascript" src="/2008/site/js/main" xml:space="preserve"><!-- --></script>
  162 + </div></body></html>
  1 +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
  2 + "http://www.w3.org/TR/REC-html40/loose.dtd">
  3 +<html>
  4 +<head>
  5 + <LINK rel="Stylesheet" href="/StyleSheets/base.css">
  6 + <title>World Wide Web Consortium Clears Patent Hurdle for Web Privacy</title>
  7 +</head>
  8 +
  9 +<body lang="en">
  10 +<p><a href="../../ "><img src="../../Icons/WWW/w3c_home" alt="W3C"
  11 +border="0"></a></p>
  12 +
  13 +<p></p>
  14 +
  15 +<h1>World Wide Web Consortium Clears Patent Hurdle for Web Privacy</h1>
  16 +
  17 +<h2>Patent analysis confirms Platform for Privacy Preferences (P3P) does not
  18 +infringe Intermind Patent</h2>
  19 +
  20 +<p><strong>W3C Contacts</strong></p>
  21 +<dl>
  22 + <dt><strong>USA, Asia</strong></dt>
  23 + <dd>Janet Daly, &lt;<a href="mailto:janet@w3.org">janet@w3.org</a>>,
  24 + +1.617.253.5884</dd>
  25 + <dt><strong>Europe</strong></dt>
  26 + <dd>Andrew Lloyd, &lt;<a href="mailto:allo@ala.com">allo@ala.com</a>>,
  27 + +44 1 27 367 5100</dd>
  28 +</dl>
  29 +<hr>
  30 +
  31 +
  32 +<p><a href="http://www.w3.org/">http://www.w3.org/</a> -- 28 October 1999 --
  33 +Removing a major hurdle to the deployment of privacy-enhancing technology on
  34 +the Web, the World Wide Web Consortium (W3C) released a legal analysis finding that
  35 +<a href="../../P3P/">Platform for Privacy Preferences (P3P)</a> technology does not infringe a patent
  36 +held by the Intermind Corporation. P3P enables Web sites to inform users of
  37 +their privacy practices and will give users more control over the use of their
  38 +personal information on the Web. Widespread deployment of P3P-compliant
  39 +technologies was threatened when the patent holder sought to charge royalties
  40 +for products or services using the P3P specification, despite the fact that
  41 +the technology was developed in an open, collaborative process by a number of
  42 +W3C Members.</p>
  43 +
  44 +<p>"Given the fundamental importance of privacy protection on the Web, and our
  45 +commitment to open standards, we decided that it was our responsibility to
  46 +provide the community with a thorough analysis of the relationship between the
  47 +patent and P3P," said Daniel J. Weitzner, <a href="../../TandS/">Technology and Society</a> Domain Leader at the World Wide Web Consortium, responsible for P3P development.</p>
  48 +
  49 +<p>The complete analysis is available on the W3C Web site at <a
  50 +href="http://www.w3.org/TR/P3P-analysis">http://www.w3.org/TR/P3P-analysis</a>.</p>
  51 +
  52 +<h2>The Analysis</h2>
  53 +
  54 +<p>The Intermind Patent (U.S Patent No. 5,862,325) claims rights in certain
  55 +techniques of controlling interactions between clients and servers, especially
  56 +with respect to the exchange of personal information. Though much of the
  57 +Internet is based on such technologies, the assertion of proprietary rights in
  58 +this field had a chilling effect on the Web community's plans for P3P
  59 +deployment.</p>
  60 +
  61 +<p>W3C retained noted patent attorney Barry Rein, of Pennie &amp; Edmonds, to
  62 +evaluate the degree to which P3P does or does not infringe the Intermind
  63 +patent. Mr. Rein and his team, assisted by Joseph Reagle, W3C Policy Analyst
  64 +instrumental in the development of the P3P specification, concluded
  65 +that compliance with the P3P standard can be accomplished without infringing
  66 +Intermind's patent.</p>
  67 +
  68 +<h2>The Legal Argument</h2>
  69 +
  70 +<p>The legal conclusion that P3P technologies would not infringe the Intermind
  71 +Patent rests on a comparison of the technologies claimed in the patent against
  72 +the structure of P3P. The essential technology in Intermind's patent consists of
  73 +"communications objects" used as "control structures" to direct
  74 +client-server interactions. These control structures use object-oriented
  75 +programming techniques to transfer both executable program instructions and
  76 +associated metadata from client to server. P3P does not infringe the
  77 +Intermind patent because it specifies no such control structure. The analysis
  78 +prepared by Mr. Rein and his team finds:</p>
  79 +
  80 +<blockquote>
  81 + <p>.... P3P does not include the control structure of the '325 patent claims
  82 + for at least two fundamental reasons: (1) neither the proposal nor the User
  83 + Preferences file includes data, metadata, and instructions organized using
  84 + object-oriented programming to encapsulate the data together with the
  85 + instructions for using it, and (2) neither the proposal nor the User
  86 + Preferences file provides location transparency or completely specifies a
  87 + communications relationship. For these reasons, P3P-compliant Web services
  88 + and user agents do not literally infringe any claim of the '325 patent.</p>
  89 +</blockquote>
  90 +
  91 +<h2>Web Community Support Critical in Patent Analysis</h2>
  92 +
  93 +<p>During the course of the review, W3C called on the Web community to
  94 +contribute information that might assist the attorneys in their work. W3C
  95 +received over 100 substantial technology contributions from technologists all
  96 +over the world. W3C would like to thank all who contributed to the effort
  97 +for their help.</p>
  98 +
  99 +
  100 +<h2>The Importance of P3P</h2>
  101 +
  102 +<p>P3P's design keeps users informed of a Web site's privacy practices, and allows
  103 +users to control what information they choose to disclose to a Web site, as
  104 +well as how that information may be used. P3P privacy disclosures and requests
  105 +for information are expressed in the W3C's widely deployed Extensible Markup
  106 +Language (<a href="http://www.w3.org/XML/">XML</a>).</p>
  107 +
  108 +<p>P3P technology was created by a consensus process involving representatives
  109 +from more than a dozen W3C Member organizations, as well as invited privacy
  110 +experts from around the world.</p>
  111 +
  112 +<p>For the first time in the history of the World Wide Web Consortium, the
  113 +open technology development process came into conflict with intellectual property
  114 +claims. "We felt that we owed it to the Web community to clear up the
  115 +confusion over the Intermind patent," said Weitzner, "but hope not to make
  116 +this a regular practice."</p>
  117 +
  118 +<h2>About the World Wide Web Consortium (W3C)</h2>
  119 +
  120 +<p>The W3C was created to lead the Web to its full potential by developing
  121 +common protocols that promote its evolution and ensure its interoperability.
  122 +It is an international industry consortium jointly run by the <a
  123 +href="http://www.lcs.mit.edu/">MIT Laboratory for Computer Science (MIT
  124 +LCS)</a> in the USA, the <a href="http://www.inria.fr/">National Institute for
  125 +Research in Computer Science and Control (INRIA)</a> in France and <a
  126 +href="http://www.keio.ac.jp/">Keio University</a> in Japan. Services provided
  127 +by the Consortium include: a repository of information about the World Wide
  128 +Web for developers and users, reference code implementations to embody and
  129 +promote standards, and various prototype and sample applications to
  130 +demonstrate use of new technology. To date, over 350 organizations are <a
  131 +href="/Consortium/Member/List">Members of the Consortium</a>.</p>
  132 +
  133 +<p></p>
  134 +<hr>
  135 +
  136 +
  137 +<p>
  138 + <a href="http://validator.w3.org/check/referer"><img border=0
  139 + src="http://validator.w3.org/images/vh40"
  140 + alt="Valid HTML 4.0!" height=31 width=88></a>
  141 + </p>
  142 +
  143 +</body>
  144 +</html>
Please register or login to post a comment