Date: Fri, 7 Oct 94 13:04:00 CDT
From: liberte@ncsa.uiuc.edu (Daniel LaLiberte)
Message-Id: <9410071804.AA14914@void.ncsa.uiuc.edu>
To: fielding@avron.ICS.UCI.EDU, uri@bunyip.com
Subject: Re: Why URN is a subset of URL
From: "Roy T. Fielding" <fielding@avron.ICS.UCI.EDU>
I see that terminology seems to be the central point of
confusion, and the rest of the comments are just going around
in circles. [...]
The moral of this story is that it is a bloody waste of
everyone's time to define a syntax for IETF URNs which is
separate from IETF URLs, and that if you desire to place some
special significance on the acronyms, then we should resurrect
the common syntax called "URI" such that the syntax is
associated with URI instead of URL and we won't get into
religious wars every time URNs and URLs are compared.
I highly recommed using the term "URI" if what you mean is the union
of URNs and URLs. It is certainly confusing to use "URL" when you don't
mean to include the full semantics of URLs. If you only mean URL syntax,
say "URL syntax" to be abundantly clear. I don't think anyone disagrees
that the URL semantics is different from URN semantics. You mathematical
argument only shows that the representation (i.e. syntax) of URLs and URNs
can be the same. This is like saying that pointers to foos are the same
as pointers to bars even if they are used in very different ways. A closer
analogy is pointers and handles (pointers to pointers).
Moved and seconded. All in favor say "URI".
But aren't URCs considered URIs? The syntax of URCs is likely to be
quite different from that of URLs and URNs. The semantics of all
three is similar only in providing some meta information about an
object, whether a name, a location, or other stuff.
=============================================
Subject: "uniquely identifies content" -- only for URNs?
From: "Daniel W. Connolly" <connolly@hal.com>
This phrase has come up several times recently, and I'd
like to zero in on a precice definition.
Do we mean to say that there is a functional mapping
URN -> Seqence-of-bytes
So that once I have fetched the resource corresponding to a URN,
I can validly cache it for all time?
This is the LIFN idea.
I believe URNs should only identify objects, and not constrain the
nature of the object in any other way. If an object named by a URN is
to be immutable, then that can be specified in the URC. So I would
not say that a URN uniquely identifies content since that suggests the
above definition. Rather, I would say a URN uniquely identifies an
object. That object might in fact be a collection composed of other
objects, such as alternative representations of some deeper entity.
Another example of a collection is all the versions of an object.
It is better to have URNs do one thing and do that well. That one
thing is unique identification of objects. So URNs should be
independent of caches and authentication, though they may be used as
reliable unique identifiers by caching and authentication services.
It is also important to specify that a unique identifier is global
(i.e. one context for the world, though responsibilities probably need
to be hierarchically subdivided) and it lives forever (or possibly
until no one wants it anymore). That starts to sound like URNs are
doing more than one thing, but the global and lifetime aspects are not
attributes of the object named by a URN but of the name itself.
Daniel LaLiberte (liberte@ncsa.uiuc.edu)
National Center for Supercomputing Applications