社団法人 電子情報通信学会

信学技報

THE INSTITUTE OF ELECTRONICS,TECHNICAL REPORT OF IEICE.

INFORMATION AND COMMUNICATION ENGINEERS

OFS2001-13, AI2001-18 (2001-07)

Shine: ネットワークコミュニティ支援システムのエージェント指向フレームワーク
吉田 仙 y亀井 剛次 y 大黒 毅 z 桑原 和宏 yy 日本電信電話 (株)z (株) エヌ・ティ・ティ エムイー
京都府相楽郡精華町光台 2{4 NTT コミュニケーション科学基礎研究所

phone: 0774{93{5235e-mail: yoshida@cslab.kecl.ntt.co.jp

ネットワークコミュニティを支援するシステムを対象とするフレームワーク Shine について報告する．Shine は，ネットワークコミュニティを支援する各種システムに統一的な枠組みを与え，それらのシステム間での部品の共有や動作の連携を可能にする．また， Shine はエージェント指向のアーキテクチャを持っており，これによってコミュニケーション範囲の分散協調管理機構が実現される．Shine のこれらの性質について述べるとともに，幾つかのシステムへの Shine の適用例を示
しフレームワークとしての有効性を確かめる．
あらましソーシャルウェア，マルチエージェントシステム，フレームワーク

キーワード

Shine: An Agent-oriented Framework of
Network Community Support Systems

Sen Yoshiday Koji Kameiy Takeshi Ohguroz Kazuhiro Kuwabaray
y Nippon Telegraph and Telephone Corporationz NTT-ME Corporation

NTT Communication Science Labs., 2{4, Hikaridai, Seika, Soraku, Kyoto, Japan
phone: +81{774{93{5235e-mail: yoshida@cslab.kecl.ntt.co.jp
A report is presented on Shine, a framework of systems that support network communities. Shine provides a uni ed structural design approach to various network community support
systems and enables them to share software components and cooperate with each other. Furthermore, Shine has an agent-oriented architecure, which achives the distributed cooperative control ofcommunication spheres. These features of Shine are described and its e ectiveness as a framework
is veri ed by applying it to several systems.
Abstract

key words socialware, multi-agent system, framework{9{

1 はじめにけになる．ソーシャルウェアのアプリケーションシステム
においても，それに適したソフトウェアアーキテクチャをネットワークコミュニティを支援するシステムの開発が提供できるフレームワークが存在すれば，上記のような利数多く進められている [2, 7]．これらのシステムはソー益を享受でき，より豊かなソーシャルウェア環境の実現がシャルウェアと呼ばれる [1]．

期待できる．

著者らは，ソーシャルウェアの様々なアプリケーション

このような動機から，我々は，様々なソーシャルウェア

システムの開発において，それらに統一的な枠組みを与アプリケーションの共通の基盤として， Shine というフえ，システム間での部品の共有や動作の連携を可能にする

レームワークを開発している．

ため，ソーシャルウェアのフレームワーク Shine の構築を進めている [9, 8]．このフレームワークの特徴は，エー
ジェント指向のアーキテクチャを持つことによりコミュニ
ケーション範囲の分散協調管理機構が実現される事である．
本報告では，第 2 章においてソーシャルウェアのエー
ジェント指向プラットフォームについて概説し，第 3 章でShine の具体的な構成を説明する．第 4 章では幾つかのア
プリケーションシステムへの Shine フレームワークの適用例について述べる．第 5章でまとめとする．

Shine の特徴は，エージェント指向のアーキテクチャを持つことである．本章の以下の部分で，エージェント指向
アーキテクチャがソーシャルウェアに有効な理由と，我々が取った Shine のアーキテクチャのエージェント化の方針について説明する．
ネットワークコミュニティは，実世界のコミュニティと比べて，地理的あるいは時間的制約を受けずにコミュニ
ケーションができるという強みがある．しかしながら，この制約からの開放は，しばしば情報過多やコミュニティの肥大化をもたらす．それを防ぐには，コミュニティに参加する人を適切に選別しコミュニケーションの範囲を適度に

2 ソー シャ ル ウェ ア の エー ジェ ン ト 指 向 フ

保つことが求められる．ソーシャルウェアでは，こうしたコミュニケーション範囲の管理に如何に取り組むかが重要

レームワークである．
ソーシャルウェアとは，ネットワークコミュニティを支

実社会では，人々は一対一の人間関係をベースとし，仲援するコミュニケーションシステムの総称であり，そのア

介や自己紹介を通じて知らない他人と会う．その結果，プリケーションは色々な種類のものが考えられる．例え人々は知人関係を柔軟に変更し，各人に見合ったコミュニ

ば，推薦システムや協調フィルタリングのような人からティを他人と協調しながら構成していく．実社会におけ人への口コミに基づく情報流通，ブレインストーミングなるコミュニケーション範囲の管理はこのように分散的かつどのインフォーマルで創造的な会話，効果的な出会いの提協調的に行われる．このようなコミュニケーション範囲の供や潜在的なコミュニティに気付かせること，親密さやコ

分散協調管理機構は，ネットワークコミュニティに持ち込

ミュニティ感覚の維持などを支援の対象とするアプリケー

んでも効果的に機能するであろう．このことから我々はションシステムがある．

コミュニケーション範囲の分散協調管理機構の実現を目指

このようにソーシャルウェアには様々なアプリケーショ

す．

ンが考えられるが，これらのアプリケーションの間には幾ところで，これまでに開発されているソーシャルウェア

つか共通する機能が存在する．すなわち，コミュニティにアプリケーションシステムの全体的なアーキテクチャの設おける各人の情報をうまく格納し利用する機能や，メン計方針に目を向けると，ほとんどのシステムではクライア

バが流動的なコミュニティに適応する柔軟なコミュニケー

ントサーバ型のアーキテクチャが採用されている．一方，ション手段といったものである．しかし，これら共通の機

情報交換や知識共有に関する分野では，サーバを持たずク

能をまとめた統一的な枠組みは，現在のところ存在しな

ライアント同士がピア・ツー・ピアで通信するマルチエー

い．

ジェントのアーキテクチャに関する研究開発が盛んに進ところで，近年，ソフトウェア開発におけるソフトウェ

められている．マルチエージェントのアーキテクチャは，

アアーキテクチャの重要性が認識されるようになってきてクライアントサーバ型のアーキテクチャと比べ，コミュニいる [5]．ソフトウェアアーキテクチャには以下のようなケーション範囲の分散協調管理機構を実現するのに適して利点があると言われる．すなわち， 1) 設計時に統一的ないる．このことから我々は，Shine をマルチエージェント

枠組みを与え， 2) 部品の共有や再利用，あるいはシステ

システムとして設計するアプローチを取る．

ムの統合や協調を可能にし， 3) 開発者間の意思疏通の助{ 10 {

我々のアプローチでは，コミュニケーションの管理機構

エージェント
プラン実行
モジュール

ひとデータベース

アプリケーション
システムA

プラン

ひとセット
アプリケーション
システムB

API

通信
モジュール
ひとデータベース
データ

アプリケーションシステムC

エージェント
ID

名前

生年月日

abc0001吉田仙19700820

ijk0789亀井剛次-

stu5432桑原和宏-

xyz0023大黒毅-

図 1: Shine エージェントの内部構造

メール
履歴

興味

(
(
(
(

キーワード
ベクトル

キーワード
ベクトル
キーワード
ベクトル

キーワード
ベクトル

) (
) (
) (
) (

メール
ボックス
メール
ボックス
メール
ボックス
メール
ボックス

)
)
)
)

やデータは各人のもとに分散配置される．つまり，Shine
フレームワークは，各ユーザに対しそのユーザの社会的イ
図 2: ひとデータベース

ンタラクションに関わるパーソナルエージェントを提供する．Shine のパーソナルエージェントは他のパーソナ
ルエージェントとピア・ツー・ピアの情報交換を行い，各ユーザに見合ったコミュニティを柔軟に構成していく．

通される．

3 Shine エージェントの内部構造

パーソナルエージェントは一対一に対応する．このため，Shine のアーキテクチャでは，ユーザとそのユーザのひとデータベースには，人のデータとその人に対応する

第 2 章で述べたように，Shine ではユーザ毎にパーソナパーソナルエージェントのデータが区別なく格納される．

の内部構造の概念図である．Shine エージェントの内部に

ソナルエージェントのデータにはエージェント ID やエー

ルエージェントが提供される．図 1 は Shine エージェント
は，ひとデータベース，プラン実行モジュール，および通信モジュールというシステムの核となるモジュール群が存在する．また，一つのエージェント上に一つまたは複数のアプリケーションシステムが載る．アプリケーションシス
テムは各モジュールの機能をアプリケーションプログラミ

人のデータには例えば名前や生年月日などがあり，パージェント間通信のためのアドレスなどがある．各アプリ
ケーションシステムはこれらの情報を参照してサービスを行い，また必要に応じて情報を更新する．
ひとデータベースにおいて，「名前」や「生年月日」，「エージェント ID」などはデータの属性と呼ばれる．まングインタフェース（API）を通じて利用し，それぞれのた，各属性のそれぞれのデータは属性値と呼ばれる．以下

サービスをユーザに提供する．

では，属性の集合を A，ある属性 a 2 A の属性値を xa 2

Shine では，様々なアプリケーションシステムが同一のAPI を利用してそれぞれのサービスを実現する．その結果，同じ API を使うソフトウェア部品をライブラリとして複数のアプリケーションシステムの間で共有，再利用す

Xa

と記す．

Shine のひとデータベースは，人と属性の組から属性値へのマッピングを行う表を持つ．図 2 にこの表の例を示す．表の各行は，一人の人間，およびその人に対応しているエージェントを表す．また各列は一つの属性を表す．つることができる．

まり，ひとデータベースに格納されている人の集合を P

以下，各モジュールについて詳説する．

とすると，この表の一つの列は P から Xa へのマッピン
3.1

グ fa : P ! Xa である．このマッピングを用いて任意のひとデータベース

人 p 2 P の属性 a の属性値 fa (p) 2 Xa を求める機能がひとデータベースは，人およびパーソナルエージェント

API として提供される．

に関するデータを保持する．保持されるデータには，エー

ひとデータベースに格納されるデータの形態は様々であジェント自身やそのエージェントが対応しているユーザ

る．エージェント ID やユーザの名前などの単純な数値やの情報と，そのエージェントが知っている範囲の他のエー

文字列のデータの他に，複雑な形態を持つものも含まれジェントおよびそれらが対応しているユーザの情報が含まる．例えば，情報検索の分野で人の興味を概括的に表すのれる．これらのデータはエージェント間通信により随意流に用いられるキーワードベクトルや，ある人から受け取っ{ 11 {

たメールを溜めておく「メールボックス」なども，人に関のコミュニティのメンバであるかどうかを判定する関数

するデータとしてデータベースに格納することが考えられm

る．Shine のひとデータベースは，こうした様々な形態の: Xa 2 Xb 2 1 1 1 ! ftrue; falseg を用いて，S

データも，構造化された属性値として表に格納できる．

= fp j m(fa (p); fb (p); : : :) = trueg

表に格納される属性のうち，値から人もしくはその人にのように取り出せる仕組みを用意する．ひとセットは，メ対応するエージェントを特定することが出来るものはキーンバの判定に影響を与える属性 a; b; 1 1 1 の属性値が更新さ属性と呼ばれる．つまり，れたことを知らせるイベントを受けてメンバを更新する．

Xkey

この機構はコミュニティの構成の動的な変化への追随を可= ffkey (p) j p 2 P gに対し， f 01 : Xkey ! P という逆のマッピングが存在能にする．
ソーシャルウェアのアプリケーションシステムの多く

key

し，

は，メッセージをコミュニティのメンバーに同報する機能

01 (xkey )xkey = fkey (p) , p = fを必要とする．ユーザ集合を興味で区切るクライアント

keyというよ うに属性 値と人が一 対一に対 応するよう な属性 key がキー属性である．例えば「エージェント ID」はキー属性であり，その値は，エージェント間通信における送信者，受信者の特定や，ひとデータベースの内容のファ
イルへの書出し及びファイルからの読込みにおける識別子などに用いられる． API としては，属性値 xkey 2 Xkey

01 (xkey ) 2 P を検索する機能が提供される．
を持つ人 fkey

Shine では，人から属性値へのマッピング fa : P ! Xa

サーバ型のアーキテクチャと異なり，コミュニケーション
範囲を分散協調管理するアプローチを取るアーキテクチャ
では，同報の範囲の決定が自明ではない．Shine エージェ
ントは，同報における宛先のリストにひとデータベースのひとセットを用いることにより，同報の範囲の決定を柔軟
に行える．
3.2

通信モジュール

01 : Xkey ! P
も，キー属性値から人への逆マッピング fkey

通信モジュールは他のエージェントの通信モジュールとも，ハッシュを用いて高速に検索できるようにする．これ

ピア・ツー・ピアで接続され，互いにメッセージを交換すにより，例えば「名前」というキー属性の値が 吉田 である．

る人の「興味」を引く，つまり f興味(f 01 (吉田)) を求名前
めるといったことが簡単かつ高速にできる API が提供される．

ソーシャルウェアの様々なアプリケーションシステムでは，それぞれが前提としている通信環境も多種多様である．Shine の通信モジュールは，このような通信環境の違ひとデータベースはイベント発生機能を持つ．ある人のいを吸収し通信モジュール以外のモジュールやアプリケー

属性値が追加，変更，または削除されたときには，イベン

ションシステムに影響を与えないようにするために，図 3

トが発生する．プラン実行モジュールなどの他のモジューに示すように下位層の通信プロトコルに依存する部分とし

ルがこれらイベントの発生を監視し，それらに呼応してない部分に分かれている．下位層通信プロトコルに依存す動作する．このイベント通知機構は，複数のモジュール間る部分をチャネルと呼ぶ．チャネルは，送受するメッセー

での協調や，さらには複数のアプリケーション間の連携をジの，Shine 内での形式と下位層通信プロトコルに合った可能にする．例えば，あるエージェントからそのユーザの形式との相互変換を行い，また接続の確立や切断を管理す

興味の変化の通知を受け，それに相当するキーワードベク

る．

トルが変更されると，その変更を知らせるイベントが発生

チャネル間の通信は，下位層のネットワークのトポロジ

し，それを検出したアプリケーションシステムが表示画面

によっては，必ずしもピア・ツー・ピアではなくルータ等を更新するといった具合である．

を介した集中型となる場合もありうる．しかしこれはチャ

ソー シャ ル ウェ ア は コ ミュ ニ ティ を 対 象 と す る のネル層での物理的なネットワークトポロジが集中型である

で，Shine フレームワークは，個々のエージェントだけという事であり，Shine エージェント間通信のレベルの論

でなく複数のエージェントが形成するコミュニティも明理的なトポロジはあくまでピア・ツー・ピアの構成をして示的に扱えるような仕組みを必要とする．コミュニティ

いる．したがって，他エージェントのアドレスの管理等はを扱 う た め に，Shine

各エージェントに任されている．

の ひ と デー タ ベー ス は 各 コ ミュ

ニティに対し図 2 に示すような「ひとセット」を定義

他のエージェントのアドレスは，ひとデータベースにし，個人情報の集合を対象にした操作を容易にする．つ

保持されている．プラン実行モジュール等の他モジューを，そルは，送信したいメッセージを作成し，ひとデータベー

まり，あるコミュニティのメンバの集合 S

P{ 12 {

エージェントX

そのメッセージタイプに従って行われる．このメッセージ

エージェントY

他のモジュール

分配機構は，各プランが特定のメッセージタイプのメッ他のモジュール

セージが受信されたときに起動されるメッセージハンド
Shine
エージェント間
通信層
下位
通信プロトコル層

チャネル
非依存部

チャネル
非依存部

チャネル

チャネル

通信モジュール

通信モジュール

ラをプラン実行モジュールに登録することによって成される．
ひとデータベースに格納されている値の更新は，その更新を伝えるイベントを各プランが受け取ることによって，HTTP，SMTP，ORBなど

エージェントの動作に反映される．この仕組みを用いて複数のプランが連携することも可能である．すなわち，ある図 3: チャネル

プランがある人の属性値を変えると，別のプランは，それが変わったことによって発生するイベントを受け取ること
スに格納されている人 p 2 P をその宛先としてメッセー

によって，属性値の変化に対応する．

ジ に 付 加 す る． 通 信 モ ジュー ル の チャ ネ ル は p か ら そユーザからの入力の受付に関しては，各アプリケーショの下 位層 通 信プ ロト コル にお け るア ドレ スを ひと デーンシステムがそれぞれのユーザインタフェースを用意し，

タ ベー ス を 使っ て fアドレス (p) の よ う に し て 調 べ， 得

それをアプリケーション独自のプランと結び付けることでられ た アド レ ス に 送 信 す る． そ の とき， 自 身 の ア ド レ成される．

ス fアドレス (自分) を送信者 アドレ スとして メッセージに付加する．メッセージを受信したエージェントのチャ
ネル は，送 信 者ア ドレ スか らそ の アド レス に対 応す る

4 アプリケーションシステムへの Shine の適
用例

エー ジェ ン ト の ひ と デー タ ベー ス に 於 け る エ ン ト リ を

01(送信者アドレス) のようにして引き，それを付アドレス
加したメッセージをプラン実行モジュールに渡す．
f

この章では，ソーシャルウェアのアプリケーションシス
テムへの Shine フレームワークの適用について，具体例を

アドレスの形式は下位層通信プロトコルによって異な用いて説明する．題材として著者らが開発している二つのるので，チャネルがアドレスを格納するのに使う属性もシステム Community Organizer と「ひとのあかり」を取それに伴って変わる．例えば下位層通信プロトコルとして HTTP を用いるチャネルは URL アドレスという属性

上げる．我々はこれら二つのシステムおよび Shine をプロ

グラミング言語 Java1 を用いて実装している．これら二つを使い， SMTP を用いるチャネルはメールアドレスといのシステムの実装において Shine の枠組みが上手く当てはう属性を使う．

まりフレームワークとして有効に機能することを示す．

3.3

プラン実行モジュール

4.1

Community Organizer

Community Organizer は，新たなネットワークコミュ

エージェントの行動の規則を記述したものをプランと呼ぶ．Shine では，複数のプランが，プラン実行モジュール

ニティの形成を支援するためのコミュニケーションシステ

内において並行に動作する．これらのプランの中には，各ムである [4, 3]．このシステムは，興味を共有する人々をアプリケーションがそれぞれのサービスを実行するために

コミュニティの潜在的なメンバと見做し，それらの人々が独自に用意するプランと，Shine がフレームワークとして出会い会話することができる場を提供する．
図 4 は Community Organizer が各ユーザに提供する

提供する，基盤的なタスクを行うプランがある．
各プランは，色々な事象をきっかけとして，それに呼応

画面の例である．図中の表示パネルは，コミュニティの潜するように行動する．動作のきっかけとなる事象には，他在的なメンバが出会い会話するための場として提供されのエージェントからのメッセージの受信，ひとデータベー

るユーザインタフェースである．このパネルには，ベクトスに保持されている値の更新，ユーザからの入力などがあル空間モデルにおける各キーワードを軸とする多次元空間

る．

を，ある手法により 2 次元平面に射影したものが表示されプラン実行モジュールは，通信モジュールから渡される

る．ユーザはこの表示パネル上にアイコンを置くことがで受信メッセージを，適切なプランに分配する機能を持つ．

き，それは他のユーザの表示パネル上にも現れる．各アイ

各メッセージが，その内容の記述の他にメッセージタイプ

コンにはキーワードベクトルが付与され，その値に従ってを指定するフィールドを持っており，メッセージの分配は{ 13 {

1 Java は Sun Microsystems 社の登録商標である．

表示パネル

中心のキーワードベクトルの値変更用スライドバー

コンに添付されたメッセージを読むことができ，それに対する返信を添付した新しいアイコンをそのアイコンの近くに置くことによって返事をすることができる．
我々は当初， Community Organizer を Shine フレームワークには依存しない独立したシステムとして開発した．
しかし，以下に述べるような方法で， Community Orga-nizer を Shine フレームワークに合わせて再構築することができる．

Community Organizer における興味アイコンは，それを置いたユーザ，それが持つキーワードベクトル，および添付されたメッセージという情報を持っている．これをShine のひとデータベースに格納するときには，各属性値がリスト構造になっている「興味アイコンリスト」という属性を用意する．そしてキーワードベクトルと添付されたメッセージをひとまとめにした形態のデータを，「興味アメッセージウィンドウ

イコンリスト」属性の列の，そのアイコンを置いたユーザ
図 4: Community Organizer の画面表示例に相当する行にあるリストの中に格納する．
興味アイコンを画面に表示するときには，各ユーザの興味アイコンのリストの要素を「興味アイコンリスト」属性

計算されるパネル上の点にアイコンが表示される．このとの列から取りだし，「アイコン画像」属性の列にあるユー

き，パネル上でのアイコン間の相対的な距離は，それぞれザを表すアイコンの画像ファイルを用いて表示する．

のキーワードベクトル間の類似度をもとに，似たキーワー
ドベクトルを持つアイコン同士は近くなるように決定される．

Community Organizer の表示パネルには，データベースに格納されている全ての興味アイコンのうち，中心の
キーワードベクトルに近いキーワードベクトルを持つもの

表示パネルにおける中心点は，それに対応するキーワーだけが表示される．この選択に，ひとデータベースのひと

ドベクトルを持っており，それは表示パネルの横に設置さセットを用いることができる．すなわち，メンバを判定すれた一連のスライドバーの位置で示される．ユーザはこのる関数が，中心のキーワードベクトルと各興味アイコンのスライドバーを操作することによって中心のキーワードベ

キーワードベクトルの間の余弦尺度の値のうち上位に来る

クトルを変えることができる．中心のキーワードベクトル

ものだけを選ぶものであるようなひとセットを用意し，そが変わるとそれにつれて表示パネル全体のアイコンの配置のメンバをパネルに表示する．

も移動する．また，ユーザが新たに置くアイコンに付与さ元々の Community Organizer は，他の多くのソーシャ

れるキーワードベクトルには，中心のキーワードベクトル

ルウェアアプリケーションシステムと同様，クライアンの値が設定される．

トサーバ型のアーキテクチャで設計されていた．しかし，ユーザは，潜在的なコミュニティを見つけるために，中第 2 章で述べたように，Shine は柔軟なエージェント指向

心のキーワードベクトルをスライドバーで変化させてベアーキテクチャを採用している．Shine フレームワーク適

クトル空間内を「見てまわる」．そして，例えば \旅行"

用後の Community Organizer においては，サーバは存在と \食べ物" の値が大きくなるようスライドバーを動かせず，各クライアントプログラムはサーバが持っていた機し，そのようなキーワードベクトルを持つアイコンを新た

能の一部が組み込まれエージェント化される．それらエーに置くと，「私は旅行と食べ物に興味がある」ということ

ジェントは， Community Organizer の動作に必要な個人を他人に表明することになる．つまり， Community Or-

情報を他のエージェントとピア・ツー・ピアで交換する．

ganizer の表示パネルは，興味の表明を表す「興味アイコ

プラン実行モジュール内の Community Organizer プラン」が詰まったベクトル空間を可視化する．

ンは，ユーザが新たに作成した興味アイコンを他のエー

さらに，ユーザがメッセージを書き，それを興味アイコ

ジェントに送信し，また他のエージェントから送られてきンに添付できるようなインターフェースが提供されていた興味アイコンをひとデータベースに格納する等の動作をる．他のユーザはアイコンをクリックすることでそのアイする．

{ 14 {

各アイコンは一人の知人を表し
その人の現在の気分を表す色がついている

pingを受信したことを知らせる
アニメーション

ばれるメッセージ交換装置から成っており，メッセージは
全てリピータを介して送られる集中型のネットワークトポロジとなっている．リピータは，あるエージェントがメッ
セージを送ろうとした際，宛先のエージェントがメッセージを受け取れる状況でなかった場合に，送られるべきメッ
セージを一時的に溜めておき，後にメッセージを受け取れるようになった時点で配送する機能を持つ．
このような「ひとのあかり」のメッセージ交換機構をShine フレームワークに当てはめた場合，リピータはチャネルに隠蔽される．エージェント間のネットワークの論理表示する
アイコンセットの切替え的なトポロジは，下位通信プロトコル層ではリピータを中

pingを送信しようとしている 現在の自分の気分を表す色ことを示すアニメーション

心とする集中型，エージェント間通信層ではピア・ツー・
ピア型となる．また，チャネルを，リピータを介さないピ

図 5: 「ひとのあかり」の画面例

ア・ツー・ピア型のものに置き換えることも容易に出来
る．

4.2

ひとデータベースには，名前，色，メールボックスとひとのあかりいった属性を持たせる．あるユーザが別のユーザへ ping

「ひとのあかり」は，コミュニティのメンバが互いに存を送信したときの，それぞれのひとデータベースにおける在や気分を伝えあうことにより，コミュニティ感覚を維持

値の更新は次のように行われる．送信者エージェントのひし発達させるための，従来になくシンプルなメディアによとデータベースにおける送信者のエントリを p，宛先のエるコミュニケーションシステムである [6]．

ントリを q ，宛先エージェントのひとデータベースにおけ「ひとのあかり」の機能を直感的に説明すれば，人間をる送信者のエントリを p0，宛先のエントリを q0 とする．

対象とする ping コマンドであるといえる．つまり，人同送信者が，画面上の宛先のアイコンをクリックすると，士で ping パケットを交換することで互いの存在を伝えあ

ユーザインタフェースはそのイベントを受けて送信者の気う．また，単なる存在伝達に加えて，「ひとのあかり」で分を表す色 c = f色 (p) を宛先 q に送るよう通信モジュー交わされるパケットは送信者の現在の気分を色で表現したルに依頼する．通信モジュールは，それを宛先エージェン

情報も伝える．図 5 は「ひとのあかり」の画面表示例であトの通信モジュールに届ける．これを受け取った宛先エー

る．

ジェントの通信モジュールは，送信者のアドレスから，宛

このシステムの動作は以下のようになる．まずユーザが自身の現在の気分を表す色を選択する．また，対象とする
人を数名指定する．指定された人は画面内に球状のアイコンとして表示される．あるアイコンをダブルクリックすると，アイコンに向かって同心円が縮んでいくアニメーションが行われ，次いでそのアイコンに対応する人のパーソナ
ルエージェントに ping が送られる．パケットには，送信先エージェント内のひとデータベースにおける送信者のエントリ p0 を割出し， c と共にプラン実行モジュール内の「ひとのあかり」プランに伝える．プランは， p0 の色
色 (p0) を c に更新する．この更新はユーザインタフェー
スに伝わりアイコンの色が変えられる．同時に，送られてf0

きた ping メッセージに対する返事が， q0 の気分を表す色
色 (q0) と共に p0 に送られる．
「ひとのあかり」では，表示するアイコンを何個かずつ

f

者の現在の気分を表す色の情報が付加される．逆に，ある人から ping が送られてくると，今度はその人を表すアイセットにして切替えることができる．アイコンのセット

コンから同心円が拡がっていくようなアニメーションが行

は，ひとデータベースのひとセットをそのまま対応させる

われ，またそのアイコンの色が ping が伝えてきたものにことができる．

変わる．同時に，送られてきた ping への返信の ping が，今の自分の気分として設定されている色と共に自動的に送

4.3

二つのアプリケーションシステムの Shine 上での実現に関する考察られる．
「ひとのあかり」も Community Organizer と同様に我々の実装において，Shine フレームワークの Java ク

Shine とは独立に作られた．元のシステムは，個々のユー

ラスファイルの合計，Shine 部分とその他に既存のクラス

ザに対応するパーソナルエージェント群と，リピータと呼ライブラリを利用している部分を除いた Community Or-{ 15 {

ganizer 自体の Java クラスファイルの合計，および Shinefor supporting network communities. Comm. ACM,

部分を除いた「ひとのあかり」自体の Java クラスファイ

42(3):55{61, 1999.

ルの合計を比較した結果， Community Organizer では全体の約 19% が，「ひとのあかり」では約 53% が Shine フ[2] T. Ishida ed. Community Computing | Collaboration over Global Information Networks. John Wiley

レームワークによって提供された．

& Sons, 1998.

ところで，ソーシャルウェアのためのフレームワークを提供することの目的の一つに，アプリケーションシステ

[3] K. Kamei, E. Jettmar, K. Fujita, S. Yoshida, andム間で連携を可能にすることがある． Community Orga-

K. Kuwabara. Community organizer: Supporting

nizer と「ひとのあかり」でも，一つの Shine エージェン

the formation of network communities through spa-

ト上で両者を並行に動作させることができる．このとき，

tial representation. In Proc. 1st SAINT 2001, pp.

ひとデータベース，通信モジュール，プラン実行モジュー207{214. IEEE Computer Society, 2001.

ルは一つのものが共有される．ひとデータベース内のデー
タに関しては，各アプリケーションシステムが独自に属性[4] 亀井, 吉田, 大黒, 服部. Community Organizer: ネッ
トワークコミュニティの形成支援. ヒューマンインタを持つ他，共通の属性を持つことによって両システムを連

フェースシンポジウム'99 論文集, pp. 333{336, 1999.

携させることができる．例えば「ひとのあかり」の pingの頻度を「親しさ」のパラメータとして Community Or-[5] 岸, 野田. ソフトウェアアーキテクチャ. コンピュータ
ソフトウェア, 18(2):68{77, 2001.

ganizer と共有し， Community Organizer はそれを表示
パネルにおけるアイコンの配置に利用するといったことが考えられる．通信モジュールについてはチャネルも含めて[6] T. Ohguro, S. Yoshida, and K. Kuwabara. Gleamsof People: Monitoring the presence of people with

共有される．交換されるメッセージの各アプリケーション

multi-agent architecture. In Approaches to Intelli-

システムへの振り分けは，両者が別々のメッセージタイプ

gent Agents | Proc. 2nd PRIMA 1999, Vol. 1733

をメッセージに付加することにより成される．

of LNAI, pp. 170{182. Springer-Verlag, 1999.
[7] 梅木. ネットワークコミュニティ形成支援技術. 人工知

5 おわりに能学会誌, 14(6):943{950, 1999.

本報告では，ソーシャルウェアのエージェント指向フ[8] S. Yoshida, K. Kamei, T. Ohguro, K. Kuwabara,

レームワークについて論じ，著者らが開発しているフレー

and K. Funakoshi. Building a network community

ムワーク Shine の具体的な構成について述べた．また，応support system on the multi-agent platform Shine.

用例として， Community Organizer と「ひとのあかり」

In Design and Applications of Intelligent Agents |への Shine の適用について述べた．これら二つのシステム

Proc. 3rd PRIMA 2000, Vol. 1881 of LNAI, pp. 88{の実装において Shine の枠組みが上手く当てはまりフレー

100. Springer-Verlag, 2000.

ムワークとして有効に機能することを示した．

Shine には多くの課題が残されている．プラン実行モ[9] S. Yoshida, T. Ohguro, K. Kamei, K. Funakoshi,

ジュールにおけるプランの動作については，幾つかのプランを実際に作成することを通じ，より詳細な機能要件を明らかにしていく必要がある．また，プライバシ管理機構についても取り組まなければならない．さらに， Commu-

nity Organizer と「ひとのあかり」の間のデータ共有による連携を実装し，アプリケーションシステム間連携を実証
したい．

参考文献
[1] F. Hattori, T. Ohguro, M. Yokoo, S. Matsubara,
and S. Yoshida. Socialware: Multiagent systems{ 16 {and K. Kuwabara. A platform for making network
community support systems in a cooperative distributed architecture. In Proc. 7th ICPADS 2000:
Workshops, pp. 441{446. IEEE Computer Society,2000.