【问题标题】:OWL ontology property restriction in equivalentClass等效类中的OWL本体属性限制
【发布时间】:2016-08-05 01:13:43
【问题描述】:

我已经定义了一个类作为属性的限制:

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

并且想在另一个类中“重用”这个限制,我使用的是等效类层次结构:

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

但后来我对 Protege 显示的结果感到困惑::B 显示为等效于 :A 的类(如预期的那样),但显示为“subClassOf(匿名祖先)”到“P some xsd:string”。我已经预料到, :B 也继承了等效类的属性限制。

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

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

推理器(我使用 FACT++)推断 Ind 属于 A 类型,因为它包含属性 P,并且属于 B 类型 - 因为它是 A,并且 A 等于 B,但不是因为属性P.

那么,我想问一下,为什么在我的例子中属性限制是继承为 subClassOf 的,是否有可能将其继承为等效类?

感谢任何提示。

从 A 查看:

从 B 处查看:

【问题讨论】:

  • 不知道为什么会发生这种情况,但我可以确认(并添加了支持截图)。这很奇怪。但是,由于您具有等效的公理,因此我希望您所做的推理不会受到负面影响。我希望这只是渲染中的一个怪癖。由于一切都是其自身的子类/超类,因此您看到的结果是正确的,只是奇怪地将它们列为超类而不是等效类。
  • 感谢 Joshua 的截图。不幸的是,我不允许自己发布它们。
  • 不幸的是,观察到的问题不仅仅是 Protege 视图的渲染问题。你会看到,如果你添加一个具有属性 P 的个体,然后让推理器推断它的类型,你会对它的结果感到惊讶。我在帖子中添加了 cmets。
  • "因为它是A,并且A等于B,但不是因为属性P。"你怎么解释这里的?即使推理者报告了一个理由,也可能有其他理由。
  • 这只是对 protege 给出的“Ind Type B”的解释:1)Ind P“p”2)A EquivalentTo P some xsd:string 3)A EquivalentTo B

标签: owl ontology protege


【解决方案1】:

注意不要将 Protégé 的行为与推理器的工作方式或 OWL 的工作方式相混淆。当您在 Protégé 中应用推理时,Protégé 可能只询问类的上层层次结构中的内容。也许 Protégé 没有问推理者什么是等价的。我注意到,对于几种推论,Protégé 没有展示它们,即使推理者自己能够推导出它们。 Protégé 的源代码我从来没有仔细研究过,我对 Pellet 的工作原理了解有限,对 HermiT 算法的理论知识有限,对其他推理器的代码一无所知,所以我不能多说。

无论如何,您并没有误解 OWL 的语义是如何工作的,这可能不是推理器中的错误。这当然是由于 Protégé 的工作方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-26
    • 2012-09-20
    • 2014-02-25
    • 2016-09-02
    • 2013-09-04
    • 2012-10-18
    • 1970-01-01
    相关资源
    最近更新 更多