Internet-Draft Ryan Moats
draft-ietf-urn-ietf-08.txt AT&T
Expires in six months November 1998
A URN Namespace for IETF Documents
Filename: draft-ietf-urn-ietf-08.txt
Status of This Memo
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
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.
To learn the current status of any Internet-Draft, please check
the ``1id-abstracts.txt'' listing contained in the Internet-
Drafts Shadow Directories on ftp.is.co.za (Africa), nic.nordu.net
(Europe), munnari.oz.au (Pacific Rim), ftp.ietf.org (US East
Coast), or ftp.isi.edu (US West Coast).
Abstract
A system for Uniform Resource Names (URNs) must be capable of
supporting new naming systems. As an example of proposing a new
namespace, this document proposes the "ietf" namespace. This
namespace consists of the RFC family of documents (RFCs, STDs, FYIs,
and BCPs) developed by the IETF and published by the RFC Editor, the
minutes of working groups (WG) and birds of a feather (BOF) meetings
that occur during IETF conferences, and the Internet Drafts published
by the Internet Drafts Editor. Both the current URN framework and
URN syntax support this namespace.
1. Introduction
This document proposes the "ietf" namespace, which consists of the
RFC family of documents (RFCs, STDs, FYIs, and BCPs) developed by the
IETF and published by the RFC editor and the minutes of working
Expires 5/31/99 [Page 1]
INTERNET DRAFT A URN Namespace for IETF Documents November 1998
groups (WG) and birds of a feather (BOF) meetings that occur during
IETF conferences.
The namespace specification is for a formal namespace.
2. Specification Template
Namespace ID:
"ietf" requested.
Registration Information:
Registration version number: 1
Registration date: 1999-04-22
Declared registrant of the namespace:
Ryan Moats
jayhawk@att.com
AT&T
15621 Drexel Circle
Omaha, NE 68135-2358
Declaration of structure:
The identifier has the following ABNF [2] specification:
NSS = (family ":" number) / ("mtg-" number "-" wgbofname)
( "id:" name)
family = "rfc" / "std" / "fyi" / "bcp"
number = 1*DIGIT
wgbofname = 1*(DIGIT/ALPHA)
name = "draft-" draft-name "-" draft-version
draft-name = draft-ietf / draft-individual / draft-rfced
draft-ietf = "ietf-" wgbofname "-" draft-title
draft-individual = draft-author "-" draft-title
draft-rfced = "rfced-" draft-title
draft-title = draft-namepart *( "-" draft-namepart )
draft-author = 1*(DIGIT/ALPHA)
draft-nameart = 1*(DIGIT/ALPHA)
wgbofname = 1*(DIGIT/ALPHA)
number = 1*DIGIT
draft-version = 2*DIGIT
If the IESG (or it successor) adds a new document
Expires 5/31/99 [Page 2]
INTERNET DRAFT A URN Namespace for IETF Documents November 1998
series, this ABNF specification will need to be
updated. Further, if a working group or BOF is
created that used characters outside the range of this
ABNF specification, this specification will need to be
updated. Any system intended to resolve names for
this namespace should be written with the awareness
that this could occur at any time.
Relevant ancillary documentation:
The intended RFC document is currently
draft-ietf-urn-ietf-08.
Identifier uniqueness considerations:
Because the rfc-editor assigns the RFC number uniquely
these URNs are unique. Since the mapping between RFCs
and other rfc-editor document series (STDs, FYIs or
BCPs) is not necessarily one-to-one, uniqueness of
STDs, FYIs and BCPs are defined based on the document
mappings maintained by the RFC Editor (the index files
"rfc-index.txt", "fyi-index.txt", "bcp-index.txt",
"std-index.txt") are defined to be the definitive
statement of the assignment of RFC Family URNs in this
namespace. The meeting minutes portion of the
namespace is guaranteed unique because the URN
includes the sequence number of the IETF conference.
The document mapping maintained by the Internet Drafts
editor ("1id-abstracts.txt") is defined as the
definitive statement of the assignment of URNs for
the internet draft portion of this namespace.
Identifier persistence considerations:
Persistence of the URNs of this namespace is
independent of the mutability of the underlying
documents. A URN once assigned will never be
reassigned to a different resource; the assignment is
persistent and immutable. Distinct from this, the
resources identified as RFCs are immutable, whereas
the other sorts of documents, STDs, FYIs, and BCPs are
not. They may be composites of one or more RFCs and
the set of RFCs that includes them may change with
time. It is important to note that this mutability of
some resources is independent of the immutability of
URN assignment to a resource.
Process of identifier assignment:
Expires 5/31/99 [Page 3]
INTERNET DRAFT A URN Namespace for IETF Documents November 1998
Assignment of URNs from this namespace occurs in three
ways. The first is through publication of a new RFC,
FYI, STD or BCP is by the RFC Editor. This new document
will have a new series number and will therefore define
a new URN. The document mappings maintained by the
RFC Editor (the index files "rfc-index.txt",
"fyi-index.txt", "bcp-index.txt" and "std-index.txt")
are defined to be the definitive statement of the
assignment of RFC Family URNs in this namespace.
The second way a URN is assigned is through the filing
of meeting minutes by a working group or birds of a
feather as part of an IETF conference. The list of
minutes maintained by the IETF for each working group
and conference in the subtree pointed at by the URL
ftp://ietf.org/ietf/ is considered the definitive
assignment of URNs for working group or birds of a
feather minutes.
The third way a URN is assigned is through the
publication of a new internet-draft by the Internet
Draft Editor. This draft will have a distinct name
(and version number) and therefore defined a new URN.
The document mapping maintained by the Internet Drafts
editor ("1id-abstracts.txt") is defined as the
definitive statement of the assignment of URNs for
this portion of the namespace.
Process of identifier resolution:
A mirrored copy of the underlying documentation is
required to resolve these URNs. Resolution via
HTTP is done by a set of simple Perl cgi-bin
scripts presented in Appendix A.
Rules for Lexical Equivalence:
The entire URN is case-insensitive.
Conformance with URN Syntax:
There are no additional characters reserved.
Validation mechanism:
None additional to resolution specified
Scope:
Expires 5/31/99 [Page 4]
INTERNET DRAFT A URN Namespace for IETF Documents November 1998
Global.
3. Examples
The following are examples of URNs that a resolver for this namespace
can resolve:
urn:ietf:rfc:2141
urn:ietf:std:50
urn:ietf:id:ietf-urn-ietf-06
urn:ietf:mtg-41-urn
4. Security Considerations
Because this namespace defines no additional reserved characters, it
does not add any security considerations beyond those inherent from
the existence of the reserved characters from [1]. Further, none of
the reserved characters from [1] are used in the definition of the
NSS. This means that resolvers for this namespace may be considered
"secure" in the sense that any escaping of characters in the NSS MUST
result in the resolver indicating that the URN has incorrect syntax.
5. Acknowledgments
Thanks to various members of the URN working group for comments on
earlier drafts of this document. The work described in this document
is partially supported by the National Science Foundation,
Cooperative Agreement NCR-9218179.
6. References
Request For Comments (RFC) and Internet Draft documents are available
from numerous mirror sites.
[1] R. Moats, "URN Syntax," RFC 2141, May 5, 1997.
[2] D. Crocker, P. Overell, "Augmented BNF for Syntax
Specifications: ABNF," RFC 2234, November 1997.
7. Author's Address
Ryan Moats
AT&T
15621 Drexel Circle
Omaha, NE 68135-2358
USA
Phone: +1 402 894-9456
Expires 5/31/99 [Page 5]
INTERNET DRAFT A URN Namespace for IETF Documents November 1998
EMail: jayhawk@att.com
Appendix A. Example Resolution Scripts
The following scripts are examples that can be used for resolving
URNs in this namespace.
A.1 I2C
#!/usr/local/bin/perl
use strict;
#
# this is a URN 2 URC resolver for the ietf namespace
#
my(%cite) = (
bcp => "/ftp/rfc/bcp-index.txt",
fyi => "/ftp/fyi/fyi-index.txt",
id => "/ftp/internet-drafts/1id-abstracts.txt",
rfc => "/ftp/rfc/rfc-index.txt",
std => "/ftp/std/std-index.txt"
);
my(%number2date) = (
44 => "99mar",
43 => "98dec", 42 => "98aug", 41 => "98apr",
40 => "97dec", 39 => "97aug", 38 => "97apr",
37 => "96dec", 36 => "96jun", 35 => "96mar",
34 => "95dec", 33 => "95jul", 32 => "95apr",
31 => "94dec", 30 => "94jul", 29 => "94mar",
28 => "93nov", 27 => "93jul", 26 => "93mar",
25 => "92nov", 24 => "92jul", 23 => "92mar",
22 => "91nov", 21 => "91jul", 20 => "91mar",
19 => "90dec" );
my($wgpath) = "/ftp/ietf";
my($urn) = $ENV{'QUERY_STRING'};
my($host) = $ENV{'SERVER_NAME'}; #get my host name for ftp: URLs
my($accept) = $ENV{'HTTP_ACCEPT'}; #this is the "Accept:" HTTP header
(&resolveid($1), exit) if ($urn =~ /urn:ietf:id:(\S+)/i);
(&resolverfc($1, $2), exit) if ($urn =~ /urn:ietf:(\w*):(\d*)/i);
(&resolvemtg($1, $2), exit) if ($urn =~ /urn:ietf:mtg-(\d*)-(\w*)/i);
&urn_error("400 Bad Request\n");
sub resolvemtg {
my($ietfnum, $sesnam) = @_;
Expires 5/31/99 [Page 6]
INTERNET DRAFT A URN Namespace for IETF Documents November 1998
&urn_error("404 Not Found\n") if (!defined $number2date{$ietfnum});
my($date)=$number2date{$ietfnum};
my($link)="$wgpath/$sesnam/$sesnam-minutes-$date.txt";
if (-f $link) {
print "Status: 200 OK\r\n";
print "Content-type: text/html\r\n\r\n";
print "\n
\n";
print "Minutes of the $sesnam working group from the " . &end($ietfnum)
. " IETF";
print "\n\n";
return;
}
my($link)="$wgpath/$date/$sesnam-minutes-$date.txt";
if (-f $link) {
print "Status: 200 OK\r\n";
print "Content-type: text/html\r\n\r\n";
print "\nCitation for $urn\n";
print "\n";
print "