/[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 - (hide annotations) (download)
Tue Jun 15 08:37:16 2004 UTC (20 years, 10 months ago) by wakaba
Branch: MAIN
CVS Tags: HEAD
File MIME type: text/plain
New

1 wakaba 1.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