4

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?

Bhargav Rao
  • 50,140
  • 28
  • 121
  • 140

1 Answers1

2

I found the answer. You can use property chaining.

[] rdfs:subPropertyOf :canDo;
   owl:propertyChain (
     :has
     :canDo
).

see OWL 2 in Action – Property Chains