DatatypeProperty,ObjectProperty和& FunctionalProperty,何时应该使用它们?

时间:2014-01-31 18:56:34

标签: rdf sparql owl ontology foaf

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

  • DatatypeProperty属性
  • OBJECTPROPERTY
  • 函数型
  • InverseFunctionalProperty

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

何时应该使用或不使用它们?

1 个答案:

答案 0 :(得分:34)

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

其中最后两个,FunctionalProperty和InverseFunctionalProperty,用于对个人的属性值进行一些约束。某个东西是一个功能属性意味着一个给定的个人最多可以拥有一个值。从逻辑上讲,这意味着如果 p 是一个功能属性,那么

  

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

由于OWL 做出唯一名称假设,因此不同的IRI可以引用同一个人,因此如果 hasMother 是一个功能属性,我们可以从< / p>

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

:Margaret owl:sameAs :Peggy

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

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

false

: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中,推理者可以使用逻辑断言,并根据逻辑表示在那里进行适当的推断。或者,一些推理者,例如的规则 - 基于reasoners)删除&#34;没有允许作为主题的文字&#34;从内部表示中限制,然后在出路时过滤结果,以确保非法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感兴趣。