请原谅我,如果我滥用某些条款,我只是熟悉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 .
现在假设我有自己的语义网站,我想反驳这个陈述,或者肯定它,或者对这个陈述做出任何其他类型的元陈述。语句资源没有全局标识符,因此我无法引用它。
有没有办法解决这个问题,或者你只能对那些明确形成为已识别资源的陈述进行陈述?
答案 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:sourceIndividual
,owl:assertionProperty
和owl: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,它可以是全局唯一的。