RE: Namespaces and URIs

> Does this mean that the URL does not identify my homepage 
> anymore ? no.

Agreed. I still identifies your home page, but it is no longer an
unambiguous identifier.

> Does this mean I'm a naughty boy, using the same URI for 2 distinct
> things ? no, I argue:
> - I use it as a URI identifying my homepage
> - I use it as a unique and persistent string to identify my namespace
> I could even have used the string "champin.y2001" for the namespace !

Insofar as the namespace spec is concerned, yes, you are a naughty
boy; not because the namespace is a URL (all the namespace spec requires
is that the namespace name is some kind of URI, and it is in your example)
but because you have identified *two* distinct resources with the 
same URI.

Also, insofar as the semantics and behavior of the http:// URI 
(URL) scheme is concerned, you are IMO a naughty boy in using such
a URL as the name of what is intrinsicly an abstract resource.

Furthermore, insofar as RDF is concerned, IMO you also are a naughty boy
because you have made it impossible to differentiate between statements
made about your web page identified by the specified URL and the namespace
identified by the *same* URL.
 
> So, what *is* the URI of the namespace ??

The namespace spec suggests a URN first, and other URIs second. Obviously
the namespace spec authors were thinking in terms of universal names
for abstract resources, namely for those namespaces.

> AFAIK, there is none defined for the moment. 

There is none defined at the moment, such that all namespace names must
be instances of that single URI scheme -- but the only argument for
having only one URI scheme for namespaces would be to simplify the
mapping problem of QNames to full URIs of names within namespaces.


> An immediate 
> solution would
> be
>     xmlns:http://champin.y2001/
>     xmlns:champin.y2001
> where 'xmlns:' is a URI scheme, even URN I think.
> Let's be clear: the xmlns attributes do not have to contain 
> the "xmlns:"
> prefix ! Why should they, by the way... they clearly define a context
> where the *string* has to be interpreted as a 'xmlns:' URI.

Firstly, your second example is not a URI, and namespace names must be 
valid URIs. Secondly, whether you use URIs or any other *string* as
a context for names, you still need to map the namespace + name into
a consistent identity.

> I am sure we could solve the concatenation issue, quite the same way,
> either by creating a 'qname:' URI scheme or by extending the 'xmlns:'
> scheme in order to include an optionnal element name.
> 
> I am also sure I'm not the first one to make that kind of proposition.
> However I could not remember who else, nor what reason were 
> objected so
> that the whole world is not using it now :) Please refresh my 
> memory if
> so.

Having a single URI (URN) scheme such as "name:champin.y2001/foo",
requiring that all namespace names be instances of that scheme, and
defining an absolute, explicit, and reliable mapping algorithm
for deriving full URIs from namespace + name, certainly would 
go along way towards a solution.

The question is what it would take to accomplish that.

Patrick

Received on Friday, 8 June 2001 09:31:32 UTC