反身财产造成的不一致

时间:2013-06-09 12:43:03

标签: owl

以下本体不一致。你能解释一下原因吗?

:Ingredient    a                   owl:Class.

:Car           a                   owl:Class;
               owl:disjointWith    :Ingredient.

:MyCar         a                   :Car.

:Cheese        a                   :Ingredient.
:Milk          a                   :Ingredient.

:containsIngredient   a            owl:ReflexiveObjectProperty, owl:TransitiveObjectProperty;
                      rdfs:domain  :Ingredient;
                      rdfs:range   :Ingredient;

:Cheese        :containsIngredient :Milk.

推理者推断:MyCar :containsIngredient :MyCar 这意味着:MyCar a :Ingredient:MyCar a :Car:Car :disjointWith :Ingredient开始,我的本体论就不一致了。

问题是:为什么:containsIngredient的自反属性:MyCar为真,尽管它有:Ingredient作为范围和域?

1 个答案:

答案 0 :(得分:2)

显然,owl:ReflexiveObjectProperty适用于所有内容(owl:Thing),无论属性的域和范围如何。通过为属性设置rdfs:domainrdfs:range,您隐式断言所有owl:Thing个人也是范围和域类的个体。在我看来,这会使owl:ReflexiveObjectPropery无用。

我在上面的本体中应该做的是使:Ingredient等同于containsIngredient Self(Protégé类表达式语法),而不是使用忽略域和范围的owl:ReflexiveObject属性财产。

相关问题