OWL-DL:财产限制和/或域名范围?

时间:2014-02-18 03:01:23

标签: rdf semantic-web owl ontology description-logic

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

  1. 定义属性的域和范围(例如,:hasId rdfs:domain :Student; rdfs:range :Identification)并使属性正常运行。

  2. 定义属性并在学生班级中创建限制:“hasId恰好是1个身份证明”。

  3. 就语义而言,这些意味着同样的事情吗?如果是这样,在惯例或最佳做法方面是否有首选方案?最后,这同样适用于数据类型属性吗?我可以简单地定义域/范围和/或我应该在类中创建限制以将其与属性链接吗?

1 个答案:

答案 0 :(得分:11)

OWL2已经量化了限制,这意味着您可以拥有表单

的类表达式
  

∃p.C

表示具有属性 p 的值的个人类,其类型为 C 。同样,您可以使用限制

  

∀p.D

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

  

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

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

  

p有域C

然后 p 与其他内容相关的任何内容都必须是 C 。同样,如果你有公理

  

p的范围为D

然后 p 与之相关的任何内容都必须是 D 。值得注意的是,范围公理实际上可以作为涉及通用限制的子类公理重铸。您可以将 p的范围D 写为

  

⊤⊑∀p.D

表示⊤(或owl:Thing,即所有内容), p 的每个值都必须是 D 。通过使用逆属性,您也可以获得域公理。 p具有域C 等同于

  

⊤⊤⊑p -1 .C

所有这些都是您问题答案的背景:

  

如果我想表示“学生必须只有一个   识别“,我认为我可以:

     
      
  1. 定义属性的域和范围(例如:hasId   rdfs:domain:学生; :hasId rdfs:range:Identification)并制作   财产功能。

  2.   
  3. 定义属性并在学生班级中创建限制:   “只有1个身份证明。”

  4.         

    那么,就语义而言,这是一样的吗?如果它是相同的,是   在惯例或最佳实践方面有一个首选方案吗?

首先,这些不一样。选项1将确保您随时

x hasId y
x hasId z

你将能够推断x是学生,y和z是标识,并且y必须与z相同(因为属性是有效的),但你不是有能力推断每个学生都有身份证明。声明一个属性在OWL中起作用表示每个人最多一个属性的一个值,即没有值或一个值。它实际上相当于最大基数限制。说hasId功能与说

相同
  

⊤⊤≤1hasId.⊤

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

  

学生⊑= 1 hasId.Identification

但是,如果你已经声明hasId的域和范围分别是Student和Identification,那么这里有一些冗余信息,因为你已经知道hasId断言的所有东西都是识别,你可以等同地说

  

学生⊑= 1hasId.⊤

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

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

属性

  • hasId {domain:Person,range:Identification}

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