为什么FunctionalObjectProperty采用对象属性表达式,而不仅仅是命名属性?

时间:2018-04-30 06:19:46

标签: owl ontology

功能对象属性公理 - 在函数语法中 - 具有

形式
FunctionalObjectProperty(P)

P是一个对象属性表达式,它是以下之一:

  • 命名对象属性(PN)。 示例:FunctionalObjectProperty(:hasBase)
  • 猫头鹰:topObjectProperty
  • owl:bottomObjectProperty
  • 反向属性。 示例:FunctionalObjectProperty(ObjectInverseOf(:isBaseOf))

第一个是预期的。其他三种变体的用途是什么?这些似乎只会增加解析器,reasoners和API的复杂性。 (是的,勉强。) 最后看起来多余,因为OWL有一个“InverseFunctionalObjectProperty”。谁声明top-或bottomObjectProperty功能正常?

我搜索了像geneontology.org这样的本体论。到目前为止,他们只使用命名属性(PN)作为参数。 无论如何,OWL允许P在这里,我可能会错过森林的树木。有什么好处?

备注:同样可以要求其他一元属性公理如SymmetricObjectProperty。

请参阅:https://www.w3.org/2007/OWL/refcard

1 个答案:

答案 0 :(得分:3)

此定义在OWL中用于定义语言语法认为正确的内容。但是,可能会有一些广泛使用的语言结构和其他在语法上正确但使用有限的语言结构。

FunctionalObjectProperty公理的定义允许人们声明对象属性表达式是有效的 - 也就是说,每个人最多只能有一个指定对象属性表达式的传出连接。 1

FunctionalObjectProperty的语法定义是:

Functional Object Properties:

  

FunctionalObjectProperty:=' FunctionalObjectProperty' '('   axiomAnnotations ObjectPropertyExpression')'

此定义引用ObjectPropertyExpression,其定义如下。

Object Property Expression definition

  

ObjectProperty:= IRI

     

ObjectPropertyExpression:= ObjectProperty | InverseObjectProperty

     

InverseObjectProperty:=' ObjectInverseOf' '(' ObjectProperty')'

这基本上意味着有两种方法来定义对象属性。 第一种方法是直接将IRI定义为对象属性。 第二种方法是间接地将对象属性定义为已定义的对象属性的反转。

这些例子可以证明不同之处:

  

示例A:FunctionalObjectProperty(:isGoodFor)

     

示例B:FunctionalObjectProperty(ObjectInverseOf(:isBaseOf))

示例A使用现有的Object属性:isGoodFor,而示例B使用已定义的Object Property的反转:isBaseOf而不为其定义IRI。

ObjectPropertyExpression的语法定义包括任何Object Property IRI,因为它不排除它。因此,TopObjectProperty和BottomObjectProperty是语法上有效的选择。 所以以下语法有效:

  

FunctionalObjectProperty(猫头鹰:topObjectProperty)   FunctionalObjectProperty(猫头鹰:bottomObjectProperty)

但是owl:topObjectProperty和owl:bottomObjectProperty在OWL2中具有预定义的语义。因此,尽管上述语句在语法上是正确的,但使用它们并不是一个好习惯。

Definitions of TopObjectProperty and BottomObjectProperty

Owl使用IRI owl定义了2个内置对象属性:topObjectProperty和owl:bottomObjectProperty。并有预定义的语义。 具有IRI owl的对象属性:topObjectProperty连接所有可能的个体对。 具有IRI owl:bottomObjectProperty的object属性不会连接任何一对个体。