owl中的递归对象属性

Posted

技术标签:

【中文标题】owl中的递归对象属性【英文标题】:Recursive object property in owl 【发布时间】:2015-12-10 08:55:58 【问题描述】:

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

例如我想将工作流定义为 owl 中的一个类。 Task 和 getSubTasks 分别是我本体中的类和对象属性。我想将工作流建模为任务和递归获取的 getSubTasks 的组合。

【问题讨论】:

请提供您的数据示例。答案很可能是“是”,但很难确切地说出您在问什么。 【参考方案1】:

听起来您想声明 getSubTasks 或它的某些超属性是 transitive 属性,您可以在 OWL 中做到这一点。

例如,如果您有一个类 Task、一个属性 hasImmediateSubTask 和一个属性 hasSubTask,这样 hasImmediateSubTaskhasSubTask

的子属性

有ImmediateSubTask ⊑有子任务

然后从:

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

你可以推断

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

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

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

你可以推断

hasSubTask(a,d)。

【讨论】:

以上是关于owl中的递归对象属性的主要内容,如果未能解决你的问题,请参考以下文章

递归排除 Typescript 中的只读属性

js运用递归实现浅拷和深拷贝

JavaScript对象---递归遍历对象

OWL 对象属性双向

递归循环遍历对象以构建属性列表

检查角度为7的递归对象的属性