rdf - objectProperty中有多个域和范围?

标签 rdf semantic-web owl ontology rdfs

我想用Protege创建一个包含两个类的本体,即 Animal FatherAnimal ,对象属性 hasFather ,域为 Animal 和范围 FatherAnimal

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

最佳答案

目前还不清楚是什么问题。您可以向对象属性添加多个域和范围,但解释是交叉点。举例来说,这表示您要说的是,

hasFather rdfs:domain Son
hasFather rdfs:domain Animal

每当你有
X hasFather Y

你将能够推断
X rdf:type Son
X rdf:type Animal

这可能不是您想要的。

如我所见,您可以执行以下操作:
  • 不要在 hasFather 上声明任何域或范围。不需要这样做。您可以只声明该属性,然后在您认为合适的情况下使用它。

  • 如果您想获得更多类型推断,则还可以添加两个子类公理:

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

    这些公理说,如果某事物是儿子,并且与 hasFather 属性相关联,则该事物是父亲的实例。类似地,如果某物是动物,并且通过 hasFather 属性与某物相关联,则该事物是 AnimalFather 的实例。

    关于rdf - objectProperty中有多个域和范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30172835/

    相关文章:

    rdf - 在加载到 apache-jena TDB Triplestore 之前清理 YAGO 文件

    sparql - 哪些用例最适合 SPARQL/RDF 三元组存储,但不适合属性图?

    owl - 使用属性链获取OWL本体中的推断知识(Protege)

    java - 使用 Java 和 xPath 在 OWL/XML 文件中提取节点后命名空间前缀未声明错误

    join - Sparql 加入问题

    python - 如何在 Python 中解析和加载本体?

    prolog - 如何使用SWI-Prolog的语义Web库查询RDF/OWL?

    rdf - 一种用于旅游的 RDF 本体

    java - 如何获得耶拿查询的所有主题?

    php - 在 PHP 中使用 OWL 作为 mysql