Protegeの利用

Protege? 法造?

ひょんなことからオントロジーをあれこれする必要が生じ、しかも共同作業が必要になるということで、メジャーなツールであるProtegeを使うことに。
今回は日本語コンテンツなので、法造(hozo)もインストールして試した見たが、ネットワークを用いた共同作業がWindowsマシンのみを想定した作りになっているので取りやめに。

Protegeインストール


Protegeのインストール自体は非常に簡単で、ダウンロードしてインストールスクリプトを実行するのみ。
バージョン3系と4系ではOWLの扱いで大きな違いがあるので、それぞれの最新バージョンが提供されている。
また、最新バージョン以外についてはここから選択して取得可能。

Protegeはウェブブラウザからもオントロジーにアクセスして編集出来るWebProtegeもあるので、この機能も試してみた。
なお、WebProtegeの想定しているProtegeバージョンは厳格で、WebProtegeの最新バージョンbuild 200 (14 Aug 2009)は3.4.1が想定されている。
3.4.4で試してみても全く利用出来なかった。

Protegeでは一度に一人しか編集出来ないスタンドアロンモードと、クライアント・サーバーアプリケーションとして同時並行的に複数人が編集可能なマルチユーザーモードがあり、今回は後者を採用する。

まず、Protegeをクライアント・サーバーアプリケーションとして利用するための準備が必要。これ自体は特に難しいことはなく、ここの説明に従って行うのみ。

しかし、利用者間での協調作業を可能とするCollaborative Protegeを実現させようとすると、残念ながらProtegeページに記述されている手続きだけではうまく動作しない。

これはインストールパッケージにバンドルされているサンプルを参考にすれば分かることだが、共同作業におけるインスタントメッセージングのような注釈(annotation)機能を実現させるためのオントロジーが、編集対象としているオントロジー毎に必要となる。例えば、collaborativeNewspaper.pprjにはannotation_collaborativeNewspaper.pprjが用意されていて、それがmetaproject.pprjを開いてみると分かる。
新たに同時並行協調作業可能プロジェクトを構築する際、Projectのインスタンスとしてannotation_collaborativeNewspaperとcollaborativeNewspaperを作り、後者のInstance Editor中にある「AnnotationProject」に前者を指定する。
そして後者、collaborativeNewspaperのプロジェクト(collaborativeNewsPaper.pprj)を作る時に、Protegeの「Collaboration」メニューで「Show Collaboration Panel」をチェックしておくことを忘れずに。

また、ユーザー登録もmetaproject.pprjを編集することで可能になるが、3.4.1ではパスワードが素のまま見えてしまうことに注意。
最新バージョンの3.4.4では暗号化されて保存されるが、WebProtegeが利用出来なくなる。

WebProtegeインストール

WebProtegeの実現も一筋縄では行かなかった。

WebProtegeではJava Servletを利用しているため、Apache Tomcatを利用しようとした。ところがうまく動作しない。何故だろう、と思って調べてみると、このページが。Linux 2.6.* ではカーネルを設定を変更する必要がある?

面倒くさいので、GlassFishを利用することにした。
手元マシンのJAVAバージョンが1.6系なのでバージョン3 (オープンソース版)をダウンロード。

GlassFishのインストールが簡単なのに加え、Webブラウザを利用したGUIでWARファイルを指定するだけでデプロイ作業が終わる。これは素晴しい!
なお、GUIを利用するためには、GlassFishインストールディレクトリで ./bin/asadmin start_domainとしてサーバーを立ち上げる。
サーバーは./bin/asadmin stop_domainとすることで終了させられる。

デフォルトではポート番号4848を利用するので当該ホストの4848にウェブブラウザでアクセスすると管理画面が表示される。
「Common Tasks」の「Applications」を選択し、「Deploy」をクリックするとデプロイ作業が始められるし、既に登録されているアプリケーションがある場合は、「Action」で「Launch」をクリックすると、当該アプリケーションのページに接続する。

このようにして実現されたWebProtegeだが、現時点では機能不十分であり、実用性には乏しい。個々のインスタンスのプロパティを適切に見ることが出来ないほか、既存のクラス名を変更する方法が無いなど課題が多い。

なお、WebProtegeを利用する場合、サーバーの設定(metaproject)でプロジェクトを定義する必要があるが、当該プロジェクトのdescriptionを空欄のままにしておくと、ウェブブラウザでアクセスした際にリストアップされないので注意。

運用

Protegeをクライアント・サーバー環境で利用する際には、インストールディレクトリで ./run_protege_server.shを実行するが、注意すべきは、終了させる時に必ず./shutdown_protege_server.shを実行させることであり、さもないと全ての編集結果が保存されないまま消えてしまうこととなる。
更に、誤って既にサーバーが動作している状態で、再び起動してしまうと、シャットダウンスクリプトでは重複して起動させてサーバーしか終了させられず、オリジナルで起動したサーバーを用いた編集結果を保存する手だてを失う。この状態ではクライアントからの新たなアクセスも受け付けなくなるので、既に編集しているクライアントがある場合は、決して終了させずに、クライアントの「File」メニューにある「Export to Format」を利用してowl形式で保存する。このowlファイルをサーバー側の編集対象ファイルと置換することで、サーバーを強制終了させても、編集結果を失わずに済ませられる。