2

我在 Protege 5.2 中创建了一个本体,现在我正在尝试正确创建相应类的对象属性。这是我构建本体的 UML 图的 片段:我的本体的片段

关于 isLocated 对象属性,它们的特征如下:如果节点 X 有一个 SITE 值 Z,并且相同的值 Z 出现在位置 Y 的 SITEIST 中,则节点 X 位于位置 Y。

我应该查看 SWRL 规则还是有某种方法可以在不必去那里的情况下对其进行编码?

提前谢谢你们!

4

1 回答 1

1

在 SWRL 中,您可以直接实现:

locationHasSiteIst(?l, ?s) ^ nodeHasSite(?n, ?s) -> nodeLocatedInLocation(?n, ?l)

如果你想在 OWL 中创建它,你需要将locationHasSiteIstandnodeHasSite作为对象属性,并且Site作为一个类而不是数据类型,那么你可以在 Protege 中使用对象属性链接和包含,如下所示:

nodeHasSite o inverse(locationHasSiteIst) SubPropertyOf nodeLocatedInLocation

最后一行表示如果一个节点n1位于site1,并且一个位置l1也位于s1,则n1位于l1

于 2017-06-05T09:50:28.850 回答