2017-03-05 10 views
0

リモートエンドポイント(エンドポイントDBPediaまたはWikidataなど)にクエリを実行し、その結果のトリプルをローカルグラフに挿入するにはどうすればよいですか?これまでのところ、私はINSERT、ADD、COPYなどのコマンドがあり、そのようなタスクに使用できることを知っています。 私が理解していないのは、ローカルグラフを更新しているときにリモートエンドポイントに対処する方法です。誰かが最低の例や主要なステップを提供できますか?
私は、Windows上のApacheイエナ布石V2を使用していますし、これはこれまでのところ、私のクエリです:私は、クエリを実行していSPARQL - リモートエンドポイントからデータを挿入

PREFIX wdt: <http://www.wikidata.org/prop/direct/> 
PREFIX p: <http://www.wikidata.org/prop/> 
PREFIX wd: <http://www.wikidata.org/entity/> 

INSERT 
    { GRAPH <???> { ?s ?p ?o } } #don't know what to insert here for "GRAPH" 
WHERE 
    { GRAPH <???> #don't know what to insert here for "GRAPH" either 
    {       #a working example query for wikidata: 
     ?s wdt:P31 wd:Q5.   #humans 
     ?s wdt:P54 wd:Q43310.  #germans 
     ?s wdt:P1344 wd:Q79859. #part of world cup 2014 
     ?s ?p ?o. 
    } 
    } 

私のローカルエンドポイントはhttp://localhost:3030/mylocaldb/updateです。私は/updateがデータベースを編集するために必要であることを読んだことがある(私はそれを正しく理解しているかどうかはわかりません)。
これまでのアプローチは正しいですか?または、SPARQL以外の追加のスクリプト作成のようなものが必要ですか?

SPARQL 1.1 Update W3C specsから撮影

答えて

4

構文はINSERTテンプレートがGRAPHブロックを指定した場合、これらが影響を受けるのグラフになります

(WITH IRIref)? 
INSERT QuadPattern 
(USING (NAMED)? IRIref)* 
WHERE GroupGraphPattern 

です。それ以外の場合は、デフォルトのグラフ、またはWITH句に指定されているグラフが指定されている場合は、そのグラフに操作が適用されます。 USING(NAMED)句が存在しない場合、WHERE句のパターンはグラフストアと照合され、それ以外の場合はUSING(NAMED)句で指定されたデータセットと照合されます。 WHERE句との一致は、挿入されるトリプルを決定するためのテンプレートに適用されるバインディングを作成します(DELETE/INSERTと同じ規則に従います)。

だから、これは基本的にデフォルトのグラフで、それを保存したい場合は、あなたがそうでなければ、それはあなたがデータを保存したいグラフになり、INSERT部分からGRAPH定義を省略できることを意味します。

WHERE句、通常、あなたがウィキデータエンドポイント(https://query.wikidata.org/bigdata/namespace/wdq/sparql)にフェデレーションクエリを適用するには、ここSERVICEキーワードを使用する必要がありますについて:

PREFIX wdt: <http://www.wikidata.org/prop/direct/> 
PREFIX p: <http://www.wikidata.org/prop/> 
PREFIX wd: <http://www.wikidata.org/entity/> 

INSERT 
    { ?s ?p ?o } 
WHERE 
    { SERVICE <https://query.wikidata.org/bigdata/namespace/wdq/sparql> 
    {       #a working example query for wikidata: 
     ?s wdt:P31 wd:Q5.   #humans 
     ?s wdt:P54 wd:Q43310.  #germans 
     ?s wdt:P1344 wd:Q79859. #part of world cup 2014 
     ?s ?p ?o. 
    } 
    } 

私は、Apacheイエナでそれをテストし、それがに4462のトリプルを挿入私のローカルデータセット。

関連する問題