MothersLovers - an OWL restriction question

I would like to specify the class that is such that the object of one relation 
is the same ( or same domain ) as object of another relation. 

Something that could be written like this ( were it to exist )

SomeType 
owl:equivalentClass 
      [ a owl:SameRangeRestriction;
        owl:onProperty :rel1;
        owl:onProperty :rel2 
      ] .

One could define the class of lovers of their mothers like that

MothersLovers owl:equivalentClass [ a owl:SameRangeRestriction
                           owl:onProperty :lover
                           owl:onProperty :mother ] .

As that SameRangeRestriction does not exist, I tried this:

MothersLovers 
   owl:equivalentClass [ a owl:Restriction;
              owl:onProperty [ rdfs:subPropertyOf [ owl:propertyChainAxiom ( :lover [ owl:InverseOf :mother ] )];
                               a owl:ReflexiveProperty ];
              owl:minCardinality 1 ] .


But Pellet does not like property chain axioms in Restrictions. ( perhaps other resoners allow this?)
Is there some way to do this properly? ( I do have a real use case, but it's more complex to explain )

Henry


Social Web Architect
http://bblfish.net/

Received on Friday, 14 March 2014 14:32:09 UTC