【问题标题】:Multiple domain and range in objectProperty?objectProperty中的多个域和范围?
【发布时间】:2015-05-11 16:24:08
【问题描述】:

我想用 Protege 创建一个本体,其中包含 AnimalFatherAnimal 两个类,以及对象属性 hasFather,域 动物和范围FatherAnimal

另外,我创建了另外两个类:SonFather,它们与相同的对象属性 hasFather 链接。这里的问题是我不允许为同一个对象属性创建多个域和范围。我真的很想避免创建新的对象属性。有没有其他解决办法?

【问题讨论】:

  • "这里的问题是我不允许为同一个 objectProperty 创建多个域和范围。"您可以在 OWL 和 Protege 中的 ObjectProperties 上指定多个域和范围。
  • 是的,我知道,但正如你所说,解释是交集。对不起,我不够清楚。在我的情况下,这些类的联合也不是解决方案,因为我希望推理器在我将 objectProperty 与不同的类一起使用时给我一个错误。

标签: rdf semantic-web owl ontology rdfs


【解决方案1】:

目前还不清楚问题是什么。您可以向对象属性添加多个域和范围,但解释是交集。这意味着你如果说,例如,

hasFather rdfs:domain Son
hasFather rdfs:domain Animal

只要你有

X hasFather Y

你可以推断

X rdf:type Son
X rdf:type Animal

这可能不是你想要的。

在我看来,你可以这样做:

  • 不要在 hasFather 上声明任何域或范围。没有必要这样做。您可以只声明该属性,然后以您认为合适的方式使用它。

如果您想要更多可用的类型推断,那么您还可以添加两个子类公理:

        儿子SubClassOf(有父亲只有父亲)
Animal SubClassOf(hasFath only AnimalFather)

这些公理说如果某物是儿子,它通过属性hasFather与某物相关, 某物是父亲的一个实例。类似地,如果某物是动物并且通过属性hasFather与某物相关,那么某物是AnimalFather 的实例。

【讨论】:

  • 非常感谢您的回答。非常非常感谢你!这正是我所需要的。我已经看到 sb 可以将这样的概念定义为子类,但我不知道其含义。再次感谢你! :)
  • rdfs:domain 的定义说明了这个答案的解释,可以在这里找到:w3.org/TR/rdf-schema/#ch_domain
猜你喜欢
  • 2014-04-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多