objectProperty 中的多个域和范围?

Multiple domain and range in objectProperty?

我想用 Protege 创建一个 ontology,其中包含两个 类、AnimalFatherAnimal,和对象 属性 hasFather,具有域 Animal 和范围 FatherAnimal.

此外,我创建了另外两个 类:SonFather,它们与同一对象链接 属性、有父亲。这里的问题是我不允许为同一对象创建多个域和范围 属性。我真的很想避免创建一个新对象 属性。还有其他解决方案吗?

不太清楚问题出在哪里。您可以向对象属性添加多个域和范围,但解释是交集。这意味着你如果说,例如,

hasFather rdfs:domain Son
hasFather rdfs:domain Animal

只要你有

X hasFather Y

你将能够推断出

X rdf:type Son
X rdf:type Animal

这可能不是您想要的。

据我所知,您可以这样做:

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

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

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

这些公理说 if 某物是 Son 并且它通过 属性 [=34= 与某物相关]hasFather, then 某物是 Father 的实例。同样,if 某物是 Animal 并且通过 属性 hasFather 与某物相关, then something 是 AnimalFather.

的实例