【发布时间】:2017-03-03 17:26:08
【问题描述】:
我有一个包含两个主要类(代码和主题)和一个对象属性(主题获得代码)的本体,其中:
- 代码(类)包含所有可用的代码(实例)
- 代码的(类)子类对这些代码(实例)进行分类;手动指定
- 主题(类)包含所有可用的主题(实例)
- 每个主体(实例)都断言(获得了属性)一些代码(实例)
- 主题(类)子类根据关联的代码(实例)和代码的代码类别忠诚度定义主题(实例)的集合
- 推理器即将推断主题实例的断言到特定组(主题的子类)
当我在 Protege 中启动推理器时,推断的实例被断言到实例仍然满足约束的最深主题子类(见附件 Figure)。但是,如果我将推断的公理导出到单独的本体中,则每个主题子类都包含其自身的所有实例 + 其后代(显然,使用 JAVA OWL API 观察到相同的行为)。
我的问题是:为什么结果不同?我理解这两种情况的逻辑,但我不明白为什么它们不同。有什么方法可以导出 Protege 中显示的推论吗?如果没有直接的方法,我可以强迫 Hermit(或其他推理者)从 OWL API 以某种方式向我展示完全相同的“黄色门徒”结果吗?到目前为止,我只找到了一种解决方法 - 按原样导出推理,然后通过 SPARQL 请求差异。
我正在使用 Protege 5.0.0、Reasoner Hermit 1.3.8 和 OWL API 5.0.5(尽管不同的推理器获得了相同的结果:Fact++、Pellet;以及不同的 OWL API 和 Protege 版本:4.x)
我会为任何 cmet 感到非常高兴,即使是简单的解释也会对我有很大帮助。
【问题讨论】:
标签: ontology protege owl-api inference reasoning