Use cases for relative URIs as namespace names

For the record.

I can't remember what prompted me to write up these sue cases for 
relative URIs in namespaces, and I apologize if I have done it before. 
The XML 1.0 and XML 1.1 namespaces documents "deprocate" this practice, 
following a vote at a XML plenary.  It seems that RDF does need this, 
but no one else seems to just now.

Tim BL


1. An SQL database supports a query by an RDF query protocol.  This 
protocol involves encoding the query in XML.  All the columns in the 
database have URIs which are

The database table is

<http://example.com/customer#parts>

and two of its columns are properties

<http://example.com/customer#number>

and

<http://example.com/customer#cost>

The client sends and XML message to the server by doing a GET on a
URI which starts

	http://example.com/customer?

  followed by a URI-encoding of the XML for  "What is cost of part 
number 4?"

	http://example.com/customer?<query 
xmlns:="./"><number>4</number><cost>?</cost></query>

In this application, every database has a new namespace for its terms.  
It makes the query a lot shorter.
It also means that some query code can be written without knowing the 
hostname of the query, and proxying is easier, etc.


2.  In in RDF, local identifiers are of the for rdf:id="foo" or 
about="#foo", which are equivalent.  These are sed for naming arbitrary 
things within a description.

The URl "#foo" is defiuned to be relative to the current document. by 
the URI spec.

RDF can also use these ientifiers as class names or properties, in 
which case they are used
as element names in a namespace  of the document itself. It is clearly 
useful to be able to say
	xmlns:=""
in this case.

We have had plenty of trouble with information (for example in the cwm 
test suite) being serialized as XML, and the local identifiers having 
necessarily to be given absolute URIs.  This has mean that the test 
files have ended up bein branded with the local filepath whether they 
were processed
(xmlns="file:/disk4/joe/devel/test/set5/bar") which works, but its a 
pain. It makes files arbitrarily different for testing, can have 
privacy implications, and so on.

Tim

Received on Saturday, 31 January 2004 12:06:43 UTC