Sticking another fork in the URI issue

Roy T. Fielding wrote:

> 
> Can we please stick a fork in this issue?

[sings] ... they stab it with their steely knives, but they just can't 
kill the beast ...

Let me try another fork.

URIs are strings with fairly strict syntax constraits.  There are two 
kinds of operations defined on them:

1. You can test them for equality
2. You can attempt to access representations of the resources they identify.

All of the functions required by XML namespaces rely only on #1.  Many 
of the functions performed by a web browser rely only on #1.  As Roy 
points out, a very high proportion of all the uses of HTTP URIs in the 
web involve lookup in a cache index and don't involve the HTTP protocol 
at all.

Speaking as the implementor of two of the largest web robots ever 
written and one commercial internet search engine, I am intimately 
familiar with investing vast numbers of CPU cycles in manipulating and 
storing and indexing and retrieving and caching and queuing HTTP URIs as 
names, because that's what they are, names.

HTTP URIs, because of the fact that they hang off the IP address space 
and DNS, have the immensely useful property that multiple different 
parties can easily invent their own with vanishingly small probability 
of collisions.  This helps with some applications based on #1.  Java 
classnames leverage the same property.

So... what's the problem?  As Simon repeatedly points out, people suffer 
from angst and confusion when they see something beginning "http:" and 
are told it's just a name, and there's no particular requirement to 
involve the HTTP protocol to use it.  [Despite the fact that this 
happens inside their own web browser all the time.]  In particular, 
there is extreme angst over the proposition that "maybe there's a 
representation available, maybe not, deal with it" and this leads to 
suggestions for URI schemes that are "guaranteed non-dreferencable" 
(which seems profoundly misguided to me).

I observe that people who have to build heavyweight machinery such as 
server modules or browser modules or caches or data repositories or 
search engines quickly figure out the independence of the naming and 
representation-access semantics and go to work and get the job done.  It 
doesn't seem to cause any *practical* problems.

So I grant that the angst exists - but I claim that it exists nowhere in 
the real world with the intensity observed among the contributors to 
xml-dev and www-tag.  This granted, I find that the utility of the 
resource/URI/representation framework more than makes up for it - it 
enabled us to build the Web after all.  -Tim

Received on Friday, 11 October 2002 12:57:50 UTC