Skip to content

Metamodeling for the distinction between Process and Task

Hello,

we have the following issue where I am unsure what is the correct modeling technique to tackle it. Lets consider this simplified example:

:Component a owl:Class
:Process a owl:Class
:Task a owl:Class

:hasInputType a owl:ObjectProperty ;
    rdfs:domain :Process ;
    rdfs:range :Component .   # now refers to the individual named Component

:hasInput a owl:ObjectProperty ;
    rdfs:domain :Task ;
    rdfs:range :Component .   # now refers to the individual named Component

What we try is to achieve the following:

  • We want to relate the Process to the class Component and say that e.g. a Process like :UnsrewingProcess would relate to the to class of :Screw using :hasInputType, while an :UnscrewingTask would relate to an individual of the class :Screw using the :hasInput relation

Would I be able to say the following?

:myProcess :hasInputType :Component .
:myTask :hasInputType :MyComponentInstance .

I read into this, and what I find is that this is called "Punning" and is an OWL 2 DL https://www.w3.org/TR/owl2-primer/ see Section 8.3.

I also know that we hre enter the realm of Metamodeling and I am wondering if there is a better solution for this?

Edited by Jan-Felix Klein