I am working with Turtle and OWL.
Say X is a class has a number of properties that it includes. How can I make the X have the same properties as all its children classes (Y and Z)?
:has a owl:ObjectProperty
:canDo a owl:ObjectProperty
:X :has :Y
:X :has :Z
:Y :canDo :thingA
:Y :canDo :thingB
:Z :canDo :thingC
:Z :canDo :thingD
I want the reasoner to infer :X :canDo :thingA.
Is this a transitive property, even if the classes are different?
I found the answer. You can use property chaining.
[] rdfs:subPropertyOf :canDo;
owl:propertyChain (
:has
:canDo
).