我正在使用EasyRdf在图表中创建一些节点。我的问题是我正在尝试创建一个新的空白节点,并且还为它设置一个指向正确资源的rdf:about
属性。
$rdf = new EasyRdf_Graph();
$datapoint_resource = $rdf->newBNode(
'rdf:Description'
);
此代码的问题在于它创建了一个新的rdf:Description
节点,但我无法将rdf:about
作为属性添加到其中。
<rdf:Description>
<!-- Some resources here -->
</rdf:Description>
我需要的是
<rdf:Description rdf:about="http://link.to/my/resource/id">
<!-- Some resources here -->
</rdf:Description>
我已尝试添加rdf:about
作为资源,但W3C验证程序输出错误“ rdf:about not is this element tag not here ”。
<rdf:Description>
<rdf:about rdf:resource="http://ordex.probook/rdf/datapoint/5813af3dbf552b25ed30fd5c9f1eea0b"/>
</rdf:Description>
所以这不起作用,也可能不是一个好主意。
如何在创建新的空白节点时添加rdf:about
或您建议的其他内容?
答案 0 :(得分:1)
rdf:about
用于RDF图的RDF / XML序列化,以指示资源的URI。您使用Graph.newBNode()
创建的空白节点没有URI。要创建URI资源,请Graph.resource(uri)。因此,你应该这样做:
$datapoint_resource = $rdf->resource('http://link.to/my/resource/id');
有关如何使用rdf:about
的更多信息;见RDF 1.1 XML Syntax。例如,它包括这个例子:
Figure 2图表由一些IRI节点组成(和 其他不是),这可以使用。添加到RDF / XML rdf:关于节点元素的属性,以给出示例2中的结果:
添加了IRI的EXAMPLE 2节点元素
<rdf:Description rdf:about="http://www.w3.org/TR/rdf-syntax-grammar"> <ex:editor> <rdf:Description> <ex:homePage> <rdf:Description rdf:about="http://purl.org/net/dajobe/"> </rdf:Description> </ex:homePage> </rdf:Description> </ex:editor> </rdf:Description>