0

nodejsで rdfstoreを使用していますが、空のノードを再利用する方法がわかりません。空白ノードを複数回使用する必要があります。

コードは次のとおりです。

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

IDは以前に入力された blankNode から取得されます "_:30" => "30"

作成された空のノードを確認しましたが、正しいです (正しい ID で)。しかし、db を調べると、間違ったものがあります。彼に正確なノードを与えても、カウンターを使用しているようです。

編集1

作成されたトリプルを確認しましたが、希望どおりに見えます。したがって、トリプルをグラフに追加する/トリプルを保存する際に問題が発生する必要があります。

助けてくれてありがとう、

ミハル。

4

1 に答える 1

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.');
  });

これが役立つことを願っています。

于 2015-01-21T20:41:19.620 に答える