rdf - 猫头鹰-DL : property restrictions and/or domain-range?

标签 rdf semantic-web owl ontology description-logic

我对使用域、范围和限制来定义本体的正确方法有疑问。如果我想代表“学生必须只有一个身份证明”,我认为我可以做以下其中一项:

  • 定义属性的域和范围(例如, :hasId rdfs:domain :Student; rdfs:range :Identification )并使属性起作用。
  • 定义属性并在学生类中创建一个限制:“hasId 正好是 1 标识”。

  • 在语义方面,这些是同一个意思吗?如果是这样,在惯例或最佳实践方面是否有首选方案?最后,同样适用于数据类型属性吗?我可以简单地定义域/范围和/或我应该在类中创建限制以将其与属性链接吗?

    最佳答案

    OWL2 有量化的限制,这意味着你可以有以下形式的类表达式

    ∃p.C



    这表示具有 C 类型属性 p 值的个人类别。类似地,您可以使用限制

    ∀p.D



    这是一类个体,其属性 p 的所有值(尽管可能没有任何值)都是 D 类型。还有数字限制,因此您可以指定值的最小数量、值的最大数量,或确切数量的值。

    n p.C
    n p.C
    =n p.C



    您还可以使用公理来声明属性的域和范围。例如,如果你有公理

    p has domain C



    那么任何由 p 与其他事物相关的东西都必须是 C。同样,如果你有公理

    p has range D



    那么与 p 相关的任何事物都必须是 D。有趣的是,范围公理实际上可以重新转换为涉及普遍限制的子类公理。您可以将 p 的范围写为 D

    ⊤ ⊑ ∀p.D



    这表明 ⊤ (或 owl:Thing ,即一切)使得 p 的每个值都必须是 D。通过使用逆属性,您也可以获得域公理。 p 有域 C 等价于

    ⊤ ⊑ ∀p-1.C



    所有这些都是回答您的问题的一些背景知识:

    If I want to represent that “A student must have only one identification”, I think that I could:

    1. Define the domain and range for the property (for example, :hasId rdfs:domain :Student; :hasId rdfs:range :Identification) and make the property functional.

    2. Define the property and create a restriction in the student class: “hasId exactly 1 Identification”.

    So, in terms of semantics is this the same? If it is the same, is there a preferred option in terms of conventions or best practices?



    首先,这些不一样。选项 1 将确保您在任何时候
    x hasId y
    x hasId z
    

    您将能够推断出 x 是学生,y 和 z 是标识,并且 y 必须与 z 相同(因为该属性是函数式的),但您无法推断出每个学生有身份证。在 OWL 中声明一个属性是功能性的,表示每个人最多有一个属性值,即没有值或一个值。它实际上相当于最大基数限制。说 hasId 是功能性的就等于说

    ⊤ ⊑ ≤1 hasId.⊤



    您的第二个选择是更好的选择。如果你想说学生只有一个身份,那么你可以明确和断言

    Student ⊑ =1 hasId.Identification



    但是,这里有一些冗余信息,如果您已经声明 hasId 的域和范围分别是 Student 和 Identification,因为您已经知道作为 hasId 断言对象的每件事都是一个 Identification,您可以等效地说

    Student ⊑ =1 hasId.⊤



    我认为这里最好的选择是对您的域和范围更加宽容,并且对您的子类公理更加明确。毕竟,非学生通常可以拥有身份证件(例如驾照),而学生实际上可以拥有多个身份证件(例如,学生证和驾照)。鉴于此,你可能会做这样的事情,然后:

    类(class)

  • 学生 {⊑ =1 hasId.StudentIdentification}
  • 鉴别
  • 学生证

  • 特性
  • hasId {域:人,范围:标识}

  • (即使这样也有一些问题,因为一个学生可能是多所学校的学生,但这是一个单独的问题。)

    关于rdf - 猫头鹰-DL : property restrictions and/or domain-range?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21843521/

    相关文章:

    rdf - 按标题在 DBpedia 上进行强大的搜索

    sparql - 如何使用 dbpedia SPARQL 从 Wikipedia 表中获取数据

    rdf - 无法使用 SPARQL 从 LinkedMDB 检索具有高 ID 的电影

    semantic-web - owl protege 我如何描述一个只有一些属性的类?

    python - 使用猫头鹰 :Class prefix with rdflib and xml serialization

    jena - OWL Ontology Predicate Logic with Jena

    rdf - 如何连接sparql中的值列表?

    rdf - 使用 SameAS 将 DBpedia 中的本体链接到外部本体

    java - 如何获取代表具有特定 [property,object] 对的对象的 RDF 资源?

    html - 微数据 - 如何标记放置在子项目内的项目属性(因此超出其范围)