我在Protege 5.2中创建了一个本体,现在我正在尝试正确创建相应类的对象属性。这是我的UML图的一个片段,据此我构建了我的本体: Snippet of my ontology
关于isLocated对象属性,它们的特征如下:如果节点X具有SITE值Z,并且在位置Y的SITEIST中出现相同的值Z,则节点X位于位置Y. / p>
我应该查看SWRL规则还是有一些方法可以对此进行编码而不必去那里?
提前谢谢你们!
答案 0 :(得分:1)
在SWRL中,您可以直截了当地实现这一目标:
locationHasSiteIst(?l, ?s) ^ nodeHasSite(?n, ?s) -> nodeLocatedInLocation(?n, ?l)
如果你想在OWL中使用它,你需要将locationHasSiteIst
和nodeHasSite
作为对象属性,并将Site
作为类而不是数据类型,然后你可以使用<在Protege中强> 对象属性链接和包含 ,如下所示:
nodeHasSite o inverse(locationHasSiteIst) SubPropertyOf nodeLocatedInLocation
最后一行表示如果某个节点n1
位于site1
,而位置l1
位于s1
,那么n1
位于l1
。