[ English Version ]

エージェント構築環境


新谷研究室では,エージェント開発支援のための2つの論理型言語を開発しています.RXF は,制約論理型言語に基づくエージェント記述言語,実行環境,そして開発環境です.MiLog は,WWW(World Wide Web)上の知的モバイルエージェントシステムを構築するために新たに研究・開発を進めているプログラミング言語処理系です.

[ MiLog , MiPage , iML | RXF ]

MiLog

ソフトウェアの知能化における1つのチャレンジングテーマとして,知的なソフトウェア同士での協調をいかにして実現するかがある.この知的な ソフトウェアを我々はエージェントと呼んでいる.エージェント間の協調プロセスは非常に高度であり,その記述には既存の言語処理系では不十分 な点が多いため,われわれはこれまでにRXFなどのエージェント記述言語を設計,開発してきた.
情報ネットワーク技術の発達により,情報の発信/取得が容易になったが,その反動で非常に多くの情報が氾濫し,適切な情報を適切なタイミング で得ることが難しくなってきた.これに伴い,情報の収集を支援するためのソフトウェアに対する要求が高まってきている.そこで,我々はこれま でに蓄積した知的エージェント技術を応用することによって,情報の収集を支援するための知的なソフトウェアの実現を試みている.
我々は,情報収集を支援するための知的なソフトウェアのことを情報エージェントと呼んでいる.情報エージェントを構築する場合,情報源へのア クセスや情報の解析を行うことが必要となり,また大量の情報を扱うためにネットワークや計算機をより効率的に利用することが必要になる.ネッ トワークや計算機をより効率的に利用するためには,単一エージェントによる効率化だけでは限界があり,複数の情報エージェント同士での協調が 不可欠であると考えられる.
我々は,協調的な情報エージェントを実現するための基盤として,モバイルエージェント技術を取り入れた新しいエージェント記述言語 MiLog を 開発した.MiLog では,エニータイムマイグレーション(Anytime Migration)という非常に高度なモバイルエージェント技術を実現しており,な おかつエージェント間の協調をより効果的に記述できるようにするために,論理型言語に基づく強力な言語処理系を新たに実装している.エニータ イムマイグレーションでは,エージェントは状況の変化に応じて速やかに別の計算機移動を行うことができ,その際に計算途中の結果が失われるこ となく継続して計算を続けることができる.
MiLog では,さらに論理型言語の特性を最大限発揮できるようにするためのライブラリを用意することで,WWWなどの実際の情報源へのアクセスや 取得した情報の解析をより簡潔に記述できるようにしている.MiLog では,言語処理系の実装を根本から見直すことによって,従来では実現し得な かった移動時の効率性の実現と柔軟な移動の実現を両立している.
MiLog では,実際のアプリケーション開発を考慮し,アプリケーションを作成する上で重要度の高いユーザインタフェース部分の開発を支援するた めのシステムやライブラリの整備を進めている.これらの支援システムを用いることにより,知的情報エージェントを用いたアプリケーションの開 発効率が飛躍的に向上する.
現在,MiLog を用いてオンラインオークション支援システムなどの多数のアプリケーション開発を行っており,そのうちのいくつかは実際に研究室 内で利用されている.

MiPage

MiPageに関する研究は,モバイルエージェントの開発の手法に関する研究である. MiPageでは特に,タグ付け言語による定義と,論理型言語による宣言的記述の融合に よって,エージェントの開発をより容易にすることを目指す.
MiPageは,特に,MiLogのエージェントのユーザインタフェースをHTMLベースで作成 する際の補助をすることを目的とするシステムである.MiLogにおけるエージェント はモビリティを持つ.つまりインターネット上を移動することができる.MiLogで は,エージェントの持つユーザインターフェースにHTMLベースで記述したソースを用 いることができる.これはMiLogにおけるエージェントがWeb Serverとしての機能を もっていることを利用している.この機能を利用すれば,エージェントにアクセスす るためのクライアントアプリケーションをわざわざ用意しなくても,Webブラウザと いう一般に普及したプログラムをクライアントアプリケーションとして利用できると いう利点がある.
MiPageでは,HTMLによるユーザインターフェースの記述(ユーザインタフェースの定 義)と,ユーザインターフェース以外のLogic Program(動作ロジックの定義)か ら,ユーザインターフェースをもったMiLogのエージェントのソースプログラムを生 成する.具体的には,1)フォームからPOSTやGETで送信する際にMiLogのエージェント 側でCGI的に動作するためのLogic Programの自動生成と,送信用のフォームのHTMLの 修正とHTMLの生成機能,2)exec cmdのような埋め込みのCGI起動と書き出し機能をサ ポートする.

iML

近年モバイルエージェントは,個人毎の要求に合わせて行動する情報エージ ェント(情報抽出・検索・収集など)の実装モデルとして注目されている. 多くのモバイルエージェントシステムが提案されている.Graphical User Interface(GUI)の構築において,モバイルエージェントの特性が考慮され ず開発者の負担となっている.モバイルエージェントの枠組みも数多く研究 されている.多くの枠組みの中でGUIの実行環境を維持しつつ他の環境への 移動を簡潔に記述可能なものは少ない.GUIを持った情報エージェントを作 成するRADツールなども多くない.GUI部分が閉めるコード量は増大する傾向 にあり,効果的なGUI構築支援環境が望まれる.
UIMS(User Interface Management System)は,効果的なGUI構築支援環境の 1つである.UIMSの研究などによりプログラムとインタフェースを独立に開 発し,最終的に結合するということも可能になった.UIMSとは,文字通り機 能部分と人の間にあり,相互間の不整合の最小化,生産性,満足度などの最 大化が目的とされている.UIMS自身は,応用プログラムとGUI部分を効率よく 構築するための実行ライブラリとその構築を支援するツールから成っている.
iMLでは,論理型言語に基づくモバイルエージェントフレームワークMiLog におけるGUI構築支援環境である.iMLでは,インタフェースをダイレクトマ ニピュレーションで設計可能なため,GUI設計を効果的に行える.iMLでは, フレーム理論によりモバイルエージェントのGUI構成部品を表現している. iMLでは,環境に適したエージェント自身のGUIを提示可能である.iMLでは, 設計を行ったGUIを他の実行環境に移動させる機能を提供する.異なる環境 での動作確認,移動におけるオーバーヘッドの推定などの効果的な支援をする.

RXF

本研究では,自律した合理的なエージェントの実装のための効率的な開発環境の 実現のために,RXF(Reflective Familiar)を開発している.本開発環境は,エ ージェント記述言語,エージェントオペレーティングシステム,そしてエージェ ントフレームワーク,の 3 つから構成される.エージェント記述言語は,エー ジェントを記述するためのプログラム言語である.エージェントオペレーティン グシステムは,エージェントの基本特性を実現するための基盤となるソフトウェ アである.エージェントフレームワークは,エージェントを実装するためのライ ブラリであり,推論システムなどを含む.RXF は,実装言語として C++ を用い てコンパクトに実現されている.

図:リフレクティブエージェント

RXF では,リフレクティブエージェントの開発を支援する.リフレクティブエージェントは,リフレクションを用いて階層的に構築されたエージェントであり,右の図で表されるようなエージェントである.

リフレクティブエージェントは,動的なネットワーク環境の変化に対して自己の構成を自律的に適応させる能力を持つ.これにより,より汎用的な環境で動作可能なエージェントが構築可能になる.

本開発環境は,エージェント記述言語として,制約論理型言語による,エージェ ントの開発を支援する.本研究では,制約論理型言語は,論理式と数式を同時に 効率良く扱うことが可能と言う利点のため,他の手続き型言語,関数型言語,そ して論理型言語よりも有利であると考えている.論理式は,エージェントが用い る知識を容易に表現することが可能である.また,エージェント間のメッセージ 通信において用いられる KQML や KIF は,メッセージの表現に論理式を用おり, 論理式が扱える言語はエージェントの実装において有利といえる.さらに,制約 論理型言語は,Prolog に準拠した論理プログラムを扱うことができるので,論 理プログラムを生成する学習機構との連携が簡単に行え,エージェントの学習機 構の実装という観点からも有利である.エージェント記述言語上では,自律エー ジェントの実現に利用されるメタレベルプログラミングためのリフレクション機 構を追加した.本リフレクション機能の特筆すべき点は,メタレベル実行時のオ ーバヘッドの少なさである.これは,エージェントポートを用いてメタレベル表 現を動的に生成することによって実現した.

エージェントオペレーティングシステムは,制約論理型言語による,エージェン トの開発を支援するために,並行処理の実現のためのマルチスレッド機能そして メッセージ通信機能などを実現する.エージェントの外界へのアクセスは,パー トと呼ばれるモジュールを介して実行される.エージェントオペレーティングシ ステム上では,パートに基づくリフレクション機能により,エージェントの自己 改変などを実現する.パートによって,レガシーアプリケーションとの連係機能 や,日本語の形態素解析機能などが提供されている.エージェントオペレーティ ングシステムの機能をプログラム上から統一的に扱うための機能を実装した.本 機能により,評価器や節データベースの階層化機能やパートに基づくリフレクシ ョン機能をプログラム上から統一的に扱うことが可能になる.本機能により,モ バイルエージェントの実装も可能になる.

また,マルチエージェントシステムの開発支援において,デバッグ環境の整備も 欠かせない.マルチエージェントシステムのデバッグは,逐次実行プログラムの デバッグに比べて困難である.本研究では,マルチエージェントシステムのデバ ッグを支援するためのデバッガを開発した.本デバッガは,複数エージェントの 実行速度を調整することによって,マルチエージェントシステムのデバッグを支 援する.本デバッガは,デバッグ自に複数エージェントの実行速度を調整するこ とによって,マルチエージェントシステムのデバッグ時に問題となる probe effect を軽減し,プログラマの負担を軽減する.

マルチエージェントシステムの実装において,エージェントに適した推論機能の 実現が必要である.RXF のエージェントフレームワークでは,エージェントの実 装に適したルールベースシステムと事例ベース推論システムを推論機能として提 供する.本ルールベースシステムは,割込処理が可能なように拡張してある.本 事例ベース推論システムは,環境の変化に基づいて適切な類似性基準を構築する ための機能を実現している.

以上のような機能を用いることで,マルチエージェントシステムを効率よく構築 することが可能になる.