【问题标题】:Protégé 4.3 : Ontology consistencyProtégé 4.3:本体一致性
【发布时间】:2014-04-04 15:42:31
【问题描述】:

我目前正在 Protégé 4 中创建关于发明的本体。

我声明:

  • 属性fulfills
  • 两个类:InventionNeed

仍然在 Protégé,我的类发明由以下断言定义:

Invention subClassOf fulfills exactly 1 Need

这意味着我不想要任何 Invention 类型的个人,而 fulfillsNeed多个

为了测试这个断言,我创建了一个名为 Boots 的发明类型的个体和两个分别称为 Move_fasterEat_faster 的需要类型的个体。

我断言Boots fulfills Move_fasterBoots fulfills Eat_faster 应该会破坏我的一致性,因为发明应该只满足一个需求。

但是,当我启动 HermiT 推理器时,我的本体仍然是一致的,即使:

  • Boots 满足 nothing
  • Boots 满足任何不是Need 的个人

正常吗?

谢谢

【问题讨论】:

    标签: rdf owl ontology protege reasoning


    【解决方案1】:

    是的,这很正常。 OWL 有一个open world assumption,但没有unique name assumption。总而言之,这意味着给定两个名称(例如 Move_fasterEat_faster),OWL 推理器无法对这些名称是否实际上表示同一个人做出任何假设。

    您描述的本体并没有矛盾,因为Move_fasterEat_faster 实际上可能是同一件事(实际上,OWL 推理器会得出这个结论),在这种情况下,@ 仍然是正确的987654327@ 正好满足一个Need。在这里创建不一致的唯一方法是添加断言Move_faster owl:differentFrom Eat_faster

    类似地,如果Boots 在你的本体中满足任何条件,OWL 推理器将简单地假设Boots 确实满足了一些未命名的Need。这就是开放世界的假设。

    Boots 实现不是(已知是)Need 的东西也不是不一致,因为fulfills exactly 1 Need 限制没有说明该类的实例可能实现的不是@ 成员的东西987654336@。您需要添加一个 allValuesFrom 限制以使其不一致 - 即使这样,只有当完成的事情已知是与 Need 不相交的类的成员时,它才会不一致。

    【讨论】:

      猜你喜欢
      • 2016-12-31
      • 2014-02-25
      • 1970-01-01
      • 1970-01-01
      • 2014-08-07
      • 2010-10-25
      • 2020-01-01
      • 1970-01-01
      • 2014-08-15
      相关资源
      最近更新 更多