Re: The UR* scheme registry, Citing URL/URI specs

Roy T. Fielding (fielding@kiwi.ics.uci.edu)
Mon, 27 Oct 1997 18:04:43 -0800


To: uri@bunyip.com
cc: Dan Connolly <connolly@w3.org>, urn-ietf@bunyip.com, timbl@w3.org,
Subject: Re: The UR* scheme registry, Citing URL/URI specs 
In-reply-to: Your message of "Mon, 27 Oct 1997 14:33:39 EST."
             <Pine.SUN.3.95.971027142228.5738I-100000@beethoven.bunyip.com> 
Date: Mon, 27 Oct 1997 18:04:43 -0800
From: "Roy T. Fielding" <fielding@kiwi.ics.uci.edu>
Message-ID:  <9710271810.aa00940@paris.ics.uci.edu>

One of the nice things about being out with a cold for three days
is you get to see the tail end of these conversations before being
able to reply.

When I agreed to revise and combine the URL specifications over a year ago,
the first question I asked of the other authors is whether I should write
it as the URI syntax or the URL syntax.  The question of whether or not
the two are equivalent was never an issue --- the reason I asked the question
was to determine if it was politically feasible to make the specification
match the URI/URL/URN design, or if it would be better to maintain the
artificial distinction for the purpose of getting the spec out faster.
A year later, it is clear we made the wrong choice.

Leslie Daigle writes:
>By the way -- note that this is the 
>
>	"Uniform Resource Locators (URL): Generic Syntax and Semantics"
>
>draft, and it's the "and semantics" parts that concerns me particularly
>when talking about sweeping URN syntax into this and calling it the URI
>syntax document.

The definition of URN given in RFC2141 and its relatives is a subset of
the definition of a URL scheme, both in terms of semantics and syntax.
The URN requirements apply additional constraints on the naming authority
and the syntax, but those constraints are no different than what can be
applied to any new URL scheme.  URNs are already bound by the syntax of
a URL in order to fulfill one of the earliest requirements --- that URNs
be usable in the same context as one would use a URL reference.

Please note that the "L" in "URL" represents "Locator", not "Location".
Any naming scheme that requires there exist some mechanism for resolution,
whether or not the mechanism is currently in operation, changes over time,
or subject to multiple levels of indirection, is a locator.
There do exist names that are not locators, but those names are not URNs.

The argument that fragment identifiers might not be useful with URNs
is ridiculous.  A fragment is a client-side specialization of the
identification of a resource, and thus is independent of both URLs and URNs
except for the fact that they occur within the same data field.
They are a property of some URL references, and thus a required property
of some URN references.  RFC2141 does recognize that requirement, even
if it does so in a particularly wishy-washy fashion that should have been
unacceptable in any Proposed Standard.

Whether or not a URN is allowed to be used in relative form is not
relevant.  There are many URL schemes which have no use for relative
forms.  There are many demonstrated uses for abbreviated names, so it
is a pity that the "urn" syntax was chosen to exclude their possibility
using the standard relative URL algorithm.  Instead, you will be stuck
with application-dependent macros.  They will be created whether you like
them or not --- the desire to abbreviate is part of the human psyche
and not subject to IETF standardization.

>#2 is a definite "no"; URN namespaces are _not_ just like URL schemes.  THey
>have implications of ownership, maintaingin registries and validation
>services, and a whole set of requirements centred on uniqueness, etc.

Those are all scheme-dependent requirements.  The only thing the "urn"
scheme does is gather a bunch of naming authorities under a single,
as-yet-undefined set of requirements.  There is no RFC that defines
those requirements, which is why I didn't reference anything beyond
the original Informational spec.  If the "urn" scheme is to be useful,
it will need to require things which some existing name services do not
support, and thus there will exist location-independent URLs which
are not URNs.  Heck, that is already the case today.

I do agree that URN NIDs are not URL schemes, and should not be in
the same registry.  They don't even have the same syntax.

If this sounds a bit confusing, please recall that I argued many times
against the URN WG using the name "urn" for what was clearly only one
possible scheme for defining names.  Monopolizing the namespace is
counterproductive.

I can easily change the URL spec such that it covers all locators and
still gives autonomy over the "urn" scheme's namespace to the set of
URN RFCs.  If Keith gives the okay (I believe Harald has already suggested
it more than once), then I'll do that later this week.

 ...Roy T. Fielding
    Department of Information & Computer Science    (fielding@ics.uci.edu)
    University of California, Irvine, CA 92697-3425    fax:+1(714)824-1715
    http://www.ics.uci.edu/~fielding/