CURIEs in OWL/XML

Right now, the only canonical ways of abbreviating an IRI in OWL/XML  
are to use entities or to use relative IRIs resolved against a base.  
The first is suitable for hand authoring, while the second is not  
(it's like having only one namespace prefix). The second is 'ok' for  
manipulation by XPath (thus XSLT and XQuery) the former is not  
(indeed, entities aren't really supported at all by XPath). Finally,  
entities require a document type declaration which are very much out  
of vogue.

Language like HTML simply expand the set of predefined entities, which  
obviously won't work for us.

We could use QNames, but, blargh! (Note that this use would not have  
the consequences it has in RDF/XML, since we *could* use an IRI  
anywhere we can use a QName).

We use CURIEs elsewhere, so we perhaps should use them here.

There are, conceptually, two changes that need to be made:
	1) We need a prefix binding mechanism.
	2) We need a way to indicate the use of a CURIE.

In each case, there are two, more or less canonical and obvious  
mechanisms:

	1.1 We overload the XML Namespace binding mechanism (i.e., xmlns)
	1.2 We introduce a new element/attribute/whatever, e.g.,
		<curieprefix prefix="" iri=""/>
	(Which follows RELAX NG and Schematron.)

	2.1 We use "safe CURIEs" in the IRI attribute, i.e., [dc:creator]
		<http://www.w3.org/TR/curie/#s_syntax>
	2.2 We use a new attribute "curie", e.g.,
		<Class curie="dc:creator"/>

I have a very strong preference for 1.2 (and forbidding 1.1) and some  
preference for 2.2.

The CURIE spec currently requires XML host langauges to support 1.1  
even if they support 1.2. I think this is horrifically bad practice  
and have written them a comment to that effect. I think that even if  
they do not change that, that we should ignore it. It's hard to  
overestimate how painful the namespace variant is for processing as  
well as continuing the confusion that CURIEs help alleviate (i.e.,  
about XML namespaces). I'm surprised that they don't define a  
canonical alternative method, but oh well.

I think having a CURIE attribute is somewhat less tedious and  
errorprone than requiring safe CURIEs in IRIs.

The last issue is how to handle multiple declarations of the same  
prefix, esp. when they diverge (say in an imports). The simplest  
solution is to forbid multiple bindings of a prefix in a single  
ontology and scope bindings to the file they appear in. Or even  
simpler is just to forbid multiple bindings.

I think it would be nice to have a file by the working group that had  
a standard set of common bindings available for xinclusion.

Cheers,
Bijan.

Received on Saturday, 14 March 2009 11:54:29 UTC