2014年4月16日水曜日

よくつかうSPARQLサンプル集

とりあえずトリプルが何件入ってるか知りたい
SELECT count(*) WHERE { ?s ?p ?o }
 

とりあえずどんなトリプルが入っているか見たい
SELECT * WHERE { ?s ?p ?o } LIMIT 500

グラフ毎の件数を集計して見たい
SELECT ?g count(?g) WHERE {GRAPH ?g {?s ?p ?o}} GROUP BY ?g

あるグラフ配下のトリプルだけを見たい(何のグラフがあるかは一つ上↑のSPAQLで)
SELECT * WHERE { GRAPH <あるグラフ> {?s ?p ?o }}

aomoriが含まれるトリプルを探したい(主語から探す)
SELECT * { GRAPH ?g { ?s ?p ?o . FILTER( contains(str(?s),'aomori') ) }}

titleが含まれるトリプルを探したい(述語から探す)
SELECT * { GRAPH ?g { ?s ?p ?o . FILTER( contains(str(?p),'title') ) }}

青森県が含まれるトリプルを探したい(目的語から探す)
SELECT * { GRAPH ?g { ?s ?p ?o . FILTER( contains(str(?o),'青森県') ) }}

グラフ完全一致で探す
SELECT * { GRAPH <グラフ> {?s ?p ?o}}

主語完全一致で探す
SELECT * { GRAPH ?g {<主語> ?p ?o}}

述語完全一致で探す
SELECT * { GRAPH ?g {?s <述語> ?o}}

目的語完全一致で探す
SELECT * { GRAPH ?g {?s ?p '目的語'}}

目的語完全一致で探す(言語指定あり)
SELECT * { GRAPH ?g {?s ?p '目的語'@ja}}


以下のサイトでなどでお試しできます。(レスポンス悪いです)
http://dbpedia.org/sparql
http://ja.dbpedia.org/sparql