EasyRDF:如何创建一个空节点并设置一个rdf:about属性?

时间:2014-02-27 15:56:50

标签: php xml rdf blank-nodes easyrdf

我正在使用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或您建议的其他内容?

1 个答案:

答案 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>