遵循 OWL 2 中对称和非对称属性的定义以及子属性继承属性特征中的解释,我假设将非对称属性声明为对称属性的子属性会导致推理器检测到不一致(HermiT 1.3.8.413),但在 Protégé 5.2.0 中并非如此。对此有何解释?
HermiT 从下面的断言中正确推断出:isNeighbour
to:Word
和的范围:W1 :isNeighbour :W2
,并在 时检测到不一致: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 有误解。