- From: Tim Berners-Lee <timbl@w3.org>
- Date: Thu, 1 Jun 2000 17:49:25 -0400
- To: "\"Clark C. Evans\"" <cce@clarkevans.com>
- Cc: <xml-uri@w3.org>
>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