Re: namespace usage as assertions

>Because there is no way to compare abstract resources for equality: we
>can only test names (strings) currently

The definition of URI space is that two resources are the same resource if
they have the same absolute URI -- where "the same" is defined as
string-equivalence. If they do not have the same URI, they _may_ be the
same resource (after domain-name lookup, or after canonicalization)... but
we don't know that they are.

One way to think about this is that  URI-space acts like an address space
containing pointers to data. Pointer variables A and B are the same object
only if they occupy the same point in the address space; whether they
currently point to the same place is a separate question. Similarly, URIs A
and B are the same resource only if they occupy the same point in URI
space; whether they would have the same effect when accessed is a separate
question.

It's a reasonable view of the Web. It has two major problems for use in
Namespaces:

1) It's unituitive for naive users, who assume that the only reason for
using a URI is because you intend to use it to go out onto the network.
I've lost track of how many times someone has asked whether SAX's use of
URIs to name its options means that a SAX parser can't run without a
network connection. The fact that this list -- which is  a pretty savvy
group of people -- has trouble with this abstraction suggests that fixing
this is going to take a _major_ educational effort.

2) As noted above, URIs per se have no concept of inequality -- they're
either equal or unknown. To use them as namespace identities, we have to
define namespaces as matching if and only if we're sure their URIs match --
that is, if the two names are precisely string-equal. That too may be
unintuitive for many users, who are used to aliasing and canonicalization
being applied transparently when they submit a URI.

I agree, "it's harder to explain" shouldn't be an issue.. But anyone who
has worked customer support will tell you that sometimes it's a lot better
to avoid raising questions that you know you'll have to answer for every
newcomer. If folks _have_ to read the FAQ to understand your spec, then
either your design or your description of it is excessively baroque.
Sometimes that's unavoidable in order to meet the requirements. In this
case, that really doesn't seem to be the case.

The best way I know to simplify these points for pedagogical purposes --
and to simplify and speed up the implementations of this logic -- is to say
"The URI is just compared literally". This continues to bias me heavily
away from the Absolutize behavior.
______________________________________
Joe Kesselman  / IBM Research

Received on Thursday, 29 June 2000 10:38:54 UTC