根据OWL2中对称和非对称属性的定义以及子属性继承属性特征中的解释,我假设将非对称属性声明为对称属性的子属性会导致推理者检测到不一致(HermiT 1.3.8.413(,但在Protégé 5.2.0中并非如此。对此有什么解释吗?
HermiT从下面的断言中正确地推断出要:Word
和:W1 :isNeighbour :W2
:isNeighbour
的范围,并在:W1 :folllows :W2
时检测到不一致。Protégé 5.2.0 中的 Pellet 和 Fact++ 1.6.5 也是如此。
:isNeighbour a owl:SymmetricProperty; rdfs:domain :Word .
:follows a owl:AsymmetricProperty; rdfs:subPropertyOf :isNeighbour .
:W1 a :Word .
:W2 a :Word .
:W2 :follows :W1 .
这段代码似乎是文本的合理形式表示(单词在彼此跟随时是(对称的(邻居(非对称((,但在 OWL 的定义中,它似乎是不一致的,因为使用属性:follows
的每个断言都应该始终允许使用超类:isNeighbour
做出的断言。 我不确定推理者是否比OWL严格,或者我对OWL有误解。
某些属性特征是通过属性层次结构"自上而下继承"的,而有些则不是:
-
P rdfs:subPropertyOf Q
表示∀x∀y(P(x,y) → Q(x,y))
(1( -
Q a owl:SymmetricProperty
表示∀x∀y(Q(x,y) → Q(y,x))
(2(
(1(和(2(是否需要∀x∀y(P(x,y) → P(y,x))
?你已经找到了一个反模型。您可以用"自然数"替换"单词"以保证坚固性。
实际上,对称性是"下层遗传的"。
P.S. Demystizing OWL for the Enterprise by M. Uschold 说对称属性的子属性是对称的,这是不正确的。