关于没有具体化的陈述的陈述

时间:2014-06-05 15:47:21

标签: rdf reification

请原谅我,如果我滥用某些条款,我只是熟悉RDF和具体化。

我想要了解的是,您是否/如何能够声明一个您无法控制的声明,哪个声明实际上并未设置为rdf:Statement(或任何其他资源,即,具体化)。

例如,如果某个语义网站提出索赔:

ex:elvis-presley
    ex:is-alive "true"^^xsd:boolean .

这里有一个隐含的rdf:Statement资源:

_:x
    a rdf:Statement ;
    rdf:subject ex:elvis-presley ;
    rdf:predicate ex:is-alive ;
    rdf:object ex:true "true"^^xsd:boolean .

现在假设我有自己的语义网站,我想反驳这个陈述,或者肯定它,或者对这个陈述做出任何其他类型的元陈述。语句资源没有全局标识符,因此我无法引用它。

有没有办法解决这个问题,或者你只能对那些明确形成为已识别资源的陈述进行陈述?

2 个答案:

答案 0 :(得分:2)

我认为,具体化是一个最初看起来比实际上更有用的话题。您可以在图表中使用三元组:

s p o .

你可以在图表中有四个三元组:

x a rdf:Statement .
x rdf:subject s .
x rdf:preficate p .
x rdf:object o .

但就是这样。如果有人恰好有第二种形式的四个三元组,并且x恰好是一个URI,那么你就会写出关于x的三元组。如果它是一个空白节点,那么你没有办法引用它。在任何一种情况下,x都被认为是三重s p o的具体化。这意味着问题

  

您是否只能将明确形成为明确资源的陈述本身重新统一?

没有多大意义。声明s p o的重复是具有关联属性的资源x。 “重新统一s p o”并不意味着什么,除了“选择一个x,并断言相应的三元组。”

任何试图断言s p o的人都不太可能写第二种形式。如果你试图表达一些关于三元组的陈述,那么第二种形式往往会出现,例如,“约翰说x。x a rdf:陈述......”。

如果你想谴责某人对Elvis生活的说法,你可能就是

:elvisLives a rdf:Statement ;
            rdf:subject ex:elvis-presley ;
            rdf:predicate ex:is-alive ;
            rdf:object true ;
            :claimedBy <http://example.org/whoeverSaidIt> ;
            :hasValue false .

或者,如果您处于OWL领域,则可以使用否定属性断言:

NegativeDataPropertyAssertion( ex:lives ex:elvis-presley "true"^^xsd:boolean )

RDF表示看起来像

_:x rdf:type owl:NegativePropertyAssertion .
_:x owl:sourceIndividual ex:elvis-presley .
_:x owl:assertionProperty ex:lives .
_:x owl:targetValue true .

您可以看到两种方法之间的相似性。 OWL包含一种带有owl:sourceIndividualowl:assertionPropertyowl:targetValue的物化词汇。

答案 1 :(得分:2)

新提议的方法称为单身属性正是您所需要的。 本文正式描述了这种方法&#34;不喜欢RDF Reification?使用Singleton属性发表关于语句的陈述&#34;。 http://www.slideshare.net/ntkimvinh7/www2014-singleton-propertyfinal

在您的示例中,可以使用单例属性方法表示三元组,而不是使用具体化,例如

ex:elvis-presley ex:is-alive#1&#34; true&#34; ^^ xsd:boolean。

ex:is-alive#1 rdf:singletonPropertyOf ex:is-alive。

如果你想对这个事实提出质疑,可以使用单例属性ex:is-alive#1,因为如果你使用的是UUID而不是#1,它可以是全局唯一的。