当对象是 bNode 时,rdf 具体化如何工作?

How does rdf reification work when the object is a bNode?

RDF 具体化非常简单,只要主语、谓语和宾语是 IRI(或对象是文字)。但是当对象是一个空白节点(bNode)时,rdf:Statement 是什么样子的呢? 一个例子("I saw a man in a dirty raincoat"):

ex:I ex:saw [
    a ex:Man ;
    ex:wore ex:dirtyRaincoat ];

我可以想象两种情况: 1)对象中只有bNode标识符(要求我知道它是什么或者我自己创建一个。

[ a rdf:Statement ;
    rdf:subject ex:I ;
    rdf:predicate ex:saw ;
    rdf:object _:b1 ] .
_:b1 a ex:Man ;
    ex:wore ex:dirtyRaincoat .

2) 把所有的bNode放到rdf:object的object位置:

[ a rdf:Statement ;
    rdf:subject ex:I ;
    rdf:predicate ex:saw ;
    rdf:object [
        a ex:Man ;
        ex:wore ex:dirtyRaincoat .
] ] .

没有区别:您的两个场景实际上是完全相同的模型。您在第二种情况下使用的方括号符号只是一种语法快捷方式,您可以将其用于具有多个属性的空白节点。所以它是 Turtle 中的语法变体,但它们是相同的 RDF 模型。