Search code examples
semantic-webowlmodelingrelation

OWL: define relation via another relation


I'm currently learning how to use linked data and specifically how to deal with ontologies and with semantic data. To do this I'm diving into OWL and I'm trying to model a simple work environment. For the problem I have the following to parts are of interest

  • the Employee class
  • the Projects class
  • the :worksOn relation between an Employee and a Project

If I now have

Employee1 :worksOn Project1
Employee2 :worksOn Project1

is there any way to model a property :worksWith, such that in this example case Employee1 :worksWith Employee2 could be derived without explicitly stating it? So basically I want to know if it is possible to define a relation via another relation?


Solution

  • The proposition of Joshua Taylor is the right one. I've tested it under Protégé 5.0.0 beta 17.

    You have to use the Machester OWL Syntax to define the worksWith object property:

    worksOn o inverse (worksOn) subPropertyOf worksWith
    

    enter image description here

    Then using any of the reasoners (HertmiT, Fact++ or Pellet) you obtain the desired inference (in yellow).

    enter image description here