I am using Protege 3.4(built 506), along with the 'family' ontology. The
ontology has some SWRL rules defined, like:
family:Person(?family:x) ∧
family:hasParent(?family:x, ?family:y) ∧
family:hasSister(?family:y, ?family:z)
→ family:hasAunt(?family:x, ?family:z)
and a few similar ones. By default, they are all ticked (enabled).
Now, when I run the reasoner(Pellet), it inferres the following:
DefaultOWLNamedClass(http://swrl.stanford.edu/ontologies/examples/
family.swrl.owl#Child) Moved from family:Person to family:Relative
DefaultOWLNamedClass(http://swrl.stanford.edu/ontologies/examples/
family.swrl.owl#Parent) Moved from family:Person to family:Relative
DefaultOWLNamedClass(http://swrl.stanford.edu/ontologies/examples/
family.swrl.owl#Sibling) Moved from family:Person to family:Relative
But, when I disable the SWRL rules, and run the reasoner again, the output is
completely the same.
My questions are:
Is it the reasoner's job to include these rules in reasoning process? Or maybe,
is there a button for executing them somewhere? Or do they not make any
difference?
Am I missing something? :)
Basicaly what I am trying to do, is to write a query which could inferre
somthing from defined assertions like:
if (child(y) which hasFather(y,x) and fatherHasWife(x,z)) then hasMom(y,z):
[[hasFather(y,x) AND father(x) AND hasWife(x,z) AND wife(z)] => hasMother(y,z)]
(or any other. this is just an example)
I am sorry for asking such questions, but I am realy trying to understand all
this mechanism. So far, without any progress.