owl 中的递归对象 属性

Recursive object property in owl

我们能否将对象 属性 建模为在 owl 中递归?如果没有,有什么解决办法吗?

例如我想将工作流定义为 class in owl。 Task 和 getSubTasks 在我的 ontology 中分别是 class 和对象 属性。我想将工作流建模为递归获取的任务和 getSubTasks 的组合。

听起来您想声明 getSubTasks 或它的某些超属性 是 transitive 属性,您可以在 OWL 中执行此操作。

例如,如果您有一个 class Task、一个 属性 hasImmediateSubTask,以及一个 属性 hasSubTask 这样 hasImmediateSubTaskhasSubTask[= 的子属性 15=]

hasImmediateSubTask ⊑ hasSubTask

然后来自:

hasImmediateSubTask(a,b)
hasImmediateSubTask(a,c)

您可以推断

hasSubTask(a,b)
hasSubTask(a,c)

现在,如果您使 hasSubTask 具有传递性,那么从

hasSubTask(a,b)
hasSubTask(b,d)

您可以推断

hasSubTask(a,d).