owl 中的递归对象 属性
Recursive object property in owl
我们能否将对象 属性 建模为在 owl 中递归?如果没有,有什么解决办法吗?
例如我想将工作流定义为 class in owl。 Task 和 getSubTasks 在我的 ontology 中分别是 class 和对象 属性。我想将工作流建模为递归获取的任务和 getSubTasks 的组合。
听起来您想声明 getSubTasks 或它的某些超属性 是 transitive 属性,您可以在 OWL 中执行此操作。
例如,如果您有一个 class Task、一个 属性 hasImmediateSubTask,以及一个 属性 hasSubTask 这样 hasImmediateSubTask 是 hasSubTask[= 的子属性 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).
我们能否将对象 属性 建模为在 owl 中递归?如果没有,有什么解决办法吗?
例如我想将工作流定义为 class in owl。 Task 和 getSubTasks 在我的 ontology 中分别是 class 和对象 属性。我想将工作流建模为递归获取的任务和 getSubTasks 的组合。
听起来您想声明 getSubTasks 或它的某些超属性 是 transitive 属性,您可以在 OWL 中执行此操作。
例如,如果您有一个 class Task、一个 属性 hasImmediateSubTask,以及一个 属性 hasSubTask 这样 hasImmediateSubTask 是 hasSubTask[= 的子属性 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).