
平成15年度未踏ソフトウェア創造事業(未踏ユース) 採択案件評価書


|

1.採択者氏名

|
|

|
代表者
|
:
|
市村 元信(早稲田大学理工学部土木工学科)
|
|
共同開発者
|
:
|
なし
|
|

|

2.担当プロジェクト管理組織

|
| 
(株)オープンテクノロジーズ
|


|

4.テーマ名

|
| 
Agentを利用した拡張可能な入力メソッドの作成
|


|

6.テーマ概要

|
| 
従来の入力メソッドでは,ユーザからのデータ入力をかな漢字変換することによって日本語を入力するといった使い方が一般的であった.しかし,最近の入力メソッドには,
・予測入力方式に代表されるより効率の良い入力方式のサポート
・情報の検索手段としての入力メソッドの利用
といった,情報を効率良く収集し,効率良く入力できることが求められてきている.そこで,本提案では,これらの要件を満たすために,Agentを利用した拡張可能な入力メソッドを提案する.
システム情報,現在利用されているアプリケーション等を入力メソッドに通知するエージェント,プラグインを利用して拡張可能な入力メソッドなどを利用することで,アプリケーション毎に最適な辞書選択する,といった制御を可能とする.特にエージェントと予測入力方式とを組み合わせることで,より効率の良い入力メソッドを提供できるようになるであろう.
また,入力メソッドからの通知により動作を行なうエージェントを利用することで,音楽ファイルの再生やブラウザとの連携などシステム固有な動作も可能な入力メソッドを作成することが可能となる.また,情報の検索手段として使える入力メソッドも提供したい.
|

| 
8.成果概要(中間報告時)

|
| 
ユーザが現在何をしようとしているのかを把握しておくことで,入力メソッドがより効率良く動作することができる可能性が高くなる.たとえば,利用するアプリケーションによって入力メソッドが提示する変換候補の優先順位を切り変えるといった少しの工夫によってより効率的な入力が行なえる.
しかし,通常,入力メソッドが,現在入力しているアプリケーションはどのようなものか把握するためには,複雑な手続きが必要となる場合が多い.本プロジェクトでは,入力メソッド単体では捕捉することが困難な情報を取得するために,様々な情報を収集し,入力メソッドに通知するエージェントや,入力メソッドからの情報によって動作するエージェントを利用して入力メソッドと協調させる.これによって,単純な実装で入力メソッドが様々な情報をやりとりできるようになる
(市村 図1)

市村 図1 実装する機能の概要
また,実際に,特に入力メソッドに対して効果を発揮すると考えられる以下のエージェントを実装する.
・現在利用しているアプリケーションを入力メソッドに対して通知するエージェント
・現在クリップボードに保存されている情報を入力メソッドに対して通知するエージェント
・マウスの動きを入力メソッドに対して通知するエージェント
・現在利用しているシステム情報を入力メソッドに対して通知するエージェント
・入力メソッドからの情報をブラウザに通知するエージェント
このため,まずエージェントの管理プログラムとして,libAgentと呼ばれるライブラリを開発した.libAgentは,現在Linux上で普及していて,Linux以外にも対応プラットフォームの多いGlibライブラリを利用して作成している.libAgentを利用することで,エージェントのスケジューリング等の複雑な機構を簡単に実現でき,エージェントの作成が容易になった.また,基本的な部分はCORBAにも対応しており,分散環境においても利用できるライブラリとして利用できる.
また,柔軟にカスタマイズを行なうことが可能な入力メソッドとして,OpenI18n.org (Linux関連で国際標準化を進めている組織)
で開発されているIIIMF (Internet/Intranet Input Method Framework.プラットフォーム非依存,マルチリンガル,マルチユーザな入力システムを作成するために開発されたフレームワーク)
を利用した入力メソッドであるiiimf-skk,iiimf-cannaのカスタマイズを行なった.
|
| 
9.PMコメント(中間報告時)

|
| 
市村君は,大学を9年も休学している強者であるが,Momonga
Linuxプロジェクトのメンバー,Linuxの国際化を推進するOpenI18N.orgのInput Method Subgroupの開発者として活躍している有名人だ.若干神出鬼没気味で,PMやプロ管との連絡も途絶えがちというのが気になるが,プロジェクトは少々の遅れが出ているくらいで着々と進行している.
やっとエージェントの基本メカニズムの実装が終わった段階なので,ユーザに入力メソッドが実際にどう見えて,なにが新しく便利になるかが,まだちょっとわからないところがある.なので,入力メソッドの大幅機能強化でなにが得られるのか,なるべく早くデモで示してもらえるとありがたい.概念的には理解できても,実際に触ったらどんなふうにありがたいかを早く知りたいのだ.ユーザからのフィードバックを得ないと,どんなヒューマンインタフェースも本当の完成には至らない.
|
|

10.成果概要(終了時)

|
| 
前期に行なったlibAgentが相当重くなってきたので,
リファクタリングし, 開発を進めた. libAgentの現在のクラス体系は市村 図2となっている. libAgentを利用して作成されるエージェントは市村・表1に示すような各種の要素からなる.
これらの要素をつなげていくことによって, 様々なエージェントが作成できる. また, 簡単にエージェント間の通信が行なえるように,
エージェント同士のつながりをXMLによって記述できるようにした.
市村 図2 libAgentのクラス体系
市村 表1 エージェントの要素
libAgentを利用した簡単なサンプルとして, AgentShellを開発した.
AgentShellを利用すれば, 簡単なエージェントの作成や, 現在利用可能なプラグインの閲覧といった情報が得ることができる.
入力, 情報収集の効率化に必要となる基本的なエージェントとして, 市村 表2に示すようなエージェントを作成した.
エージェントの要求に応じてカスタマイズ可能な入力メソッドとして, OpenI18N.orgで開発中のIIIMFの実装であるim-sdkを利用した入力メソッドiiimf-skkの開発を進めた.
iiimf-skk が動作する様子を市村 図3に示す.
市村 表2 実装したエージェント
市村 図3 iiimf-skk
|

| 
11.PM評価とコメント(終了時)

|
| 
神出鬼没というより, ほとんど連絡の取れない市村君であった.
さすがにこれは助成金を受けて開発を行なっている場合は困る. 後期に入ってからは通信事情に関して若干のアクシデントがあったということだが,
それはそれで本人がすぐ気がついてもらわないといけない. 2ヵ月以上連絡がとれない, あるいはとろうとしないのは大きな失点だと断言しておく.
成果自体は, そのようなこととはある程度独立している. プログラム開発にはまると, 雑事が一切目に入らなくことはままあることではある.
それにしても度を過ぎていた.
さて, その成果であるが, libAgent (これはすでにあるものと名前がバッティングしているそうなので, もうすぐ名称変更をするとのこと)
という基礎的なライブラリの開発に終始したので, それを使った説得力のある入力メソッドのデモは残念ながら見られなかった. 市村君の言うBurterry
(この綴はPM作, バータリー, つまり場当り) 指向の簡単なデモは見せてもらったが, いまいちうまく動かなかった.
libAgent自体の安定性の問題もあろうが, 市村君の言うようにXMLで記述したエージェント同士のつながりに間違いがあると簡単に無限ループになるというのも要改良である.
エージェントというのはそれなりに重いものだが, それをどういうふうに利用すると「これはいい!」と思われるようになるか, そのあたりの負荷と利得のバランス感覚は,
結局それを使ってなにをしようとするかに本質がある. 市村君にはまだキラーアプリの着想がないように見えた. 典型的なシーズ指向だが,
一度ニーズ指向でものを考えてみるのがよいと思う.
|



ページトップへ
|

|