- From: Sean Bechhofer <sean.bechhofer@manchester.ac.uk>
- Date: Tue, 10 Jul 2007 09:28:57 +0200
- To: public-owl-dev@w3.org
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