Protégé4.3:本体一致性

时间:2014-04-04 15:42:32

标签: rdf owl ontology protege reasoning

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

我宣布:

  • 属性fulfills
  • 两个班级:InventionNeed

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

Invention subClassOf fulfills exactly 1 Need

这意味着我不希望Invention类型的任何个人fulfills Need

为了测试这个断言,我创建了一个名为Boots的发明类型的个人和两个类型为需求的个人Move_fasterEat_faster

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

但是,当我推出HermiT推理器时,我的本体仍然是一致的,即使在以下情况下:

  • Boots履行没有
  • Boots履行任何非Need
  • 的个人

这是正常的吗?

由于

1 个答案:

答案 0 :(得分:6)

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

您描述的本体并不矛盾,因为Move_fasterEat_faster实际上可能是同一件事(实际上,OWL推理器会做出完全相同的结论),其中如果Boots只完成一个Need,那么它仍然是真的。这里创建不一致的唯一方法是添加断言Move_faster owl:differentFrom Eat_faster

同样,如果Boots在您的本体中不执行任何,则OWL推理器将简单地假设Need确实存在一些未命名的Boots。这是开放世界的假设。

Boots实现一些不是(已知)Need的东西也不是不一致的,因为fulfills exactly 1 Need限制没有说明该类实​​例可能实现的内容不是Need的成员。您需要添加allValuesFrom限制才能使其不一致 - 即使这样,如果已知的事物已知为与{{1}不相交的类的成员,则它只是不一致的}。