【发布时间】:2016-09-03 00:23:42
【问题描述】:
使用 protege 5.0,我有 A、B 和 C 类,这样
B 是 A 的子类,
C 是 B 的子类。
我定义对象属性 P1 和 P2 使得
P2 是 P1 的子属性。
P1的域是C
P1的范围是A,
P2的域是C,
P2的范围是B。
假设有 A、B 和 C 类的实例 a、b 和 c,假设
c P2 b
运行我期望的推理器它显示 c P1 a 但令人惊讶的是它显示 c P1 b !
我应该如何更改推理器显示 c P1 a 的设计?
【问题讨论】:
-
请先逐行格式化公理。很难内联阅读。
-
既然你只有
c P2 b和P2 subPropertyOf P1,你为什么还指望c P1 a。 -
你是对的!我的知识概念是这样的,我希望它显示
c P1 a。我应该添加什么公理来推理和显示c P1 a? -
如果
hasFather是可传递的并且hasFather subPropertyOf hasAncestor,您的最后一个示例将起作用。但是我仍然看不到与您最初的问题的关系。我仍然不明白应该如何推断您的预期公理。我的意思是,基于哪个闭包?你能澄清一下吗? -
我真正的公理是
Property: RHasDatgah isSuperPropertyOf RHasAvaz和Class: Dastghah isSuperClassOf Avaz和Class: Avaz isSuperClassOf Radif。所以假设 dastgah、avaz 和 Radif 是 Dastgah、Avaz 和 Radif 的实例。假设avaz AHasDastgah dastgah和radif RHasAvaz avaz,我想要推理机显示radif RHasDastgah dastgah。
标签: rdf semantic-web owl ontology protege