对没有具体化的陈述作出陈述
如果我误用了一些术语,请原谅我,我刚刚开始熟悉 RDF 和具体化.
Forgive me if I'm misusing some terms, I'm just becoming familiar with RDF and reification in particular.
我想了解的是,如果/如何对您无法控制且实际上并未设置为 rdf:Statement
(或任何其他资源,即具体化).
What I'm trying to understand is if/how you can make a statement about a statement that you don't control and which isn't actually set up as an rdf:Statement
(or any other resource, i.e., reified).
例如,如果某个语义网站提出声明:
For instance, if some semantic website makes the claim:
ex:elvis-presley
ex:is-alive "true"^^xsd:boolean .
这里有一个隐含的 rdf:Statement
资源:
There is an implicit rdf:Statement
resource here:
_:x
a rdf:Statement ;
rdf:subject ex:elvis-presley ;
rdf:predicate ex:is-alive ;
rdf:object ex:true "true"^^xsd:boolean .
现在假设我有我自己的语义网站,我想反驳这个声明,或者肯定它,或者对这个声明做任何其他类型的元声明.语句资源没有全局标识符,所以我无法引用它.
Now suppose I have my own semantic website and I would like to refute this statement, or affirm it, or make any other kind of meta-statement about this statement. The statement resource doesn't have a global identifier, so I can't reference it.
有什么办法可以解决这个问题,或者您能否只对明确形成的声明本身作为已识别资源发表声明?
Is there any way to handle this, or can you only make statements about statements that are explicitly formed as identified resources in their own right?
我认为具体化是一个最初看起来比实际中更有用的话题.您可以在图表中有一个三元组:
I think that reification is a topic that initially seems more useful than it actually tends to be in practice. You can have a triple in a graph:
s p o .
你可以在一个图中有四个三元组:
and you can have four triples in a graph:
x a rdf:Statement .
x rdf:subject s .
x rdf:preficate p .
x rdf:object o .
但仅此而已.如果有人碰巧有第二种形式的四个三元组,而 x
恰好是一个 URI,那么你就写了关于 x
的三元组.如果它是一个空白节点,则您无法引用它.在任何一种情况下,x
都被认为是三重 s p o
的具体化.这意味着问题
but that's about it. If someone happens to have four triples of the second form, and x
happens to be a URI, then then you write triples about x
. If it's a blank node, then you don't have a way of referencing it. In either case, x
is said to be a reification of the triple s p o
. That means that the question
你能否只具体化那些明确形成为已识别资源的语句?
Can you only reify statements that are explicitly formed as identified resources in their own right?
意义不大.语句s p o
的具体化是具有相关属性的资源x
.具体化s p o
"除了选择一个x
,然后断言它的相应三元组"之外,并没有真正的意义.
doesn't make a whole lot of sense. The reificiation of a statement s p o
is a resource x
that has the associated properties. "To reify s p o
" doesn't really mean anything except "pick an x
, and assert the corresponding triples about it."
任何试图断言 s p o
的人都不太可能编写第二种形式.如果您试图表示一些关于三元组的陈述,则往往会出现第二种形式,例如,john say x . x a rdf:Statement . ...".
It's very unlikely that anyone trying to assert s p o
would write the second form. The second form tends to arise if you're trying to represent some statements about triples, e.g., "john says x . x a rdf:Statement . …".
如果你想谴责某人声称猫王还活着,你可能会这样做
If you want to decry someone's claim that Elvis lives, you'd probably just do
: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 领域,则可以使用否定属性断言:
Alternatively, if you're in the realm of OWL, you can use a negative property assertion:
NegativeDataPropertyAssertion( ex:lives ex:elvis-presley "true"^^xsd:boolean )
RDF 表示看起来像
The RDF representation would look like
_: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
.
You can see a similarity between the two approaches. OWL includes a sort of reification vocabulary with its owl:sourceIndividual
, owl:assertionProperty
and owl:targetValue
.