Apache UIMA (Unstructured Information Management Architecture) v2.4.0 リリースノート

目次

UIMA とは
このリリースでの主な変更点
プロジェクトへの参加方法
課題の報告のしかた
このリリースで解決された JIRA の課題のリスト
IBM UIMA から Apache UIMA への移行

1. UIMA とは

UIM (Unstructured Information Management) アプリケーションは、エンドユーザーにとって意味のある知見を発見することを目的として、膨大な量の非構造化情報を分析するソフトウェアシステムです。UIMA は、このようなアプリケーションを開発するためのフレームワークおよび SDK です。UIM アプリケーションの例として、プレーンテキストを処理して、人物や場所、組織などのエンティティ、あるいは勤務先や所在地などの関係 (リレーション) を特定するアプリケーションを挙げることができます。UIMA では、このようなアプリケーションをコンポーネントに分割することができます。たとえば、「言語の特定」 -> 「言語固有の分節化」 -> 「文の境界の検出」 -> 「エンティティの検出 (人/場所の名前など)」などです。各コンポーネントは、フレームワークで定義されたインタフェースを実装しなければならず、XML ディスクリプタファイルを介して自己記述型メタデータを提供しなけばなりません。フレームワークは、これらのコンポーネントとコンポーネント間のデータフローを管理します。コンポーネントは Java または C++ で記述します。コンポーネント間を流れるデータは、これらの言語間で効率的なマッピングが可能になるよう設計されています。また、UIMA はコンポーネントをネットワークサービスとしてラップする機能も提供しており、互いにネットワークで接続されたノードからなるクラスタ上に処理パイプラインを複製することによって、非常に大規模なデータも処理できるようになっています。

Apache UIMA は、UIMA 仕様の Apache ライセンスによるオープンソースの実装です (この UIMA 仕様は、標準化団体 OASIS の技術委員会で並行して開発が進められています)。実装と仕様策定の両方の取り組みにぜひ皆さんの力を貸してください。

UIMA は、テキストや音声、動画などの構造化されていないコンテンツを分析するためのコンポーネントフレームワークです。UIMA には、Java と C++ で記述された分析コンポーネントを作成、実行するための SDK と各種ツールが含まれています。Perl、Python、および TCL についても一部サポートしています。

このリリースでの主な変更点

詳細については、README を参照してください。

プロジェクトへの参加方法

Apache UIMA プロジェクトでは、ドキュメント、ソースコード、フィードバックなど、皆さんからのあらゆるコントリビューションを歓迎し、また必要としています。コントリビュートすることに関心があったら、http://uima.apache.org/get-involved.html にぜひアクセスしてみてください。

課題の報告のしかた

Apache UIMA プロジェクトでは、課題追跡に JIRA を使っています。課題を見つけた場合は、http://issues.apache.org/jira/browse/uima で報告してください。

このリリースで解決された JIRA の課題のリスト

このリリースで解決された JIRA の課題のリストについては、issuesFixed/jira-report.html をクリックしてください。

IBM UIMA から Apache UIMA への移行

このセクションでは、Apache 以前のバージョンの UIMA から (2.1 から始まる) Apache バージョンへの移行の方法について説明します。

注意: 移行ユーティリティを実行する前に、問題が起きたときのことを考えて、ファイルを必ずバックアップしておいてください。移行ユーティリティは、ディレクトリ内で見つかったファイルをインプレイスで更新します。

移行ユーティリティを動作させるには、スクリプトファイル apache-uima/bin/ibmUimaToApacheUima.bat (Windows) または apache-uima/bin/ibmUimaToApacheUima.sh (UNIX) を実行します。移行の対象となるファイルを含むディレクトリを 1 つの引数として渡さなければなりません。指定されたディレクトリのサブディレクトリも再帰的に処理されます。

スクリプトはファイルを走査して必要な更新を適用します。たとえば、com.ibm パッケージ名を新しい org.apache パッケージ名で置き換えます。

スクリプトが修正対象とするファイルは、拡張子が java, xml, xmi, wsdd, properties, launch, bat, cmd, sh, ksh, または csh のファイル、および拡張子を持たないファイルだけです。また、サイズが 1,000,000 バイトを超えるファイルもスキップされます。(上記以外の拡張子を持つファイルをスクリプトで修正したい場合は、スクリプトファイルを編集し、目的に応じて -ext 引数を変更してください。)

移行ツールから警告が報告された場合には、いくつか追加の手順が必要になることがあります。以下の 2 つのセクションでは、手作業でコードに加える必要のある簡単な変更について説明します。

3.1. DocumentAnnotation の JCas cover クラス

JCasGen を実行している場合、おそらくコードの中にクラス com.ibm.uima.jcas.tcas.DocumentAnnotation および com.ibm.uima.jcas.tcas.DocumentAnnotation_Type があると思われます。このパッケージ名は現在では無効ですが、移行ユーティリティはディレクトリ間でのファイルの移動を行わないため、この問題を修正することはできません。

これらのクラスに手作業での変更を加えていない場合、最善の一般的な解決策は、これら 2 つのファイル (およびこれらを含むパッケージ) を削除することです。Apache UIMA に付属する uima-document-annotation.jar ファイルにはデフォルトのバージョンが含まれています。一方、独自の変更を加えている場合には、ファイルを削除するのではなく、正しいパッケージ org.apache.uima.jcas.tcas にファイルを移動してください。JCas と DocumentAnnotation の詳細については、「UIMA リファレンス」の「セクション 5.5.4 DocumentAnnotation への特性の追加」を参照してください。

3.2. JCas.getDocumentAnnotation

非推奨のメソッド JCas.getDocumentAnnotation は削除されました。このメソッドを使っている場合は、代わりに JCas.getDocumentAnnotationFs を使う必要があります。メソッド JCas.getDocumentAnnotationFs() は型 TOP を返すので、コードではこれを型 DocumentAnnotation にキャストする必要があります。この理由については、「UIMA リファレンス」の「セクション 5.5.4 DocumentAnnotation への特性の追加」で説明しています。

3.3. 手作業による追加の移行手順が必要なまれなケースについて

ほとんどのユーザーの場合、追加の移行手順は必要ないはずです。ただし、移行ツールから警告が報告されたり、移行後にコードがコンパイルできない、実行できないなどの問題に遭遇した場合には、「UIMA の概要と SDK のセットアップ」の「セクション 1.4.2. 手作業での移行」を参照してください。