Rdf Proté;gé;4.3:本体一致性
我目前正在创建一个关于Protégé4中发明的本体论 我宣布:Rdf Proté;gé;4.3:本体一致性,rdf,owl,ontology,protege,reasoning,Rdf,Owl,Ontology,Protege,Reasoning,我目前正在创建一个关于Protégé4中发明的本体论 我宣布: 属性满足 两类:发明和需要 仍然在Protégé上,我的类发明由以下断言定义: Invention subClassOf fulfills exactly 1 Need 这意味着我不希望任何类型的发明的个人不能满足a需要或不止一个 为了测试这个断言,我创建了一个名为Boots的发明类型个体,以及两个分别名为Move\u faster和Eat\u faster的需要类型个体 我断言,Boots能更快地实现移动和Boots能更快地
- 属性
满足
- 两类:
和发明
需要
Invention subClassOf fulfills exactly 1 Need
这意味着我不希望任何类型的发明的个人不能满足a需要或不止一个
为了测试这个断言,我创建了一个名为Boots
的发明类型个体,以及两个分别名为Move\u faster
和Eat\u faster
的需要类型个体
我断言,Boots能更快地实现移动
和Boots能更快地实现吃
,这应该打破我的一致性,因为一项发明应该只满足一种需求
但是,当我启动HermiT reasoner时,我的本体论仍然是一致的,即使:
Boots
实现无任何功能
Boots
满足任何非需求的个人
这正常吗
谢谢是的,一切正常。猫头鹰有一个,没有一个。综上所述,这意味着给定两个名称(例如,移动更快
和吃得更快
),OWL推理者无法对这些名称是否实际表示同一个人做出任何假设
您描述的本体并不是不一致的,因为有可能Move\u faster
和Eat\u faster
实际上是同一件事(事实上,OWL推理者会做出准确的结论),在这种情况下,Boots
确实满足了一个需求。这里创建不一致性的唯一方法是添加断言Move\u faster owl:different from Eat\u faster
类似地,如果Boots
在您的本体中没有实现任何功能,那么OWL推理程序将简单地假设Boots
确实满足一些未命名的需求。这是开放世界的假设在起作用
Boots
完成一些不(已知)a需要的东西也不是不一致的,因为完全满足了1个需要
限制,因此该类的实例可能会实现的事情,而不是需要的成员。您需要添加一个allValuesFrom
限制,以使其不一致-即使如此,只有当所完成的事情已知是与need
不相交的类的成员时,它才是不一致的