为什么使用owl:Restriction as own:EquivalenceClass的属性?

时间:2015-11-30 09:41:06

标签: sparql semantic-web ontology linked-data

我刚开始学习语义网,并对限制类有疑问。我挖了一段时间,但还没有找到任何答案..任何帮助将不胜感激! 从教科书中,我看到了定义限制类的示例,它们都是要定义匿名owl:Restrictionbnode并将此bnode与属性owl:equivalentClass相关联。

示例:

example:restrictionClass owl:equivalentClass [
    rdf:type owl:Restriction;
    owl:onProperty example:resProp;
    owl:someValuesFrom example:resValue.
]

我的问题是我们可以直接定义限制类吗?像:

 example:restrictionClass rdf:type owl:Restriction;
                         owl:onProperty example:resProp;
                         owl:someValuesFrom example:resValue.

定义匿名owl:Restriction有什么好处?

1 个答案:

答案 0 :(得分:7)

不,你不能。你看到的RDF是OWL公理的编码,如: EquivalentClasses(C ObjectSomeValuesFrom(p D))。它被编码为:

:C owl:equivalentClass [
   rdf:type owl:Restriction;
   owl:onProperty :p;
   owl:someValuesFrom :D .
]

现在,假设您还有公理 EquivalentClasses(C ObjectSomeValuesFrom(r E))。这被编码为:

:C owl:equivalentClass [
   rdf:type owl:Restriction;
   owl:onProperty :r;
   owl:someValuesFrom :E .
]

现在,如果你可以应用你想要的缩写,你会得到:

:C rdf:type owl:Restriction ;
   owl:onProperty :p ;
   owl:onProperty :r ;
   owl:someValuesFrom :D ;
   owl:someValuesFrom :E .

现在有歧义。以下哪一项C等于?

  • ObjectSomeValuesFrom(p D)
  • ObjectSomeValuesFrom(p E)
  • ObjectSomeValuesFrom(r D)
  • ObjectSomeValuesFrom(r E)

仅从RDF,你没有办法说出来。您实际上需要编码 EquivalentClasses 公理。

附录

要解决评论中的问题:我使用C,p和D来缩短文本。您的原始RDF片段是公理的RDF编码

  

EquivalentClasses(
  例如:restrictionClass
  ObjectSomeValuesFrom(例如:resProp示例:resValue)
  )

那是什么

example:restrictionClass owl:equivalentClass [
    rdf:type owl:Restriction;
    owl:onProperty example:resProp;
    owl:someValuesFrom example:resValue.
]

编码。 示例:restrictionClass 在两个地方都是相同的IRI。整个空白节点是类表达式 ObjectSomeValuesFrom(例如:resProp示例:resValue)。然后 owl:equivalentClass 只关联两者。请注意,表达式不一样;他们表示的类是相同的。 OWL本体到RDF的映射在OWL 2 Web Ontology Language: Mapping to RDF Graphs (Second Edition)中给出。具体来说,请查看2.1 Translation of Axioms without Annotations中的表1,您可以在其中找到规则:

EquivalentClasses( CE1 ... CEn )
------------------------------------
T(CE1) owl:equivalentClass T(CE2) .
...
T(CEn-1) owl:equivalentClass T(CEn) . 

ObjectSomeValuesFrom( OPE CE )
------------------------------
_:x rdf:type owl:Restriction .
_:x owl:onProperty T(OPE) .
_:x owl:someValuesFrom T(CE) . 

当你向相反方向前进时,你可以阅读RDF并重建你的公理。但支持映射让你做你正在谈论的缩写,并且你有两个等价的类公理。你最终会得到模棱两可的RDF,因为你有两个 owl:onProperty三元组和两个owl:someValuesFrom三元组。

也许算术的例子会有所帮助。我们知道 4 2 + 2 1 + 3 都是表示相同数字的表达式。所以我们可以得到公理:

  • 4 = 2 + 2
  • 4 = 1 + 3

现在假设我们在RDF中用以下代码编码:

:four :equals [ rdf:type :sum ; :left :two ; :right :two ] .
:four :equals [ rdf:type :sum ; :left :one ; :right :three ] .

这很好,我们可以从中重建 4 = 2 + 2 4 = 1 + 3 。现在假设我们尝试将这些属性移动到:四个,而不是通过:equals 关联的空白节点。我们最终得到:

:four rdf:type :sum .
:four :left  :two .
:four :right :two .
:four :left  :one .
:four :right :three .

但这应该代表什么公理呢?您有四种方法从:四中选择左右两种方法。它应该编码以下哪一项?

  • 4 = 2 + 2
  • 4 = 2 + 3
  • 4 = 1 + 2
  • 4 = 1 + 3