2

只要主语、谓语和宾语是 IRI(或宾语是文字),RDF 的具体化就非常简单。但是当对象是一个空白节点(bNode)时,rdf:Statement 是什么样的呢?一个例子(“我看到一个穿着脏雨衣的男人”):

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放到object的位置rdf:object

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

1 回答 1

3

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

于 2018-03-14T22:47:39.897 回答