Re: Minor clarification on url: prefix

Rob Raisch, The Internet Company (raisch@internet.com)
Thu, 2 Dec 1993 14:24:13 -0800 (PST)

Date: Thu, 2 Dec 1993 14:24:13 -0800 (PST)
From: "Rob Raisch, The Internet Company" <raisch@internet.com>
Subject: Re: Minor clarification on url: prefix
To: Keith Moore <moore@cs.utk.edu>
In-Reply-To: <199312022006.PAA05023@wilma.cs.utk.edu>
Message-Id: <Pine.3.85.9312021451.A18045-0100000@hmmm>

You know, it really seems to me that the value of any naming scheme is in
its use. The value of an ftp URL is in that fact that by dereferencing
it, we can retrieve its content. The value of a gopher URL is in the
fact that by dereferencing it, we can retrieve its content.

What is the value of a URN? I would suggest that its most useful and
immediate value is in the content it references. It must be a name which
represents some information, either locally or remotely. Local
information must be carried in the name itself. And remote information
must be retrieved.

Just as a URL presents just enough local information to allow us to
retrieve its content (remote information), a URN must do the same or have
no value whatsoever. (I could be mistaken here, but I cannot imagine a
need for a name with represents nothing and cannot be used to retrieve
anything.)

So if the value that a URN represents is its remote information,
what is this remote information and how do we acquire it? (Let's call
this the meta-information that the URN references. Information *about*
the document or resource which the URN is designed to uniquely identify.)

If the URN does not contain enough local information to allow us to
retrieve its meta-information, it has no value. Conversely, if the URN
contains all of the meta-information in itself, its value is also limited
because it is unweildy and cannot be controlled or administered.

Thus, a URN must represent the following three pieces of information:

- What method will I use to retrieve the meta-information?
- From where must I retrieve the meta-information?
- For what do I wish to retrieve the meta-information?

Without the first, the method, I have no way of knowing how to retrieve
the information.

Without the second, the location, I have no way of knowing where I can go
to get the information. (Now, this could be "common knowledge" as in:
Use the DNS to get this meta-information. We (developers) know that the
first place to ask for DNS information is our lovcal Name Server. I
believe that this is a very bad idea, as it implies that all retrieval
methods must *know* where to go to get the meta-information. This seems
unnaturally limiting.)

Without the third, the identity, I do not know how to ask for the
meta-information I need.

Is it just me, or does this seem alarmingly familiar?

The "Bottom Line" is this:

I have never understood the need to differentiate between a URL and a URN.

Each presents enough information to allow us to retrieve the content it
represents. Each must carry (or imply) a method we use to retrieve its
content, a location from which to retrieve its content, and a unique
identifier we can use to identify the proper content.

The difference between a URN and a URL is simply in the purpose we put
the content once we retrieve it.

If it is a URL, the content is presented to the user.

If it is a URN, the content is used to make further decisions about the
actual data in which we have an interest.

In a very real (and functional) sense, a URN is nothing more than an
indirect pointer to something of value to the user.

I would like to suggest that there is no reason to differentiate between
a URN and a URL, because they should (naturally) be represented in
exactly the same form:

method://location/identifier

Wrap them in some easily identifiable wrapper, () {} [] <START><END>, and
be done with it. (Cleverly leaving out the religious implications of
wrapping them in < and > )

Warmly, </rr>