javascript - antoniogarrote/rdfstore-js 重用空白 Node

标签 javascript node.js rdfstore

我在nodejs中使用rdfstore,但我不知道如何重用空白 Node 。我需要多次使用空白 Node 。

这是代码:

graph.add(rdf.createTriple(
   new rdf.api.BlankNode(id);
   rdf.createNamedNode(predicate)
   rdf.createBlankNode()
);

id 取自之前输入的空白​​ Node "_:30"=> "30"

我已检查创建的空白 Node ,它是正确的(具有正确的 ID)。但是当我查看 db 时发现它有错误。即使我给了他确切的 Node ,它似乎也在使用一些计数器。

编辑 1

我已经检查了创建的三元组,它看起来像我想要的那样。所以问题一定出在将三元组添加到图中/存储三元组的某个地方。

感谢您的帮助,

迈克尔。

最佳答案

原因实际上很简单:每次调用 rdfstore.Store.insert 都会创建一个 SPARQL INSERT 语句。每个单独的 SPARQL 语句都有自己的一组唯一的空白 Node 。

也就是说,我们问题的唯一解决方案是收集三元组并添加到数组中,最后一次将它们全部添加。

var triples = [];
[...]
store.insert(store.rdf.createGraph(triples), 
  graph, 
  function(success, cnt) {
    if(success) console.log(cnt + ' triples successfully added.');
  });

我希望这会有所帮助。

关于javascript - antoniogarrote/rdfstore-js 重用空白 Node ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27501056/

相关文章:

javascript - 防止 window.open() 刷新窗口

javascript - 从函数中获取变量的值

javascript - 如何获取系统时间?

javascript - 如何从拉取的 mongodb 文档中添加字段

node.js - Nodejs + Socket.io + Nginx 反向代理不工作

java - 在 Tapestry 5 Web 应用程序中编辑复杂的 Java 对象

javascript - IOS Safari 上 HTML 输入的奇怪行为

node.js - 将 React 应用程序部署到 github 页面。获取...net::ERR_ABORTED

rdf - 芝麻rdfstore命名图