当对象是bNode时,rdf具体化是如何工作的?
只要主语、谓语和宾语是IRIs(或宾语是文字),RDF的具体化就相当简单。但是,当对象是空白节点(bNode)时,rdf:语句是什么样子的? 例如(“我看到一个穿着脏雨衣的男人”): 我可以想象两种情况: 1) 在对象中只有bNode标识符(要求我知道它是什么或者我自己创建一个)当对象是bNode时,rdf具体化是如何工作的?,rdf,turtle-rdf,blank-nodes,Rdf,Turtle Rdf,Blank Nodes,只要主语、谓语和宾语是IRIs(或宾语是文字),RDF的具体化就相当简单。但是,当对象是空白节点(bNode)时,rdf:语句是什么样子的? 例如(“我看到一个穿着脏雨衣的男人”): 我可以想象两种情况: 1) 在对象中只有bNode标识符(要求我知道它是什么或者我自己创建一个) [ a rdf:Statement ; rdf:subject ex:I ; rdf:predicate ex:saw ; rdf:object _:b1 ] . _:b1 a ex:Man ;
[ 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
的对象位置:
[ a rdf:Statement ;
rdf:subject ex:I ;
rdf:predicate ex:saw ;
rdf:object [
a ex:Man ;
ex:wore ex:dirtyRaincoat .
] ] .
没有区别:您的两个场景实际上是完全相同的模型。在第二个场景中使用的方括号表示法只是一种语法快捷方式,可以用于具有多个属性的空白节点。这是Turtle中的语法变体,但它们是相同的RDF模型
[ a rdf:Statement ;
rdf:subject ex:I ;
rdf:predicate ex:saw ;
rdf:object [
a ex:Man ;
ex:wore ex:dirtyRaincoat .
] ] .