Axiom Annotations in OWL 1.1

I'd like to raise an issue about the treatment of axiom annotations vs
entity annotations in the OWL1.1 spec. This discussion is primarily
concerned with the structural specification and functional-style
syntax [1].

In the current spec, axioms can contain annotations. The annotation is
essentially "part" of the axiom and the annotations play a part in the
structural equivalence of axioms. The spec explicitly says:

[[
For example, the axiom

SubClassOf( Human Animal )

is not structurally equivalent to the axiom

SubClassOf( Comment("Humans are a type of animals.") Human Animal)

even though the semantics of the two axioms is equivalent.
]]

With entities, the situation is slightly different. Entities can be
annotated, but they are annotated via EntityAnnotation axioms which
are "stand-off", e.g. they are in some way external to the entity
being annotated. So we have for example:

EntityAnnotation(BlueWhale Label("Blue Whale"))

stating that the class has a particular label.

There are a number of issues that this approach throws up.

1/ This is somewhat inconsistent -- the axiom annotations and the
entity annotations are beign treated in different ways. Of course,
axioms and entities have different status in the current
specification, axioms are "first class citizens", which classes and
properties are not. So a different treatment is not, per se, a bad
thing.

2/ It's harder to add arbitrary annotations to axioms. For example, if
I want to take an ontology that contains an axiom:

SubClassOf( Whale Fish )

and add an annotation to this axiom:

SubClassOf( Comment("Sean says this is wrong") Whale Fish )

then I have to essentially remove the axiom and add a new axiom with
the associated comment. It may also be difficult to comment or provide
any annotations on the annotations.

3/ Related to 2/ above, removing an axiom may be harder in
implementation terms as I have to know precisely the axiom to remove
(including annotations) in order to remove it from the collection.

An alternative proposal would be to include AxiomAnnotations in the
same way that we have EntityAnnotations. We could then add arbitrary
annotations to axioms. This would, I believe, provide a cleaner story
for implementation. However, it does introduce some subsequent
questions.

Axioms do not have "names" in the same way that entities have, so
there is an issue as to how one would refer to the axiom in the
annotation. However, if equivalence of axioms is based on structural
equivalence then we could simply state the axiom in the annotation,
e.g.

AxiomAnnotation( Comment("Sean says this is wrong")
		 SubClassOf( Whale Fish ) )

Another question is what happens when an axiom is annotated, but is
then subsequently removed from the ontology. E.g. we have a situation
where the ontology contains *only* the annotation above and no other
logical axioms. Note that such a situation can already occur with
entities (e.g. an entity may appear in an annotation axioms but not in
any "logical" axioms).

As the axiom is only "present" in an annotation, then it should not
have any logical significance. However, this situation may well be
troublesome in terms of implementation. A possible solution here would
be to include some additional structural constraints forbidding this
kind of situation.

In summary, I propose that axioms are annotated through a "stand-off"
annotation style as with entities, rather than through an embedding of
the annotation in the axiom.

     Sean

[1] http://webont.org/owl/1.1/owl_specification.html

--
Sean Bechhofer
School of Computer Science
University of Manchester
sean.bechhofer@manchester.ac.uk
http://www.cs.manchester.ac.uk/people/bechhofer

Received on Tuesday, 10 July 2007 09:34:28 UTC