(57)【要約】【課題】所定の目的を達成するための予め定められた複数の課題に従って対話を行う場合、ある課題を中断して新たな課題に移行したときには、その新たな課題で対話した結果に応じて、次の課題を柔軟に決定することができる対話方法および装置を提供する。【解決手段】ユーザとの対話目的に選択した未解決課題を選択順に記憶手段に記憶し、前記記憶手段に最後に記憶された未解決課題を対話目的に使用して、第１の情報を得、前記第１の情報により前記記憶手段に記憶された第１の未解決課題を解決して第２の情報を得、解決された前記第１の未解決課題は前記記憶手段から削除し、前記記憶手段に記憶された前記第２の情報に関連する第２の未解決課題を前記第２のステップで次の前記対話目的に使用するために、前記第２の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除する。【選択図】    図１
2004212664.tif 000002
【特許請求の範囲】
【請求項１】
所定の目的を達成するための複数の課題を解決すべくユーザとの対話を行う対話方法であって、
前記複数の課題のうち、ユーザとの対話目的に選択した未解決課題を選択順に記憶手段に記憶する第１のステップと、
前記記憶手段に最後に記憶された未解決課題を対話目的に使用して、第１の情報を得る第２のステップと、
前記第１の情報により前記記憶手段に記憶された第１の未解決課題を解決して、第２の情報を得る第３のステップと、
解決された前記第１の未解決課題を前記記憶手段から削除する第４のステップと、
前記記憶手段に記憶された、前記第２の情報に関連する第２の未解決課題を前記第２のステップで次の前記対話目的に使用するために、前記第２の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除する第５のステップと、
を有することを特徴とする対話方法。
【請求項２】
前記第２の情報に関連する第２の未解決課題は、前記第２の情報が、前記第２の未解決課題が解決されたと判断するための条件を少なくとも１つ満足することを特徴とする請求項１記載の対話方法。
【請求項３】
前記第２の情報に関連する前記第２の未解決課題が前記記憶手段に記憶されていないとき、前記記憶手段に記憶された未解決課題のうち、前記第１の未解決課題が対話目的に選択される直前に対話目的に選択された未解決課題を、前記第２のステップで次の前記対話目的に使用することを特徴とする請求項１記載の対話方法。
【請求項４】
前記記憶手段は、ユーザとの対話目的に選択した未解決課題を選択順に記憶するスタックであることを特徴とする請求項１記載の対話方法。
【請求項５】
前記記憶手段に、前記第１の情報により解決される前記第１の未解決課題が記憶されていないとき、前記第１の情報に関連する第３の未解決課題を前記第２のステップで次の前記対話目的に使用するために、前記第３の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除する第６のステップと、
前記記憶手段に、前記第１の情報に関連する第３の未解決課題が記憶されていないとき、前記複数の課題のうちの前記第１の情報に関連する新たな課題を前記未解決課題として、前記第２のステップで次の前記対話目的に使用するために前記記憶手段に記憶する第７のステップと、
をさらに有したことを特徴とする請求項１記載の対話方法。
【請求項６】
前記第２のステップは、
ユーザの入力から推定される前記第１の情報の候補が複数与えられた場合に、当該複数の候補のうち、前記記憶手段に記憶された未解決課題のうちの前記対話目的に使用した使用順が後にある未解決課題に関連する候補を優先して、前記第１の情報として選択することを特徴とする請求項１記載の対話方法。
【請求項７】
前記第３のステップで前記第２の情報を得たとき、前記第２の未解決課題を求めることを特徴とする請求項１記載の対話方法。
【請求項８】
前記第１のステップで前記対話目的として選択された前記第１の未解決課題を前記記憶手段に記憶するとき、当該第１の未解決課題を解決したとき得られる前記第２の情報を推定し、これを基に予め前記第２の未解決課題を求める第８のステップをさらに有し、
前記第５のステップは予め求められた前記第２の未解決課題を前記第２のステップで次の前記対話目的に使用することを特徴とする請求項１記載の対話方法。
【請求項９】
所定の目的を達成するための複数の課題を解決すべくユーザとの対話を行う対話装置であって、
前記複数の課題のうち、ユーザとの対話目的に選択した未解決課題を選択順に記憶する記憶手段と、
前記記憶手段に最後に記憶された未解決課題を対話目的に使用して、第１の情報を得る第１の手段と、
前記第１の情報により前記記憶手段に記憶された第１の未解決課題を解決して、第２の情報を得る第２の手段と、
解決された前記第１の未解決課題を前記記憶手段から削除する第３の手段と、
前記記憶手段に記憶された、前記第２の情報に関連する第２の未解決課題を前記第１の手段で次の前記対話目的に使用するために、前記第２の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除する第４の手段と、
を具備したことを特徴とする対話装置。
【請求項１０】
前記第２の情報に関連する第２の未解決課題は、前記第２の情報が、前記第２の未解決課題が解決されたと判断するための条件を少なくとも１つ満足することを特徴とする請求項９記載の対話装置。
【請求項１１】
前記第２の情報に関連する前記第２の未解決課題が前記記憶手段に記憶されていないとき、前記記憶手段に記憶された未解決課題のうち、前記第１の未解決課題が対話目的に選択される直前に対話目的に選択された未解決課題を、前記第１の手段で次の前記対話目的に使用することを特徴とする請求項９記載の対話装置。
【請求項１２】
前記記憶手段は、ユーザとの対話目的に選択した未解決課題を選択順に記憶するスタックであることを特徴とする請求項９記載の対話装置。
【請求項１３】
前記記憶手段に、前記第１の情報により解決される前記第１の未解決課題が記憶されていないとき、前記第１の情報に関連する第３の未解決課題を前記第１の手段で次の前記対話目的に使用するために、前記第３の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除する第５の手段と、
前記記憶手段に、前記第１の情報に関連する第３の未解決課題が記憶されていないとき、前記複数の課題のうちの前記第１の情報に関連する新たな課題を前記未解決課題として、前記第１の手段で次の前記対話目的に使用するために前記記憶手段に記憶する第６の手段と、
をさらに具備したことを特徴とする請求項９記載の対話装置。
【請求項１４】
前記第１の手段は、
ユーザの入力から推定される前記第１の情報の候補が複数与えられた場合に、当該複数の候補のうち、前記記憶手段に記憶された未解決課題のうちの前記対話目的に使用した使用順が後にある未解決課題に関連する候補を優先して、前記第１の情報として選択することを特徴とする請求項９記載の対話装置。
【請求項１５】
前記第２の手段で前記第２の情報を得たとき、前記第２の未解決課題を求めることを特徴とする請求項９記載の対話装置。
【請求項１６】
前記対話目的として選択された前記第１の未解決課題を前記記憶手段に記憶するとき、当該第１の未解決課題を解決したとき得られる前記第２の情報を推定し、これを基に予め前記第２の未解決課題を求める第７の手段をさらに具備し、
前記第４の手段は予め求められた前記第２の未解決課題を前記第１の手段で次の前記対話目的に使用することを特徴とする請求項９記載の対話装置。
【請求項１７】
所定の目的を達成するための複数の課題を解決すべくユーザとの対話を行うためのプログラムであって、
コンピュータに、
前記複数の課題のうち、ユーザとの対話目的に選択した未解決課題を選択順に記憶手段に記憶する第１のステップと、
前記記憶手段に最後に記憶された未解決課題を対話目的に使用して、第１の情報を得る第２のステップと、
前記第１の情報により前記記憶手段に記憶された第１の未解決課題を解決して、第２の情報を得る第３のステップと、
解決された前記第１の未解決課題を前記記憶手段から削除する第４のステップと、
前記記憶手段に記憶された、前記第２の情報に関連する第２の未解決課題を前記第２のステップで次の前記対話目的に使用するために、前記第２の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除する第５のステップと、
を実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、所定の目的を達成するために、ユーザと自然言語で対話する対話方法、それを用いた対話装置、およびプログラムに関する。
【０００２】
【従来の技術】
近年、音声や自然言語入力による文章入力を受理するインターフェースに関する研究が盛んである。また、そのようなインターフェースを用いるエキスパートシステムなどが多数開発され、音声やテキストなどによる入力を受理する装置が一般向けにも利用可能となっている。特に音声による入力はユーザにとって利用しやすいものと位置付けられ、音声認識技術を利用し音声入力を受理するシステムが開発されている。
【０００３】
音声による自然言語入力の場合、ユーザはシステムに入力する全ての条件を一度に発話することは少なく、ユーザとシステムとの音声によるやりとりが必要となる。例えばユーザの入力に不備がある場合には、その足りない条件を問い合わせ、それに対するユーザの回答を統合するなどの処理が必要となる。この統合処理のためには今現在行われている対話内容をシステムが把握することが不可欠である。
【０００４】
従来の対話管理技術として、話題をスタック構造で管理し、スタックの操作はユーザの入力が「入力が現在の話題を進める」、「現在の話題の中断」などの話題推移を求めているという判定結果に基づき行う、というものがある（例えば、非特許文献１参照）。
【０００５】
この手法では、話題推移の発生の可能性をデータベース検索結果の候補の多さに基づいた対話状況に応じて分類しており、その対話状況では発生し得ない話題推移を求めた場合は話題の中断であると判定している。話題の中断の発話入力がなされたと判断された時には、その時の話題にマークをつけ、スタックに新たな話題をプッシュすることでその話題を割り込ませる。割り込んだ話題が終了した時には、マークをつけた話題にまで戻ることで元の対話に戻ることが可能である。
【０００６】
しかし従来方式では話題の中断であると判定された時にあらかじめ復帰先の話題にマークを付与し、割り込んだ話題が終了した時にマーク箇所に復帰するために、割り込んだ話題が元々の話題に寄与する場合の対話制御が困難であるという問題点があった。
【０００７】
例えば、カーナビゲーションシステムでのシステム（Ｓ）とユーザ（Ｕ）との次のような対話を例にあげる。
【０００８】
Ｓ（１）：「目的地を決定します。場所を指定してください」
Ｕ（１）：「目的地の住所は、神奈川県」
Ｓ（２）：「市区町村名をどうぞ」
Ｕ（２）：「やっぱり登録名称で」
Ｓ（３）：「登録名称をどうぞ」
Ｕ（３）：「山下公園」
ここで従来方式では、ユーザの２番目の発言Ｕ（２）をきっかけに、「住所決定対話」にマークをつけ、「登録名称で検索対話」をプッシュすることになる。このため、ユーザの３番目の発言Ｕ（３）で登録名称で検索対話が完了すると、マークをつけた住所決定対話に復帰するため、応答は次のようになる。
【０００９】
Ｓ（４）：「山下公園はこちらです（地図表示を伴う）。市区町村名をどうぞ」このように、ユーザは目的地として山下公園を選択していたという対話意図のずれが発生する。このため満足な対話が進められず、ユーザに対して多大な負担を与えることになる。
【００１０】
また、従来は、自然言語解釈の曖昧性については考慮されていなかった。特に音声入力を伴う場合、音声認識結果には認識の曖昧性から、複数の認識候補が出現するのが現状である。このような音声認識の曖昧性に鑑み、その時の対話状況を加味して、複数の候補から対話に用いる認識結果を選択する必要がある。この対策が十分でなければ誤認識に基づき対話を進めてしまうため、満足な対話ができずユーザに多大な負担を与えることになる。
【００１１】
【非特許文献１】
情報処理学会論文誌  ｖｏｌ２９、Ｎｏ．９、「自然言語インタフェースシステムにおける意図の把握と話題の管理」
【００１２】
【発明が解決しようとする課題】
このように従来は、所定の目的を達成するために、予め定められた複数の話題に従って対話を行う場合、現在の話題を中断して、新たな話題に移る場合には、中断した元の話題を復帰先として予め定めた後に、新たな話題へ移行し、再び復帰先として予め定められた話題に戻っていたため、新たな話題で対話した結果、目的が達成したとしても、また同じ目的のために別の話題で対話しなければならないという不都合が生じていた。
【００１３】
すなわち、従来は、所定の目的を達成するための予め定められた複数の話題（課題）に従って対話を行う場合、ある話題を中断して新たな話題に移行したときには、その新たな話題が終了したときの次の話題を、新たな話題で対話した結果に応じて、柔軟に決定することができないという問題点があった。
【００１４】
また、従来は、音声認識の結果を、その時の対話状況に関わりなく採用していたため、満足な対話ができずユーザに多大な負担を与えるという問題点があった。
【００１５】
そこで、本発明は、上記問題点に鑑み、所定の目的を達成するための予め定められた複数の話題（課題）に従って対話を行う場合、ある話題（課題）を中断して新たな話題（課題）に移行したときには、その新たな話題（課題）で対話した結果に応じて、次の話題（課題）を柔軟に決定することができる対話方法および装置を提供することを目的とする。
【００１６】
また、音声認識の結果得られる複数の候補の中から、その時の対話状況に応じて最適な候補を選択することにより、高精度の音声対話が行える対話方法および装置を提供することを目的とする。
【００１７】
【課題を解決するための手段】
（１）本発明は、所定の目的を達成するための複数の課題を解決すべくユーザとの対話を行うものであって、前記複数の課題のうち、ユーザとの対話目的に選択した未解決課題を選択順に記憶手段に記憶し、前記記憶手段に最後に記憶された未解決課題を対話目的に使用して、第１の情報を得、前記第１の情報により前記記憶手段に記憶された第１の未解決課題を解決して、第２の情報を得、解決された前記第１の未解決課題を前記記憶手段から削除し、前記記憶手段に記憶された、前記第２の情報に関連する第２の未解決課題を前記第２のステップで次の前記対話目的に使用するために、前記第２の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除することにより、ある課題を中断して新たな課題に移行したときには、その新たな課題で対話した結果に応じて（解決された課題のタスク出力情報に関連する課題を次の対話目的とすることにより）、次の課題を柔軟に決定することができる。
【００１８】
（２）前記第２の情報に関連する第２の未解決課題は、前記第２の情報が、前記第２の未解決課題が解決されたと判断するための条件を少なくとも１つ満足する。
【００１９】
（３）前記第２の情報に関連する前記第２の未解決課題が前記記憶手段に記憶されていないとき、前記記憶手段に記憶された未解決課題のうち、前記第１の未解決課題が対話目的に選択される直前に対話目的に選択された未解決課題を、次の前記対話目的に使用する。
【００２０】
（４）前記記憶手段は、ユーザとの対話目的に選択した未解決課題を選択順に記憶するスタックである。
【００２１】
（５）前記記憶手段に、前記第１の情報により解決される前記第１の未解決課題が記憶されていないとき、前記第１の情報に関連する第３の未解決課題を次の前記対話目的に使用するために、前記第３の未解決課題の後に対話目的に選択した未解決課題を前記記憶手段から削除し、前記記憶手段に、前記第１の情報に関連する第３の未解決課題が記憶されていないとき、前記複数の課題のうちの前記第１の情報に関連する新たな課題を前記未解決課題として、次の前記対話目的に使用するために前記記憶手段に記憶する。
【００２２】
（６）ユーザの入力から推定される前記第１の情報の候補が複数与えられた場合に、当該複数の候補のうち、前記記憶手段に記憶された未解決課題のうちの前記対話目的に使用した使用順が後にある未解決課題に関連する候補を優先して、前記第１の情報として選択する。
【００２３】
【発明の実施の形態】
以下、本発明の実施形態について図面を参照して説明する。
【００２４】
（第１の実施形態）
本発明は、話題（対話目的）の変更であると判定した場合にもあらかじめ復帰先の話題を決定することなく話題の中断処理を行い、話題が元々の話題に寄与するような場合においても適切に元の話題に復帰することができ、ユーザの入力時の対話状況を加味した候補選択を実行する機能を持つ対話システムを提供するものであり、以下、図面を参照して本発明の詳細につき説明する。
【００２５】
図１は、本発明の実施形態に係る対話装置を含む対話システムの概略構成図で、例えば、カーナビゲーションシステムなどに用いられる対話システムの構成例を示したものである。図１に示すように、対話システムは、自然言語解釈装置１と対話装置１００と、応答出力装置２とから構成されている。
【００２６】
対話装置１００は、候補選択部１０１、対話スタック操作部１０２、対話情報記憶部１０３、プラン記憶部１０４から構成されている。
【００２７】
自然言語解釈装置１は、例えば、ユーザからの自然言語による入力を解析し、解析結果を対話装置１００へ出力する。自然言語解釈装置１への入力は、テキスト、音声などの形式を問わず、その解釈方法はその種類に応じた既存の方法が使用できる。解析に曖昧性が発声した場合は、その候補と尤もらしさを組にして出力する。ここでは、ユーザの音声入力（発言）を音声認識する場合について説明する。音声認識により、通常、複数の認識候補が得られるが、ここでは、各認識候補と、その尤もらしさとして入力音声との類似度を対にして対話装置１００へ出力するものとする。
【００２８】
対話装置１００は、所定の目的を達成するための予め定められた複数の話題に従ってユーザと対話を行うものである。例えば、ここでは、上記所定の目的として、カーナビゲーションシステムでの「目的地設定」である場合を例にとり説明する。すなわち、対話装置１００は、目的地設定のために、図２に示すような、複数の話題からなる上記目的を達成するためのプランをプラン記憶部１０４に記憶する。
【００２９】
各話題は、上記目的を達成するために解決すべき課題に対応する。各課題には、当該課題を解決するための条件（当該課題が解決されたと判断するために満足すべき条件）と、当該条件を満たすための動作と、全ての条件を満たしたときの動作（全条件達成時動作）と、課題を解決したときにタスク出力情報として出力される出力内容とが予め定められている。すなわち、各課題には、当該課題を解決するための少なくとも１つの条件と、各条件を満たすための動作と、全条件達成時動作と、課題を解決したときの出力内容を含むタスクが対応付けられている。ここでは、各課題に対応するタスクに含まれる条件と、動作と、全条件達成時動作と、課題を解決したときの出力内容とを記述したものをタスク情報と呼ぶ。
【００３０】
「目的地設定」のための主な課題は、タスク情報Ｔ１に記述されている。
【００３１】
タスク情報Ｔ１で表されている課題は、対話目的としての「目的地設定」である（「名称」フィールドに記述されている）。この課題を解決するための条件として、「目的地承認済みの場所」を得ることが必要であり（「条件」フィールドに記述されている）、そのための動作として、タスク情報Ｔ２に記述された処理動作を行い（タスク情報Ｔ２に記述された課題を解決し）、その後に、タスク情報Ｔ３の処理動作に遷移し、当該タスク情報Ｔ３に記述された処理動作を行う（タスク情報Ｔ３に記述された課題を解決する）。その結果、上記条件を満たしたときには、「全条件達成時動作」フィールドに記述されている動作（ここでは、「指定された場所までのルートを計算する」）を行い、その結果をタスク出力情報として出力するようになっている。
【００３２】
なお、以下の説明において、タスク情報の記述に基づく処理動作を単にタスクと呼ぶ。例えば、タスク情報Ｔ２の記述に基づく処理動作をタスクＴ２と呼ぶ。
【００３３】
タスク情報Ｔ２は、「場所検索」を課題とする処理動作で、この課題を解決するために、まず、「検索方法指定」を解決すべき課題とするタスク情報Ｔ５を呼び出し、当該タスク情報Ｔ５に記述されている処理動作を行うようになっている。
【００３４】
タスク情報Ｔ５に記述された処理動作は、「住所と登録名称のどちらで検索しますか？」という発話を行い（「動作」フィールドに記述されている）、それに応じてユーザから入力される発言内容からユーザにより指定された検索方法を取得し（「条件」フィールドに記述されている）、「全条件達成時動作」フィールドに記述されているように、この指定された検索方法に対応する検索を行うタスク情報を呼び出す（タスクをロードする）。ここでは、住所で検索する方法が指定されたときには、タスク情報Ｔ６が読み出され、登録名称で検索する方法が指定されたときには、タスク情報Ｔ７が読み出される。
【００３５】
タスク情報Ｔ６に記述された処理動作は、「住所で場所検索」を課題とするもので、３つの条件のそれぞれに対応する「動作」フィールドに記述されているよに、ユーザに住所を入力してもらうための発話を行い、その結果、住所が得られると（「条件」フィールドに記述されている）、「全条件達成時動作」フィールドに記述されているように、「指定された住所に対応する場所を検索」を行い、検索結果をタスク出力情報として出力する。
【００３６】
タスク情報Ｔ７に記述された処理動作は、「登録名称で場所検索」を課題とするもので、「動作」フィールドに記述されているように、ユーザに登録名称を入力してもらうための発話を行い、その結果、登録名称が得られると（「条件」フィールドに記述されている）、「全条件達成時動作」フィールドに記述されているように、「指定された登録名称に対応する場所を検索」を行い、検索結果をタスク出力情報として出力する。
【００３７】
タスクＴ６あるいはタスクＴ７により、タスク出力情報として検索結果が通知されると、タスク情報Ｔ４の「条件」フィールドに記述された条件「検索済みの場所」が満たされることになる。タスク情報Ｔ４には、「全条件達成時動作」は記述されていないので、この場合、タスクＴ４を呼び出した（ロードした）タスクＴ２に戻る。タスクＴ４からは、タスクＴ６あるいはタスクＴ７から出力された「検索済みの場所」がタスク出力情報「検索結果の場所」として出力されるので、これがタスクＴ２への通知される情報となる。
【００３８】
タスクＴ２では、当該入力情報により、「条件」フィールドに記述された「場所を取得」という条件が満たされたので、「全条件達成時動作」フィールドに記述された動作、すなわち、タスクＴ３へ遷移するとともに、「検索結果の場所」を出力し、これがタスクＴ３への入力情報となる。
【００３９】
タスクＴ３では、当該入力情報としての「検索結果の場所」に対し、ユーザから承認をもらうことを課題としているので、そのための動作を行い、承認が得られたら、当該場所に承認済みフラグを与え、目的地として承認済みの場所をタスク出力情報として出力する。
【００４０】
以上の処理動作により、承認済みの場所が得られたので（タスク情報Ｔ１の「条件」フィールドの条件を満たすので）、タスク情報Ｔ１の「全条件達成時動作」フィールドに記述されているように、目的として指定された場所までのルートを計算し、その結果をタスク出力情報として出力する。
【００４１】
このように、１つのタスクが他のタスクを階層的に（入れ子状に）包含している場合（タスクＴ１とＴ２、タスクＴ２とＴ４、タスクＴ４とタスクＴ５等の関係に対応）に、他のタスクを読み出すときには、当該他のタスクをロードすると呼ぶ。また、１つのタスクに複数のタスクが並列的に含まれている場合（例えば、タスクＴ１内のタスクＴ２とタスクＴ３の関係）、タスクＴ２終了後タスクＴ３へ移行することを遷移と呼ぶ。
【００４２】
ここで、各タスク情報の記述において、「出力」フィールドには、全条件が達成したときの出力内容が記述される。この出力内容がタスク出力情報に対応する。
【００４３】
また、「条件」フィールドには、タスクの課題を解決するための条件（あるいは、課題が解決されたと判断するために満足すべき条件）を記述され、各「条件」フィールドに対応する「動作」フィールドには、当該条件を満たすための必要な処理動作（手順）が記述されている。ある条件を達成してから次のタスクへと進行することを記述する場合には、タスク情報Ｔ１のように「動作」フィールド内部に入れ子状に別のタスクを格納させる。
【００４４】
対話装置１００の候補選択部１０１は、自然言語解釈装置１から出力された、複数の認識候補の中から、対話情報記憶部１０３に記憶されている対話情報に基づく現在の対話状況あるいは過去の対話状況から最適のものを選択し、それを入力情報として、対話スタック操作部１０２へ出力する。
【００４５】
対話情報記憶部１０３は、候補選択部１０１から入力する入力情報に応じて、現在までの対話状況を管理するための対話情報を記憶する。ここでは、対話状況を管理するために、ユーザとの対話目的として過去に用いた未解決の課題および現在の（未解決の）課題のそれぞれに対応する対話情報を対話情報記憶部１０３に記憶する。
【００４６】
各対話情報には、対話目的として過去あるいは現在用いている課題（タスク情報）と、当該タスク情報中の条件のうちの、注目している条件（注目条件）と、意図情報を含む。
【００４７】
対話情報記憶部１０３は、対話情報をＬＩＦＯ（Ｌａｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）方式で記憶するスタックである。
【００４８】
対話スタック操作部１０２は、対話目的として用いた課題の順に、当該課題に対応する対話情報を対話情報記憶部１０３（スタック）に記憶する（プッシュ）。このスタックに記憶された対話情報のうち最後に記憶された対話情報（すなわち、スタックトップに記憶されている対話情報）に対応する課題が現在の対話目的となり、当該対話目的としての課題が解決されれば、当該スタックから当該対話情報が取り出される（ポップ）。
【００４９】
対話スタック操作部１０２は、スタック操作（プッシュ、ポップ）することで、対話情報を管理する。すなわち、ある時点における対話状況は、その時のスタックの先頭アドレスで示された対話情報（スタックトップ）に記述されている。
【００５０】
例えば、図１に示した対話システムを起動させて、ユーザが、「目的地を設定する」という発言を行ったとする。このとき、自然言語解釈装置１で解釈した結果、「目的地設定」が対話装置１００の候補選択部１０１により選択され、対話スタック操作部１０２に入力情報として入力したとする。この入力情報に対応する（関連する）課題は、タスクＴ１であるので（タスク情報の課題（名称）が「目的地設定」であるので）、対話スタック操作部１０２では、当該課題（タスクＴ１）を入力情報「目的地設定」に対応付けた対話情報Ｅ１（図６参照）を生成し、スタックにプッシュする（書き込む）。そして、このタスクＴ１を実行するわけであるが、この場合、当該タスクＴ１の課題を解決するための条件「目的地承認済みの場所」がまだ得られていないので、この条件を満足すべく、当該条件を満たすための動作、すなわち、タスク情報Ｔ２をロードし、このタスクＴ２の課題を解決するための条件「場所を取得」を、当該対話情報の注目条件として設定する。このときの対話情報を図７に示す。
【００５１】
なお、タスクＴ２はタスクＴ１からロードされる、すなわち、タスクＴ２はタスクＴ１に（入れ子状に）包含される関係にあるため、図９に示すように、この関係を表すため、タスクＴ２の名称「目的地場所設定」と条件「場所を取得」は、タスクＴ１の名称、条件にハイフン「−」で接続して表している。
【００５２】
このようにある課題（課題ｘ）を解決するためのある条件を満たすために、他の課題（課題ｙ）を解決する必要がある場合、課題ｙは課題ｘに包含される関係にあるといえるが、この場合、課題ｙを解決するための条件も課題ｘを解決するための条件ともいえる。
【００５３】
課題ｘと課題ｙのように包含関係にある場合、課題ｙに対応する対話情報は、課題ｘに対応する対話情報の名称や条件にハイフンで接続して記述され、課題ｘに対応する対話情報に包含されることもある。
【００５４】
さて、スタックが図７に示した状態のときには、タスク情報Ｔ２に記述されている条件を満たすための動作が実行されるわけであるが、この場合、タスクＴ２がロードされる。タスクＴ２がロードされると、当該タスクＴ２の名称「場所検索」を意図情報とし、これとタスクＴ２とを対応付けて新たな対話情報Ｅ２を生成し、スタックにプッシュする（図８参照）。
【００５５】
対話情報の意図情報とは、当該対話情報に対応する課題を対話目的としているときに、主に、ユーザと対話により得られた、ユーザの意図を表した情報を意味する。なお、この実施形態では、後述するように、タスク出力情報もユーザの意図と同様に扱い、対話情報に意図情報として対応付ける。
【００５６】
対話がプランどおりに（例えば、中断されることなく）進行すると、上記のように、対話情報がスタックにプッシュダウンされ、各対話情報に対応するタスクの処理動作が終了する（当該タスクの課題が解決する）とスタックトップの対話情報から順にポップされ（取出し）、全ての対話情報がなくなった時点が、対話の目的が達成されたことになる。
【００５７】
本実施形態にかかる対話装置では、ユーザの発話内容を表した発言情報やタスク出力情報のうちのいずれか一方である入力情報が入力されると、当該入力情報と、スタック中の全ての対話情報とを照合し、当該入力情報に関連する課題、すなわち、現在および過去の対話情報の中に、当該入力情報で少なくとも１つの条件が満足するような課題に対応する対話情報、当該入力情報と同じ種類の情報が意図情報として記録されている対話情報があるかを探索し、そのよう対話情報がある場合には、当該対話情報をスタックトップとして、当該対話情報に対応する課題を対話目的とする。
【００５８】
対話目的としての課題の全ての条件を満足したときには、当該課題に対応する対話情報をスタックから削除するとともに、当該課題のタスクから出力される情報（「出力」フィールドに記述されている出力内容）と、スタック中の全ての対話情報とを照合し、過去の対話情報の中に、当該タスクの出力内容で少なくとも１つの条件が満足するような課題に対応する対話情報、当該出力内容と同じ種類の情報が意図情報として記録されている対話情報があるかを探索する。そのよう対話情報がある場合には、当該対話情報をスタックトップとなるようにスタック操作が行われる。なお、この新たにスタックトップとなった対話情報に対応する課題が、当該出力内容により全ての条件を満足し、解決されているときには当該対話情報もスタックから取り出される。
【００５９】
対話目的とは、スタックトップにある対話情報に対応する課題であるが、より具体的には、当該対話情報の注目条件として設定されている、当該課題を解決するために満たすべき条件（そのような条件が複数あるときはそのうちの１つ）である。
【００６０】
対話スタック操作部１０２は、スタック操作として、プッシュ／ポップの他に、ロード、遷移、クリア、達成条件選択、を実行する。
【００６１】
ロードは、新たなタスクを呼び出す際に使用される手続き（操作）であり、当該新たなタスクに対応する対話情報をスタックにプッシュする。ある課題（課題ｘ）を解決するためのある条件を満たすために、他の課題（課題ｙ）を解決する必要がある場合、課題ｙのタスクを呼び出すときの操作である。
【００６２】
遷移も新たなタスクを呼び出す際の手続きであるが、課題を順序だてて解決する場合に、ある課題ｘが解決したとき別の課題ｙへ移行する場合に、当該課題ｙを呼び出す手続きである。
【００６３】
クリアは、ある課題ｘを対話目的とするために、当該課題ｘに対応する対話情報がスタックに格納された後に格納された対話情報をスタックから取出し、当該課題ｘに対応する対話情報をスタックトップとする手続きである。
【００６４】
達成条件選択は、スタックトップの対話情報に対応する課題の注目条件が満たされたときなどに、注目条件を当該課題を解決するための他の条件を選択する手続きである。選択された条件に対応するタスク情報中の「動作」フィールドに、他の課題（タスク）が入れ子になっている場合は、そのタスクに対して再帰的に達成条件選択を進め、その経路を全て対話情報中の「注目条件」フィールドに書き込む。
【００６５】
タスクＴ５のように、ある条件を満たすための動作として、「住所と登録名称のどちらで検索しますか？」という発話を対話システムが行う場合には、この発話内容を表した応答情報が応答出力装置２へ出力される。
【００６６】
応答出力装置２は、対話スタック操作部１０２から出力された応答情報を、所定の形式で、例えば音声、テキスト等でユーザに出力する。なお、応答出力装置２の詳細は、本発明の要旨ではないので説明は省略するが、本実施形態では、説明の簡単のため、タスク情報中の動作として記述されている発話内容をそのまま音声あるいはテキストで出力するものとする。なお、これ以外にも意図情報からテンプレートを使用して文章を出力するなど既存のものを使用することができる。
【００６７】
次に、図３〜図５に示すフローチャートを参照して、図１の対話システムの対話スタック操作部１０２の処理動作について説明する。
【００６８】
図３は、対話スタック操作部１０２の処理動作全体を説明するためのフローチャートであり、この処理動作は、候補選択部１０１から対話スタック操作部１０２へユーザの発言から得られた情報（以下、発言情報）が入力したとき（ステップＳ０）に呼び出される。図４、図５は、図３のステップＳ２における通知先探索処理動作を説明するためのフローチャートであり、図３のステップＳ０で入力した上記発言情報や、スタックに対話情報として記憶されている課題が解決したときに、当該課題のタスクから出力される情報（タスク出力情報）の通知先としてのタスクをスタック中の対話情報を基に探索する処理動作を示している。ここで、通知先としてのタスクとは、スタック中に対話情報として格納されている課題のうちの１つであって、例えば、上記発言情報やタスク出力情報が、当該課題が解決されたと判断するための１つまたは複数の条件のうちの少なくとも１つを満足する課題に対応するタスク、あるいは、当該課題を解決するための他のタスクである。
【００６９】
まず、図３を参照して、対話スタック操作部１０２の処理動作について説明する。
【００７０】
ここでは、入力した発言情報やタスクから出力されたタスク出力情報を一時的に格納するバッファとしてバッファＢＦ１と、当該バッファＢＦ１に現在格納されているものが、候補選択部１０１から入力した発言情報であるとき「１」がセットされる新規フラグを使用する。
【００７１】
ます、ステップＳ０で発言情報が入力すると、当該発言情報はバッファＢＦ１に格納され、新規フラグに「１」がセットされる（ステップＳ１）。次に、ステップＳ２へ進み、バッファＢＦ１に格納されている情報の通知先としてのタスクをスタック中の対話情報を基に探索する。その詳細は、後述する。
【００７２】
ステップＳ２で通知先としてのタスクが探索されたときには、ステップＳ４へ進み、通知先としてのタスクが存在しないときには、ステップＳ１３へ進む（ステップＳ３）。
【００７３】
ステップＳ４では、通知先としてのタスクに対応する対話情報がスタックトップとするようにクリア操作を実行すると共に、当該対話情報の「意図情報」フィールドに、バッファＢＦ１に格納されている発言情報を通知する。この場合の「通知」とはタスク内の同じ条件に対応する情報を上書きし、異なる条件に対する情報は追加する動作のことを云う。
【００７４】
そして、当該対話情報の「意図情報」フィールドに現在記録されている情報、すなわち、意図情報が、当該対話情報に対応する課題を解決するための全ての条件を満たしているか否かをチェックする（ステップＳ５）。意図情報が、課題を解決するための全ての条件を満たしているときには、ステップＳ６へ進み、意図情報が、１つでも満たしていない条件があるときは、ステップＳ９へ進む。
【００７５】
ステップＳ６では、スタックトップの対話情報に対応するタスク（全ての条件が達成し解決された課題に対応するタスク）の「全条件達成時動作」フィールドに指定されている手続きを実行し、その結果として、当該タスクの「出力」フィールドの記述に従ってタスク出力情報をバッファＢＦ１に格納する（ステップＳ７ａ）。バッファＢＦ１には、現在、タスク出力情報が格納されているので、ステップＳ７では、新規フラグをクリアし、「０」とする（ステップＳ７ｂ）。
【００７６】
更に、当該タスクの課題は達成されたので（当該課題を解決するための対話を続ける必要が無いので）スタックから、当該対話情報を削除する。この時、当該対話情報が他の対話情報に包含されていないものであれば、当該対話情報（これをスタック要素とも呼ぶ）はスタックからポップされる。
【００７７】
次に、ステップＳ８へ進み、ステップＳ６での全条件達成時動作の実行中に他のタスクのロード、遷移を行っているか否かを確認する。全条件達成時動作として、他のタスクのロード、遷移動作を行っている（タスク情報にて他のタスクをロード、遷移が指定されている）場合には、ロードあるいは遷移したタスクに対応する対話情報がスタックトップに格納されている。そこで、この対話情報に対応するタスクを通知先とすべく、ステップＳ４へ戻る。一方、全条件達成時動作として、他のタスクのロードや遷移動作を行っていなければ、ステップＳ２へ戻り、バッファＢＦ１に格納されているタスク出力情報の通知先としてのタスクを探索する。
【００７８】
ステップＳ９では、スタックトップに対して達成条件選択操作を実行する。すなわち、スタックトップの対話情報に対応する課題を解決するための他の条件を選択して、それを注目条件として「注目条件」フィールドに書き込む。そして、ステップＳ１０へ進み、現在の注目条件を満たすような情報を得るための動作を実行する。この動作において、他のタスクをロードする場合には（ステップＳ１１）、ロードあるいは遷移したタスクに対応する対話情報がスタックトップに格納されている。そこで、当該タスクの名称をバッファＢＦ１に格納し（ステップＳ１２ａ）、その通知先のタスクを、当該対話情報に対応するタスクを通知先とすべく、新規フラグを「０」にした後（ステップＳ１２ｂ）、ステップＳ４へ戻る。
【００７９】
注目条件に対応する動作の実行に際し、タスク情報に他のタスクのロード、遷移が指定されていないときには（ステップＳ１１）、ここで処理が終了する。
【００８０】
ステップＳ３において、バッファＢＦ１に格納された発言情報あるいはタスク出力情報の通知先としてのタスクが現在までのスタックに格納されている対話情報からは求めることができなかったときには、ステップＳ１３へ進む。
【００８１】
ステップＳ１３において、新規フラグが「１」であるときは、現在バッファＢＦ１に格納されているものは、ユーザからの発言内容から得られた発言情報であるので、ステップＳ１４へ進み、当該発言情報に対応する新たなタスクを求めて（例えば、当該発言情報に一致する名称のタスクをロードして）、当該新たなタスクに対応する対話情報をスタックに格納する。一方、ステップＳ１３において、新規フラグが「０」のときは、現在バッファＢＦ１に格納されているものは、タスク出力情報であり、このタスク出力情報により解決される課題や、解決されたと判断するための複数の条件のうちの少なくとも１つでも満足させるような課題がスタックには存在しないので、ここで処理を終了する。
【００８２】
なお、このとき、スタック中に対話情報が残っている場合には、残っている対話情報を解決すべくスタックトップにある対話情報の注目条件に対応する動作を再度実行してもよい。
【００８３】
次に、図４〜図５を参照して、図３のステップＳ２における通知先探索処理動作を説明する。
【００８４】
ここでは、現在の探索対象となるスタック中の対話情報を格納するためにバッファＢＦ２を用い、このバッファＢＦ２に格納されている対話情報を「対象スタック」と呼ぶ。また、現在の探索対象となるタスク情報を格納するために、バッファＢＦ３を用い、このバッファＢＦ３に格納されているタスク情報（タスク）を「対象タスク」と呼ぶ。いずれも初期段階では空（ＮＵＬＬ）である（ステップＳ１００）。
【００８５】
通知先探索処理が起動されると（バッファＢＦ１に格納された発言情報あるいはタスク出力情報の通知先の探索が開始されると）、バッファＢＦ１は、スタックトップの対話情報から順に（スタックの先頭から順に）下位に格納されている対話情報が１つづつ格納され（ステップＳ１０２）、スタック中の全ての対話情報についての探索が終了するまで、以下の通知先探索処理を繰り返すようになっている（ステップＳ１０１）。
【００８６】
まず、ステップＳ１０３では、スタックトップの対話情報をバッファＢＦ２に格納し、この「対象スタック」に設定された対話情報に対応するタスク情報がバッファＢＦ３に格納される（「対象タスク」に設定する）。
【００８７】
バッファＢＦ１に格納された発言情報あるいはタスク出力情報を、この通知先探索処理では、入力情報と呼ぶ。
【００８８】
まず、図５のステップＳ１０４へ進み、入力情報が「対象スタック」の注目条件を満たすかどうかチェックする。満たすときは、ステップＳ１０８へ進み、現在の「対象タスク」を通知先のタスクとして出力し、満たさないときは、ステップＳ１０５へ進む。
【００８９】
ステップＳ１０５では、入力情報が「対象タスク」の全条件を満たすかどうかをチェックする。満たせば、ステップＳ１０８へ進み、現在の「対象タスク」を通知先のタスクとして出力し、満たさないときは、ステップＳ１０６へ進む。
【００９０】
ステップＳ１０６では、入力情報が「対象スタック」の注目条件の動作の中に入れ子状に包含されているタスクの中で全条件を満たすものがあるかどうかを調べる。そのようなタスクがある場合にはステップＳ１０７へ進み当該タスクを「対象タスク」に設定し、そのようなタスクがない場合にはステップＳ１０９へ進む。
【００９１】
ここで、ステップＳ１０４、ステップＳ１０６において、「対象スタック」の注目条件が入れ子のタスクの条件になっている場合は、「対象タスク」に定義されている条件を選択する。例えば、図７において注目条件が入れ子のタスクＴ２の「承認済みの場所−場所を取得」になっているが、「対象タスク」がＴ１であれば、「承認済みの場所」を注目条件として採用する。
【００９２】
ステップＳ１０９では、入力情報と、「対象スタック」の「意図情報」フィールドに記述されている意図情報とを比較し、それらが同じ種類の情報であるかどうかチェックする。同じ種類の情報であるときは、ステップＳ１０８へ進み、現在の「対象タスク」を通知先のタスクとして出力し、異なるときには、ステップＳ１１０へ進む。
【００９３】
ステップＳ１１０では、現在の「対象タスク」を入れ子状に包含するタスクがあるかどうかチェックする。「対象タスク」を包含するタスクがあるときは、ステップＳ１１１へ進み、当該タスクを「対象タスク」に設定し、ステップＳ１０４へ戻る。一方、「対象タスク」を包含するタスクがないときには、ステップＳ１０１へ戻り、スタック中の次の対話情報を対象スタックとして通知先探索処理を繰り返す。
【００９４】
スタック中の全ての対話情報を基に、上記のような通知先を探索した結果、通知先としてのタスクが得られなかったときには（ステップＳ１０１）、ステップＳ１１２へ進み、「通知先なし」を出力する。
【００９５】
通知先探索処理は、「ユーザが協調的であれば今現在の対話に関連する応答をする」ことを前提とし、現在の対話内容であるスタックトップから順に過去に遡って、入力情報を通知できるスタック、タスクを探索するものとなっている。
【００９６】
続いて、候補選択部１０１の処理動作について説明する。候補選択部１０１も図４〜図５の通知先探索処理に基づき動作する。自然言語解釈装置１から入力された発言情報群の中から、よりスタックの上位に通知でき、同じスタック要素の場合は現在注目している対話により近いものに通知できる候補を優先するように尤度（スコア）を編集する。
【００９７】
具体的にはスタックの上位（スタックの上位にある対話情報に対応するタスク）に通知するためには、図４のステップＳ１０１の通過回数を少なくする必要があり、現在注目している対話に近いものに通知するためには、図５のステップＳ１０４、ステップＳ１０５、ステップＳ１０６、ステップＳ１０９の通過回数を少なくするような候補を優先させる。
【００９８】
例えばステップＳ１０１、ステップＳ１０４、ステップＳ１０５、ステップＳ１０６、ステップＳ１０９を通過するたびにその候補のスコアを下げるように動作させればよい。これによりその時点での対話に適する内容の発話を優先的に選択することができる。
【００９９】
ここでカーナビゲーションシステムに適用された対話システムを例にとり、対話装置の処理動作をより具体的に説明する。
【０１００】
カーナビゲーションシステムに入力されるユーザの意図は、例えば、目的地設定、場所検索、住所で場所検索、登録名称で場所検索の４種類であるとする。これらは、目的地を設定するための解決すべき複数の課題であるともいえる。各課題に対応するタスク情報を、図２に示した。
【０１０１】
初期状態のスタックは空であるものとする。ここでは簡単のために、対話装置１００に入力するユーザの発言の認識結果として得られた情報には曖昧性がないものとし、自然言語解釈装置１による解釈結果が発言情報として直接対話スタック操作部１０２に通知されるものとする。候補選択部１０１の詳細動作については後述する。
【０１０２】
（１）第１の発言：「目的地を設定する」が自然言語解釈装置１に入力されたとする。
【０１０３】
自然言語解釈装置１の解釈結果は「目的地設定」であったとする。これが対話スタック操作部１０２に発言情報として通知されると、図３のフローチャートに従って、以下のように動作する。
【０１０４】
まず、バッファＢＦ１には「目的地設定」が格納され、新規フラグが「１」に設定される（ステップＳ０、ステップＳ１）。ステップＳ２では通知先が探索されるが、スタックが空であるので通知先は無しと判定され（図４のステップＳ１０１、ステップＳ１１２）、しかも新規フラグが「１」であるため、ステップＳ１４に進み、当該発言情報「目的地設定」に対応するタスク、すなわち、発言情報「目的地設定」を名称とするタスクＴ１をプラン記憶部１０４から選択し、ロードする。このとき、対話スタック操作部１０２は、当該タスクＴ１に対応する対話情報Ｅ１（図６参照）を生成し、スタックにプッシュする。
【０１０５】
タスクＴ１は、発言情報「目的地設定」を受けて呼び出されたので、現在のユーザの対話目的は「目的地設定」であり、これが意図情報として、図６に示すように対話情報Ｅ１に書き込まれる（ステップＳ４）。
【０１０６】
このときのスタックは図６に示したように、対話情報Ｅ１のみが格納されている状態である。
【０１０７】
タスクＴ１の条件は１つのみで、「承認済みの場所」であるが、まだ、図６のスタックの状態では、この条件を満たす情報は得られていない（ステップＳ５）。従って、注目条件として、「承認済みの場所」を選択する（ステップＳ９）。この条件「承認済みの場所」に対応する動作には、「目的地場所設定」というタスクＴ２が包含されている（入れ子になっている）ので、このタスクＴ２の条件、すなわち、「場所を取得」も選択する。その結果、対話情報Ｅ１は、図７に示すように、当該タスクの包含関係に対応して、名称が「目的地設定―目的地場所設定」、注目条件は「承認済みの場所―場所を取得」となる（ステップＳ９）。
【０１０８】
続いて、対話情報Ｅ１に設定された注目条件「場所を取得」に対応する動作を実行する（ステップＳ１０）。この動作には、「場所検索」というタスクＴ４をロードするものであるので、この指定によりタスクＴ４をロードし（ステップＳ１１）、このバッファＢＦ１に（このタスクＴ４の呼び出しは、ユーザの発言によるのではなく、当該指定によるという意味で）、当該タスクＴ４の名称「場所検索」を格納し、新規フラグは「０」に設定する（ステップＳ１２ａ、ステップＳ１２ｂ）。
【０１０９】
タスクＴ４がロードされて、スタックには、図８に示すように、タスクＴ４に対応する対話情報Ｅ２がプッシュされる（対話情報Ｅ２は、対話情報Ｅ１の上に積み上げられる）。タスクＴ４には、バッファＢＦ１に格納された「場所検索」が通知されるので、対話情報Ｅ２の意図情報としては、「場所検索」が書き込まれる（ステップＳ４）。図８に示すように、現在、対話情報Ｅ２がスタックトップとなっており、このタスクＴ４に対応する課題が現在の対話目的である。
【０１１０】
タスクＴ４の条件は、１つのみで「検索済みの場所」であるが、まだ、図８のスタックの状態では、この条件を満たす情報は得られていない（ステップＳ５）。従って、注目条件として、「検索済みの場所」を選択する（ステップＳ９）。この条件「検索済みの場所」に対応する動作には、「検索方法指定」というタスクＴ５が包含されている（入れ子になっている）ので、このタスクＴ５の条件、すなわち、「検索方法を取得」も選択する。その結果、対話情報Ｅ２は、図９に示すように、当該タスクの包含関係に対応して、名称が「場所検索―検索方法指定」、注目条件は「検索済みの場所―検索方法を取得」となる（ステップＳ９）。
【０１１１】
続いて、対話情報Ｅ２に設定された注目条件「検索方法を取得」に対応する動作を実行する（ステップＳ１０）。この動作はユーザに文を提示するものなので、その内容を表す応答情報を応答出力装置２に出力する。ここでとりあえず、図３に示した処理が終了する。このときのスタックの状態を図９に示す。
【０１１２】
応答出力装置２からは、上記動作により「住所と登録名称のどちらで検索しますか？」という応答文が出力される。その結果、ユーザからの発言があったときには（ユーザの発言内容から得られた発言情報が入力したときに）、再び、図３のステップＳ０から処理が開始される。
【０１１３】
（２）第２の発言：「住所で検索」が自然言語解釈装置１に入力されたとする。
【０１１４】
自然言語解釈装置１の解釈結果は「住所で場所検索」であったとする。これが対話スタック操作部１０２に通知されると、図３のフローチャートに従って、以下のように動作する。
【０１１５】
まず、バッファＢＦ１には「住所で場所検索」が格納され、新規フラグが「１」に設定される（ステップＳ０、ステップＳ１）。ステップＳ２では通知先が探索される。ここでは、当該発言情報が、図９の対話情報Ｅ２の注目条件を満たしているので（図５のステップＳ１０４）、当該発言情報の通知先のタスクは、タスクＴ５となる。従って、図１０に示すように、タスクＴ５に対応する対話情報Ｅ２の意図情報に、さらに「住所で場所検索」が追加される（ステップＳ４）。
【０１１６】
これにより、スタックトップの対話情報にＥ２に対応するタスクＴ５は、必要な条件を全て満たしたことになるので（ステップＳ５）、タスクＴ５に予め定められている全条件達成時動作を実行する（ステップＳ６）。なお、タスクＴ５の課題は達成されたので、当該入れ子のタスクＴ５に対応する対話情報は、スタックから削除する。例えば、この場合、対話情報Ｅ２の名称、注目条件から「検索方法の指定」、「検索方法を取得」をそれぞれ削除する。
【０１１７】
この全条件達成時動作には、対応する検索をロードするものであるから、この指定により、「住所で場所検索」というタスクＴ６をロードし（ステップＳ１１）、このバッファＢＦ１に、このタスクＴ６を呼び出す意図は、当該指定によるという意味で、当該タスクＴ６の名称「住所で場所検索」を格納し、新規フラグは「０」に設定する（ステップＳ１２ａ、ステップＳ１２ｂ）。
【０１１８】
タスクＴ６がロードされて、スタックには、図１１に示すように、タスクＴ６に対応する対話情報Ｅ３がプッシュされる（対話情報Ｅ３は、対話情報Ｅ２の上に積み上げられる）。タスクＴ６には、バッファＢＦ１に格納された「住所で場所検索」が通知されるので、対話情報Ｅ３の意図情報としては、「住所で場所検索」が書き込まれる（ステップＳ４）。図１１に示すように、現在、対話情報Ｅ３がスタックトップとなっており、このタスクＴ６に対応する課題が現在の対話目的である。
【０１１９】
以後前述同様にして処理が進められ、ステップＳ９では、注目条件として「都道府県名を取得」が選択されると、ステップＳ１０では、当該注目条件に対応する動作として、「都道府県名をどうぞ」がユーザに提示される。この動作には他のタスクをロードする操作はないので、この時点で図３に示す処理は一時終了する。この時点におけるスタックの状態を図１２に示す。
【０１２０】
（３）第３の発言：「神奈川県」が自然言語解釈装置１に入力されたとする。
【０１２１】
自然言語解釈装置１の解釈結果は、現在のスタックトップの対話情報の意図情報「住所で場所検索」を含めて、「住所で場所検索：神奈川県」であったとする。これが対話スタック操作部１０２に通知されると、図３のフローチャートに従って、以下のように動作する。
【０１２２】
まず、バッファＢＦ１には、発言情報「住所で場所検索：神奈川県」が格納され、新規フラグが「１」に設定される（ステップＳ０、ステップＳ１）。ステップＳ２では通知先が探索される。ここでは、当該発言情報が、図１２のスタックトップの対話情報Ｅ３の注目条件を満たしているので（図５のステップＳ１０４）、当該対話情報の通知先のタスクは、タスクＴ６となる。従って、タスクＴ６に対応する対話情報Ｅ３の意図情報に、「住所で場所検索：神奈川県」が書き込まれる（ステップＳ４）。タスクＴ６の課題を達成するための全ての条件はまだ満たされていないので（ステップＳ５）、残る条件の中から注目条件として「市区町村名を取得」が選択される（ステップＳ９）。当該注目条件に予め定められた動作を実行することにより、「市区町村名をどうぞ」と応答出力装置２から出力される。このときのスタックの状態を図１３に示す。この動作には他のタスクをロードする操作はないので、この時点で図３に示す処理は一時終了する。
【０１２３】
（４）第４の発言：「やっぱり登録名称で」が自然言語解釈装置１に入力されたとする。
【０１２４】
自然言語解釈装置１の解釈結果は、現在のスタックトップの対話情報を基に、「登録名称で場所検索」であったとする。これが対話スタック操作部１０２に通知されると、図３のフローチャートに従って、以下のように動作する。
【０１２５】
まず、バッファＢＦ１には、発言情報「登録名称で場所検索」が格納され、新規フラグが「１」に設定される（ステップＳ０、ステップＳ１）。ステップＳ２では通知先が探索されるが、発言情報「登録名称で場所検索」により、課題を解決するための全ての条件あるいは複数の条件のうちの少なくとも１つを満たすようなタスク、意図情報と同じ種類の対話情報が存在しない（ステップＳ１０４〜ステップＳ１０６、ステップＳ１０９）。従って、スタック中に最終的に通知先としてのタスクは存在しない。この場合、新規フラグは「１」であるから（ステップＳ１３）、当該発言情報に対応する対応するタスク、すなわち、発言情報「登録名称で場所検索」を名称とするタスクＴ７をプラン記憶部１０４から選択し、ロードする。このとき、対話スタック操作部１０２は、当該タスクＴ７に対応する対話情報Ｅ４（図１４参照）を生成し、対話情報Ｅ４がプッシュされる（対話情報Ｅ４は、対話情報Ｅ３の上に積み上げられる）。
【０１２６】
タスクＴ７は、発言情報「登録名称で場所検索」を受けて呼び出されたので、現在のユーザの対話目的は「登録名称で場所検索」であり、これが意図情報としての図６に示すように対話情報Ｅ４に書き込まれる（ステップＳ４）。
【０１２７】
このときのスタックを図１４に示す。
【０１２８】
注目条件として、タスクＴ７の唯１つの条件「登録名称指定を取得」が選択され、当該注目条件に対応する動作を実行することにより「登録名称をどうぞ」がユーザに提示される。このときのスタックの状態を図１５に示す。スタックトップの対話情報に対応する課題はタスクＴ７の登録名称で場所検索となっている。
【０１２９】
（５）第５の発言：「みなとみらい」が自然言語解釈装置１に入力されたとする。
【０１３０】
自然言語解釈装置１の解釈結果は、現在のスタックトップの対話情報の意図情報「登録名称で場所検索」を含めて、「登録名称で場所検索：みなとみらい」であったとする。これが対話スタック操作部１０２に通知されると、図３のフローチャートに従って、以下のように動作する。
【０１３１】
まず、バッファＢＦ１には、発言情報「登録名称で場所検索：みなとみらい」が格納され、新規フラグが「１」に設定される（ステップＳ０、ステップＳ１）。ステップＳ２では通知先が探索される。ここでは、当該発言情報が図１５のスタックトップの対話情報Ｅ４の注目条件を満たしているので（図５のステップＳ１０４）、当該対話情報の通知先のタスクは、タスクＴ７となる。従って、タスクＴ７に対応する対話情報Ｅ４の意図情報に、「登録名称で場所検索：みなとみらい」が書き込まれる（ステップＳ４）。この意図情報により、タスクＴ７の課題を達成するための全ての条件が満たされたので、すなわち、登録名称が取得されたので（ステップＳ５）、タスクＴ７に予め定められている全条件達成時動作を実行する（ステップＳ６）。この全条件達成時動作を実行すると、「みなとみらい」の登録名称を持つ場所（これをここでは、「ｍｉｎａｔｏｍｉｒａｉ」と表す）が検索される。当該タスクＴ７に予め定められたタスク出力情報は、「検索結果の場所」であるから、この全条件達成時動作の検索結果である「ｍｉｎａｔｏｍｉｒａｉ」がタスク出力情報としてバッファＢＦ１に格納され、新規フラグは「０」に設定する（ステップＳ７ａ、ステップＳ７ｂ）。
【０１３２】
なお、タスクＴ７の課題は達成されたので、タスクＴ７に対応する対話情報を、スタックから削除する。例えば、この場合、対話情報Ｅ４を削除する。このときのスタックの状態を図１６に示す。すなわち、現在のスタックトップは、対話情報Ｅ３となっている。
【０１３３】
次に、ステップＳ２において、現在バッファＢＦ１に格納されているタスク出力情報「ｍｉｎａｔｏｍｉｒａｉ」の通知先を探索する。
【０１３４】
当該タスク出力情報は、図１６に示したスタック中の対話情報Ｅ２の注目条件「検索済みの場所」を満足する情報であるので（図５のステップＳ１０４）、通知先は対話情報Ｅ２に対応するタスクＴ４となる（ステップＳ３）。
【０１３５】
この場合、対話情報Ｅ２がスタックトップとなるように、クリア操作を行う。すなわち、スタックから対話情報Ｅ３をポップする。そして、バッファＢＦ１に格納されているタスク出力情報が対話情報Ｅ２に対応するタスクＴ４に通知されるので、対話情報Ｅ２の意図情報には、「ｍｉｎａｔｏｍｉｒａｉ」が追加される。このときのスタックの状態を図１７に示す。
【０１３６】
バッファＢＦ１に格納されているタスク出力情報が通知されると、タスクＴ４の全ての条件が満足することとなる（ステップＳ５）。タスクＴ４には、全条件達成時動作がないので、タスクＴ４に予め定められたタスク出力情報、すなわち、「検索結果の場所」として、「ｍｉｎａｔｏｍｉｒａｉ」がバッファＢＦ１に格納されるとともに、新規フラグは「０」と設定される（ステップＳ７ａ、７ｂ）。タスクＴ４に対応する課題は達成されたので、タスクＴ４に対応する対話情報、すなわち、対話情報Ｅ２もポップされる。スタックトップは対話情報Ｅ１となる。
【０１３７】
次に、ステップＳ２において、現在バッファＢＦ１に格納されているタスク出力情報の通知先を探索する。当該タスク出力情報は、図１８に示したスタック中の対話情報Ｅ１の注目条件「場所を取得」を満足する情報であるので（図５のステップＳ１０４）、通知先は、スタックトップの対話情報Ｅ１に対応するタスクＴ２となる（ステップＳ３）。
【０１３８】
バッファＢＦ１に格納されているタスク出力情報が対話情報Ｅ１に対応するタスクＴ２に通知されるので、対話情報Ｅ１の意図情報には、「ｍｉｎａｔｏｍｉｒａｉ」が追加される。
【０１３９】
バッファＢＦ１に格納されているタスク出力情報が通知されると、タスクＴ２の全ての条件が満足することとなる（ステップＳ５）。従って、タスクＴ１に包含されているタスクＴ２の対話情報を対話情報Ｅ１から削除する。例えば、この場合、対話情報Ｅ１の名称、注目条件から「目的地場所」、「場所を取得」をそれぞれ削除する。このときのスタックの状態を図１９に示す。
【０１４０】
タスクＴ２には、全条件達成時動作として、タスクＴ３への遷移が予め定められているので、タスクＴ３に遷移する（ステップＳ６）。そして、タスクＴ４に予め定められたタスク出力情報、すなわち、「検索結果の場所」として、「ｍｉｎａｔｏｍｉｒａｉ」がバッファＢＦ１に格納されるとともに、新規フラグは「０」と設定される（ステップＳ７ａ、７ｂ）。
【０１４１】
タスクＴ３は、タスクＴ１に包含されるタスクであるので、タスクＴ３に遷移すると（ステップＳ８）、対話情報Ｅ１の名称には、タスクＴ３の名称である「目的地承認」が追加される（ステップＳ４）。タスクＴ３の課題を達成するための条件「検索された場所に対する承諾」、すなわち、検索された場所に対するユーザの承諾はまだ得られていないので（ステップＳ５）、対話情報Ｅ１の注目条件に、タスクＴ３の条件「検索された場所に対する承諾」を設定する（ステップＳ９）。そして、当該注目条件に対応する動作を実行する（ステップＳ１０）。この動作を実行することにより、ユーザには「こちらを目的地に設定しますか？」が出力されると共に、「ｍｉｎａｔｏｍｉｒａｉ」の位置が地図に表示される。「動作」フィールドには、ロード処理が無かったのでここで処理を終了してユーザの入力を待つ。この時点でのスタックの状態を図２０に示す。
【０１４２】
（６）第６の発言：「はい」が自然言語解釈装置１に入力されたとする。
【０１４３】
自然言語解釈装置２の解釈結果は「許諾」であったとする。これが対話スタック操作部１０２に通知されると、図３のフローチャートに従って、以下のように動作する。
【０１４４】
まず、バッファＢＦ１には、発言情報「許諾」が格納され、新規フラグが「１」に設定される（ステップＳ０、ステップＳ１）。ステップＳ２では通知先が探索される。ここでは、当該発言情報が図２０のスタックトップの対話情報Ｅ１の注目条件を満たしているので（図５のステップＳ１０４）、当該対話情報の通知先のタスクは、タスクＴ３となる。従って、タスクＴ３に対応する対話情報Ｅ１の意図情報に、バッファＢＦ１に格納されている発言情報「承諾」が書き込まれる（ステップＳ４）。この意図情報により、タスクＴ３の課題を達成するための全ての条件が満たされたので、すなわち、検索された場所に対する承諾が得られたので（ステップＳ５）、タスクＴ３に予め定められている全条件達成時動作を実行する（ステップＳ６）。この全条件達成時動作を実行すると、承諾された場所に承諾済みフラグ（これを「ｄｅｓｔＯＫ」と表す）を与えられる。当該タスクＴ３に予め定められたタスク出力情報は、「検索結果の場所」であるから、この全条件達成時動作の結果である承諾済みフラグの与えられた承諾された場所、すなわち、「ｍｉｎａｔｏｍｉｒａｉ（ｄｅｓｔＯＫ）」がタスク出力情報としてバッファＢＦ１に格納され、新規フラグは「０」に設定する（ステップＳ７ａ、ステップＳ７ｂ）。タスクＴ３の課題は達成されたので、当該タスクＴ３に対応する対話情報をスタックから削除する。例えば、この場合、対話情報Ｅ１の名称、注目情報から「目的地承認」、「検索された場所に対する承諾」をそれぞれ削除する。この全条件達成時動作では、ロード処理がなかったので、ステップＳ２へ進む。このときのスタックの状態を図２１に示す。
【０１４５】
現在バッファＢＦ１に格納されている情報は、タスクＴ３のタスク出力情報である、承諾済みフラグの与えられた承諾された場所、すなわち、「ｍｉｎａｔｏｍｉｒａｉ（ｄｅｓｔＯＫ）」である。このタスク出力情報は、図２１に示したスタック中の対話情報Ｅ１の注目条件「目的地承認済みの場所」を満足する情報であるので（図５のステップＳ１０４）、通知先は対話情報Ｅ１に対応するタスクＴ１となる（ステップＳ３）。バッファＢＦ１に格納されているタスク出力情報が対話情報Ｅ１に対応するタスクＴ１に通知されるので、対話情報Ｅ１の意図情報には、「ｍｉｎａｔｏｍｉｒａｉ（ｄｅｓｔＯＫ）」が追加される。このときのスタックの状態を図２２に示す。
【０１４６】
バッファＢＦ１に格納されているタスク出力情報が通知されると、タスクＴ１の全ての条件が満足するので（ステップＳ５）、タスクＴ１に予め定められている全条件達成時動作を実行する（ステップＳ６）。この全条件達成時動作を実行すると、承諾済みの場所「ｍｉｎａｔｏｍｉｒａｉ」までのルート計算が実施される。当該タスクＴ１に予め定められたタスク出力情報は、「ルート情報」であるから、この全条件達成時動作の計算結果である「ｍｉｎａｔｏｍｉｒａｉ」までのルート情報がタスク出力情報としてバッファＢＦ１に格納され、新規フラグは「０」に設定する（ステップＳ７ａ、ステップＳ７ｂ）。なお、タスクＴ１の課題は達成されたので、タスクＴ１に対応する対話情報Ｅ１をスタックからポップする。この場合、スタックは空となる。
【０１４７】
タスクＴ１の全条件達成時動作には、ロード処理はないので、ステップＳ２へ進むが、ここでは、スタックが空であるので（図４のステップＳ１０１）、通知先なしと判定される。また、新規フラグは「０」であるから（ステップＳ１３）、ユーザの入力待ち状態になる。
【０１４８】
（７）スタックが図２０に示すような状態において、「こちらを目的地に設定しますか？」が出力されたとき、上記第６の発言：「はい」ではなく、ユーザが場所を変更することを意図して、第７の発言：「山下公園で」と発言し、これが、自然言語解釈装置１に入力されたとする。
【０１４９】
自然言語解釈装置２の解釈結果は、例えば、プラン記憶部１０４に記憶されているプランの各課題の条件などを参照することにより、「登録名称で場所検索：山下公園」であったとする。これが対話スタック操作部１０２に通知されると、図３のフローチャートに従って、以下のように動作する。
【０１５０】
まず、バッファＢＦ１には、発言情報「登録名称で場所検索：山下公園」が格納され、新規フラグが「１」に設定される（ステップＳ０、ステップＳ１）。ステップＳ２では通知先が探索されるが、発言情報「登録名称で場所検索：山下公園」により、課題を解決するための全ての条件あるいは複数の条件のうちの少なくとも１つを満たすようなタスク、意図情報と同じ種類の対話情報が存在しない（ステップＳ１０４〜ステップＳ１０６、ステップＳ１０９）。従って、スタック中に最終的に通知先としてのタスクは存在しない。この場合、新規フラグは「１」であるから（ステップＳ１３）、当該発言情報に対応する対応するタスク、すなわち、発言情報に含まれる情報「登録名称で場所検索」を名称とするタスクＴ７をプラン記憶部１０４から選択し、ロードする。このとき、対話スタック操作部１０２は、当該タスクＴ７に対応する対話情報Ｅ５を生成し、対話情報Ｅ５がプッシュされる（対話情報Ｅ５は、対話情報Ｅ１の上に積み上げられる）。
【０１５１】
タスクＴ７は、発言情報「登録名称で場所検索：山下公園」を受けて呼び出されたので、現在のユーザの対話目的は「山下公園という登録名称で場所検索」であり、これが意図情報として、図２３に示すように対話情報Ｅ５に書き込まれる（ステップＳ４）。このときのスタックを図２３に示す。
【０１５２】
ここでは、対話情報Ｅ５に意図情報として書き込まれた発言情報がタスクＴ７の課題を解決すべき全条件を満たすので、すなわち、登録名称が取得されたので（ステップＳ５）、タスクＴ７に予め定められている全条件達成時動作を実行する（ステップＳ６）。この全条件達成時動作を実行すると、「山下公園」の登録名称を持つ場所（これをここでは、「ｙａｍａｓｈｉｔａ−ｐａｒｋ」と表す）が検索される。当該タスクＴ７に予め定められたタスク出力情報は、「検索結果の場所」であるから、この全条件達成時動作の検索結果である「ｙａｍａｓｈｉｔａ−ｐａｒｋ」がタスク出力情報としてバッファＢＦ１に格納され、新規フラグは「０」に設定する（ステップＳ７ａ、ステップＳ７ｂ）。タスクＴ７の課題は達成されたので、タスクＴ７に対応する対話情報Ｅ５をスタックからポップする。
【０１５３】
次に、ステップＳ２において、現在バッファＢＦ１に格納されているタスク出力情報「ｙａｍａｓｈｉｔａ−ｐａｒｋ」の通知先を探索する。ステップＳ２の処理において、「対象タスク」が、対話情報Ｅ１に対応するタスクＴ３であるとき、このタスク出力情報は、タスクＴ３の条件を満たすようなユーザの許諾を表すものではなく、同種の意図でもないので（図５のステップＳ１０４〜ステップＳ１０６，ステップＳ１０９）、図５のステップＳ１１０へ進む。タスクＴ３を包含するタスクＴ１を「対象タスク」とする。ステップＳ１０４，Ｓ１０５を経由して、ステップＳ１０６へ進む。ここで対話情報Ｅ１の注目条件中のタスクＴ１に対応する条件「承認済みの場所」に関する動作に含まれるタスクＴ２、Ｔ３の全条件を調べる。
【０１５４】
すると、当該タスク出力情報は、タスクＴ２の全条件「場所を取得」を満たすので、「対象タスク」にタスクＴ２を設定し（ステップＳ１０７）、通知先をタスクＴ２と決定する（ステップＳ１０８）。
【０１５５】
この場合、対話情報Ｅ１の名称は、「目的地設定−目的地場所設定」となり、バッファＢＦ１に格納されているタスク出力情報が対話情報Ｅ１に対応するタスクＴ２に通知されるので、対話情報Ｅ１の意図情報には、「ｍｉｎａｔｏｍｉｒａｉ」ではなく、「ｙａｍａｓｈｉｔａ−ｐａｒｋ」に書き換えられる。バッファＢＦ１に格納されている対話情報Ｅ１に対応するタスクＴ２にタスク出力情報が通知されると、タスクＴ２の全ての条件が満足することとなる（ステップＳ５）。従って、タスクＴ１に包含されているタスクＴ２の対話情報を対話情報Ｅ１から削除する。例えば、この場合、対話情報Ｅ１の名称から「目的地場所」を削除する。このときのスタックの状態を図２４に示す。この段階で、検索結果の場所として「ｙａｍａｓｈｉｔａ−ｐａｒｋ」が得られた。
【０１５６】
図２４に示すスタックの状態は、図１９に示したスタックの状態と同じである。その後の処理動作も前述同様にして、タスクＴ３へ遷移して、当該検索結果の場所に対し承諾を得て、タスクＴ１に戻り、ルート計算を行い、その結果を出力する。
【０１５７】
続いて候補選択部１０１の詳細動作について、スタックが図１３に示す状態のときを例にとり、図４、図５を用いて説明する。この例での候補選択部１０１のスコア編集方針は、ステップＳ１０１を通過し、下層のスタック要素を探索するようになる度にスコアを「−３０」、ステップＳ１０４、ステップＳ１０５，ステップＳ１０６，ステップＳ１０９を通過するたびにスコアを「−１０」、また、通知先が見つからなかった場合は探索中の減点を無視して一律スコアを「−５０」とする。
【０１５８】
スタックが図１３の状態のとき、第８の発言：「川崎市」が自然言語解釈装置１に入力されたとする。この入力は、応答出力装置２から出力される応答文「市区町村名をどうぞ」に対するユーザの回答の例である。この入力に対して、自然言語解釈装置１では、音声認識により、以下のような候補群が得られる。
「許諾（はい）」（９２０）
「香川県」（９００）
「川崎市」（８８０）
なお、「（  ）」内はその候補に与えられた（音声認識時に求まる）スコアである。
【０１５９】
まず候補「許諾」について検討すると、ステップＳ１０３で「対象スタック」は対話情報Ｅ４が設定され、「対象タスク」にはタスクＴ６が設定される。ステップＳ１０４、ステップＳ１０５，ステップＳ１０６，ステップＳ１０９のいずれにおいても「住所で場所検索」というタスクにのもつ条件は「許諾」により満たされないのでステップＳ１１０へ進む。
【０１６０】
タスク「住所で場所検索」を包含するタスクは、対話情報Ｅ３には存在しないので、ステップＳ１０１に進み、「対象スタック」に対話情報Ｅ２を設定する。これも同様にタスク「場所検索」には「許諾」により満たされるような条件はなく、再びステップＳ１０１に進み、「対象スタック」に対話情報Ｅ１を設定する。この場合、ステップＳ１０３で「対象タスク」には最初タスクＴ２の「目的地場所設定」が設定されるが、このタスクには、「許諾」により満たされるような条件はないので、ステップＳ１１０まで進む。タスクＴ２は、タスクＴ１に包含されているので、「対象タスク」にタスクＴ１「目的地設定」を設定して、ステップＳ１０４へ進む。ステップＳ１０４からステップＳ１０５を経由して、ステップＳ１０６へ進む。
【０１６１】
ステップＳ１０６では、タスクＴ１に関連する注目条件「承認済みの場所」に関する動作に含まれるタスクＴ２、Ｔ３の全条件を調べる。すると、タスクＴ３「目的地承認」がユーザの許諾を待っているが、解決済みの場所が通知されていないので満たされず、最終的には「許諾」の通知先は見つからない。よって候補「許諾」のスコアは「８７０」となる。あるいは「許諾」に対応するタスクが定義されていない場合は新規タスクをロードできないので棄却される。
【０１６２】
候補「香川県」について検討すると、ステップＳ１０１で、「対象スタック」には、対話情報Ｅ３が設定される。ステップＳ１０４での判定では、こ当該候補は、注目条件「市区町村名を取得」を満たしていないので、ステップＳ１０５へ進む。ステップＳ１０５でも「香川県」は都道府県のみの情報なので全条件を満たしていないと判定されるので、ステップＳ１０６へ進む。ステップＳ１０６では条件「市区町村名を取得」に対応する動作には入れ子のタスクが存在しないので、満たすタスクも存在せず、従って、ステップＳ１０９へ進む。ステップＳ１００９では、候補「香川県」と対象スタックの意図情報「神奈川県」は、同じ種類の情報、すなわち、同じ住所指定の意図であると判定されるので、通知先は、対話情報Ｅ３に対応するタスクＴ６と決定される。このとき自然言語解釈装置１で求めたスコアから３０点減点されて「香川県」のスコアは８７０点となる。
【０１６３】
続いて、候補「川崎市」については、ステップＳ１０１で、「対象スタック」に対話情報Ｅ３が設定される。ステップＳ１０４の判定で、「川崎市」は注目条件「市区町村名を取得」を満たすので、通知先は、対話情報Ｅ３に対応するタスクＴ６と決定される。このとき、自然言語解釈装置１で求めたスコアから減点なしで「川崎市」のスコアは８８０点のままである。
【０１６４】
このようにしてスタックへの通知先を加味してスコアを再計算した結果、ユーザの入力として候補「川崎市」を発言情報として採用することになる。これはシステムが「市区町村名」を問い合わせているという状況を加味した選択であると言える。このように候補選択部１０１ではその時の対話スタック状態を加味してスコアを編集するので、その時の対話状態に応じた動的な候補選択が可能となる。
【０１６５】
かくしてこのように構成された対話管理装置１００によれば、話題変更であると判定した場合にもあらかじめ復帰先の話題を決定することなく話題の中断処理を行い、話題が元々の話題に寄与するような場合においても適切に元の話題に復帰することが可能となる。また、本発明によれば、ユーザの入力時の対話状況を加味した候補選択を実行することが可能となる。
【０１６６】
尚、本発明は上述の実現形態に限定されるものではない。対話スタック管理部１０３で管理するプランで、タスクを入れ子にして記述できるように例示しているが、入れ子になっているタスクを新たな対話情報としてプッシュするように記述しても良い。この場合図３の判定操作のステップＳ１０６、ステップＳ１０７も省略されるだろう。
【０１６７】
尚、上述の例では、カーナビゲーションシステムの形式で実現しているように記述しているが、これらの対話管理方式については上述の実現形態に限定されるものではない。本発明の実現形態はこれに限定されるものではなく、例えば、観光案内システム等で実現することも可能であり、そのような実現形態も本発明の趣旨の範囲内である。以上のように、本発明の実現形態には上述の例に対して種々の変形が可能であり、それらも趣旨に反しない限り本発明の実施形態の範囲内である。
【０１６８】
このように、上記実施形態によれば、ユーザとの対話で得られた発言情報により解決する課題をスタックから削除するとともに、当該課題を解決した結果得られるタスク出力情報を得ると、スタックに記憶された、タスク出力情報に関連する課題（ここでは、第１の課題と呼ぶ）を次の対話目的として使用する（設定する）ために、第１の課題がスタックに記憶された後にスタックに記憶された課題はスタックから削除して、第１の課題をスタックトップとする。すなわち、対話により１つの課題が解決されたとき、その課題が解決された結果、対話目的とする必要のなくなった無用な課題を当該解決された課題のタスク出力情報を基に探索して、スタックから削除する。従って、１つの課題が解決された後は、当該課題と関連する、あるいは同様の課題を対話目的として対話することがなくなるため、冗長で不自然な対話を避けることができる。
【０１６９】
また、ユーザとの対話で得られた発言情報により、スタックに記憶された課題のうちの１つ（ここでは、第１の課題と呼ぶ）が解決されたと判断するための条件を少なくとも１つ満足するとき、当該第１の課題は前記発言情報に関連する課題であると判断して、当該第１の課題より後にスタックに記憶された課題をスタックから削除し、当該第１の課題を対話目的に設定することにより、ユーザの意図で対話目的を変更する場合も、違和感なく、対話目的を変更でき、その後に過去に用いた同様な対話目的で対話することもなくなり、冗長で不自然な対話を避けることができる。
【０１７０】
（第２の実施形態）
上記第１の実施形態では、課題を達成してからその課題の出力（タスク出力情報）の通知先を探索して対話を進めていたが、この場合に限らず、新たなタスクが呼び出されたときに、そのタスクのタスク出力情報の通知先を予め予測しておくようにしてもよい。そこで、第２の実施形態として、新たな課題に対応する対話情報をスタックに格納する際に、その課題に対応付けられているタスク出力情報を基に、スタック中に対話情報として記録されているタスクの中から当該新たな課題が達成したときの当該新たな課題のタスク出力情報の通知先を予め検索（予測）する対話装置について説明する。
【０１７１】
なお、第２の実施形態に係る対話装置の構成は、第１の実施形態にかかる対話装置の構成（図１参照）と同一であり、対話スタック操作部１０２の動作が異なる。また、新たな対話情報をスタックに記憶する際に、上記のように、当該新たな対話情報に対応する課題が解決されたときに出力されるタスク出力情報の通知先を予め予測するので、この予測結果としての通知先を記録しておくために、対話情報には、被通知可能性フィールドが追加されている。
【０１７２】
以上の２点が第１の実施形態の場合と異なり、以下、この異なる点を重点的に説明する。
【０１７３】
図２６は第２の実施形態におけるスタックの状態の一例を示したもので、これは、第１の実施形態の図１３に示したスタックの状態に対応する。
【０１７４】
図２６に示したように、各対話情報には、前述同様、対話スタック操作部１０２によって対話に使用しているタスクが対応し、ある時点の対話内容はその時のスタックトップ（スタック内の一番上にある要素）に対応するタスクに関するものとなっている。
【０１７５】
図２６の各対話情報には、新たに「被通知可能性」フィールドが追加されている。
【０１７６】
各対話情報の「被通知可能性」フィールドは、その上段にある対話情報の出力（タスク出力情報）の通知先として可能性があると推定されたときに、当該タスク出力情報を出力するタスクを列挙するフィールドである。
【０１７７】
図２６に示すスタックでは、対話情報Ｅ２の「被通知可能性」フィールドの記述によれば、対話情報Ｅ２の「場所検索」タスクＴ４には、対話情報Ｅ３に対応する「住所で場所検索」タスクＴ６のタスク出力情報が通知されると推定されていることがわかる。また、対話情報Ｅ１の「被通知可能性」フィールドの記述によれば、対話情報Ｅ１の「目的地場所設定」タスクＴ２には、対話情報Ｅ２に対応する「場所検索」タスクＴ４のタスク出力情報が通知されると推定されていることがわかる。一方、対話情報Ｅ３には、その上段に対話情報が存在しないため、「被通知可能性」フィールドは空になっている。上段に複数対話情報が存在し，それらが同じ対話情報に通知する場合は「被通知可能性」フィールドには複数の対話情報が列挙される。
【０１７８】
対話スタック操作部１０２は、タスクをロードする際には、ロード元のタスクの対話情報の「被通知可能性」フィールドに、今回ロードしたタスク情報の名称を追加する。ユーザの発言内容から得られた発言情報から新規にタスクをロードする場合は、ロードするタスクの一番外側のタスク出力情報を利用して、図４、図５の通知先探索処理を実行し、その結果、通知先のタスク（に対応する対話情報）が存在した場合は，その対話情報の「被通知可能性」フィールドに今回新たにロードするタスク情報を通知する。ロードは、前述同様、対話においてより詳細な話題に進む場合、別の話題をはじめる場合に呼び出される手続きである。
【０１７９】
遷移も、前述同様、新たなタスクを呼び出す際の手続きであるが、現在の対話目的で使用しているタスクを変更するように新たなタスクをロードする。下段の対話情報の「被通知可能性」フィールドに、遷移元のタスクの名称が書き込まれている場合は、その対話情報の「被通知可能性」フィールドに遷移さきのタスクの名称を追加する。現在のタスクが通知されている場合は、その対話情報に現在のタスクを通知する。対話が順序だてて進む場合に話題が次に進む場合などに呼び出される手続きである。
【０１８０】
図２５は、第２の実施形態にかかる対話スタック操作部１０２の処理動作全体を説明するためのフローチャートである。なお、図２５において、図３と同一部分には同一符号を付し、異なる部分についてのみ説明する。すなわち、図３では、あるタスクの課題が達成されて当該タスクのタスク出力情報が実際に出力された時点でその通知先のタスクを探索するようになっていたが、これに代わり、図２５では、あるタスクに対応する対話情報をスタックに記憶する際に（新たな課題が発言情報により呼び出されたときには図２５のステップＳ１４において、それ以外のタスクのロード・遷移の場合にはステップＳ６、ステップＳ１０において）、当該タスクの課題が達成したときに当該タスクから出力されるタスク出力情報の通知先を予め推定しておく。当該タスクの課題が達成したときには、ステップＳ３０１において、当該タスクのタスク出力情報の通知先として予め推定されたタスクがあるかを各対話情報の「被通知可能性」フィールドを参照して探し、あれば、その通知先として推定されたタスクに対し、当該タスク出力情報を通知するようになっている。
【０１８１】
ステップＳ２では、バッファＢＦ１に格納された発言情報の通知先を探索する。なお、この通知先探索処理は、図４〜図５と同様である。
【０１８２】
ステップＳ３０１では、バッファＢＦ１に格納された発言情報あるいはタスク出力情報の通知先があるかどうかを確認する。ステップＳ２で得られた通知先があるか、あるいは、タスク出力情報の出力元のタスクに対応する対話情報より下に、当該タスク出力情報の出力元のタスクの名称が記述されている「被通知可能性」フィールドを持つ対話情報があるか探索する。通知先がある場合はステップＳ４へ進み、ない場合は、ステップＳ１３へ進む。
【０１８３】
次に、第２の実施形態の具体例として、第１の実施形態の具体例と異なる部分について説明する。
【０１８４】
（１）第１の発言：「目的地を設定する」が自然言語解釈装置１に入力されたとき、対話スタック操作部１０２には発言情報「目的地設定」が通知され、ステップＳ１４において、当該発言情報「目的地設定」に対応するタスク、すなわち、発言情報「目的地設定」を名称とするタスクＴ１をロードし、対話スタック操作部１０２は、当該タスクＴ１に対応する対話情報Ｅ１を生成し、スタックにプッシュする。このとき、対話情報Ｅ１より下に格納されている対話情報（対話情報Ｅ１がスタックに格納される以前にスタックに格納された対話情報）は存在しないので、当該タスクＴ１達成時にタスク出力情報の通知先の探索は行わない。このときのスタックの状態を図２７に示す。
【０１８５】
前述同様にして、タスクＴ２からタスクＴ４が呼び出され（ロードされ）、タスクＴ４に対応する対話情報Ｅ２がスタックに格納される（ステップＳ１０）。このとき、タスクＴ４は、対話情報Ｅ１に対応するタスクＴ２から呼び出されたので、タスクＴ４のタスク出力情報は、対話情報Ｅ１に対応するタスクＴ２に通知される。従って、対話情報Ｅ１の「被通知可能性」フィールドに、タスクＴ４の「場所検索」タスクが追加される。タスクＴ４には、バッファＢＦ１に格納された「場所検索」が通知されるので、対話情報Ｅ２の意図情報としては、「場所検索」が書き込まれる（ステップＳ４）。この段階でのスタックの状態を図２８に示す。その後、前述同様にして、注目条件の選択、当該注目条件に対応する動作を実行する。このときのスタックの状態を図２９に示す。
【０１８６】
（２）スタックが図２９に示した状態のときに、第２の発言：「住所で検索」が自然言語解釈装置１に入力されたとする。自然言語解釈装置１の解釈結果は「住所で場所検索」であったとする。これが対話スタック操作部１０２に通知されると、当該発言情報は、図２９の対話情報Ｅ２の注目条件を満たしているので、現在対話目的となっているタスクＴ５の全条件達成時動作を実行する（ステップＳ６）。なお、前述同様、対話情報Ｅ２からはタスクＴ５に対応する対話情報は削除する。
【０１８７】
この全条件達成時動作で「住所で場所検索」タスクＴ６がロードされて、スタックには、図３０に示すように、タスクＴ６に対応する対話情報Ｅ３がプッシュされる（対話情報Ｅ３は、対話情報Ｅ２の上に積み上げられる）。このとき、タスクＴ６は、対話情報Ｅ２からロードされたので、対話情報Ｅ２の「被通知可能性」フィールドに、「住所で場所検索」タスクＴ６が追加される。
【０１８８】
（３）以降、前述同様にして、第３の入力：「神奈川県」が入力がされて、スタックが図３１に示すような状態になったとする。
【０１８９】
（４）スタックが図３１の状態のときに、第４の発言：「やっぱり登録名称で」が自然言語解釈装置１に入力されたとする。すると、図３２に示すように、スタックには、対話情報Ｅ４が格納され、この対話情報Ｅ４に対応する「登録名称で場所検索」タスクＴ７のタスク出力情報「検索済みの場所」の通知先を探索するために、図４，図５に示す通知先探索処理を行う。その結果、当該タスク出力情報は、「場所検索」タスクＴ４の条件を満たすので、当該タスクＴ４に対応する対話情報Ｅ２の「被通知可能性」フィールドに、「登録名称で場所検索」タスクＴ７を追加する（図３２の対話情報Ｅ２参照）。
【０１９０】
（５）第５の発言：「みなとみらい」が自然言語解釈装置１に入力されたとする。この発言に対応する発言情報「登録名称で場所検索：みなとみらい」が対話装置１００に入力すると、当該発言情報により、前述したように、対話情報Ｅ４に対応するタスクＴ７の課題が解決される（ステップＳ５）。このタスクＴ７の全条件達成時動作を実行し、「ｍｉｎａｔｏｍｉｒａｉ」がタスク出力情報として出力される。そこで、ステップＳ３０１へ進み、このタスク出力情報の通知先をスタック中の対話情報の「被通知可能性」フィールドを参照して探索すると、「登録名称で場所検索」タスクＴ７が指定されている対話情報Ｅ２が見つかる。そこで、この対話情報Ｅ２に対応する「場所検索」タスクＴ４に、バッファＢＦ１に格納されているタスク出力情報を「ｍｉｎａｔｏｍｉｒａｉ」が通知される。
【０１９１】
対話情報Ｅ２に対応する「場所検索」タスクＴ４に、タスク出力情報「ｍｉｎａｔｏｍｉｒａｉ」が通知されると、対話情報Ｅ３はクリアにより、スタックからポップされる。さらに、これにより「場所検索」タスクＴ４の条件を満たしているので、全条件達成時動作を実行し、「ｍｉｎａｔｏｍｉｒａｉ」がタスク出力情報として出力される。ステップＳ３０１で、この通知先を探索すると、対話情報Ｅ１の「被通知可能性」フィールドに「場所検索」タスクＴ２が追加されているので、対話情報Ｅ１のタスクＴ２に、当該タスク出力情報が通知される。すると、タスクＴ２の課題は解決されて、タスクＴ２の全条件達成時動作を実行する。また、このようにして課題の解決されたタスクＴ２に対応する対話情報は、前述同様にして、スタックから削除される。このときのスタックの状態を図３３に示す。
【０１９２】
全条件達成時動作として、タスクＴ３への遷移が予め定められているので、「目的地承認」タスクＴ３をロードする。タスクＴ３のタスク出力情報は、検索された承認済みの場所である。このタスク出力情報の通知先を図４，図５に示した通知先探索処理に従って探索すると、当該タスク出力情報は、対話情報Ｅ１の「目的地設定」タスクＴ１の条件を満たすことわかるので、対話情報Ｅ１の「被通知可能性」フィールドに、「目的地承認」タスクＴ３を追加する。このときのスタックの状態を図３４に示す。
【０１９３】
（６）第６の発言：「はい」が入力すると、前述同様にして、タスクＴ３の課題が解決するので、タスクＴ３の全条件達成時動作を実行した結果をタスク出力情報として、そのタスク出力情報の通知先として予め推定されたタスクＴ１に通知する。また、タスクＴ３に対応する対話情報も前述同様削除される。タスクＴ１の課題も達成されたので、タスクＴ１に対応する対話情報Ｅ１はポップされるが、これにより、スタックは空となる。従って、タスクＴ１のタスク出力情報の通知先は存在しないので、ここで入力待ちとなる。このときのスタックの状態を図３５に示す。
【０１９４】
（７））スタックが図３４に示すような状態において、「こちらを目的地に設定しますか？」が出力されたとき、上記第６の発言：「はい」ではなく、ユーザが場所を変更することを意図して、第７の発言：「山下公園で」と発言し、これが、自然言語解釈装置１に入力されたとする。
【０１９５】
自然言語解釈装置２の解釈結果は、例えば、プラン記憶部１０４に記憶されているプランの各課題の条件などを参照することにより、「登録名称で場所検索：山下公園」であったとする。これが発言情報として対話スタック操作部１０２に通知されると、ステップＳ２では通知先が探索されるが、発言情報「登録名称で場所検索：山下公園」により、課題を解決するための全ての条件あるいは複数の条件のうちの少なくとも１つを満たすようなタスク、意図情報と同じ種類の対話情報が存在しない（ステップＳ１０４〜ステップＳ１０６、ステップＳ１０９）。従って、スタック中に最終的に通知先としてのタスクは存在しない。この場合、新規フラグは「１」であるから（ステップＳ１３）、当該発言情報に対応するタスク、すなわち、発言情報に含まれる情報「登録名称で場所検索」を名称とするタスクＴ７をプラン記憶部１０４から選択し、ロードする。このとき、対話スタック操作部１０２は、当該タスクＴ７に対応する対話情報Ｅ５を生成し、対話情報Ｅ５がプッシュされる（対話情報Ｅ５は、対話情報Ｅ１の上に積み上げられる）。
【０１９６】
このとき、タスクＴ７のタスク出力情報の通知先を探索する。図４，図５に示した処理により、通知先として、対話情報Ｅ１に対応するタスクＴ１に包含されるタスクＴ２の「目的地場所設定」が得られる。そこで、対話情報の「被通知可能性」フィールドに、タスクＴ７の「登録名称で場所検索」を追加する。対話情報Ｅ５の意図情報には、先ほどの発言情報が書き込まれるのは前述同様である。このときのスタックの状態を図３６に示す。
【０１９７】
さて、対話情報Ｅ５に意図情報として書き込まれた発言情報がタスクＴ７の課題を解決すべき全条件を満たすので、すなわち、登録名称が取得されたので（ステップＳ５）、タスクＴ７に予め定められている全条件達成時動作を実行する（ステップＳ６）。この全条件達成時動作を実行すると、「山下公園」の登録名称を持つ場所（これをここでは、「ｙａｍａｓｈｉｔａ−ｐａｒｋ」と表す）が検索される。当該タスクＴ７に予め定められたタスク出力情報は、「検索結果の場所」であるから、この全条件達成時動作の検索結果である「ｙａｍａｓｈｉｔａ−ｐａｒｋ」がタスク出力情報として出力される。このタスク出力情報の通知先は、「被通知可能性」フィールドの記述から対話情報Ｅ１である。より具体的には、タスクＴ１に包含されるタスクＴ２である。
【０１９８】
すなわち、通知先として、タスクＴ２が存在するので、対話情報Ｅ１の名称は、「目的地設定−目的地場所設定」となり、バッファＢＦ１に格納されているタスク出力情報が対話情報Ｅ１に対応するタスクＴ２に通知されるので、対話情報Ｅ１の意図情報には、「ｍｉｎａｔｏｍｉｒａｉ」ではなく、「ｙａｍａｓｈｉｔａ−ｐａｒｋ」に書き換えられる。バッファＢＦ１に格納されている対話情報Ｅ１に対応するタスクＴ２にタスク出力情報が通知されると、タスクＴ２の全ての条件が満足することとなる（ステップＳ５）。従って、タスクＴ１に包含されているタスクＴ２に関する情報を対話情報Ｅ１から削除する。すなわち、この場合、対話情報Ｅ１の名称から「目的地場所」を削除する。このときのスタックの状態を図３７に示す。この段階で、検索結果の場所として「ｙａｍａｓｈｉｔａ−ｐａｒｋ」が得られた。
【０１９９】
このように、上記第２の実施形態によれば、スタックに新たなタスク（課題）に対応する対話情報を格納する際に、当該新たなタスクのタスク出力情報の通知先をスタックに対話情報として格納されているタスクの中から探索しておく。そして、実際に当該新たな課題が解決したときには、そのタスク出力情報を先に探索されたタスクへ通知して、当該タスクを対話目的とすることにより、前述の第１の実施形態と同様の効果を奏する。第１の実施形態との違いは、タスク出力情報の通知先をいつ探索するかであり、第１の実施形態の場合は、実際にタスク出力情報が出力されるときであり、第２の実施形態の場合は、タスクが呼び出されて、対話情報をスタックに格納するときである。
【０２００】
尚、上記第２の実施形態では、タスク出力情報を受け取る側に、受け取るタスク出力情報の出力元のタスクを被通知先フィールドに書き込むようにしているが、この場合に限らない。例えば、各対話情報に「通知先フィールド」を設け、通知する側から通知先を管理しても，被通知側・通知側の両方にのタスクを格納してもよく，タスクをロードする際にその出力を考慮して通知先を動的に判定するものであれば如何なる手法でも構わない。
【０２０１】
以上説明したように、上記第１および第２の実施形態によれば、ある課題を中断して新たな課題に移行したときの復帰先を、新たな課題を対話目的として用いて対話した結果に応じて（解決された課題のタスク出力情報に関連する課題に復帰することにより）、柔軟に決定することができる。
【０２０２】
ユーザの意図により、ある１つの課題を対話目的として用いた対話を（課題を解決することなく）中断して、別の課題に変更した場合でも、当該別の課題が解決された後は、当該別の課題と関連する、あるいは同様の課題を対話目的として対話することがなくなるため、冗長で不自然な対話を避けることができる。
【０２０３】
話題変更であると判定した場合にもあらかじめ復帰先の話題を決定することなく話題の中断処理を行い、話題が元々の話題に寄与するような場合においても適切に元の話題に復帰することができる。また、ユーザの入力時の対話状況を加味した候補選択を実行することが可能となる、等の実用上多大な効果が奏せられる。
【０２０４】
本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク（フロッピーディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することもできる。
【０２０５】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、上記実施形態には種々の段階の発明は含まれており、開示される複数の構成用件における適宜な組み合わせにより、種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題（の少なくとも１つ）が解決でき、発明の効果の欄で述べられている効果（のなくとも１つ）が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【０２０６】
【発明の効果】
以上説明したように、本発明によれば、所定の目的を達成するための予め定められた複数の課題に従って対話を行う場合、ある課題を中断して新たな（別の）課題に移行したときには、その新たな課題で対話した結果に応じて、次の課題を柔軟に決定することができる。
【図面の簡単な説明】
【図１】本発明の実施形態にかかる対話装置の構成例を示した図。
【図２】プラン記憶部に記憶されるプランについて説明するための図。
【図３】対話スタック操作部の処理動作を説明するためのフローチャート。
【図４】対話スタック操作部の処理動作のうち、通知先探索処理動作を説明するためのフローチャート。
【図５】対話スタック操作部の処理動作のうち、通知先探索処理動作を説明するためのフローチャート。
【図６】スタックの状態を示した図。
【図７】スタックの状態を示した図。
【図８】スタックの状態を示した図。
【図９】スタックの状態を示した図。
【図１０】スタックの状態を示した図。
【図１１】スタックの状態を示した図。
【図１２】スタックの状態を示した図。
【図１３】スタックの状態を示した図。
【図１４】スタックの状態を示した図。
【図１５】スタックの状態を示した図。
【図１６】スタックの状態を示した図。
【図１７】スタックの状態を示した図。
【図１８】スタックの状態を示した図。
【図１９】スタックの状態を示した図。
【図２０】スタックの状態を示した図。
【図２１】スタックの状態を示した図。
【図２２】スタックの状態を示した図。
【図２３】スタックの状態を示した図。
【図２４】スタックの状態を示した図。
【図２５】対話スタック操作部の他の処理動作を説明するためのフローチャート。
【図２６】対話情報として記憶される情報を説明するための図。
【図２７】スタックの状態を示した図。
【図２８】スタックの状態を示した図。
【図２９】スタックの状態を示した図。
【図３０】スタックの状態を示した図。
【図３１】スタックの状態を示した図。
【図３２】スタックの状態を示した図。
【図３３】スタックの状態を示した図。
【図３４】スタックの状態を示した図。
【図３５】スタックの状態を示した図。
【図３６】スタックの状態を示した図。
【図３７】スタックの状態を示した図。
【符号の説明】
１…自然言語解釈装置、２…応答出力装置、１００…対話装置、１０１…候補選択部、１０２…対話スタック操作部、１０３…対話情報記憶部、１０４…プラン記憶部
【図１】
2004212664.tif 000003
【図２】
2004212664.tif 000004
【図３】
2004212664.tif 000005
【図４】
2004212664.tif 000006
【図５】
2004212664.tif 000007
【図６】
2004212664.tif 000008
【図７】
2004212664.tif 000009
【図８】
2004212664.tif 000010
【図９】
2004212664.tif 000011
【図１０】
2004212664.tif 000012
【図１１】
2004212664.tif 000013
【図１２】
2004212664.tif 000014
【図１３】
2004212664.tif 000015
【図１４】
2004212664.tif 000016
【図１５】
2004212664.tif 000017
【図１６】
2004212664.tif 000018
【図１７】
2004212664.tif 000019
【図１８】
2004212664.tif 000020
【図１９】
2004212664.tif 000021
【図２０】
2004212664.tif 000022
【図２１】
2004212664.tif 000023
【図２２】
2004212664.tif 000024
【図２３】
2004212664.tif 000025
【図２４】
2004212664.tif 000026
【図２５】
2004212664.tif 000027
【図２６】
2004212664.tif 000028
【図２７】
2004212664.tif 000029
【図２８】
2004212664.tif 000030
【図２９】
2004212664.tif 000031
【図３０】
2004212664.tif 000032
【図３１】
2004212664.tif 000033
【図３２】
2004212664.tif 000034
【図３３】
2004212664.tif 000035
【図３４】
2004212664.tif 000036
【図３５】
2004212664.tif 000037
【図３６】
2004212664.tif 000038
【図３７】
2004212664.tif 000039