等价类

时间:2016-04-13 18:41:48

标签: owl ontology protege

我已将某个类定义为属性的限制:

:A rdf:type owl:Class ;
   owl:equivalentClass [ rdf:type owl:Restriction ;
          owl:onProperty :P ;
          owl:someValuesFrom xsd:string
   ] .

并希望重用'这个限制在另一个类中,我使用了equivalentClass层次结构:

:B rdf:type owl:Class ;
   owl:equivalentClass :A.

但是后来我对Protege显示的结果感到困惑::B显示为equivalentClass:A(如预期的那样)但是" subClassOf(Anonymous Ancestor)" to" P some xsd:string"。我预料到:B继承属性限制也作为equivalentClass。

B中属性限制的子类化而不是等效的类关系会影响包含属性P的个体的类型推理:

:Ind rdf:type owl:NamedIndividual ;     
     :P "p" .

推理者(我使用FACT ++)推断出Ind是A类,因为它包含属性P和B类 - 因为它是A,而A等于B,但不是因为财产P.

所以,我想问一下,为什么属性限制在我的例子中作为subClassOf继承,如果有可能将它继承为equivalentClass?

感谢任何提示。

从A:

查看

view from A

从B查看:

view from B

1 个答案:

答案 0 :(得分:0)

小心不要将Protégé的行为与推理器的工作方式以及OWL的工作方式混淆。有可能的是,当您在Protégé中应用推理时,Protégé只会询问课程上层的内容。也许Protégé没有问推理者什么是等价的。我注意到,对于几种推论,Protégé并没有显示它们,即使reasoners本身能够推断出它们。我从来没有深入了解Protégé的源代码,而且我对Pellet的工作方式知之甚少,对HermiT算法的理论知识有限,对其他reasoners的代码没有其他了解,所以我不能多说。

在任何情况下,您都不会误解OWL的语义是如何工作的,这可能不是推理器中的错误。这当然是由于Protégé的工作方式。