Comments on OWL 2 Candidate Recs

As a member of the original Web Ontology Working Group, I feel some 
responsibility to comment on OWL 2. First, let me preface that I had my 
doubts that now was an appropriate time to revise OWL. That said, I was 
pleasantly surprised to see that OWL 2 includes some useful features 
without doing any significant damage. I know how hard reaching agreement 
is, so I congratulate the working group on what they have achieved so far.

I will start with what I think are the most positive features of OWL 2 are:

- property chains: this is something that was in the Requirements 
document of OWL, but never made it into the language. This provides OWL 
with a significant improvement in defining the semantics of properties 
(which it was very weak on in the past). I consider this the single most 
important new feature of the language.

- the mapping from RDF graphs to the functional syntax. This is 
something I argued for in the first WG, but never got.

- the additional syntactic sugar is helpful

Now let me say a few things that I was either disappointed with or that 
I thought could be expressed better in the documents.

- I find it strange that imports is not mentioned at all in the Direct 
Semantics. I think it should be explicit that the semantics should be 
applied to the axiom closure of the ontology. I am aware that Sect. 3.6 
of the Structural Specification provides a canonical parsing of 
ontologies, and that this involves expanding the ontology with all 
declarations in imported ontologies; but I think the Direct Semantics 
could be clarified by expressly mentioning that this parsing is required 
to determine the semantics of an ontology.

- Deprecation. I think the introduction of the owl:deprecated annotation 
property is nice, but it almost seems like an afterthought. I found very 
little discussion of the intent and the purpose of the property. I know 
it has no formal syntax, but at least the original OWL specs explained 
what deprecation was used for. It should also be made clear in some 
document that DeprecatedClass is a class iri with owl:deprecated=true 
(and likewise for DeprecatedProperty). In the "Mapping to RDF Graphs" 
doc, it is shown that the graph containing DeprecatedClass and 
DeprecatedProperty gets translated to this annotation property, but this 
is a bit hidden. Note, I think the mapping should also include 
"Declaration( Class (*:x))" (or the property version) in order to be 
fully backward compatible with OWL. In general, I think versioning could 
be better explained in the documents, but perhaps the Primer would be 
the right place for such exposition.

- Profiles. I don't agree with the choice of features to include in the 
profiles. One particular example is I don't think negation should be in 
OWL QL and OWL RL, since these profiles are intended for databases 
and/or rule-based systems. Because these systems make the close-world 
assumption, handling negation in them correctly is not straight-forward. 
In particular, it seems that a consistency check would be required to 
see if the logic is trivialized and that everything might be entailed.

I also question the choice of basing OWL QL, the profile intended for 
large numbers of instances, on DLLite. I know there are a few 
implementations of OWL QL, but do any of them scale to 5 million triples 
or more? Work on scalable systems is now focusing on billions of 
triples, and yes some of these systems do much more than RDFS reasoning 
(e.g. OWLIM). Perhaps the QL profile should focus on the commonalities 
between some truly scalable systems? I'd like to note that property 
chains are an incredibly important feature in OWL, and that as long as 
there are no cycles, are also incredibly easy to implement in databases. 
These should be in OWL QL no matter what.

- Some important features that were identified by the OWL Requirements 
document and that still haven't made it in OWL 2 are the ability to 
perform arithmetic computations (e.g., to related a property 
lengthInMeters to to the property lengthInFeet) and to do string 
manipulations (e.g, to say that the name property is equivalent to the 
concatenation of the firstName  and lastName properties). These types of 
heterogeneity are extremely common on the Web, and are thus critical for 
any practical Web ontology language.

Thanks for your hard work, and I hope you find my comments helpful. I 
look forward to your response.


Jeff Heflin
Associate Professor
Lehigh University

Received on Friday, 31 July 2009 02:25:13 UTC