- From: Bijan Parsia <bparsia@cs.man.ac.uk>
- Date: Sat, 25 Nov 2006 21:23:08 +0000
- To: Bijan Parsia <bparsia@cs.man.ac.uk>
- Cc: Soonho Kim <soonho.kim@fao.org>, public-owl-dev@w3.org
Just to make clear the difference between using an annotation and
using punning, let me do the comparison using the functional syntax
<http://owl1_1.cs.manchester.ac.uk/owl_specification.html>.
Consider the following ontology, O1 (taken from the above document,
without ontology header stuff):
Declaration(OWLClass(Human) Documentation("The set of all humans."))
Declaration(OWLClass(Animal) Documentation("The set of all animals."))
SubClassOf( Documentation("Humans are a type of animals.") Human
Animal)
And compare with O2
Declaration(OWLClass(Human))
Declaration(OWLClass(Animal))
SubClassOf( Documentation("Humans are a type of animals.") Human
Animal)
DataPropertyAssertion( Documentation Human "The set of all humans.")
DataPropertyAssertion( Documentation Animal "The set of all animals.")
(Each term in this example is meant to be an IRI, so imagine Human,
Animal, and Documentation all have appropriate IRI expansions.)
In O1 there is no punning. A reasoner will strip out all the
"Documentations" because they are *merely* annotations (or, as they
are called in the overview, "semantics free annotations"). This is
not to say that some preprocessor or extension couldn't peek in there
of course! just that OWL 1.1 semantics ignores them.
In O2 the documentation asserts are actual *assertions* in the ABox
of the ontology. "Human" and "Animal" play two distinct roles, as
classes (in the subclass axioms) and as individuals (in the
DataPropertyAssertions). So, in O1 there are *no* named individuals,
whereas in O2 there are *2*.
Now, in O2 you can do everything with Human and Animal that you can
do with any other individual, so you have the full power of the
reasoner to deal with them *as* individuals.
Cheers,
Bijan.
Received on Saturday, 25 November 2006 21:23:22 UTC