【问题标题】:Equal relationship between ontology properties本体属性之间的等式关系
【发布时间】:2013-11-24 23:42:47
【问题描述】:

我有 2 个属性,例如“hasColor”和“hasFinish”。我想用本体表示,在本体类 A 的情况下,属性“hasColor”和“hasFinish”相等(owl:equivalentProperty)。但在本体 B 类的情况下,属性“hasColor”和“hasFinish”不相等。

我怎样才能做到这一点?

一种方法可能是创建 'hasColor' 和 'hasFinish' 属性,将 A 类作为一个范围并将它们设置为相等。然后创建另一个 'hasColor' 和 'hasFinish' 属性,其中 B 类作为一个范围并且没有相等的关系。但这是正确的方法吗?

【问题讨论】:

  • 当你说它们对于 B 类不相等时,你的意思是它们必须不具有相同的值(例如,你不能有 b1 hasFinish x; hasColor x ) 或者只是它们不一定具有相同的值(例如,b2 hasFinish x; hasColor y(带有x != y)是允许的)?两个关系可以是不同的,但仍然有重叠。最重要的是,您可能不要求两个关系相同,但实际上它们可能最终具有相同的扩展名。

标签: rdf owl ontology rdfs description-logic


【解决方案1】:

目前还不完全清楚你的意思是让两个属性un-相等。默认情况下,两个属性可以是不同的,因此您实际上不需要做任何特殊的事情来让它们不相等。不过,如果问题得到澄清,或许可以添加更多相关信息。

这样说并不完全是微不足道的,例如,

∀a,x 。 A(a) → (hasFinish(a,x) ⇔ hasColor(a,x))

在 OWL 中,但你可以做到。如果您想对所有课程都这么说,正如您所指出的,您可以使用owl:equivalentProperty。现在,当你说 p 是 r 的等价属性时,你也可以这样说

p ⊑ r
r ⊑ p

也就是说,p 和r 都是另一个的子属性。在 OWL 2 中(但不幸的是,不是 OWL 2 DL,正如 Antoine Zimmermann 在 cmets 中指出的那样),您可以断言给定属性是 chain 的超属性属性,例如,

hasFather •有兄弟⊑有叔叔

这就是说,如果一个人的父亲有一个兄弟,那么那个父亲的兄弟就是那个人的叔叔。

还有一个叫做 rolification 的概念,在OWL 2 rolification 中有更多描述,它是创建一个对应于一个类的属性的过程,该类将该类的每个个体与其自身相关联。对于你的 A 类,会有一个关系 RA 将每个 A 与自身相关联,并且只关联那些事例。如果你再看看像

这样的属性链

RA •已完成

您会注意到它实际上是 hasFinish 的子属性,其中第一个参数是 A。这意味着你可以说 hasFinish 和 hasColor 对于类 A 来说是相同的,通过进行两个子属性断言:

RA • hasColor ⊑已完成
RA • hasFinish ⊑有颜色

这些假设 A 类个人是这些陈述的主题。如果 A 实际上是这里的范围,那么您只需使用

∀a,x 。 A(a) → (hasFinish(x,a) ⇔ hasColor(x,a))
hasColor • RA ⊑已完成
hasFinish • RA ⊑有颜色

要获取属性RA,需要添加定义

A ≡ ∃RA.Self

到你的本体。在 Protégé 中,这看起来像:

生成的本体看起来像(在 RDF/XML 中):

<rdf:RDF
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:owl="http://www.w3.org/2002/07/owl#"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
    xmlns="http://example.org/ep#"
    xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#">
  <owl:Ontology rdf:about="http://example.org/ep"/>
  <owl:Class rdf:about="http://example.org/ep#A">
    <owl:equivalentClass>
      <owl:Restriction>
        <owl:onProperty>
          <owl:ObjectProperty rdf:about="http://example.org/ep#R_A"/>
        </owl:onProperty>
        <owl:hasSelf rdf:datatype="http://www.w3.org/2001/XMLSchema#boolean"
        >true</owl:hasSelf>
      </owl:Restriction>
    </owl:equivalentClass>
  </owl:Class>
  <owl:ObjectProperty rdf:about="http://example.org/ep#hasFinish">
    <owl:propertyChainAxiom rdf:parseType="Collection">
      <owl:ObjectProperty rdf:about="http://example.org/ep#R_A"/>
      <owl:ObjectProperty rdf:about="http://example.org/ep#hasColor"/>
    </owl:propertyChainAxiom>
  </owl:ObjectProperty>
  <owl:ObjectProperty rdf:about="http://example.org/ep#hasColor">
    <owl:propertyChainAxiom rdf:parseType="Collection">
      <owl:ObjectProperty rdf:about="http://example.org/ep#R_A"/>
      <owl:ObjectProperty rdf:about="http://example.org/ep#hasFinish"/>
    </owl:propertyChainAxiom>
  </owl:ObjectProperty>
</rdf:RDF>

在海龟中:

@prefix :      <http://example.org/ep#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix owl:   <http://www.w3.org/2002/07/owl#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .
@prefix rdf:   <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .

:hasFinish  a                   owl:ObjectProperty ;
        owl:propertyChainAxiom  ( :R_A :hasColor ) .

:A      a                    owl:Class ;
        owl:equivalentClass  [ a               owl:Restriction ;
                               owl:hasSelf     true ;
                               owl:onProperty  :R_A
                             ] .

:hasColor  a                    owl:ObjectProperty ;
        owl:propertyChainAxiom  ( :R_A :hasFinish ) .

<http://example.org/ep>
        a       owl:Ontology .

:R_A    a       owl:ObjectProperty .

【讨论】:

  • 嗨 Joshua,感谢您的回答,我将研究它以了解更多关于本体的信息。但是我意识到我的问题并不清楚。使用属性相等(owl:sameAs 构造)而不是等价(owl:equivalentProperty 构造)。所以我想说,如果 Instance 属于 A 类,那么属性 hasColor 和 hasFinish 是相等的(owl:sameAs) - 我将它们视为具有相同含义的属性,但是如果这些属性与 B 类的个人一起使用,那么我想要将它们视为具有不同含义的不同属性。我认为这可能与 owl 语法无关?
  • 约书亚,很好的答案。但是请注意,您使用的结构不在 OWL 2 DL 中。因此,一些推理者可能无法用它做出推断(例如,Pellet、HermiT)。其他推理者可能能够处理这种结构,但只能是不完整的。
  • user3024710,从您的评论来看,我的印象是您误解了 owl:sameAs 的概念。在所有可能的情况下,如果 x 和 y 只是一个事物的可互换名称,则事物 x 是 owl:sameAs 事物 y。没有上下文相关的sameAs。
  • @AntoineZimmermann 嗯,我一直试图留在 OWL 2 DL;你能详细说明OWL 2 DL中没有哪个部分吗?是不是与属性链中属性的复杂性有关?
  • hasUncle ⊑ hasFather • hasBrother 不倒退吗?我读过的所有其他内容都显示为hasFather • hasBrother ⊑ hasUncle。我错过了什么吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-10-21
  • 2015-05-08
  • 1970-01-01
  • 2015-12-04
  • 1970-01-01
  • 2023-03-09
  • 2019-05-31
相关资源
最近更新 更多