我们可以在两个谓词之间使用owl:SameAs吗?

时间:2011-08-16 03:07:48

标签: rdf ontology owl

使用<DC:title> <owl:SameAs> <NS:title><DC:title> <owl:equivalentProperty> <NS:title>

之间的区别是什么?

这里NS是一些命名空间。

3 个答案:

答案 0 :(得分:8)

owl:sameAs适用于个人,owl:equivalentProperty适用于RDFS / OWL属性,owl:equivalentClass适用于RDFS / OWL类。

我猜你在说明这些属性之间的等价性,以便推断

:individual1 ns:title "The Title".

来自现有声明

:individual1 dc:title "The Title".

反之亦然。我没有试过这个,但是我假设基于DL的OWL reasoners(即大多数OWL reasoners)只会在使用owl:equivalentProperty时进行适当的推理。另一方面,如果你想推断

:individual2 dc:title "The Title".

来自现有声明

:individual1 dc:title "The Title".

然后你应该使用owl:sameAs陈述来联系这两个人。

答案 1 :(得分:6)

两个不同之处:

首先,一些OWL reasoners会在属性之间反对owl:sameAs,或者只是忽略它。他们在个人和阶级/财产之间保持着很强的区别。

其次(这是更重要的)等价(如owl:equivalentProperty)与身份(owl:sameAs)不同。后者说我们正在处理一个具有不同名称的东西,而前者说有两个具有相同扩展名的东西(即,在相同的东西之间保持)。

如果这里不清楚这是一个例子:

# My book has ns:title "My book"
:book ns:title "My book" .

# My title property is defined in my vocabulary document
ns:title rdfs:isDefinedBy <http://example.com/my-vocab> .

使用owl:sameAs我的书还有dc:title“我的书”,dc:title由我的词汇文档定义。哎呀,DC对此可能不满意。

使用owl:equivalentProperty我的书也有dc:title“我的书”(很棒),但这并不意味着dc:title是由词汇文档(phew)定义的。

答案 2 :(得分:1)

简短的回答是&#34;不,不要这样做&#34;正如cygris's answer中所述。但是,如果您真的想知道使用owl:sameAs VS的含义,那么问题就会更加微妙。 owl:equivalentProperty

首先,对问题中的术语进行一点修改:在RDF中,谓词处于三元组的第二位置。 RDF无法引用三元组中的位置,因此您不能在两个谓词之间使用属性。 OP当然意味着&#34;我们可以在两个属性&#34;之间使用owl:sameAs。可以使用IRI识别属性,IRI可以出现在三元组中的任何地方,主语和对象可以通过谓词相关联,并且任何IRI都可以在三元组的任何位置进行。因此,从语法上讲,允许将两个属性与owl:sameAs相关联。

问题是,这样做是否有意义,以及其含义是什么。问题是RDF图有一些量子风格:RDF图的含义是意义的叠加,当你根据一些形式语义应用某种推理时,你只知道可观察的意义。 RDF 1.1 Semantics定义了多个语义(所谓的蕴涵制度),但它们都没有赋予owl:sameAs特定的含义,因此应用RDF(S)推理不会带来什么有用的。因此,如果这是图表的观察含义,则属性之间的owl:sameAs是无用的。

当应用OWL语义时会出现真正有趣的事情。但即使在OWL中,OWL 2 Directed SemanticsOWL 2 RDF-based Semantics也有双重意义。让我们考虑一个示例RDF图:

<p>  a  owl:ObjectProperty;
     dc:creator  "AZ" .
<q>  a  owl:ObjectProperty;
     dc:date  "2016-06-07"^^xsd:date  .
<r>  a  owl:ObjectProperty, owl:DeprecatedProperty;
     dc:date  "1981-01-14"^^xsd:date .
<s>  a  owl:ObjectProperty;
     dc:date  "2016-06-07"^^xsd:date .
<p>  owl:sameAs  <q> .
<r>  owl:equivalentProperty  <s>
<a>  <p>  <b> .
<c>  <r>  <d> .

让我们从基于RDF的语义开始。一方面,IRI <r><s>表示等效属性,因此我们可以得出结论:

<c>  <s>  <d> .

另一方面,IRI <p><q>命名为,因此我们可以得出结论(除其他外):

<q>  dc:creator  "AZ" .
<p>  dc:date  "2016-06-07"^^xsd:date .
<a>  <q>  <b> .
<p>  owl:equivalentClass  <q> .

不同之处在于<p><q>的所有内容都有效,因为它是相同的!通常,不同的属性名称引用不同的属性,因为它们必须附加到不同的元数据(例如rdfs:isDefinedByrdfs:labelrdfs:comment,DC术语。)

现在让我们将直接语义应用于此。它失败。 Direct Semantics不适用于RDF图,它适用于OWL 2 Structural Specification的函数式语法中的本体。为了根据直接语义解释RDF图,首先要在功能语法中将图映射到OWL 2本体。这要求RDF图满足一些约束,以便成为RDF图形式的 OWL 2本体

一个义务是所有人都必须明确声明为某些OWL类的成员。另一个要求是owl:sameAs只适用于个人。个人与属性严格脱节,但有一个小技巧:个人名称可以与属性名称相同(这称为punning)。必须将所有属性声明为对象属性,数据类型属性或注释属性。必须给出本体的名称,以及明确表示它是本体的声明。因此,RDF图形式的RDF图形版本是有效的OWL 2本体,如下所示:

<>  a  owl:Ontology .  # Give a name to the ontology and declare it as such
dc:creator  a  owl:AnnotationProperty .  # Declare property
dc:date  a  owl:Annotation Property .  # Declare property
<p>  a  owl:ObjectProperty;
     dc:creator  "AZ" .
<q>  a  owl:ObjectProperty;
     dc:date  "2016-06-07"^^xsd:date  .
<r>  a  owl:ObjectProperty, owl:DeprecatedProperty;
     dc:date  "1981-01-14"^^xsd:date .
<s>  a  owl:ObjectProperty;
     dc:date  "2016-06-07"^^xsd:date .
<p>  a  owl:Thing .  # <p> used with owl:sameAs: must be declared as individual
<q>  a  owl:Thing .  # <q> used with owl:sameAs: must be declared as individual
<a>  a  owl:Thing .  # Declare individual
<b>  a  owl:Thing .  # Declare individual
<c>  a  owl:Thing .  # Declare individual
<d>  a  owl:Thing .  # Declare individual
<p>  owl:sameAs  <q> .
<r>  owl:equivalentProperty  <s>
<a>  <p>  <b> .
<c>  <r>  <d> .

在此图中,我们可以应用OWL 2 Direct Semantics,我们可以得出结论:

<c>  <s>  <d> .

可以推断出之前给出的基于RDF的语义的其他三元组都不是。特别是,<p><q>表示同一个人的事实不允许对名为<p><q>的属性进行任何结论。

同样,在这种情况下,使用owl:sameAs通常不是一个好主意。

总之,无论如何解释RDF图,使用owl:sameAs来关联两个属性可能不是一个好主意。