- From: Bijan Parsia <bparsia@isr.umd.edu>
- Date: Thu, 14 Oct 2004 17:58:44 -0700
- To: Daniel Elenius <daele@ida.liu.se>
- Cc: public-sws-ig@w3.org
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