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

Gab*_*aby 3 rdf semantic-web owl ontology description-logic

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

  1. 定义属性的域和范围(例如,:hasId rdfs:domain :Student; rdfs:range :Identification)并使属性起作用.

  2. 定义属性并在学生班级中创建限制:"hasId恰好1个标识".

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

Jos*_*lor 11

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

∃pC

表示具有类型C的属性p的值的个体类.同样,您可以使用限制

∀pD

这是分类的个人所有的,其值的属性p(可能没有任何,虽然)是类型d.还有数字限制,因此您可以指定最小数量的值,最大值数或精确数值.

Ñ PC
Ñ PC
= Ñ PC

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

p有域C

然后由相关的任何p到别的东西必须是Ç.同样,如果你有公理

p的范围为D.

那么什么是某物由相关p必须是d.值得注意的是,范围公理实际上可以作为涉及通用限制的子类公理重铸.你可以写p有范围D as

⊤⊤⊑pD

它说,⊤(或owl:Thing,即所有内容)是这样的,它的值中的每一个p必须是d.通过使用逆属性,您也可以获得域公理. p有域C相当于

⊤⊤⊑p -1 .C

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

如果我想表示"学生必须只有一个身份证明",我认为我可以:

  1. 定义属性的域和范围(例如,:hasId rdfs:domain:Student;:hasId rdfs:range:Identification)并使该属性起作用.

  2. 定义属性并在学生班级中创建限制:"hasId恰好1个标识".

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

首先,这些不一样.选项1将确保您有任何时间

x hasId y
x hasId z
Run Code Online (Sandbox Code Playgroud)

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

⊤⊤≤1hasId.⊤

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

学生⊑= 1 hasId.Identification

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

学生⊑= 1hasId.⊤

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

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

属性

  • hasId {domain:Person,range:Identification}

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