0

我正在使用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 is not allowed as an element tag here ”。

   <rdf:Description>
     <rdf:about rdf:resource="http://ordex.probook/rdf/datapoint/5813af3dbf552b25ed30fd5c9f1eea0b"/>
   </rdf:Description>

所以这行不通,也可能不是一个好主意。


创建新的空白节点时如何添加rdf:about或您有什么其他建议?

4

1 回答 1

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 语法。例如,它包括以下示例:

2中的一些节点是 IRI(以及其他不是),可以使用节点元素上的 rdf:about 属性将其添加到 RDF/XML 中,以给出示例 2 中的结果:

示例 2添加了 IRI 的节点元素

<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>
于 2014-02-27T16:07:03.253 回答