Showing
22 changed files
with
4525 additions
and
0 deletions
Too many changes to show.
To preserve performance only 22 of 22+ files are displayed.
doc/C-C++/Msg.h
0 → 100644
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 | ... | ... |
doc/C-C++/Msg.hpp
0 → 100644
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 | +}; | ... | ... |
doc/C-C++/Terminal.c
0 → 100644
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 | +} | ... | ... |
doc/C-C++/Terminal.cpp
0 → 100644
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 | +} | ... | ... |
doc/C-C++/Terminal.h
0 → 100644
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); | ... | ... |
doc/C-C++/Terminal.hpp
0 → 100644
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 | +}; | ... | ... |
doc/C-C++/TerminalManager.c
0 → 100644
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 | +} | ... | ... |
doc/C-C++/TerminalManager.cpp
0 → 100644
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 | +} | ... | ... |
doc/C-C++/TerminalManager.h
0 → 100644
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); | ... | ... |
doc/C-C++/TerminalManager.hpp
0 → 100644
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 | +}; | ... | ... |
doc/rfc-http.html
0 → 120000
1 | +www.w3.org/Protocols/rfc2616/rfc2616.html | |
\ No newline at end of file | ... | ... |
doc/www.w3.org/1998/02/Potential.html
0 → 100644
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 | + | |
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 | + | |
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’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 ‘Enquire’, | |
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 ‘coming | |
79 | +from’? 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 ‘browse’, 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 ‘intranet’, 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’ 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, ‘metadata’, | |
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 | + | |
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 | + | |
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 ‘all you can eat’ 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 ‘system’, 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 | + | |
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 | + | |
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 ‘Web of trust’. | |
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 | + | |
270 | +<P> | |
271 | +<B><I><FONT FACE="Arial"></FONT></I></B> | |
272 | +<H3> | |
273 | + ‘Oh, yeah?’ | |
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 ‘Oh, yeah?’ 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 | +‘Oh, yeah?’ 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 | + | |
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 ‘A is part of B’ or ‘A made B’. 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 | + | |
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 ‘virtual hypertext’ 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 ‘on the fly’ corresponding to various | |
356 | +views and queries on the database. This has been a very powerful | |
357 | +‘bootstrap’ 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 ‘reverse engineer’ 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 | + | |
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 | + | |
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 | +‘interactive’, 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’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 | + | |
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’s up to us | |
455 | +</H3> | |
456 | +<P> | |
457 | +<FONT SIZE=2> </FONT> | |
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> | ... | ... |
doc/www.w3.org/1999/02/22-rdf-syntax-ns
0 → 100644
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 | + | ... | ... |
doc/www.w3.org/1999/04/13-tbl.html
0 → 100644
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 — 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—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—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—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—<code>mld@hq.lcs.mit.edu</code>—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—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—(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—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 — 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—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—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><TABLE>"</code>. So when you read "<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—every time somebody wants to think of a new idea, a new | |
392 | +term, a new column in a database—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—companies, organizations, | |
401 | +individuals—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—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—that when | |
472 | +all the databases are linked together, and when there are links | |
473 | +meaning—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—this is perhaps a little unfair—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 — Michael's bulldozers— | |
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—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> | ... | ... |
doc/www.w3.org/1999/05/WCA-terms/01
0 → 100644
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 & 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 & 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 <<a href="mailto:lavoie@oclc.org">lavoie@oclc.org</a>>, | |
34 | +</dd> | |
35 | +<dd> | |
36 | +Henrik Frystyk Nielsen <<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 | +© 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. | |
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 <<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><a | |
175 | +href="http://www.w3.org/Protocols/#News">...</a></em></code><em> element, | |
176 | +an HTML <code><img src=<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><a | |
187 | +name="http://www.w3.org/Protocols/#News">...</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> </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><authority></code> | |
495 | +component but where the <code><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. </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> | ... | ... |
doc/www.w3.org/1999/07/NOTE-CCPP-19990727
0 → 100644
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 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 | + © 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 <alt> 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 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><?xml version="1.0"?> | |
481 | +<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#"> | |
484 | + <rdf:Description about="HardwarePlatform"> | |
485 | + <prf:Defaults | |
486 | + Vendor="Nokia" | |
487 | + Model="2160" | |
488 | + Type="PDA" | |
489 | + ScreenSize="800x600x24" | |
490 | + CPU="PPC" | |
491 | + Keyboard="Yes" | |
492 | + Memory="16mB" | |
493 | + Bluetooth="YES" | |
494 | + Speaker="Yes" /> | |
495 | + <prf:Modifications | |
496 | + Memory="32mB" /> | |
497 | + </rdf:Description> | |
498 | + <rdf:Description about="SoftwarePlatform"> | |
499 | + <prf:Defaults | |
500 | + OS="EPOC1.0" | |
501 | + HTMLVersion="4.0" | |
502 | + JavaScriptVersion="4.0" | |
503 | + WAPVersion="1.0" | |
504 | + WMLScript="1.0" /> | |
505 | + <prf:Modifications | |
506 | + Sound="Off" | |
507 | + Images="Off" /> | |
508 | + </rdf:Description> | |
509 | + <rdf:Description about="EpocEmail1.0"> | |
510 | + <prf:Defaults | |
511 | + HTMLVersion="4.0" /> | |
512 | + </rdf:Description> | |
513 | + <rdf:Description about="EpocCalendar1.0"> | |
514 | + <prf:Defaults | |
515 | + HTMLVersion="4.0" /> | |
516 | + </rdf:Description> | |
517 | + <rdf:Description about="UserPreferences"> | |
518 | + <prf:Defaults | |
519 | + Language="English"/> | |
520 | + </rdf:Description> | |
521 | +</rdf:RDF> | |
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><?xml version="1.0"?> | |
575 | +<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#"> | |
578 | + <rdf:Description about="HardwarePlatform"> | |
579 | + <prf:Defaults> | |
580 | + <rdf:li resource="http://www.nokia.com/profiles/2160"/> | |
581 | + </prf:Defaults> | |
582 | + <prf:Modifications | |
583 | + Memory="32mB"/> | |
584 | + </rdf:Description> | |
585 | + <rdf:Description about="SoftwarePlatform"> | |
586 | + <prf:Defaults> | |
587 | + <rdf:li resource="http://www.symbian.com/profiles/pda"/> | |
588 | + </prf:Defaults> | |
589 | + <prf:Modifications | |
590 | + Sound="Off" | |
591 | + Images="Off" /> | |
592 | + </rdf:Description> | |
593 | + <rdf:Description about="EpocEmail"> | |
594 | + <prf:Defaults> | |
595 | + <rdf:li resource="http://www.symbian.com/epoc/profiles/epocemail" /> | |
596 | + </prf:Defaults> | |
597 | + </rdf:Description> | |
598 | + <rdf:Description about="EpocCalendar"> | |
599 | + <prf:Defaults> | |
600 | + <rdf:li resource="http://www.symbian.com/epoc/profiles/epoccal"/> | |
601 | + </prf:Defaults> | |
602 | + </rdf:Description> | |
603 | + <rdf:Description about="UserPreferences"> | |
604 | + <prf:Defaults | |
605 | + Language="English" /> | |
606 | +</rdf:Description> | |
607 | +</rdf:RDF> | |
608 | +</PRE> | |
609 | + <P> | |
610 | + ----------------------------------------------------- | |
611 | + <P> | |
612 | + Next, the profile provided by the hardware vendor. | |
613 | + <P> | |
614 | + ----------------------------------------------------- <BR> | |
615 | + <PRE><?xml version="1.0"?> | |
616 | +<rdf:RDF | |
617 | +xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> | |
618 | +<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" /> | |
628 | +</rdf:RDF> | |
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><?xml version="1.0"?> | |
637 | +<rdf:RDF | |
638 | +xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> | |
639 | +<rdf:Description | |
640 | +OS="EPOC1.0" | |
641 | +HTMLVersion="4.0" | |
642 | +JavaScriptVersion="4.0" | |
643 | +WAPVersion="1.0" | |
644 | +WMLScript="1.0" /> | |
645 | +</rdf:RDF> | |
646 | +<TT>-----------------------------------------------------------------------</TT> | |
647 | +</PRE> | |
648 | + <PRE> | |
649 | +<?xml version="1.0"?> | |
650 | +<rdf:RDF | |
651 | +xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> | |
652 | +<Description | |
653 | + Version="EpocEmail1.0" | |
654 | + HTMLVersion="4.0" /> | |
655 | +</rdf:RDF> | |
656 | +</PRE> | |
657 | + <P> | |
658 | + <TT>------------------------------------------------------------------------</TT> | |
659 | + <PRE> | |
660 | +<?xml version="1.0"?> | |
661 | +<rdf:RDF | |
662 | +xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> | |
663 | +<Description | |
664 | + Version="EpocCalendar1.0" | |
665 | + HTMLVersion="4.0" /> | |
666 | +</rdf:RDF> | |
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 | + <?xml version="1.0"?> | |
706 | + <P> | |
707 | + <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#"> | |
712 | + <P> | |
713 | + <Description about="SoftwarePlatform" | |
714 | + <P> | |
715 | + Sound="On" /> | |
716 | + <P> | |
717 | + </rdf:RDF> | |
718 | + <P> | |
719 | + Alternatively, the <TT><Modifications></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. 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> | ... | ... |
doc/www.w3.org/1999/07/REC-MathML-19990707
0 → 100644
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>™</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"><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"><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> © 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 | + | ... | ... |
doc/www.w3.org/1999/07/dms.html
0 → 100644
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> | ... | ... |
doc/www.w3.org/1999/09/specification
0 → 100644
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> | ... | ... |
doc/www.w3.org/1999/09/specification.html
0 → 100644
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® 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> <span class="cr">»</span> </li> | |
65 | + <li><a href="/Consortium/">About W3C</a> <span class="cr">»</span> </li> | |
66 | + <li><a href="/Consortium/facts.html">Facts About W3C</a> <span class="cr">»</span> </li> | |
67 | + <li><a href="/Consortium/Legal/ipr-notice.html">Policies and Legal Information</a> <span class="cr">»</span> </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 → </li><li><a href="#new">mirroring</a><span class="bullet"> • </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 © 2012 W3C <sup>®</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, <<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, <<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 & 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