Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
当对象是bNode时,rdf具体化是如何工作的?_Rdf_Turtle Rdf_Blank Nodes - Fatal编程技术网

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

当对象是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 ;

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

我可以想象两种情况: 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
的对象位置:

[ 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 .
] ] .