Re:

>From: "Clark C. Evans" <cce@clarkevans.com>

>On Tue, 30 May 2000, Tim Berners-Lee wrote:
>> >
>> >  "If the name X and the name Y are different,
>> >   then we know the resource identified by X is
>> >   different from the resource identified by Y"
>> 
>> I disagree.
>
>I am not talking about URIs in general, rather I
>am referring to URI* = { subset of URI that make
>acceptable namespace names }  
>
>The specification clearly states a "uniqueness" 
>requirement.  Allowing any-old-URI will not
>meet this requirement.  The subset below 
>does meet this requirement.
>
>  URI' = { URI such that injective quality holds }
>       = { URI such that there are no aliases    }
>
>> In fact, I would say that you can't make a system 
>> which scales globally in a decentralized way
>> with that tautology.
>
>I agree.  However, the java package naming 
>scheme has scaled globally by bootstrapping
>from a centralized naming system, DNS.  


The people who worry about the stability of 
HTTP names of course should have the same
worry in principle about java class names.
("sun.com could forget to pay their $100 to NSI
and lose the name and then someone else could
get it and issue classes in com.sun").
While I think persistence of domain names is 
an issue, we don't need to trip up over it now in either case.

>The java package naming scheme also has the 
>injective property... if someone changes the
>package name, even slightly, people expect that,
>in some manner, the code identified is different.


That works because the java development world is
small and tree-structured.

In fact, what happens when I make a play version of
an existing java source tree?  I give it name 
in my own space.  Most of the classes are in fact
exactly the same in every way - I haven't modified them
yet. But I will. Or I might. So the copies have difefrent names.

(I might in fact have alternatively made a copy of a set of classes from
someone's play space into a more generally recognized
org.w3c space.  Nothing has changed in the code, but
the name may be consisdered more persistent.)

But system still works.
No one needs to prove that two things are different.
The system doesn't need to know that I definitely do
not have a suitable class.  It all works by glueing together
code which *is* compatible, by using classes which *do*
match.

One is not really using the injective property as you call it
at all, strictly.

When something complains that it can't find a 
java class, what it means is that it can't find it using the
identifier it was given.  It does not mean that there is 
no java class at its diposal which is the required class.
Just none which can be demonstarted to be be the
required class be virtue of its identifier.

>A slight change of an http URL by dropping a 
>"www." does not generate the same expectation
>of change; as aliases are common with URLs.


They are common with URLs and less common with java classes.
But in each case they are expectations set as a result of
the social systems, not the technical ones.

The web works by knowing that two URIs are equal
and therefore identify the same resource.
There is not a lot which breaks which two URIs
are used for something which in all other respects is
identical. It isn't a great idea, of course.
Caches waste space and miss hits. But no one
gets misinformation.


>> >The problem with URLs is that, in general, they
>> >lack this injective quality.  In other words,
>> >I can find N distinct URLs that identify
>> >(resolve to) the same resource.
>> 
>> That is life in the big city.   The problem is with the
>> big city, noteth URIs.   The goot news is that you
>> can do everything you need to do using
>> 
>>      u1 == u2 ==> R1 == R2
>> 
>> as I said in previous messages.
>
>Without the uniqueness constraint,  R1 == R2 
>implies u1 == u2,  one cannot acertain if the 
>two URI given identify the same resource.


On the contrary, you can indeed acertain that
two URIs given identify the same resource.
What you cannot do is acertain that they don't.

>I am not asking to change the way URIs work;
>but rather, I am trying to describe the
>subset of URIs that will operate as needed
>for the namespace mechanism to retain the
>essential uniqueness property required.


That subset will not be a scalable system.
It will disallow someone to give their name to your <whatever>.

>Best,
>
>Clark
>
>
>
>

Received on Thursday, 1 June 2000 17:49:31 UTC