Network Working Group D.J. Blackketter Internet-Draft WebTV Networks, Inc. Expires: August 11, 2000 M.A. Dolan TerraByte Technology C.A. Finseth Firwood Consulting G. Thomas LGERCA, Inc. D.J. Zigmond WebTV Networks, Inc. February 11, 2000 The Local Identifier (lid:) URI Scheme draft-blackketter-lid-00.txt Status of this Memo This document is an Internet-Draft and is NOT offered in accordance with Section 10 of RFC2026, and the author does not provide the IETF with any rights other than to publish as an Internet-Draft. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet-Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress." The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. This Internet-Draft will expire on August 11, 2000. Abstract This document describes the Local Identifier or "lid:" URI scheme. Blackketter, et. al. Expires August 11, 2000 [Page 1] Internet-Draft The lid: URI scheme February 2000 Table of Contents 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 2. Description . . . . . . . . . . . . . . . . . . . . . . . . . 4 3. Security Considerations . . . . . . . . . . . . . . . . . . . 6 References . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 7 A. Syntax of Local Identifier URIs . . . . . . . . . . . . . . . 9 B. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 11 Blackketter, et. al. Expires August 11, 2000 [Page 2] Internet-Draft The lid: URI scheme February 2000 1. Introduction Content delivered by a one-way broadcast is not necessarily available on-demand, as it is when delivered by HTTP or FTP. For such content, it is necessary to have a unique identifier for each resource. To support cross-references within the content (for use in hyperlinks or to embed one piece of content in another), these local names must be location-independent. The "lid:" URI scheme enables content creators to assign unique identifiers to each resource relative to a given namespace. Thus the author can establish a new namespace for a set of content and then use simple, human-readable names for all resources within that space. The "lid:" scheme can be used to uniquely identify any content that is available locally (from a cache, for example) and is used in the Advanced Television Enhancement Forum specification[2] to identify resources that are broadcast in conjunction with television programming. In addition, the "lid:" URI scheme may be useful in any system to reference content that may only be available in a local cache. The use of the "lid:" may be preferable to using "file:" or "cid:" URIs in these cases. Blackketter, et. al. Expires August 11, 2000 [Page 3] Internet-Draft The lid: URI scheme February 2000 2. Description lid: URIs fully comply with the syntax called out in RFC2396[1]. This document will not review the entire syntax. Rather, it will just highlight the specifics. Numbers in {}s refer to RFC 2396 section numbers. lid: URIs are simultaneously URIs and URNs {1.2}. The term "URI" will continue to be used to refer to the collection. They are technically URLs as well, but only in a trivial way. lid: URIs are hierachical and the relative forms are fully supported {1.4}. The "." and ".." path components are given their accustomed meanings. The standard character set restrictions and operations (e.g. quoting) are used {2.}. This document does not specify a maximum length of an lid: URI. Content authors should consult the set of instantiation documents covering their target systems to determine any limitations on length. The standard form {3.} of the "lid:" URI is as follows: lid://? The part is a registration-based naming authority. The registration is the Domain Name System {3.2}. Note that the part is not expected to ever be resolved via DNS servers. Further, the part must be a name: a numeric identifier (such as IPv4 address) is not permissible {3.2.2}. The names a specific resource within the name space, and must follow the generic relative URI syntax. As with all URI schemes that support the generic relative URI syntax, this path component can be used alone as a relative URI, where the namespace is implied by a base URI specified for the content through other means. The server-based portions {3.2.1}, including "@" and ":", are permitted but their meaning is not defined here. Path component interpretation is as specified in {3.3}. Path components, as well as complete lid: URIs, are compared in a case-independent fashion. Query components are permitted; interpretation is as specified in {3.4}. Blackketter, et. al. Expires August 11, 2000 [Page 4] Internet-Draft The lid: URI scheme February 2000 Fragment identifiers are permitted; interpretation is as specified in {4.1}. Relative URI references are permitted within an application. However, all URIs will be converted to fully-qualified form before being passed to the environment for lookup {5.}. In general, Base URIs as described in {5.1} operate as specified. Specific instantiations of this scheme may specify alternate Base URI semantics. Each instantiation of this scheme will specify how default Base URIs are obtained. {5.1.4} Some examples: lid://xyz.com/myshow/episode100/george.html lid://specials.news.com/logos/daisy.jpg lid://unique2345@blahblah.com/rootpage.html?name=zella#bday Blackketter, et. al. Expires August 11, 2000 [Page 5] Internet-Draft The lid: URI scheme February 2000 3. Security Considerations The local identifier URI scheme is subject to the same security implications as in general URI[1] schemes, so the usual precautions apply. This means that some local identifier URIs may refer to resources that are not available (because they have not been received, for example), or to resources that have been received, but were intentionally misidentified. Appropriate security mechanisms should be used in the delivery of content identified by local identifier URIs. Blackketter, et. al. Expires August 11, 2000 [Page 6] Internet-Draft The lid: URI scheme February 2000 References [1] Berners-Lee, T., Masinter, L. and R. Fielding, "Uniform Resource Identifiers (URI): Generic Syntax", RFC 2396, August 1998. [2] ATVEF, "Advanced Television Enhancement Forum Specification (ATVEF) Enhanced Content Specification", February 1999. Authors' Addresses Dean J. Blackketter WebTV Networks, Inc. 1295 Charleston Road Mountain View, CA 94043 US Phone: +1 650 614 5521 EMail: dean@blackketter.com Michael A. Dolan TerraByte Technology PO Box 1673 Alpine, CA 91903 US Phone: +1 619 445-9070 EMail: miked@tbt.com Craig A. Finseth Firwood Consulting 1343 Lafond St. Paul, MN 55104 US Phone: +1 651 644 4027 EMail: craig@firwood.net Gomer Thomas LGERCA, Inc. 40 Washington Road Princeton Junction, NJ 08550 US EMail: gomer@lgerca.com Blackketter, et. al. Expires August 11, 2000 [Page 7] Internet-Draft The lid: URI scheme February 2000 Dan J. Zigmond WebTV Networks, Inc. 1295 Charleston Road Mountain View, CA 94043 US Phone: +1 650 614 3341 EMail: djz@corp.webtv.net Blackketter, et. al. Expires August 11, 2000 [Page 8] Internet-Draft The lid: URI scheme February 2000 Appendix A. Syntax of Local Identifier URIs The collected BNF for "lid:" URIs is encoded as specified in RFC 2396[1]. The specific BNF for "lid:" URIs is as follows: lidURI = "lid://" authority [ "/" [ path_segments ] ] [ "?" query ] [ "#" fragment ] authority = [ userinfo "@" ] hostname [ ":" port ] userinfo = *( unreserved | escaped | ";" | ":" | "&" | "=" | "+" | "$" | "," ) hostname = *( domainlabel "." ) toplabel [ "." ] domainlabel = alphanum | alphanum *( alphanum | "-" ) alphanum toplabel = alpha | alpha *( alphanum | "-" ) alphanum port = *digit path_segments = segment *( "/" segment ) segment = *pchar *( ";" param ) param = *pchar pchar = unreserved | escaped | ":" | "@" | "&" | "=" | "+" | "$" | "," query = *uric fragment = *uric uric = reserved | unreserved | escaped reserved = ";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | "," unreserved = alphanum | mark mark = "-" | "_" | "." | "!" | "~" | "*" | "'" | "(" | ")" escaped = "%" hex hex hex = digit | "A" | "B" | "C" | "D" | "E" | "F" | "a" | "b" | "c" | "d" | "e" | "f" alphanum = alpha | digit alpha = lowalpha | upalpha lowalpha = "a" | "b" | "c" | "d" | "e" | "f" | "g" | "h" | "i" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "y" | "z" upalpha = "A" | "B" | "C" | "D" | "E" | "F" | "G" | "H" | "I" | "J" | "K" | "L" | "M" | "N" | "O" | "P" | "Q" | "R" | "S" | "T" | "U" | "V" | "W" | "X" | "Y" | "Z" digit = "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | Blackketter, et. al. Expires August 11, 2000 [Page 9] Internet-Draft The lid: URI scheme February 2000 "8" | "9" Blackketter, et. al. Expires August 11, 2000 [Page 10] Internet-Draft The lid: URI scheme February 2000 Appendix B. Acknowledgements The authors gratefully acknowledge the contributions of the ATVEF Technical Working Group, and in particular: Lee Acton, Jonathan Boltax, Wayne Carr, Michael Dolan, Iain Hackett, Cheryl Kadis, David Mott, Isaac Sheldon, Scott Watson, Mark Vickers, and Dan Zigmond. Blackketter, et. al. Expires August 11, 2000 [Page 11]