猫头鹰中的递归对象属性 [英] Recursive object property in owl
问题描述
我们可以将对象属性建模为在owl中是递归的吗?如果没有,可以解决吗?
Can we model an object property to be recursive in owl? If not is there any work around?
例如我想将工作流定义为owl中的一个类. Task和getSubTasks分别是本体中的类和对象属性.我想将工作流建模为递归获取的task和getSubTasks的组合.
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.
推荐答案
听起来您想声明 getSubTasks 或它的某些超级属性是 transitive 属性,您可以在OWL中执行此操作.
It sounds like you want to declare that getSubTasks, or some superproperty of it, is a transitive property, which you can do in OWL.
例如,如果您有一个类 Task ,一个属性 hasImmediateSubTask 和一个属性 hasSubTask ,例如, hasImmediateSubTask 是 hasSubTask
E.g., if you have a class Task, a property hasImmediateSubTask, and a property hasSubTask such that hasImmediateSubTask is a sub-property of hasSubTask
hasImmediateSubTask⊑ hasSubTask
hasImmediateSubTask ⊑ hasSubTask
然后来自:
hasImmediateSubTask(a,b)
hasImmediateSubTask(a,c)
hasImmediateSubTask(a,b)
hasImmediateSubTask(a,c)
您可以推断:
hasSubTask(a,b)
hasSubTask(a,c)
hasSubTask(a,b)
hasSubTask(a,c)
现在,如果您使 hasSubTask 具有传递性,则从
Now, if you make hasSubTask be transitive, then from
hasSubTask(a,b)
hasSubTask(b,d)
hasSubTask(a,b)
hasSubTask(b,d)
您可以推断:
hasSubTask(a,d).
hasSubTask(a,d).
这篇关于猫头鹰中的递归对象属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!