/[suikacvs]/webroot/www/2004/id/draft-ietf-uri-urc-spec-00.txt
Suika

Contents of /webroot/www/2004/id/draft-ietf-uri-urc-spec-00.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show annotations) (download)
Tue Jun 15 08:37:16 2004 UTC (19 years, 11 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
New

1 Uniform Resource Identifiers Working Group Michael Mealling
2 INTERNET-DRAFT Georgia Institute of Technology
3 Expires: 8 January 95
4
5 8 July 94
6
7
8
9 Encoding and Use of Uniform Resource Characteristics
10 <draft-ietf-uri-urc-spec-00.txt>
11
12 STATUS OF THIS MEMO
13
14 This document is an Internet-Draft. Internet-Drafts are working
15 documents of the Internet Engineering Task Force (IETF), its areas,
16 and its working groups. Note that other groups may also distribute
17 working documents as Internet-Drafts.
18
19 Internet-Drafts are draft documents valid for a maximum of six
20 months and may be updated, replaced, or obsoleted by other
21 documents at any time. It is inappropriate to use Internet- Drafts
22 as reference material or to cite them other than as ``work in
23 progress.''
24
25 To learn the current status of any Internet-Draft, please check the
26 ``1id-abstracts.txt'' listing contained in the Internet- Drafts
27 Shadow Directories on ds.internic.net (US East Coast),
28 nic.nordu.net (Europe), ftp.isi.edu (US West Coast), or
29 munnari.oz.au (Pacific Rim).
30
31 Abstract
32 ********
33
34 This document describes a Uniform Resource Characteristic, a method for
35 encoding information about a given network resource. This information is
36 called meta-information since it is not information that is actually found
37 in the resource itself. The design of this Uniform Resource Characteristic
38 was driven by the set of design requirements as specified in the
39 "Specification of Uniform Resource Characteristics" Internet draft
40 [Mealling 94]. The method of encoding is based on the simple use of
41 attribute/value pairs utilized in several existing network systems
42 including RFC822 e-mail headers, IAFA templates, and the draft whois++
43 system [Deutsch 94]. In addition to the specification, several examples
44 are provided which illustrate complex information encoding and actual
45 client/server using whois++ as the protocol.
46
47 Uniform Resource Characteristics
48 ********************************
49
50 1: Introduction
51 ***************
52
53 This specification fulfills the requirements of the draft Uniform Resource
54 Characteristic Requirements document [Mealling 94] in a way that utilizes
55 existing systems and services. This specification not only solves these
56 requirements but also solves several apparent problems within the proposed
57 information architecture. In addition to the requirements outlined in the
58 requirements document, other design goals were added such as simplicity and
59 use of existing technology. The resulting encoding method provides for a
60 simple yet extensible method for describing the characteristics of a resource
61 without requiring that the user doing the data collection be extremely
62 knowledgeable about the underlying technology.
63
64 2: Design Goals
65 ===============
66
67 In addition to the design requirements in the draft requirements specification,
68 several requirements were added in order to make sure that a system that
69 utilized URCs did not need to be overly complex. These design requirements
70 are listed below with an explanation of each.
71
72 o Simplicity: A URC specification must be simple enough for practically
73 anyone to understand or to encode. This allows users to encode and
74 maintain a given URC without the need for esoteric computer science
75 knowledge.
76 o Extensibility: Any specification must be able to encompass a great deal
77 of growth and change in the elements that it may contain. This should
78 allow the development of wholly new and different URIs without the
79 need for developing a completely new system for encapsulating and
80 transporting them.
81 o Compatibility: Since URCs will be utilized by vastly different systems
82 on vastly different networks it must be encoded in such a way as to
83 allow very complex systems to communication complex information
84 via very simple gateways and access methods.
85 o Use of existing and developing technology: In order to be able to
86 implement something soon, an encoding specification should allow
87 existing systems to be easily retrofitted to use URCs. The use of
88 existing systems that already support object similar to URCs is
89 encouraged.
90
91 These design goals specify an encoding method that is very simple and easy to
92 read and/or write. This should allow anyone to easily incorporate a URC
93 handling system into any platform or network without the need for large
94 amounts of parsing or coding.
95
96 3: Encoding specification
97 =========================
98
99 3.1: Design Decisions:
100 ++++++++++++++++++++++
101
102 At its simplest, meta-information about a given resource can be specified as a
103 simple attribute-value pair. The only two items that are needed to specify the
104 author of a document is something to identify the given text element as
105 having the identity of "Author" and then the text element itself. There are
106 several ways to write this relationship. The simplest by far is to specify some
107 type of equality character between the two elements. It then becomes a simple
108 exercise of selecting the equality character and specifying some method of
109 encoding special situations such as character quoting and line continuation.
110
111 With the additional design requirement of utilizing existing work and systems
112 already in use it is useful to recognize that several existing systems use
113 either RFC822 header type encoding or similar encodings that use the colon as
114 the attribute-value equality character. Currently many Archie servers support
115 the IAFA [Emtage 1994] template specification that is used to encode specific
116 pieces of meta-information about items available for anonymous ftp.
117
118 3.2: Encoding
119 +++++++++++++
120
121 Therefore, the encoding of a Uniform Resource Characteristic will follow the
122 following encoding structure:
123
124 [attribute_name]:[value]
125
126 where attribute_name is of a specified set of well known attribute_names that
127 should be recognized, but not necessarily acted on, by all implementations.
128 Experimental attribute_names should be encoded with the
129 [X-attribute_name] notation. [value] is a text string that may flow over
130 several lines. In the event that a text line flows over several lines the first
131 character of the continued line should be a space. Specifics about what
132 information is contained and how it is encoded with respect to the [value] is
133 left up to the specification of each [attribute-name].
134
135 There are no attribute/value pairs that are required to be a part of a URC.
136
137 Minimal set of attribute/value pairs
138 ++++++++++++++++++++++++++++++++++++
139
140 In order to allow work to proceed some set of initial attribute/value pairs must
141 be specified. The pairs listed below are a basic set of useful and badly needed
142 items. It is intended that any additions or subtractions from this list will be
143 handled by the Uniform Resource Identifier Working Group. It is also
144 intended that this list should be extended since the full usefulness of URCs is
145 beyond the scope of these pairs listed.
146
147
148 o URN:
149 This attribute/value pair is dependent on the outcome of the
150 discussions in the URI-WG of the IETF. A URN is a Uniform
151 Resource Name [Sollins 94] which is used to give a resource a name
152 that can be used instead of a URL. The only requirement it makes on
153 URNs is that it begin with "URN:" so that it follows the same method
154 of identification as a URL.
155
156 Example (dependent on the decision concerning URNs):
157
158 URN:IANA:626:oit.5647
159
160
161 o URL:
162 This pair must conform to the current Uniform Resource Locator
163 specification as defined in the URL Internet-Draft[Berners-Lee 94-1].
164
165 Example:
166
167 URL:http://www.gatech.edu/ietf/urc.encoding.html
168
169
170 o LIFN:
171 This pair is a place holder for the development of a URI that
172 specifically addresses the function of Location Independent File
173 Names. The example given is for illustration purposes only and is not
174 indicative of any current specification or draft.
175
176 Example:
177
178 LIFN:md5:2039874029834059283709475029387405928374095827394875
179
180
181 o Author:
182 This pair will encode the name of the Author of a given document or
183 resource. Since many cultures have different ways of writing names
184 there are no requirements on how a name should be written. Thus it is
185 encouraged that users encode names in the most common format i.e.
186 first, middle and last in English societies.
187
188 Example:
189
190 Author: Michael Mealling
191
192
193 o TTL:
194 This pair encodes a Time To Live measured in seconds. Infinity is
195 denoted by the '+' character. This element references the attribute/value
196 pair directly preceding it (see section 4) and is meant as a caching aid.
197
198 Example:
199
200 TTL:86400
201
202
203 o Abstract:
204 This pair encodes a short abstract about the given resource. Any
205 characters are allowed. Line continuation follows normal rules.
206
207 Example:
208
209 Abstract:
210 This document explores the various flight patterns and speeds of
211 unladden African and European swallows. A companion document concerning
212 the relative velocities of swallows ladden with coconuts is available.
213
214
215
216 In addition to the above all of the header fields listed in the current HTTP
217 specification [Berners-Lee 93-2] are included with several caveats that are
218 listed below:
219
220 o Header line order:
221 Currently, the header lines are specified to be able to occur in any
222 order. Since a URC contains structured information (see section 4) a
223 URC used in the context of HTTP must maintain the order of any
224 given header fields.
225
226 o URI header field:
227 Since a URC can contain URLs and URNs, the URI header should be
228 removed and URL: and URN: added. Also, it is unclear in the HTTP
229 specification whether the URI field pertains to the body object to follow
230 or whether the client should then load that given URL. This should be
231 clarified.
232
233 o Version header field:
234 In order to give some ability to utilize different version schemes it is
235 recommended that the Version field be given the idea of schemas so
236 that machine based algorithms can be used to differentiate resources.
237 For this specification only one schema is given but more can be
238 developed.
239
240 o Schema 1: decimal This schema specifies the use of the
241 standard decimal type of version enumeration. For example,
242 this is version 1.0 of this document. At the authors or publishers
243 whim it can change to version 1.1 or even 2.0.
244
245 Example:
246
247 Version:decimal:1.0
248
249 4: Internal Structure
250 =====================
251
252 In order for a URC to be able to encode meta-information about several
253 instances of objects and to be able to show such relationships between those
254 objects, there must be some structure to a URC. The easiest and most elegant
255 method is simply to introduce a set of precedence rules onto the above set of
256 attribute/value pairs. This allows the URC to be broken up into specific
257 subsections that only pertain to other objects.
258
259 As above, this set of precedence rules is extensible by the IETF URI Working
260 Group.
261
262
263 o URNs have precedence over all other pairs, except for LIFNs.
264
265 A URN is a name for a resource which can be represented by several
266 actual instances.
267
268 Example:
269
270 URN:IANA:626:oit.5674
271 URL:http://www.gatech.edu/iiir/urc2.paper.html
272 URL:gopher://gopher.gatech.edu:2048/iiir/urc2.paper
273
274 In this example the URN has global scope. This example describes a
275 resource who's name is the URN which has two occurences on the
276 net: one via http and another via gopher.
277
278 o LIFNs are equal to URNs in precedence only.
279
280 An LIFN has many of the same characteristics of a URN. While there
281 is no current specification of exactly what a LIFN is or does this paper
282 will attempt to place them in the structure of a URC. This is definitely
283 up for discussion.
284 Example:
285
286 URN:IANA:626:oit.5674
287 LIFN:osi8eu4o95wuoi4uowi8e45f8w34owoerp
288 URL:http://www.gatech.edu/iiir/urc2.paper.html
289
290 This example designates that this URN is also known by the given
291 LIFN and that both have the given URL as an instance.
292
293 o URLs have precedence over all other pairs except for URNs
294 and LIFNs until the occurrence of a new URL.
295
296 A URL is one instantiation of a given resource. Any given
297 attribute/value pair can describe that specific instance except for a
298 URN or LIFN which are described by a URL.
299
300 Example:
301
302 URN:IANA:626:oit.5674
303 URL:http://www.gatech.edu/iiir/urc2.paper.html
304 Content-Type: text/html
305 Content-Length: 89345
306 URL:gopher://gopher.gatech.edu:2048/iiir/urc2.paper
307 Content-Type: text/plain
308 Content-Length: 4563
309
310 Since URLs only have precedence over whatever is between them and
311 the next URL, this example shows that the MIME Content headers
312 only describe the URL directly above them. Thus the meaning of this
313 URC is that this URN has two given instances and that the first
314 instance is an HTML document of 89345 bytes and that the second is a
315 plain text document of 4563 bytes.
316
317 o TTLs have no precedence over any other attribute/value pair
318 and therefore describe any element directly before it.
319
320 A TTL element is meant as a caching aid. It is important to be able to
321 identify certain elements of a URC as having a specific time to live.
322 The TTL element will then specify the time to live of whichever
323 element immediately precedes the TTL attribute/value pair.
324
325 Example:
326
327 URN:IANA:626:oit.5674
328 TTL: +
329 URL:http://www.gatech.edu/iiir/urc2.paper.html
330 TTL:2592000
331 Content-Type: text/html
332 Content-Length: 89345
333
334 In this example the first TTL is not needed since a URN has an infinite
335 time to live. This one is simply used as an illustration. The next one
336 specifies that the given URL has a time to live of 30 days. Since the
337 next two elements describe that URL, it can be assumed that those two
338 elements also have the same time to live.
339
340
341 4.1 Other possible elements and precedence rules
342 ++++++++++++++++++++++++++++++++++++++++++++++++
343
344 In the interest of possible examples and real world uses, listed below are
345 several possible additions to the above list of attribute/value pairs and
346 precedence rules. These are only meant for discussion and are not part of the
347 current specification.
348
349 Possible future attribute/value pairs:
350
351
352 o Collection:
353
354 This pair will allow the encoder to specify other URNs or URLs that
355 are considered to be in a collection with the given URN or URL.
356
357 Example:
358
359 URN:IANA:626:oit.5674
360 Collection:URN:IANA:626:oit.5673
361 URN:IANA:1:ietf-uri-002
362 URN:IANA:1:ietf-uri-003
363
364 This simply means that the given URN is in a collection and that some
365 of its members are given as a list.
366
367 o Authoritative:
368
369 This pair will give the location of the authoritative URC server for the
370 given URN. This will serve as a pointer of last resort for the URC of
371 the given URN. This would require some method of being able to
372 identify a given URC database server.
373
374 Example:
375
376 URN:IANA:626:oit.5674
377 Authoritative:URL:whois://whois.gatech.edu:7070/template=urc
378
379
380
381 Possible future precedence rules:
382
383 o Multiple URNs in the same URC denote simple relationship
384
385 This is simply used as a method for the URC server to return
386 additional URNs that it thinks may be of value to the client. This is
387 useful if the server can do link prediction. If a client can already have a
388 URC for a given URN cached then it doesn not have to do a network call for
389 that related resource.
390
391 Example:
392
393 URN:IANA:626:oit.5674
394 URL:http://www.gatech.edu/iiir/urc2.paper.html
395 URN:IANA:1:ietf-uri-002
396 URL:http://cnri.reston.va.us/internet-drafts/draft-ietf-uri-urn2urc.txt
397
398 This simply is the server's way of telling the client if the user is
399 interested in this resource that he/she may also be interested in the
400 other one.
401
402 o Relationship operations denoted by special attribute/value pairs
403
404 Attribute/value pairs could be specified that allow different types of
405 precedence rules to apply in different instances. A Block: pair could
406 specify a set of values that describe a specific URL or URN without
407 interacting with the given external precedence rules. These block
408 pairs would have numbers assigned to denote block nesting.
409
410 Example:
411
412 URN:IANA:626:oit.5674
413 Authoritative:URL:whois://whois.gatech.edu:7070/template=urc
414 Block:1
415 URN:IANA:626:oit.5600
416 URN:IANA:626:oit.5601
417 URN:IANA:626:oit.5602
418 Block:1
419
420 This illustrates that the URNs in block number 1 also have the
421 given authoritative site as their authoritative URC server.
422
423 5: Usage of URCs
424 ================
425
426 In order for URCs to be useful they must be contained in some type of
427 network based retrieval tool. This will allow for URCs to be used as a
428 resolution service with considerable power. Currently there are several
429 systems that could be retrofitted to handle URCs. One of the best suited
430 services is the draft whois++ [Deutsch 94]. Whois++ is an extension to the
431 trivial WHOIS service which allows servers to make more structure
432 information available. Additions to the trivial WHOIS protocol allow for
433 communication between whois++ servers so that information can be shared
434 across collections of servers.
435
436 The two primary advantages to using whois++ are that the data is structured
437 in the same template format as URCs and that the distributed nature allows a
438 search to start local and expand globally as required. Below are several
439 sessions between some client and a whois++ server in which example URCs
440 are given:
441
442
443 A complete discussion of the capabilities and uses of the whois++ protocol are
444 beyond the scope of this paper. Please refer to current internet-drafts for a
445 much more indepth review of the whois++ protocol.
446
447 URC lookup based on URN
448 +++++++++++++++++++++++
449
450 In this example a client program has connected to a whois++ server and has
451 requested a record that contains the given URN.
452
453 % 220-This is merlin (GATECH01) running KTH-whois++ ver.1.4
454 % 220 Enter search string or type 'help' for help.
455 template=urn;URN=IANA:623:oit:cs:ftp-and-telnet
456 % 201 Command okay
457 # FULL 1
458
459 # URN GATECH02
460 URN:IANA:623:oit:cs:ftp-and-telnet
461 Title: Intro to FTP and Telnet
462 Author: Adam Arrowood
463 URL:file://ftp.gatech.edu/pub/docs/ftp.telnet.ps
464 Content-Type: text/postscript
465 Size: 1MB
466 URL:http://www.gatech.edu/oit/info/ftp.telnet.html
467 Content-Type: text/html
468 Size: 600K
469 Cost: US$0.25
470
471 # END
472 % 226 Transfer complete
473 % 203 Bye!
474
475 The URC that was returned contains two instances of the resource whose title
476 and author are given below the URN. This URC describes the resource Intro
477 to FTP and Telnet which was written by Adam Arrowood and is available via
478 anonymous ftp in postscript and WWW in HTML.
479
480
481
482 URC lookup based on URL
483 ++++++++++++++++++++++++
484
485 In this example a client does not know the URN of a given document, but does
486 know the URL of a particular instance of the resource. Here, the client gives
487 the server the URL and hopefully receives a current URC which may
488 contain the URN.
489
490 % 220-This is merlin (GATECH01) running KTH-whois++ ver.1.4
491 % 220 Enter search string or type 'help' for help.
492 template=urn;URL=http://www.gatech.edu/oit/info/pccards.html
493 % 201 Command okay
494 # FULL 1
495
496 # URN GATECH01
497 URN:IANA:623:oit:ns:pccards
498 Title: Supported PC Network Cards at Georgia Tech
499 Author: Jimmy Lemkuhle
500 URL:http://www.gatech.edu/oit/info/pccards.html
501 Size: 256K
502 Content-Type: text/html
503
504 # END
505 % 226 Transfer complete
506 % 203 Bye!
507
508 The URC that was returned describes one instance of a resource who's URN,
509 title and author are now known, plus information on the size and format of
510 the particular instance.
511
512
513
514 URC lookup based on given meta-information
515 ++++++++++++++++++++++++++++++++++++++++++
516
517 In this example a client may know a resources Title and Author, but nothing
518 else. The client can use these to attempt to find the given resource on the net.
519
520 % 220-This is merlin (GATECH01) running KTH-whois++ ver.1.4
521 % 220 Enter search string or type 'help' for help.
522 template=urn;title=Intro\ to\ FTP\ and\ Telnet;author=Arrowood
523 % 201 Command okay
524 # FULL 1
525
526 # URN GATECH02
527 URN:IANA:623:oit:cs:ftp-and-telnet
528 Title: Intro to FTP and Telnet
529 Author: Adam Arrowood
530 URL:file://ftp.gatech.edu/pub/docs/ftp.telnet.ps
531 Content-Type: text/postscript
532 Size: 1MB
533 URL:http://www.gatech.edu/oit/info/ftp.telnet.html
534 Content-Type: text/html
535 Size: 600K
536 Cost: US$0.25
537
538 # END
539 % 226 Transfer complete
540 % 203 Bye!
541 Connection closed by foreign host.
542
543 The URC that was returned now contains information that the client can
544 cache such as the URN and URLs.
545
546
547
548 URC lookup via URN with only URLs returned
549 ++++++++++++++++++++++++++++++++++++++++++
550
551 In this example the client is only requesting URLs to be returned. This may be
552 due to a limited client that can not deal with other types of meta-information
553 or due to a need for a faster search.
554
555 % 220-This is merlin (GATECH01) running KTH-whois++ ver.1.4
556 % 220 Enter search string or type 'help' for help.
557 template=urn;URN=IANA:626:oit:cs:ftp-and-telnet;include=urn
558 % 201 Command okay
559 # FULL 1
560
561 # URN GATECH02
562 URN:IANA:623:oit:cs:ftp-and-telnet
563 URL:file://ftp.gatech.edu/pub/docs/ftp.telnet.ps
564 URL:http://www.gatech.edu/oit/info/ftp.telnet.html
565
566 # END
567 % 226 Transfer complete
568 % 203 Bye!
569 Connection closed by foreign host.
570
571 This is an example of a relatively small and limited URC. It contains no
572 particularly interesting meta-information, but it does provide a basic URN to
573 URL resolution service.
574
575 6. References
576 =============
577
578 [Mealling 94]
579 Mealling, Michael, Specification of Uniform Resource
580 Characteristics, April 5, 1994
581 <URL:ftp://cnri.reston.va.us/internet-drafts/draft-ietf-uri-urc-00.txt>
582 [Deutsch 94]
583 Deutsch P., Schoutlz R., Flatstrom P., and Weider C,Architecture of
584 the WHOIS++ service, April 6, 1994.
585 <URL:ftp://cnri.reston.va.us/internet-drafts/draft-ietf-wnils-whois-arch-00.txt>
586 [Emtage 94]
587 Emtage A., Deutsch P., Publishing Information on the Internet with
588 Anonymous FTP, May 1994.
589 <URL:ftp://cnri.reston.va.us/internet-drafts/draft-ietf-iiir-publishing-01.txt>
590 [Sollins 94]
591 Sollins K., Masinter L.,Requirements of Uniform Resource Names,
592 March 26, 1994.
593 <URL:ftp://cnri.reston.va.us/internet-drafts/draft-sollins-urn-00.txt>
594 [Berners-Lee 94-1]
595 Berners-Lee T.,Uniform Resource Locators (URL), March 21, 1994.
596 <URL:ftp://cnri.reston.va.us/internet-drafts/draft-ietf-uri-url-03.txt>
597 [Berners-Lee 93-2]
598 Berners-Lee T.,Hypertext Transfer Protocol (HTTP), Nov 5, 1993.
599 <URL:ftp://cnri.reston.va.us/internet-drafts/draft-ietf-iiir-http-00.txt>
600 --
601 ------------------------------------------------------------------------------
602 <HR><A HREF="http://www.gatech.edu/michael.html">
603 <ADDRESS>Michael Mealling</ADDRESS>
604 <ADDRESS>michael.mealling@oit.gatech.edu</ADDRESS></A>
605

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24