Google RefineによるRDFデータへの変換

前のエントリーでVirtuosoのインストールについて書きました。VirtuosoをRDFストアとして使ってみるところまで書きたいのですが,その前にRDF形式のデータが必要です。そこで,このエントリーではCVS形式などのテーブルデータをGoogle RefineRDF Extension for Google Refineを使ってRDFに変換する方法について書きます。

Google Refineのインストール

Google Refineはここからダウンロードします。現行のバージョンは2.1です。


Google Refineのインストールは指示に従うだけです。インストールできたら,起動してみましょう。Webブラウザが立ち上がり,http://127.0.0.1:3333/が開かれるはずです。

[,w480]

Google Refineへのデータのロード

何か適当なプロジェクトを作成してテーブルデータをロードしてみましょう。ここでは例として次のデータを使って書きます。

都道府県 県庁所在地 人口 面積/km^2
茨城県 水戸市 268686 217.43
栃木県 宇都宮市 511973 416.84
群馬県 前橋市 339094 311.64
埼玉県 さいたま市 1228594 217.49
千葉県 千葉市 963495 272.08
東京都 新宿区 324824 18.23
神奈川県 横浜市 3692809 437.38


まず,このデータをコピーして適当な名前を付けてファイルに保存します(たとえばcapitals.tsvとします)。「Create a New Project」の「Data file:」の「Choose File」ボタンを押して,このファイルを選択します。「Project Name:」のところに自動的にファイル名が入ったと思います(上の例の場合,「capitals」になるはずです)。とりあえずこれで「Create Project」をクリックしましょう。プロジェクトのページが作成され,そのページに移動します。

[,w480]

RDF Extension for Google Refineのインストール

RDF形式のデータを扱えるようにするために,アイルランドDERI(The Digital Enterprise Research Institute)が公開しているRDF Extensionを入れます。RDF Extensionはここからダウンロードします。現行のバージョンは0.5.2 (beta)です。


RDF Extensionのインストールは,RDF Extensionを以下のディレクトリの下に置くだけです。

~/Library/Application Support/Google/Refine/extensions/

ただし,Google Refineのインストール直後では「Refine」の下に「extensions」というディレクトリは無いと思うので,自分で作ります。ここに解凍したRDF Extensionを置きます。こんな感じです。

~/Library/Application Support/Google/Refine/extensions/grefine-rdf-extension-0.5.2/

以上です。Google Refineを再起動して,先ほど作成したプロジェクトのページを見てみましょう。RDF Extensionのページに説明がありますが,画面の右上の「Extensions:」のところに「RDF▼」というメニューが新たに出来ているはずです。

[,w480]

RDFデータへの変換

RDFデータを作成するためには,この「RDF▼」メニューから「Edit RDF Skelton…」を選択し,RDFデータを設計します。その後,この画面に戻って,「RDF▼」の上あたりにある「Export▼」から「RDF as RDF/XML」もしくは「RDF as Turtle」を選ぶと,RDF形式のファイルを作成できます。詳しくはRDF Extensionのページを参考にしてください。


なお,RDFの表現方法は他にもいろいろなフォーマットがありますが,現行のバージョンのGoogle Refine(+RDF Extension)でエクスポートできるのはRDF/XML(.xml)とTurtle(.ttl)のみです。


実際にRDFデータを作ろうとすると,predicateやURIの設計でつまづくと思います。これらはとりあえず自分で適当に考えたものでも動きますが,まじめに設計するにはすでにあるものを参考にするといいようです。オライリーの『セマンティックWebプログラミング』では次の3つのページから探すことが推薦されていました。

さいごに

Google Refineはとてもいいツールだと思いますが,大量に変換する場合にはスクリプトを書くのが効率いいと思います。また,ここではテーブルデータをRDFに変換しましたが,RDBのデータをRDFへ変換するツールもいくつか公開されているようです。R2RMLなどを参照してください。

関連エントリー