【问题标题】:SuperProperty Of Chaining链接的超属性
【发布时间】:2016-05-06 12:40:58
【问题描述】:

假设给定以下两个关系:
a(x,y)
b(y,z)
我们可以得出:
c(x,z)
那么这可以通过为 c 属性添加一个 SuperProperty Of (Chain) 在 Protégé 中明确表达,如下所示:
a o b SubPropertyOf c

表达出来,想象一下我们只知道:
a(x,y)
c(x,z)
我们如何明确表达我们因此也知道:
b(y,z)
这将再次使用 (Chain) 的 SuperProperty,但对于 b 属性?

我首先想尝试:
a o inverse(c) SubPropertyOf b

这个门徒不喜欢,说有一个圆圈。现在我只是很困惑。

【问题讨论】:

    标签: owl protege dlquery


    【解决方案1】:

    b(y,z) 的正确表达式是inverse(a) o c SubPropertyOf b,因为您想表示从yz 的属性路径对应于b。如果你只有这个公理,这应该给你必要的推论。但是,您不能将它与第一个公理a o b SubPropertyOf c 一起使用。在这种情况下,您可以在具有直接属性的公理中通过b '定义'c,并在具有逆属性的公理中通过c '定义'b。所以你必须知道c 才能定义c。这种循环在 OWL 2 DL 中是不允许的,这就是 Protege 告诉你循环定义的原因。总而言之,你只能拥有这些公理之一,但不能同时拥有这两个公理。

    【讨论】:

    • 谢谢!这实际上很有意义! :)
    【解决方案2】:

    知道 a 和 c 并不必然包含 b。这可以很容易地用经典的例子来说明,叔叔的定义:

    :hasUncle
      rdf:type owl:ObjectProperty ;
      owl:propertyChainAxiom (
          :hasParent
          :hasBrother
        ) .
    

    那么如果:David :hasParent :Mary:Mary :hasBrother :John,DL 推理器确实会推断出:David :hasUncle :John。但是,如果我们断言:David :hasUncle :John:David :hasParent :Mary,则不足以推断:Mary :hasBrother :John。事实上,约翰可以是玛丽另一位父母的兄弟。

    请注意,定义语句说属性链是:hasUncle 的子属性,而不是等效属性。因此,即使您断言 :hasParent 是函数式的,推理器仍然不会从 ac 推断出 b。但是,OWL2 不允许对象属性的等价组合。

    应谨慎应用属性链。例如,在 S1 º S2 º S3 º ... º Sn ⊑ R 中,R 只能位于表达式左侧的第一个或最后一个位置。否则无法判定。这是对常规 RBox 的限制之一。而属性链,或更正式的“通用角色包含”,只有在应用于常规 RBox 时才能确定。

    【讨论】:

    • 我想你误会了。我是说如果我们知道 a(x,y) 和 c(x,z),我们确实知道 b(y,z)。我知道这不一定取决于这些关系是什么,但我说在这种情况下,如果我们知道 a(x,y) 和 c(x,z),我们因此也知道 b(y,z )。我只是需要帮助来表达应该是这样的。
    猜你喜欢
    • 2014-10-17
    • 1970-01-01
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-10
    • 2010-09-15
    相关资源
    最近更新 更多