Spa*_*on_ 2 rdf owl ontology protege reasoning
我目前在Protégé4中创建了一个关于发明的本体论.
我宣布:
fulfillsInvention和Need仍然在Protégé,我的课程发明由以下断言定义:
Invention subClassOf fulfills exactly 1 Need
Run Code Online (Sandbox Code Playgroud)
这意味着我不希望任何类型的个体Invention不是fulfills一个Need或多个.
为了验证这一说法,我创建了一个名为类型发明的个人Boots和类型的极品两个人分别叫Move_faster和Eat_faster.
我断言,Boots fulfills Move_faster并且Boots fulfills Eat_faster,这应该打破我的一致性,因为发明应该只满足一个需要.
但是,当我推出HermiT推理器时,我的本体仍然是一致的,即使在以下情况下:
Boots满足什么Boots 满足任何不是的人 Need这是正常的吗?
谢谢
是的,这都很正常.OWL有一个开放的世界假设,并没有唯一的名称假设.总而言之,这意味着给定两个名称(例如Move_faster和Eat_faster),OWL推理器不能做出关于这些名称是否实际上表示同一个人的任何假设.
您所描述的本体是不矛盾的,因为它可能是Move_faster和Eat_faster实际上是相同的事情(事实上,一个OWL推理将使正是这样的结论),在这种情况下,它仍然是真实的,Boots满足只有一个Need.在这里创建不一致的唯一方法是添加断言Move_faster owl:differentFrom Eat_faster.
同样,如果Boots满足什么在你的本体,一个OWL推理会简单地认为有一些不知名的Need是Boots没有履行.这是开放世界的假设.
Boots实现不是(已知)a的东西Need也不是不一致的,因为fulfills exactly 1 Need限制没有说明该类的实例可能实现的不是其成员的事物Need.你需要添加一个allValuesFrom限制来使它变得不一致 - 即使这样,如果已经完成的事物被认为是一个不相交的类的成员,它也只是不一致Need.
| 归档时间: |
|
| 查看次数: |
458 次 |
| 最近记录: |