objectProperty 中的多个域和范围?
Multiple domain and range in objectProperty?
我想用 Protege 创建一个 ontology,其中包含两个 类、Animal 和 FatherAnimal,和对象 属性 hasFather,具有域 Animal 和范围 FatherAnimal.
此外,我创建了另外两个 类:Son 和 Father,它们与同一对象链接 属性、有父亲。这里的问题是我不允许为同一对象创建多个域和范围 属性。我真的很想避免创建一个新对象 属性。还有其他解决方案吗?
不太清楚问题出在哪里。您可以向对象属性添加多个域和范围,但解释是交集。这意味着你如果说,例如,
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.
的实例
我想用 Protege 创建一个 ontology,其中包含两个 类、Animal 和 FatherAnimal,和对象 属性 hasFather,具有域 Animal 和范围 FatherAnimal.
此外,我创建了另外两个 类:Son 和 Father,它们与同一对象链接 属性、有父亲。这里的问题是我不允许为同一对象创建多个域和范围 属性。我真的很想避免创建一个新对象 属性。还有其他解决方案吗?
不太清楚问题出在哪里。您可以向对象属性添加多个域和范围,但解释是交集。这意味着你如果说,例如,
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.
的实例