1

如果我误用了一些术语,请原谅我,我只是熟悉 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 .

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

有没有办法处理这个问题,或者你只能对那些明确形成为本身已识别的资源的语句发表声明?

4

2 回答 2

2

新提出的称为单例属性的方法正是您所需要的。这种方法在本文“不喜欢 RDF 实体化?使用单例属性对语句进行声明”中进行了正式描述。 http://www.slideshare.net/ntkimvinh7/www2014-singleton-propertyfinal

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

ex:elvis-presley ex:is-alive#1 "true"^^xsd:boolean 。

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

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

于 2014-11-14T20:51:44.827 回答
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编写第二种形式。如果您试图表示一些关于三元组的陈述,则往往会出现第二种形式,例如,“john says x . xa rdf:Statement ...”。

如果你想谴责有人声称猫王活着,你可能会这样做

: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:sourceIndividual,owl:assertionProperty和的物化词汇owl:targetValue

于 2014-06-05T19:34:26.713 回答