1

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?

wastl
  • 2,643
  • 14
  • 27
  • 3
    Yes. In OWL you'd do this with a subproperty chain. You'd say that :worksWith is a subproperty of (inverse(:worksOn) o :worksOn). ["How to infer isBrotherOf property between two individuals" and its answer](http://stackoverflow.com/q/19559651/1281433) have more information than you need, but definitely answer this question. Also, [How to specify that a chain of relationships implies another](http://stackoverflow.com/q/24147160/1281433). Since inverse(:worksOn) is a property, the chain you're interested in is inverse(:worksOn) - :worksOn. – Joshua Taylor Dec 02 '15 at 13:28
  • thank you very much, this is exactly what I was looking for. Should I now close the question as a duplicate, or simply leave it open, because what I'm asking is pretty much answered in those questions already? – wastl Dec 02 '15 at 15:32
  • I think this is a well worded question, and may help others find that same kind of information. It's a bit simpler than those other questions too,so not quite a duplicate. The best thing might be to post and accept a self answer when you get it all worked out. – Joshua Taylor Dec 02 '15 at 15:56
  • Ok, then that's what I'll do. Thanks – wastl Dec 02 '15 at 15:58

1 Answers1

1

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

Ortomala Lokni
  • 56,620
  • 24
  • 188
  • 240
  • Thank you very much! As soon as I have the possibility to try it out myself I will accept the answer – wastl Dec 10 '15 at 19:54