W3C home > Mailing lists > Public > public-owl-comments@w3.org > August 2010

Re: OWL 2 DL not backward compatible with OWL 1 DL?

From: Ian Horrocks <ian.horrocks@comlab.ox.ac.uk>
Date: Fri, 6 Aug 2010 12:12:22 +0100
Cc: public-owl-comments@w3.org
Message-Id: <CE4DCEE5-7A86-41F8-9400-BB42437DAD4E@comlab.ox.ac.uk>
To: Antoine Zimmermann <antoine.zimmermann@deri.org>
Antoine,

Thanks for spotting the typographical errors -- we will add these to the list of errata (http://www.w3.org/2007/OWL/wiki/Errata).

Regarding the issue with reserved vocabulary, it is true that OWL 2 is slightly stricter than OWL 1 w.r.t. disallowed vocabulary in OWL DL ontologies. This obviously does result in a small loss of backwards compatibility, but the WG felt that this was acceptable given:

1) the improved clarity and simplicity of the specification;
2) that, with a few notable exceptions (such as owl:Thing and owl:Nothing), using URIs from the rdf:, rdfs:, xsd: and owl: namespaces to name ontology entities (classes, properties, etc.) is very bad practice; and
3) that there will be few if any backwards compatibility problems in practice as, to the best of our knowledge and experience, all existing OWL DL ontologies already satisfy the OWL 2 DL vocabulary restriction.

Regards,
Ian Horrocks
OWL Working Group co-Chair



On 3 Aug 2010, at 11:52, Antoine Zimmermann wrote:

> Dear OWL working group,
> 
> 
> I noticed a subtle issue in the OWL 2 Specs, which would break backward compatibility between OWL 1 DL and OWL 2 DL (plus 2 minor editorial corrections in the end):
> 
> 
> In OWL 2 SS&FSS [1], it is said that:
> 
> """IRIs with prefixes rdf:, rdfs:, xsd:, and owl: constitute the reserved vocabulary of OWL 2."""
> 
> and that:
> 
> """IRIs from the reserved vocabulary other than owl:Thing and owl:Nothing MUST NOT be used to identify classes in an OWL 2 DL ontology."""
> 
> but the OWL 1 Specification for the mapping from RDF [2] says:
> 
> """Definition: The class-only vocabulary is rdf:Statement, rdf:Seq, rdf:Bag, and rdf:Alt. The datatype-only vocabulary is the built-in OWL datatypes. The property-only vocabulary is rdf:subject, rdf:predicate, rdf:object, and all the container membership properties, i.e., rdf:_1, rdf:_2, ."""
> 
> and then follows a definition of "separated vocabulary" which is not clear and probably incorrect [5], but it seems to imply that, e.g., the "class-only vocabulary" can be used in class definitions, that is, rdf:Seq, rdf:Bag, rdf:Alt and rdf:Statement can be defined as owl:Class and be further constrained with OWL axioms.
> Additionally, as far as I could dig in the OWL 1 specs, it seems that no restriction is specified on terms starting with the prefixes mentioned above.
> 
> The OWL 1 validator [3] validates ontologies using rdf:Seq as a class ID, for instance.
> 
> The implication of this is that OWL 2 DL is not backward compatible with OWL 1 DL. Yet, in the introduction of OWL 2 Mapping to RDF Graphs [4], it is said:
> 
> """The mappings presented in this document are backwards-compatible with that of OWL 1 DL: every OWL 1 DL ontology encoded as an RDF graph can be mapped into a valid OWL 2 DL ontology using the mapping from Section 3 such that the resulting OWL 2 DL ontology has exactly the same set of models as the original OWL 1 DL ontology."""
> 
> 
> 
> Additional minor remarks:
> 
> 1) The example before Section 9.1 in RDF is using owl:subject, owl:predicate, owl:object instead of owl:annotatedSource, owl:annotatedProperty, owl:annotatedTarget.
> 
> 2) In the example before Section 9.3, there is "&mdsah;" which is obviously a misspelled &mdash;.
> 
> 
> 
> [1] http://www.w3.org/TR/owl2-syntax/
> [2] http://www.w3.org/TR/owl-semantics/mapping.html#4.2
> [3] http://www.mygrid.org.uk/OWL/Validator
> [4] http://www.w3.org/TR/owl2-mapping-to-rdf/#Introduction_and_Preliminaries
> [5] The definition is inconsistent: it is said that a set of ontologies has a /separate vocabulary/ if, among other things, it only uses the class-only vocabulary as class IDs (i.e., only rdf:Statement, rdf:Seq, rdf:Bag, rdf:Alt), and it only uses the built-in classes as class IDs (i.e., only owl:Thing and owl:Nothing).
> 
> 
> 
> Regards,
> -- 
> Antoine Zimmermann
> Post-doctoral researcher at:
> Digital Enterprise Research Institute
> National University of Ireland, Galway
> IDA Business Park
> Lower Dangan
> Galway, Ireland
> antoine.zimmermann@deri.org
> http://vmgal34.deri.ie/~antzim/
> 
Received on Friday, 6 August 2010 11:12:55 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 6 August 2010 11:12:56 GMT