Re: inference and punning

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