objectProperty中的多个域和范围?

Kat*_*aki 5 rdf semantic-web owl ontology rdfs

我想用Protege创建一个本体,它包含两个类,AnimalFatherAnimal,以及对象属性hasFather,域名为Animal,范围为FatherAnimal.

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

Jos*_*lor 8

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

hasFather rdfs:domain Son
hasFather rdfs:domain Animal
Run Code Online (Sandbox Code Playgroud)

无论何时你有

X hasFather Y
Run Code Online (Sandbox Code Playgroud)

你能够推断出来

X rdf:type Son
X rdf:type Animal
Run Code Online (Sandbox Code Playgroud)

这可能不是你想要的.

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

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

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

        Son SubClassOf(hasFather only Father)
        Animal SubClassOf(hasFather only AnimalFather)

这些公理说,如果事情是一个儿子和它与由财产东西hasFather,那么,什么是实例父亲.Similiary,如果某个东西是动物并且与属性hasFather有关,那么某些东西就是AnimalFather的一个实例.