Re: xml:base in OWL-S files

On Oct 14, 2004, at 2:50 PM, Daniel Elenius wrote:

>
> Working with the OWL-S files, and struggling with imports in protege,  
> I have looked at some details of the OWL-S files, in, well some detail  
> :)
> And I want to discuss the following issue.
>
> All the OWL-S files now have an xml:base defined, such as
>
> xml:base="&process;"
>
> in Process.owl, where &process; is defined by <!ENTITY process  
> "http://www.daml.org/services/owl-s/1.1/Process.owl">
>
> But ordinary namespace prefixes have a hash (#) in the end, such as:
>
> xmlns:grounding= "&grounding;#"

Namespaces and xml:bases and xml entities all have different rules, I'm  
afraid.

> where we have <!ENTITY grounding  
> "http://www.daml.org/services/owl-s/1.1/Grounding.owl">
>
> Now, the question is, should xml:base URIs have the # in the end?

No. The # is superfluous for rdf:ID and stripped off for rdf:about and  
rdf:resource. So, from a URI resolution point of view, it's irrelevant  
and, I think, misleading. It's also harmless.

> In the examples in the OWL Web Ontology Language Guide  
> (http://www.w3.org/TR/2004/REC-owl-guide-20040210/), they do. For  
> example:
>
> xml:base  ="http://www.w3.org/TR/2004/REC-owl-guide-20040210/wine#"
>
> Are these examples wrong? A lot of things suggest that they are.

It's harmless.

> First, in the OWL Web Ontology Language Reference  
> (http://www.w3.org/TR/owl-ref/),
> Appendix A, the owl ontology itself has:
>
> xml:base  ="http://www.w3.org/2002/07/owl"
> (no # in the end).

You need to learn the rules for unabbreviating URIs in RDF/XML. There's  
at least 4 ways (entities, relative uris, relative uris in rdf:ID,  
qnames) and they all work somewhat differently (well, qnames and  
entities just concat, but they can be used in different places).

>
> The OWL Ref says that
>
> "The line
>
>  <owl:Ontology rdf:about="">
>
> states that this block describes the current ontology. More precisely,  
> it states the current base URI identifies an instance of the class  
> |owl:Ontology|. It is recommended that the base URI be defined using  
> an |xml:base| attribute in the |<rdf:RDF>| element at the beginning of  
> the document."

OWL ref is just documentation.

> and the OWL Guide that
>
> "The rdf:about attribute provides a name or reference for the ontology.
> Where the value of the attribute is "", the standard case, the name of  
> the ontology is the base URI of the owl:Ontology element.  Typically,  
> this is the URI of the document containing the ontology.
> An exception to this is a context that makes use of xml:base which may  
> set the base URI for an element  to something other than the
> URI of the current document."
>
> I guess this still doesn't give conclusive evidence for either variant.

As is the Guide.

These say nothing about it, at all.

>  But if we consider that
> "Syntactically, |owl:imports| is a property with the class  
> |owl:Ontology| as its domain and range" (OWL Ref) *and* that the URI  
> given to owl:imports is written _without_ the # (at least I have never  
> seen it _with_ a #), *and*

You definitely wouldn't want to use a # there.

OWL semantics are defined in terms of an abstract syntax, which itself  
has a mapping to rdf triples, which itself has rules for how to  
serialize or parse them from RDF/XML.

So, in this case, RDF/XML dominates. So, see:
	http://www.w3.org/TR/2004/REC-rdf-syntax-grammar-20040210/#section- 
baseURIs

In particular:
	
"An empty same document reference "" resolves against the URI part of  
the base URI; any fragment part is ignored"

> that the xml:base gives the URI to the owl:Ontology instance, then it  
> looks like the xml:base should be
> written _without_ the #. Thus, the examples in the OWL Guide would be  
> wrong.

All that matters is how the URIs come out.

Cheers,
Bijan Parsia.

Received on Friday, 15 October 2004 00:58:51 UTC