SyntaxHighlighter

2013年4月2日火曜日

DBpedia日本語版:SPARQLをRubyから実行

前回のSPARQLをRubyから実行する。Rubyのバージョンは1.9.3。

まずはgemをインストール。
% gem install linkeddata
% gem install sparql

SPARQLをRubyで実行するコード。
#-*- coding: utf-8 -*-
require "sparql/client"
 
client = SPARQL::Client.new("http://ja.dbpedia.org/sparql")
results = client.query("
  SELECT ?resource ?title
  WHERE {
    <http://ja.dbpedia.org/resource/織田裕二> dbpedia-owl:wikiPageWikiLink ?resource .
    ?resource rdf:type dbpedia-owl:Film .
    ?resource rdfs:label ?title .
  }
")
results.each do |solution|
  puts "#{solution[:resource]} | #{solution[:title]}"
end
結果は以下のとおり。
http://ja.dbpedia.org/resource/踊る大捜査線_THE_MOVIE | 踊る大捜査線 THE MOVIE
http://ja.dbpedia.org/resource/踊る大捜査線_THE_MOVIE_2_レインボーブリッジを封鎖せよ! | 踊る大捜査線 THE MOVIE 2 レインボーブリッジを封鎖せよ!
http://ja.dbpedia.org/resource/ホワイトアウト_(小説) | ホワイトアウト (小説)
http://ja.dbpedia.org/resource/湘南爆走族 | 湘南爆走族
http://ja.dbpedia.org/resource/県庁の星 | 県庁の星
http://ja.dbpedia.org/resource/彼女が水着にきがえたら | 彼女が水着にきがえたら
http://ja.dbpedia.org/resource/椿三十郎_(2007年の映画) | 椿三十郎 (2007年の映画)
http://ja.dbpedia.org/resource/BEST_GUY | BEST GUY
http://ja.dbpedia.org/resource/将軍家光の乱心_激突 | 将軍家光の乱心 激突
http://ja.dbpedia.org/resource/T.R.Y. | T.R.Y.
http://ja.dbpedia.org/resource/就職戦線異状なし | 就職戦線異状なし
http://ja.dbpedia.org/resource/波の数だけ抱きしめて | 波の数だけ抱きしめて
http://ja.dbpedia.org/resource/卒業旅行_ニホンから来ました | 卒業旅行 ニホンから来ました
http://ja.dbpedia.org/resource/アマルフィ_女神の報酬 | アマルフィ 女神の報酬
http://ja.dbpedia.org/resource/踊る大捜査線_THE_MOVIE3_ヤツらを解放せよ! | 踊る大捜査線 THE MOVIE3 ヤツらを解放せよ!
http://ja.dbpedia.org/resource/きけ、わだつみの声_Last_Friends | きけ、わだつみの声 Last Friends
http://ja.dbpedia.org/resource/エンジェル_僕の歌は君の歌 | エンジェル 僕の歌は君の歌
http://ja.dbpedia.org/resource/アンダルシア_女神の報復 | アンダルシア 女神の報復
http://ja.dbpedia.org/resource/踊る大捜査線_THE_FINAL_新たなる希望 | 踊る大捜査線 THE FINAL 新たなる希望

コードは以下を参考に、というかほぼそのまま。
RDF.rb - LinkedData.jp Wiki