【问题标题】:What is the difference between DatatypeProperty, ObjectProperty, & FunctionalProperty, and when should I use them?DatatypeProperty、ObjectProperty 和 FunctionalProperty 之间有什么区别,我应该什么时候使用它们?
【发布时间】:2014-01-31 18:56:33
【问题描述】:

在编写本体时,有几种非常常用的类型,包括:

  • 数据类型属性
  • 对象属性
  • 功能属性
  • InverseFunctionalProperty

前三个看起来会以特定的方式使用,但我发现我对它们的看法受到了我在 FOAF 中的使用方式的挑战。

什么时候应该使用或不使用它们?

【问题讨论】:

  • 你能举一个在 FOAF 中使用它们的例子吗? (我要注意,我最后知道,FOAF 是一个 RDF 词汇表,而不是 OWL 本体,因此它对不同属性类型的使用不一定正确,它可能不是 OWL 的最佳示例。)
  • 当然...gender 有 FP 和 DtP 类型,mbox 有 IFP 和 OP,mbox_sha1sum 有 IFP 和 DtP。我可以使其中一些合理化,但有些我不能。在阅读了您的第一条评论后,也许这就是为什么其中一些对我来说没有意义。
  • 好的,我认为这些情况是有道理的,但我会写在答案中……
  • 其实最后一种情况在OWL 2 DL中的一个问题。 @Ignazio 提议 an edit 不幸的是被拒绝了,但我已经用类似的文字更新了我的答案,并指出 mbox_sha1sum 是一个问题案例。

标签: rdf sparql owl ontology foaf


【解决方案1】:

其中的前两个,DatatypeProperty 和 ObjectProperty,描述了具有该属性的三元组应该具有什么样的。数据类型属性将个人与文字数据(例如,字符串、数字、日期时间等)相关联,而对象属性将个人与其他个人相关联。像 hasAge 这样的东西通常是一个数据类型属性,因为年龄是一个数字,但 hasMother 是一个对象属性,因为母亲是另一个人。

其中的最后两个,FunctionalProperty 和 InverseFunctionalProperty,用于对个人的属性值施加一些限制。某物是一种功能属性意味着给定的个人最多可以有一个值。从逻辑上讲,这意味着如果 p 是一个函数属性,那么

∀ x, y, z.( [p(x,y) ∧ p(x,z)] → y = z )

由于OWL没有做出唯一名称假设,不同的IRI可以指代同一个个体,所以如果hasMother是一个函数属性,我们可以从

:John :hasMother :Margaret .
:John :hasMother :Peggy .

那个

:Margaret owl:sameAs :Peggy

当然,这也可以用来提供一些“负面推断”。如果我们知道 Susan 与 Peggy 不同,那么我们可以推断 Susan 不是 John 的母亲。即,来自

:John :hasMother :Peggy .
:Susan owl:differentFrom :Peggy .

这是错误

:John :hasMother :Susan .

对于数据类型属性,它的工作方式相同,但是关于哪些文字不同的内置信息要多得多。例如,推理者应该知道"1"^^xsd:int"2"^^xsd:int 不同。

反函数性质类似,但方向相反。如果属性 p 是反函数属性,那么对于给定的单个 y,最多应该有一个 x 使得 p(x,y)。

但是,这里有一点警告。 OWL 2 DL 仅支持反函数对象属性,不支持反函数数据类型属性。虽然我们可以将反函数数据类型属性的语义描述为 ∀x,y,z ( [p(x,z) ∧ p(y,z)] → x = y),但我们不能 条件之间存在等价性

p 是反函数性质

还有那个

p-1 是一个函数属性

因为数据类型属性不能有逆。这是因为 RDF(至少在当前版本中;我听说有人谈论要改变它,虽然我不知道改变是否会波及 OWL)不允许将文字值作为 三元组的主题。如果数据类型属性有反转,我们会遇到这种情况:

:hasName owl:inverseOf :nameOf .
:john :hasName "John"@en .

我们会推断

"John"@en :nameOf :john . # Not legal.

这意味着反函数属性必须是对象属性。

(在 OWL Full 中,推理器可以使用逻辑断言并在那里根据逻辑表示进行适当的推理。或者,一些推理器,例如, 的基于规则的推理器)删除“不允许将文字作为主题”限制其内部表示,然后在输出时过滤结果以确保非法 RDF 不会逃逸。)

现在,让我们看看你提到的案例:

性别(功能和数据类型)

这是功能性的,因为我们希望每个人最多有一个性别属性值。这是一个数据类型属性,因为 FOAF 的设计者希望这些值类似于 "male""female"。如果他们定义了一些符号常量,例如<http://.../MALE><http://.../FEMALE>,那么这可能是一个对象属性。

mbox(反函数和对象)

mbox 是一个对象属性,大概是因为它的值是 <mailto:someone@example.com> 形式的 IRI。这是一个反函数属性,因为对于给定的邮箱,我们希望最多有一个人拥有该邮箱。 (当然,有些人可能会共享一个邮箱,所以这并不总是完全正确的,但是哦。)不过,它不是一个函数属性,因为一个人可以很容易地拥有多个邮箱.

mbox_sha1sum(反函数和数据类型)

我记得,此属性将个人与其邮箱的 sha1sum 相关联。使用此属性意味着人们不必分享他们的真实电子邮件地址。出于与 mbox 相同的原因,它是一个反函数属性;我们希望每个 mbox_sha1sum 最多属于一个人。同样,它不是函数属性,因为一个人可以拥有多个邮箱,因此也可以拥有多个 sha1sum。

这是有问题的情况,因为这是一个数据类型属性和一个逆函数属性,不应该发生这种情况(如上所述)。但是,OWL Full 推理器仍然可能让您推断如果 x 和 y 都具有相同的 mbox1_shasum,则 x = y。

参考文献

您可以阅读OWL 2 Web Ontology Language Direct Semantics (Second Edition) 中的正式定义。你会对2.3.2 Object Property Expression Axioms2.3.3 Data Property Expression Axioms 感兴趣。

【讨论】:

  • 反函数和数据类型属性在实践中并不是真正的问题。对于想要在存在此类属性的情况下定义正确且完整的算法的人来说,这只是一个问题。具体的 OWL 推理器可以是正确的,并且可以在 OWL DL 本体上竞争,并且仍然能够对不是 OWL DL 的本体进行更多推断。例如,Pellet 和 HermiT 都能够根据反函数数据类型属性推断个体的平等。
  • @AntoineZimmermann 一些推理者可以处理这些结构是件好事。不过,了解 W3C 规范实际允许的内容很重要,因为做某事很容易,因为“它有效”,然后意外中断,因为事实证明它实际上不在规范的限制范围内.这让我感到困扰的一个地方是对简单和非简单属性的各种限制。 Protégé 不会阻止您以 OWL 2 DL 禁止的方式使用属性,然后当您尝试使用它们时推理器会爆炸。 :(
  • 我已经退出这个网站很久了,但是我找到了我的密码来感谢这个答案,这个答案很清楚,并教会了我一些我错过的关于 OWL 的细节。很好奇,是否仍然“谈论”允许在主题位置使用文字,或者这将留给实现以根据需要在内部支持?
  • @harpo 我认为一些三重/四重存储实际上可能支持更一般的图形概念,其中文字可能出现在主题位置,但我不知道是否有任何改变任何东西的动议关于它的 RDF 规范。
  • 似乎在 OWL2 中“DatatypeProperties”被重命名为“DataProperties”。当我在页面上搜索 DatatypeProperty 时没有得到任何结果:w3.org/TR/owl2-syntax
猜你喜欢
  • 2021-08-10
  • 2010-09-05
  • 2022-12-20
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
  • 2013-04-17
  • 2016-11-21
  • 2010-10-05
相关资源
最近更新 更多