(57)【要約】問題解決および個別指導のコンピュータシステムのアーキテクチャに、それぞれが知識ベースを有する複数の領域依存エージェント（２２から３０）と、複数の領域独立エージェント（図２）と、各エージェントに割り当てられた専用の黒板が含まれる。エージェントは、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰＯ）リンク（４３ａから４３ｊ）を介して専用黒板と通信し、メッセージは、黒板エージェント（３８）によって黒板の間で移動される。領域独立エージェントに、エージェントの間でトークンを渡す制御エージェント（３６）が含まれる。エージェントは、トークンを有する時に限って機能することができる。領域独立エージェントには、ユーザインターフェースエージェント（３２）、データベースエージェント（３４）、および個別指導エージェント（４０）も含まれる。テストセッションまたは個別指導セッション中の学生のアクションに関する情報を保管するトレーニング／テストデータリポジトリ（４４）および学生データベース（４６）も存在する。このアーキテクチャを複数の計算機で使用して、地理的に異なるユーザが同時にロールプレイできるようにすることができる。
2004527859.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムのアーキテクチャであって、
ａ）複数の領域依存エージェントであって、前記領域依存エージェントのそれぞれが、知識ベースを含む、複数の領域依存エージェントと、
ｂ）複数の領域依存エージェント黒板であって、前記複数の領域依存エージェント黒板のそれぞれの１つが、前記複数の領域依存エージェントのそれぞれの１つに専用である、複数の領域依存エージェント黒板と、
ｃ）黒板エージェントであって、前記黒板エージェントが、前記複数の領域依存エージェント黒板との間でメッセージを転送する、黒板エージェントと、
を含み、前記複数の領域依存エージェントが、その専用の黒板にメッセージをポストし、その専用の黒板からメッセージを読み取ることによって、互いに通信することができる
アーキテクチャ。
【請求項２】
制御エージェントおよびトークンをさらに含み、前記複数の領域依存エージェントおよび前記黒板エージェントのそれぞれが、それがトークンを有する時に限って機能するように、前記制御エージェントが、前記複数の領域依存エージェントおよび前記黒板エージェントの間でトークンを選択的に渡す、請求項１に記載のアーキテクチャ。
【請求項３】
コンピュータシステムが、個別指導用であり、さらに、個別指導エージェントおよび専用個別指導エージェント黒板を含み、前記個別指導エージェントが、専用個別指導エージェント黒板および複数の領域依存エージェント黒板を介して領域依存エージェントと通信し、コンピュータシステムのユーザが個別指導セッションに関して領域依存エージェントの間で選択できるようにする、請求項１に記載のアーキテクチャ。
【請求項４】
さらに、データベースエージェント、専用データベースエージェント黒板、およびデータベースを含み、前記データベースエージェントが、前記データベースから専用データベースエージェント黒板および専用個別指導エージェント黒板を介して前記個別指導エージェントにデータを供給し、前記データベースエージェントが、前記データベースへのポストのために専用個別指導エージェント黒板および専用データベースエージェント黒板を介して前記個別指導エージェントからデータを受け取る、請求項３に記載のアーキテクチャ。
【請求項５】
個別指導セッション中のユーザのアクションを学生データベースに記録できるようにするために、データベースが、学生データベースである、請求項４に記載のアーキテクチャ。
【請求項６】
さらに、ユーザディスプレイ、グラフィカルフロントエンド、ユーザインターフェースエージェント、および専用ユーザインターフェースエージェント黒板を含み、前記ユーザインターフェースエージェントが、複数の領域依存エージェント黒板、専用ユーザインターフェースエージェント黒板、およびグラフィカルフロントエンドを介して、領域依存エージェント知識ベースからの情報をユーザディスプレイに表示する、請求項１に記載のアーキテクチャ。
【請求項７】
前記ユーザインターフェースエージェントが、ユーザから入力も受け取り、これを、専用ユーザインターフェースエージェント黒板および複数の領域依存エージェント黒板を介して適当な領域依存エージェントに向ける、請求項６に記載のアーキテクチャ。
【請求項８】
複数の領域依存エージェントのそれぞれが、伝送制御プロトコル／インターネットプロトコルリンクを介してその専用黒板と通信する、請求項１に記載のアーキテクチャ。
【請求項９】
各領域依存エージェントが、総合的なコンピュータシステムの状態を示す世界モデル、コンピュータシステムに関してエージェントがどのように実行しなければならないかを示す領域モデル、およびエージェントの内部状態を示すローカルモデルを特徴とする、請求項１に記載のアーキテクチャ。
【請求項１０】
コンピュータシステムのアーキテクチャであって、
ａ）複数の領域依存エージェントであって、前記領域依存エージェントのそれぞれが、知識ベースを含む、複数の領域依存エージェントと、
ｂ）複数の領域独立エージェントと、
ｃ）複数の黒板であって、前記複数の黒板のそれぞれの１つが、前記複数の領域依存エージェントまたは領域独立エージェントのそれぞれの１つに専用である、複数の黒板と、
ｄ）前記複数の黒板の間でメッセージを転送する手段と
を含み、これによって、前記複数の領域依存エージェントおよび領域独立エージェントが、その専用の黒板にメッセージをポストし、その専用の黒板からメッセージを読み取ることによって、互いに通信することができる
アーキテクチャ。
【請求項１１】
メッセージを転送する手段が、黒板エージェントである、請求項１０に記載のアーキテクチャ。
【請求項１２】
トークンをさらに含み、前記領域独立エージェントが、制御エージェントを含み、前記複数の領域依存エージェントおよび領域独立エージェントのそれぞれが、それがトークンを有する時に限って機能するように、前記制御エージェントが、前記複数の領域依存エージェントおよび領域独立エージェントの間でトークンを選択的に渡す、請求項１０に記載のアーキテクチャ。
【請求項１３】
コンピュータシステムが、個別指導用であり、複数の領域独立エージェントが、個別指導エージェントを含み、複数の黒板が、専用個別指導エージェント黒板を含み、前記個別指導エージェントが、専用個別指導エージェント黒板および複数の黒板を介して領域依存エージェントおよび領域独立エージェントと通信し、コンピュータシステムのユーザが個別指導セッションに関して領域依存エージェントの間で選択できるようにする、請求項１０に記載のアーキテクチャ。
【請求項１４】
データベースをさらに含み、複数の領域独立エージェントが、データベースエージェントを含み、複数の黒板が、専用データベースエージェント黒板を含み、前記データベースエージェントが、前記データベースから専用データベースエージェント黒板および残りの複数の黒板を介して前記領域依存エージェントおよび領域独立エージェントにデータを供給し、前記データベースエージェントが、前記データベースへのポストのために前記領域依存エージェントおよび領域独立エージェントから専用個別指導エージェント黒板および残りの複数の黒板を介してデータを受け取る、請求項１３に記載のアーキテクチャ。
【請求項１５】
個別指導セッション中のユーザのアクションを学生データベースに記録できるようにするために、データベースが、学生データベースである、請求項１４に記載のアーキテクチャ。
【請求項１６】
さらに、ユーザディスプレイおよびグラフィカルフロントエンドを含み、複数の領域独立エージェントが、ユーザインターフェースエージェントを含み、複数の黒板が、専用ユーザインターフェースエージェント黒板を含み、前記ユーザインターフェースエージェントが、専用ユーザインターフェースエージェント黒板、残りの複数の黒板、およびグラフィカルフロントエンドを介して領域依存エージェント知識ベースからの情報をユーザディスプレイに表示する、請求項１０に記載のアーキテクチャ。
【請求項１７】
前記ユーザインターフェースエージェントが、ユーザから入力も受け取り、これを、専用ユーザインターフェースエージェント黒板および残りの複数の黒板を介して適当な領域依存エージェントおよび領域独立エージェントに向ける、請求項１６に記載のアーキテクチャ。
【請求項１８】
複数の領域依存エージェントおよび領域独立エージェントが、伝送制御プロトコル／インターネットプロトコルリンクを介してその専用黒板と通信する、請求項１０に記載のアーキテクチャ。
【請求項１９】
コンピュータシステムアーキテクチャ内の第１エージェントと第２エージェントとの間での通信の方法であって、
ａ）専用第１エージェント黒板を有する第１エージェントを設けるステップと、
ｂ）専用第２エージェント黒板を有する第２エージェントを設けるステップと、
ｃ）黒板エージェントを設けるステップと、
ｄ）第１エージェントが、専用第１エージェント黒板にメッセージをポストするステップと、
ｅ）黒板エージェントを用いて専用第１エージェント黒板から専用第２エージェント黒板にメッセージを移動するステップと、
ｆ）第２エージェントが、専用第２エージェント黒板からメッセージを読み取るステップと
を含む方法。
【請求項２０】
ｇ）制御エージェントおよびトークンを設けるステップと、
ｈ）トークンを第１エージェントに渡すために制御エージェントを使用するステップと、
ｉ）第１エージェントがトークンを有する間にステップｄ）を実行するステップと、
ｊ）第１エージェントから黒板エージェントにトークンを渡すために制御エージェントを使用するステップと、
ｋ）黒板エージェントがトークンを有する間にステップｅ）を実行するステップと、
ｌ）黒板エージェントから第２エージェントにトークンを渡すために制御エージェントを使用するステップと、
ｍ）第２エージェントがトークンを有する間にステップｆ）を実行するステップと
をさらに含む、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２０００年１２月２２日に出願した米国仮出願番号６０／２５７，９９６号の優先権を主張するものである。
本発明は、全般的には個別指導および問題解決のシステムに関し、具体的には、個別指導および問題解決のコンピュータシステムの複数エージェント共同アーキテクチャに関する。
【背景技術】
【０００２】
個人向けのシナリオベースのトレーニングを提供するコンピュータシステムが、既知である。そのようなシステムが、米国特許第５，５９７，３１２号（ＢＬＯＯＭ他）に示されている。さらに、医療分野でのコンピュータ支援個別指導を提供するシステムも既知である。そのようなシステムが、米国特許第４，９４５，４７６号（ＢＯＤＩＣＫ他）で開示されている。しかし、これらのシステムは、「黒板」コンピュータシステムアーキテクチャの利益を利用することができない。
【０００３】
コンピュータシステムアーキテクチャに関して使用される単語「黒板」は、長年、外傷医師が、来院する患者を診断し、処置してきた医療外傷領域から借用されるようになったものである。外傷病棟に来る患者は、深刻な傷または病気を有し、応急手当を必要とする。そのような場合に、単独の医師が患者の処置の作業全体を扱うことは不可能である。これは、各医師が、特定の分野の専門家であり、単一の分野が患者の診断および処置に十分であることがないからである。したがって、患者を扱うために、医師のチームの側での調和のとれた努力が必要である。医師が、患者をつかみ、診断／発見を開始するか、診断／発見を伝えるのと同時に話す場合に、その結果は、混沌（または、おそらくは誤診につながる情報の消失）になる。
【０００４】
秩序を保つために発明されたシステムは、白いメモ帳を有することであり、このメモ帳は、患者のストレッチャに取り付けられ、各医師が、このメモ帳に、自分の診断／発見と、どの検査および薬物投与が推奨されるかを書き込み、その結果、各医師が、すべての他の前の医師が言い、指示したものを見られるようになる。これは、治療と診断の衝突のゆえに、極度に重要であった。さらに、患者が検査された順序を維持することが非常に重要であった（すなわち、脳の専門医は、診断を下すか発見を記載する前に、血圧情報などを必要とする）。この分散協力問題解決の全般的な方式は、黒板アーキテクチャという広義の用語の下で、人工知能（ＡＩ）の分野で採用されるようになった。
【０００５】
黒板アーキテクチャを使用して、個別指導および診断／問題解決を提供するコンピュータシステムが、従来技術に存在する。たとえば、米国特許第５，４４８，７２２号（ＬＹＮＮＥ他）に、複数の電子黒板および診断モジュールの両方を使用するコンピュータベースの診断システムが既知であることが示されている。実際に、米国特許第５，１０１，３６２号（ＳＩＭＯＵＤＩＳ）で、通常のエクスパートシステムに、知識ベース、「黒板」とも称する作業メモリ、および制御部分または推論エンジンが含まれることが示されている。Ｓｉｍｏｕｄｉｓの’３６２特許に、黒板に存在するデータに対する演算を効果的に実行する複数の知識ソースを有するエクスパートシステムが示されている。
【０００６】
しかし、上で引用し、説明した特許は、個別指導アプリケーションで複数のエージェントおよび黒板を使用するアーキテクチャを開示していない。したがって、個別指導環境での複数エージェント共同処理の利点および利益を提供できるアーキテクチャの必要が存在する。具体的に言うと、複数のエージェントおよび黒板を使用し、個別指導エージェント、学生データベース、トレーニング／テストデータベース、および複数の領域依存エージェントを含み、領域依存エージェントのそれぞれが、特定の分野（領域）の専門知識を有する、個別指導システムのアーキテクチャの必要が存在する。
【０００７】
さらに、従来技術の個別指導システムは、ユーザ中心ではなく情報中心になる傾向がある。ユーザ中心のシステムは、特定のユーザの必要により多く応じるように調整することができ、したがって、ユーザに、情報のより多くの保有を提供する。したがって、個別指導システムをユーザ中心にすることができるようにするアーキテクチャの必要が存在する。
【０００８】
多くの従来技術のシステムは、修正および更新が困難でもある。しばしば、システムソフトウェア全体を、ダウンロードし、かつ／または置換しなければならない。多数のエージェントを特徴とするモジュラアーキテクチャを有するシステムでは、特定のエージェントを独立に修正または更新することができ、あるいはエージェント全体を一緒に追加または除去することができるという点で、簡単な更新および修正が可能である。さらに、モジュラアーキテクチャによって、ユーザが簡単にシステムのエージェントと入れ代わることができるロールプレイが容易になる。
【０００９】
多くの従来技術のシステムでは、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）リンクを使用して、アーキテクチャエージェントが互いに通信できるようにすることも行われない。そのような配置によって、地理的に異なるユーザがロールプレイまたは他の対話についてシステムに同時にアクセスする能力が与えられる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、本発明の目的は、複数のエージェントおよび黒板を特徴とする問題解決および個別指導のアーキテクチャを提供することである。
本発明のもう１つの特徴は、ユーザ中心である問題解決および個別指導のアーキテクチャを提供することである。
【００１１】
本発明のもう１つの特徴は、モジュラである問題解決のアーキテクチャを提供することである。
本発明のもう１つの特徴は、エージェントの間での通信を提供するのにＴＣＰ／ＩＰリンクを使用するアーキテクチャを提供することである。
【課題を解決するための手段】
【００１２】
本発明は、それぞれが知識ベースを含む複数の領域依存エージェント、複数の領域独立エージェント、および複数の黒板を含む、個別指導および問題解決のシステムのアーキテクチャである。黒板のそれぞれの１つが、領域依存エージェントまたは領域独立エージェントのそれぞれの１つに割り当てられるか、それ専用である。黒板エージェントは、黒板の間でメッセージを転送し、その結果、領域依存エージェントおよび領域独立エージェントが、専用黒板にメッセージをポストし、専用黒板からメッセージを読み取ることによって、互いに通信できるようにする。領域依存エージェントおよび領域独立エージェントは、伝送制御プロトコル／インターネットプロトコルリンクを介してそのエージェントの専用黒板と通信する。
【００１３】
セッション中に、トークンが生成され、領域独立エージェントに、制御エージェントが含まれ、この制御エージェントは、領域依存エージェントおよび領域独立エージェントの間でトークンを選択的に渡し、その結果、各エージェントが、トークンを有する時だけ機能するようにする。領域独立エージェントには、個別指導エージェントも含まれ、この個別指導エージェントは、黒板を介して領域依存エージェントおよび領域独立エージェントと通信して、コンピュータシステムのユーザが、個別指導セッションについて領域依存エージェントの間で選択できるようにする。
【００１４】
このアーキテクチャには、学生データベースおよびトレーニング／テストデータリポジトリまたはトレーニング／テストデータベースも含まれ、複数の領域独立エージェントに、データベースエージェントが含まれる。データベースエージェントは、データベースから黒板を介して領域依存エージェントおよび領域独立エージェントにデータを供給し、学生データベースへのポストに関して領域依存エージェントおよび領域独立エージェントからデータを受け取る。その結果、個別指導セッション中のユーザのアクションを、追跡および将来の使用のために学生データベースに記録することができる。
【００１５】
このアーキテクチャには、ユーザディスプレイおよびグラフィカルフロントエンドも含まれ、独立エージェントに、情報をユーザに表示するユーザインターフェースエージェントも含まれ、このユーザインターフェースエージェントには、領域依存エージェント知識ベースおよびトレーニング／テストデータリポジトリからのデータが含まれる。さらに、ユーザインターフェースエージェントは、ユーザから入力を受け取り、これらの入力を、黒板を介して適当な領域依存エージェントおよび領域独立エージェントに向ける。
【００１６】
この個別指導システムは、地理的に異なるユーザが個別指導セッション中に同時にロールプレイできるようにする複数のコンピュータにインストールすることができる。
本発明の実施形態の以下の詳細な説明は、添付図面と共に検討される時に、本発明の性質および範囲のより完全な理解を与える。
【発明を実施するための最良の形態】
【００１７】
本発明のアーキテクチャは、複雑な問題解決の環境で、総合的な目標または解決を達成することに専門知識を与えることによって協力する複数のエージェントまたは知識ソースを有することが、有利であり、実際に時々クリティカルであるという概念に基づく。さらに、ポジトロン放出断層撮影（ＰＥＴ）、核医学、および磁気共鳴映像法（ＭＲＩ）などの複雑な分野のトレーニングおよび診断支援を提供するコンピュータシステムでは、システムアーキテクチャが、個別指導をサポートするだけではなく、問題解決処理自体も取り込むことが重要である。本発明のアーキテクチャでは、これらの概念が組み込まれて、広範囲の主題または領域に対する複数のエージェントのコラボレーションを介して問題解決、個別指導、批評、およびテストを容易にするシステムが提供される。
【００１８】
本発明のアーキテクチャでは、複数のエージェントおよびそれらが有する専門知識が使用される。本発明のアーキテクチャの領域依存エージェントは、問題を解決するか個別指導を提供するために一緒に働く専門家とみなすことができる。この複数エージェント環境を有することの利点は、分散計算モデルを達成すると同時に、システム全体のある集中制御を維持できることである。
【００１９】
本発明のアーキテクチャのもう１つの利点は、問題解決またはトレーニングが、情報中心ではなくユーザ中心であることである。すなわち、アーキテクチャ全体が、特定のユーザの技量および必要を満たすように調整される。すべての情報（問題解決、トレーニング、テスト、またはその他）が、個々のユーザに合うように修正される。これによって、システムが、診断を用いるユーザの個別指導または支援においてはるかに有効であることが保証される。
【００２０】
本発明のアーキテクチャの実施形態を使用するコンピュータ化された個別指導システムを、全般的に図１の２０に示す。本発明のアーキテクチャを、下では個別指導システムに関して説明するが、このアーキテクチャを、医療診断機器の並列診断を提供するシステムを含むがこれに制限されない、問題解決支援を提供するコンピュータシステムで使用できることを理解されたい。
【００２１】
図１からわかるように、個別指導システム２０は、２２、２４、２６、２８、および３０に示された領域依存エージェント１からｎならびにユーザインターフェース（ＵＩ）エージェント３２、データベースエージェント３４、制御エージェント３６、黒板エージェント３８、および教師エージェント４０を含むアーキテクチャを特徴とする。各エージェントは、領域依存であれ領域独立であれ、個々の実行可能プログラムまたはソフトウェアモジュールである。下で説明するように、エージェントのすべてが、黒板４２を介して互いに通信し、各エージェントが、それ自体の独立の専用の黒板を有する。後で詳細に説明するように、各エージェントは、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）リンク４３ａから４３ｊを介して、そのエージェント専用の黒板と通信する。
【００２２】
データベースエージェントは、トレーニング／テストデータリポジトリまたはデータベース４４および学生データベース４６と通信する。これらのデータベースは、任意の形をとることができ、さまざまな記憶装置を使用することができる。たとえば、静的データからなるトレーニング／テストデータベースを、コンパクトディスク（ＣＤ）にロードし、ＣＤ  ＲＯＭドライブから読み取ることができる。
【００２３】
ＵＩエージェントは、システムのグラフィカルフロントエンド４８と通信し、このグラフィカルフロントエンド４８は、情報のスクリーンをフォーマットし、ユーザディスプレイ５２を介してユーザに提示する。
【００２４】
図１の個別指導システム２０を、単一のコンピュータまたは複数のコンピュータにロードすることができる。後者の場合に、複数のコンピュータが、互いに通信することができ、その結果、このシステムを用いて、地理的に異なる位置にいるユーザが、トレーニングシナリオ中に互いと共にロールプレイできるようになる。下で説明するように、複数のコンピュータが結合される時に、本発明のアーキテクチャによって、分散処理が可能になるが、結合されたコンピュータの集中制御も提供される。
【００２５】
領域独立エージェント、領域依存エージェント、および図１のアーキテクチャの他の構成要素を、これから説明する。
領域独立エージェント
図２に示された、このアーキテクチャの領域独立エージェントは、このシステムの基本個別指導シェルを形成する。これらのエージェントは、異なる領域（主題または分野）での個別指導環境の実施形態に無関係に、変化しないという点で、静的である。エージェントのコアセットによって、総合的なアーキテクチャの機能、システムおよびトレーニングロールプレイとのユーザ対話、および行われるテストが決定される。
【００２６】
複数コンピュータ個別指導システムでは、すなわち、複数のコンピュータのそれぞれが図１の２０に示されたものとして構成される時には、１つのコンピュータだけの領域独立エージェントが、集中制御ユニットとして機能する。したがって、集中制御ユニットは、単一の計算機に常駐し、複数のコンピュータの分散環境の複数の領域エージェントにまたがる活動を調整する。
【００２７】
個別指導システムが１つのコンピュータだけを特徴とする環境での各領域独立エージェントの機能を、これから説明する。
１）制御エージェント
制御エージェント３６（図１および２）は、全体的なアーキテクチャの制御の流れの責任を負う主要なエージェントである。制御エージェントの処理を、図３に示す。図３からわかるように、制御エージェントは、個別指導システムの初期化（スタートアップ）、実行、および終了を制御する。制御エージェントは、システム駆動およびユーザ駆動のすべての割込みを処理し、エージェントからエージェントへトークンを渡すことによって、各エージェントに許可される中央処理の量を調整する。あるエージェントは、このトークンを受け取る時に限って、そのエージェントの外部の情報を読み取るか書き込むことができる。この動作が終了したならば、エージェントは、このトークンを制御エージェントに解放し、制御エージェントは、トークンを次のエージェントに渡す。
【００２８】
システムまたはユーザが割込みを生成する時に、制御エージェントは、システム全体の動作を停止し、割込みを処理し、その後、動作を再開する。システムシャットダウン要求の場合には、制御エージェントは、すべてのエージェントおよびシステムの順序正しい終了の責任を負う。
【００２９】
図３を参照すると、５２のシステムスタートアップによって示されるように、ユーザが、初めてシステムの電源を入れた後に、制御エージェントは、初期化ステップ５４を実行する。システムの正しい初期化は、すべてのエージェント、データベース、および本発明の他のアーキテクチャ構成要素が互いに通信でき、したがって、システムが正しく機能することを可能にするのに必要である。
【００３０】
図３の初期化ステップには、図４に示された５つの初期化サブステップが含まれる。最初のサブステップは、システム初期化５６である。システムを初期化する際に、制御エージェントは、図５に示された処理を実行する。まず、５８に示されているように、最初の「ウェルカムスクリーン」（スプラッシュスクリーン）が、図１のユーザディスプレイ５２に表示される。制御エージェントは、ＵＩエージェント（図１および２の３２）に、以下の活動が行われている間にスプラッシュスクリーンを表示するように指示する。
【００３１】
まず、６２および６４に示されているように、すべての必要なコンパイラおよび関連するシステムレベルドライバを、システム（図１の２０）ハードドライブからオペレーティングシステムにロードする。次に、６６に示されているように、デフォルトドライバすなわち、システムハードウェアドライバ（モニタ、マウス、キーボードなど）が、個別指導システムがインストールされたシステム（図１の２０）のハードウェアプロファイルを有するファイルを読み込む。このハードウェアプロファイルファイルは、個別指導システムの最初のインストール中に作成される。システムの初期化の最終ステップ６８は、図１のエージェントの全般的な区域へのパス位置を含む個別指導システムのディレクトリ構造のロード、オペレーティングシステムのディレクトリ構造、および、図１の学生データベース４６およびトレーニング／テストデータリポジトリ４４を含むデータベースおよびデータリポジトリのドライブ文字の初期化である。
【００３２】
この点で、制御エージェントは、図４のシステム初期化サブステップ５６を完了し、したがって、ディレクトリ構造（パス）、ドライバ、コンパイラ、およびシステムハードウェア構成情報が、ロードされている。制御エージェントは、次に、エージェント初期化ステップ７２に進む。
【００３３】
エージェント初期化ステップ７２中に、制御エージェントは、残りのエージェントを個別指導システムのオペレーティングシステムにロードする。図６の７４に示されているように、制御エージェントは、領域独立エージェントプロファイルリストを読み取るが、これは、ロードする必要がある領域独立エージェントのリストである。その結果、７６に示されているように、領域独立エージェントが、個別指導システムのオペレーティングシステムにロードされる。
【００３４】
図７からわかるように、各エージェントは、ロードされる時に、ステップ７８中にスタートアップスクリプトを読み取り、このスタートアップスクリプトによって、たとえば、あるドライバをコンパイルするか、あるドライバがロードされていることを検査するように指示される。８２および８４に示されているように、各領域独立エージェントがロードされる時に、エージェント依存ドライバも、ロードされ、そのエージェントの黒板（ファイル）が、作成される。最後に、８６に示されているように、最初の領域独立エージェントがロードされる時に、領域独立エージェントのグローバルリストが作成される。その後、最初の領域独立エージェントを、その黒板のフォーマット情報と共に、１項目としてグローバルリストに追加する。それに続く領域独立エージェントのそれぞれを、その黒板フォーマット情報と共に、それがロードされる時にグローバルリストに追加する。
【００３５】
図６の８８および９２に示されているように、上の処理を、領域依存エージェントプロファイルリストを使用して、領域依存エージェントについて繰り返す。図７のステップは、領域依存エージェントがロードされる時に実行され、領域依存エージェントグローバルリストも作成される。
【００３６】
すべてのエージェントスタートアップリストと、領域独立プロファイルリストおよび領域依存プロファイルリストの両方が、個別指導システムのインストール中に作成される。
図６の９４に示されているように、領域独立エージェントおよび領域依存エージェントのロードに続いて、制御エージェントが、エージェント初期化メッセージを各エージェントに直接に送る。このメッセージによって、本質的に、各エージェントがロードされ、動作の準備ができていることが検証される。
【００３７】
制御エージェントは、他のエージェントのそれぞれと直接に通信することができる。制御エージェントは、この能力を有する唯一のエージェントである。他のエージェントは、それぞれ図１および２の４２および３８である黒板および黒板エージェントを介して互いに通信しなければならない。図１に関して前に述べたように、各エージェントは、伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）リンク４３ａから４３ｊを介して専用黒板と通信する。したがって、図４の９６に示された、次の初期化サブステップは、エージェントとその黒板の間のＴＣＰ／ＩＰリンクを確立する通信初期化である。
【００３８】
制御エージェントは、図８の処理を介して通信初期化を実行する。９８および１０２に示されているように、制御エージェントは、黒板、領域独立エージェント、および領域依存エージェントごとに一意のポート（ＴＣＰ／ＩＰ通信用）およびリスナを確立する。リスナを用いると、黒板およびエージェントが、どのメッセージまたは情報のパケットがそれに向けられたものであるかを認識できるようになる。これらの特定のポートおよび計算機名、個別指導システムが１つのコンピュータだけを特徴とする場合にはｌｏｃａｌｈｏｓｔが、ステップ１０４および１０６で、領域独立エージェントおよび領域依存エージェントについてグローバルリストで更新される。１０８に示されているように、制御エージェントは、すべてのエージェントが動作し、正しく通信できることを検証するテストメッセージを送出することによって、結果の通信チャネル（ＴＣＰ／ＩＰリンク）をテストする。
【００３９】
個別指導システムのロードは、この点で完了する。上のステップおよびサブステップが、非常にすばやく実行され、すべてが、スプラッシュスクリーン（図５の５８）が図１のユーザディスプレイ５２に表示されている間に行われることに留意されたい。
【００４０】
図４の１１０に示されているように、初期化処理の次のステップは、セッション初期化である。このステップには、ユーザと図１のシステム２０の間の対話が含まれ、その結果、現在のトレーニング／テストセッションのパラメータが確立されるようになっている。セッション初期化が制御エージェントによって要求される時（図９のステップ１１２）に個別指導エージェント（図１の４０）によって実行される処理を、後で、図１４に関する個別指導エージェントの説明中に詳細に説明する。
【００４１】
ステップ１１２中に、ユーザは、システムにログオンし、その後、前のセッションを終えたところから再開するか、新しいセッションを開始するかを選択する。前者が選択される場合には、個別指導エージェントは、ユーザが過去に部分的に試み、継続を望む可能性があるさまざまな授業計画またはテストを表すブックマークのリストのプロンプトをユーザに示す。
【００４２】
ユーザが、新しいセッションの開始を選択する場合には、ユーザは、それぞれが領域依存エージェントに対応するトピックのどれを個別指導／テストされることを望むかと、トレーニングのレベルを選択する。トレーニングのレベルは、ユーザが有する専門知識のレベル、ユーザが特定の領域／トピックに関して有する経験、またはこの２つの組合せのいずれかとして指定することができる。さらに、新しいセッションを開始する場合に、ユーザは、どのモードでシステムを操作するかを選択する。ユーザは、下記の３つのモードから選択することができる。
【００４３】
トレーニングモード：このモードでは、ユーザは、授業計画の異なる態様を評価し、エージェントの推論処理を詳細にすべて経験することをシステムに求める。ユーザは、システムを停止し（どの時点でも）、さまざまな質問を行って、「ｗｈｙ」のようにシステムが行っていることを明瞭にし、「ｗｈｙ−ｎｏｔ」および「ｗｈａｔ−ｉｆ」などの追加の質問を行うことができる。どの授業計画の終りでも、ユーザは、その特定の授業計画に対する一連の質問に参加する選択肢を与えられる。
【００４４】
ロールプレイモード：このモードでは、ユーザが、個別指導システムの残りをそのままにして、領域依存エージェントの役割の一部を演じる。このモードを用いると、ユーザが、単なるトピックまたは授業計画ではなく、実際の環境を反映する特定の活動での専門化を得られるようになる。さらに、複数の個別指導システムを接続でき、これによって複数のユーザが異なる役割を演じるのを促進する複数ユーザレベルで、このモードはアクティブにすることもできる。
【００４５】
テストモード：このモードでは、システムが、基本的に、選択された範囲のトピックについてユーザをテストする。このモードでは、ユーザが、テストに関する特定の領域を選択するか、システムが、テストの構造化された組を介してユーザを案内することができる。テストを、システムとの過去の対話に基づくユーザの弱点に基づくものとすることもできる。
【００４６】
ユーザが、自分のセッション選択を行ったならば、そのセッション選択が、図９の１１４に示されているように、制御エージェントのメモリにロードされる。
１１６に示されているように、図１のユーザディスプレイ５２およびグラフィカルフロントエンド４８からなるユーザインターフェースを初期化し、その結果、適当なシステムスクリーンをユーザに表示できるようにしなければならない。制御エージェントは、ユーザインターフェースを初期化するために、図１６に示された処理を実行するように、ＵＩエージェント（図１の３２）に指示する。図１６の処理は、後でＵＩエージェントの説明中に詳細に提示する。
【００４７】
ステップ１１８に示されているように、制御エージェントは、次に、ステップ１１４でユーザによって行われたセッション設定に関して、学生データベース（図１の４６）の項目を作成する。その結果、システムは、ユーザが個別指導されたトピック、ユーザが受けたテスト、などを追跡できるようになる。
【００４８】
セッション設定によって、制御エージェントが前に作成されたディレクトリ構造への追加のパスウェイを追加することが必要になる場合がある。これは、ステップ１２２で制御エージェントによって達成される。たとえば、複数のコンピュータが複数ユーザロールプレイセッション中に使用される場合に、パスを追加する必要がある場合がある。さらに、１２２に示されているように、システムデフォルトドライバを再初期化する必要がある場合がある。この１例は、システムＣＤ  ＲＯＭドライブ内の異なるコンパクトディスクの必要である（ユーザが、肝臓癌について学ぶことを望み、現在のＣＤが乳癌に関するものである）。
【００４９】
図４の１２４に示されているように、制御エージェントによって実行される初期化処理の最後のサブステップは、トークン初期化である。トークンは、制御エージェントによって生成されるキーであり、一度に１つのエージェントだけがトークンを所有することができる。制御エージェントは、受取側エージェントに直接にトークンを渡す、すなわち、トークンは、受取側エージェントの黒板を介して受取側エージェントに渡されるのではない。トークンを所有するエージェントは、それが領域依存エージェントであれ領域独立エージェントであれ、所有するエージェントの黒板から情報を要求するかその黒板に情報をポストすることによって、個別指導システムの残りと対話することができる。エージェントは、トークンを有するのでなければ、それ自体の黒板にデータを渡すことも、その黒板からデータを受け取ることもできない。これが、黒板を介してトークンを受取側エージェントに渡すのではなく、制御エージェントが受取側エージェントに直接にトークンを渡さなければならない理由である。
【００５０】
トークン初期化処理を、図１０に示す。１２６に示された、トークン初期化処理の最初のステップとして、トークンパッシングリストが、制御エージェントによって、そのメモリ内に読み取られる。トークンパッシングリストには、制御エージェントがトークンを渡す順番で、個別指導システムのエージェント（領域独立エージェントと領域依存エージェントの両方）がリストされる。通常は領域独立エージェントである、あるエージェントが、他のエージェントより頻繁にトークンを必要とすると仮定すると、トークンパッシングリストに、エージェントの多数の冗長なリスティングが含まれる。たとえば、トークンパッシングリストに、第１の領域依存エージェント、黒板エージェント、第２の領域依存エージェント、および黒板エージェントがリストされる場合がある。
【００５１】
次に、１２８に示されているように、トークンを定義する。トークンは、実際には、制御エージェントによってランダムに生成される値である。異なるトークン値が、個別指導セッションごとに生成される。
【００５２】
トークンを生成したならば、図１０の１３２および１３４に示されているように、制御エージェントは、領域依存エージェントおよび領域独立エージェントのグローバルリストにアクセスし、各リストにトークンの値を通信する。その結果、領域依存エージェントおよび領域独立エージェントの両方が、トークンの値について知らされ、したがって、トークンパッシングリストに従ってトークンが渡された時に、トークンを所有していることを認識する。
【００５３】
これによって、図３および４の初期化ステップ５４が終了する。ユーザは、個別指導システムと対話して、前に選択されたセッション設定に従って、個別指導またはテストを受けることができる。ユーザが、個別指導システムと対話する際に、制御エージェントが、図３の１３６に示されたトークンフロー制御の作業を実行する。
【００５４】
トークンフロー制御中に、制御エージェントは、セッション進行に伴って、トークンパッシングリストに従って、エージェントとの間で直接に（黒板を介するのではなく）トークンを渡し、撤回する。この処理に対する唯一の割込みは、図３の１３８に示されている、システム生成またはユーザ生成の割込みがある時である。
【００５５】
割込みは、状況の独自の２つの組の下でのみ生成される、すなわち、ユーザによって開始されるか、システムによってエラーが生成される。どちらの場合でも、制御エージェントは、図１１に示された処理を実行することによって割込みを処理する。割込み（ユーザが開始したかシステムが生成した）に出会う時に、１４２に示されているように、制御エージェントは、すべてのエージェントにブロードキャストして、次の通知まで動作を停止させる。このブロードキャストは、制御エージェントからすべての他のエージェントへ直接に行われる、すなわち、トークンパッシングと同様に、割込みメッセージは、エージェントの黒板を通らない。その代わりにエージェントの黒板に単に割込みメッセージを置いた場合に、そのエージェントが、割込みが発生したことを通知するトークンを受け取るまで待たなければならないので、制御エージェントは、エージェントに直接にブロードキャストする。
【００５６】
エージェントが動作を停止したならば、制御エージェントは、図１１の１４４、１４６、および１４８に示されているように、最も最近のＵＩスクリーンハンドル、ユーザが最後に尋ねた質問、およびシステムがユーザに尋ねた最後の質問を含む情報を収集する。最も最近のＵＩスクリーンハンドルは、割込みが発生した時にユーザがいたスクリーン、アクティブであったウィンドウ、ユーザのマウスの位置（スクリーンのｘ座標およびｙ座標）などを含むリストである。
【００５７】
１５２および１５４に示されているように、制御エージェントは、ユーザに最初に尋ねる質問のリストを含めることができる割込みメッセージを定式化する。ステップ１４４、１４６、および１４８中に収集された情報によって、制御エージェントが、割込みの解決に役立つ知的な質問をユーザに尋ねられるようになる。割込みメッセージは、エージェント固有（１５２）またはシステムベース（１４５）とすることができる。システムベースメッセージには、キーボードまたはマウスが接続されていないか、あるＣＤをＣＤ  ＲＯＭドライブに置く必要があることをユーザに通知するなどの通常のエラーメッセージが含まれる。エージェント固有メッセージは、通常は、ユーザが領域依存エージェントのトピックに関して有する質問に関係する、ユーザが開始した割込みから生じる。エージェント固有メッセージは、領域依存エージェントがユーザアクションに応答して割込みを生成することに起因して発生する場合もある。１５６に示されているように、割込みメッセージが、ＵＩエージェントにポストされ、このＵＩエージェントは、図１のグラフィカルフロントエンド４８を介してユーザディスプレイ５２に割込みメッセージをポストする。
【００５８】
割込みが、システムによって生成されたものである（データファイルを見つけられないなど）場合には、システム割込みによって、ユーザに、パスを訂正し、データが保管された異なるＣＤまたは媒体を置くなどのプロンプトが出される。１５８に示されているように、ユーザが問題を訂正する場合に、制御エージェントは、１６２に示されているように、割込み終了メッセージをブロードキャストし、エージェントが個々の処理を再開できることをエージェントに知らせる。元の割込みメッセージに似て、割込み終了メッセージは、エージェントに直接にブロードキャストされる（エージェント黒板を介するのではなく）。
【００５９】
１６４に示されているように、割込みが、ユーザが生成したものである場合には、要求された動作は、一般的なシステムヘルプ、システム機能（マウス、モニタ解像度など）の再構成に関するユーザ要求など、システム依存であり、１６６に示されているように、制御エージェントが、ユーザ応答に基づいてハードウェアプロファイルデータまたは他のシステム関連データを更新する。制御エージェントは、１６２によって、割り込み終了メッセージをブロードキャストし（直接に）、エージェントが個々の処理を再開できることを知らせる。
【００６０】
１６８に関して、ユーザが開始した割込みが、ユーザが領域依存エージェントに質問することを望む質問に基づく場合、または、割込みが、ユーザアクションに応答して領域依存エージェントによって生成される場合には、１７２に示されているように、制御エージェントが、エージェント固有メッセージ１５２に対するユーザ応答を処理する適当な領域依存エージェントを選択する。１４２、１４４、および１４６で収集された情報によって、制御エージェントが正しい領域依存エージェントを選択できるようになる。ステップ１７２中に、ユーザによって尋ねられた質問に応答する応答が、領域依存エージェントによって生成され、制御エージェントは、この処理を監督する。このユーザは、元のセッションを再開することを望むまで、複数の質問を行うことができる。その後、制御エージェントが、１７４で割り込み終了メッセージをブロードキャストして（直接に）、エージェントに個々の処理を再開するように知らせる。
【００６１】
図３の１８２に関して、割込み（ユーザが開始したものであれシステムが生成したものであれ）が、システムシャットダウン（または終了）要求である場合に、制御エージェントは、ステップ１８４中に、シャットダウン要求を（直接に）すべてのエージェントにブロードキャストし、個別指導エージェントに関する保留中のメッセージだけをキャッシングして、すべての情報の処理を完了できるようにする。制御エージェントは、終了スクリーンをユーザに表示し、１８６でそれ自体を終了する。
【００６２】
２）黒板エージェント
すべてのエージェントが、個々の専用の黒板（図１の４２）に関連し、この黒板は、その特定のエージェントに関連する情報メッセージのための、システムメモリ内で予約された区域である。すべてのメッセージが、事前に定義されたフォーマットに従い、日時順および優先順位に基づく順序で黒板にポストされる。
【００６３】
すべてのエージェントが、トークンを有する時に、黒板エージェントの支援なしで、そのエージェント専用の黒板にメッセージをポストし、メッセージを読み取る。あるエージェントと他のエージェントの間のすべての通信（メッセージ）が、黒板エージェント（図１および２の３８）によって、そのエージェント専用の黒板との間で移動される。言い換えると、黒板エージェントは、あるエージェントの黒板にメッセージを置き、その結果、そのエージェントが、メッセージを再検討できるようになり（トークンを有する時に）、エージェントが、その黒板にメッセージをポストし（トークンを有する時に）、その結果、そのメッセージが、黒板エージェントによって拾い上げられるようにする。したがって、黒板エージェントは、エージェント黒板との間、したがってエージェントとの間の、同期式メッセージ転送の責任を負う。各エージェントは、黒板エージェントの支援なしで、トークンを有する時に限って、そのエージェントの黒板との間でメッセージを読み取り、書き込む。
【００６４】
エージェントの黒板にポストされるメッセージのそれぞれと共に、フラグがポストされる。フラグには、黒板エージェントフラグと一般フラグの２タイプがある。黒板エージェントフラグは、エージェントがメッセージをポストし、それを別のエージェントの黒板に移動することを黒板エージェントに要求する時にセットされる。一般フラグは、メッセージ自体が、それがポストされる黒板を有するエージェントによってなんらかの処置が講じられることを必要とすることを示す。エージェントは、トークンを受け取る時に、その黒板にある、一般フラグをセットされたメッセージをすべて読み取る。
【００６５】
黒板エージェントによって実行される処理を、図１２に示す。まず、黒板エージェントは、１９０で、トークンを有するかどうかを検査する。黒板エージェントがトークンを有しない場合には、黒板エージェントは、１９１に示されているように、まったく動作を実行しないことを知る（「ノーオペレーション」）。１９２に示されているように、黒板エージェントは、制御エージェントからトークンを得る時に、それがエージェントをサービスする順序を含む優先順位リストにアクセスする。リスト内の各エージェントについて、ステップ１９６および１９８で、黒板エージェントは、黒板エージェントフラグがセットされたメッセージがエージェントの黒板にあるかどうかを調べる。黒板エージェントフラグがセットされたメッセージが黒板にない場合には、黒板エージェントは、２０２に示されているように、トークンを手放す。
【００６６】
エージェントの黒板に、黒板エージェントフラグをセットされたメッセージがある場合には、黒板エージェントは、２０４に従って優先順位に従って各メッセージを取り出し、２０６に従って下記のアクションを実行する。黒板フラグを有するメッセージが、優先順位を与えられていないか、すべてが同一の優先順位を有する場合に、メッセージは、２０８に従って、黒板エージェントによって順次処理される。
【００６７】
ステップ２０６の後に黒板エージェントによって実行される処理は、フラグを立てられた（黒板エージェントフラグ）メッセージが、「読取」要求または「書込」要求のどちらであるかに依存する。エージェントは、別のエージェントまたはデータベースから情報を検索する場合に、「読取」要求メッセージをポストする。メッセージが読取要求である場合に２１０、黒板エージェントは、２１２で、メッセージから、ソースエージェント情報、要求された情報、およびソースエージェント（情報ソース）黒板プロトコルを取り出す。その後、黒板エージェントは、下で説明するように、ソースエージェントの黒板に置かれるメッセージを構成し、フォーマットする。
【００６８】
２１４に示されているように、ソースエージェントが、このトークンサイクルの一部としてすなわち、黒板エージェントによるトークンの所有の現在の期間中に、黒板エージェントによって既にサービスされたか「見られた」場合には、２１６、２１８、および２２２に示されているように、黒板エージェントは、その優先順位リストを並べ換えて、まだトークンを有する間にそのソースエージェントをもう一度サービスするか「見る」。
【００６９】
ステップ２１２でソースエージェント用にフォーマットされたメッセージに、ステップ２２０で優先順位を与える。メッセージの優先順位は、情報を要求するエージェント（読取要求をポストしたエージェント）の優先順位と、要求された情報の優先順位の組合せである。エージェントの優先順位は、領域依存エージェントグローバルリストおよび領域独立エージェントグローバルリストの列であるグローバル優先順位リストにある。メッセージが、ステップ２２２で、ソースエージェントの黒板にポストされる。要求元のエージェントの黒板にある、黒板エージェントフラグを立てられた次のメッセージの処理は、ステップ２２４、２２６、および２２８に示されているように継続される。そのようなフラグを立てられたメッセーがもうない場合には、黒板エージェントは、ステップ２３０および２３２に従ってトークンを手放す。
【００７０】
エージェントは、別のエージェントまたはデータベースに情報を送ることを望む時に、黒板に「書込」要求メッセージをポストする。２３４に示されているように、書込要求は、データベースエージェントによってデータベースエージェント黒板に（２３６）または対応するエージェントによって他のエージェント黒板のいずれかに（２３８）ポストすることができる。
【００７１】
データベースエージェントが書込要求尊重をポストする時に、２３６に示されているように、黒板エージェントは、ポストされるデータベースリンクまたは実際のデータを得る（リンクは、グラフィックファイルまたはマルチメディアファイルなどへのハンドルである）。次に、黒板は、宛先エージェント情報およびその黒板のメッセージプロトコルを得る。黒板エージェントは、宛先エージェントのデータフォーマット（メッセージに、データへのリンクではなくデータが含まれる場合にその黒板がデータを受け入れるフォーマット）も取り出す。その後、黒板エージェントは、宛先エージェントの黒板へのポストのために、データベースエージェントからの新しいメッセージを定式化する。
【００７２】
書込要求が、データベースエージェント以外のエージェントからのものである場合には、２３８に示されているように、黒板エージェントは、宛先エージェントの黒板プロトコルに従って、書込要求を再定式化する。
【００７３】
２４０、２４２、および２４４に示されているように、メッセージを正しく定式化したならば、そのメッセージを、メッセージソースエージェントおよびメッセージの優先順位から導出された優先順位と共に、宛先エージェントの黒板にポストする。
【００７４】
２４６に示されているように、黒板エージェントは、そのエージェントの、黒板エージェントフラグを立てられた次のメッセージに進む。２４８および２５２に示されているように、特定のエージェントのメッセージをソートした後に、黒板エージェントは、優先順位リストの次のエージェントを取り上げ、上の処理を繰り返す。２５４および２５６に示されているように、黒板エージェントは、優先順位リスト内のエージェントのすべてを処理した後に、トークンを制御エージェントに渡す。
【００７５】
３）データベースエージェント
図１および図２の３４のデータベースエージェントは、データベースとの間の情報通信の責任を負う。このエージェントは、データベース黒板（データベースエージェント黒板である）と個々のデータベースの間の主インターフェースとして働く。データベースエージェントは、データベース黒板にポストされるすべての要求を、優先順位の順序で処理する。２つの主システムデータベースが、それぞれ図１の４４および４６である、トレーニング／テストデータリポジトリおよび学生データベースである。前者には、トレーニング、テスト、およびロールプレイ環境に関する静的データが保管され、この静的データには、通常は、個別指導、ロールプレイ、およびテストに使用されるマルチメディア情報および例の情報に関連する領域（分野または主題）固有の情報が含まれる。領域のトレーニングおよびテストに適用可能なすべての手続き情報（領域依存エージェントの協力的性質に関する）もある。学生データベースには、学生情報（またはプロファイル）データが保管される。
【００７６】
データベースエージェントによって実行される処理を、図１３に示す。データベースエージェントが、すべてのエージェントによって行われるのと同様に、ステップ２６０および２６２でトークンおよびフラグを立てられたメッセージを検査した後に、２６４に示されているように、データベースエージェントが処理できる要求の２つの基本タイプは、トレーニング、ロールプレイ、またはテストに関してトレーニング／テストデータリポジトリ（図１の４４）からの情報を要求する他のエージェントからの読取要求と、学生データベース（図１の４６）への他のエージェントからの書込要求である。
【００７７】
データリポジトリからの情報に関する読取要求の場合には、２６６に示されているように、データベースエージェントは、データベースエージェント黒板にポストされたメッセージから、要求元エージェントまたはソースエージェント（情報を要求するエージェント）を判定する。さらに、データベースエージェントは、情報テーブルを読み込むが、この情報テーブルは、異なるデータ型のすべておよびそれらを処理する方法をリストしたスクリプトテーブルである。データベースエージェントは、エージェントグローバルリストにもアクセスし、要求元／ソースエージェントの名前を使用して、そのハンドルを入手して、それがローカルまたはリモートのどちらであるかを判定するが、この後者については、下の複数のコンピュータに関する節で説明する。
【００７８】
次に、２６８に示されているように、データベースエージェントは、データが、テキストとグラフィックスのどちらの形で要求されているかを判定する。後者の場合には、２７２に示されているように、要求されたデータを、データベースエージェント黒板にポストする（黒板エージェントフラグをセットして）。グラフィカルフォーマットおよび他のマルチメディアフォーマットでの情報の要求は、２７４、２７６、２７８、および２８２に示されているように、要求された情報のパスへのハンドルを特徴とするデータベースエージェントからの応答メッセージをもたらす。読取要求が複数のハンドルをもたらす場合には、データベースエージェントは、その要求に固有のオーバーレイ情報（２７８）と共に、主データパスを含むメッセージを返す。
【００７９】
書込要求がデータベースエージェント黒板にポストされた場合には、データベースエージェントは、２８４に示されているように、学生ログイン情報を使用して、学生データベースの学生プロファイルにアクセスする。セッションテーブルを、その学生の個別指導セッションごとに学生のデータベースで作成する。２８６に示されているように、データベースエージェントは、セッションテーブルにアクセスし、２８８に示されているように、それに情報／データを書き込む。
【００８０】
４）個別指導エージェント
図１および２の４０である個別指導エージェントは、学生の進歩を追跡しながら、学習、ロールプレイ、およびテストでの個別指導システムの学生による使用における学生の努力を調整する責任を負う。また、このエージェントは、個別指導セッションまたはテストセッション中の学生のアクションのすべてを、再検討される特定の授業計画に関して学生データベースに記録する。ユーザ／学生に関す学生データベース項目は、テストを介するユーザ評価中に、正または負の強化として使用することができる。たとえば、学生が受けるテストに、前の個別指導セッションおよびテスト中に学生が苦労したトピックスを強調した質問を含めることができる。
【００８１】
図７に関して説明した、すべてのエージェントが受ける一般的な初期化処理のほかに、個別指導エージェントは、ソフトウェアの起動時に個別指導セッション、ロールプレイセッション、またはテストセッションを初期化するという追加の責任も割り当てられる。制御エージェントが、セッション初期化要求を送る時に（図９のステップ１１２）、個別指導エージェントは、図１４に示された、下記の一連のアクションを実行する。
【００８２】
まず、個別指導エージェントは、ユーザインターフェースエージェントに、ログインスクリーン２９２を表示するように要求し（直接に）、このログインスクリーンは、ユーザがシステムと対話する最初のスクリーンである。２９４に示されているように、ユーザは、既存のログインＩＤおよびパスワードを用いてログインするか、新しいプロファイル２９６を作成することができる。２９８に示されているように、新しいプロファイルの作成は、学生テンプレート呼出しをトリガし、この学生テンプレート呼出しによって、学生データベース内のそのＩＤおよびログインと、学生が前にシステムを一度も使用していないことを示すブックマークの空白の組とを有する空白の学生プロファイルが作成される。
【００８３】
ログインが、既に記録に対するものである場合に、個別指導エージェントは、その学生のプロファイルおよびブックマークを取り出す。この情報に基づいて、個別指導エージェントは、ユーザがこのセッションについて行うことを望む可能性がある可能なタスクまたはセッションオプションの組を定式化する。セッションオプションが、３０２でユーザに表示される。学生は、３０４でセッションオプションを選択する。
【００８４】
学生が、学習セッション３０６を選択する場合に、３０８に示されているように、個別指導エージェントが、トレーニング／テストデータリポジトリに保管されたセッションテンプレートをコンピュータオペレーティングシステムにロードする。テンプレートは、本質的にステンシル（ｓｔｅｎｃｉｌ）であるが、ユーザ／学生によって行われた選択に応じて、トレーニング／テストデータリポジトリからのセッションデータを書き込まれる。学生が、最後のセッションを止めたところから継続することを望む場合に、または、授業計画をやり直すことを望む場合に、システムは、特定の授業計画の最後の既知のテンプレートを、ブックマークおよび適当なセッションデータと共にロードする。個別指導エージェントは、セッション情報を制御エージェントおよび残りのシステムエージェントの黒板にポストする。
【００８５】
ユーザが、活動としてテスト３１０を選択する場合に、個別指導エージェントは、３１２に示されているように、テスト用の一般化されたテンプレートをセットアップする。個別指導エージェントは、学生データベースから、その学生について保管された、学生がこれからテストされる特定の分野に関するヒストリカルデータのすべても取り出す。個別指導エージェントは、２つのメッセージを他のエージェントの黒板にポストする。１つは、これがテストセッションになることをすべてのエージェントに示すメッセージであり、第２のメッセージは、テスト情報を要求する、すべてのエージェントへのメッセージである。
【００８６】
学生が、ロールプレイセッション３１４を要求する場合に、個別指導エージェントは、まず、３１６に示されているように、このセッションが、単一プレイヤまたは複数プレイヤのどちらになるかを判定する。複数プレイヤ要求が行われる場合に、３１８に示されているように、個別指導エージェントは、用いられる追加の計算機のアドレスおよび異なるユーザまたは学生の役割に関してユーザに問い合わせる。個別指導エージェントは、追加の計算機との通信チャネル（ＴＣＰ／ＩＰ）を確立し、用いられるすべての計算機の制御エージェントに、その領域独立エージェントおよび領域依存エージェントの、要求元または主計算機またはコンピュータの領域独立エージェントおよび領域依存エージェントとの同期化を要求するメッセージを送る。その時から、接続されたすべての計算機のすべての個別指導環境が、要求元／主計算機での活動を反映する。複数計算機構成に関する追加の情報を、下で示す。
【００８７】
３２０に示されているように、個別指導エージェントは、ロールプレイテンプレートおよびセッションデータをロードする。個別指導エージェントは、ロールプレイ情報を制御エージェントにポストし、選択された領域依存エージェントのロールプレイフラグをポストして、選択された主題またはトピックスを反映する。
【００８８】
３０８、３１２、または３２０の処理の終りに、個別指導エージェントは、制御を制御エージェントに返す。
通常のシステム動作中に、トークンが、制御エージェントから個別指導エージェントに渡される時に、個別指導エージェントは、図１５に示された、決まった記憶処理動作を実行する。個別指導エージェントは、３２２でトークンを有することを検査し、３２４でフラグを立てられたメッセージを検査した後に、トークンを最後に受け取って以来のすべての学生ログ情報を収集し、コンパイルし、学生データベースの学生のプロファイルに保管する（ステップ３２６および３２８）。この記憶処理は、学生のプロファイルの領域独立学習および領域依存学習の両方からなる。
【００８９】
領域独立情報は、マウスイベント、尋ねられた質問、繰り返された質問、および授業計画に対するテンプレートベースの情報からなる。テンプレートベースの情報には、尋ねられた場合に学生のプロファイルに記録されるイベントを生成する重要な質問へのタグが含まれる。
【００９０】
領域依存情報は、特定の授業計画に関するスクリプト（すなわち、鍵になる概念は何か、教育のポイントなど）ならびに、学生がトピックをカバーした回数、特定のトピックに関する実習が要求された回数、および質問がテストのために特定のトピックから選択された回数などの授業固有のガイドラインからなる。
【００９１】
この学生プロファイル情報は、学生データベースのテーブルの組に記録され、このテーブルの組には、授業計画、ユーザが生成した割込み、ユーザが尋ねた質問、ユーザに提示された質問、質問に対するユーザの回答、回答の正当さ、マウスイベント、ユーザがコミットしたグラフィカルイベントなどに関する情報が含まれる。すべてのイベントが、日時順の順序と費やされた時間を表すタイムスタンプを有する。終了の場合でも、この処理が、システムシャットダウン（図３のステップ１８４）の前に完了されることに留意されたい。
【００９２】
５）ユーザインターフェースエージェント
このエージェントは、ユーザに表示される情報のすべてを制御する。このエージェントは、グラフィカルフロントエンド（図１および２の４８）を構成して、ユーザによって最もよく思い浮かべられるフォーマットで関連情報を表示する責任を負う。このエージェントは、すべてのユーザ入力（割込みを含む）を取り込む責任も負う。ユーザインターフェース（ＵＩ）エージェントは、ＡＰＩを使用してグラフィカルフロントエンドと通信し、このＡＰＩは、フロントエンドを任意の原語で記述できるようにし、それを制御するエージェントから独立にする。
【００９３】
システムユーザインターフェースの初期化を、図１６に示すが、これは、３３２に示されているように、システムの入出力デバイス（Ｉ／Ｏデバイス）およびその設定に関する情報を含むスクリプトファイルを読み取ることによって開始される。このスクリプトは、システム初期化中に生成され、このスクリプトには、スクリーン解像度、サウンドカードの存在、マウス、キーボード、および他の入力デバイスの構成に関する情報が含まれる。リストから、ステップ３３４中に、スクリーン解像度がセットされ、入出力デバイスが初期化される。ＵＩ初期化の次のステップすなわち３３６および３３８中に、制御エージェントが、ＵＩエージェントに、その中で個別指導／ロールプレイ／テストが行われるルートディスプレイウィンドウまたは主ディスプレイウィンドウを描くように促す。ルートウィンドウの配置に関するこの情報は、セットされ、ユーザに情報を表示するのを待つすべてのエージェントによって尊重されなければならないグローバル変数である。すなわち、情報を、このウィンドウの外に物理的に表示することができない。
【００９４】
図１７に、ＵＩエージェントの動作を示す。制御トークンが、ユーザインターフェースエージェント３４２に渡される時に、ＵＩエージェントは、３４４で、フラグを立てられたイベント（またはまだ見ていないイベント）について黒板を検査する。そのようなイベントがない場合には、３４６に示されているように、ＵＩエージェントは、ＵＩエージェントが制御トークンを最後に受け取った時以降の学生の活動（マウス、テキストなど）に関する個別指導エージェント黒板への送達のためにその黒板にメッセージをポストする。
【００９５】
フラグを立てられたメッセージまたはイベント３４８において、そのイベントを、基本的に２つの種類すなわち、ユーザ入力要求イベント３５２およびディスプレイ情報要求イベント３５４に分類することができる。ユーザ入力要求イベント３５２は、ユーザがシステムに入力を供給することをシステムが要求する時に発生する。ディスプレイ情報要求イベント３５４は、情報をユーザに表示する時に発生する。
【００９６】
ユーザ入力要求イベントの場合に、情報を、やはり２つの基本タイプすなわち、ユーザからのテキスト入力の要求３５６またはユーザからのグラフィカル入力の要求３５８に分類することができる。ユーザによって入力されることが要求されるテキスト情報の場合に、３６２に示されているように、ＵＩエージェントは、その黒板にポストされたメッセージから、ユーザ入力が入力されなければならないウィンドウ、そのウィンドウに表示されなければならないテキスト、およびそれによる入力が要求される選択またはフォーマットを識別する。その後、３６４に示されているように、ウィンドウを強調表示し、適当な情報をその中に表示する。その後、３６６に示されているように、ユーザが、自分のテキスト入力を供給し、このテキスト入力が、ユーザ入力を要求するエージェントの黒板への送達のために、ＵＩエージェントの黒板にイベントとしてポストされる。最後に、３６８に示されているように、トランザクションを、個別指導エージェントの黒板にポストする。ＵＩエージェントは、その黒板のフラグ（一般フラグ）を立てられた次のメッセージの処理に進む。
【００９７】
要求された情報が、その代わりに、ユーザが特定のグラフィックの領域、特定のグラフィックのハイライト、書込、またはドローなどを選択することを要求するなど、グラフィカル３５８である場合がある。３７２に示されているように、適当なグラフィックスおよび、テキストプロンプトなどの他の要求情報を特徴とするウィンドウを、ロードしなければならない。さらに、オーバーレイ情報（ユーザ入力を既存のグラフィックスの上に表示するための層）およびグラフィックツールの組（選択ツール、ペイントツールなど）をロードしなければならない。次に、ステップ３７４で、ウィンドウを強調表示し、グラフィックスプロンプトおよびテキストプロンプトを有するウィンドウ、オーバーレイグラフィックス、およびグラフィックツールを表示する。ユーザが、オーバーレイ層に情報を入力したならば、３７６に示されているように、この層を記録し、この層のハンドルを、要求元のエージェントにポストする。最後に、３７８に示されているように、トランザクションを個別指導エージェント黒板にポストする。ＵＩエージェントは、その後、その黒板のフラグ（一般フラグ）を立てられた次のメッセージの処理に進む。
【００９８】
単純な表示の意図でＵＩ黒板にポストされる情報３５４も、性質においてテキスト３８２またはグラフィカル３８４として分類することができる。３８６および３８８に示されているように、新しいスクリーン内容がテキストであるかグラフィカルであるかに無関係に、新しいスクリーン内容がその中に表示される親ウィンドウと、新しいスクリーン内容のモードを、ＵＩエージェント黒板にポストされたメッセージからの情報を使用して、トレーニング／テストデータリポジトリから取り出さなければならない。その後、テキスト（３９２）またはグラフィック（３９４）を表示する。どちらの場合でも、新しいスクリーン内容がモーダル（ｍｏｄａｌ）である場合に、新しいウィンドウ（新しいスクリーン内容を有する）が、その親ウィンドウによって境界をつけられる、すなわち、ユーザが、親ウィンドウの境界を超えて新しい情報を有するウィンドウをドラッグすることができない。情報がモードレス（ｍｏｄｅｌｅｓｓ）の場合には、ユーザが、スクリーン上のどの位置にもウィンドウをドラッグすることができる。
【００９９】
ＵＩエージェント黒板にポストされたメッセージから得られる情報の追加の項目が、表示される新しい内容である情報へのタグである。テキスト情報の場合に、これらのタグ（３８６のテキストリンク）に、ユーザが質問することができるテキスト（ｗｈｙ、ｗｈｙ−ｎｏｔ、ｗｈａｔ−ｉｆなど）に関する情報が含まれる。この情報は、ＵＩエージェントにメッセージをポストしている領域依存エージェントから発したものである。グラフィックスの場合に、グラフィックリンク（３８８）は、オーバーレイファイルの形であり、オーバーレイファイルでは、ユーザがマウスをある領域の上に動かす場合に、それに対して類似するタイプの質問をユーザが尋ねることができる情報が表示される（たとえば、特定の領域を強調表示するなど）。
【０１００】
前に制御エージェントおよび図１１に関して説明したように、発生することができる割込みに、ユーザが開始する割込みおよびシステムが生成する割込みの２タイプがある。図１８に示されているように、ユーザがシステムに割り込む時に４０２、ＵＩエージェントが、割込みについて制御エージェント４０４に知らせる。割込みは、図１１で説明したように制御エージェントによって処理され、制御エージェントは、どの情報をユーザディスプレイまたはインターフェースにポストするかを判断する。この割込みが、システムによって生成される時には、ＵＩエージェントは、４０６に示されているように、ポストする必要がある割込み情報と共に割込みブロードキャストを受け取る。その後、４０８に示されているように、割込み情報を表示する。
【０１０１】
関連する情報をポストしたならば、ＵＩエージェントは、ユーザの応答４１２を待ち、処理のために制御エージェントに応答４１４をポストする。４１６、４１８、４２２、および４２４に示されているように、ＵＩエージェントは、割込みによって生成されたウィンドウのクリーンアップおよびこれらのウィンドウに隠された情報のリフレッシュという標準手順を行う。その後、ＵＩエージェントは、制御エージェントからの割り込み終了シーケンスのブロードキャストを待ち（４２６および４２８）、その後、動作を再開する。
【０１０２】
メッセージプロトコル
すべてのエージェント（領域依存または領域独立）は、情報送達の容易さに応じて選択されるどのメッセージプロトコルでも自由に使用することができる。しかし、各エージェントが従うことが好ましい少数のガイドラインがある。各メッセージに、少なくとも下記の情報が含まれることが好ましい。
【０１０３】
ａ）メッセージの所期の受取側を指定する「ｔｏ」フィールド。これは、初期化処理中に制御エージェントに登録される、領域依存エージェントまたは領域独立エージェントのグローバルリスト内の有効な項目でなければならない。
【０１０４】
ｂ）初期化処理中に登録されるエージェント自体の名前を指定する「ｆｒｏｍ」フィールド。
ｃ）それからのメッセージのインデクシングを可能にするためにソースエージェントによって内部的に生成されるＩＤフィールド。
【０１０５】
ｄ）領域独立エージェントの場合に制御エージェントへの要求によって得られるタイムスタンプ、または、領域独立エージェントによって内部的に同期化モジュールによって生成されるタイムスタンプ。
【０１０６】
ｅ）優先度フィールド。これは、領域依存エージェントによって内部的に生成されるか、または優先度をもつ何らかのメッセージに基づいて領域独立エージェントによって反映される。
【０１０７】
ｆ）情報フィールド。このフィールドには、メッセージに含まれる情報が含まれる。これは、データ、データへのハンドル、制御コード、割込みコード、または中継される必要がある任意の情報とすることができる。
【０１０８】
ｇ）フラグフィールド。このフィールドは、このメッセージがポストされ、まだ「見られ」ていない時に必ずセットされるフラグである。
これらのプロトコルは、システムとは独立なので、エージェントの間のプロトコルが誤って変換されないようにするために存在する変換方式の必要がある。この事実を保証するために、これらのフィールドに無関係な情報を含む各エージェントプロトコルは、初期化中に黒板エージェントに登録される必要があり、その結果、黒板エージェントがポストされたメッセージを宛先エージェントに通信する時に（図１２）、黒板エージェントがそのメッセージを再構成する方法を知るようにする必要がある。
【０１０９】
領域依存エージェント
本発明のアーキテクチャのアプリケーションのモーダリティに応じて、図１の２２、２４、２６、２８、および３０の領域依存エージェントが変更される。これらのエージェントは、問題解決に用いられる実際の処理を取り込み、相互作用する異なる知識ソースを表す。各領域依存エージェントは、モジュラであり、それ自体で完全であり、個別指導中に能動的または受動的のいずれかであることができ、その結果、ロールプレイのために人間と入れ換えることができる。モーダリティとは独立に、領域固有エージェントの一般的なアーキテクチャを、図１９に示されているように構成することができる。図１９に示されたもの以外の領域依存エージェントアーキテクチャを、その代わりに本発明のアーキテクチャと共に使用できることに留意されたい。
【０１１０】
各エージェント内の、図１９の５００および５０２である知覚モジュールおよび通信モジュールは、システムの残りとの通信の方法を扱う。したがって、知覚モジュールおよび通信モジュールは、領域依存エージェントがシステムの残りと接触する唯一の手段である。前に説明したように、各領域依存エージェントは、それ自体の専用の黒板を特徴とし、この黒板を用いて、知覚モジュールおよび通信モジュールが、矢印５０４および５０６によって示されるように通信する。
【０１１１】
各領域依存エージェントは、それが埋め込まれる環境の３つの別個のモデルまたは状態表現を持つ。世界モデル５０８は、エージェントが、世界（システム）の現在の状態がどれであると考えるかを表す。これは、さまざまなエージェントによって行われる処置に基づいて開発される。このモデルは、世界の真の表現ではなく、エージェントがそれと考えるものである。個別指導（または問題解決）の処理が進行するにつれて、このモデルは、用いられるすべてのエージェント（およびユーザ）の意図およびアクションを反映するように洗練される。世界モデルは、世界／システムのその表現に関する更新を得るために、エージェントの知覚モジュールおよび通信モジュールと通信する。
【０１１２】
領域モデル５１０は、エージェントが領域内でどのように実行しなければならないかの挙動モデルである。すなわち、誰からのデータを期待するか、その発見が誰に関するか、この情報をどのようにポスト／読み取らなければならないか、イメージ／データ変換規約などである。このモデルは、ロールプレイモードまたはテストモードに関連する情報も反映する。
【０１１３】
最後のモデルは、エージェントの内部状態であり、ローカルモデル５１２としてモデル化される。このモデルは、特定のエージェントが処理したすべての情報と、それが検討しているアクションの現在の過程を表す。この状態は、分離されたすなわち、他のエージェントとの相互作用なしの、特定のエージェントのはたらき全体とみなすことができる。しかし、このモデルは、エージェントが受け取る入力のすべてを反映する。
【０１１４】
その黒板との通信のほかに、領域依存エージェントは、「アクション」モジュール５１４を有し、このアクションモジュールは、エージェントとによって実行される推論が、通信（黒板にポスト）されなければならないものであるか否かの判断を担当する。したがって、アクションモジュールは、これに関して、領域依存エージェントの「エンジン」または「頭脳」として働く。
【０１１５】
結論できるように、エージェントがある黒板にポストする各メッセージは、注意深く作られ、その黒板の他のメッセージと同期化され、他のエージェントによって吸収される際の緊急性に関して優先順位を付けられなければならない。一部のメッセージは、決まっており、定期的な間隔で対処される必要があり、一部のメッセージは、他のステップが実行される（またはある時間の期間が経過する）前に無視することができない緊急性を有する。一部のメッセージは、直ちに対応される必要があり、したがって、高い優先権を有する。準備モジュール５１６、優先順位付けモジュール５１８、および同期化モジュール５２０は、すべてのメッセージ制御を処理する。これらのモジュールの基本的構成は、領域依存エージェントのそれぞれについて同一であることが好ましい。
【０１１６】
エージェントの心臓部は、それが所有する知識である。エージェント固有知識ベース５２２に、この情報が含まれる。これは、現在の状態に関する推論と、その後の採用すべき最適の戦略の選択でエージェントを案内する情報である。知識は、規則（説明を助ける）の組の形とするか、ニューラルネットワーク（前にトレーニングされた）のように不明瞭なものとすることができる。この知識の本体によって、ＳＭＥ（その分野における専門家、ｓｕｂｊｅｃｔ  ｍａｔｔｅｒ  ｅｘｐｅｒｔ）の神髄が取り込まれ、エージェントがその機能および能力のレベルで実行できるようになる。知識ベースは、エージェントの他のモジュールと独立に働き、それが提供する情報だけに頼る。
【０１１７】
複数コンピュータシステム
前に述べたように、本発明のアーキテクチャを、複数のコンピュータを使用する問題解決または個別指導のシステムで使用することができる。そのような構成では、地理的に異なるユーザが、個別指導セッションまたはトレーニングシナリオに同時に参加するかロールプレイをすることができる。複数コンピュータシステムでは、図１にリストされたアーキテクチャ構成要素のすべてが、各コンピュータにロードされる。複数コンピュータシステムの領域依存エージェントおよび領域独立エージェントは、下記の例外を除いて、上で説明したように動作する。
【０１１８】
個別指導セッションを開始するコンピュータ（「主」コンピュータ）の制御エージェントだけが、動作し、主コンピュータのトークンだけが、使用される。さらに、残りの「副」コンピュータの領域独立エージェントおよび領域依存エージェントは、主コンピュータの残りの領域独立エージェントおよび領域依存エージェントと同期化される。その結果、副コンピュータの領域独立エージェントおよび領域依存エージェントのアクションは、主コンピュータの制御エージェントの制御下で動作する主コンピュータの領域独立エージェントおよび領域依存エージェントのアクションを反映する。その結果、複数コンピュータシステムが、主コンピュータを介する集中制御を特徴とする。
【０１１９】
「ロールプレイ」フラグは、ユーザがロールプレイトレーニングまたはロールプレイ個別指導シナリオで入れ代わった領域依存エージェントについてセットされる。領域依存エージェントは、「ロールプレイ」フラグをセットされている時に、黙って何もせず、その結果、対応するユーザが自分の役割を演じることができるようにすることを知っている。
【０１２０】
領域独立エージェントおよび領域依存エージェントのグローバルリストは、主コンピュータでのみ維持され、ユーザが入れ代わった領域依存エージェントの計算機名およびポートは、後者にロードされる。
【０１２１】
結論
上記からわかるように、本発明のアーキテクチャは、複数の知識ソースおよび問題解決処理でのそれらの間の密な相互作用に関する要件があるすべての環境で使用することができる。この技術は、さまざまな個別指導および批評の領域に適用することができ、問題解決処理自体に移植することができる。このアーキテクチャは、個別指導システムが、内容のリポジトリになるのではなく、個々のユーザの特定の必要を満たす、ユーザ中心モードの教育を提供する。
【０１２２】
領域依存エージェントの知覚モジュールおよび通信モジュールと、その専用の黒板によって、システムとの領域依存エージェントの相互作用が単純になる。その結果、このアーキテクチャは、モジュラ実施形態に関する大きな利益を提供する。たとえば、このシステムは、当初に、すべてのエージェントがソフトウェアとしてその中でコーディングされる独立型ユニットまたは「スマートボックス」として実施することができる。この技術がユーザによって信頼されるようになるにつれて、この技術を、ハードウェアとして、医療画像処理機械などの機械に組み込むことができる。言い換えると、モジュラ風の構成に起因して、一部の領域依存エージェントおよびそれ専用の黒板を、ハードウェアとして機械に移植すると同時に、他の領域依存エージェントを、スマートボックス内のソフトウェアとしてエンコードされたままにすることができる。その結果、このアーキテクチャを使用するシステムの段階的な実施形態を使用することができる。このアーキテクチャの鍵は、システムの残りを変更せずに、モジュールを除去または更新する能力でもある。
【０１２３】
さらに、領域依存エージェントおよびその黒板のモジュラ風構成は、個別指導アプリケーションでの多数の利益を有する。たとえば、人間のユーザが、システム内の異なる領域依存エージェントと入れ代わることができる。その結果、ユーザが、システムと共に「ロールプレイ」することができる。複数のユーザが、同一の個別指導システム内の異なる役割を引き受け、ソフトウェア／ハードウェアのエージェントならびにユーザ自身とシームレスに対話する能力もある。これは、分散（ＴＣＰ／ＩＰ）領域依存エージェントの可能性を有する集中化されたシェルのゆえに、鍵になる機能性である。
【０１２４】
本発明のこのアーキテクチャを、個別指導、問題解決、批評、または、システムが提案でき説明できる信頼性のあるセカンドオピニオンを、その分野における専門家に提供する能力のために使用することができる。
【０１２５】
本発明の好ましい実施形態を図示し、説明してきたが、本発明の趣旨から逸脱せずに、変更および修正を行えることは、当業者に明白であろう。
【図面の簡単な説明】
【０１２６】
【図１】本発明のアーキテクチャの実施形態を特徴とする個別指導システムの概略を示す図である。
【図２】図１のシステムのアーキテクチャの領域独立層の概略を示す図である。
【図３】図１および２の制御エージェントによって実行される処理を示す流れ図である。
【図４】図１および２の制御エージェントによって実行される初期化を示す流れ図である。
【図５】図１および２の制御エージェントによって実行されるシステム初期化を示す流れ図である。
【図６】図１および２の制御エージェントによって実行されるエージェント初期化を示す流れ図である。
【図７】図１のエージェントによって実行される個々のエージェントの初期化を示す流れ図である。
【図８】図１および２の制御エージェントによって実行される通信初期化を示す流れ図である。
【図９】図１および２の個別指導エージェントによって実行される個別指導セッション、ロールプレイセッション、またはトレーニングセッションを示す流れ図である。
【図１０】図１および２の制御エージェントによって実行されるトークン初期化を示す流れ図である。
【図１１】図１および２の制御エージェントによって実行される割込み処理を示す流れ図である。
【図１２】図１および２の黒板エージェントによって実行される処理を示す流れ図である。
【図１３】図１および２のデータベースエージェントによって実行される処理を示す流れ図である。
【図１４】図１および２の個別指導エージェントによって実行される処理を示す流れ図である。
【図１５】図１および２の個別指導エージェントによって実行される情報コンパイルを示す流れ図である。
【図１６】図１および２のＵＩエージェントによって実行される初期化を示す流れ図である。
【図１７】図１および２のＵＩエージェントによって実行される処理を示す流れ図である。
【図１８】図１および２のＵＩエージェントによるユーザ割込みの処理を示す流れ図である。
【図１９】図１の領域依存エージェントの内部アーキテクチャの概略を示す図である。
【図１】
2004527859.tif 000003
【図２】
2004527859.tif 000004
【図３】
2004527859.tif 000005
【図４】
2004527859.tif 000006
【図５】
2004527859.tif 000007
【図６】
2004527859.tif 000008
【図７】
2004527859.tif 000009
【図８】
2004527859.tif 000010
【図９】
2004527859.tif 000011
【図１０】
2004527859.tif 000012
【図１１】
2004527859.tif 000013
【図１２】
2004527859.tif 000014
【図１３】
2004527859.tif 000015
【図１４】
2004527859.tif 000016
【図１５】
2004527859.tif 000017
【図１６】
2004527859.tif 000018
【図１７】
2004527859.tif 000019
【図１８】
2004527859.tif 000020
【図１９】
2004527859.tif 000021
【国際公開パンフレット】
2004527859.tif 000022
2004527859.tif 000023
2004527859.tif 000024
2004527859.tif 000025
2004527859.tif 000026
2004527859.tif 000027
2004527859.tif 000028
2004527859.tif 000029
2004527859.tif 000030
2004527859.tif 000031
2004527859.tif 000032
2004527859.tif 000033
2004527859.tif 000034
2004527859.tif 000035
2004527859.tif 000036
2004527859.tif 000037
2004527859.tif 000038
2004527859.tif 000039
2004527859.tif 000040
2004527859.tif 000041
2004527859.tif 000042
2004527859.tif 000043
2004527859.tif 000044
2004527859.tif 000045
2004527859.tif 000046
2004527859.tif 000047
2004527859.tif 000048
2004527859.tif 000049
2004527859.tif 000050
2004527859.tif 000051
2004527859.tif 000052
2004527859.tif 000053
2004527859.tif 000054
2004527859.tif 000055
2004527859.tif 000056
2004527859.tif 000057
2004527859.tif 000058
2004527859.tif 000059
2004527859.tif 000060
2004527859.tif 000061
2004527859.tif 000062
2004527859.tif 000063
2004527859.tif 000064
2004527859.tif 000065
2004527859.tif 000066
2004527859.tif 000067
2004527859.tif 000068
2004527859.tif 000069
2004527859.tif 000070
2004527859.tif 000071
2004527859.tif 000072
2004527859.tif 000073
2004527859.tif 000074
2004527859.tif 000075
2004527859.tif 000076
2004527859.tif 000077
2004527859.tif 000078
【国際公開パンフレット（コレクトバージョン）】
2004527859.tif 000079
【国際調査報告】
2004527859.tif 000080
2004527859.tif 000081