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 |
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