我们可以在OWL限制中使用owl:sameAs吗?

时间:2017-05-08 04:31:53

标签: owl restriction

例如,我有三个类:Flock,Bird,Velocity。我还有两个属性:hasMember(域为Flock,范围为Bird)和hasAttribute(域为Bird,范围为Velocity)。现在我想为Flock类添加一个EquivalentClass限制作为定义。让我们考虑一个非常简单的定义:在群中,所有的鸟都有相同的速度。如何在OWL中表达这一点?

1 个答案:

答案 0 :(得分:1)

警告:这个答案实际上是不正确的,请查看评论以了解原因。

问题"我们可以在OWL限制中使用owl:sameAs吗?"答案是否定的,而不是OWL(2)本体论。但是,您可以在OWL Full本体中执行任何您喜欢的操作(即,根据基于OWL RDF的语义解释的RDF图)。然而,这与你的问题的细节无关,你想要谈论一群鸡群的速度。

在OWL 2 DL范围内,您的问题有解决方案。引入属性flockVelocity并使属性链hasMember o hasAttribute成为flockVelocity的子属性。将flockVelocity设为功能属性,您就完成了。或者,您可以在flockVelocity上定义基数限制。在海龟:

:hasMember a owl:ObjectProperty;
    rdfs:domain :Flock;
    rdfs:range :Bird .
 :hasAttribute a owl:ObjectProperty; # why not :hasVelocity?
    rdfs:domain :Bird;
    rdfs:range :Velocity .
 :flockVelocity a owl:ObjectProperty, owl:FunctionalProperty;
    owl:propertyChainAxiom (:hasMember :hasAttribute) .

完成。如果您不关心在OWL DL中并且允许自己完全自由OWL,则可以使用空白节点而不是:flockVelocity,这样您就不必引入人工属性名称。