参考: 2.2 SPARQL query with OPTIONAL to two remote SPARQL endpoints
参考をopenrdf-sesame 2.6.9 + tomcat (6.0.35 (今回IP:192.168.0.33) / 7.0.30 (今回IP:192.168.0.18) )で行う.
(注意: tomcat-7.0.30 では localhost:8080/openrdf-sesame にアクセスすると404を返すが,localhost:8080/openrdf-workbench へアクセスするとCurrent Selections/Sesame serverの項に表記されるので,応答はしているようである.)
1. 前々回を参考に一台目(今回IP:192.168.0.33)にpeopleというMemory storeを作成し,下記(参考より)を登録する.@prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix : <http://example.org/> . :people15 foaf:name "Alice" . :people16 foaf:name "Bob" . :people17 foaf:name "Charles" . :people17 foaf:interest <http://www.w3.org/2001/sw/rdb2rdf/> .
2. 同じく前々回を参考にニ台目(今回IP:192.168.0.18)にpeople2というMemory storeを作成し,下記(参考より)を登録する.@prefix foaf: <http://xmlns.com/foaf/0.1/> . @prefix : <http://example.org/> . :people15 foaf:knows :people18 . :people18 foaf:name "Mike" . :people17 foaf:knows :people19 . :people19 foaf:name "Daisy" .
3. 一台目もしくは二台目のworkbenchより下記(参考より)のSPARQL Queryを送信する(どちらからでも問題はない).PREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name ?interest ?known WHERE { SERVICE <http://192.168.0.33:8080/openrdf-sesame/repositories/people> { ?person foaf:name ?name . OPTIONAL { ?person foaf:interest ?interest . SERVICE <http://192.168.0.18:8080/openrdf-sesame/repositories/people2> { ?person foaf:knows ?known . } } } }
赤字の部分は参考では'people'になっていたが(2012/10/2現在), 参考内のQuery Resultと合わせるには'name'にする必要がある.
4. Query Resultを確認する.
基本は以下のQueryPREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name WHERE { SERVICE <http://192.168.0.33:8080/openrdf-sesame/repositories/people> { ?person foaf:name ?name . } }
一台目(192.168.0.33)でなら以下でもよいPREFIX foaf: <http://xmlns.com/foaf/0.1/> SELECT ?name WHERE { ?person foaf:name ?name . }
上のQueryの場合の結果
0 件のコメント:
コメントを投稿