具有不同域或范围的多个 owl:inverseOf
Multiple owl:inverseOf with different domains or ranges
owl:inverseOf
通常用于定义属性之间的反向关系。 P1 owl:inverseOf P2
形式的公理断言对于 P1 的 属性 扩展中的每一对 (x,y),在 P2 的 属性 扩展中存在一对 (y,x) ,反之亦然,例如 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 Tom
,我该如何建模 ontology 以便推理者可以推断出 Spike hasOwner Mammy
和 Tom hasOwner Mammy
?
我觉得你的逻辑有问题。
hasOwner owl:inverseOf hasDog
hasOwner owl:inverseOf hasCat
这两个陈述只有在 hasCat
和 hasDog
相同时才成立。想一想,如果P1
是P2
的倒数和P3
的倒数,那么根据传递性,P2
一定和P3
一样。
您应该有一个谓词 hasPet
作为 hasOwner
的逆运算,创建一个 class Pet
并使 Dog
和 Cat
子 class 个。
然后您可以制定规则来推断 P1 hasPet P2
和 P2 isA Cat
遵循 P1 hasCat P2
。
忘记任何拥有所有者的东西要么是猫要么是狗这一难以理解的限制,您可以使用(在 Turtle 语法中)更接近合理的模型:
hasDog rdfs:subPropertyOf [ owl:inverseOf hasOwner ] .
hasCat rdfs:subPropertyOf [ owl:inverseOf hasOwner ] .
这具有不创建新的 class 名称或新的 属性 名称的缺点。
PS:我知道知道有主人的东西,既不是猫也不是狗。
owl:inverseOf
通常用于定义属性之间的反向关系。 P1 owl:inverseOf P2
形式的公理断言对于 P1 的 属性 扩展中的每一对 (x,y),在 P2 的 属性 扩展中存在一对 (y,x) ,反之亦然,例如 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 Tom
,我该如何建模 ontology 以便推理者可以推断出 Spike hasOwner Mammy
和 Tom hasOwner Mammy
?
我觉得你的逻辑有问题。
hasOwner owl:inverseOf hasDog
hasOwner owl:inverseOf hasCat
这两个陈述只有在 hasCat
和 hasDog
相同时才成立。想一想,如果P1
是P2
的倒数和P3
的倒数,那么根据传递性,P2
一定和P3
一样。
您应该有一个谓词 hasPet
作为 hasOwner
的逆运算,创建一个 class Pet
并使 Dog
和 Cat
子 class 个。
然后您可以制定规则来推断 P1 hasPet P2
和 P2 isA Cat
遵循 P1 hasCat P2
。
忘记任何拥有所有者的东西要么是猫要么是狗这一难以理解的限制,您可以使用(在 Turtle 语法中)更接近合理的模型:
hasDog rdfs:subPropertyOf [ owl:inverseOf hasOwner ] .
hasCat rdfs:subPropertyOf [ owl:inverseOf hasOwner ] .
这具有不创建新的 class 名称或新的 属性 名称的缺点。
PS:我知道知道有主人的东西,既不是猫也不是狗。