Rdf objectProperty中有多个域和范围?

Rdf objectProperty中有多个域和范围?,rdf,semantic-web,owl,ontology,rdfs,Rdf,Semantic Web,Owl,Ontology,Rdfs,我想用Protege创建一个本体,它包含两个类,Animal和FatherAnimal,以及对象属性hasdafter,其中域Animal和范围FatherAnimal 此外,我还创建了另外两个类:Son和Father,它们与相同的对象属性hasdafter链接。这里的问题是不允许我为同一个对象属性创建多个域和范围。我确实希望避免创建新的对象属性。还有其他解决办法吗?问题到底出在哪里还不清楚。可以向对象特性添加多个域和范围,但解释是交叉点。这意味着你如果说,例如 hasFather rdfs:d

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


此外,我还创建了另外两个类:SonFather,它们与相同的对象属性hasdafter链接。这里的问题是不允许我为同一个对象属性创建多个域和范围。我确实希望避免创建新的对象属性。还有其他解决办法吗?

问题到底出在哪里还不清楚。可以向对象特性添加多个域和范围,但解释是交叉点。这意味着你如果说,例如

hasFather rdfs:domain Son
hasFather rdfs:domain Animal
只要你有

X hasFather Y
你可以推断

X rdf:type Son
X rdf:type Animal
这可能不是你想要的

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

  • 不要在hasdaver上声明任何域或范围。没有必要那样做。您只需声明该属性,然后按照自己认为合适的方式使用它
如果您想要更多的类型推断,那么您还可以添加两个子类公理:

儿子子类(只有父亲父亲)
动物子类(只有父亲动物)


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

“这里的问题是不允许我为同一objectProperty创建多个域和范围。”您可以在OWL和Protege中指定ObjectProperties的多个域和范围。是的,我知道,但正如您所说的,解释是交叉点。对不起,我不太清楚。在我的例子中,这些类的并集也不是一个解决方案,因为当我将objectProperty用于不同的类时,我希望推理者给我一个错误。我非常感谢您的回答。非常感谢!这正是我所需要的。我看到sb可以将这样的概念定义为子类,但我不知道其含义。再次感谢你!:)
rdfs:domain
的定义说明了这个答案的解释,可以在这里找到: