Search code examples
ontologyprotegereasoning

How to create a condition to obtain an automatic object property relation in Protege?


I'm doing a project in Protege on the ontology related to the university problem. I have some classes and object properties relations between them:

Diagram

As depicted, there are several classes and relations. My issue is, how (and where) to write the condition to obtain the automatic inference that, if all blue-arrow relations are satisfied by the individual, the red-arrow relation must be also satisfied (thus it is inferred then by the reasoner)?

I will appreciate any help! Thanks. Hubert


Solution

  • Option 1

    Use SWRL. On the SWRL tab, type the following:

    isTakingCourse(?s, ?c) ^ hasModule(?c, ?m) ^ isExamOn(?e, ?m) -> takesExam(?s, ?e)
    

    Option 2

    Use property chains and inverse properties. In the Description view, declare takesExam to be a superproperty of:

    isTakingCourse o hasModule o inverse isExamOn