トリプルストアを使う

 リンクトデータ(linked data)やオントロジー(ontology)はしばしばRDFやOWL形式で表記・保存され,使われます.このようなデータはいわゆる三つ組み(triple)と呼ばれますが,三つ組みをオンラインで出版・提供する手段には 1)RDFやOWLファイルとして公開する(バルクデータ)2)トリプルストアに収納してアクセス手段をエンドポイントとして公開する(データベース)3)コンテント・ネゴシエーション付きウェブサイトとして公開する,の三通りの方法があります.
 ここでは2番目のトリプルストアによる方法について説明します.今ではデータベースと言えばRDB以外にも様々な種類のデータベースが使われるようになっていますが,エクセルのような表形式を基とするRDBに対して,トリプルストアはトリプルのコレクションからなるグラフを基としているため,グラフベースのデータベースに該当します.
 代表的なトリプルストアとして,1) AllegroGraph 2) Apache Jena Fuseki 3) Virtuoso Universal Server があります.以下では順にその使い方を紹介をしていきます.いずれも個人使用のレベルでは十分な性能ですが,今後の本格的な利用を考えると,それぞれに考慮すべき特徴があります.これまでの経験から荒っぽく言えば,1) AllegroGraph は最初からトリプルストアとして Allegro Common Lisp を用いて開発されたこと,開発元のFranz社はエンタープライズ・レベルでの data lake としての活用を考えていること,2) Apache Jena Fuseki はJavaで実装されているため,Javaの走るところならどこでも使うことができて,何とRapsberry Piでも使うことができること,3) Virtuoso Universal Server も Rapsberry Pi で動くことは動くが Fuseki に比べればどうしても重くなること,などががあげられます.AllegroStore は欧州の統計データ収納に用いられて実績もあるし,ドキュメントもセマンティックウェブに特化しているため(私には)分かりやすいですが,64bit Linuxでしか動かず,商用版は50万円ー100万円と高価になります(無料の評価版もある).Virtuoso Universal Server はRDBをベースに開発されたため,ドキュメントも(私には)分かりにくく概要をつかむのも容易ではありませんが,Bio関連では標準的に使われており,RDBが得意な人にはいいでしょう.Fuseki は Java使いの人や,Apache Jena 推論系を使いたい人には便利でしょうが,商用のサポートは難しいでしょう.
 Lisp使いの私としては AllegroGraph が好きですが,各自好みと能力と今後の展開を考慮して選択すればよいと思います.