Rdf 如何指定一个关系链意味着另一个关系链

Rdf 如何指定一个关系链意味着另一个关系链,rdf,semantic-web,owl,Rdf,Semantic Web,Owl,假设我正在为家庭关系定义一个OWL本体,并且我已经定义了关系“的姐妹”和“的父母”。我现在想定义一个关系“阿姨的”,并指定这个关系是由另外两个链所暗示的。换句话说:如果X是Y的姐姐,Y是Z的父母,那么X是Z的阿姨 有办法做到这一点吗?它类似于owl:TransitiveProperty,但显然不起作用。在定义属性之间的关系方面,它与“owl:inverseOf”的一般脉络相同 编辑 我想我正在寻找一种方法来指定一个属性(在本例中为“阿姨”)是一个其他属性的集合,但我仍然找不到在OWL中实现这一点

假设我正在为家庭关系定义一个OWL本体,并且我已经定义了关系“的姐妹”和“的父母”。我现在想定义一个关系“阿姨的”,并指定这个关系是由另外两个链所暗示的。换句话说:如果X是Y的姐姐,Y是Z的父母,那么X是Z的阿姨

有办法做到这一点吗?它类似于owl:TransitiveProperty,但显然不起作用。在定义属性之间的关系方面,它与“owl:inverseOf”的一般脉络相同

编辑
我想我正在寻找一种方法来指定一个属性(在本例中为“阿姨”)是一个其他属性的集合,但我仍然找不到在OWL中实现这一点的方法。

假设使用OWL2,您可以使用构造(此功能在OWL1中不可用)。这可以使用Turtle用RDF表示为:

ex:auntOf owl:propertyChainAxiom ( ex:sisterOf ex:parentOf ) .

@sh1ftst0rm请注意,这并不完全符合您的要求(“一个属性(在本例中为“阿姨”)是其他属性的组合”)。这说明该组合是另一个组合的子属性。每次你都有
x个y姐妹。y是z的父项。
您将得到
x auntOf z
,但您不会得到另一个方向。你不能从
xauntof z
中推断出有一些y,比如
xsisterof y。y是z的父属性。
链是属性的子属性。@JoshuaTaylor谢谢,这是一个很好的注释。当然,这是您所期望的,因为在
x
中可能是多个实体的姐妹,但它们(通常)不是
z
@sh1ftst0rm的所有父级。不,这不一定是您所期望的。X是z的姑妈当且仅当X的兄弟姐妹是z的父母。这就是做阿姨的意义。子属性链公理仅捕获该定义的一个方向。在OWL中,因为子属性链不覆盖两个方向,即使您知道x是z的阿姨,也无法推断存在某些y,例如x是y的姐妹,y是z的父。仅仅知道x是姑妈,你就不能推断x是父母的妹妹。你只能得到一个方向的if和only if。为了让它更明确:你可以断言x是z的阿姨,断言z没有父,或者x没有兄弟,并且逻辑上仍然是一致的,即使你有子属性链公理(sisterOf o parentOf)是阿姨的子属性。我明白了,谢谢你的澄清。只要我仍然可以显式地断言关系的
阿姨,而不必定义兄弟姐妹/父母,我就可以了。但很高兴知道。