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.
Sincerely,
Jeff Heflin
Associate Professor
Lehigh University