OpenRefine(旧称:Google Refine、さらに以前はFreebase Gridworks)は、スタンドアローンでオープンソースのデスクトップアプリケーションで、データのクリーンナップ、他の形式への変換、データラングリングと呼ばれる処理を行うことができる。見た目はスプレッドシートアプリケーションに似ているが(スプレッドシートファイル形式も処理できる)、よりデータベースに近い動作をする。
各列(カラム)の下にセルを持つデータの各行に対して様々な操作を行う。これは、リレーショナルデータベースのテーブルに非常によく似ている。1つのOpenRefineプロジェクトは1つのテーブルからなる。ユーザーは、ファセット(facet)と呼ばれるフィルタリング条件(例えば、指定した列が空でない行のみを表示するなど)の定義を使用して、表示する行をフィルタすることができる。スプレッドシートとは違い、OpenRefineのほとんどの操作は、表示された行全体に対して実行される。たとえば、1つのカラムの下にある全ての行のすべてのセルに対して変換処理が適用されたり、すでにあるカラムを元にして新しいカラムが作成されるといった処理となる。すべての操作はプロジェクト内に保存された1つのデータセットに対して実行され、別のデータセットに対して同じ操作を繰り返し適用することができる。
スプレッドシートとは異なり、セルの中には数式は保存されず、数式はデータの変換に使われ、また、データの変換は1回のみ実行される。データを変換する処理式はGeneral Refine Expression Language (GREL)と呼ばれるDSLの他、Jython(つまりPython)やClojureで記述することも可能である。
プログラムにはウェブユーザーインターフェイスが組み込まれているが、ウェブサービス(SaaS)としてホストされるわけではなく、ダウンロード後にローカルマシンで動作するためのものである。OpenRefineを実行すると、ローカルでウェブサーバが起動し、このウェブサーバ上で動作するウェブUIがブラウザで自動的に開かれる。
ソフトウェアの使用例
- 乱雑なデータのクリーニング:たとえば、部分的にしか構造化されていないテキストファイルを編集するとき、変換やファセット、クラスタリング機能を利用することで、きれいに構造化されたデータを作成することができる。
- データの変換:正規化・非正規化の処理を行いながら、他の形式に変換することができる。
- ウェブサイトのデータのパース:OpenRefineにはURL取得機能がある理、jsoup HTMLパーサとDOMエンジンが搭載されている。
- (JSONを返す)ウェブサービスからデータを取得しながらデータセットへデータの追加。たとえば、住所のジオコーディングを地理座標系に変換するために使用できる。
- Wikidata(旧称:Freebase)への名前合わせ:これは照合(名寄せ)機能に関係し、セル内の文字列の値をWikidataのエンティティにマッピングすることができる。
インポートとエクスポートの対応フォーマット
インポートは以下のフォーマットに対応している。
- TSV、CSV
- 任意の区切り文字または固定長で列が区切られたテキストファイル
- XML
- RDF triples(RDF/XMLおよびNotation3シリアライズフォーマット)
- JSON
- Google Spreadsheets、Google Fusion Tables
入力データが標準化されていないテキストフォーマットだった場合、行全体をカラムに分割せずにインポートすることができ、その後、OpenRefineのツールを使ってカラムが抽出できる。アーカイブと圧縮ファイルもサポートされ(.zip,.tar.gz,.tgz,.tar.bz2,.gz, or.bz2)、URLから入力ファイルを直接インポートすることもできる。ウェブページをインプットとして使用するときは、URLのインポートリストを指定して、URL取得機能を呼び出せる。
エクスポートは以下のフォーマットに対応している。
- TSV
- CSV
- Microsoft Excel
- HTML table
- Templating exporter:出力データに対してカスタムのテンプレートを定義することができる。これを使えば、たとえばMediaWikiのテーブルを出力することができる。
独自フォーマットのOpenRefineのプロジェクト全体は、.tar.gzアーカイブ形式で出力できる。
歴史
OpenRefineは、MetawebによってFreebase Gridworksとして開発が始まり、2010年1月にオープンソース化された。2010年7月16日、GoogleはFreebaseの作者であるMetawebを買収し、2010年11月10日にFreebase Gridworksと呼ばれていたソフトウェアをGoogle Refineと改名し、バージョン2.0をリリースした。2012年10月2日、元の作者のDavid HuynhはGoogleではGoogle Refineのサポートを終了すると発表した。以降、コードベースがオープンソースプロジェクトに移行し、OpenRefineと改名された。
