(57)【要約】【課題】メイン話題の情報を含めた応答を生成することにより、ユーザが大局的な話題を認識しながら対話を行える対話装置を提供する。【解決手段】複数の話題のそれぞれに対応し、当該話題をユーザとの対話により解決するための応答手続きを含む複数の対話シナリオを記憶する対話シナリオ記憶手段を備え、ユーザ発話に基づき導入された未解決の各話題の対話進行状況を示す話題情報を、導入された順に時系列に話題情報記憶手段に記憶し、前記話題情報記憶手段に記憶されている最新の話題情報に対応する前記対話シナリオに含まれる前記応答手続きに基づき、前記最新の話題情報よりも古い話題情報と該古い話題情報に対応する前記対話シナリオのうち、前記最新話題情報に対応する話題をサブ話題とするメイン話題の話題情報あるいは対話シナリオから、ユーザへの応答を生成する際に用いる情報を取得し、該情報を用いて前記応答を生成し、出力する。【選択図】      図１
2008243048.tif 000002
【特許請求の範囲】
【請求項１】
複数の話題のそれぞれに対応し、当該話題をユーザとの対話により解決するための応答手続きを含む複数の対話シナリオを記憶する対話シナリオ記憶手段と、
前記複数の話題のうち、ユーザ発話に基づき導入された未解決の各話題の対話進行状況を示す話題情報を、導入された順に時系列に記憶する話題情報記憶手段と、
前記話題情報記憶手段に記憶されている最新の話題情報に対応する前記対話シナリオに含まれる前記応答手続きに基づき、前記最新の話題情報よりも古い話題情報と該古い話題情報に対応する前記対話シナリオのうち、前記最新話題情報に対応する話題をサブ話題とするメイン話題の話題情報あるいは対話シナリオから、ユーザへの応答を生成する際に用いる情報を取得し、該情報を用いて前記応答を生成する応答手続き実行手段と、
前記応答手続き実行手段で生成された応答を出力する出力手段と、
を具備したことを特徴とする対話装置。
【請求項２】
前記最新の話題情報に対応する前記対話シナリオに含まれる前記応答手続きは、前記メイン話題から取得する情報の識別情報と、該情報を用いて前記応答を生成するための応答手続きを含み、
前記応答手続き実行手段は、前記識別情報をもつ情報を有する話題情報あるいは対話シナリオから、該識別情報をもつ情報を取得することを特徴とする請求項１記載の対話装置。
【請求項３】
前記応答手続き実行手段は、前記話題情報記憶手段に記憶されている時系列の複数の話題情報を前記最新の話題情報から1つずつ古い話題情報へ遡りながら、前記メイン話題の話題情報を検出することを特徴とする請求項１記載の対話装置。
【請求項４】
前記応答手続き実行手段は、前記最新の話題情報に対応する話題を解決したときに得られる情報と同じ種類の情報を引数として定義されている話題を前記メイン話題として検出することを特徴とする請求項３記載の対話装置。
【請求項５】
前記複数の話題のそれぞれの、当該話題を解決するために引数として取得すべき情報の種類と、当該話題を解決したときに得られる情報の種類を示す出力型とを記憶する記憶手段をさらに具備したことを特徴とする請求項４記載の対話装置。
【請求項６】
前記応答手続き実行手段は、前記最新の話題情報に対応する話題を解決したときに得られる情報と同じ種類の情報が得られたときの応答手続きを含む対話シナリオの話題を前記メイン話題として検出することを特徴とする請求項３記載の対話装置。
【請求項７】
前記応答手続き実行手段は、取得された情報を含む応答を生成することを特徴とする請求項１記載の対話装置。
【請求項８】
前記応答手続き実行手段は、前記話題情報記憶手段に記憶されている最新の話題情報から予め定められた範囲内の話題情報を前記最新の話題情報から1つずつ古い話題情報へ遡りながら、前記メイン話題の話題情報を検出することを特徴とする請求項３記載の対話装置。
【請求項９】
複数の話題のそれぞれに対応し、当該話題をユーザとの対話により解決するための応答手続きを含む複数の対話シナリオを記憶する対話シナリオ記憶手段を備えた対話装置における対話方法であって、
前記複数の話題のうち、ユーザ発話に基づき導入された未解決の各話題の対話進行状況を示す話題情報を、導入された順に時系列に話題情報記憶手段に記憶するステップと、
前記話題情報記憶手段に記憶されている最新の話題情報に対応する前記対話シナリオに含まれる前記応答手続きに基づき、前記最新の話題情報よりも古い話題情報と該古い話題情報に対応する前記対話シナリオのうち、前記最新話題情報に対応する話題をサブ話題とするメイン話題の話題情報あるいは対話シナリオから、ユーザへの応答を生成する際に用いる情報を取得し、該情報を用いて前記応答を生成する応答手続き実行ステップと、
生成された応答を出力する出力ステップと、
を含む対話方法。
【請求項１０】
前記最新の話題情報に対応する前記対話シナリオに含まれる前記応答手続きは、前記メイン話題から取得する情報の識別情報と、該情報を用いて前記応答を生成するための応答手続きを含み、
前記応答手続き実行ステップは、前記識別情報をもつ情報を有する話題情報あるいは対話シナリオから、該識別情報をもつ情報を取得することを特徴とする請求項９記載の対話方法。
【請求項１１】
前記応答手続き実行ステップは、前記話題情報記憶手段に記憶されている時系列の複数の話題情報を前記最新の話題情報から1つずつ古い話題情報へ遡りながら、前記メイン話題の話題情報を検出することを特徴とする請求項９記載の対話方法。
【請求項１２】
前記応答手続き実行ステップは、前記最新の話題情報に対応する話題を解決したときに得られる情報と同じ種類の情報を引数として定義されている話題を前記メイン話題として検出することを特徴とする請求項１１記載の対話方法。
【請求項１３】
前記応答手続き実行ステップは、前記最新の話題情報に対応する話題を解決したときに得られる情報と同じ種類の情報が得られたときの応答手続きを含む対話シナリオの話題を前記メイン話題として検出することを特徴とする請求項１１記載の対話方法。
【請求項１４】
コンピュータを、
複数の話題のそれぞれに対応し、当該話題をユーザとの対話により解決するための応答手続きを含む複数の対話シナリオを記憶する対話シナリオ記憶手段、
前記複数の話題のうち、ユーザ発話に基づき導入された未解決の各話題の対話進行状況を示す話題情報を、導入された順に時系列に記憶する話題情報記憶手段、
前記話題情報記憶手段に記憶されている最新の話題情報に対応する前記対話シナリオに含まれる前記応答手続きに基づき、前記最新の話題情報よりも古い話題情報と該古い話題情報に対応する前記対話シナリオのうち、前記最新話題情報に対応する話題をサブ話題とするメイン話題の話題情報あるいは対話シナリオから、ユーザへの応答を生成する際に用いる情報を取得し、該情報を用いて前記応答を生成する応答手続き実行手段、
前記応答手続き実行手段で生成された応答を出力する出力手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザ発話を受けて応答を返す対話装置に関する。
【背景技術】
【０００２】
近年、音声や自然言語入力を可能とするインタフェースに関する研究が盛んである。また、そのようなインタフェースを用いるエキスパートシステムなどが多数開発され、入力された音声やテキストなどを受理する装置が一般向けにも利用可能となっている。自然言語による入力を行う場合にはユーザはシステムが必要とする全ての条件を一度に入力することは少なく、ユーザとシステムとの間でのやりとりが必要となる。例えばユーザの入力内容に不備がある場合には、システムは、その足りない条件をユーザに問い合わせ、その問い合わせに対するユーザの回答を統合するなどの処理が必要となる。このような処理を行うためにユーザとシステムとの対話処理技術が不可欠である。
【０００３】
このような自然言語入力は、人間にとって普段から慣れている入力方法であるため、特に操作が複雑で大規模なシステムのインタフェースでの利用が望まれている。こういった大規模なシステムでは、全体の目的を達成するために複数の副目的を達成するといった対話が必要となる。このため、対話処理技術ではそれぞれの目的に対応した複数の話題を取り扱う必要があり、同時にこれらの話題を連携させるべく対話進行状況に応じて適切に話題を遷移させる必要がある。
【０００４】
従来の対話技術においては、目的―副目的の呼び出し関係に対応したメイン話題―サブ話題の階層的な話題構造を定義し、対話システムの動作を定める対話シナリオをこの話題構造を考慮して予め定義する方法が提案されている（例えば特許文献１を参照）。この方式では、メイン話題の対話進行中に対話システムが話題構造におけるサブ話題の対話を呼び出し、そのサブ話題の対話結果をメイン話題で利用することが可能となっている。
【０００５】
音声や自然言語による入力は、ボタン等の画面入力とは異なり、ユーザが自由に入力内容を指定することができる。例えば、ユーザによる対話中の翻意や、現在の話題とは無関係な話題の対話を開始するといったことも入力できうる。このような入力に対応するためには、システムが望む情報に関するユーザ入力のみを受理するのではなく、ユーザから自由に対話したい話題を指定でき、かつユーザによって対話に導入された様々な話題を統合して全体の目的を達成するような対話が可能であることが望ましい。
【０００６】
しかしながら、特許文献１の方法では、予め定められた対話シナリオに沿って動作するので、ユーザによる自由な話題の指定に対応するためには対話シナリオの拡充が必要となる。対話シナリオの拡充のためにはユーザによる話題指定を予測しなければならないが、この予測は困難である。
【０００７】
ユーザによる話題の指定に対応できる対話方式として、特許文献２の方法がある。この方法では、メイン話題―サブ話題の階層構造によらず各話題で独立に対話シナリオを定義する。ユーザにより対話する話題が指定された場合は、指定された話題の対話シナリオをシステムが参照して、その話題の対話を割り込ませる。各話題の対話が終了した時には、システムが対話を中断していた話題からその話題の対話結果を利用できる話題を探索し、その探索結果をメイン話題として終了した話題の対話結果を反映させる。この探索処理によって各話題で独立に定義された対話シナリオを連携させた対話進行が可能となっている。
【特許文献１】特許第３４２３２９６号公報
【特許文献２】特開２００４−２１２６６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
従来は、特許文献２のように、ユーザによる自由な話題の指定に対応し、関連する話題の対話を割り込ませるために各話題で独立の対話シナリオを作成していた。しかしながら、この方式では各話題で独立の対話シナリオを参照して応答を生成するため、応答の内容は各話題に限られた内容となってしまう。例えば、サブ話題の対話中にはメイン話題に関する情報を出力することができなくなる。
【０００９】
メイン話題の情報を含めた応答生成は、ユーザに対して現在の進行状況を伝える重要な情報となりうる。例えば、カーナビゲーションシステムにおける目的地設定の話題の進行方法として、住所による指定（住所検索）を目的地設定のサブ話題として対話する場合を考える。従来方式では、住所検索の話題の対話を開始する段階で、住所検索の対話シナリオのみを参照して応答を出力するため、「住所検索を開始します。」という応答を出力することになる。この応答ではユーザに対して住所検索のメイン話題が何であるかを提示することができない。例えば住所検索をサブ話題としうるメイン話題として経由地設定も存在する場合は、上記のような応答では目的地設定の住所検索なのか経由地設定の住所検索なのかをユーザが把握することは困難である。従って「目的地の住所検索を開始します」や「経由地の住所検索を開始します」といったメイン話題の情報を含めた応答を出力する必要がある。
【００１０】
一方、メイン話題の情報を含めた応答生成をするために、サブ話題の対話シナリオにメイン話題の情報を埋め込んだ対話シナリオを作成すると、メイン話題の個数分だけサブ話題の対話シナリオを作成する必要がある。例えば「目的地設定用の住所検索」「経由地設定用の住所検索」の対話シナリオが必要となる。しかしながら、この対話シナリオは話題のメイン話題―サブ話題の階層構造を予め定めた対話シナリオであり、上述のようにユーザによる自由な話題の指定に対応することが困難となってしまう。
【００１１】
そこで、本発明は上記問題点に鑑み、メイン話題の情報を含めた応答を生成することにより、現在の話題よりも大局的な話題を認識しながら対話が行える対話装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
対話装置は、複数の話題のそれぞれに対応し、当該話題をユーザとの対話により解決するための応答手続きを含む複数の対話シナリオを記憶する対話シナリオ記憶手段と、前記複数の話題のうち、ユーザ発話に基づき導入された未解決の各話題の対話進行状況を示す話題情報を、導入された順に時系列に記憶する話題情報記憶手段と、前記話題情報記憶手段に記憶されている最新の話題情報に対応する前記対話シナリオに含まれる前記応答手続きに基づき、前記最新の話題情報よりも古い話題情報と該古い話題情報に対応する前記対話シナリオのうち、前記最新話題情報に対応する話題をサブ話題とするメイン話題の話題情報あるいは対話シナリオから、ユーザへの応答を生成する際に用いる情報を取得し、該情報を用いて前記応答を生成する応答手続き実行手段と、前記応答手続き実行手段で生成された応答を出力する出力手段と、を含む。
【発明の効果】
【００１３】
本発明によれば、ユーザが大局的な話題を認識しながら対話を行える。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の一実施形態について図面を参照しながら説明する。
【００１５】
本実施形態に係る対話装置は、何らかのアプリケーションのユーザインタフェースとなるものであり、アプリケーションにある機能を有効に動作させることを目的とするものである。特に本発明による対話装置は、アプリケーションによる１つ以上の種類の機能を取り扱うために１つ以上の目的を取り扱うものであり、個々の目的を達成するためにそれぞれの目的と対応付けた話題についてユーザとの対話を行うものである。
【００１６】
（第１の実施形態）
図１は、第１の実施形態に係る対話装置の構成例を示すブロック図である。図１の対話装置は、対話状態管理部１０１、対話シナリオ管理部１０２、対話進行部１０３、手続き実行部１０４からなる。
【００１７】
対話状態管理部１０１は、ユーザとの対話の進行状態(対話状態)として対話中に現れた話題情報を時系列順に記憶するリストからなっている。本説明では話題情報を新たに記憶する際にはリストの後ろに追加するものとする。話題情報は話題の種類と、その話題に関する対話の進行状況を含む情報である。対話状態管理部１０１の最後に記憶された話題情報が対話進行部１０３においてユーザとの対話対象となる話題情報（現在の話題情報）である。
【００１８】
対話シナリオ管理部１０２は、対話装置で取り扱う話題に関する対話シナリオを話題別に管理する。各対話シナリオには対応する話題の対話進行手順が指定されている。対話シナリオにはその話題の対話の進行状況を１状態とし、対話の進行手順で進みうる状態を状態遷移図形式で記述するものや、その話題の目的を達成するために取得すべき情報のリストを指定するものなど、既存のものを利用することができる。
【００１９】
対話進行部１０３は、対話状態管理部１０１に記憶されている現在の話題情報を対象としてユーザとの対話を行い、現在の話題情報の話題(現在の話題)の目的をユーザとの対話によって達成する（話題を解決する）。
【００２０】
対話進行部１０３は、ユーザとの対話の際には、ユーザ入力を値や話題情報に対応付けるなどといった入力解釈や、プロンプトの出力や画面制御といった応答生成などの対話進行処理を行う。対話進行部１０３は決定した動作に基づき応答生成手続きの実行を手続き実行部１０４に依頼する。ユーザに対して出力する送出プロンプトは音声信号やテキスト表示等で提示される。
【００２１】
対話進行部１０３における入力解釈では、ユーザから入力される音声や自然言語を解釈し、ユーザ入力を何らかの話題情報か或いは値に変換する。例えば、ユーザが話題の名称を入力した場合には対話進行状況が初期状態の話題情報に変換したり、ユーザが動作条件としての値を指定した場合には、その値の種類の情報(例えば品詞情報など)を付与したりする。また、話題名称を省略した入力であっても、話題を特定できる場合はある条件を指定された対話進行状況の話題情報に変換することもある。このような自然言語解釈方式は既存のものが使用できる。
【００２２】
対話進行部１０３は、現在の話題とは別の話題の導入を検出した時には、導入された話題に関する話題情報を対話状態管理部１０１に新たに記憶させる。新たに記憶された話題情報は現在の話題情報となり、以後の対話進行の対象となる。別の話題の導入は、ユーザ入力により話題情報が入力された場合や、対話シナリオによって導入を指定されていた場合などに検出することができる。
【００２３】
対話進行部１０３は、現在の話題を解決した場合は解決時の話題情報の内容でアプリケーションの動作を実行させ、対話状態管理部１０１から現在の話題情報を消去する。更に対話進行部１０３は現在の話題に関する対話結果を対話状態管理部１０３に反映させる。対話結果の反映方法には、例えば特許文献：特開２００４−２１２６６４のように対話結果の値を利用することができる話題情報を対話状態管理部１０１から探索し、探索結果の話題情報にその値を通知するなどの方法が適用できる。
【００２４】
対話進行部１０３は現在の話題情報にある対話進行状況と、その話題の対話シナリオを参照して対話を行う。対話シナリオが終了した時に対話進行部１０３はその話題を解決したと判断する。このような１つの話題に関する対話処理は、状態遷移図形式のシナリオを参照する場合であれば、ユーザ入力等によって現在の対話進行状況を状態遷移によって更新し、終了まで遷移すれば終了とみなす方法や、話題解決のために必要な情報のリストの対話シナリオを参照する場合であれば、不足している情報を検出して、その情報の入力をユーザに要求し、不足している情報がなくなれば話題の解決とみなす方法など、既存の方法を利用することができる。
【００２５】
対話進行部１０３はユーザとの対話において、対話シナリオと対話進行状況から応答生成手続きを決定し、決定した応答生成手続きの実行を手続き実行部１０４に依頼する。
【００２６】
手続き実行部１０４は対話進行部１０３から指定された応答生成手続きを実行する。前述のように対話シナリオ管理部１０２には話題別に独立した対話シナリオが管理されている。従って対話シナリオのみを参照しても現在の話題のメイン話題となりうる話題に関する情報を含めた応答を出力することはできない。
【００２７】
手続き実行部１０４は現在の話題のメイン話題を対話状態管理部１０１から特定するメイン話題の解決処理を実行し、その結果を参照して応答生成手続きを実行する。
【００２８】
前述のように対話状態管理部１０１には、現在の話題より前に対話を開始し、未解決な話題が時系列順に蓄積されている。未解決なメイン話題を解決するためにサブ話題の対話を開始すると、対話進行部１０３は現在の話題としてサブ話題の話題情報を対話状態管理部１０１に記憶させる。この時、現在の話題（サブ話題）のメイン話題は現在の話題より前に対話状態管理部１０１に記憶されている話題情報の話題であると言える。手続き実行部１０４は、現在の話題より前に対話状態管理部１０１に記憶された話題情報から、メイン話題を探索する。手続き実行部１０４におけるメイン話題の解釈処理については後に詳述する。
【００２９】
次に、図１の対話装置の処理動作について、図２に示すフローチャートを参照して説明する。
【００３０】
対話装置は所定の話題についてユーザとの対話を行うものである。ユーザ或いは対話装置によって対話を開始した段階が図２に示した「Ｓｔａｒｔ」に相当し、対話を継続する必要性がなくなったときに対話を終了する。すなわち、図２に示す「Ｅｎｄ」で対話を終了する。
【００３１】
対話装置はユーザとの対話を開始すると、対話進行部１０３が対話のための入力を待つ(ステップＳ２０１)。この入力にはユーザからの入力や、タイマイベント等の対話装置内部からのイベントを含む。何らかの入力があれば（ステップＳ２０１Ｙｅｓ）、対話進行部１０３はその入力に応じた動作を決定する（ステップＳ２０２）。入力がなければ（ステップＳ２０１Ｎｏ）、対話進行部１０３は引き続き入力待ちを行う（ステップＳ２０１）。
【００３２】
ステップＳ２０２における対話進行部１０３の動作決定は、入力等により現在の話題の対話進行状況が更新された時に実行される。動作決定では、その更新の内容が新規話題の導入か、現在の話題の終了か、現在の話題の対話継続かを判定する。
【００３３】
対話進行部１０３は、入力により現在の話題とは別の話題の対話が開始された場合や、現在の話題の対話シナリオで別の話題の対話を開始すると指定されている場合に、新規話題の導入と判定する。また、対話進行部１０３は、現在の話題を解決し、対話を終了した場合に現在の話題の終了と判定する。対話進行部１０３は、新規話題の導入、現在の話題の終了のいずれにも該当しない場合は現在の話題の対話継続と判定する。
【００３４】
対話進行部１０３の動作決定結果が新規話題の導入であった場合（ステップＳ２０３Ｙｅｓ）、対話進行部１０３は、導入された新たな話題を対話状態管理部１０１に記憶させる（ステップＳ２０４）。この処理により現在の話題が更新されるので、対話進行部１０３は動作決定処理を行う（ステップＳ２０２）。
【００３５】
対話進行部１０３の動作決定結果が現在の話題の終了であった場合（ステップＳ２０３Ｎｏ、ステップＳ２０５Ｙｅｓ）、対話進行部１０３は、現在の話題情報を対話状態管理部１０１から取り除き、対話結果の情報を対話状態管理部１０１に反映させる（ステップＳ２０６）。更に、現在の話題情報を対話状態管理部１０１から取り除くことにより、対話状態管理部１０１が空になった場合にはユーザとの対話が終了したと判定する（ステップＳ２０７Ｙｅｓ、Ｅｎｄ）。ステップＳ２０７において、終了していなければ（ステップＳ２０７Ｎｏ）、現在の話題情報が更新されたので、ステップＳ２０２へ戻り、対話進行部１０３は動作決定処理を行う（ステップＳ２０２）。
【００３６】
対話進行部１０３の動作決定結果が現在の話題の対話継続であった場合（ステップＳ２０３Ｎｏ、ステップＳ２０５Ｎｏ）、応答手続き実行処理を行う（ステップＳ２０８）。
【００３７】
応答手続き実行処理（ステップＳ２０８）では、対話進行部１０３が現在の話題の対話シナリオと現在の話題情報の対話進行状況から、実行する応答生成手続きを決定し、手続き実行部１０４は、対話進行部１０３が決定した応答生成手続きを実行する。
【００３８】
応答手続き実行処理（ステップＳ２０８）において、例えば実行した応答手続きが「ユーザに対して情報入力を促し、返答を待つ」であった場合など、新たな入力を待って次の動作をすると判定した場合（ステップＳ２０９Ｙｅｓ）は、対話進行部１０３は次の入力を待つ（ステップＳ２０１）。入力を待たないと判定した場合（ステップＳ２０９Ｎｏ）は、応答手続きにより現在の話題の対話進行状況が更新される場合があるため、対話進行部１０３は再度動作決定処理を実行する（ステップＳ２０２）。
【００３９】
次に、対話状態管理部１０１に格納される話題情報の具体例について図３を参照して説明する。図３は対話状態管理部１０１とこれに格納される話題情報の例を示す。図３において、話題「目的地設定」、「住所検索」の順に対話が進行した場合の対話状態管理部１０１での話題情報の登録状態を示している。この場合は、最初に話題「目的地設定」に関する話題情報３０２が記憶され、その次に話題「住所検索」に関する話題情報３０１が対話状態管理部１０１に記憶される。最後に記憶された話題情報３０１が現在の話題情報となっている。
【００４０】
本実施形態では、図３に示したように新しい話題に関する話題情報を図面の上側に配置する。
【００４１】
話題情報は、少なくとも話題の種類と各話題の対話進行状況に関する情報を含む情報である。対話進行状況に関する情報は各話題に関する対話手順の指定方法に依存する。例えば状態遷移図によるシナリオ指定の場合は対話によって遷移したノードに相当し、話題を解決するために必要な情報を要求する対話処理の場合は、解決に必要な情報のリストなどが挙げられる。
【００４２】
ここで本実施形態の説明に使用する話題の定義、話題情報、及びそれぞれの表記について図３、図４を用いて説明する。
【００４３】
話題の定義の例を図４に示す。話題の定義（話題定義）は、話題の種類を表す情報である話題の名称３１１と引数定義情報３１２を含む。名称３１１は、図４に示すように、“[”の左側に表記する。「目的地設定」や「住所検索」が名称３１１に相当する。引数定義情報３１２は、対話装置が対話によって取得すべき引数の情報の属性であり、“[  ]”の内部に表記される。引数の数は話題によって異なり、表記上では各引数定義情報を“、”によって区切る。各引数定義は、引数とする情報の種類を表す型と、その引数の呼び名である属性名との組み合わせで定義され、これを（型）：（属性名）と表記する。
【００４４】
図３において、話題情報３０１、３０２は、話題の名称３０３の他、各話題の対話進行状況として、図４に示す話題の定義の引数に関する値の代入状況３０４と、対話進行で参照する引数以外の変数の代入状況３０５を含む情報である。
【００４５】
図３では、引数の代入状況３０３の表記は話題名称の右側にある“（  ）”の内部である。各引数の表記は属性名と、実際の対話によって指定された値である属性名の組み合わせで表し、（属性名）：（属性値）と表記する。対話の進行状況において属性値を取得していない場合は“φ”を（属性値）に格納する。例えば図３における話題情報３０１は［話題「住所検索」において都道府県名として「神奈川県」という値をユーザから取得した］状態であることを意味する。話題情報３０２は属性値を取得していないことを示している。
【００４６】
対話進行で参照する引数以外の変数は、ここでは、単に「変数」と表記している。話題情報３０１、３０２共に変数として「解決中の属性名」を利用している。すなわち、ここでは、変数「解決中の属性名」として、当該話題情報で解決中の属性名を記憶するようになっている。尚、詳細な属性や変数の表記が必要ではない場合は、話題情報を単に話題の名称のみや変数を省略した形式で表記する。
【００４７】
次に、図３に示した話題情報を用いた対話進行部１０３における個々の話題に対する対話処理方法の例について説明する。話題情報の属性には話題解決のために値の取得が必須である必須属性と必須ではない属性がある。対話進行部１０３は属性値が取得されていない必須属性が現在の話題情報の中にあれば、対話処理としてその必須属性に代入する属性値を取得するように動作する。一方、単純なコマンドの場合などには話題情報の属性数が０個の場合もあるが、そのような話題の場合は、全必須属性が取得されているものとみなせる。そして、話題情報において不足している必須属性すなわち属性値が無くなると、その話題は解決したと判定する。尚、以下では表記を簡単にするために断りがない限り各話題情報における属性は全て必須属性とし、全必須属性が取得されればその話題を解決したものとして説明する。
【００４８】
動作内容として定められる応答手続きは、その話題情報と対話シナリオを参照して対話進行部１０３が決定し、手続き実行部１０４がその応答手続きを実行する。応答手続きとしては、例えば必須属性の値を入力するようにユーザに要求し、ユーザ入力を各属性に対応付ける。また、ユーザに問い合わす必要がない情報であれば(現在時刻など)ユーザに要求せずに暗黙的に取得する。また、ユーザに情報を要求する過程において、情報を要求するための手続きとして別の話題の対話を行う必要があれば、その話題の話題情報を導入して対話を行い、導入した話題情報に関する対話の結果を属性値として使用する。
【００４９】
ここで対話シナリオ管理部１０２について、図５、図６を参照して説明する。図５は対話シナリオ管理部１０２の例である。対話シナリオ管理部１０２は話題定義データベース（話題定義ＤＢ）５０１と対話シナリオデータベース（対話シナリオＤＢ）５０２を含む。
【００５０】
話題定義ＤＢ５０１は、対話装置が扱う話題の定義の記憶、更新、検索等の管理を行うデータベースである。図５の話題定義ＤＢ５０１には話題「住所検索」「ジャンル検索」「目的地設定」「経由地設定」の4種類の話題定義が登録されている。
【００５１】
対話シナリオＤＢ５０２の詳細を図６に示す。対話シナリオＤＢ５０２は話題定義ＤＢ５０１に記録されている話題に関する対話シナリオの記憶、更新、検索等の管理を行うデータベースである。図６では、話題「住所検索」の対話シナリオ６０１、話題「ジャンル検索」の対話シナリオ６０２、話題「目的地設定」の対話シナリオ６０３、話題「経由地設定」の対話シナリオ６０４が登録されている。
【００５２】
図６に示す各話題の対話シナリオには、その話題の対話進行状況と対応する応答手続きが（対話進行状況）―（応答手続き）の形式で指定されている。例えば話題「住所検索」の対話シナリオ６０１では、対話進行状況が「初期状態」では応答手続き「関数「初期応答」を実行」を行い、その後の対話進行においては、対話進行状況が「住所検索の属性「都道府県名」が空」となった場合（φの場合）、「変数「解決中の属性名」＝"都道府県名"として関数「問合せ」を実行」という応答手続きを行うと指定している。そして、「全属性を得た」という対話進行状況になった時に、「住所で場所を検索し、検索結果を出力（話題終了）」という応答手続きを行う。この（話題終了）指定がある応答手続きを実行すると、話題「住所検索」の対話が終了する。本来はそれぞれの手続きは何らかの式やプログラミング言語で記述されると思われるが、ここでは、説明の簡単のために文で記述している。
【００５３】
対話進行部１０３は、図２のステップＳ２０８において、現在の話題情報の対話進行状況と、この対話シナリオの対話進行状況を照合し、該当した対話進行状況の応答手続きを実行する応答手続きとして選択する。そして、手続き実行部１０４に選択結果の応答手続きの実行を依頼する。
【００５４】
図６に示す対話シナリオ６０１の関数「初期応答」や対話シナリオ６０２の関数「問い合わせ」には、「メイン話題の変数「解決中の属性名」を取得」と指定されている箇所がある。この「メイン話題の変数…」の指定がある場合、手続き実行部１０４がメイン話題を特定し、その結果の話題情報の情報（この例では変数「解決中の属性名」の値）を取得し、応答生成に利用するという処理を行う。この動作の詳細は後述する。
【００５５】
この「メイン話題の…」という指定が特定の話題を指し示していないことに注意されたい。不特定のメイン話題という指定をサブ話題の対話シナリオに指定することで、サブ話題の対話シナリオをメイン話題のものと独立に定義できる。例えば図６において、話題「住所検索」は話題「目的地設定」、話題「経由地設定」のサブ話題となりうるが、話題「住所検索」の対話シナリオには話題「目的地設定」、話題「経由地設定」を示す内容は存在しない。従って、話題「住所検索」をサブ話題とすることができる新たな話題の対話シナリオを追加しても、話題「住所検索」の対話シナリオには影響を与えることはない。
【００５６】
続いて、手続き実行部１０４について詳細に説明する。手続き実行部１０４は、対話進行部１０３から指定された応答手続きを指定通りに実行するものである。例えば、図６の応答手続きにある日本語文の指定通りに動作する。
【００５７】
手続き実行部１０４の特徴は、上記の「メイン話題の変数「解決中の属性名」を取得」のようなメイン話題からの情報取得処理を実行し、その結果として得られる情報を応答生成に利用することにある。
【００５８】
前述のように対話状態管理部１０１には、現在の話題より前に対話を開始し、未解決な話題が時系列順に蓄積されている。未解決なメイン話題を解決するためにサブ話題の対話を開始すると、対話進行部１０３は現在の話題としてサブ話題の話題情報を対話状態管理部１０１に記憶させる。従って、現在の話題（サブ話題）のメイン話題は現在の話題より前に対話状態管理部１０１に記憶されている話題であると言える。また、応答生成手続きによっては意図的に直接的なメイン話題の情報ではなく、更に上位のメイン話題の情報を取得する場合も考えられる。従って、サブ話題の話題情報での応答生成手続きで、メイン話題から取得することを指定されている情報（取得指定情報）を含む話題情報を情報取得対象となるメイン話題としなければならない。
【００５９】
以上のことより、手続き実行部１０４で行うメイン話題からの情報取得処理（メイン話題から取得指定情報を取得する処理）では、現在の話題より前に対話状態管理部１０１に記憶され話題情報から、当該取得指定情報を含む話題情報を探索する処理となる。
【００６０】
図７は手続き実行部１０４で行うメイン話題からの情報取得処理を説明するためのフローチャートである。この処理は、現在の話題情報にて実行中の応答手続きの中に「メイン話題の変数「○○」を取得」や「メイン話題の関数「△△」を実行」等、メイン話題の話題情報を参照する指定がある場合に実行されるものである。尚、このような指定の場合、取得指定情報は変数「○○」、関数「△△」に相当する。
【００６１】
手続き実行部１０４は、対話状態管理部１０１を現在の話題情報から古い話題情報に向けてメイン話題となりうる話題情報を探索し、応答手続きに必要な情報を取得する。まず、処理対象を現在の話題情報とし（ステップＳ３０１）、これが最も古い話題情報である場合には、メイン話題からの情報取得処理に失敗したと判定する（ステップＳ３０２Ｙｅｓ、ステップＳ３０６）。ステップＳ３０２において、当該処理対象が最も古い話題情報でない場合には、ステップＳ３０３へ進み、処理対象を現在の処理対象である話題情報よりも１つ古い話題情報に変更し（ステップＳ３０３）、ステップＳ３０４へ進む。
【００６２】
ステップＳ３０４では、手続き実行部１０４は、この新たな処理対象の話題情報から、応答手続きで指定された取得指定情報を探索する。当該処理対象の話題情報に、上記取得指定情報として指定されている変数や関数が含まれている場合には、当該処理対象から、当該取得指定情報として指定されている変数や関数を取得し、メイン話題からの情報取得処理を終了する（ステップＳ３０５Ｙｅｓ）。ステップＳ３０４で、当該処理対象の話題情報に上記取得指定情報として指定されている変数や関数が含まれていない場合には（ステップＳ３０５Ｎｏ）、ステップＳ３０２へ戻り、当該処理対象が対話状態管理部１０１において最も古い話題情報であれば（ステップＳ３０２Ｙｅｓ）、メイン話題からの情報取得処理に失敗したと判定する（ステップＳ３０６）。ステップＳ３０２において、対話状態管理部１０１に当該処理対象の話題情報よりも最も古い話題情報が記憶されている場合には（ステップＳ３０２Ｎｏ）、ステップＳ３０３へ進み、上記同様、処理対象を現在の処理対象である話題情報よりも１つ古い話題情報に変更し、上記同様の処理を繰り返す。
【００６３】
次に、カーナビゲーションシステムに図１の対話装置を適用した場合を例にとり、より具体的に説明する。
【００６４】
このシステムでは、住所で場所を検索する「住所検索」と、ジャンルで施設の場所を検索する「施設検索」と、1つの施設を目的地に設定する「目的地設定」と、1つの施設を経由地に設定する「経由地設定」の４つの話題に関する対話が可能である。対話シナリオ管理部１０２は図５の話題定義ＤＢ５０１と、図６の対話シナリオを記憶する対話シナリオＤＢ５０２を含む。
【００６５】
［対話例１］
図８の対話例１を例に説明する。この例では、図２に示した対話全体の流れ（図２）に沿った動作説明の後、応答生成手続きに沿った説明を行う。尚、以下の対話例では、「ＵＳＲ」はユーザ発話を表し、「ＳＹＳ」はシステム応答を表す識別子である。
【００６６】
ユーザ発話「ＵＳＲ８−１」によって対話が開始される。「ＵＳＲ８−１」で新たな入力を受け付けたので（ステップＳ２０１Ｙｅｓ）、対話進行部１０３は動作の決定処理（ステップＳ２０２）を実行する。対話進行部１０３における入力解釈により、「ＵＳＲ８−１」はユーザにより話題「目的地設定（目的地：φ）」が指定されたと解釈されたとする。初期状態では対話状態管理部１０１が管理する話題情報は空なので、現在の話題とは異なる話題が指定されたと解釈でき（ステップＳ２０３Ｙｅｓ）、新たな話題情報「目的地設定（目的地：φ）」を対話状態管理部１０１に記憶する（ステップＳ２０４）。
【００６７】
現在の話題情報は「目的地設定」に更新されたので、対話進行部１０３は動作決定処理（ステップＳ２０２）を実行する。今回は新規話題の導入でも話題の終了でもないので、応答生成手続き実行と判定する（ステップＳ２０３Ｎｏ、ステップＳ２０５Ｎｏ、ステップＳ２０８）。現在の話題情報が導入された直後なので、対話進行部１０３は、対話シナリオ６０３における対話進行状況「初期化」の応答生成手続き「変数「解決中の属性名」＝“目的地”として、話題「住所検索」を呼び出す」を実行すると決定し、手続き実行部１０４はこの処理を実行する。
【００６８】
話題「住所検索」を呼び出す処理によって、手続き実行部１０４は新規話題「住所検索（都道府県名：φ、市区町村名：φ）」を導入する。この処理はユーザの入力を待つ処理ではないので（ステップＳ２０９Ｎｏ）、対話進行部１０３は動作決定処理（ステップＳ２０２）を実行する。今回は手続き実行部１０４による話題の導入なので新規話題の導入と判定し（ステップＳ２０３Ｙｅｓ）、導入された話題情報「住所検索（都道府県名：φ、市区町村名：φ）」を対話状態管理部１０１に記憶する（ステップＳ２０４）。このときの対話状態管理部１０１の状態が図９のようになる。
【００６９】
現在の話題情報が「住所検索」に更新されたので、対話進行部１０３は動作決定処理（ステップＳ２０２）を実行する。今回は新規話題の導入でも話題の終了でもないので、応答生成手続き実行と判定する（ステップＳ２０３Ｎｏ、ステップＳ２０５Ｎｏ、ステップＳ２０８）。現在の話題情報が導入された直後なので、対話進行部１０３は、対話シナリオ６０１における対話進行状況「初期化」の応答生成手続き「関数「初期応答」を実行」を実行すると決定する。
【００７０】
手続き実行部１０４は決定された応答生成手続きを実行する。このとき、関数「初期応答」には、取得指定情報として、変数「解決中の属性名」が指定されているので、手続き実行部１０４は、図７に示したようなメイン話題からの情報取得処理を実行する。詳細は後述する。その結果「ＳＹＳ８−２」を出力し、更にユーザの入力を待たないので（ステップＳ２０９Ｎｏ）対話進行部１０３は動作決定処理（ステップＳ２０２）を実行する。今回も応答生成手続きであると判定し（ステップＳ２０３Ｎｏ、ステップＳ２０５Ｎｏ、ステップＳ２０８）、話題「住所検索」の対話進行状況が「初期」ではなく、属性「都道府県名」が指定されていない（空）ので、「変数「解決中の属性名」＝“都道府県名”として関数「問合せ」を実行」を実行すると決定する。関数「問合わせ」には、取得指定情報として、変数「解決中の属性名」が指定されているので、手続き実行部１０４は、図７に示したようなメイン話題からの情報取得処理を実行する。この実行結果として「ＳＹＳ８−３」を出力し、ユーザの入力を待つ（ステップＳ２０９Ｙｅｓ）。
【００７１】
「ＳＹＳ８−２」、「ＳＹＳ８−３」を出力する応答手続き実行中に、手続き実行部１０４はメイン話題の話題情報から変数「解決中の属性名」を取得する、メイン話題からの情報取得処理を行っている。ここでは「ＳＹＳ８−２」を出力する話題「住所検索」における関数「初期応答」の例について説明するが、「ＳＹＳ８−３」の出力時点でも対話状態管理部１０１において話題情報の追加等の変更は無く、メイン話題からの情報取得処理は同様に行うことができる。
【００７２】
手続き実行部１０４が話題「住所検索」の関数「初期応答」を実行する時点での対話状態管理部１０１の状態は図９である。関数「初期応答」において、取得指定情報として、変数「解決中の属性名」が指定されているので、手続き実行部１０４は、図７に示したようなメイン話題からの情報取得処理を実行する。
【００７３】
まず、処理対象の話題情報を現在の話題情報より１つ古い話題情報に設定する（ステップＳ３０１、ステップＳ３０２Ｎｏ、ステップＳ３０３）。図９の例では話題情報「目的地設定」７０１が処理対象の話題情報となる。続いて手続き実行部１０４は、話題情報７０１から取得指定情報である変数「解決中の属性名」を探索する（ステップＳ３０４）。話題情報７０１には変数「解決中の属性名」として“目的地”が指定されているので、これを取得する（ステップＳ３０５Ｙｅｓ、Ｅｎｄ）。
【００７４】
手続き実行部１０４はメイン話題からの情報取得処理で得た変数「解決中の属性名」＝“目的地”を取得した。この結果を利用して応答手続きを継続する。すなわち、話題「住所検索」の関数「初期応答」は、「取得結果の文字列に“の住所検索を開始します”を連結して出力」と指定されているので、取得結果の文字列として“目的地”を適用すると“目的地の住所検索を開始します”という応答「ＳＹＳ８−２」の出力が可能となる。
【００７５】
以上のように話題「住所指定」の応答手続きにおいて、手続き実行部１０４がそのときの対話進行状況である対話状態管理部１０１を参照し、メイン話題である「目的地設定」の変数を取得することが可能となっている。従って、サブ話題となる話題「住所指定」の対話シナリオ６０１には具体的なメイン話題を指定せず、メイン話題と独立な対話シナリオであっても、応答にはメイン話題の変数「解決中の属性名」＝“目的地”を組み込んで、ユーザに対してメイン話題が何であるかを含めた応答を出力することが可能となっている。
【００７６】
［対話例２］
図１０の対話例２を例に説明する。対話例２が対話例１と異なる点は初期のユーザ入力が「目的地設定」から「経由地設定」になった点である。この入力で導入される話題情報は「経由地設定（経由地：φ）」である。［対話例１］と同様に話題情報「経由地設定」の初期化時の応答手続きで話題情報「住所検索」を呼び出す。この時点の対話状態管理部１０１の状態を図１１に示す。話題情報「住所検索」の初期化時の応答手続き（関数「初期応答」）で「ＳＹＳ１０−２」を出力し、都道府県名が空の時の応答手続き（関数「問合せ」）で「ＳＹＳ１０−３」を出力する。
【００７７】
「ＳＹＳ１０−２」、「ＳＹＳ１０−３」を出力する応答手続き実行中に、手続き実行部１０４は、メイン話題の変数「解決中の属性名」を取得するメイン話題からの情報取得処理を行っている。図１１は、このメイン話題からの情報取得処理を実行する時の対話状態管理部１０１の状態であり、対話例１で説明した、メイン話題からの情報取得処理と同様にして、話題情報７０４より古い話題情報である話題情報７０３を処理対象とし、これから取得指定情報である変数「解決中の属性名」を取得することを試みる（ステップＳ３０４）。話題情報７０３には変数「解決中の属性名」＝“経由地”と指定されているので、手続き実行部１０４はこれを取得する。結果として例えば関数「初期応答」においては、「経由地の住所検索を開始します」という応答「ＳＹＳ１０−２」を出力することが可能となる。
【００７８】
以上のように話題「住所指定」の応答手続きにおいて、手続き実行部１０４が対話状態管理部１０１を参照してメイン話題の「解決中の属性名」を取得するので、メイン話題が「経由地設定」となったときには、「経由地設定」の変数「解決中の属性名」を取得することができる。この枠組みにより対話進行状況に応じたメイン話題の情報を組み込んだ応答を出力することが可能である。
【００７９】
［対話例３］
続いて図１２に示す対話例３の場合について説明する。この例では、初期のユーザ入力が「住所検索」であり、この入力で導入される話題情報は「住所検索（都道府県名：φ、市区町村名：φ）」である。この対話例は話題情報「住所検索」のメイン話題となる話題情報が対話状態管理部１０１に登録されない場合に相当する。そして話題情報「住所検索」の初期化時の応答手続き（関数「初期応答」）で「ＳＹＳ１２−２」を出力し、都道府県名が空の時の応答手続き（関数「問合せ」）で「ＳＹＳ１２−３」を出力する。応答「ＳＹＳ１２−２」、「ＳＹＳ１２−３」を出力する際の対話状態管理部１０１の状態を図１３に示す。
【００８０】
「ＳＹＳ１２−２」、「ＳＹＳ１２−３」を出力する応答手続き実行中に、手続き実行部１０４はメイン話題の変数「解決中の属性名」を取得する、メイン話題からの情報取得処理を行っている。図１３は、このメイン話題からの情報取得処理を実行するときの対話状態管理部１０１の状態を示している。現在の話題情報が最も古い話題情報であるので（ステップＳ３０２Ｙｅｓ）、メイン話題からの情報取得処理は失敗したと判定する（ステップＳ３０６、Ｅｎｄ）。手続き実行部１０４は、メイン話題からの情報取得処理に失敗した時の動作として、話題「住所検索」の関数「初期応答」で、情報取得処理に失敗した時の動作として指定されている、「住所検索を開始します」という応答「ＳＹＳ１２−２」を出力する。
【００８１】
以上のように話題「住所検索」の応答手続きにおいて、手続き実行部１０４がメイン話題の有無を検出することができるので、メイン話題が存在しないときは単に「住所検索」というシンプルな応答を出力することができる。
【００８２】
このように、上記第１の実施形態では、対話状態管理部１０１が、現在の話題までの未解決の各話題に対応する１または複数の話題情報を時系列に記憶することにより対話の進行状況を管理する。各話題情報には、解決中の属性名などを含む。そして、現在の話題での応答手続きに、現在の話題の上位の話題（すなわち、メイン話題）の話題情報や対話シナリオから取得すべき情報として変数名（属性名）あるいは関数名が指定された、該情報を取得する手続きが含まれている場合、手続き実行部１０４は、対話状態管理部１０１に記憶されている時系列な話題情報を、最も新しいものから順に探索して、該時系列な話題情報のなかから該指定された変数名あるいは関数名を含むメイン話題の話題情報を検出する。このメイン話題の話題情報から、該指定された変数名あるいは関数名の情報を取得して、該取得した情報を含む応答を生成し、出力する。
【００８３】
すなわち、上記第１の実施形態では、現在の話題をサブ話題として実行する際の応答手続き実行時に応答に必要なメイン話題の情報を取得し、応答にメイン話題の情報を含めることが可能となる。
【００８４】
メイン話題の情報を含めた応答生成は、ユーザに対して現在の進行状況を伝える重要な情報となりうる。例えば、上述の対話例においてメイン話題の変数「解決中の属性名」を出力しない場合を考えてみると、ユーザの「目的地設定」という入力に対してシステムは「住所検索を開始します。都道府県名をどうぞ。」という応答を出力する。特に音声入力のような誤りがのる可能性がある入力方法では、このような応答内容ではユーザが最初の「目的地設定」という内容が正しく受け付けられたかを把握することは困難となる。
【００８５】
話題毎に対話シナリオを独立に定義することができれば、話題の追加・削除の処理がコストを抑制できる。追加の際は、それぞれの話題に関する対話シナリオを対話シナリオ管理部１０２に追加すれば良い。削除の際は、対話シナリオ６０３、６０４のように、当該話題から呼び出す別の話題、すなわち、サブ話題を明示的に指定している場合、そのサブ話題を削除したときには、当該サブ話題のメイン話題となるこれら対話シナリオ６０３，６０４を修正する必要があるが、メイン話題の削除がサブ話題の対話シナリオに対して影響をあたえることはない。また、対話シナリオ６０３、６０４において話題「住所検索」をサブ話題として呼び出している応答手続きで、話題「住所検索」の呼び出しを省略することも可能である。例えば、「目的地の場所を入力してください」といった応答を出力し、次のユーザ入力で「住所検索」などといった場所を検索する話題情報の入力を待つようにすれば、話題「住所検索」の削除でメイン話題に与える影響はなくなる。
【００８６】
メイン話題の情報は、上述のような応答文に埋め込むテキスト情報だけではなく、「目的地設定」モードと「経由地設定」モードで画面表示を切り替えるといった、メイン話題に応じた画面制御関数の呼び出しをする場合や、施設の検索結果のリストを提示する順序をメイン話題で切り替える場合などに利用することができる。
【００８７】
この場合、現在の話題（サブ話題）の手続き中には、呼び出すべき関数名が指定されているので、図７に示す手順に従って、現在の話題よりも古い話題のなかから、該指定されている関数名の関数を含む対話シナリオの話題を検索する。そのような話題があれば、それが現在の話題のメイン話題である。
【００８８】
サブ話題での手続きで、メイン話題の画面制御関数呼び出す場合を図１４〜図１７を参照して説明する。図１４及び図１５は、メイン話題が「目的地設定」で、サブ話題が「住所検索」の場合を示し、図16及び図１７は、メイン話題が「経由地設定」で、サブ話題が「住所検索」の場合を示している。
【００８９】
図１４に示すように、サブ話題である「住所検索」で使用される、該サブ話題に対応する対話シナリオに含まれる関数「初期画面設定」から、メイン話題（ここでは「目的地設定」）に対応する対話シナリオに含まれる関数「モード画面指定」を呼び出すことで、図１５に示すように、対話進行部１０３では、画面の背景色７１１をメイン話題に対応する色「白」に設定し、画面の左上に配置する動作モードを示すテキスト７１２として「目的地設定モード」を出力する。
【００９０】
また、図１６に示すように、サブ話題である「住所検索」で使用される、該サブ話題に対応する対話シナリオに含まれる関数「初期画面設定」から、メイン話題（ここでは「経由地設定」）に対応する対話シナリオに含まれる関数「モード画面指定」を呼び出すことで、図１７に示すように、対話進行部１０３では、画面の背景色７２１をメイン話題に対応する色「黒」に設定し、画面の左上に配置する動作モードを示すテキスト７２２として「経由地設定モード」を出力する。
【００９１】
このように、画面の背景色や、画面の左上に配置する動作モードを示すテキストといった応答出力内容をメイン話題に応じて変更することが可能となる。
【００９２】
以上説明したように、上記第１の実施形態によれば、話題毎に独立に対話シナリオを定義しておき、対話を終了していない話題の話題情報を現れた順に対話進行状況として記憶し、応答生成手続きにおいて、応答内容に含めるメイン話題の情報を持つ話題情報を、対話進行状況にある新しい話題情報から順に探索し、探索結果の話題情報から、指定された情報を取得して応答内容に含めてユーザに提示する。すなわち、話題毎に独立した対話シナリオを用いてユーザと対話を行う対話装置では、話題の応答手続き中で、図７に示すように、メイン話題から取得すべき情報が変数名や関数名で指定された情報取得処理を実行することで、現在の話題よりも古い話題のなかから、該指定されている変数名や関数名を有するメイン話題を検索し、該メイン話題から取得した当該指定された変数や関数を用いて応答を生成し出力する。この結果、ユーザは、現在の話題よりも大局的な話題を認識しながら対話装置との対話が行える。
【００９３】
尚、上述の例では、図７に示したメイン話題からの情報取得処理において、メイン話題が検出された段階で処理を終了している（ステップＳ３０５Ｙｅｓ）ように記述しているが、本実施形態はそのような構成に限定されるものではない。例えば、複数のメイン話題の情報を取得することも考えられる。この場合は、手続き実行部１０４は対話状態管理部１０１の全ての話題情報を対象として、指定された変数名・関数名を有するメイン話題の情報を取得するか、一定個数のメイン話題の情報を取得し、取得結果をリストで出力する。そして、その後の手続きにおいて、応答内容に含める情報を選択する。
【００９４】
複数のメイン話題の情報を利用した応答内容の例として、上述の対話例のように変数「解決中の属性名」を取得するような場合は、「ルート条件の目的地の…」などのように取得した複数の情報を連結して出力することが考えられる。また、図１４〜図１７に示した画面出力関数の例では、動作モードを示すテキスト７１２、７２２を「ルート条件―目的地―…」といった形式で出力することも考えられる。
【００９５】
また、上述の例では、メイン話題からの情報取得処理（図７）において、メイン話題の情報を取得できなければ、対話状態管理部１０１に記憶されている最も古い話題情報までを処理対象として処理を継続するように記述しているが、本実施形態はそのような構成に限定されるものではない。例えば、現在対話中の話題からかけ離れた話題の情報を出力しないように、メイン話題からの情報取得処理においては、処理対象の話題情報を遡る回数を一定の回数以内に限定し、それ以上の話題情報はメイン話題の候補として適していないと判定しても良い。或いは、対話の開始が古すぎる話題の情報を出力しないように、対話状態管理部１０１の各話題情報には対話開始時点の時刻情報を記憶させ、メイン話題の解決処理においては、現在の時刻との差分が一定の時間を超えている話題情報は、メイン話題の候補として適していないと判定し、一定の時間内で現れた話題情報のみを処理対象としても良い。
【００９６】
また、上述の例では対話シナリオＤＢ（図６）に登録する対話シナリオには、応答手続きを明示的に記述している。しかし、汎用な手続きを採用して対話シナリオを明示的に記述しなくとも、汎用な手続きが個別の話題の対話進行方法となっている場合は、そのような手続きは応答手続きであるとみなすことができる。
【００９７】
（第２の実施形態）
第1の実施形態で説明した、メイン話題からの情報取得処理では、対話状態管理部１０１が管理する話題情報の順序を利用した比較的簡単な方法でメイン話題を検出している。しかしながら、ある話題の対話中にユーザが別の話題を指定する場合がある。このようなシステムが意図しない話題が導入された場合、第１の実施形態では正確にメイン話題を検出することができない。
【００９８】
例えば、図１８に示すような対話例では、ユーザ入力「ＵＳＲ１５−１」で話題「目的地設定」を導入し、以後図６の対話シナリオを参照して前述の対話例１と同様にして「ＳＹＳ１５−２」、「ＳＹＳ１５−３」を出力した。このときにユーザ入力「ＵＳＲ１５−４」によって検索方法を変更する意図で話題「ジャンル検索」を新たに指定した。
【００９９】
対話進行部１０３は、ユーザ入力「ＵＳＲ１５−４」を受けて、図１９に示すように、新たな話題情報８０１を対話状態管理部１０１に記憶する。このような場合、話題情報「住所検索」７０２とは無関係に導入された話題情報「ジャンル検索」８０１は、話題情報「住所検索」７０２のサブ話題とは言えない。
【０１００】
第２の実施形態では、対話シナリオ管理部１０２に登録されている話題定義を利用し、より厳密にメイン話題を検出できる、メイン話題からの情報取得処理について説明する。
【０１０１】
第２の実施形態と第1の実施形態とで異なる点は、対話シナリオ管理部１０２の話題定義ＤＢ５０１の内容、ならびに手続き実行部１０４におけるメイン話題からの情報取得処理である。従って、第２の実施形態に係る対話装置の構成例及びその全体の処理動作は図１、図２と同様である。
【０１０２】
第２の実施形態に係る話題定義ＤＢ５０１には、図２０に示すように、引数定義情報テーブル８１１と出力型定義情報テーブル８１２を含む。引数定義情報テーブル８１１に記憶される情報は、第１の実施形態における話題定義ＤＢの内容と同様である。
【０１０３】
出力型定義情報テーブル８１２は、各話題の出力型定義情報を記憶する。出力型定義情報とは各話題の対話が終了した時に得られる情報の型、すなわち話題が解決したときに得られる情報の種類を表す情報である。例えば、何らかの検索を行うことを目的とする話題であれば、出力型定義情報には検索結果として得る情報の型を指定する。図２０の出力型定義情報テーブルでは、話題「住所検索」、「ジャンル検索」はいずれも対話結果として場所を取得する話題なので出力型に「場所」を指定している。また、話題「目的地設定」「経由地設定」については出力する情報がないので、空（φ）を指定している。
【０１０４】
第２の実施形態におけるメイン話題からの情報取得処理を図２１に示す。なお、図２１において、図７と同一部分には同一符号を付している。図２１において、図７と異なる点は、ステップＳ３０４の取得指定情報を含む処理対象の話題情報から、当該取得指定情報（例えば変数「解決中の属性名」等）を取得する処理の前に、当該処理対象の話題情報に対応する話題がメイン話題として適しているかどうかを確認する処理（ステップＳ４０２）が挿入され、これに伴いステップＳ４０１、ステップＳ４０３が追加されている。
【０１０５】
まず、ステップＳ４０２について説明する。ステップＳ４０２では、サブ話題の出力型定義情報とメイン話題の引数定義情報を照合して、処理対象の話題情報の話題がメイン話題として適しているかを判定する。前述したように、メイン話題は、その引数の情報を取得するためにサブ話題を呼び出すので、サブ話題の対話結果はメイン話題に利用されることになる。従って、現在の話題のメイン話題は、現在の話題の出力を引数に利用できる情報であると言える。
【０１０６】
そこで、ステップＳ４０２では、処理対象の話題情報の話題がサブ話題の出力型定義情報が示す出力型と同じの型の引数を持つ場合は、当該処理対象の話題情報がメイン話題として適していると判定する。例えば、話題「住所検索」の出力型は「場所」であるので、そのメイン話題としては、同じ「場所」型の引数を持つ話題「目的地設定」「経由地設定」が適していると判定する。
【０１０７】
ステップＳ４０２において、当該処理対象の話題情報がメイン話題として適している場合には、ステップＳ３０４へ進み、当該処理対象の話題情報から取得指定情報を取得する。ステップＳ４０２において、当該処理対象の話題情報がメイン話題として適していなければ、ステップＳ３０２へ戻り、処理対象の話題情報を更新する。尚、ステップＳ４０２において、サブ話題の出力型定義情報が空の場合は、その話題の対話結果が利用されることがないので、どの話題もメイン話題として適していないと判定する。
【０１０８】
ステップＳ４０２では、サブ話題の出力型定義情報を参照して、処理対象の話題情報の話題がメイン話題として適しているかを判定する。手続き実行部１０４では、この判定で使用する出力型定義情報の記憶領域として「サブ話題出力情報」を利用する。そこで、図２１のステップＳ４０１では、まず、「サブ話題出力情報」に現在の話題の出力型を示す出力型定義情報をセットする。
【０１０９】
処理対象の話題がメイン話題として適している場合（ステップＳ４０２Ｙｅｓ）、ステップＳ３０４へ進み、当該処理対象から、取得指定情報を取得できたときには（ステップＳ３０５Ｙｅｓ）、処理を終了する。一方、ステップＳ３０４で、当該処理対象から、取得指定情報を取得できなかったときには（ステップＳ３０５Ｎｏ）、ステップＳ４０３へ進み、「サブ話題出力情報」を当該処理対象の出力定義情報に更新する。すなわち、ステップＳ３０５において、メイン話題として適した話題情報が検出されても、当該話題情報から取得指定情報を取得できなかった場合は、更にメイン話題を探索することになる。この時、次に探索すべきメイン話題は「メイン話題のメイン話題」であり、現在の処理対象の話題をサブ話題とする話題情報を対話状態管理部１０１から探索する必要がある。従って、ステップＳ４０３で、「サブ話題出力情報」を現在の処理対象の話題の出力型定義情報に更新している。その後、ステップＳ３０２へ進み、処理対象が最も古い話題情報でなければ、ステップＳ３０３へ進み、処理対象を更新して、前述同様の処理を繰り返す。
【０１１０】
次に、カーナビゲーションシステムに、第２の実施形態に係る対話装置を適用した場合を例にとり、より具体的に説明する。このシステムでは、住所で場所を検索する「住所検索」と、ジャンルで施設の場所を検索する「施設検索」と、1つの施設を目的地に設定する「目的地設定」と、1つの施設を経由地に設定する「経由地設定」の４つの話題に関する対話が可能である。対話シナリオ管理部１０２は、図２０の話題定義ＤＢ５０１と、図６の対話シナリオＤＢ５０２を含む。
【０１１１】
ここでは、対話状態管理部１０１が図１９に示す状態のときに、話題「ジャンル検索」の対話シナリオ６０２における関数「初期応答」を実行する場合を例にとり、手続き実行部１０４におけるメイン話題からの情報取得処理について、図２１のフローチャートに従って説明する。
【０１１２】
図６の対話シナリオ６０２に含まれる関数「初期応答」の中には「メイン話題の変数「解決中の属性名」」を取得することを指定している。手続き実行部１０４は、この指定を受け、図２１のメイン話題からの情報取得処理を実行する。
【０１１３】
まず、「サブ話題出力情報」に現在の話題の出力型定義情報をセットする（ステップＳ４０１）。また、処理対象を、現在の話題情報より１つ古い話題情報とする（ステップＳ３０１、ステップＳ３０２Ｎｏ、ステップＳ３０３）。この結果、「サブ話題出力情報」は現在の話題情報である「ジャンル検索」の出力型定義情報「場所」（図２０を参照）、処理対象は図１９の話題情報７０２となる。
【０１１４】
手続き実行部１０４は、処理対象である話題情報７０２が現在の話題のメイン話題として適しているかを判定する（ステップＳ４０２）。話題情報７０２の話題は「住所検索」で、話題定義ＤＢ５０１の引数定義情報テーブル８１１を確認すると、「サブ話題出力情報」にセットされておいる出力型「場所」と同じ型の引数は、「住所検索」には存在しない。従って、話題情報７０２の話題はメイン話題として適していないと判定する（ステップＳ４０２Ｎｏ）。
【０１１５】
手続き実行部１０４は、処理対象を話題情報７０２から、それより１つ古い話題情報７０１に更新する（ステップＳ３０２Ｎｏ、ステップＳ３０３）。
【０１１６】
手続き実行部１０４は、新たな処理対象の話題情報７０１が現在の話題のメイン話題として適しているかを判定する（ステップＳ４０２）。話題情報７０１の話題は「目的地設定」で、話題定義ＤＢ５０１の引数定義情報テーブル８１１を確認すると、「サブ話題出力情報」にセットされている出力型「場所」と同じ型をもつ引数が「目的地設定」に存在するので、話題情報７０１はメイン話題として適していると判定する（ステップＳ４０２Ｙｅｓ）。
【０１１７】
話題情報７０１がメイン話題として適していると判定されたので、手続き実行部１０４は取得指定情報である「変数「解決中の属性名」」を話題情報７０１から取得する。その結果“目的地”を得る（ステップＳ３０４）。取得指定情報を取得できたので、メイン話題からの情報取得処理を終了する（ステップＳ３０５Ｙｅｓ、Ｅｎｄ）。
【０１１８】
手続き実行部１０４は、メイン話題の変数「解決中の属性名」＝“目的地”を利用して関数「初期応答」の処理を継続する。その結果、ユーザに対して「目的地のジャンル検索を開始します」という応答を出力する。
【０１１９】
このように第２の実施形態では、話題定義ＤＢ５０１に登録されている引数定義情報テーブル８１１と、出力型定義情報テーブル８１２とを参照し、対話状態管理部１０１に記憶されている各話題情報がメイン話題として適している話題情報のみを利用し、応答にメイン話題の情報を含めることが可能となる。
【０１２０】
例えば、上述の例でステップＳ４０２の処理が欠落している場合を検討する。この場合、話題情報７０２に対して取得指定情報を取得する（ステップＳ３０４）。話題情報７０２には変数「解決中の属性名」として“都道府県名”が登録されているため、これを取得することになる（ステップＳ３０５Ｙｅｓ、Ｅｎｄ）。この結果、メイン話題の変数「解決中の属性名」＝“都道府県名”となり、これを利用した応答文は「都道府県名のジャンル検索を開始します」と誤った応答を出力してしまう。
【０１２１】
この例のように、ユーザが対話の流れを無視して無関係な新規話題の導入をした箇所では、対話状態管理部１０１における順序関係とメイン話題―サブ話題の関係が成立しない場合がある。このような例外を扱うためには、話題の意味的な情報を利用したメイン話題―サブ話題の判定が必要である。第２の実施形態は、話題定義ＤＢを利用したメイン話題―サブ話題判定を導入するものである。
【０１２２】
以上のように第２の実施形態に係る対話装置は、メイン話題からの情報取得処理において、話題の対話結果として取得する情報を表す出力型定義情報と、話題の解決に必要な情報群である引数定義情報を加味して、メイン話題として適した話題を判定し、メイン話題として適した話題から情報を取得する。この結果、ユーザにより対話進行とは無関係な話題情報を導入された場合でも、メイン話題―サブ話題の関係が成立する話題情報を選択することが可能であり、メイン話題として適切な話題情報から取得した情報を含めた応答生成を行うことが可能となっている。
【０１２３】
尚、上述の例では、メイン話題からの情報取得処理の度に、各話題情報がメイン話題として適切であるかどうかの処理を確認することになるが、例えば、ステップＳ４０２において、対話状態管理部１０１の各話題情報について、メイン話題として適切な話題情報を記憶しておく。以後、この記憶されている話題情報をメイン話題として適切な話題情報として採用することができる。
【０１２４】
（第３の実施形態）
次に、第３の実施形態として、メイン話題からの情報取得処理のさらに他の例について説明する。第３の実施形態に係るメイン話題からの情報取得処理では、第２の実施形態と同様に、対話状態管理部１０１の順序情報のみだけではなく、メイン話題に適しているかを判定した上で取得指定情報を取得する。第２の実施形態と異なる点は、図２１のステップＳ４０２の処理である。
【０１２５】
第３の実施形態に係る対話装置の構成例及びその全体の処理動作は図１、図２と同様である。
【０１２６】
図２２は、第３の実施形態に係るメイン話題からの情報取得処理を示すフローチャートである。図２２では、図２１のステップＳ４０２がステップＳ４０２´に置き換わっている。以下、第３の実施形態について、主に、第1及び第2の実施形態と異なる点について説明する。
【０１２７】
図２２のステップＳ４０２´では、対話シナリオ管理部１０２における対話シナリオ（図６）を利用し、メイン話題として適した話題情報を選別する。
【０１２８】
各対話シナリオには、対話進行状況として入力を受けた時の動作を指定する応答生成手続きが指定されている。例えば図６の対話シナリオ６０１では、対話進行状況が「都道府県型の値が入力された」であるときの応答手続きとして「属性「都道府県名」に入力された値を代入」が指定されている。この応答手続きは、話題「住所検索」が都道府県型の情報を受け取って、何らかの応答手続きを実行することができることを示している。
【０１２９】
サブ話題の対話結果は、サブ話題に関するユーザ入力内容を統合した結果であるとみなすことができ、これもまた1つの入力であるとみなすことができる。この対話結果を入力として受け取り、応答生成手続きを実行できる話題はメイン話題として適していると言える。
【０１３０】
従って、ステップＳ４０２´では、処理対象の話題情報が「サブ話題出力情報」にセットされている出力型の情報を入力として受け取って応答手続きを実行することができる話題のものであれば、メイン話題として適していると判定する。
【０１３１】
次に、カーナビゲーションシステムに、第３の実施形態に係る対話装置を適用した場合を例により、より具体的に説明する。このシステムでは、住所で場所を検索する「住所検索」と、ジャンルで施設の場所を検索する「施設検索」と、1つの施設を目的地に設定する「目的地設定」と、1つの施設を経由地に設定する「経由地設定」の４つの話題に関する対話が可能である。対話シナリオ管理部１０２は、図２０の話題定義ＤＢ５０１と、図６の対話シナリオＤＢ５０２を含む。
【０１３２】
ここでは、対話状態管理部１０１が図１９に示す状態のときに、話題「ジャンル検索」の対話シナリオ６０２における関数「初期応答」を実行する場合を例にとり、手続き実行部１０４におけるメイン話題からの情報取得処理について、図２２のフローチャートに従って説明する。
【０１３３】
図６の対話シナリオ６０２に含まれる関数「初期応答」の中には「メイン話題の変数「解決中の属性名」」を取得することを指定している。手続き実行部１０４は、この指定を受け、図２２のメイン話題からの情報取得処理を実行する。
【０１３４】
まず、「サブ話題出力情報」に現在の話題の出力型定義情報をセットする（ステップＳ４０１）。また、処理対象を現在の話題情報より１つ古い話題情報とする（ステップＳ３０１、ステップＳ３０２Ｎｏ、ステップＳ３０３）。この結果、「サブ話題出力情報」は現在の話題情報である「ジャンル検索」の出力型定義情報「場所」（図２０を参照）、処理対象は図１９の話題情報は７０２となる。
【０１３５】
手続き実行部１０４は、処理対象の話題情報７０２が現在の話題のメイン話題として適しているかを判定する（ステップＳ４０２´）。話題情報７０２の話題「住所検索」の対話シナリオは６０１には、図６に示すように、「サブ話題出力情報」にセットされている出力型「場所」の情報を入力として受け取って動作する応答手続きが存在しないので話題情報７０２はメイン話題として適していないと判定する（ステップＳ４０２´Ｎｏ）。
【０１３６】
手続き実行部１０４は、処理対象を話題情報７０２から、それよる1つ古い話題情報７０１に更新する（ステップＳ３０２Ｎｏ、ステップＳ３０３）。
【０１３７】
手続き実行部１０４は、新たな処理対象の話題情報７０１が現在の話題のメイン話題として適しているかを判定する（ステップＳ４０２´）。話題情報７０１の話題「目的地設定」の対話シナリオ６０３には、「サブ話題出力情報」にセットされている出力型「場所」の情報を入力として受け取ってときに動作する応答手続き、すなわち、「場所型の値が入力された―属性「目的地」に代入し、次の動作を決定」が存在する。従って、話題情報７０１はメイン話題として適していると判定する（ステップＳ４０２´Ｙｅｓ）。
【０１３８】
話題情報７０１がメイン話題として適していると判定されたので、手続き実行部１０４は取得指定情報である「変数「解決中の属性名」」を話題情報７０１から取得する。その結果“目的地”を得る（ステップＳ３０４）。取得指定情報を取得できたのでメイン話題からの情報取得処理を終了する（ステップＳ３０５Ｙｅｓ、Ｅｎｄ）。
【０１３９】
手続き実行部１０４は、メイン話題の変数「解決中の属性名」＝“目的地”を利用して関数「初期応答」の処理を継続する。その結果、ユーザに対して「目的地のジャンル検索を開始します」という応答を出力する。
【０１４０】
このように第３の実施形態では、対話状態管理部１０１に記憶されている話題情報の話題のうち、対話シナリオに、サブ話題の出力型と同じ型の情報を入力として受付ける手続きが含まれている話題のみをメイン話題として利用し、応答に当該メイン話題の情報を含めることが可能となる。
【０１４１】
尚、上述の例では、メイン話題からの情報取得処理の度に、各話題情報がメイン話題として適切であるかどうかの処理を確認することになるが、例えば、ステップＳ４０２´において、対話状態管理部１０１の各話題情報について、メイン話題として適切な話題情報を記憶しておけば、この記憶されている話題情報をメイン話題として適切な話題情報として採用することができる。
【０１４２】
上述の例ではステップＳ４０２´において、「サブ話題出力情報」にセットされているサブ話題の出力型と、図６に示す対話シナリオにおける入力の型とを比較するかのように記述しているが、出力型定義情報の型のダミー情報を作成し、各対話シナリオが作成したダミー情報を入力として受け付けられるか否かを確認しても良い。
【０１４３】
以上説明したように、第３の実施形態に係る対話装置は、メイン話題からの情報取得処理において、対話シナリオに、サブ話題の出力型と同じ型の情報を受け取る手続きが含まれている話題をメイン話題とし、該メイン話題から情報を取得する。この結果、ユーザにより対話進行とは無関係な話題情報を導入された場合でも、メイン話題―サブ話題の関係が成立する話題情報を選択することが可能であり、メイン話題として適切な話題情報から取得した情報を含めた応答生成を行うことが可能となっている。
【０１４４】
なお、上記第1乃至第３の実施形態で説明した対話装置は、アプリケーションの機能を含有する対話装置であってもよい。例えばユーザに提示する情報を記憶するデータベースを保持し、ユーザの要求する条件に基づいてそのデータベースを検索する機能を含有する対話装置の場合について考える。このような対話装置において、ユーザとの対話によってデータベース検索条件を取得し、取得した検索条件に基づいてそのデータベースを検索し、ユーザに対して回答を返す動作をする場合は、そのようなデータベース検索機能は本発明におけるアプリケーションの機能であり、データベース検索条件を取得することが本発明における話題に相当する。
【０１４５】
また、データベース検索の他に種々の機能を保有する対話装置であっても、ユーザと対話をして各種機能の動作条件を決定しそれに基づいて各種機能を動作させる場合は、その機能は全て本発明におけるアプリケーションの機能と同一とみなせる。例えばユーザとの対話によって指定された条件で各種機能を動作させる構成や、対話装置から動作条件を提示してユーザからの承諾を得ることで各種機能を動作させる構成であっても、動作させる各種機能は本発明におけるアプリケーションの機能であると言える。
【０１４６】
また、上記第１乃至第３の実施形態は、複数のアプリケーションの機能を利用することも可能である。複数のアプリケーションに含まれる個々の機能を実行させることを個別の目的として、それぞれを個別の話題として取り扱うことが可能である。
【０１４７】
また、各実施形態の説明においてはアプリケーションの機能を実行させることを話題解決時の一回だけ行うかのように記述しているが、話題は「アプリケーションにある機能を有効に動作させる」ことを目的とするものであり、その実行結果が有意なものでなければ（検索結果の件数が0件や多すぎる場合、コマンドの実行失敗など）話題を解決していないとみなし、再度その機能の実行条件の変更を行いアプリケーションの機能を複数回実行しても良い。実行条件はユーザから対話的に変更することも、対話装置から自動的に変更することも可能である。或いはある話題の対話中の途中経過において、ユーザとの対話進行のための手順として必要な機能を実行しても良い。
【０１４８】
また、第1乃至第３の実施形態では、カーナビゲーションシステムを対象とした例で説明しているが、情報検索端末や、ビデオ等の家電操作等、様々なアプリケーションに適用することが可能である。
【０１４９】
本発明の実施の形態に記載した本発明の手法は、コンピュータに実行させることのできるプログラムとして、（すなわち、コンピュータを対話状態管理部１０１、対話シナリオ管理部１０２、対話進行部１０３、手続き実行部１０４として機能させるためのプログラムとして、)磁気ディスク（フレキシブルディスク、ハードディスクなど）、光ディスク（ＣＤ−ＲＯＭ、ＤＶＤなど）、半導体メモリなどの記録媒体に格納して頒布することもできる。
【０１５０】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【０１５１】
【図１】本発明の第１乃至第３の実施形態に係る対話装置の構成例を示した図。
【図２】図１の対話装置の処理動作を説明するためのフローチャート。
【図３】対話状態管理部に記憶される話題情報の記憶例を示した図。
【図４】話題定義を説明するための図。
【図５】対話シナリオ管理部の構成例を示した図。
【図６】対話シナリオＤＢに記憶されている対話シナリオの具体例を示した図。
【図７】第１の実施形態に係る手続き実行部の処理動作を説明するためのもので、メイン話題からの情報取得処理を説明するためのフローチャート。
【図８】対話例１を示した図。
【図９】対話例１に対応する対話状態管理部の状態を示した図。
【図１０】対話例２を示した図。
【図１１】対話例２に対応する話状態管理部の状態を示した図。
【図１２】対話例３を示した図。
【図１３】対話例３に対応する対話状態管理部の状態を示した図。
【図１４】メイン話題の画面制御関数を用いてサブ話題での応答画面を生成する場合の動作を説明するためのもので、対話状態管理部に記憶されている話題情報と該話題情報に対応する話題の対話シナリオに含まれる関数の一具体例を示した図。
【図１５】メイン話題の画面制御関数を用いて生成されたサブ話題での応答画面の一例を示した図。
【図１６】メイン話題の画面制御関数を用いてサブ話題での応答画面を生成する場合の動作を説明するためのもので、対話状態管理部に記憶されている話題情報と該話題情報に対応する話題の対話シナリオに含まれる関数の一具体例を示した図。
【図１７】図１５とは異なるメイン話題の画面制御関数を用いて生成されたサブ話題での応答画面の一例を示した図。
【図１８】第２の実施形態に係る手続き実行部の、メイン話題からの情報取得処理を説明するための対話例を示した図。
【図１９】図１８の対話例に対応する対話状態管理部の状態を示した図。
【図２０】対話シナリオ管理部に含まれる話題定義ＤＢに記憶される情報の具体例を示した図。
【図２１】第２の実施形態に係る手続き実行部の、メイン話題からの情報取得処理を説明するためのフローチャート。
【図２２】第３の実施形態に係る手続き実行部の、メイン話題からの情報取得処理を説明するためのフローチャート。
【符号の説明】
【０１５２】
１０１…対話状態管理部
１０２…対話シナリオ管理部
１０３…対話進行部
１０４…手続き実行部
【図１】
2008243048.tif 000003
【図２】
2008243048.tif 000004
【図３】
2008243048.tif 000005
【図４】
2008243048.tif 000006
【図５】
2008243048.tif 000007
【図６】
2008243048.tif 000008
【図７】
2008243048.tif 000009
【図８】
2008243048.tif 000010
【図９】
2008243048.tif 000011
【図１０】
2008243048.tif 000012
【図１１】
2008243048.tif 000013
【図１２】
2008243048.tif 000014
【図１３】
2008243048.tif 000015
【図１４】
2008243048.tif 000016
【図１５】
2008243048.tif 000017
【図１６】
2008243048.tif 000018
【図１７】
2008243048.tif 000019
【図１８】
2008243048.tif 000020
【図１９】
2008243048.tif 000021
【図２０】
2008243048.tif 000022
【図２１】
2008243048.tif 000023
【図２２】
2008243048.tif 000024