(57)【要約】コントリビューションスタックと、このコントリビューションスタックから現在の情報状態を導出する情報導出手段とを備えるデータベースクエリ設定装置を開示する。ユーザ又はシステム自体によって指定された如何なる検索基準も、発生順に、コントリビューションスタックにプッシュされる。実際にデータベースにアクセスするために用いられる現在の情報状態は、コントリビューションスタックに含まれている検索基準の組の部分集合から形成される。検索条件を緩和するために、現在の情報状態を形成する際、コントリビューションスタックに含まれている１つ以上の検索基準を無効にしてもよい。コントリビューションスタックを用いることにより、様々なユーザ入力とシステム貢献の発生の順番を追跡し、この情報を用いて検索条件を緩和することができる。
2005537576.tif 000002
【特許請求の範囲】
【請求項１】
一組の検索基準を組み合わせて、データベースクエリを設定するデータベースクエリ設定装置において、
少なくとも１人のユーザ又はシステム自体によって指定された検索基準を発生順に格納し、該ユーザ又はシステムによってによって提供される少なくとも１つの新たな検索基準がそれぞれプッシュされるコントリビューションスタックと、
上記コントリビューションスタックから、該コントリビューションスタックに含まれている一組の検索基準の部分集合から形成され、データベースにアクセスするために使用される現在の情報状態を導出する情報導出手段とを備えるデータベースクエリ設定装置。
【請求項２】
上記少なくとも１人のユーザ又はシステムが上記検索基準を指定した順番に基づいて、上記検索基準間の従属関係の階層を決定することを特徴とする請求項１記載のデータベースクエリ設定装置。
【請求項３】
新たな検索基準が指定される都度、該新たな検索基準が、上記コントリビューションスタックに格納されている以前の検索基準によって既に指定された属性に言及しているか否かを調べることを特徴とする請求項１又は２記載のデータベースクエリ設定装置。
【請求項４】
上記新たな検索基準が、上記コントリビューションスタックに格納されている以前の検索基準によって既に指定された属性に言及している場合、該以前の検索基準を該コントリビューションスタックから消去し、該新たな検索基準を該コントリビューションスタックにプッシュする請求項３記載のデータベースクエリ設定装置。
【請求項５】
上記新たな検索基準が、上記コントリビューションスタックに格納されている以前の検索基準によって既に指定された属性に言及している場合、該以前の検索基準及び該コントリビューションスタックに後にプッシュされた全ての検索基準を、該コントリビューションスタックからポップアップし、該新たな検索基準を該コントリビューションスタックにプッシュすることを特徴とする請求項３記載のデータベースクエリ設定装置。
【請求項６】
上記現在の情報状態を導出する際、上記コントリビューションスタックに含まれている検索基準の組における少なくとも１つの検索基準を無効にして、上記データベースクエリの検索条件を緩和する緩和手段を更に備える請求項１乃至５いずれか１項記載のデータベースクエリ設定装置。
【請求項７】
上記データベースクエリの検索条件を緩和する緩和手段は、発生順に、及び／又はユーザプロファイルに基づいて、及び／又はコンテキスト情報に基づいて、上記無効にする検索基準を選択することを特徴とする請求項６記載のデータベースクエリ設定装置。
【請求項８】
上記現在の情報状態を導出する際、上記コントリビューションスタックに格納されている少なくとも最も新しい検索基準を無効にすることを特徴とする請求項６又は７記載のデータベースクエリ設定装置。
【請求項９】
上記現在の情報状態を導出する際、上記コントリビューションスタックに格納されている少なくとも最も古い検索基準を無効にすることを特徴とする請求項６又は７記載のデータベースクエリ設定装置。
【請求項１０】
上記現在の情報状態を導出する際に無効にされる検索基準は、上記コントリビューションスタックから消去されることを特徴とする請求項６乃至９いずれか１項記載のデータベースクエリ設定装置。
【請求項１１】
上記現在の情報状態を導出する際に無効にされる検索基準は、上記クエリが許容できる結果を生じたと判明した場合にのみ、上記コントリビューションスタックから消去されることを特徴とする請求項６乃至９いずれか１項記載のデータベースクエリ設定装置。
【請求項１２】
上記現在の情報状態を導出する際に無効にされる検索基準は、上記コントリビューションスタック内に維持されることを特徴とする請求項６乃至９いずれか１項記載のデータベースクエリ設定装置。
【請求項１３】
上記検索基準は、データベースクエリ言語を含む人工言語に基づく会話型システムによって得られることを特徴とする請求項１乃至１２いずれか１項記載のデータベースクエリ設定装置。
【請求項１４】
上記検索基準は、自然言語による対話システムによって、上記少なくとも１人のユーザから得られることを特徴とする請求項１乃至１２いずれか１項記載のデータベースクエリ設定装置。
【請求項１５】
一組の検索基準を組み合わせることによって、データベースクエリを設定するデータベースクエリ設定方法において、
少なくとも１人のユーザ又はシステム自体によって提供される検索基準をコントリビューションスタックに発生順にプッシュするステップと、
上記コントリビューションスタックから、該コントリビューションスタックに含まれている一組の検索基準の部分集合から形成される現在の情報状態（８、１０、１２）を導出するステップと、
上記現在の情報状態に対応するデータベースクエリを設定するステップとを有するデータベースクエリ設定方法。
【請求項１６】
上記少なくとも１人のユーザ又はシステムが上記検索基準を指定した順番に基づいて、上記検索基準間の従属関係の階層を決定することを特徴とする請求項１５記載のデータベースクエリ設定方法。
【請求項１７】
新たな検索基準が指定される都度、該新たな検索基準が、上記コントリビューションスタックに格納されている以前の検索基準によって既に指定された属性に言及しているか否かを調べるステップを更に有する請求項１５又は１６記載のデータベースクエリ設定方法。
【請求項１８】
上記新たな検索基準が、上記コントリビューションスタックに格納されている以前の検索基準によって既に指定された属性に言及している場合、該以前の検索基準を該コントリビューションスタックから消去し、該新たな検索基準を該コントリビューションスタックにプッシュするステップを更に有する請求項１７記載のデータベースクエリ設定方法。
【請求項１９】
上記新たな検索基準が、上記コントリビューションスタックに格納されている以前の検索基準によって既に指定された属性に言及している場合、該以前の検索基準及び該コントリビューションスタックに後にプッシュされた全ての検索基準を、該コントリビューションスタックからポップアップし、該新たな検索基準を該コントリビューションスタックにプッシュすることを特徴とする請求項１７記載のデータベースクエリ設定方法。
【請求項２０】
上記現在の情報状態を導出する際、上記コントリビューションスタックに含まれている検索基準の組における少なくとも１つの検索基準を無効にして、上記データベースクエリの検索条件を緩和するステップを更に有する請求項１５乃至請求項１９いずれか１項記載のデータベースクエリ設定方法。
【請求項２１】
発生順に、及び／又はユーザプロファイルに基づいて、及び／又はコンテキスト情報に基づいて、上記無効にする検索基準を選択することを特徴とする請求項２０記載のデータベースクエリ設定方法。
【請求項２２】
上記現在の情報状態を導出する際、上記コントリビューションスタックに格納されている少なくとも最も新しい検索基準を無効にするステップを更に有する請求項２０又は２１記載のデータベースクエリ設定方法。
【請求項２３】
上記現在の情報状態を導出する際、上記コントリビューションスタックに格納されている少なくとも最も古い検索基準を無効にするステップを更に有する請求項２０又は２１記載のデータベースクエリ設定方法。
【請求項２４】
上記現在の情報状態を導出する際に無効にした検索基準を上記コントリビューションスタックから消去するステップを更に有する請求項２０乃至２３いずれか１項記載のデータベースクエリ設定方法。
【請求項２５】
上記現在の情報状態を導出する際に無効にした検索基準を上記コントリビューションスタック内に維持するステップを更に有する請求項２０乃至２３いずれか１項記載のデータベースクエリ設定方法。
【請求項２６】
データベースクエリ言語を含む人工言語に基づく会話型システムによって、上記検索基準を取得するステップを更に有する請求項１５乃至２５いずれか１項記載のデータベースクエリ設定方法。
【請求項２７】
自然言語による対話システムによって、上記少なくとも１人のユーザから検索基準を取得するステップを更に有する請求項１５乃至２５いずれか１項記載のデータベースクエリ設定方法。
【請求項２８】
請求項１乃至１４いずれか１項記載のデータベースクエリ設定装置の機能を実現し、又はコンピュータ、デジタルシグナルプロセッサ又はこれに類する装置上で実行されて、請求項１５乃至２７いずれか１項記載のデータベースクエリ設定方法を実行するプログラムを有するコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データベースクエリを設定するために一組の検索基準を組み合わせるデータベースクエリ設定装置及び一組の検索基準を組み合わせることによりデータベースクエリを設定するクエリ設定方法に関する。
【背景技術】
【０００２】
データベースにアクセスするための対話システムにおいて、ユーザは、主に、データベースに要求するための検索基準を指定する。これには検索基準の指定だけではなく、検索条件の変更又は緩和も含まれる。従来、対話システムによって達成されている事柄に関する情報は、情報状態と呼ばれ、この特定の設定において、情報状態は、検索基準を含む。音声認識及び言語理解において十分な認識率を得るために及び新たに追加された情報を対話システムに統合するためには、対話システムは、ユーザによって与えられた情報を制限及び構造化する必要がある。この目的のために、所定の情報のユニット間で成立する従属関係を反映したデータの階層化が必要である。
【０００３】
最新の殆どの対話システムでは、領域（domain）の構造からこのような階層を検索する。構造が明確でないタスク（Ill-structured tasks, Bernsen, N. O. and Dybkjaer, L.: From single word to natural dialogue. Invited book chapter in Zelkowitz, M. V. (Ed.): Advances in Computers, vol. 52 .London : Academic Press 2000, 267-327, section 3.9.2）は、自然に特定の構造を提供しない領域を探索する。対話システムがこのような構造が明確でないタスクを対処する必要がある場合、最新の対話システムは、領域上に不自然な階層を強制し、この階層を通じて自分の道を検出するようにユーザを補助するか（TrindiKit: Staffan Larsson, Robin Cooper, Stina Ericsson (2001) : menu2dialog. In Jokinen (Ed.) : Knowledge and Reasoning in Practical Dialogue Systems, Workshop Program, IJCAI-2001）、又は段階的手法（incremental approach, Embassi: Bernd Ludwig, Gunther Gorz, Heinrich Niemann, An Inference-based Approach to the Interpretation of Discourse, Special Issue of the Journal of Language and Computation, Volume 1, Number 2, 2000, pp. 241-258）をとる。
【０００４】
この段階的手法は、現在の（更新されていない）情報状態に基づいて、現在の情報状態に加えられた全ての新たな情報を分類する。この手法は、不自然な階層を仮定していない。したがって、更なる処理において、情報状態の一部だけが上書きされると、最新の情報は、情報状態の全体によって決まり、また、その部分によって決まるので、削除される。この振る舞いは、情報状態の履歴を保つことによって実現さるため、前の情報状態が復元されると、後に加えられた全ての情報が失われる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の目的は、検索条件の緩和を可能にし、より柔軟にデータベースクエリを実行するために一組の検索基準を組み合わせることである。
【課題を解決するための手段】
【０００６】
本発明の目的は、請求項１に定義された、一組の検索基準を組み合わせて、データベースクエリを設定するデータベースクエリ設定装置及び請求項１５に定義された、一組の検索基準を組み合わせて、データベースクエリを設定するデータベースクエリ設定方法によって達成される。これらの好ましい実施形態は、従属請求項においてそれぞれ定義されている。また、本発明に基づくコンピュータプログラム製品は、請求項２８において定義されている。
【０００７】
本発明に基づくデータベースクエリ設定装置では、データベースクエリを設定するために、一組の検索基準を組み合わせる。データベースクエリ設定装置は、少なくとも１人のユーザ又はシステム自体によって指定された検索基準を発生順に格納するコントリビューションスタックを備える。コントリビューションスタックには、ユーザ又はシステムによってによって提供される少なくとも１つの新たな検索基準がそれぞれプッシュされる。更に、データベースクエリ設定装置は、コントリビューションスタックから、コントリビューションスタックに含まれている一組の検索基準の部分集合から形成される現在の情報状態を導出する情報導出手段を備える。現在の情報状態は、データベースにアクセスするために使用される。
【０００８】
従来の解決法においては、ユーザによって提供された様々な検索基準は、直ちに組み合わされて、情報状態が形成され、この情報状態に基づいて、データベースへのアクセスが行われる。情報状態が形成されると、ユーザが検索基準を入力した順番に関する情報は失われる。すなわち、ユーザ入力の順番によって定義された階層は、利用できなくなる。本発明では、この検索基準が提供された順番に関する情報を維持するために、検索基準を格納するコントリビューションスタックを用いる。属性、キーワード又は他の種類の検索基準がユーザによって入力されると、この検索基準は、コントリビューションスタックにプッシュされる。一組の検索基準が入力された後には、最も古い検索基準がコントリビューションスタックの最下段に位置することになる。一方、新たにコントリビューションスタックにプッシュされ、新たに入力された検索基準は、コントリビューションスタックの最上段に位置することになる。このようにしてコントリビューションスタック内のエントリの順番は、検索基準の発生順に対応する。これは、１人のユーザだけではなく、複数のユーザによって、又は一部がユーザにより、一部がシステム自体によって検索基準が指定された場合にも有効である。本発明によって、ユーザは、先に行った指定に制約されることなく自由な入力を行うことができる。
【０００９】
現在の情報状態は、コントリビューションスタック内のエントリから導かれる。この現在の情報状態は、実際にデータベースにアクセスするために用いられる。もちろん、コントリビューションスタック内のエントリの全体集合に基づいて現在の情報状態を形成することもできる。ここで、以前に入力された全ての検索基準を組み合わせることにより、クエリの結果は狭くなり、データベース内のヒット件数は、非常に少なくなり、又はゼロになる場合がある。このような場合、検索結果は、ユーザにとって余り価値がないものとなる。
【００１０】
このような状況では、ヒット件数を増やすために、検索条件を緩和することが望ましい。価値ある検索結果を得るためには、クエリがユーザが探そうとしているものを反映している状態を維持しながら、検索条件を緩和する効果的な緩和方策を用いることが非常に重要である。検索条件を緩和するためには、現在の情報状態を形成する際に、コントリビューションスタック内の１つ以上のエントリを省略することが必要である。すなわち、クエリの範囲を広くすることは、コントリビューションスタックに含まれる検索基準の組の部分集合を選択することを意味する。本発明に基づくコントリビューションスタックを用いることによって、検索基準が提供された順番を考慮した緩和方策を定義することが可能である。例えば、緩和方策は、現在の情報状態を導出する際に、コントリビューションスタックの最下段にある最も古い検索基準を無視することであってもよい。従来の解決法では、検索基準の発生順番を追跡することはできず、したがって、この順番に基づいて検索条件を緩和することはできない。
【００１１】
なお、検索基準の最初の組を緩和することによって設定されたクエリも成功しない場合がある。コントリビューションスタックの初期のエントリがまだ利用可能であり、まだ消去されていない場合、検索基準の最初の組から第２の現在の情報状態を形成することができ、この情報状態から、異なる緩和方策を用いることができる。この第２の現在の情報状態を用いてデータベースにアクセスすることにより、第２のクエリが有効な結果をもたらす可能性がある。
【００１２】
好ましくは、少なくとも１人のユーザ又はシステムが検索基準を指定した順番に基づいて、検索基準間の従属関係の階層を決定する。本発明に基づく解決法では、異なる検索基準と検索属性との間の従属関係に対する予め定義された階層は使用しない。これに代えて、従属関係の階層は、ユーザ入力によって動的に定義される。すなわち、検索基準の階層は、ユーザが様々な検索基準を入力した順番に基づいて定義される。最初に提供される検索基準は、この階層の最も上位レベルに設定される。そして、その後に入力される全ての検索基準がこの検索基準に従属する。このように、検索基準間の従属関係は、発生の順番によって定義される。
【００１３】
本発明の好ましい実施形態では、新たな検索基準が指定される都度、新たな検索基準が、コントリビューションスタックに格納されている以前の検索基準によって既に指定された属性に言及しているか否かを調べる。特定のクエリに対しては、各検索属性を１回だけ指定すればよい。ユーザが、特定の検索属性に対して、２つの異なる指定を行うと、これらの２つの指定は互いに矛盾する。この場合、検索基準は、一貫性を有さなくなる。例えば、ドイツ文学についてクエリを実行する場合、検索属性「作者」を２回以上指定することは意味がない。ユーザが２回目の検索属性の指定を行った場合、データベースクエリ設定装置は、ユーザが先に指定した検索基準を修正することを望んでいると解釈する。このため、新たな検索基準が提供される都度、この新たな検索基準が既に指定された属性に言及しているか否かを調べる必要がある。
【００１４】
新たな検索基準が、コントリビューションスタックに格納されている以前の検索基準によって既に指定された属性に言及している場合、以前の検索基準をコントリビューションスタックから消去し、新たな検索基準をコントリビューションスタックにプッシュすることが望ましい。これは、以前に指定された検索属性を上書きする第１の手法である。一貫性を有するクエリを設定するために、コントリビューションスタック内の何れかの位置に格納されている以前の検索基準が消去される。新たな検索基準は、コントリビューションスタックにプッシュされる。以前の検索基準と新たな検索基準の間の位置に格納されている全ての検索基準が維持される。したがって、上書きを行う第１の手法では、これらの中間のエントリは失われない。他の利点は、新たな検索基準が、この新たな検索基準の発生順番に対応するコントリビューションスタック内の位置に書き込まれるということである。
【００１５】
これに代えて、新たな検索基準が、コントリビューションスタックに格納されている以前の検索基準によって既に指定された属性に言及している場合、以前の検索基準及びコントリビューションスタックに後にプッシュされた全ての検索基準を、コントリビューションスタックから削除し、新たな検索基準をコントリビューションスタックにプッシュしてもよい。これは、以前に指定された検索属性を上書きする第２の手法である。この場合も、以前の検索基準は、コントリビューションスタックから消去され、新たな検索基準がコントリビューションスタックにプッシュされる。この第２の手法では、以前の検索基準と新たな検索基準間の中間のエントリは、既に有効でなくなった以前の検索基準に依存しているので消去される。ユーザによって指定された検索基準は、上述した検索基準が格納されているスタック位置に書き込まれる。そして、これ以降にユーザ又はシステムによって指定された検索基準が、連続したスタック位置に埋め込まれる。このような手法により、中間的なスタックエントリは、消去される。
【００１６】
好ましくは、データベースクエリ設定装置は、現在の情報状態を導出する際、コントリビューションスタックに含まれている検索基準の組における少なくとも１つの検索基準を無効にして、データベースクエリの検索条件を緩和する緩和手段を更に備える。クエリが余りに多くの検索基準を含む場合、非常に限られた検索結果しか得られない。この場合、現在の情報状態を形成する際に、１つ以上の検索基準を無効にすることが有効である。これは、必ずしも、無効にされた検索基準をコントリビューションスタックから消去することを意味しない。検索条件が緩和されると、システムは、各データベースにおけるより広い範囲をユーザに提示する。
【００１７】
好ましくは、データベースクエリの検索条件を緩和する緩和手段は、発生順に、及び／又はユーザプロファイルに基づいて、及び／又はコンテキスト情報に基づいて、無効にする検索基準を選択する。これらの側面の幾つか又は全てに基づいて、検索結果がユーザのニーズと期待に沿うように、検索条件を緩和することができる。緩和方策は、検索基準の発生順、ユーザのプロファイル及びこれまでに得られたコンテキスト情報を考慮して設定することができる。
【００１８】
好ましくは、現在の情報状態を導出する際、コントリビューションスタックに格納されている少なくとも最も新しい検索基準を無効にする。ここでは、無効にされる検索基準は、発生の順番に基づいて選択され、すなわち、最も新しくコントリビューションスタックにプッシュされた検索基準が無効にされる。この場合、ユーザの最後の入力は、最も関連性がない入力であるとみなす。
【００１９】
これに代えて又はこれに加えて、現在の情報状態を導出する際、コントリビューションスタックに格納されている少なくとも最も古い検索基準を無効にしてもよい。ここでも、検索条件の緩和は、検索基準の発生の順番に基づいて行われる。最も古い検索基準は、従属関係階層の最も上位のレベルに対応するが、ユーザがこの検索基準を入力した時期は古く、既にこの検索基準を入力したことすら覚えていないかもしれない。この場合、このようなユーザの記憶の不確かさにより、新たに指定された検索基準の方が重要度が高いと判定する。
【００２０】
本発明の好ましい実施形態では、現在の情報状態を導出する際に無効にされる検索基準は、コントリビューションスタックから消去される。この実施形態では、現在の情報状態に基づいて実行されたクエリは、コントリビューションスタックの状態に対応する。現在の情報状態と、コントリビューションスタックの両方において、選択された検索基準が消去される。これにより、ユーザは、コントリビューションスタックにプッシュされる新たな検索基準を指定することができる。
【００２１】
本発明の他の好ましい実施形態では、現在の情報状態を導出する際に無効にされる検索基準は、クエリが許容できる結果を生じたと判明した場合にのみ、コントリビューションスタックから消去される。緩和方策が満足できる結果をもたらすか否かが明らかになるまでは、全ての検索基準がコントリビューションスタック内に維持される。選択された緩和方策が成功しなかった場合、他の緩和方策を試すことができる。この第２の緩和方策では、第１の手法において無効にされた検索基準が、再び必要となることがある。したがって、これらの検索基準を余り早く消さないことが有益である。
【００２２】
本発明の第３の好ましい実施形態では、現在の情報状態を導出する際に無効にされる検索基準は、コントリビューションスタック内に維持される。この手法では、ユーザによって指定された全ての入力情報が、常に入力順に使用可能であり、如何なる情報も無くならない。このユーザ入力からいつでも、必要な如何なる現在の情報状態も導出することができる。
【００２３】
好ましくは、検索基準は、データベースクエリ言語を含む人工言語に基づく会話型システムによって得られる。このようなデータベースクエリ言語の簡単な具体例としては、データベースに対応する属性と値の対のみからなる言語がある。
【００２４】
これに代えて、自然言語による対話システムによって、少なくとも１人ユーザから検索基準を取得してもよい。ユーザは、自然言語を入力することによってクエリの検索基準を指定する。この場合、ユーザは、非常に高い自由度でクエリを指定することができる。特に、ある種の音声認識を用いた音声言語システムでは、ユーザ入力の取得には、自然言語による対話方式が適している。
【００２５】
また、本発明は一組の検索基準を組み合わせることによって、データベースクエリを設定するデータベースクエリ設定方法を提供する。最初のステップにおいて、少なくとも１人のユーザ又はシステム自体によって提供される検索基準をコントリビューションスタックに発生順にプッシュする。次のステップにおいて、コントリビューションスタックから、コントリビューションスタックに含まれている一組の検索基準の部分集合から形成される現在の情報状態を導出する。次に、現在の情報状態に対応するデータベースクエリを設定する。
【発明を実施するための最良の形態】
【００２６】
以下、幾つかの実施形態によって本発明を説明する。以下では、音声対話システムを介して、音楽タイトルデータベースにアクセスする具体例を説明する。このデータベース内の各アイテムに対しては、一組の属性が与えられている。この具体例では、ジャンル、アーチスト、期間、曲の種類及びタイトル名を示す属性を設ける。音楽タイトルデータベース内の各アイテムのそれぞれの属性は、指定されてデータベース内に格納される。
【００２７】
図１は、本発明に基づくコントリビューションスタック（contribution stack）１を示している。ここで、ユーザがクエリの設定を開始するとする。ここでは、異なる属性（ジャンル、アーチスト、期間、曲の種類、タイトル名）の階層は、予め定義されておらず、したがって、ユーザは、自らが望むあらゆる属性も指定することができる。この具体例では、ユーザは、まず、自らがウィントン・マルサリス（Wynton Marsalis）の曲に興味を持っていることを指定する。これにより、図１に示すように、検索基準（search criteria）「アーチスト：ウィントン・マルサリス」がコントリビューションスタック１にプッシュされる。したがって、コントリビューションスタック１の最下段のエントリ２は、検索基準「アーチスト：ウィントン・マルサリス」を含む。クエリの設定を続けるためにユーザは、次に、自らがジャズのジャンルに興味を持っていることを指定する。これにより、検索基準「ジャンル：ジャズ」が更なるエントリ３としてコントリビューションスタック１にプッシュされる。異なる検索基準間の階層は、ユーザが一連の入力を行っている間に、動的に定義される。様々な検索基準間の従属関係の階層は、これらの検索基準がユーザによって指定された順番によって決まる。このため、検索基準「ジャンル：ジャズ」は、検索基準「アーチスト：ウィントン・マルサリス」に依存する。
【００２８】
この具体例では、ユーザによる次の入力は、「期間：１９６０〜１９６９」である。属性「期間」は、これまで、如何なる検索基準によっても指定されておらず、したがって、矛盾は生じない。したがって、新たな検索基準「期間：１９６０〜１９６９」は、コントリビューションスタック１にエントリ４としてプッシュされる。次に、ユーザは、曲の種類「バラード」に興味を持っていることを指定する。ここで、音声対話システムは、既に属性「曲の種類」が指定されているか否かを調べる。この属性がまだ指定されていない場合、検索基準「曲の種類：バラード」は、コントリビューションスタック１にエントリ５としてプッシュされる。図２には、エントリ２、３、４、５を有するコントリビューションスタック１を示している。
【００２９】
ユーザは、更にクエリの設定を続け、次の検索基準として、「期間：１９７０〜１９７９」を指定する。データベースクエリ設定装置（database query set-up unit）は、属性「期間」が、既に指定されているか否かを調べ、ここで、「期間：１９６０〜１９６９」がエントリ４に関連する期間として既に指定されていることを検出する。属性「期間」に関する２つユーザ入力は矛盾し、したがって、クエリは、一貫性を欠くものとなる。この矛盾を解決するために、音声認識システムは、ユーザによる最も最新の入力がユーザの興味を表しているものとみなす。したがって、ユーザは、１９６０〜１９６９年の曲には、既に興味を持っておらず、これに代えて、１９７０〜１９７９年の曲に興味を持っているものとみなされる。したがって、検索基準「期間：１９６０〜１９６９」を含むエントリ４を書き換える必要が生じる。
【００３０】
図３Ａは、前のエントリを上書きする第１の手法を示している。この手法では、属性「期間：１９６０〜１９６９」が設定されたエントリ４は、コントリビューションスタック１から消去される。そして、新たな検索基準「期間：１９７０〜１９７９」がコントリビューションスタック１にエントリ６としてプッシュされる。前のエントリ４と新たなエントリ６の間には、中間のエントリ５「曲の種類：バラード」が存在している。このエントリ５は、コントリビューションスタック１から消去されたエントリ４に従属しているが、エントリ５は、コントリビューションスタック１内に維持される。この状態を図３Ａに示す。中間のエントリ５を維持することによって、ユーザは、属性「曲の種類」を再び指定する手間を省くことができる。また、図３Ａからわかるように、コントリビューションスタック１におけるエントリ２、３、５、６の順番は、ユーザが様々な検索基準を指定した時間的順番に対応したままである。
【００３１】
第２の手法では、前のエントリは、上書きされ、この前のエントリ４と、同じ属性「期間」を指定する新たなエントリとの間の全ての中間のエントリが消去される。このような処理を行う理由は、中間のエントリ、例えばエントリ５「曲の種類：バラード」が、消去すべきエントリ４「期間：１９６０〜１９６９」に依存しているからである。前のエントリを上書きする第２の手法では、全ての中間のエントリがコントリビューションスタックからポップアップ（pop）された後、上書きされるエントリがコントリビューションスタックからポップアップされる。これは、新たなエントリ６「期間：１９７０〜１９７９」をコントリビューションスタック１にプッシュする前に、エントリ５「曲の種類：バラード」と、エントリ４「期間：１９６０〜１９６９」との両方のエントリをコントリビューションスタック１からポップアップすることを意味する。前のエントリを上書きするこの第２の手法の後のコントリビューションスタック１の状態を図３Ｂに示す。上述した第１の手法と、前のエントリを上書きする第２の手法では、何れも、コントリビューションスタック１の一貫性を維持することができる。図３Ｂに示すように、エントリ２、３、６の順番は、時間的な対応関係を維持している。
【００３２】
図４は、コントリビューションスタック１に含まれるエントリ２、３、６を用いて、現在の情報状態（information state）をどのように導き出すかを説明する図である。エントリ２、３、６は、現在の情報状態を提供する情報導出器７に供給される。検索基準「アーチスト：ウィントン・マルサリス」、「ジャンル：ジャズ」、「期間：１９７０〜１９７９」は、情報導出器７によって組み合わされ、これにより、現在の情報状態８が生成される。この現在の情報状態８は、次に、実際に音楽タイトルデータベース内でクエリを実行するために用いられる。
【００３３】
ここで、検索条件「ウィントン・マルサリス、ジャズ、１９７０〜１９７９」を有するクエリでは、十分なヒット件数が得られなかったとする。この場合、これまでに準備された検索条件（search constraint）を緩和することによってクエリの範囲を広げなくてはならい。検索条件を緩和するためには、「アーチスト：ウィントン・マルサリス」、「ジャンル：ジャズ」及び「期間：１９７０〜１９７９」のうちの１つ以上の検索基準を無効にする（suppressed）必要がある。
【００３４】
検索条件をどのように緩和するかについて、図５を用いて説明する。始めは、コントリビューションスタック１には、エントリ２、３、６（「アーチスト：ウィントン・マルサリス」、「ジャンル：ジャズ」、「期間：１９７０〜１９７９」）が含まれている。これらのエントリ２、３、６は、情報状態導出器９に供給され、情報状態導出器９は、前のクエリが満足できる結果をもたらさなかった場合に検索条件を緩和する機能を含み、現在の情報状態を導出する。図５に示す具体例では、最も新しくコントリビューションスタック１にプッシュされたエントリを無効にする。すなわち、情報状態導出器９は、検索基準「期間：１９７０〜１９７９」を指定するエントリ６を無効にし、検索基準「ウィントン・マルサリス、ジャズ」を含む現在の情報状態１０を生成する。この検索基準の緩和された部分集合（subset）によって、新たなクエリが実行される。これにより、より良い結果が得られる可能性が高くなる。
【００３５】
現在の情報状態を生成する場合にエントリを無効にするということは、必ずしも各エントリ、図５に示す具体例では、エントリ６をコントリビューションスタック１から消去することは意味しない。クエリが成功しなければ、異なる現在の情報状態を生成するためにエントリ６が必要となることがあるので、エントリ６「期間：１９７０〜１９７９」の消去は、クエリが成功したと判明するまで延期できる。もちろん、クエリと基礎になるコントリビューションスタック１とを一致させるために、エントリ６を直ちに消去してもよい。第３の手法では、コントリビューションスタック１において、エントリ６を維持する。この場合、コントリビューションスタック１は、常に、ユーザ入力を時間順に含んでおり、異なる現在の情報状態を生成するために、繰り返してアクセスすることができる。
【００３６】
図６Ａに示す実施形態では、検索条件を緩和する異なる手法が用いられている。ここでも、コントリビューションスタック１は、検索基準「アーチスト：ウィントン・マルサリス」、「ジャンル：ジャズ」「期間：１９７０〜１９７９」の３つのエントリ２、３、６を含んでいる。これらのエントリ２、３、６は、検索条件を緩和する機能を有し、現在の情報状態を導出する情報状態導出器１１に供給される。図６Ａに示す実施形態では、コントリビューションスタック内の最も古いエントリを無視するため、異なる緩和方策（strategy）が用いられる。ここでは、エントリ２「アーチスト：ウィントン・マルサリス」が無効にされ、現在の情報状態１２は、検索エントリ３、６に含まれている検索基準「ジャズ、１９７０〜１９７９」からなる。
【００３７】
図６Ｂに示すコントリビューションスタック１の状態では、無効にされたエントリ２は、コントリビューションスタック１内に維持されている。図６Ｃは、無効にされたエントリ２がコントリビューションスタック１から消去されたコントリビューションスタック１の状態を示している。
【００３８】
包括的には、コントリビューションスタック１内の検索基準によって定義されるクエリの範囲を広くするために如何なる緩和方策を用いてもよい。例えば、最新のエントリ（図５参照）又は最も古いエントリ（図６Ａ参照）等、如何なるエントリを無効にしてもよい。何れの場合も、無効にされるエントリは、そのエントリがユーザによって指定された順番に基づいて、選択される。これらの手法は、この順番が既知の場合にのみ適用される。コントリビューションスタックを採用すれば、検索基準の発生の順番は、既知となる。
【００３９】
また、無効にするエントリを選択する際、ユーザのプロファイルと他の種類のコンテキスト情報を考慮してもよい。各緩和方策の目的は、ユーザによって最初に指定されたクエリが満足できる結果を生じなくても、そのユーザの意図に近いクエリの結果をユーザに提供することである。
【図面の簡単な説明】
【００４０】
【図１】本発明に基づくコントリビューションスタックを示す図である。
【図２】４つの検索基準を含むコントリビューションスタックを示す図である。
【図３Ａ】エントリを上書きする第１の手法に基づいて、エントリ４が上書きされた後のコントリビューションスタックを示す図である。
【図３Ｂ】エントリを上書きする第２の手法に基づいて、エントリ４が上書きされた後のコントリビューションスタックを示す図である。
【図４】コントリビューションスタックに含まれているエントリを用いて、現在の情報状態を導出する手法を説明する図である。
【図５】最新のエントリを無効にすることによって検索条件を緩和する手法を説明する図である。
【図６Ａ】最も古いエントリを無効にすることによって検索条件を緩和する手法を説明する図である。
【図６Ｂ】無効にされたエントリが維持される場合のコントリビューションスタックの状態を示す図である。
【図６Ｃ】無効にされたエントリがコントリビューションスタックから消去される場合のコントリビューションスタックの状態を示す図である。
【図１】
2005537576.tif 000003
【図２】
2005537576.tif 000004
【図３Ａ】
2005537576.tif 000005
【図３Ｂ】
2005537576.tif 000006
【図４】
2005537576.tif 000007
【図５】
2005537576.tif 000008
【図６Ａ】
2005537576.tif 000009
【図６Ｂ】
2005537576.tif 000010
【図６Ｃ】
2005537576.tif 000011
【国際調査報告】
2005537576.tif 000012
2005537576.tif 000013