【问题标题】:Semantic error in designing ontology in protegeprotege中设计本体的语义错误
【发布时间】: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 bP2 subPropertyOf P1,你为什么还指望c P1 a
  • 你是对的!我的知识概念是这样的,我希望它显示c P1 a。我应该添加什么公理来推理和显示c P1 a
  • 如果 hasFather 是可传递的并且 hasFather subPropertyOf hasAncestor ,您的最后一个示例将起作用。但是我仍然看不到与您最初的问题的关系。我仍然不明白应该如何推断您的预期公理。我的意思是,基于哪个闭包?你能澄清一下吗?
  • 我真正的公理是Property: RHasDatgah isSuperPropertyOf RHasAvazClass: Dastghah isSuperClassOf AvazClass: Avaz isSuperClassOf Radif。所以假设 dastgah、avaz 和 Radif 是 Dastgah、Avaz 和 Radif 的实例。假设avaz AHasDastgah dastgahradif RHasAvaz avaz,我想要推理机显示radif RHasDastgah dastgah

标签: rdf semantic-web owl ontology protege


【解决方案1】:

根据您的公理,在 A 的不同实例之间无法推断出任何关系; a 和 b 没有任何联系,因此推理器不会推断出您期望的公理。 b 被推断为 A 的一个实例这一事实并不意味着涉及 b 的相同公理也可推断为 a。

据我所知,这只有在 a 和 b 被声明为相同时才会发生,或者如果 A 的基数可以推断为 1 - 这意味着 A 的任何实例与所有其他实例相同A 的实例。但我不相信这是您想要实现的目标。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-03
    • 2011-05-25
    • 1970-01-01
    相关资源
    最近更新 更多