Inclusions and other gotchas (was:Re: inclusion)

Simon, I don't know if you're now satisfied that inclusions are not a problem
with absolutizing namespace names, but your original message on this subject
suggests that absolutization needs to plug a very leaky bucket.  The problem
seems to be that you never know where the next leak will be, because the whole
process is fragile.  The last leak may have been found, or it may not have.

I think all of the problems with namespace names stems from their use of URI's
(whatever those are <s>) for a purpose other than the one they were intended to
serve, namely, identifying resources.   The namespace spec says very clearly
that namespace names are not intended to be used to retrieve schemas, and
strongly implies that they aren't intended to be used for retrieving anything
else either.  Anyone connected with that spec who's spoken on the subject has
vigorously asserted that a namespace name is just a name.

There are two problems here.  The first is that no matter what the spec says,
some people are going to expect the namespace name to identify a useful
resource of some kind.  That's what's behind TimBL's initiative in starting
this discussion and also behind Microsoft's use of relative URI.  [Side note: I
guess it's URI, not URIs, just as the plural is usually fish, not fishes.]
The second is that your inclusion case and the gotchas waiting in the wings
strongly indicate that a URI reference (to use the precise term) is not,
reliably, a unique and persistent name if any interpretation is attached to
it.  The obvious interpretation is that it is the location of a resource, since
that's what URI are used for almost everywhere else.

If some other flavor of unique identifier were used, say a unique serial
number, no one would be trying to figure out whether absolutization works
reliably or not.  And even if we exclude relative URI, we have the problem that
the mapping from URI to resources is many-to-one; though we may be able to say
definitively that two URI refer to the same thing, we can never say
definitively that they refer to different things unless we compare the
resources themselves.

So I think that the literal interpretation of namespace names rather than
absolutization has to be the way to go, for now.  For the future I think there
are two useful ways to go:

1. Create a new scheme explicitly for the purpose of providing unique namespace
identifiers.   Or maybe an existing one will work -- I don't know.   But
deprecate the use of URL for that purpose, be they relative or absolute.   That
would not break the namespace spec and would avoid the misleading connotation
that URL have.

2. Define additional attributes for attaching useful resources to an element.
That's what some people mistakenly thought xmlns was supposed to do.  That also
would not break the namespace spec.

Paul Abrahams

Received on Thursday, 25 May 2000 15:06:50 UTC