Re: URIs quack like a duck

On Mon, May 29, 2000 at 11:46:23AM -0400, Paul W. Abrahams wrote:
> Tim Berners-Lee wrote:
> > Liam said:
> > >All of these problems stem from using a URI as a name for something
> > >instead of idenftifying the location for something.
> >
> > No no no no no.  An HTTP URI  is a name, and there is a lookup function
> > for it.  There are not rules against reuse imposed globally, but there are
> > as many levels of indirection as you like available.
> >
> > Please stop refering to it as a location....!
> 
> The problem is that if it looks like a duck and quacks like a duck, it's 
> hard to prevent people from imposing duckish expectations on it.  URIs 
> create those expectations.

Hehe.... I've been doing various sides of this discussion since '92.
Over the past decade the various incantations of the URL/URI/URN 
working groups in the IETF have learned a bit about this stuff and
you're both making some fundamental mistakes.

As Tim and others have said repeatedly, any identifier has
aspects of naming and location. Sometimes which ever is prevelant
depends on some aspects of the name (non-reassignability, global-uniqueness,
etc). But more often than not, it actually has more to do with
how you end up using it.

Take domain-names for example, at the various network layers a domain-name
is very much a 'name' whereas an IP address is very much a locator.
Go one level down into the ethernet transport layer and an IP address
becomes a name and your MAC address becomes a locator. Going up
into the application layer, a domain-name becomes much more like
an address while something like a URI becomes a name. 

Any URI can be _used_ as a name or a locator. Its not a function of
the URI. Its a function of the use to which its put. Does that 
mean that some URIs have more applicability to certain functions, yes.
But that's indicative of any addressing/naming mechanism. 

The XML Namespaces spec's job is to define what _functions_ it is
going to use a URI for. If its stricly for locating and you don't need
any naming qualities then an HTTP URI is just fine. If you really
want aspects of naming then you want something like a URN or MID
or even a GUID (which doesn't have a URI scheme but that's trivial
enough to fix). But _all_ of those are valid URI schemes.

It comes down to this: you can take an IP address and do some
simple permutation of it to turn it into a domain-name (which
is what DNS reverse lookups do). In this case, is an IP address
a name or a locator? Neither, its simply an identifier. Its up
to the purpose you use it for to determine which it is: name or address.

IMNSHO, in the xml namespaces quandry you want naming. In some
cases you may want some resolution process to allow you to go find
some resource that represents the name, but that isn't always
required. Disambiguation being the only function needed. 
It can even be considered dangerous or a degredation of service to
attempt resolution. Thus, the designer of the application needs to be 
given the freedom to choose, within a framework, which function he 
needs without causing the other to fail.

URIs give you that framework and that freedom of choice without
denying that freedom to others...

-MM


-- 
--------------------------------------------------------------------------------
Michael Mealling	|      Vote Libertarian!       | www.rwhois.net/michael
Sr. Research Engineer   |   www.ga.lp.org/gwinnett     | ICQ#:         14198821
Network Solutions	|          www.lp.org          |  michaelm@netsol.com

Received on Monday, 29 May 2000 14:50:07 UTC