我想做出这样的推论,比如图中灰色虚线代表的属性:
我断言了一个普遍的公理:
(hasTaste some Bitter) SubClassOf: goesWellWith some (hasTaste some Sweet)
其中“bitter”是“Bitter”类型,“sweet”是“Sweet”类型。
我认为 owl:someValuesFrom (或曼彻斯特的“some”)意味着至少必须存在一个这样的关系。然而,在做出大胆的图表断言和一般公理之后,这种情况并没有发生。
我怎样才能做到这一点?
编辑(编辑2,我明白了)
我只是想到了一个可以用的超级房产链!我只是指定
hasTaste o complements o isTasteOf
作为gosWellWith的超级地产链。事实上,通过制作 hasTaste、hasTexture 等...通用属性的所有子属性hasTrait,然后我可以分别将 hasTaste 和 isTasteOf 替换为 hasTrait 和 isTraitOf:
hasTrait o complements o isTraitOf
结果捕捉到了彼此互补的食品特性的每一种排列。
在回答您的问题时,我将(1)解释您的方法失败的原因并(2)提供可能的解决方案。
为什么你的方法失败了
一般而言,推理机仅对基于命名类的推理提供反馈,不是匿名类。在你的例子中(hasTaste some XXX)
and goesWellWith some (hasTaste some YYY)
是匿名类,因此它们通常不会构成推理器报告的推论的一部分。
一个可能的解决方案
ObjectProperty: hasIngredient
Characteristics: Transitive
Domain:
FoodCombination
Range:
Food
ObjectProperty: hasTaste
SubPropertyChain:
hasIngredient o hasTaste
Characteristics:
Transitive
Domain:
Food
Range:
Taste
Class: Bitter
SubClassOf:
Taste
Class: BitterSweetCombination
EquivalentTo:
(hasTaste some Bitter)
and (hasTaste some Sweet)
SubClassOf:
TastyCombination
Class: CulinaryDish
SubClassOf:
FoodCombination
Class: DespicableCombination
SubClassOf:
FoodCombination
Class: Food
DisjointWith:
Taste
Class: FoodCombination
SubClassOf:
Food
DisjointUnionOf:
DespicableCombination, TastyCombination
Class: Kale
SubClassOf:
Food,
hasTaste some Bitter
DisjointWith:
Pear
Class: Pear
SubClassOf:
Food,
hasTaste some Sweet
DisjointWith:
Kale
Class: PearKaleDelight
SubClassOf:
CulinaryDish,
hasIngredient some Kale,
hasIngredient some Pear
Class: Sweet
SubClassOf:
Taste
Class: Taste
DisjointUnionOf:
Bitter, Sweet
DisjointWith:
Food
Class: TastyCombination
SubClassOf:
FoodCombination
该本体将分类PearKaleDelight
类作为子类BitterSweetCombination
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)