【发布时间】:2011-08-16 03:07:47
【问题描述】:
使用<DC:title> <owl:SameAs> <NS:title>和<DC:title> <owl:equivalentProperty> <NS:title>有什么区别
这里的 NS 是一些命名空间。
【问题讨论】:
使用<DC:title> <owl:SameAs> <NS:title>和<DC:title> <owl:equivalentProperty> <NS:title>有什么区别
这里的 NS 是一些命名空间。
【问题讨论】:
owl:sameAs 用于个人,owl:equivalentProperty 用于 RDFS/OWL 属性,owl:equivalentClass 用于 RDFS/OWL 类。
我猜你是在陈述这些属性之间的等价性,以便你可以推断
:individual1 ns:title "The Title".
来自现有语句
:individual1 dc:title "The Title".
反之亦然。我没有尝试过,但我假设基于 DL 的 OWL 推理器(即大多数 OWL 推理器)只有在使用 owl:equivalentProperty 时才会进行适当的推理。另一方面,如果你想推断
:individual2 dc:title "The Title".
来自现有语句
:individual1 dc:title "The Title".
那么您应该使用owl:sameAs 声明来关联两个人。
【讨论】:
owl:sameAs 是 invidivuals 的等价物。对于“任何类型的资源”,它不是。如果你想让推理起作用,你必须使用owl:equivalentProperty。
两个区别:
首先,一些 OWL 推理者会在属性之间反对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 是由词汇文档定义的(呸)。
【讨论】:
如cygris's answer 中所述,简短的回答是“不,不要这样做”。但是,如果您真的想知道使用owl:sameAs VS 的含义,那么这个问题会更加微妙。 owl:equivalentProperty.
首先,对问题中的术语进行一点修正:在 RDF 中,谓词 是位于三元组的第二个位置的东西。 RDF 无法引用三元组中的位置,因此您不能在两个谓词之间使用属性。 OP 的意思当然是“我们可以在两个 properties 之间使用owl:sameAs”。属性可以用 IRI 来标识,IRI 可以出现在三元组中的任何位置,主语和宾语可以通过谓词的方式关联,并且任何 IRI 都可以出现在三元组的任何位置。因此,从语法上讲,允许将两个属性与owl:sameAs 关联起来。
不过,问题是这样做是否有意义,以及会产生什么影响。问题是RDF图有一些量子式的东西:RDF图的意义是意义的叠加,只有当你根据一些形式语义应用一些推理时,你才知道可观察到的意义。 RDF 1.1 Semantics 定义了多种语义(所谓的蕴含制度),但它们都没有为owl:sameAs 赋予特定含义,因此应用 RDF(S) 推理不会带来任何有用的东西。因此,如果这是观察到的图表含义,那么属性之间的owl:sameAs 是无用的。
当一个人应用 OWL 语义时,真正有趣的事情就出现了。但即使在 OWL 中,OWL 2 Directed Semantics 和 OWL 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:isDefinedBy、rdfs:label、rdfs:comment、DC 术语)。
现在让我们将直接语义应用于此。它失败。直接语义不适用于 RDF 图,它适用于 OWL 2 Structural Specification 的函数式语法中的本体。为了根据直接语义解释 RDF 图,首先必须将图映射到函数语法中的 OWL 2 本体。这要求RDF图满足一些约束,才能成为RDF图形式的OWL 2 Ontology。
一项义务是所有个人都必须明确声明为某些 OWL 类的成员。另一个要求是owl:sameAs 只能适用于个人。个体与属性严格脱节,但有一个小技巧:个体 name 可以与属性 name 相同(这称为punning)。所有属性都必须声明为对象属性、数据类型属性或注释属性。必须为本体命名,并附有明确表示它是本体的声明。因此,作为 RDF 图形式的有效 OWL 2 Ontology 的 RDF 图版本如下:
<> 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 直接语义,我们可以得出结论:
<c> <s> <d> .
之前使用基于 RDF 的语义给出的其他三元组都无法推断。特别是,<p> 和 <q> 表示同一个人这一事实不允许对名为 <p> 和 <q> 的属性做出任何结论。
同样,在这种情况下,使用owl:sameAs 通常不是一个好主意。
总之,无论您如何解释 RDF 图,使用owl:sameAs 关联两个属性可能都不是一个好主意。
【讨论】: