(57)【要約】【課題】新規に導入された対話内容と現在実行中の対話に対し柔軟な対話制御を行うことが可能な対話装置、対話方法、対話システム及びコンピュータプログラムを提供する。【解決手段】対話進行部１０２からの新規話題情報の導入により、話題情報反映部１０３により話題情報管理部１０１から更新可能な話題情報を探索し、該検索された更新可能な話題情報の対話進行状況を新規の話題情報における対話進行状況に関する情報を用いて更新するとともに、対話進行状況の更新が局所的な話題を更新対象とするとき、該更新対象の更新と共に更新対象を現在の話題とするように前記話題情報管理部１０１の話題情報を消去する。【選択図】      図１
2007264199.tif 000002
【特許請求の範囲】
【請求項１】
ユーザとの対話の進行処理を行うとともに、前記対話中の新規の話題情報の導入を検出する対話進行手段と、
前記対話進行手段による前記ユーザとの対話中に現れた少なくとも話題の種類と対話の進行状態を含む話題情報を前記対話を進行させる優先順序で記憶する話題情報管理手段と、
前記対話進行手段により検出される新規の話題情報により前記話題情報管理手段から所定の関係を有する話題情報を探索し、該検索された話題情報に対して前記新規の話題情報に基づく対話を優先して進行させるように前記検索された話題情報の更新又は前記新規の話題情報の挿入を実行する話題情報反映手段と
を具備したことを特徴とする対話装置。
【請求項２】
ユーザとの対話の進行処理を行うとともに、前記対話中の新規の話題情報の導入を検出する対話進行手段と、
前記対話進行手段による前記ユーザとの対話中に現れた少なくとも話題の種類と対話の進行状態を含む話題情報を前記対話を進行させる優先順序で記憶する話題情報管理手段と、
前記対話進行手段により検出される新規の話題情報により前記話題情報管理手段から更新可能な話題情報を探索し、該検索された更新可能な話題情報の対話進行状況を前記新規の話題情報における対話進行状況に関する情報を用いて更新するとともに、該対話進行状況の更新が局所的な話題を更新対象とするとき、該更新対象の更新と共に前記更新対象を現在の話題とするように前記話題情報管理手段の話題情報を消去する話題情報反映手段と
を具備したことを特徴とする対話装置。
【請求項３】
前記新規話題情報により更新可能な話題情報は、前記新規の話題情報と同種の話題情報であることを特徴とする請求項１記載の対話装置。
【請求項４】
ユーザとの対話の進行処理を行うとともに、前記対話中の新規の話題情報の導入を検出する対話進行手段と、
前記対話進行手段による前記ユーザとの対話中に現れた少なくとも話題の種類と対話の進行状態を含む話題情報を前記対話を進行させる優先順序で記憶する話題情報管理手段と、
各話題における利用・被利用に関する依存関係を管理する話題依存関係データベースと、
前記対話進行手段により検出される新規の話題情報との利用関係を確認する話題情報を挿入確認対象として前記話題情報管理手段から検索し、該検索された挿入確認対象について前記話題依存関係データベースを参照して前記新規の話題情報に対する依存関係を判断し、この判断結果に基づいて前記新規の話題情報を前記挿入確認対象の前に挿入可能にする前記話題情報反映手段と
を具備したことを特徴とする対話装置。
【請求項５】
更新前対話ルールを登録した更新前対話ルール管理手段をさらに有し、
前記話題情報反映手段は、前記新規話題情報を用いて前記話題情報管理手段を更新する前に前記更新前対話ルール管理手段を参照し、該更新前対話ルール管理手段に登録された更新前対話ルールに従って更新前対話を実行可能としたことを特徴とする請求項２又は４記載の対話装置。
【請求項６】
前記更新前対話ルール管理手段は、新規の話題情報による更新方法、更新前対話の進行状態を更新前対話ルールとして登録したことを特徴とする請求項５記載の対話装置。
【請求項７】
ユーザとの対話の進行処理を行うとともに、前記対話中の新規の話題情報の導入を検出する第１のステップと、
前記ユーザとの対話中に現れた少なくとも話題の種類と対話の進行状態を含む話題情報を前記対話を進行させる優先順序で記憶する第２のステップと、
前記新規の話題情報により前記第２のステップで記憶された内容から所定の関係を有する話題情報を探索し、該検索された話題情報に対して前記新規の話題情報に基づく対話を優先して進行させるように前記検索された話題情報の更新又は前記新規の話題情報の挿入を実行する第３のステップと
を有することを特徴とする対話方法。
【請求項８】
ユーザとの対話の進行処理を行うとともに、前記対話中の新規の話題情報の導入を検出する対話進行部と、
前記対話進行部による前記ユーザとの対話中に現れた少なくとも話題の種類と対話の進行状態を含む話題情報を前記対話を進行させる優先順序で記憶する話題情報管理部と、
前記対話進行部により検出される新規の話題情報により前記話題情報管理部から所定の関係を有する話題情報を探索し、該検索された話題情報に対して前記新規の話題情報に基づく対話を優先して進行させるように前記検索された話題情報の更新又は前記新規の話題情報の挿入を実行する話題情報反映部と、
前記対話進行部、話題情報管理部及び話題情報反映部の少なくとも２つの間を接続し情報の送受信を行なう通信媒体と
を具備したことを特徴とする対話システム。
【請求項９】
ユーザとの対話を実行する対話装置を制御するコンピュータプログラムであって、
ユーザとの対話の進行処理を行うとともに、前記対話中の新規の話題情報の導入を検出する第１のステップと、
前記ユーザとの対話中に現れた少なくとも話題の種類と対話の進行状態を含む話題情報を前記対話を進行させる優先順序で記憶する第２のステップと、
前記新規の話題情報により前記第２のステップで記憶された内容から所定の関係を有する話題情報を探索し、該検索された話題情報に対して前記新規の話題情報に基づく対話を優先して進行させるように前記検索された話題情報の更新又は前記新規の話題情報の挿入を実行する第３のステップと
を有することを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザと対話を行う対話装置、対話方法、対話システム及びコンピュータプログラムに関するものである。
【背景技術】
【０００２】
近年、音声や自然言語入力を可能とするインタフェースに関する研究が盛んである。また、そのようなインタフェースを用いるエキスパートシステムなどが多数開発され、入力された音声やテキストなどを受理する装置が一般向けにも利用可能となっている。
【０００３】
自然言語による入力を行う場合にはユーザはシステムが必要とする全ての条件を一度に入力することは少なく、ユーザとシステムとの間でのやりとりが必要となる。例えばユーザの入力内容に不備がある場合には、システムは、その足りない条件をユーザに問い合わせ、その問い合わせに対するユーザの回答を統合するなどの処理が必要となる。このような処理を行うためにユーザとシステムとの対話処理技術が不可欠である。
【０００４】
このような自然言語入力は、人間にとって普段から慣れている入力方法であるため、特に操作が複雑で大規模なシステムのインタフェースでの利用が望まれている。こういった大規模なシステムでは、全体の目的を達成するために複数の副目的を達成するといった対話が必要となる。このため、対話処理技術ではそれぞれの目的に対応した複数の話題を取り扱う必要がある。同時にユーザの対話中の翻意などに対応した白由な対話を可能とするという観点では、システムが望む情報に関するユーザ入力のみを受理するのではなくユーザから自由に実行したい話題を指定でき、かつユーザによって対話に導入された様々な話題を統合して全体の目的を達成するような対話が可能であることが望ましい。
【０００５】
従来の対話技術においては、例えば、特許文献１に開示されるように話題をスタックで管理する方法が提案されている。この方法は、ユーザとの対話に現れた話題をスタックで管理し、目的を達成していないためにユーザとの対話が終了していない話題(未解決話題)をスタックに蓄積する。ユーザ或いはシステムによって新規話題を導入した場合には、その話題をスタックにプッシュし、ある話題についてユーザとの対話が終了した(以下『話題を解決した』と表記する)場合はスタックからポップするという操作を行う。ユーザとの対話を実行する話題はスタックの最後(スタックトップ)にある話題である。そして、ある話題を解決した時にその話題の対話結果に基づき、対話を再開する未解決話題をスタックから探索した結果を次の話題として選択する。
【特許文献１】特開２００４−２１２６６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１の方法は、対話中にユーザ入力等によって新規話題が導入されると、その新規話題に関する対話を直ちに実行するために、新規話題がスタックトップとなるように話題のスタックを操作する。即ち、新規話題の導入時において、未解決話題の対話内容の変更に新規話題が使用できる場合は、その未解決話題の対話を実行するために現在対話中の話題の対話内容を破棄(話題をポップ)するか、或いは未解決話題の対話内容の変更に新規話題を使用できない場合は新規話題の対話を割り込ませるためにスタックにプッシュする。
【０００７】
しかし、導入する新規話題の種類によって、現在対話中の話題を先に解決し、その解決結果を利用して新規話題の対話を進行した方が良い場合があるが、特許文献１の方法では、このような場合であっても現在対話中の話題の対話内容を破棄してしまうか、或いは新規話題をプッシュして対話を進行させるため現在対話中の話題の対話内容を無視してしまう。いずれにしてもユーザは、現在対話中の話題の内容を再度入力しなければならなくなるという問題がある。
【０００８】
本発明は上記事情に鑑みてなされたもので、新規に導入された対話内容と現在実行中の対話に対し柔軟な対話制御を行うことが可能な対話装置、対話方法、対話システム及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る対話装置は、
ユーザとの対話の進行処理を行うとともに、前記対話中の新規の話題情報の導入を検出する対話進行手段と、
前記対話進行手段による前記ユーザとの対話中に現れた少なくとも話題の種類と対話の進行状態を含む話題情報を前記対話を進行させる優先順序で記憶する話題情報管理手段と、
前記対話進行手段により検出される新規の話題情報により前記話題情報管理手段から所定の関係を有する話題情報を探索し、該検索された話題情報に対して前記新規の話題情報に基づく対話を優先して進行させるように前記検索された話題情報の更新又は前記新規の話題情報の挿入を実行する話題情報反映手段とを具備したことを特徴とする。
【００１０】
本発明に係る対話装置は、
ユーザとの対話の進行処理を行うとともに、前記対話中の新規の話題情報の導入を検出する対話進行手段と、
前記対話進行手段による前記ユーザとの対話中に現れた少なくとも話題の種類と対話の進行状態を含む話題情報を前記対話を進行させる優先順序で記憶する話題情報管理手段と、
前記対話進行手段により検出される新規の話題情報により前記話題情報管理手段から更新可能な話題情報を探索し、該検索された更新可能な話題情報の対話進行状況を前記新規の話題情報における対話進行状況に関する情報を用いて更新するとともに、該対話進行状況の更新が局所的な話題を更新対象とするとき、該更新対象の更新と共に前記更新対象を現在の話題とするように前記話題情報管理手段の話題情報を消去する話題情報反映手段とを具備したことを特徴とする。
【００１１】
本発明に係る対話装置は、
ユーザとの対話の進行処理を行うとともに、前記対話中の新規の話題情報の導入を検出する対話進行手段と、
前記対話進行手段による前記ユーザとの対話中に現れた少なくとも話題の種類と対話の進行状態を含む話題情報を前記対話を進行させる優先順序で記憶する話題情報管理手段と、
各話題における利用・被利用に関する依存関係を管理する話題依存関係データベースと、
前記対話進行手段により検出される新規の話題情報との利用関係を確認する話題情報を挿入確認対象として前記話題情報管理手段から検索し、該検索された挿入確認対象について前記話題依存関係データベースを参照して前記新規の話題情報に対する依存関係を判断し、この判断結果に基づいて前記新規の話題情報を前記挿入確認対象の前に挿入可能にする前記話題情報反映手段とを具備したことを特徴とする。
【発明の効果】
【００１２】
本発明によれば、新規に導入された対話内容が直ちに実行すべきものかどうかを判定し、その判定結果に応じて新規に導入された対話内容と現在実行中の対話の順序を変更するなど柔軟な対話制御を行うことが可能となる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態に係る対話装置、対話方法及びプログラムについて図面を用いて説明する。
【００１４】
本発明による対話装置は何らかのアプリケーションのユーザインタフェースからなるもので、アプリケーションにある機能を有効に動作させることを目的とするものである。特に、本発明による対話装置はアプリケーションによる一つ以上の種類の機能を取り扱うために一つ以上の目的を取り扱うものであり、個々の目的を達成するためにそれぞれの目的と対応付けた話題についてユーザとの対話を行うものである。
【００１５】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係わる対話装置を示すブロック図である。
【００１６】
対話装置は、話題情報管理部１０１、対話進行部１０２、話題情報反映部１０３を備えている。話題情報管理部１０１は、ユーザＡとの対話の進行状態(対話状態)として対話中に現れた話題情報をユーザＡとの対話を進行させる優先順序で順序付けて記憶するリストからなっている。本説明ではリストの後ろに記憶されている話題情報がユーザＡと対話をする優先度が高い話題情報であるとする。話題情報は話題の種類と対話の進行状態を含む情報である。これにより、話題情報管理部１０１の最後に記憶されている話題情報が対話進行部１０２においてユーザＡとの対話対象となる話題情報(現在の話題情報)である。
【００１７】
話題情報管理部１０１は、対話進行部１０２や話題情報反映部１０３からの更新操作をも受付ける。更新操作の内容としては、リスト内の特定位置に話題情報を挿入したり、特定位置の話題情報の内容を修正したり、特定位置の話題情報を消去したりすることを含む。
【００１８】
対話進行部１０２は、話題情報管理部１０１に格納されている現在の話題情報を対象としてユーザＡとの対話を行い、現在の話題情報の話題(現在の話題)の目的をユーザＡとの対話によって達成する(話題を解決する)。対話進行部１０２は、ユーザＡとの対話の際には、ユーザ入力を値や話題情報に対応付けるなどといった入力解釈や、送出プロンプトの決定などの対話進行処理を行う。ここで、送出プロンプトは音声信号やテキスト表示等によってユーザＡに提示される。対話進行部１０２は、話題情報管理部１０１が空になり、更に導入する新規話題情報がないことを検出するとユーザＡとの対話を終了する。
【００１９】
対話進行部１０２は、現在の話題を解決した場合は解決時の話題情報の内容でアプリケーションの動作を実行させ、話題情報管理部１０１から現在の話題情報を消去する。更に、対話進行部１０２は現在の話題に関する対話結果を話題情報管理部１０１に反映させる。ここで、対話結果はデータベースの検索結果のような値となる場合や新規に対話を行うべき話題情報となる場合がある。対話結果が単なる値の場合は、対話進行部１０２は話題情報管理部１０１の中から対話結果の値が利用可能な話題情報を探索し、探索結果の話題情報に値を通知することで対話結果を反映させる。一方、対話結果として新規に対話を行うべき話題情報を取得した場合には、対話進行部１０２は対話結果を反映させるために話題情報反映部１０３に、その話題情報を利用して話題情報管理部１０１を更新させる。対話進行部１０２は、ユーザＡとの対話中に新しい話題情報(新規話題情報)の導入を検出した場合には、話題情報反映部１０３に新規話題情報を用いて話題情報管理部１０１を更新させる。対話進行部１０２は、（ａ）ユーザ入力の解釈結果が話題情報であった場合、（ｂ）現在の話題を解決するための手続きとして別の話題の対話が必要であると判定し、その話題の話題情報を導入する場合、（ｃ）ある話題の対話結果として新たな話題情報を取得した場合に新規話題情報の導入を検出する。話題情報反映部１０３が新規話題情報を用いて話題情報管理部１０１を更新した後に、対話進行部１０２は更新された話題情報管理部１０１における現在の話題情報を対象にしてユーザＡとの対話を継続する。
【００２０】
対話進行部１０２における入力解釈では、ユーザＡから入力される自然言語を解釈し、ユーザ入力を何らかの話題情報か或いは値に変換する。例えば、ユーザＡが話題の名称を入力した場合には対話進行状況が初期状態の話題情報に変換したり、ユーザが動作条件としての値を指定した場合にはその値の種類の情報(例えば品詞情報など)を付与したりする。また、話題名称を省略した入力であっても話題を特定できる場合はある条件を指定された対話進行状況の話題情報に変換することもある。このような自然言語解釈方式は既存のものが使用できる。
【００２１】
対話進行部１０２は各話題に対応付けられた対話手順と対話中の話題情報にある対話進行状況を参照して対話を行う。対話手順が終了した時に対話進行部１０１はその話題を解決したと判断する。このような一つの話題を解決する対話処理は、各話題に関連付けられた対話の状態遷移図などのシナリオを参照して対話を進め、シナリオの終了まで対話状態が遷移すると話題の解決とみなす手法や、話題解決のために不足している情報を検出してユーザＡに要求し、不足情報がなくなれば話題の解決とみなす手法など、既存の手法を利用することができる。また、対話の際にユーザＡに提示する応答(送出プロンプト)はシナリオに指定された定型文や、応答文のテンプレートに情報を与えて自動生成してユーザＡに応答文を提示したり、シナリオに指定された画面出力等の動作指定などに基づき動作したりするなど既存の手法を利用して生成してことが可能である。
【００２２】
対話進行部１０２が参照する対話手順は対話装置内外のどのような箇所に格納されていても構わない。対話装置外に格納されている場合、対話進行部１０２はネットワークを介して対話手順にアクセスする。
【００２３】
話題情報反映部１０３は、対話進行部１０２とユーザとの対話中に現れた新規話題情報を話題情報管理部１０１に反映させ、話題情報管理部１０１を更新する。話題情報反映部１０３の動作の詳細は後に詳述する。
【００２４】
次に、本発明の第１の実施の形態に係わる対話装置の動作について図２に示すフローチャートを参照して説明する。
【００２５】
本対話装置は所定の話題についてユーザＡとの対話を行うものである。ユーザＡ或いは本対話装置によって対話を開始した段階が図２に示した「Ｓｔａｒｔ」に相当し、対話を継続する必要性がなくなったときに対話を終了する。すなわち、図２に示す「Ｅｎｄ」で対話を終了する。
【００２６】
本対話装置はユーザＡとの対話を開始すると、対話進行部１０２がユーザＡとの対話を進行する(ステップＳ２０１)。対話進行中にはシステム応答を出力してユーザ入力を待ち受ける場合も含まれるが、このような状態はステップＳ２０１でユーザ入力まで一時停止している状態であると言える。この場合はユーザ入力やタイマイベント等を受理することでステップＳ２０１の処理が継続される。さらに対話進行部１０２は、ユーザ入力のタイミングに限らず対話が進行する各段階で、対話が終了したか(ステップＳ２０２)、新たな話題情報の導入があるか(ステップＳ２０３)を逐一確認する。
【００２７】
ステップＳ２０２において対話進行部１０２が対話の終了を検出するとユーザＡとの対話を終了する(Ｅｎｄ)。ステップＳ２０３において対話進行部１０２が新たな話題情報の導入を検出できなかった場合は、そのままユーザＡとの対話処理を継続し(ステップＳ２０１)、新規話題情報の導入を検出すると、話題情報反映部１０３に新規話題情報を用いて話題情報管理部１０１を更新させる。話題情報反映部１０３は、話題情報管理部１０１の更新方法を判定し(ステップＳ２０４)、その更新方法に応じて話題情報管理部１０１の内容を更新する(ステップＳ２０５)。話題情報管理部１０１の内容が更新されると、対話処理部１０２は更新後の現在の話題情報を対象としてユーザＡとの対話を進行する(ステップＳ２０１)。話題情報反映部１０３の処理の詳細(ステップＳ２０４,ステップＳ２０５)については後に詳述する。
【００２８】
次に、話題情報管理部１０１に格納される話題情報の具体例について図４を参照して説明する。図４は話題情報管理部１０１とこれに格納される話題情報の例を示す。図４では、話題情報管理部１０１は、話題「ルート設定」、「目的地設定」、「住所検索」の順に対話が進行した場合の話題情報の登録状態を示している。
【００２９】
話題情報は少なくとも話題の種類と各話題の対話進行状況に関する情報を含む情報である。対話進行状況に関する情報は各話題に関する対話手順の指定方法に依存する。例えば状態遷移図によるシナリオ指定の場合は対話によって遷移したノードに相当し、或いは話題を解決するために必要な情報を要求する対話処理の場合は、解決に必要な情報のリストなどが挙げられる。
【００３０】
ここで本発明の説明に使用する話題情報及びその表記について図４を用いて説明する。話題情報は名称と引数に分割できる。名称は話題の種類を表す情報であり、“("の左側に表記する。『日的地設定』や『住所検索』などがこれに相当する。引数は本対話装置が対話によってユーザＡから情報を取得すべき属性であり、“（）"の内部に相当する。引数の数は話題によって異なり、表記上では各引数を“、"によって区切る。各引数は属性の呼び名である属性名と実際に対話によって指定された値である属性値の組み合わせで定義されており、これを(属性名):(属性値)と表記する。属性値を取得していない場合は“φ"を(属性値)に格納する。例えば図４における話題情報４０３は『話題「住所」において都道府県名として「○○県」という値をユーザＡから取得した』状態であることを意味する。話題情報４０１、４０２は、属性値を取得していないことを示している。尚、詳細な属性情報の表記が必要でない場合は、話題情報を単純に話題の名称のみで表記する。
【００３１】
ここで図４に示す話題情報を用いた対話進行部１０２における個々の話題に対する対話処理方法の例について説明する。話題情報の属性には話題解決のために取得が必須である必須属性と必須ではない属性がある。対話進行部１０２は属性値が指定されていない必須属性が現在の話題情報の中にあれば、対話処理としてその必須属性に代入する属性値を取得するように動作する。例えば必須属性の値を入力するようにユーザＡに要求し、ユーザ入力を各属性に対応付けたり、ユーザＡに問い合わす必要がない情報であれば(現在時刻など)ユーザＡに要求せずに暗黙的に取得したりする。また、ユーザＡに情報を要求する過程において、情報を要求するための手続きとして別の話題の対話を行う必要があれば、その話題の話題情報を導入して対話を行い、導入した話題情報に関する対話の結果を属性値として使用する。その際に、情報を要求する対象となった属性を話題情報に記憶させておく。一方、単純なコマンドの場合などには話題情報の属性数が０個の場合もあるが、そのような話題の場合は全必須属性が指定されているものとみなせる。そして、話題情報において不足している必須属性が無くなるとその話題は解決したと判定する。尚、以下では表記を簡単にするために断りがない限り各話題情報における属性は全て必須属性とし、全必須属性が指定されればその話題を解決したものとして説明する。
【００３２】
次に、本発明において重要な役割を持つ話題情報反映部１０３について図２、図３を参照して説明する。図３は本実施の形態における話題情報反映部１０３における話題情報管理部１０１の更新方法を判定するステップＳ２０４のフローチャートである。
【００３３】
話題情報反映部１０３は、対話進行部１０２が新規話題情報の導入を検出した時に動作する。話題情報反映部１０３は先ず話題情報管理部１０１の更新方法を判定(ステップＳ２０４)し、次にその更新方法に基づいて話題情報管理部１０１を更新する(ステップＳ２０５)。以下それぞれの処理について説明する。
【００３４】
話題情報反映部１０３における話題情報管理部１０１の更新方法判定の処理(ステップＳ２０４)について図３を用いて説明する。話題情報反映部１０３はまず、新規話題情報が導入された状況を確認する(ステップＳ３０１)。この状況が現在の話題を解決するための手続きとして対話進行部１０２が新規話題情報を導入する場合であれば、直ちに新規話題情報の対話を行う必要があるので新規話題情報を話題情報管理部１０１の最後に追加すると決定する(ステップＳ３０９)。従って、話題情報管理部１０１は属性値を決定するといったより局所的な話題の話題情報をより後ろの方に格納することになる。それ以外であればステップＳ３０２に進む。
【００３５】
ここでステップＳ３０２以降における話題情報反映部１０３の動作方針について説明する。話題情報反映部１０３は、話題情報管理部１０１の中から新規話題情報によって話題情報の内容を修正(話題情報の更新)が可能な話題情報を探索する。ある話題情報が更新されると、その話題情報の手続きとして導入された局所的な話題の解決がなされたものとみなすことができる。よって更新後は更新された話題情報を対象とした対話を実行する。しかしながら、話題情報の更新は対話内容の更新を意味するため、対話の継続性を重視するならば更新可能な話題情報の中からより局所的な話題の話題情報の更新を行う必要がある。従って話題情報反映部１０３は、新規話題情報で更新可能な話題情報を話題情報管理部１０１に記憶されている話題情報を現在の話題情報から順に遡って探索し、最初に検出される更新可能な話題情報を新規話題情報によって更新する話題情報とする。
【００３６】
話題情報反映部１０３の処理におけるステップＳ３０２以降の処理について説明する。新規話題情報で更新可能な話題情報を探索する初期段階として、更新可能性を確認する話題情報(更新確認対象)を現在の話題情報とする(ステップＳ３０２)。更新確認対象を取得できたかどうかを確認し(ステップＳ３０３)、取得できなければ(ステップＳ３０３Ｙｅｓ)新規話題情報の対話を割り込ませるために新規話題情報を話題情報管理部１０１の最後に迫加すると決定する(ステップＳ３０９)。更新確認対象を取得できた場合(ステップＳ３０３Ｎｏ)は、新規話題情報を用いて更新確認対象が更新可能かを確認するために、更新確認対象の話題と新規話題情報の話題が同じであるかどうかを確認し(ステップＳ３０４)、違う種類であれば(ステップＳ３０４Ｎｏ)更新確認対象を一つ遡った話題情報とする(ステップＳ３０８)。
【００３７】
更新確認対象の話題と新規話題情報の話題が同じ種類であれば(ステップＳ３０４Ｙｅｓ)、新規話題情報における対話進行状況に関する情報(例えば属性値)を用いて更新確認対象の対話進行状況を更新することが可能である。更新可能と判定された更新確認対象を更新対象と呼ぶ。
【００３８】
更新対象の話題を解決するための手続きとして局所的な話題を利用している場合は、更新処理によって局所的な話題が不要となる場合がある。局所的な話題の目的は更新対象の対話進行状況(或いはその一部)を更新することであるが、その対話進行状況を新規話題情報に基づき更新すると局所的な話題の目的が達成されたことになる。従って局所的な話題が更新の対象とする対話進行状況を更新すると、局所的な話題の対話は不要になる。
【００３９】
ステップＳ３０５では局所的な話題を更新の対象とする対話進行状況が更新されているか否かを判定する。更新されていれば(ステップＳ３０５Ｙｅｓ)局所的な話題の対話は不要となるため、更新対象の更新と共に更新対象を現在の話題とするように話題情報管理部１０１の話題情報を消去すると判定する(ステップＳ３０６)。更新されていなければ(ステップＳ３０５Ｎｏ)局所的な話題の対話を継続する必要があるため、更新対象の更新のみを行うと判定する(ステップＳ３０７)。なお、ステップＳ３０５における確認処理の詳細は後述する。
【００４０】
話題情報反映部１０３は、上述の判定結果に基づいて話題情報管理部１０１を更新する(ステップＳ２０５)。判定結果が『新規話題情報を話題情報管理部１０１の最後に追加(ステップＳ３０９を通過)』の場合は、新規話題情報を話題情報管理部１０１の最後に追加し、新規話題情報を現在の話題情報とする。判定結果が『更新対象を更新し、更新対象を現在の話題とする(ステップＳ３０６を通過)』の場合は、更新対象の更新処理を行うと共に、話題情報管理部１０１に記憶されている更新対象以後の話題情報を消去する。判定結果が『更新対象を更新する(ステップＳ３０７を通過)』の場合は、更新対象の更新処理のみを実行する。この時、新規話題情報がユーザ入力の解釈結果である場合は、対話進行部１０２にユーザ入力を受理したことを応答文などによってユーザＡに提示させる。そして対話進行部１０２は更新後の話題情報管理部１０１における現在の話題情報を対象にしてユーザＡとの対話を継続する。新規話題情報による更新対象の更新処理については後に詳述する。
【００４１】
次に話題情報反映部１０３における新規話題情報による更新対象の更新処理、並びにステップＳ３０５における確認処理について図５を参照して説明する。更新処理は『新規話題情報における対話進行状況にある有意な情報を用いて、更新対象の対話進行状況を更新する』処理である。例えば対話進行状況が状態遷移図形式のシナリオの一状態であるならば、新規話題情報にある有意な情報を取得した状態に遷移させることに相当し、ステップＳ３０５では現在の対話状態が取得対象を定めて情報を取得する状態であり、且つ新規話題情報に取得対象の有意な情報が存在する場合であれば、情報取得対象の情報を更新した(ステップＳ３０５Ｙｅｓ)と判定できる。
【００４２】
図５は図４に示す形式の話題情報「ルート設定」の更新処理を模式的に表している。このような話題情報の形式において、更新処理は『新規話題情報にある“φ"ではない属性値で更新対象の属性値を上書きする』処理となる。つまり、新規話題情報の属性値が“φ"であれば更新対象の属性値を残し(図５（１）)、新規話題情報の属性値が“φ"でなければ更新対象の属性値を上書きする(図５（２）（３）)という処理を実行する。このような処理に基づき、ステップＳ３０５においては、『新規話題情報の属性値が“φ"や更新対象の属性値と同じ場合は属性値の更新はなく、それ以外０は属性値の更新がある』と判定する。図５の例においては、更新対象において局所的な話題を利用して属性値を取得中の属性(対話進行中の属性)が「目的地」であった場合は属性値の更新がないので(ステップＳ３０５Ｎｏ)、「目的地」を取得するための局所的な話題の対話を継続する必要があると判定する。一方、対話進行中の属性が「経由地」、「計算条件」であれば属性値の更新があるので(ステップＳ３０５Ｙｅｓ)、これらの属性の属性値を取得するための局所的な話題の対話を継続する必要はないと判定する。
【００４３】
次に、具体例として、カーナビゲーションシステム(以下カーナビ)に本発明を適用した場合を例に、本実施の形態の動作について図２、図３、図６を参照してより詳細に説明する。
【００４４】
カーナビで対話を行うことが可能な話題は、指定された条件でルート計算を行う「ルート設定」と、指定された場所を目的地として登録する「目的地設定」と、場所を検索する場合に使用する、住所を都道府県名から順に指定することで位置を特定する「住所検索」である。このようなカーナビを用いて図６のような対話を行う場合の動作を詳細に説明する。
【００４５】
ユーザ入力ＵＳＲ１によって対話が開始される(ステップＳ２０１)。ＵＳＲ１を解釈すると「ルート設定(目的地:φ、経由地:φ、計算条件：φ)」という入力となる。対話進行部１０２は、このユーザ入力によって新規話題情報の導入が行われことを検出し(ステップＳ２０２Ｎｏ,ステップＳ２０３Ｙｅｓ)、話題情報反映部１０３に話題情報管理部１０１の更新を依頼する(ステップＳ２０４)。
【００４６】
話題情報反映部１０３はステップＳ２０４において図３のようにして新規話題情報「ルート設定(目的地:φ、経由地:φ、計算条件:φ)」を利用した話題情報管理部１０１の更新方法を判定する。新規話題情報はユーザ入力から通知されたものであるのでステップＳ３０１でＮｏと判定する。初期段階では現在の話題情報が存在しないのでステップＳ３０２で更新確認対象の取得に失敗するため(ステップＳ３０３Ｙｅｓ)、新規話題情報を話題情報管理部１０１の最後に追加するように判定する(ステップＳ３０９)。
【００４７】
話題情報反映部１０３はステップＳ２０５においてステップＳ２０４の判定結果に基づいて話題情報管理部１０１を更新する。即ち、ユーザ入力によって通知された新規話題情報を話題情報管理部１０１の最後に追加する。現在の話題情報は「ルート設定」となる。対話進行部１０２は「ルート設定」を対象としてユーザＡとの対話を継続する(ステップＳ２０１)。対話進行部１０２の対話進行処理(ステップＳ２０１)において「ルート設定」を解決するために属性「目的地」を取得すると決定されたとすると、対話進行部１０２は「ルート設定」の対話手順に基づき新たに話題「目的地設定」を利用すると決定する。この決定に伴い対話進行部１０２は新規話題情報「目的地設定(目的地:φ)」を導入し、話題情報反映部１０３に話題情報管理部１０１の更新を依頼する(ステップＳ２０２Ｎｏ,ステップＳ２０３Ｙｅｓ,ステップＳ２０４)。
【００４８】
話題情報反映部１０３はステップＳ２０４において新規話題情報「目的地設定(目的地:φ)」を利用した話題情報管理部１０１の更新方法を判定する。新規話題情報は話題「ルート設定」を解決するため(属性「目的地」を取得するため)に対話進行部１０２の手続きとして利用されるものであるので、ステップＳ３０１でＹｅｓと判定される。新規話題情報を話題情報管理部１０１の最後に追加するように判定する(ステップＳ３０９)。
【００４９】
話題情報反映部１０３はステップＳ２０５において話題情報管理部１０１を更新する。新規話題情報「目的地」を話題情報管理部１０１の最後に追加し、現在の話題情報を「目的地設定」とする。対話進行部１０２は「目的地設定」を対象としてユーザＡとの対話を継続する(ステップＳ２０１)。
【００５０】
対話進行部１０２の対話進行処理(ステップＳ２０１)において「目的地設定」を解決するために属性「目的地」を取得すると決定されたとすると、対話進行部１０２は「目的地設定」の対話手順に基づき、「目的地」の決定方法をユーザＡに問い合わせると決定する。この決定に従いユーザＡに対して応答ＳＹＳ１を出力する。
【００５１】
続いてＵＳＲ２が入力された。ＵＳＲ２を解釈すると“住所検索(場所検索方法)"という入力となる。対話進行部１０２においてこの入力は応答ＳＹＳ１に対する回答であり、「目的地」決定方法として話題「住所検索」が選択されたと判断する。引き続き対話進行処理(ステップＳ２０１)を継続し、対話進行部１０２は話題「目的地設定」の対話手順に基づきユーザＡによって選択された話題「住所検索」を実行すると決定する。この決定に伴い対話進行部１０２は新規話題情報「住所検索(都道府県名:φ、市区町村名:φ)」を導入し、話題情報反映部１０３に話題情報管理部１０１の更新を依頼する(ステップＳ２０２Ｎｏ,ステップＳ２０３Ｙｅｓ,ステップＳ２０４)。
【００５２】
話題情報反映部１０３はステップＳ２０４において新規話題情報「住所検索(都道府県名:φ、市区町村名:φ)」を利用した話題情報管理部１０１の更新方法を判定する。新規話題情報は話題「目的地設定」を解決するために対話進行部１０２の手続きとして利用されるものであるので、新規話題情報を話題情報管理部１０１の最後に追加するように判定する(ステップＳ３０１Ｙｅｓ,ステップＳ３０９)。そして話題情報反映部１０３はステップＳ２０５において話題情報管理部１０１の最後に「住所検索」を追加し、現在の話題情報を「住所検索」に更新する。このときの話題情報管理部１０１の状態は図７のようになる。
【００５３】
対話進行部１０２は「住所検索」を対象とした対話進行処理を行う(ステップＳ２０１)。対話進行部１０２は「住所検索」の対話手順に基づき、属性「都道府県名」を取得すると決定する。この決定に従いユーザＡに対して応答ＳＹＳ２を出力する。
【００５４】
続いてＵＳＲ３が入力された。ＵＳＲ３を解釈すると「ルート設定(目的地:φ、経由地：φ、計算条件:高速優先)」という入力となる。対話進行部１０２は、このユーザ入力によって新規話題情報の導入が行われことを検出し(ステップＳ２０２Ｎｏ,ステップＳ２０３Ｙｅｓ)、話題情報反映部１０３に話題情報管理部１０１の更新を依頼する(ステップＳ２０４)。
【００５５】
話題情報反映部１０３はステップＳ２０４において新規話題情報「ルート設定(目的地:φ、経由地:φ、計算条件:高速優先)」を利用した話題情報管理部１０１の更新方法を判定する。新規話題情報はユーザ入力から通知されたものであるのでステップＳ３０１でＮｏと判定する。話題情報反映部１０３は新規話題情報により更新可能な話題情報を話題情報管理部１０１(図７)から探索する。話題情報管理部１０１に記憶されている最後の話題情報(７０３)から順に更新可能性を確認するが、話題情報７０３,７０２は「ルート設定」ではないので種類が一致しないと判定する(ステップＳ３０２,ステップＳ３０３Ｎｏ,ステップＳ３０４Ｎｏ,ステップＳ３０８,ステップＳ３０３Ｎｏ,ステップＳ３０４Ｎｏ)。
【００５６】
次に更新確認対象を話題情報７０１に設定する(ステップＳ３０８)。話題情報７０１は「ルート設定」であるため、新規話題情報による更新が可能であると判定する(ステップＳ３０３Ｎｏ、ステップＳ３０４Ｙｅｓ)。話題情報７０１では属性「目的地」を取得するための対話中である。新規話題情報は「ルート設定(目的地:φ、経由地:φ、計算条件:高速優先)」であり、この属性「目的地」には属性値が指定されていないので、話題情報７０１の更新処理によって取得中の属性である「目的地」を更新しないと判定できる(ステップＳ３０５Ｎｏ)。従って話題情報反映部１０３は更新対象である話題情報７０１を新規話題情報により更新すると更新内容を決定する。
【００５７】
話題情報反映部１０３はステップＳ２０５において新規話題情報により話題情報管理部１０１を更新する。話題情報７０１を新規話題情報で更新し、更新結果は「ルート設定(目的地:φ、経由地:φ、計算条件：高速優先)」となる。また、現在の話題情報は７０３のまま変更が無く、新規話題情報がユーザ入力から入力されたものであるため、対話進行部１０２にユーザ入力の受理内容をユーザＡに通知させる。
【００５８】
対話進行部１０２は話題情報７０３を対象としてユーザＡとの対話を継続する(ステップＳ２０１)。まず、話題情報反映部１０３からＵＳＲ３の受理内容をユーザＡに通知するように指定されているため、応答ＳＹＳ３を出力する。次に話題情報７０３はユーザ入力(ＵＳＲ３)によって対話進行状況が変更されていないので、再度属性「都道府県名」を取得すると決定し、応答ＳＹＳ４を出カする。
【００５９】
以上のように、本実施の形態では現在対話進行中の属性を更新するか否かに基づいて局所的な話題情報を消去するか否かを決定することが可能である。従って、入力ＵＳＲ３によって『目的地を「住所検索」で決定中である』という対話状態を消去せずに、「高速優先」であることを話題情報７０１に反映させることが可能となる。一方、ＵＳＲ３による話題情報を現在の話題情報として話題情報管理部１０１の最後に追加する方法も考えられるが、このような場合は再度「目的地」属性の決定からユーザＡとの対話を再開せねばならず、結果的には『目的地を「住所検索」で決定中である』という対話状態を消去(無視)することと同じ動作となってしまう。
【００６０】
ここでユーザ入力ＵＳＲ３のところで「○○に目的地設定」という入力が成された場合について述べる。この入力は「目的地設定(目的地:○○)」と解釈され、対話進行部１０２は新規話題情報の導入であると判定する(ステップＳ２０２Ｎｏ、ステップＳ２０３Ｙｅｓ)。話題情報反映部１０３は新規話題情報「目的地設定」を利用した話題情報管理部１０１の更新方法を判定する(ステップＳ２０４)。図７の話題情報においては、この新規話題情報「目的地設定」は話題情報７０２と同種なので話題情報７０２を更新することが可能であると判定できる(ステップＳ３０４Ｙｅｓ)。話題情報７０２は属性「目的地」を決定中であり、新規話題情報「目的地設定(目的地:○○)」では属性「目的地」に“○○"が格納されているので、現在情報取得中の属性の属性値を更新すると判定される(ステップＳ３０５Ｙｅｓ)。従って、ステップＳ２０４で話題情報反映部１０３が決定する話題情報管理部１０１の更新内容は「話題情報７０２を更新すると共に、話題情報７０２を現在の話題情報とする」となる。
【００６１】
話題情報反映部１０３は上記決定内容に基づいて話題情報管理部１０１を更新する(ステップＳ２０５)。即ち、話題情報７０２を新規話題情報に基づいて更新し「目的地設定(日的地:○○)」とすると共に、話題情報７０２を現在の話題情報とするために話題情報７０３を消去する。対話進行部１０２は更新された話題情報７０２を対象としてユーザＡとの対話を継続する(ステップＳ２０１)。このような場合に対話進行部１０２は、「○○に目的地を設定します。よろしいですか?」といったユーザＡに確認を求めるような応答を提示するなどの反応を返す。
【００６２】
以上のように、本実施の形態では現在対話進行中の属性を更新するような新規話題情報が通知された場合は、対話実行中の話題情報を消去してユーザＡとの対話を進行させることが可能である。上述の例ではユーザＡは「目的地として“○○"を指定」しているため、それまでの対話状態であった『目的地を「住所検索」で決定中である』は不要となる。これを残しているとユーザＡが「○○を目的地に指定」していても、対話装置は住所検索で目的地を設定する対話を再開してしまい、ユーザＡはこの対話をキャンセルせねばならない。
【００６３】
従って、このように第１の実施の形態に係わる対話装置によれば、新規導入される話題情報により対話状態の更新を行い、その際に局所的な話題が更新する対象となっている対話進行状況を更新するか否かに基づき現在対話中の話題情報が今後の対話に必要であるかどうかを判定し、現在対話中の話題情報が今後の対話に必要であればその話題情報を残すことで、新規話題情報により更新すべき情報は更新すると共に、ユーザＡと対話を継続すべき話題情報の対話を継続することが可能となる。
【００６４】
なお、上述の説明では話題情報反映部１０３におけるステップＳ３０４おいて新規話題情報による更新が可能な話題情報を新規話題情報と同種の話題情報であると記述しているが、本実施の形態はそのような判定方法に限定されるものではない。例えば、類似話題を定義しておき、新規話題情報の話題と類似した話題の話題情報であれば更新可能としても良い。また、話題情報間が類似するか否かを判定するルールを用いて更新が可能であるかを判定しても良い。或いは更新確認対象が新規話題情報と共通の属性を持った話題情報であれば更新可能であると判定しても良い。このような場合は複数の話題情報が更新可能となることもあるが、更新可能な話題情報の中で最後に位置する話題情報を対象としてステップＳ３０５以降の処理を実行する。
【００６５】
また、上述の説明では図３のステップＳ３０１において、ある話題を解決するための手続きとして新規話題情報を利用すると対話進行部１０２が決定した場合は、無条件に新規話題情報を話題情報管理部１０１の最後に追加するように記述しているが、このような場合であってもステップＳ３０２以降の更新可能性を確認する処理を通しても良い。逆に話題情報反映部１０３を通さずに対話進行部１０２が新規話題情報を話題情報管理部１０１の最後に追加しても良い。
【００６６】
また、上述の説明では話題情報の更新方法を図５のように更新対象の話題情報の属性値を新規話題情報内の有効な属性値で上書きするように記述しているが、例えばユーザ入力の解釈の段階で図５のような更新処理が行われるならば、話題情報そのものを上書きするようにしても良い。或いは新規話題情報導入の場面に基づいて更新処理と話題情報そのものの上書き処理を切り替えたり、新規話題情報に更新処理が必要か否かのフラグを与えてそれに基づいて処理内容を切り替えたりしても良い。
【００６７】
また、上述の説明では話題情報反映部１０３の更新処理において、ユーザ入力により導入された新規話題情報であれば、ユーザ入力の受理内容を提示すると記述しているが、システムから導入された新規話題情報であっても、その内容を応答として提示するようにしても良い。このような応答を提示すればシステムの対話実行状態をユーザＡが把握することが可能となる。
【００６８】
また、上述の説明では話題情報反映部１０３は、ユーザ入力の受理内容を提示すると判定した時に対話進行部１０２に提示するように依頼しているが、話題情報反映部１０３がユーザＡに直接受理内容を提示しても良い。
【００６９】
また、上述の説明ではユーザ入力の受理内容を提示するための応答(図６に示すＳＹＳ３)をユーザＡとの対話再開前に行うように記述しているが、ユーザＡとの対話実行中に挿入したり、ユーザ入力待ちとなった時に挿入したりしても良い。
【００７０】
以上のように、新規話題情報を対話状態に導入し、対話状態を更新する際に局所的な話題が更新する対象となっている対話進行状況を更新するか否かに基づき現在の対話内容を継続する必要があるかどうかを判定し、その判定結果に応じて現状の対話進行状態の対話を継続するものであれば本発明の主旨の範囲内である。
【００７１】
（第２の実施の形態）
第１の実施の形態は、ユーザＡとの対話によって現れた各話題情報における対話進行状況に基づいて、新規話題情報導入時に話題情報の更新判定と現状の対話を継続する必要があるかどうかを判定するものである。これに対し、第２の実施の形態では各話題における利用・被利用に関する依存関係に基づいて詳細に局所的な話題の話題情報であるかどうかを判定し、対話状態の更新に利用する対話装置について説明する。
【００７２】
本第２の実施の形態に係る対話装置の構成図を図８に示す。本実施の形態に係る対話装置は、図８に示すように、話題情報管理部１０１、対話進行部１０２、話題情報反映部８０３、話題依存関係データベース８０４を備えている。ここで、話題情報管理部１０１、対話進行部１０２に関しては第１の実施の形態で説明したものと同様であるので、ここでの説明は省略する。
【００７３】
話題情報反映部８０３は、対話進行部１０２とユーザＡとの対話中に現れた新規話題情報を話題情報管理部１０１に反映させ、話題情報管理部１０１を更新する。この更新処理の際に話題依存関係データベース８０４を参照して、局所的な話題の話題情報であるかどうかを詳細に判定し、その判定結果に基づいて話題情報管理蔀１０１の更新処理を実行する。話題情報反映部８０３の動作の詳細は後に説明する。
【００７４】
話題依存関係データベース８０４は、話題間の利用関係を表すデータベースである。例えば「ルート設定」を解決するために「目的地設定」、「経由地設定」を実行する必要があれば「ルート設定」は「目的地設定」、「経由地設定」を利用するといえる。利用・被利用関係においては被利用側にある話題は、利用側の話題を解決するために利用される局所的な話題である。話題依存関係データベース８０４は、このような話題同士の利用関係を管理する。
【００７５】
図１０は話題依存関係データベース８０４の例である。図１０では話題間の利用関係をグラフ形式で表している。即ち、グラフの各ノードが話題に相当し、各ノード間のリンクが話題の利用・被利用関係を表す。各リンクは『リンク元の話題の解決のためにリンク先の話題を利用する』ことを表している。例えばリンク１００１は『ルート設定は経由地設定を利用している』ということを表現している。話題間の利用関係が成立する場合に、利用する側を親話題、利用される側を子話題と呼ぶ。また子話題へのリンクを再帰的に辿って到達可能である間接的な利用関係を持つ話題を子孫話題と呼ぶ。子話題・子孫話題は親話題と比較して局所的な話題となる。
【００７６】
続いて本実施の形態における対話装置の動作説明を行う。本実施の形態においても対話装置の動作は図２となる。但し、本実施の形態では話題情報反映部８０３の詳細処理(図２におけるステップＳ２０４,ステップＳ２０５)が変更される。従って、本実施の形態の動作説明は変更部分である話題情報反映部８０３の詳細動作説明のみを行う。その他の動作については第１の実施の形態と同様であるので省略する。
【００７７】
図９は本実施の形態における話題情報反映部８０３の新規話題情報による更新内容の判定処理(ステップＳ２０４に相当)を表すフローチャートである。以下図面に沿って更新内容の判定処理について説明する。
【００７８】
話題情報反映部８０３は対話進行部１０２において新規話題情報の導入が検出されたとき(ステップＳ２０２Ｎｏ、ステップＳ２０３Ｙｅｓ)に話題情報管理部１０１の更新を依頼される。話題情報反映部８０３はまず新規話題情報による話題情報管理部１０１の更新内容を判定する(ステップＳ２０４)。まず、話題情報反映部８０３は、対話進行部１０２が現在の話題を解決するための手続きとして新規話題情報を導入したかどうかを判定する(ステップＳ９０１)。これは第１の実施の形態における話題情報反映部１０３のステップＳ３０１と同様である。別の話題を解決するための手続きであれば、その話題情報を対象とした対話を実行するために話題情報管理部１０１の最後に新規話題情報を迫加する(ステップＳ９１３)。従って、話題情報管理部１０１は属性値を決定するといったより局所的な話題の話題情報をより後ろの方に格納することになる。
【００７９】
新規話題情報が別の話題を解決するための手続きでなければ、新規話題情報で更新可能な話題情報が話題情報管理部１０１にあるかどうかを確認する(ステップＳ９０２)。ステップＳ９０２の確認処理には第１の実施の形態における更新内容の判定処理(図３)を利用する。ステップＳ９０２の判定結果が「新規話題情報を話題情報管理部１０１の最後に追加する」でなければ(ステップＳ９０３Ｎｏ)、新規話題情報で内容を更新することが可能な話題情報が存在するので、その判定結果を採用する(ステップＳ９１０)。ステップＳ９０２の判定結果が「新規話題情報を話題情報管理部１０１の最後に追加する」の場合は(ステップＳ９０３Ｙｅｓ)、新規話題情報を挿入する位置を決定するためにステップＳ９０４に進む。
【００８０】
前述のように話題情報管理部１０１にはより局所的な話題の話題情報をより後ろの方に格納する。新規話題情報が局所的な話題の話題情報でなければ、新規話題情報は話題情報管理部１０１のより前の方に挿入した方が良い。即ち、現在対話中の局所的な話題を先に解決し、その結果を利用して新規話題情報の対話を開始した方が望ましい。本実施の形態における話題情報反映部８０３は、話題依存関係データベース８０４に基づき話題情報管理部１０１内の話題情報と新規話題情報との利用関係を参照し、新規話題情報の挿入位置を決定する。
【００８１】
話題情報反映部８０３は、挿入位置を決定するために「挿入確認対象」と「挿入対象」という変数を利用する。両方とも話題情報管理部１０１に記憶されている話題情報を指し示すものであるが、挿入確認対象は新規話題情報との利用関係を確認する対象の話題情報であり、挿入対象は新規話題情報をその前に挿入することが可能な話題情報を示す。挿入確認対象の初期設定は話題情報管理部１０１の最後の話題情報であり、挿入対象の初期設定は無効とする(ステップＳ９０４)。
【００８２】
話題情報管理部１０１が空の場合は挿入確認対象の取得に失敗するので(ステップＳ９０５Ｎｏ)、話題情報反映部８０３は、新規話題情報を話題情報管理部１０１の最初に追加すると判定する(ステップＳ９１２)。挿入確認対象の話題情報があれば(ステップＳ９０５Ｙｅｓ)、話題情報反映部８０３は、挿入確認対象が挿入対象となりうるかどうかを順次確認し、挿入位置の決定を行う。
【００８３】
挿入確認対象が挿入対象となり得るかを確認する第一段階として、挿入確認対象と話題情報管理部１０１において挿入確認対象の前に記憶されている話題情報との対話手続き上における関係の有無を確認する(ステップＳ９０６)。挿入確認対象が前の話題情報の話題を解決することを目的として導入された話題情報であれば、挿入確認対象と前の話題情報には対話手続き上の関係があると言える。従って挿入確認対象の前の話題情報と対話手続き上の関係がある場合は、新規話題情報をその間に挿入することは適切ではない。本実施の形態では、挿入確認対象が対話進行部１０２における対話手順によって追加された話題情報であれば対話手続き上の関係があると判定し(ステップＳ９０６Ｙｅｓ)、そうでなければ対話手続き上の関係がないと判定する(ステップＳ９０６Ｎｏ)。対話手続き上の関係がある場合(ステップＳ９０６Ｙｅｓ)は、挿入位置として不適であるので挿入確認対象を一つ前に設定し(ステップＳ９０８)、挿入位置決定処理を継続する。手続き上の関係がなければ(ステップＳ９０６Ｎｏ)ステップＳ９０７に進む。
【００８４】
話題情報反映部８０３は、挿入確認対象が新規話題情報の子孫話題かどうかを確認する(ステップＳ９０７)。挿入確認対象が新規話題情報の子孫話題であれば(ステップＳ９０７Ｙｅｓ)、挿入確認対象の話題を先に解決すべきである。従って話題情報反映部８０３は新規話題情報を挿入確認対象の前に挿入可能であると判定し、挿入対象を挿入確認対象とする(ステップＳ９０９)。この場合は挿入対象の更に前の話題情報も新規話題情報の子孫話題である可能性があるので、話題情報反映部８０３は、挿入確認対象を一つ前の話題情報として(ステップＳ９０８)、新たな挿入確認対象が新規話題情報の子孫話題であるかどうかを確認する(ステップＳ９０５〜)。この時、新たな挿入確認対象を取得できなかった場合は(ステップＳ９０５Ｎｏ)、話題情報管理部１０１の最初の話題情報が新規話題情報の子孫話題であるので、話題情報反映部８０３は新規話題情報を話題情報管理部１０１の先頭に挿入すると判定する(ステップＳ９１２)。
【００８５】
一方、挿入確認対象が新規話題情報の子孫話題でなければ(ステップＳ９０７Ｎｏ)、新規話題情報の対話を先に実行すべきである。従って話題情報反映部８０３は、既に挿入可能であると判定されている挿入対象の前に新規話題情報を挿入すると判定する(ステップＳ９１１)。但し、ステップＳ９１１では挿入対象が無効ならば新規話題情報を最後に追加すると判定する。
【００８６】
続いて話題情報反映部８０３における話題情報管理部１０１の更新処理(ステップＳ２０５)について説明する。話題情報反映部８０３のステップＳ２０４では、第１の実施の形態によるステップＳ２０４の判定内容に加えて、特定位置に話題情報を挿入する(ステップＳ９１１、ステップＳ９１２を通過)という判定内容が追加される。この判定内容が出力された場合は、話題情報反映部８０３は新規話題情報を指定された位置に挿入する処理を行う。新規話題情報がユーザ入力によって導出されたものであり、挿入位置が話題情報管理部１０１の最後でなければ、対話進行部１０２に新規話題情報を受理したことのユーザＡヘの提示を実行させる。その他の更新処理は第１の実施の形態での更新処理と同様である。
【００８７】
次に、具体例として、カーナビゲーションシステム(以下カーナビ)に本発明を適用した場合を例に、本実施の形態の動作について図２、図３、図９、図１０、図１１を参照してより詳細に説明する。
【００８８】
カーナビで対話を行うことが可能な話題は、指定された条件でルート計算を行う「ルート設定」(属性＝「目的地」、「経由地」、「計算条件(必須属性ではない)」)と、指定された場所を目的地として登録する「目的地設定」(属性＝「目的地」)と、指定された場所を経由地として登録する「経由地設定」(属性＝「経由地」)と、場所を検索する場合に使用する、住所を都道府県名から順に指定することで位置を特定する「住所検索」(属性＝「都道府県名」、「市区町村名」)である。これらの話題に関する依存関係情報が話題依存関係データベース８０４に図１０のような内容で格納されている。このようなカーナビを用いて図１１のような対話を行う場合の動作を詳細に説明する。
【００８９】
ユーザ入力ＵＳＲ５によって対話が開始される(ステップＳ２０１)。ＵＳＲ１を解釈すると「目的地設定(目的地:φ)」という入力となる。対話進行部１０２は、このユーザ入力によって新規話題情報の導入が行われことを検出し(ステップＳ２０２Ｎｏ、ステップＳ２０３Ｙｅｓ)、話題情報反映部８０３に話題情報管理部１０１の更新を依頼する(ステップＳ２０４)。
【００９０】
話題情報反映部８０３はステップＳ２０４において図９のようにして新規話題情報「目的地設定(日的地:φ)」を利用した話題情報管理部１０１の更新方法を判定する。新規話題情報はユーザ入力から通知されたものであるのでステップＳ９０１でＮｏと判定する。ステップＳ９０２では図３に基づいて更新方法を判定するが、初期段階では話題情報管理部１０１が空であるので新規話題情報を反映させる話題情報も無く、新規話題情報を最後に追加すると判定する(ステップＳ９０３Ｙｅｓ)。ステップＳ９０４以降においてもやはり挿入確認対象の取得に失敗するため(ステップＳ９０５Ｎｏ)、新規話題情報を話題情報管理部１０１の最初に挿入する(ステップＳ９１２)と判定する。
【００９１】
話題情報反映部８０３はステップＳ２０５においてステップＳ２０４の判定結果に基づいて話題情報管理部１０１を更新する。即ち、ユーザ入力によって通知された新規話題情報を話題情報管理部１０１の最初に挿入する。但し、初期段階では話題情報管理部１０１が空なので、挿入した新規話題情報「目的地設定」が現在の話題情報となる。対話進行部１０２は「目的地設定」を対象としてユーザＡとの対話を継続する(ステップＳ２０１)。
【００９２】
対話進行部１０２の対話進行処理(ステップＳ２０１)において「目的地設定」を解決するために属性「目的地」を取得すると決定されたとすると、対話進行部１０２は「目的地設定」の対話手順に基づき、「目的地」の決定方法をユーザＡに問い合わせると決定する。この決定に従いユーザＡに対して応答ＳＹＳ５を出カする。
【００９３】
続いてＵＳＲ６が入力され、ＵＳＲ６を解釈すると“住所検索(場所検索方法)"という入力となる。対話進行部１０２においてこの入力は応答ＳＹＳ５に対する回答であり、「目的地」決定方法として話題「住所検索」が選択されたと判断する。引き続き対話進行処理(ステップＳ２０１)を継続し、対話進行部１０２は話題「目的地設定」の対話手順に基づきユーザＡによって選択された話題「住所検索」を実行すると決定する。この決定に伴い対話進行部１０２は新規話題情報「住所検索(都道府県名：φ、市区町村名:φ)」を導入し、話題情報反映部８０３に話題情報管理部１０１の更新を依頼する(ステップＳ２０２Ｎｏ、ステップＳ２０３Ｙｅｓ、ステップＳ２０４)。
【００９４】
話題情報反映部８０３はステップＳ２０４において新規話題情報「住所検索(都道府県名:φ、市区町村名:φ)」を利用した話題情報管理部１０１の更新方法を判定する。新規話題情報は話題「目的地設定」を解決するために対話進行部１０２の手続きとして利用されるものであるので、新規話題情報を話題情報管理部１０１の最後に追加するように判定する(ステップＳ９０１Ｙｅｓ,ステップＳ９１３)。そして話題情報反映部８０３はステップＳ２０５において話題情報管理部１０１の最後に「住所検索」を追加し、現在の話題情報を「住所検索」に更新する。
【００９５】
対話進行部１０２は「住所検索」を対象とした対話進行処理を行う(ステップＳ２０１)。対話進行部１０２は「住所検索」の対話手順に基づき、属性「都道府県名」を取得すると決定する。この決定に従いユーザＡに対して応答ＳＹＳ６を出力する。このときの話題情報管理部１０１の状態は図１２のようになる。
【００９６】
続いてＵＳＲ７が入力され、ＵＳＲ７を解釈すると「経由地設定(経由地:○○タワー)」という入力になる。対話進行部１０２は、このユーザ入力によって新規話題情報の導入が行われことを検出し(ステップＳ２０２Ｎｏ,ステップＳ２０３Ｙｅｓ)、話題情報反映部８０３に話題情報管理部１０１の更新を依頼する(ステップＳ２０４)。
【００９７】
話題情報反映部８０３はステップＳ２０４において新規話題情報「経由地設定(経由地:○○タワー)」を利用した話題情報管理部１０１の更新方法を判定する。新規話題情報はユーザ入力から通知されたものであるのでステップＳ９０１でＮｏと判定する。ステップＳ９０２では図３に基づいて更新方法を判定するが、話題情報管理部１０１には図１２のように「経由地設定」が存在しないため、新規話題情報「経由地設定」を反映できる話題が存在しない。従って、ステップＳ９０２の判定結果は話題情報管理部１０１の最後に追加となる(ステップＳ９０３Ｙｅｓ)。
【００９８】
話題情報反映部８０３はステップＳ９０４以降で新規話題情報の挿入位置を決定する。挿入確認対象の初期段階として話題情報「住所検索」(１２０２)を選択する(ステップＳ９０４,ステップＳ９０５Ｙｅｓ)。挿入確認対象１２０２は対話進行部１０２において「目的地設定」(１２０１)の「目的地」属性を取得するために利用されている話題情報であるので、話題情報反映部８０３は、挿入確認対象１２０２には１２０１と対話手続き上の関係があると判定し(ステップＳ９０６Ｙｅｓ)、挿入確認対象を一つ前の「目的地設定」(１２０１)に設定する(ステップＳ９０８,ステップＳ９０５Ｙｅｓ)。次の挿入確認対象１２０１は話題情報管理部１０１の先頭にあるので、話題情報反映部８０３は、その前の話題情報と対話手続き上の関係はないと判定する(ステップＳ９０６Ｎｏ)。話題依存関係データベース８０４を参照すると、挿入確認対象「目的地設定」は新規話題情報「経由地設定」の子孫話題ではないことがわかる(ステップＳ９０７Ｎｏ)ので、話題情報反映部８０３はステップＳ９１１において挿入対象が初期段階の無効状態であることに基づき、話題情報管理部１０１の最後に新規話題情報を迫加すると判定する(ステップＳ９１１)。
【００９９】
話題情報反映部８０３はステップＳ２０５においてステップＳ２０４の判定結果に基づいて話題情報管理部１０１を更新する。即ち、ユーザ入力によって通知された新規話題情報を話題情報管理部１０１の最後に追加する。対話進行部１０２は「経由地設定」を対象としてユーザＡとの対話を継続する(ステップＳ２０１)。
【０１００】
対話進行部１０２は追加された話題情報「経由地設定(経由地:○○タワー)」を対象としてユーザＡとの対話を実行するが、既に経由地を取得しているので話題「経由地」を解決したと判定する。対話進行部１０２は、解決結果の話題情報に基づきカーナビに「○○タワーを経由地に設定」するように依頼し、その結果に基づいてユーザＡに応答ＳＹＳ７を提示する。更に、解決した話題の話題情報「経由地設定」を話題情報管理部１０１から取り除く。このときの話題情報管理部１０１は図１２のようになる。
【０１０１】
対話進行部１０２は解決した「経由地設定」の対話結果を話題情報管理部１０１に反映させる。この場合の反映方法として話題依存関係データベース８０４の親話題の話題情報を作成すると対話進行部１０２が決定したとする。「経由地設定」の親話題は「ルート設定」であるので、対話進行部１０２は話題「ルート設定」の「経由地」に経由地に設定された場所“○○タワー"を格納した話題情報「ルート設定(目的地:φ、経由地:○○タワー、計算条件:φ)」を対話結果として話題情報管理部１０１に反映させると決定する。この場合も対話進行部１０２が新規話題情報「ルート設定」を導入すると判定し(ステップＳ２０２Ｎｏ、ステップＳ２０３Ｙｅｓ)、話題情報反映部８０３に話題情報管理部１０１の更新を依頼する(ステップＳ２０４)。
【０１０２】
話題情報反映部８０３はステップＳ２０４において新規話題情報「ルート設定(目的地:φ、経由地:○○タワー、計算条件:φ)」を利用した話題情報管理部１０１の更新方法を判定する。新規話題情報は対話結果から導出されたものであるのでステップＳ９０１でＮｏと判定する。ステップＳ９０２では図３に基づいて更新方法を判定するが、話題情報管理部１０１には図１２のように「ルート設定」が存在しないため、新規話題情報「ルート設定」を反映できる話題が存在しない。従って、ステップＳ９０２の判定結果は話題情報管理部１０１の最後に追加となる(ステップＳ９０３Ｙｅｓ)。
【０１０３】
話題情報反映部８０３はステップＳ９０４以降で新規話題情報の挿入位置を決定する。挿入確認対象の初期段階として話題情報「住所検索」(１２０２)を選択する(ステップＳ９０４、ステップＳ９０５Ｙｅｓ)。挿入確認対象１２０２は対話進行部１０２において「目的地設定」(１２０１)の「目的地」属性を取得するために利用されている話題情報であるので、話題情報反映部８０３は、挿入確認対象１２０２には１２０１と対話手続き上の関係があると判定し(ステップＳ９０６Ｙｅｓ)、挿入確認対象を一つ前の「目的地設定」(１２０１)に設定する(ステップＳ９０８,ステップＳ９０５Ｙｅｓ)。次の挿入確認対象１２０１は話題情報管理部１０１の先頭にあるので、話題情報反映部８０３は、その前の話題情報と対話手続き上の関係はないと判定する(ステップＳ９０６Ｎｏ)。話題依存関係データベース８０４を参照すると、挿入確認対象「目的地設定」は新規話題情報「ルート設定」の子孫話題であることがわかる(ステップＳ９０７Ｙｅｓ)ので、挿入対象として話題情報１２０１を設定する(ステップＳ９０９)。更に挿入確認対象を一つ前に設定する(ステップＳ９０８)が、挿入確認対象の取得に失敗する(ステップＳ９０５Ｎｏ)ために、話題情報反映部８０３は、新規話題情報を話題情報管理部１０１の先頭に挿入すると判定する(ステップＳ９１２)。
【０１０４】
話題情報反映部８０３はステップＳ２０５においてステップＳ２０４の判定結果に基づいて話題情報管理部１０１を更新する。即ち、対話結果から導出された新規話題情報を話題情報管理部１０１の最初に挿入する。この時の話題情報管理部１０１は図１３のようになっている。対話進行部１０２は「住所検索」(１２０２)を対象としてユーザＡとの対話を継続する(ステップＳ２０１)。
【０１０５】
対話進行部１０２は「住所検索」を対象とした対話進行処理を行う(ステップＳ２０１)。対話進行部１０２は「住所検索」の対話手順に基づき、属性「都道府県名」を取得すると決定する。この決定に従いユーザＡに対して応答ＳＹＳ８を出力する。
【０１０６】
続いてＵＳＲ９が入力された。ＵＳＲ９を解釈すると「住所検索(都道府県名：□□県、市区町村名:△△市)」という入力となる。対話進行部１０２は、このユーザ入力によって新規話題情報の導入が行われことを検出し(ステップＳ２０２Ｎｏ、ステップＳ２０３Ｙｅｓ)、話題情報反映部８０３に話題情報管理部１０１の更新を依頼する(ステップＳ２０４)。
【０１０７】
話題情報反映部８０３はステップＳ２０４において新規話題情報「住所検索(都道府県名:□□県、市区町村名:△△市)」を利用した話題情報管理部１０１の更新方法を判定する。新規話題情報はユーザ入力から通知されたものであるのでステップＳ９０１でＮｏと判定する。ステップＳ９０２では図３に基づいて更新方法を判定する。このときの話題情報管理部１０１は図１３のようになっており、現在の話題情報が「住所検索」(１２０２)であるため、新規話題情報を１２０２に反映でき、全属性を更新すると判定できる。従って、ステップＳ９０２の判定結果は「話題情報１２０２を更新対象として新規話題情報を反映させ、１２０２を現在の話題情報と設定する」となる(ステップＳ９０３Ｎｏ)ため、話題情報反映部８０３はこの判定結果を採用する(ステップＳ９１０)。
【０１０８】
話題情報反映部８０３はステップＳ２０５においてステップＳ２０４の判定結果に基づいて話題情報管理部１０１を更新する。即ち、話題情報１２０２を新規話題情報「住所検索(都道府県名:□□県、市区町村名:△△市)」で更新する。話題情報１２０２の各属性を新規話題情報の属性で上書きし、話題情報１２０２は「住所検索(都道府県名：□□県、市区町村名:△△市)」に更新される。対話進行部１０２は更新後の話題情報１２０２を対象としてユーザＡとの対話を継続する(ステップＳ２０１)。
【０１０９】
対話進行部１０２は更新された話題情報「住所検索(都道府県名：□□県、市区町村名:△△市)」を対象としてユーザＡとの対話を実行するが、既に全属性を取得しているので話題「住所検索」を解決したと判定する。対話進行部１０２は、解決結果の話題情報に基づきカーナビに「□□県△△市の場所情報を取得」するように依頼する。更に、解決した話題の話題情報「住所検索」(１２０２)を話題情報管理部１０１から取り除く。この時の話題情報管理部１０１は図１４のようになる。
【０１１０】
対話進行部１０２は解決した「住所検索」(１２０２)の対話結果を話題情報管理部１０１に反映させる。話題情報１２０２は話題情報「目的地設定」(１２０１)の「目的地」属性を取得するために利用されていた話題情報であるので、対話進行部１０２は対話結果の場所情報“□□県△△市"を話題情報１２０１の「目的地」属性に代入する。代入後の「目的地設定」(１２０１)を対象にして更にユーザＡとの対話を継続する(ステップＳ２０１)。
【０１１１】
対話進行部１０２は更新された話題情報「目的地設定(日的地：□□県△△市)」を対象としてユーザＡとの対話を継続するが、既に全属性を取得しているので話題「目的地設定」を解決したと判定する。対話進行部１０２は、解決結果の話題情報に基づきカーナビに「“□□県△△市"に目的地設定」するように依頼し、その結果に基づいてユーザＡに応答ＳＹＳ９を提示する。更に、解決した話題の話題情報「目的地設定」(１２０１)を話題情報管理部１０１から取り除く。この時の話題情報管理部１０１には話題情報「ルート設定」(１３０３)のみが残っている。
【０１１２】
対話進行部１０２は解決した「目的地設定」の対話結果を話題情報管理部１０１に反映させる。この場合の反映方法として話題依存関係データベース８０４の親話題の話題情報を作成すると対話進行部１０２が決定したとする。「目的地設定」の親話題は「ルート設定」であるので、対話進行部１０２は話題「ルート設定」の「日的地」に目的地に設定された場所“□□県△△市"を格納した話題情報「ルート設定(目的地:□□県△△市、経由地:φ、計算条件:φ)」を対話結果として話題情報管理部１０１に反映させると決定する。この場合も対話進行部１０２が新規話題情報「ルート設定」を導入すると判定し(ステップＳ２０２Ｎｏ、ステップＳ２０３Ｙｅｓ)、話題情報反映部８０３に話題情報管理部１０１の更新を依頼する(ステップＳ２０４)。
【０１１３】
話題情報反映部８０３はステップＳ２０４において新規話題情報「ルート設定(目的地=□□県△△市、経由地:φ、計算条件１φ)」を利用した話題情報管理部１０１の更新方法を判定する。新規話題情報は対話結果から導出されたものであるのでステップＳ９０１でＮｏと判定する。ステップＳ９０２では図３に基づいて更新方法を判定する。このときの話題情報管理部１０１には話題情報「ルート設定」(１３０３)のみが残っており、話題情報１３０３に新規話題情報を反映させることが可能であると判定できる。従って、ステップＳ９０２の判定結果は「話題情報１３０３を更新対象として新規話題情報を反映させる」となる(ステップＳ９０３Ｎｏ)ため、話題情報反映部８０３はこの判定結果を採用する(ステップＳ９１０)。
【０１１４】
話題情報反映部８０３はステップＳ２０５においてステップＳ２０４の判定結果に基づいて話題情報管理部１０１を更新する。即ち、話題情報１３０３を新規話題情報「ルート設定(目的地１□□県△△市、経由地:φ、計算条件:φ)」で更新する。話題情報１３０３の「目的地」属性を新規話題情報の「日的地」属性で上書きし、話題情報１３０３は「ルート設定(目的地：□□県△△市、経由地:○○タワー、計算条件:φ)」に更新される。対話進行部１０２は更新後の話題情報１３０３を対象としてユーザＡとの対話を継続する(ステップＳ２０１)。対話進行部１０２は更新された話題情報「ルート設定(目的地:□□県△△市、経由地:○○タワー、計算条件:φ)」を対象としてユーザＡとの対話を継続するが、既に「ルート設定」における必須属性(「計算条件」以外)を全て取得しているので、対話進行部１０２は「ルート設定」を解決したと判定し、対話結果に基づいてカーナビを動作させると共に応答ＳＹＳ１０を出カする。対話進行部１０２は解決した話題情報「ルート設定」を話題情報管理部１０１から取り除く。この時、話題情報管理部１０１が空になるので対話進行部１０２はユーザＡとの対話が終了したと判定し(ステップＳ２０２Ｙｅｓ)、ユーザＡとの対話を終了する。
【０１１５】
以上のように、本実施の形態では話題の利用関係に基づき局所的ではない話題情報を話題情報管理部１０１における現在の話題情報ではない箇所への挿入位置を決定することが可能である。従って、入力ＵＳＲ７による「経由地設定」の解決結果である「ルート設定」を話題情報管理部１０１の最初に挿入し、後の「目的地設定」による対話結果も統合したルート計算条件を導出することが可能となる。一方、「経由地設定」の解決結果である「ルート設定」を現在の話題情報として話題情報管理部１０１に追加することも可能であるが、このような場合は再度「目的地」属性の決定からユーザＡとの対話を再開せねばならず、結果的には『目的地を「住所検索」で決定中である』という対話状態を消去(無視)することと同じ動作となってしまう。
【０１１６】
ＵＳＲ７解釈時に発生する「ルート設定」の挿入は、話題解決時のみに発生するものではない。例えば、話題情報管理部１０１が図１２の状態の時に「高速優先で」というユーザ入力が行われた場合は、その解釈結果である「ルート設定(目的地:φ、経由地:φ、計算条件:高速優先)」を話題情報１２０１の前に挿入する必要がある。このような場合でも本実施の形態では話題手順データベース８０４に基づき適切に挿入位置を決定することが可能である。
【０１１７】
このように本発明の第２の実施の形態に係わる対話装置によれば、新規導入される話題情報により対話状態の更新を行い、その際に対話状態にある各話題情報と新規導入される話題情報との利用・被利用関係に基づき新規話題情報を挿入することで、現在実行中の先に実行すべき局所的な対話を優先的に実行し、その対話結果を新規導入された話題情報の内容と統合することが可能となる。
【０１１８】
なお、上述の説明では話題依存関係データベース８０４が話題をノードとするグラフ形式で表現し、そのノードの親子関係に基づいて子孫話題であるかを判定すると記述しているが、本実施の形態はそのような判定方式に限定されるものではない。例えば、個別の話題について親話題、子話題を分散して指定する方法でも良い。このような場合は参照すべき各話題を逐次取得して子話題であるかどうかを判定したり、全話題を参照してグラフ形式の話題依存関係データベース８０４を構成したりしても良い。或いは、例えば各話題を解決するための手順情報から他の話題の利用・被利用関係を推定しても良い。この他の形式であっても話題間の利用・被利用関係に基づき被利用側の話題を子話題と判定するものであれば本実施の形態の主旨の範囲内である。
【０１１９】
また、図９の話題情報反映部８０３の動作説明において、先に新規話題情報で更新可能な話題情報を探索(ステップＳ９０２)しているが、この処理と挿入位置判定処理(ステップＳ９０５〜ステップＳ９０９)とを並行して進めても良い。このような場合は最後の話題情報から順に更新可能性、挿入可能性を確認していき、更新可能性のある話題情報を見つけるか、挿入位置を特定するかの時に反映内容を決定することが可能である。
【０１２０】
また、図９のステップＳ９０６における「対話手続き上における関連の有無」の判定方法について、対話進行部１０２が親話題を解決するために直接利用した話題情報であるかどうかに基づいて判定しているが、話題情報管理部１０１に格納された話題情報の順序関係に基づいて判定しても良い。例えば「目的地設定」の属性「目的地」が決定状態の場合にその後に続く場所検索式は全て目的地の候補であると判定することが可能である。
【０１２１】
また、上述の説明では話題情報反映部８０３の更新処理において、ユーザ入力により導入された新規話題情報であれば、ユーザ入力の受理内容を提示すると記述しているが、システムから導入された新規話題情報であっても、その内容を応答として提示するようにしても良い。このような応答を提示すればシステムの対話実行状態をユーザＡが把握することが可能となる。
【０１２２】
また、上述の説明では話題情報反映部８０３は、ユーザ入力の受理内容を提示すると判定した時に対話進行部１０２に提示するように依頼しているが、話題情報反映部８０３がユーザＡに直接受理内容を提示しても良い。
【０１２３】
以上のように、新規話題情報を対話状態に導入し、その内容を反映させる際に、その際に対話状態にある各話題情報と新規導入される話題情報との利用・被利用関係に基づき新規話題情報の挿入位置を決定して新規話題情報を挿入し、その挿入位置に応じて現状の対話進行状態の対話を継続するものであれば本発明の主旨の範囲内である。
【０１２４】
（第３の実施の形態）
第１,２の実施の形態は、ユーザＡとの対話によって現れた話題情報による話題情報管理部の更新を即座に行うものである。これに対し第３の実施の形態では、話題情報管理部の更新前にユーザＡと更新する話題に関する対話を実行し、より柔軟にユーザＡとの対話を実行することが可能な対話装置について説明する。
【０１２５】
本実施の形態に係る対話装置の構成図を図１５に示す。本実施の形態に係る対話装置は、図１５に示すように、話題情報管理部１５０１、対話進行部１５０２、話題情報反映部１５０３、更新前対話ルール管理部１５０４、話題依存関係データベース８０４を備えている。ここで、話題依存関係データベース８０４に関しては第２の実施の形態で説明したものと同様であるので本実施の形態での説明は省略する。
【０１２６】
話題情報管理部１５０１は、第１、第２の実施の形態における話題情報管理部１０１と同様であり、ユーザＡとの対話中に現れた話題情報をユーザＡとの対話を進行させる優先順序で順序付けて記憶するリストである。第１、第２の実施の形態における話題情報管理部１０１と異なる点は、話題情報管理部１５０１における話題情報のリストを更新するための新規話題情報を話題情報のリストとは別に記憶することである。話題情報管理部１５０１の詳細は後述する。
【０１２７】
対話進行部１５０２は、第１、第２の実施の形態における対話進行部１０２と同様であり、ユーザＡとの対話を行い、ユーザＡとの対話中に新規話題情報を検出した場合には話題情報反映部１５０３に新規話題情報を用いた話題情報管理部１５０１の更新を依頼する。第１、第２の実施の形態における対話進行部１０２と異なる点は、話題情報管理部１５０１を更新するための新規話題情報を対象とし、更新前対話ルール管理部１５０４における対話手順を参照してユーザＡと対話する機能を備えることである。この話題情報管理部１５０１を更新する前の新規話題情報を対象とした対話進行処理を更新前対話と呼ぶ。対話進行部１５０２の詳細は後述する。
【０１２８】
話題情報反映部１５０３は、第２の実施の形態における話題情報反映部８０３と同様であり、対話進行部１５０２とユーザＡとの対話中に現れた新規話題情報を話題情報管理部１５０１に反映させ、話題情報管理部１５０１を更新する。第２の実施の形態における話題情報反映部８０３と異なる点は、新規話題情報による更新内容の判定と、話題情報管理部１５０１の更新処理との間に対話進行部１５０２による更新前対話を挿入することと、話題情報管理部１５０１の更新処理において「新規話題情報がユーザ入力によって導入された場合に、その受理内容を提示するように対話進行部１５０２依頼する」ことを省略することである。
【０１２９】
更新前対話ルール管理部１５０４は、対話進行部１５０２がユーザＡと更新前対話をするための対話手順を記憶する。更新前対話ルール管理部１５０４の詳細は後述する。
【０１３０】
次に、本発明の第３の実施の形態に係わる対話装置の動作について図１６を参照して説明する。なお、図１６は、本発明の第３の実施の形態に係わる対話装置の動作を示すフローチャートである。
【０１３１】
本対話装置は所定の話題についてユーザＡとの対話を行うものである。ユーザＡ或いは本対話装置によって対話を開始した段階が図１６に示した「Ｓｔａｒｔ」に相当し、対話を継続する必要性がなくなったときに対話を終了する。すなわち、図１６の「Ｅｎｄ」で対話を終了する。
【０１３２】
本対話装置はユーザＡとの対話を開始すると、対話進行部１５０２がユーザＡとの対話を進行する(ステップＳ１６０１)。この対話進行処理は第１、第２の実施の形態における対話進行処理(ステップＳ２０１)と同様である。更に対話進行部１５０２は、ユーザ入力のタイミングに限らず対話が進行する各段階で、対話が終了したか(ステップＳ１６０２)、新規話題情報の導入があるか(ステップＳ１６０３)を逐一確認する。
【０１３３】
ステップＳ１６０２において対話進行部１５０２が対話の終了を検出するとユーザＡとの対話を終了する(Ｅｎｄ)。ステップＳ１６０３において対話進行部１５０２が新規話題情報の導入を検出できなかった場合は、そのままユーザＡとの対話処理を継続し(ステップＳ１６０１)、新規話題情報の導入を検出すると、対話進行部１５０２は話題情報反映部１５０３に新規話題情報を用いた話題情報管理部１５０１の更新方法を判定させる(ステップＳ１６０４)。
【０１３４】
話題情報反映部１５０３は、話題情報管理部１５０１の更新方法を判定する(ステップＳ１６０４)。話題情報反映部１５０３が更新方法を判定すると、対話進行部１５０２が新規話題情報を対象とした更新前対話を実行する(ステップＳ１６０５)。更新前対話中に新規話題情報による更新処理を棄却された場合には(ステップＳ１６０６Ｙｅｓ)、話題情報反映部１５０３は更新前対話の対象であった新規話題情報を破棄し(ステップＳ１６０７)、対話進行部１５０２は話題情報管理部１５０１における現在の話題情報を対象とした対話を再開する(ステップＳ１６０１)。更新前対話中に新規話題情報による更新処理を棄却されなかった場合には(ステップＳ１６０６Ｎｏ)、話題情報反映部１５０３は、新規話題情報を利用した話題情報管理部１５０１の更新処理を実行し(ステップＳ１６０８)、対話進行部１５０２は更新後の話題情報管理部１５０１を対象とした対話進行処理を継続する(ステップＳ１６０１)。
【０１３５】
なお、話題情報反映部１５０３における話題情報管理部１５０１の更新方法判定処理(ステップＳ１６０４)や、話題情報管理部１５０１の更新処理(ステップＳ１６０８)の具体例は第２の実施の形態における話題情報反映部８０３のものと同様であるので詳細な説明は省略する。対話進行部１５０２における更新前対話処理(ステップＳ１６０５)の詳細については後述する。
【０１３６】
次に、話題情報管理部１５０１に格納される話題情報の具体例について図１７、図１８を参照して説明する。本実施の形態における話題情報管理部１５０１は第１、第２の実施の形態における話題情報管理部１０１が管理する話題情報のリスト(１７０１)に加えて、更新処理を実行するための新規話題情報(更新前話題情報)１７０２を記憶する。更新前話題情報１７０２を記憶する際には、話題情報反映部１５０３で反映方法を決定した結果として得た、新規前話題情報を反映させる位置(更新対象の話題情報、或いは挿入位置)を併せて記憶する。図面ではこの位置情報を更新前話題情報から出ている矢印(１７０５)で表している。図１７では『「目的地設定」のための場所を「住所検索」で決定中に、新規話題情報である「ルート設定」を優先順位の最も低い位置に挿入する』状態を表している。従って挿入位置は話題情報１７０４の下であり、矢印１７０５は話題情報１７０４の下を指している。一方、更新前話題情報１８０２で話題情報のリスト１８０１にある話題情報の内容を更新する場合は、更新前話題情報を反映させる位置を指す矢印１８０５をリスト１８０１にある話題情報１８０６の中央を指すように表記する(図１８)。
【０１３７】
次に、更新前対話ルール管理部１５０４の詳細について図１９を用いて説明する。更新前対話ルール管理部１５０４は、対話進行部１５０２における更新前対話を実行するための手順を管理する。本実施の形態では新規話題情報による更新方法や、更新前対話の進行状態などの状況に応じて適用可能なルール(更新前対話ルール)が更新前対話ルール管理部１５０４に登録されている。
【０１３８】
図１９には４種類の更新前対話ルールが登録されている。更新前対話ルール１９０１は、新規話題情報が現在の話題情報として登録される場合は、新規話題情報を割り込ませることを優先するためのルールである。更新前対話ルール１９０２は、ユーザＡによって導入された新規話題情報を対話の優先順位を下げた位置に反映させる場合は、ユーザ入力を受理したことを表明するために、その受理内容を出力するためのルールである。更新前対話ルール１９０３は、新規話題情報を話題情報管理部１５０１に挿入すると決定した場合に適用するルールである。新規話題情報の挿入位置のすぐ後にある話題情報(被挿入話題情報)と新規話題情報との直接の利用・被利用関係がない場合(被挿入話題情報は一つ以上の他の話題を介して新規話題情報の子孫話題となっている場合など)は、被挿入話題情報を対象とした対話の結果の明確な利用方法が明らかではないので新規話題情報の導入が適しているかどうかが不明であるとし、挿入処理の実行可否を問い合わせるためのルールである。更新前対話ルール１９０４は、新規話題情報の挿入処理が許可された時に適用するルールである。被挿入話題情報と新規話題情報の話題依存関係データベース８０４における親子関係の経路が一意ではない場合(図１０における「ルート検索」(新規話題情報)と「住所検索」(被挿入話題情報)の関係)では、被挿入話題情報を対象とした対話の結果を利用する経路が定かではないので、挿入前対話の時点で経路を明らかにするためのルールである。以上のように更新前対話ルールは、更新処理の実行可否や関連情報の取得・提示と言った新規話題情報による更新処理に関連した対話を行うように指定する。
【０１３９】
次に、対話進行部１５０２における更新前対話(ステップＳ１６０５)の詳細について説明する。話題情報反映部１５０３により話題情報管理部１５０１の更新方法が決定されると(ステップＳ１６０４)、対話進行部１５０２は、話題情報管理部１５０１の更新前話題情報(例えば図１７の１７０２)に新規話題情報を登録する。登録の際には新規話題情報を話題情報管理部１５０１に反映させる位置も併せて登録する。その後対話進行部１５０２は、ユーザＡと更新前対話を実行する(ステップＳ１６０５)。
【０１４０】
対話進行部１５０２は、更新前対話を実行する際には話題情報管理部１５０１に記憶されている更新前話題情報と、更新前対話ルール管理部１５０４を参照してユーザＡとの対話を行う。対話進行部１５０２は、更新前対話ルール管理部１５０４において適用可能なルールを収集し、その収集結果による動作をユーザＡに対する応答として提示することを繰り返すことで、ユーザＡと更新前対話を実行する。更新前対話ルール１９０３、１９０４のような被挿入話題情報といった新規話題情報を反映させる位置を利用したルールが適用可能かどうかは、話題情報管理部１５０１に更新前話題情報を登録した際の位置情報を参照して決定する。また、何度も同じ更新前対話ルールを適用しないように一度適用した更新前対話ルールは収集対象から除外する。
【０１４１】
更新前対話実行中には、ユーザＡに応答を提示しユーザ入力を待つ状態があるが、このような場合は更新前対話実行状態(ステップＳ１６０５)で一時停止しているものとみなす。そしてユーザ入力によって別の新規話題情報が通知された場合には、更新前対話状態を抜け出し、通知された新規話題情報を対象とした話題情報管理部１５０１の更新方法を判定する処理(ステップＳ１６０４)に移行する。
【０１４２】
なお、このような更新前対話ルールを用いてユーザＡに提示する応答を提示する場合にはシナリオに指定された定型文や、応答文のテンプレートに情報を与えて自動生成してユーザＡに応答文を提示したり、シナリオに指定された画面出カ等の動作指定などに基づき動作したりするなど既存の手法を利用して生成してことが可能である。また、複数の更新前対話ルールを適用する場合には、複数のルールの組み合わせに関する応答文のテンプレートや動作指定を定義し、それを参照して動作するなど既存の手法が利用可能である。
【０１４３】
ユーザＡが更新前対話をキャンセルした場合や、更新前ルールにより更新処理を棄却されたと判定する入力をユーザＡが入力した場合には、対話進行部１５０２は更新前対話を終了し、更新処理を棄却されたものと判定する(ステップＳ１６０６Ｙｅｓ)。更新処理を棄却することなく更新前対話を終了するルールが適用された場合や、適用可能な更新前対話ルールが見つからなかった場合には、対話進行部１５０２は更新前対話を終了する。この場合には更新処理が受理されたものと判定する(ステップＳ１６０６Ｎｏ)。対話進行部１５０２は、更新前対話が終了した時に話題情報管理部１５０１から更新前話題情報をクリアする。
【０１４４】
次に、具体例として、カーナビに本発明を適用した場合を例に、本実施の形態の動作について図１０、図１６、図１９、図２０を参照してより詳細に説明する。カーナビで対話を行うことが可能な話題は、指定された条件でルート計算を行う「ルート設定」(属性=「目的地」、「経由地」、「計算条件(必須属性ではない)」)と、指定された場所を目的地として登録する「目的地設定」(属性=「目的地」)と、指定された場所を経由地として登録する「経由地設定」(属性=「経由地」)と、場所を検索する場合に使用する、住所を都道府県名から順に指定することで位置を特定する「住所検索」(属性=「都道府県名」、「市区町村名」)である。これらの話題に関する依存関係情報が話題依存関係データベース８０４に図１０のような内容で格納されている。また、更新前対話ルール管理部１５０４には図１９のような内容の更新前対話ルールが管理されている。このようなカーナビを用いて図２０のような対話を行う場合の動作を詳細に説明する。
【０１４５】
ユーザ入力ＵＳＲ１１によって対話が開始される(ステップＳ１６０１)。ＵＳＲ１１を解釈すると「住所検索(都道府県名:φ、市区町村名:φ)」という入力となる。対話進行部１５０２は、このユーザ入力によって新規話題情報の導入が行われことを検出し(ステップＳ１６０２Ｎｏ,ステップＳ１６０３Ｙｅｓ)、話題情報反映部１５０３に話題情報管理部１５０１の更新を依頼する(ステップＳ１６０４)。
【０１４６】
話題情報反映部１５０３はステップＳ１６０４において新規話題情報「住所検索(都道府県名:φ、市区町村名：φ)」を利用した話題情報管理部１５０１の更新方法を判定する(ステップＳ１６０４)。第２の実施の形態における更新方法判定処理と同様に処理を行い、話題情報管理部１５０１が空であるので、新規話題情報を話題情報管理部１５０１の最初に挿入すると判定する。
【０１４７】
対話進行部１５０２は、話題情報反映部１５０３による更新方法の判定結果を受けて更新前対話を実行する(ステップＳ１６０５)。対話進行部１５０２はまず話題情報管理部１５０１に更新前話題情報を登録する。即ち新規話題情報を更新前話題情報に登録し、新規話題情報を反映させる位置を話題情報管理部１５０１の最初であると登録する。対話進行部１５０２は次に更新前話題情報を対象とした更新前対話を実行する。対話進行部１５０２は更新前対話ルル管理部１５０４から適用可能なルールを収集する。話題情報管理部１５０１は空であるので、新規話題情報は話題情報管理部１５０１の最後に挿入される。従って新規話題情報は現在の話題情報として登録されることになるため、対話進行部１５０１は更新前対話ルール１９０１が適用可能であると判定する。更新前対話ルール１９０１によると、更新前対話を終了すると指定されているので、対話進行部１５０２はユーザＡとの更新前対話を実行せずに終了する。対話進行部１５０２は話題情報管理部１５０１から更新前話題情報をクリアする。
【０１４８】
更新前対話中にユーザＡによって更新処理を棄却されなかったので(ステップＳ１６０６Ｎｏ)、対話進行部１５０２は話題情報反映部１５０３に話題情報管理部１５０１の更新を依頼する(ステップＳ１６０８)。話題情報反映部１５０３は新規話題情報「住所検索(都道府県名:φ、市区町村名:φ)」を話題情報管理部１５０１の最初に挿入する(ステップＳ１６０８)。
【０１４９】
対話進行部１５０２は、現在の話題情報である「住所検索」を対象としてユーザＡとの対話を継続する(ステップＳ１６０１)。対話進行部１０２は「住所検索」の対話手順に基づき、属性「都道府県名」を取得すると決定する。この決定に従いユーザＡに対して応答ＳＹＳ１１を出カする。
【０１５０】
続いてＵＳＲ１２が入力された。ＵＳＲ１２を解釈すると「ルート設定(目的地：Φ、経由地:φ、計算条件:高速優先)」という入力になる。対話進行部１５０２は、このユーザ入力によって新規話題情報の導入が行われたことを検出し(ステップＳ１６０２Ｎｏ,ステップＳ１６０３Ｙｅｓ)、話題情報反映部１５０３に、話題情報管理部１５０１の更新を依頼する(ステップＳ１６０４)。
【０１５１】
話題情報反映部１５０３はステップＳ１６０４において新規話題情報「ルート設定」を利用した話題情報管理部１５０１の更新方法を判定する(ステップＳ１６０４)。第２の実施の形態における更新方法判定処理と同様に処理を行い、話題情報管理部１５０１に唯一登録されている「住所検索」が「ルート設定」の子孫話題であるので、新規話題情報「ルート設定」を「住所検索」の前に挿入すると判定する。
【０１５２】
対話進行部１５０２は、話題情報反映部１５０３による更新方法の判定結果を受けて更新前対話を実行する(ステップＳ１６０５)。対話進行部１５０２はまず話題情報管理部１５０１に更新前話題情報を登録する。即ち新規話題情報を更新前話題情報に登録し、新規話題情報を反映させる位置を話題情報管理部１５０１の最初であると登録する。この時の話題情報管理部１５０１の状態は図２１のようになっている。対話進行部１５０２は次に更新前話題情報を対象とした更新前対話を実行する。
【０１５３】
対話進行部１５０２は更新前対話ルール管理部１５０４から適用可能なルールを収集する。新規話題情報は話題情報２１０１の前に挿入されるので現在の話題情報ではなく、更に新規話題情報はユーザ入力によって導入されたので更新前対話ルール１９０２の適用が可能である。また、被挿入話題情報が「住所検索」(２１０１)で、新規話題情報が「ルート設定」であり、話題依存関係データベース８０４(図１０)を参照すると被挿入話題情報は新規話題情報の子孫話題ではあるが子話題ではないことがわかる。従って対話進行部１５０２は更新前対話ルール１９０３の適用も可能であると判定する。
【０１５４】
更新前対話ルール１９０２、１９０３によると、『ユーザＡに受理内容を提示し、更に新規話題情報を話題情報管理部１５０２に挿入してよいかどうかを確認する』という動作を行うように指定されている。従って対話進行部１５０２は更新前対話処理としてユーザＡに対して応答ＳＹＳ１２を提示し、ユーザ入力を待つ。対話装置の処理状態はＳ１６０５で一時停止状態となる。
【０１５５】
続いてＵＳＲ１３が入力された。ＵＳＲ１３を解釈すると“肯定"という入力になる。対話進行部１５０２においてこの入力は応答ＳＹＳ１２に対する回答であり、更新処理の実行を許可する入力であると判断する。対話進行部１５０２は、引き続き更新前対話処理(Ｓ１６０５)を継続する。
【０１５６】
対話進行部１５０２は更新前対話ルル管理部１５０４から適用可能なルールを収集する。更新前対話ルール１９０２、１９０３を収集対象から除外する。新規話題情報の挿入がユーザＡによって許可されており、また、話題依・存関係データベース８０４を参照すると被挿入話題情報「住所検索」(２１０１)と新規話題情報「ルート設定」を辿る経路には話題「目的地設定」を経由するものと、「経由地設定」を経由するものの２種類が存在する。従って、対話進行部１５０２は更新前対話ルール１９０４の適用が可能であると判定する。更新前対話ルール１９０４によると、『被挿入話題情報が新規話題情報におけるどの利用・被利用関係を意図するものか問い合わせる』という動作を行うように指定されており、この動作を「住所検索」と「ルート設定」の関係に対応させると、『「住所検索」が「目的地設定」、「経由地設定」のどちらを意図するものか確認する』という動作を行うことになる。従って対話進行部１５０２は『「住所検索」が「目的地設定」を意図するものか』を確認するために更新前対話処理としてユーザＡに対して応答ＳＹＳ１３を提示し、ユーザ入力を待つ。対話装置の処理状態はステップＳ１６０５で一時停止状態となる。
【０１５７】
続いてＵＳＲ１４が入力された。ＵＳＲ１４を解釈すると“肯定"という入力になる。対話進行部１５０２においてこの入力は応答ＳＹＳ１３に対する回答であり、被挿入話題情報「住所検索」は「目的地設定」を意図した話題情報であると判断する。対話進行部１５０２は被挿入話題情報が「目的地設定」を意図した話題情報であることを登録し、引き続き更新前対話処理(ステップＳ１６０５)を継続する。
【０１５８】
対話進行部１５０２は更新前対話ルール管理部１５０４から適用可能なルールを収集する。更新前対話ルール１９０２、１９０３、１９０４を収集対象から除外すると適用可能な更新前対話ルールがなくなるため、適用可能な更新前対話ルールの収集に失敗する。従って、対話進行部１５０２は更新前対話が終了したと判定し、話題情報管理部１５０１から更新前話題情報をクリアする。
【０１５９】
更新前対話中に更新処理の棄却がなかったため(ステップＳ１６０６Ｎｏ)、話題情報反映部１５０３は新規話題情報「ルート設定(目的地:φ、経由地:φ、計算条件:高速優先)」を話題情報管理部１５０１の先頭に挿入する(ステップＳ１６０８)。その後、対話進行部１５０２は現在の話題情報を対象とした対話進行を再開する(ステップＳ１６０１)。現在の話題情報は「住所検索」のまま変更が無いため、再び属性「都道府県名」を取得するためにユーザＡに対して応答ＳＹＳ１４を提示する。
【０１６０】
以上のように、本実施の形態では新規話題情報を用いて話題情報管理部１５０１を更新する前に更新前対話を実行することが可能である。従って、入力ＵＳＲ１２のような被挿入話題情報とは直接関係のない話題の新規話題情報を挿入する場合には更新処理の実行可否を問い合わせたり(ＳＹＳ１２)、同時にユーザＡが意図する被挿入話題情報の利用方法を確認したり(ＳＹＳ１３)することが可能となる。ＳＹＳ１３に対する確認結果を話題情報「住所検索」に登録することで、「住所検索」の解決後に検索結果の場所情報が「経由地設定」であるか「目的地設定」であるかを問い合わせることなく「目的地設定」に利用するとして対話を進めることが可能であり、スムーズにユーザＡとの対話を進めることが可能となる。以上のように、本実施の形態では新規話題情報を用いて直ちに更新処理を行うよりもより柔軟性の高い対話管理が可能となる。
【０１６１】
上述の説明では更新前対話ルール管理部１５０４には新規話題情報の話題の種類によらず適用可能で汎用な更新前対話ルールのみを記述していたが、例えば図２２のように新規話題情報の話題の種類に応じた更新前対話ルールを追加することも可能である。
【０１６２】
図２２における更新前対話ルール管理部１５０４では図１９にある更新前対話ルール群(２２０２)に話題「ルート設定」を新規話題情報として加える際に適用可能な更新前対話ルール群(２２０１)を加えている。更新前対話ルール群２２０１にある更新前対話ルールには、「更新処理によって不適切と思われる値への更新が発生する場合には問い合わせる」(２２０３)、「対話順序(属性の決定順序)が固定されている場合には、その順序に応じた状況になるまで部分的に話題の解決を行う」(２２０４)といった意味合いのルールが登録されている。以上のように、新規話題情報の種類を特定した更新前対話ルール群では、新規話題情報の意味的な内容に応じた更新前対話ルールを登録することが可能である。
【０１６３】
更に、話題情報管理部１５０１における更新前話題情報を一つの話題情報ではなく、対話の優先順位順に話題情報を記憶するリスト(更新前話題情報リスト)とすることも可能である。更新前話題情報リストも話題情報管理部１０１と同様に対話を最優先する話題情報を最後に格納するようにし、更新前対話中では更新前話題情報リストの最後の話題情報を対象としてステップＳ１６０１と同様に対話を進行させる。更新前対話中に新規話題情報が導入された場合は更新前話題情報リストの最後に追加する。但し、更新前話題情報リストにある話題情報数が最初の一つだけになったときには更新前対話ルール管理部１５０４にある更新前対話ルールを適用する。
【０１６４】
以上のように変形した構成で、図２２のような更新前対話ルール管理部１５０４の登録内容である場合に、図２３のような対話を行った場合について説明する。この例のカーナビではルート設定を行うためには目的地、経由地の順に場所を決定しなければならないものとする。話題「ルート設定」に関する対話シナリオと、更新前対話ルール(２２０４)はこの制限を守って対話を進めるように設計されているものとする。
【０１６５】
図２３におけるＵＳＲ１１〜ＳＹＳ１３までは上述の対話例の説明と同様である。即ち、対話進行部１５０２はＵＳＲ１２で新規話題情報「ルート設定」を検出し(ステップＳ１６０３Ｙｅｓ)、話題情報反映部１５０３は、新規話題情報を話題情報管理部１５０１の先頭に挿入すると決定している(ステップＳ１６０４)。ＳＹＳ１２からは更新前対話を行っており(ステップＳ１６０５)、この時の話題情報管理部１５０１は図２１のようになっている。被挿入話題情報「住所検索」でユーザＡが意図する利用法はＵＳＲ１５により「目的地設定」への利用が否定されているため、対話進行部１５０２は「経由地設定」であると判定する。
【０１６６】
ユーザＡが「経由地設定」を先に解決しようとしているので、更新前対話ルール２２０４を適用し、先に「目的地設定」を解決すると動作する。対話進行部１５０２はこのことをＳＹＳ１５でユーザＡに提示し、「ルート設定」の(更新前対話用ではない)対話シナリオを参照し、ユーザＡとの対話を実行する。例えば話題情報「目的地設定(目的地:φ)」を対話進行の対象として更新前話題情報リストの最後に追加し、ユーザＡとの更新前対話を継続する。そしてユーザＡが属性「目的地」を“○○タワー"と決定し、更新前話題情報リストの内容が「ルート設定(目的地：○○タワー、経由地:φ、計算条件=高速優先)」一つになると、対話進行部１５０２は、再度更新前対話ルール管理部１５０４を参照して適用可能な更新前対話ルールを収集する。しかしながら、適用可能な更新前対話ルールが存在しないため対話進行部１５０２は、更新前対話を終了する。
【０１６７】
更新前対話中に「ルート設定」による話題情報管理部１５０１の更新を棄却されなかったので(ステップＳ１６０６Ｎｏ)、目的地のみを決定した話題情報「ルート設定(目的地:○○タワー、経由地：φ、計算条件:高速優先)」を話題情報管理部１５０１の先頭に挿入する(ステップＳ１６０８)。そして、話題情報管理部１５０１にある現在の話題情報「住所検索」を対象にしてユーザＡとの対話を継続する(ステップＳ１６０１)。
【０１６８】
以上のように、このような変形例では話題情報の内容にまで立ち入った詳細な更新前対話ルールを参照し、更に新規話題情報による更新処理が可能な状態になるまで新規話題情報を修正するために更新前対話ルールではない通常の対話シナリオの一部を実行することが可能となる。従って、本実施の形態では新規話題情報を用いて話題情報管理部１５０１を更新する前に、その更新処理を実行する前に必要な情報を収集する更新前対話を実行することが可能である。
【０１６９】
このように本発明の第３の実施の形態に係る対話装置によれば、新規導入される話題情報による話題情報管理部１５０１の更新処理を実行する前に、更新前対話をユーザＡと行うことによって、更新処理の前に取得すべき情報を予め取得したり、更新処理の実行可否を確認したりするなどの柔軟な対話制御が可能となる。
【０１７０】
なお、上述の説明では話題情報管理部１５０１が管理する更新前話題情報、或いは更新前話題情報リストが一つだけであるかのように記述しているが、本実施の形態はそのような構成に限定されるものではない。例えば、更新前話題情報リストに対して再帰的に更新前話題情報リストを追加する構成でも良い。このような場合は、更新前話題情報リストを対象として更新前対話を行う際(ステップＳ１６０５)に、新規話題情報の導入を検出した際には話題情報反映部１５０３による更新前話題情報リストの更新方法の判定を行い、判定結果に基づいて再帰的に更新前話題情報リストを構築する。このような構成では再帰的に更新前対話を実行するように動作させることが可能である。
【０１７１】
また、上述の説明では話題情報管理部１５０１には話題情報管理部１０１に更新前話題情報、或いは更新前話題情報リストを加えた構成であるかのように記述しているが、本実施の形態はそのような構成に限定されるものではない。例えば、新規話題情報に更新前対話状態であることを示すフラグを付与し、現在の話題情報として話題情報管理部１５０１に追加しても良い。このような場合には、対話進行部１５０２は現在の話題情報が更新前対話状態であれば更新前対話を実行し、更新前対話が終了したら話題情報反映部１５０３に更新処理を依頼するか、或いは更新前対話が終了した話題情報を新規話題情報とみなして再度ステップＳ１６０４の更新内容の判定を実行する。このような動作をする場合では話題情報管理部１５０１における更新前話題情報(リスト)は不要となる。
【０１７２】
また、上述の説明では更新前対話ルール管理部１５０４は個別の対話ルールの形で対話手順を管理しているが、本実施の形態はそのような対話方式に限定されない。例えば、更新前対話の手順を状態遷移図形式のシナリオで記述することも可能である。或いは個別の話題に関する対話シナリオに更新前対話手順を組み込んで良く、このような場合は、更新前対話ルール管理部１５０４は、各話題の対話シナリオにおける更新前対話手順を取得する手段とみなすことが可能である。
【０１７３】
また、上述の説明では更新前対話中にはユーザＡとの対話の終了を検出しないように記述しているが、例えばユーザＡが対話の継続を拒否したことを検出した場合などにはユーザＡとの対話を終了しても良い。
【０１７４】
また、上述の説明では話題依存関係データベース８０４を備え、話題情報反映部１５０３の詳細動作は第２の実施の形態における話題情報反映部８０３とほぼ同様であるかのように記述しているが、この構成から話題依存関係データベース８０４を除外し、話題情報反映部１５０３の詳細動作を第１の実施の形態における話題情報反映部１０３によるものとしても良い。
【０１７５】
以上のように、新規話題情報による対話状態の更新の際に、更新前対話を行うものであれば、そのようなものは本発明の主旨の範囲内である。
【０１７６】
以上に示した実施の形態によれば、新規に導入された対話内容と現在実行中の対話の順序を前後させ、柔軟な対話制御を行うことが可能となる。
【０１７７】
なお、上述の各実施の形態において話題情報管理部１０１、１５０１は話題情報のリストであるとしたが、ユーザＡとの対話により現れた話題情報を対話の優先順に参照できる構成であれば良く、そのような構成は本発明の主旨の範囲内である。
【０１７８】
また、上述の各実施の形態において話題情報反映部１０３、８０３で反映させる新規話題情報は単一の話題情報であるように記述しているが、複数の話題情報を対象にしても良い。例えば、新規話題情報導入時に話題依存関係データベース８０４に基づき遡及的に親話題を取得し、予め全ての親話題を反映させることも可能である。このような場合は、個々の話題情報の順序関係を保つようにして個別に新規話題情報の反映を行ってもよい。これとは別の方法として、それら複数の話題情報をまとめて反映させる場合もある。反映させる話題情報群全てを対象にして話題情報管理部１０１から更新可能な話題情報を検索し、更新可能な話題情報が見つかれば対象の話題情報を更新すると共に、他の反映させる話題情報群をその順序関係を保つように更新した話題情報の前後に挿入する。反映可能な話題情報が見つからなかった場合は、反映させる話題情報群の中で順序が最後の話題情報を対象として挿入位置を定める。以上のようにすれば複数の新規話題情報が導入されてもその内容を対話状態に反映させることが可能となる。
【０１７９】
上述の各実施の形態において、対話中に新規話題情報の導入を検出するタイミングが、ユーザ入力時、対話進行のために必要な情報を取得するために別の話題を利用すると決定した時、現在の話題を解決した時の３種類であると記述しているが、新規話題清報の導入を検出するタイミングはそれだけに限定されない。例えば、アプリケーションのイベントに応じて新規話題情報を導入する場合や、新規話題情報の侯補を予め作成しておき、何らかのイベントと連動してその候補を導入する場合も考えられる。このような場合においても話題情報反映部１０３、８０３、１５０３は導入すると決定した新規話題情報を対象とした更新判定・更新処理を行うことが可能である。
【０１８０】
上述の各実施の形態において、話題情報管理部１０１、１５０１や、話題依存関係データベース８０４や、更新前対話ルール管理部１５０４が、一つの装置であるかのような構成で記述しているが、図２４に示すように話題情報管理部１０１（１５０１）、対話進行部１０２（１５０２）、話題情報反映部１０３（８０３、１５０３）、話題依存関係データベース８０４、更新前対話ルール管理部１５０４の各構成要素を独立して配置し、それぞれの構成要素の間をネットワークや無線回線などの通信媒体２００を介して接続し情報の送受信を行なうようにしても良い。
【０１８１】
なお、本発明の対話装置はアプリケーションと分離した構成であるかのように記述しているが、アプリケーションの機能を含有する対話装置であっても本発明の適用が可能である。例えばユーザＡに提示する情報を管理するデータベースを保持し、ユーザＡの要求する条件に基づいてそのデータベースを検索する機能を含有する対話装置の場合について考える。このような対話装置において、ユーザＡとの対話によってデータベース検索条件を取得し、取得した検索条件に基づいてそのデータベースを検索し、ユーザＡに対して回答を返す動作をする場合は、そのようなデータベース検索機能は本発明におけるアプリケーションの機能であり、データベース検索条件を取得することが本発明における話題に相当する。また、データベース検索の他に種々の機能を保有する対話装置であっても、ユーザＡと対話をして各種機能の動作条件を決定しそれに基づいて各種機能を動作させる場合は、その機能は全て本発明におけるアプリケーションの機能と同一とみなせる。例えばユーザＡとの対話によって指定された条件で各種機能を動作させる構成や、対話装置から動作条件を提示してユーザＡからの承諾を得ることで各種機能を動作させる構成であっても、動作させる各種機能は本発明におけるアプリケーションの機能であると言える。
【０１８２】
また、本発明の対象とするアプリケーションが単一であるかのように記述しているが、複数のアプリケーションの機能を利用することも可能である。本発明では複数のアプリケーションに含まれる個々の機能を実行させることを個別の目的として、それぞれを個別の話題として取り扱うことが可能である。
【０１８３】
また、各実施の形態の説明においてはアプリケーションの機能を実行させることを話題解決時の一回だけ行うかのように記述しているが、本発明における話題は「アプリケーションにある機能を有効に動作させる」ことを目的とするものであり、その実行結果が有意なものでなければ(検索結果の件数が０件や多すぎる場合、コマンドの実行失敗など)話題を解決していないとみなし、再度その機能の実行条件の変更を行いアプリケーションの機能を複数回実行しても良い。実行条件はユーザＡから対話的に変更することも、対話装置から白動的に変更することも可能である。或いはある話題の対話中の途中経過において、ユーザＡとの対話進行のための手順として必要な機能を実行しても良い。また、各実施の形態の説明においてはユーザＡから話題情報を導入することで対話が開始しているが、シナリオに基づきユーザ入力前に対話装置側から話題情報を導入しても良い。また、各実施の形態の説明においてはカーナビを例にして説明しているが、本発明は家電の操作などカーナビ以外のアプリケーションにも適用することも可能である。
【０１８４】
その他、本発明は、上記実施の形態に限定されるものでなく、実施段階では、その要旨を変更しない範囲で種々変形することが可能である。
【０１８５】
さらに、上記実施の形態には、種々の段階の発明が含まれており、開示されている複数の構成要件における適宜な組み合わせにより種々の発明が抽出できる。例えば、実施の形態に示されている全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題を解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出できる。
【図面の簡単な説明】
【０１８６】
【図１】本発明の第1の実施の形態に係わる対話装置の構成を示すブロック図。
【図２】第1の実施の形態に係る対話装置の動作を説明するフローチャート。
【図３】第1の実施の形態に用いられる話題情報反映部の動作を示すフローチャート。
【図４】第1の実施の形態に用いられる話題情報管理部を説明する図。
【図５】第1の実施の形態における話題情報の更新方法の説明図。
【図６】第1の実施の形態における対話例を示す図。
【図７】第1の実施の形態における話題情報管理部を説明する図。
【図８】本発明の第２の実施の形態に係る対話装置の構成を示すブロック図。
【図９】第２の実施の形態に用いられる話題情報反映部の動作を説明するフローチャート。
【図１０】第２の実施の形態に用いられる話題依存関係データベースの説明図。
【図１１】第２の実施の形態における対話例を示す図。
【図１２】第２の実施の形態における話題情報管理部を説明する図。
【図１３】第２の実施の形態における話題情報管理部を説明する図。
【図１４】第２の実施の形態における話題情報管理部を説明する図。
【図１５】本発明の第３の実施の形態に係る対話装置の構成を示すブロック図。
【図１６】第３の実施の形態に係る対話装置の動作を説明するフローチャート。
【図１７】第３の実施の形態における話題情報管理部を説明する図。
【図１８】第３の実施の形態における話題情報管理部を説明する図。
【図１９】第３の実施の形態に用いられる更新前対話ルール管理部を説明する図。
【図２０】第３の実施の形態における対話例を示す図。
【図２１】第３の実施の形態における話題情報管理部を説明する図。
【図２２】第３の実施の形態に用いられる更新前対話ルール管理部を説明する図。
【図２３】第３の実施の形態における対話例を示す図。
【図２４】本発明に係る対話装置の他の例の概略構成を示す図。
【符号の説明】
【０１８７】
１０１、１５０１・・・話題情報管理部
１０２、１５０２・・・対話進行部
１０３、８０３、１５０３・・・話題情報反映部
８０４・・・話題依存関係データベース
１５０４・・・更新前対話ルール管理部
４０１、４０２、４０３、７０１、７０２、７０３、１２０１、１２０２、１３０３、１７０３、１７０４、２１０１・・・話題情報
１９０１、１９０２、１９０３、１９０４、２２０３、２２０４・・・更新前対話ルール
２２０１、２２０２・・・更新前対話ルール群
【図１】
2007264199.tif 000003
【図２】
2007264199.tif 000004
【図３】
2007264199.tif 000005
【図４】
2007264199.tif 000006
【図５】
2007264199.tif 000007
【図６】
2007264199.tif 000008
【図７】
2007264199.tif 000009
【図８】
2007264199.tif 000010
【図９】
2007264199.tif 000011
【図１０】
2007264199.tif 000012
【図１１】
2007264199.tif 000013
【図１２】
2007264199.tif 000014
【図１３】
2007264199.tif 000015
【図１４】
2007264199.tif 000016
【図１５】
2007264199.tif 000017
【図１６】
2007264199.tif 000018
【図１７】
2007264199.tif 000019
【図１８】
2007264199.tif 000020
【図１９】
2007264199.tif 000021
【図２０】
2007264199.tif 000022
【図２１】
2007264199.tif 000023
【図２２】
2007264199.tif 000024
【図２３】
2007264199.tif 000025
【図２４】
2007264199.tif 000026