Can we model an object property to be recursive in owl? If not is there any work around?
E.g. I want to define workflow as a class in owl. Task and getSubTasks are class and object property in my ontology respectively. I want to model workflow as combination of task and getSubTasks fetched recursively.
It sounds like you want to declare that getSubTasks, or some superproperty of it, is a transitive property, which you can do in OWL.
E.g., if you have a class Task, a property hasImmediateSubTask, and a property hasSubTask such that hasImmediateSubTask is a sub-property of hasSubTask
then from:
you can infer that:
Now, if you make hasSubTask be transitive, then from
you can infer that: