多个owl:inverseOf具有不同的域或范围

时间:2017-04-05 15:23:26

标签: rdf semantic-web owl ontology protege

owl:inverseOf通常用于定义属性之间的反向关系。形式P1 owl:inverseOf P2的公理断言,对于P1的属性扩展中的每对(x,y),在P2的属性扩展中存在一对(y,x),反之亦然,例如{{ 1}}和hasChild

如何在具有多个域和范围的对象属性之间定义此类反向关系,例如:

hasParent

如果我知道hasOwner owl:inverseOf hasDog hasOwner owl:inverseOf hasCat Classes: Person, Dog, Cat ObjectProperties: hasOwner, hasDog, hasCat hasOwner: Domains: Dog or Cat Ranges: Person hasDog: Domains: Person Ranges: Dog hasCat: Domains: Person Ranges: Cat Mammy hasDog Spike,我如何对本体进行建模,以便推理器推断出Mammy hasCat TomSpike hasOwner Mammy

2 个答案:

答案 0 :(得分:4)

忘记任何拥有所有者的东西都是猫或狗的难以理解的限制,你可以使用(用Turtle语法)更接近合理的模型:

hasDog rdfs:subPropertyOf [ owl:inverseOf hasOwner ] .
hasCat rdfs:subPropertyOf [ owl:inverseOf hasOwner ] .

这样做的好处是不会创建新的类名或新的属性名。

PS:我知道拥有主人的东西,既不是猫也不是狗。

答案 1 :(得分:1)

我认为你的逻辑存在缺陷。

hasOwner owl:inverseOf hasDog
hasOwner owl:inverseOf hasCat

如果hasCathasDog相同,则这两个陈述只能为真。考虑一下,如果P1P2的倒数和P3的倒数,则传递性P2必须与P3相同。

您应该使用谓词hasPet作为hasOwner的倒数,创建一个类Pet并创建它的DogCat子类。< / p>

然后,您可以制定规则,推断P1 hasPet P2P2 isA Cat之后的P1 hasCat P2。{/ p>