我在nodejs中使用rdfstore,无法弄清楚如何重用Blank节点。我需要多使用空白节点,然后再使用一次。
这是代码:
graph.add(rdf.createTriple(
new rdf.api.BlankNode(id);
rdf.createNamedNode(predicate)
rdf.createBlankNode()
);
id来自先前输入的blankNode“ _:30” =>“ 30”
我已经检查了创建的空白节点,它是正确的(具有正确的ID)。但是当我查看数据库时,它有一个错误。即使我给他确切的节点,似乎也正在使用计数器。
编辑1
我检查了创建的三元组,它看起来像我想要的。因此,问题必须出在向图形添加三元组/存储三元组中。
谢谢你的帮助,
米哈尔
最佳答案
原因实际上很简单:每次调用rdfstore.Store.insert
都会创建一个SPARQL INSERT
语句。每个单独的SPARQL
语句都有其自己的唯一空白节点集。
也就是说,解决我们问题的唯一方法是收集三元组以添加到数组中,最后一次全部添加它们。
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/