Transitive properties

   Two quick questions I hope someone can help with.

   I have a transitive symmetric property, biological relation (though  
any other similar property will do):

:bioRel a owl:SymmetricProperty, owl:TransitiveProperty .

   I have also been hacking together a rules file for cwm (edited from  
[1]). To this I have added transitivity, thus:

{?p a owl:TransitiveProperty .
  ?x ?p ?y .
  ?y ?p ?z .} => {?x ?p ?z .} .

   When I run this with a sample statement:

:John :bioRel :Bob .

   I get reflexive results (i.e. John is his own relative):

:John :bioRel :Bob, :John .
:Bob :bioRel :John , :Bob .

   My questions:
1. is this behaviour as specified? From my readings of the OWL  
specifications, I think x, y, and z are supposed to be different, so  
this is incorrect (only subClass and subProperty are reflexive?).   
However, I've also seen in other contexts that a transitive symmetric  
relation is automatically reflexive [2].
2. is this down to cwm binding the same entity (e.g. John) to both ?x  
and ?z when it shouldn't? I can fix this by adding '?x  
owl:differentFrom ?z .' to the antecedent, but I don't know if I  
should. Is there a better way of doing it? Alternatively, is there a  
thorough RDFS/OWL rules file anyone can point me to?

Your thoughts would be most welcome --- I'm sure I've just missed  
something somewhere.

Regards and thanks,


Received on Wednesday, 21 July 2004 11:36:23 UTC