【エントリー部門】 基盤技術部門
【応募者属性】 社会人
【応募者名】 三嶋 博之
【エントリー作品のURL】https://github.com/misshie/bio-virtuoso
【エントリー作品の権利指定】 MITライセンス
【利用しているオープンデータ】https://github.com/misshie/bio-virtuoso READMEに記載
【利用しているパートナーリソース】なし
【エントリー作品の詳細説明】
自分が必要とするデータセットに対してSPARQLクエリーを発行したい。このときLinux上の環境を設定し、Virtuosoをはじめとするトリプルストアを立ち上げ、データセットを見つけて必要であればRDFに変換し読み込ませることは、それぞれ面倒な作業であり、実際に試してみたいSPARQLクエリの発行にたどり着くにはいくつものハードルがある。また複数のソースの複数グラフからなる複雑・巨大なデータセットに対するSPARQLクエリーを発行したい場合、現状では実用的な速度で結果を得るためにトリプルストアの単一インスタンスに全ての必要なグラフを読み込ませる必要がある。このためには既存のSPARQL endpointではなく自前のSPARQL endpointを立ち上げることを避けることはできない。
そこで、本プロジェクトではDocker仮想化技術の2種類のコンテナを組合わせてこれらをシンプルにする。すなわち「virtuoso-goloso(大食いVirtuoso)コンテナ」と「data-feeding(エサやり)コンテナ」である。前者でVirtuosoが立ち上がりデータセットを待ち受ける。後者は複数組合わせることができ、(1)データのダウンロード、(2)必要であればRDFへの変換、(3)virtuoso-golosoへのアップロード、を行う。ユーザーが意識するのはvirtuoso-golosoの起動とどのdataset-feedingコンテナを組合わせるかだけで済み、一番重要なSPARQLクエリー作成にすぐ取りかかることができる。
内部的には、virtuoso-golosoはVirtuosoへの高速で安定したトリプル読み込みのため、Sinatraを使ってHTTP POSTメソッドでのデータアップロードを待受け、isqlコマンドを使って読み込みを行っている。
Bio-Virtuosoの名前のとおり作者は生物学情報の処理を主眼にし開発しているが、この仕組みは社会学的やエンターテインメント方面を含むどのようなRDFデータセット・非RDFデータセットであっても適用可能で、dataset-feedingコンテナの充実で複数のグラフを縦横無尽に組合わせたクエリー作成の可能性が膨らむと期待できる。
Update: Jan 17, 2016
(三嶋 博之)