(57)【要約】【課題】ユーザに不快感を与えずに、高速かつ効率的に所望の情報を検索できる情報検索システムを提供する。【解決手段】処理装置と、記憶装置と、表示装置と、入力装置と、を有する情報検索システムであって、前記記憶装置は、検索対象のデータを保持し、前記表示装置に表示される複数の質問と、前記各質問に対する複数の回答候補と、を対応付ける情報を含む質問生成ルールを保持し、前記処理装置は、前記質問生成ルールに基づいて、前記複数の質問のうち第１の質問及びそれに対応する前記複数の回答候補を選択し、前記表示装置は、前記第１の質問及びそれに対応する前記複数の回答候補を表示し、前記処理装置は、前記入力装置を介して前記複数の回答候補の一つを回答として選択されると、今回選択された前記回答と、今回以前に選択された回答との組み合わせを検索キーとして前記検索対象のデータを検索し、前記表示装置は、前記検索の結果を表示する。【選択図】図４
2013134755.tif 000002
【特許請求の範囲】
【請求項１】
処理装置と、前記処理装置に接続される記憶装置と、前記処理装置によって処理された情報を出力する表示装置と、前記処理装置によって処理される情報を入力する入力装置と、を有する情報検索システムであって、
前記記憶装置は、
検索対象のデータを保持し、
前記表示装置に表示される複数の質問と、前記各質問に対する複数の回答候補と、を対応付ける情報を含む質問生成ルールを保持し、
前記処理装置は、前記質問生成ルールに基づいて、前記複数の質問のうち第１の質問及びそれに対応する前記複数の回答候補を選択し、
前記表示装置は、前記第１の質問及びそれに対応する前記複数の回答候補を表示し、
前記処理装置は、前記入力装置を介して前記複数の回答候補の一つを回答として選択されると、今回選択された前記回答と、今回以前に選択された回答との組み合わせを検索キーとして前記検索対象のデータを検索し、
前記表示装置は、前記検索の結果を表示することを特徴とする情報検索システム。
【請求項２】
前記処理装置は、
前記第１の質問及びそれに対応する前記複数の回答候補を選択した後、今回選択された前記複数の回答候補の各々と、前回以前に選択された回答との組み合わせを検索キーとして前記検索対象のデータを検索し、
いずれかの組み合わせを検索キーとしたときに検索結果を得られず、それとは別の組み合わせを検索キーとしたときに一つ以上の検索結果を得られた場合、検索結果を得られた組み合わせに含まれる今回選択された回答候補を有効化し、
前記表示装置は、前記第１の質問及びそれに対応する前記複数の回答候補のうち有効化されたものを表示することを特徴とする請求項１に記載の情報検索システム。
【請求項３】
前記処理装置は、いずれの組み合わせを検索キーとしても検索結果を得られなかった場合、前記選択された第１の質問を無効化し、前記無効化された第１の質問以外の質問及びそれに対応する前記複数の回答候補を、新たな前記第１の質問及びそれに対応する前記複数の回答候補として選択し、
前記表示装置は、無効化されていない前記第１の質問、及び、それに対応する前記複数の回答候補のうち有効化されたものを表示することを特徴とする請求項２に記載の情報検索システム。
【請求項４】
前記処理装置は、
前記複数の回答候補の全ての組み合わせの各々を検索キーとして前記検索対象のデータを検索し、それによって得られた検索結果の数を絞り込み件数マップとして前記記憶装置に保持し、
前記第１の質問及びそれに対応する前記複数の回答候補を選択した後、今回選択された前記複数の回答候補の各々と、前回以前に選択された回答との組み合わせを検索キーとして前記検索対象のデータを検索したときに検索結果を得られるか否かを前記絞込み件数マップに基づいて判定し、
いずれかの組み合わせを検索キーとしたときに検索結果を得られず、それとは別の組み合わせを検索キーとしたときに一つ以上の検索結果を得られると判定された場合、検索結果を得られた組み合わせに含まれる今回選択された回答候補を有効化し、
前記表示装置は、前記第１の質問及びそれに対応する前記複数の回答候補のうち有効化されたものを表示することを特徴とする請求項１に記載の情報検索システム。
【請求項５】
前記処理装置は、いずれの組み合わせを検索キーとしても検索結果を得られないと判定された場合、前記選択された第１の質問を無効化し、前記無効化された第１の質問以外の質問及びそれに対応する前記複数の回答候補を、新たな前記第１の質問及びそれに対応する前記複数の回答候補として選択し、
前記表示装置は、無効化されていない前記第１の質問、及び、それに対応する前記複数の回答候補のうち有効化されたものを表示することを特徴とする請求項４に記載の情報検索システム。
【請求項６】
前記記憶装置は、前記複数の質問のうち第１の質問と、前記第１の質問に対応する前記複数の回答候補のうち第１の回答候補と、前記第１の回答候補が選択された場合に次に表示されるべき第２の質問と、を対応付ける質問親子関係ルールをさらに保持し、
前記処理装置は、前記第１の質問に対応する前記複数の回答候補のうち、前記第１の回答候補が回答として選択された場合、前記第２の質問及びそれに対応する前記複数の回答候補を選択し、
前記表示装置は、前記検索の結果と、前記選択された第２の質問及びそれに対応する前記複数の回答候補と、を表示することを特徴とする請求項１に記載の情報検索システム。
【請求項７】
前記質問生成ルールは、さらに、前記各質問の優先度を示す情報を含み、
前記処理装置は、前記第１の質問及びそれに対応する前記複数の回答候補を選択した後、前記優先度に基づいて前記複数の質問のうち第２の質問及びそれに対応する前記複数の回答候補を選択し、
前記表示装置は、前記検索の結果と、前記選択された第２の質問及びそれに対応する前記複数の回答候補と、を表示することを特徴とする請求項１に記載の情報検索システム。
【請求項８】
前記処理装置は、
前記複数の質問のうち、第１の優先度が付与され、かつ、まだ選択されていないものを前記第２の質問として選択し、
前記第１の優先度が付与され、かつ、まだ選択されていない質問がない場合には、前記複数の質問のうち、前記第１の優先度より一段階低い優先度が付与され、かつ、まだ選択されていないものを前記第２の質問として選択することを特徴とする請求項７に記載の情報検索システム。
【請求項９】
前記処理装置は、前記複数の質問のうち、第１の優先度が付与されたものを前記第１の質問として選択した場合、前記複数の質問のうち、前記第１の優先度又は前記第１の優先度より一段階低い第２の優先度のいずれかが付与され、かつ、まだ選択されていないものを前記第２の優先度として選択することを特徴とする請求項７に記載の情報検索システム。
【請求項１０】
前記記憶装置は、前記検索対象のデータに含まれる情報を、前記各回答候補に対応するように分類するための定義を含む検索データ生成ルールをさらに保持し、
前記処理装置は、
前記検索データ生成ルールに基づいて前記検索対象のデータを分類した結果を検索用データとして前記記憶装置に保持し、
前記入力装置を介して前記複数の回答候補の一つを回答として選択されると、今回選択された前記回答と、今回以前に選択された回答との組み合わせをキーとして、前記検索用データを検索し、検索された検索用データに対応する前記検索対象のデータを検索結果として取得することを特徴とする請求項１に記載の情報検索システム。
【請求項１１】
処理装置と、前記処理装置に接続される記憶装置と、前記処理装置によって処理された情報を出力する表示装置と、前記処理装置によって処理される情報を入力する入力装置と、を有する情報検索システムが実行する情報検索方法であって、
前記記憶装置は、
検索対象のデータを保持し、
前記表示装置に表示される複数の質問と、前記各質問に対する複数の回答候補と、を対応付ける情報を含む質問生成ルールを保持し、
前記情報検索方法は、
前記処理装置が、前記質問生成ルールに基づいて、前記複数の質問のうち第１の質問及びそれに対応する前記複数の回答候補を選択する第１手順と、
前記表示装置が、前記第１の質問及びそれに対応する前記複数の回答候補を表示する第２手順と、
前記入力装置を介して前記複数の回答候補の一つを回答として選択されると、前記処理装置が、今回選択された前記回答と、今回以前に選択された回答との組み合わせを検索キーとして前記検索対象のデータを検索する第３手順と、
前記表示装置が、前記検索の結果を表示する第４手順と、を含むことを特徴とする情報検索方法。
【請求項１２】
前記第１手順は、
前記処理装置が、今回選択された前記複数の回答候補の各々と、前回以前に選択された回答との組み合わせを検索キーとして前記検索対象のデータを検索する手順と、
いずれかの組み合わせを検索キーとしたときに検索結果を得られず、それとは別の組み合わせを検索キーとしたときに一つ以上の検索結果を得られた場合、前記処理装置が、検索結果を得られた組み合わせに含まれる今回選択された回答候補を有効化する手順と、を含み、
前記第２手順は、前記表示装置が、前記第１の質問及びそれに対応する前記複数の回答候補のうち有効化されたものを表示する手順を含むことを特徴とする請求項１１に記載の情報検索方法。
【請求項１３】
前記第１手順は、
いずれの組み合わせを検索キーとしても検索結果を得られなかった場合、前記処理装置が、前記選択された第１の質問を無効化する手順と、
前記処理装置が、前記無効化された第１の質問以外の質問及びそれに対応する前記複数の回答候補を、新たな前記第１の質問及びそれに対応する前記複数の回答候補として選択する手順と、を含み、
前記第２手順は、前記表示装置が、無効化されていない前記第１の質問、及び、それに対応する前記複数の回答候補のうち有効化されたものを表示する手順を含むことを特徴とする請求項１２に記載の情報検索方法。
【請求項１４】
前記情報検索方法は、前記処理装置が、前記複数の回答候補の全ての組み合わせの各々を検索キーとして前記検索対象のデータを検索し、それによって得られた検索結果の数を絞り込み件数マップとして前記記憶装置に保持する第６手順をさらに含み、
前記第１手順は、
前記処理装置が、今回選択された前記複数の回答候補の各々と、前回以前に選択された回答との組み合わせを検索キーとして前記検索対象のデータを検索したときに検索結果を得られるか否かを前記絞込み件数マップに基づいて判定する手順と、
いずれかの組み合わせを検索キーとしたときに検索結果を得られず、それとは別の組み合わせを検索キーとしたときに一つ以上の検索結果を得られると判定された場合、前記処理装置が、検索結果を得られた組み合わせに含まれる今回選択された回答候補を有効化する手順と、を含み
前記第２手順は、前記表示装置が、前記第１の質問及びそれに対応する前記複数の回答候補のうち有効化されたものを表示する手順を含むことを特徴とする請求項１１に記載の情報検索方法。
【請求項１５】
前記第１手順は、
いずれの組み合わせを検索キーとしても検索結果を得られないと判定された場合、前記処理装置が、前記選択された第１の質問を無効化する手順と、
前記処理装置が、前記無効化された第１の質問以外の質問及びそれに対応する前記複数の回答候補を、新たな前記第１の質問及びそれに対応する前記複数の回答候補として選択する手順と、を含み、
前記第２手順は、前記表示装置が、無効化されていない前記第１の質問、及び、それに対応する前記複数の回答候補のうち有効化されたものを表示する手順を含むことを特徴とする請求項１４に記載の情報検索方法。
【請求項１６】
前記記憶装置は、前記複数の質問のうち第１の質問と、前記第１の質問に対応する前記複数の回答候補のうち第１の回答候補と、前記第１の回答候補が選択された場合に次に表示されるべき第２の質問と、を対応付ける質問親子関係ルールをさらに保持し、
前記情報検索方法は、
前記第１の質問に対応する前記複数の回答候補のうち、前記第１の回答候補が回答として選択された場合、前記処理装置が、前記第２の質問及びそれに対応する前記複数の回答候補を選択する手順と、
前記表示装置が、前記検索の結果と、前記選択された第２の質問及びそれに対応する前記複数の回答候補と、を表示する手順と、をさらに含むことを特徴とする請求項１１に記載の情報検索方法。
【請求項１７】
前記質問生成ルールは、さらに、前記各質問の優先度を示す情報を含み、
前記情報検索方法は、
前記第１の質問及びそれに対応する前記複数の回答候補が選択された後、前記処理装置が、前記優先度に基づいて前記複数の質問のうち第２の質問及びそれに対応する前記複数の回答候補を選択する第５手順と、
前記表示装置が、前記検索の結果と、前記選択された第２の質問及びそれに対応する前記複数の回答候補と、を表示する手順と、を含むことを特徴とする請求項１１に記載の情報検索方法。
【請求項１８】
前記第５手順は、
前記処理装置が、前記複数の質問のうち、第１の優先度が付与され、かつ、まだ選択されていないものを前記第２の質問として選択する手順と、
前記第１の優先度が付与され、かつ、まだ選択されていない質問がない場合には、前記処理装置が、前記複数の質問のうち、前記第１の優先度より一段階低い優先度が付与され、かつ、まだ選択されていないものを前記第２の質問として選択する手順と、を含むことを特徴とする請求項１７に記載の情報検索方法。
【請求項１９】
前記第５手順は、前記複数の質問のうち、第１の優先度が付与されたものが前記第１の質問として選択された場合、前記処理装置が、前記複数の質問のうち、前記第１の優先度又は前記第１の優先度より一段階低い第２の優先度のいずれかが付与され、かつ、まだ選択されていないものを前記第２の優先度として選択する手順を含むことを特徴とする請求項１７に記載の情報検索方法。
【請求項２０】
前記記憶装置は、前記検索対象のデータに含まれる情報を、前記各回答候補に対応するように分類するための定義を含む検索データ生成ルールをさらに保持し、
前記情報検索方法は、前記処理装置が、前記検索データ生成ルールに基づいて前記検索対象のデータを分類した結果を検索用データとして前記記憶装置に保持する手順をさらに含み、
前記第３手順は、前記入力装置を介して前記複数の回答候補の一つを回答として選択されると、前記処理装置が、今回選択された前記回答と、今回以前に選択された回答との組み合わせをキーとして、前記検索用データを検索し、検索された検索用データに対応する前記検索対象のデータを検索結果として取得する手順を含むことを特徴とする請求項１１に記載の情報検索方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大量の情報の中から、ユーザが所望する情報を検索し、あるいは絞り込む情報検索システム及び情報検索方法に関する。
【背景技術】
【０００２】
従来の情報検索システムでは、ユーザが任意に検索条件を入力するか、あるいは、あらかじめ決められた項目の中から条件を選択することで、条件にあった情報を検索する。
【０００３】
しかしながら、ユーザが任意に検索条件を入力する場合、検索条件として何を入力すれば検索結果が適切に絞り込まれるのか判断することが困難なことが多く、検索条件を追加したり削除したりしながら検索を行い、検索結果が適切に絞り込まれるまで試行錯誤を繰り返していた。また、あらかじめ決められた項目の中から条件を選択する場合、選択する条件は画一的かつ一般的なものが多く、所望の検索対象に特化した項目を選択することが出来ないため、効果的に検索対象を絞り込むことが困難であった。
【０００４】
これらを鑑み、例えば特許文献１では、ユーザに対して質問とその質問に対する回答候補を提示し、ユーザからの回答に基づいて情報を検索あるいは絞り込んでいく情報処理装置及び情報処理方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−７６３６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
前述のとおり、特許文献１などの技術によれば、ユーザに対して質問とその質問に対する回答候補を提示し、ユーザからの回答に基づいて情報を検索あるいは絞り込んでいくことで、大量の情報の中からユーザが興味のある情報を効率的に検索あるいは絞り込むことが可能となる。
【０００７】
しかしながら、特許文献１などの技術では、ユーザの回答履歴に応じて質問の順序を制御するため、情報検索システムの処理量が多く、コストが高くなるという問題がある。また、特許文献１などの技術では、対話シナリオに基づいて質問順序を制御できるが、当該対話シナリオを作成することが困難であるという問題がある。また、特許文献１などの技術では、上述の通り対話シナリオによって、質問順序を制御できるが、質問に対する回答に起因する質問間の親子関係又は重要度を定義することが困難であり、結果的に質問間の親子関係又は重要度を考慮した効果的な質問と回答による情報の絞込みを行うシステムを構築することが困難であった。さらに、特許文献１などの技術では、検索対象の情報が、ユーザに提示される質問とその質問に対して得られる回答に応じた構成となっていないため、質問に対するユーザからの回答結果を元にして情報を検索する際には多くの時間を要してしまうという問題があった。さらに、特許文献１などの技術では、ユーザに対する質問とその質問の回答候補を提示するが、提示された質問及び回答候補を元に、ユーザが回答を行った結果、情報の検索あるいは絞り込み結果が０件となってしまうことを考慮しておらず、検索あるいは絞り込み結果が０件となってしまった場合に、ユーザが不快感を得てしまうという問題があった。
【０００８】
本発明の課題は、これらの問題を解決し、ユーザに対して質問とその質問に対する回答候補を提示し、ユーザからの回答に基づいて情報を検索あるいは絞り込んでいく情報検索システムにおいて、可能な限り処理量を抑えることで低コスト化を図ると共に、大量の情報の中からユーザが興味のある情報を可能な限り効率的に検索可能とする情報検索システムを提供することである。また、特に、可能な限り単純な構成で質問の重要度や親子関係に応じた質問順序を制御可能とすることが課題である。さらに、検索対象の情報を、ユーザに提示される質問とその質問に対して得られる回答に応じた構成とすることで、質問に対するユーザからの回答結果を元にして、高速に情報の検索を行うことが出来る情報検索システムを提供することが課題である。さらに、ユーザに対する質問とその質問の回答候補を提示する際、提示された質問及び回答候補を元に、ユーザが回答を行った結果、情報の検索あるいは絞り込み結果が０件となることのないようにすることで、ユーザが不快感を得ることのない情報検索システムを提供することが課題である。
【課題を解決するための手段】
【０００９】
本発明は、処理装置と、前記処理装置に接続される記憶装置と、前記処理装置によって処理された情報を出力する表示装置と、前記処理装置によって処理される情報を入力する入力装置と、を有する情報検索システムであって、前記記憶装置は、検索対象のデータを保持し、前記表示装置に表示される複数の質問と、前記各質問に対する複数の回答候補と、を対応付ける情報を含む質問生成ルールを保持し、前記処理装置は、前記質問生成ルールに基づいて、前記複数の質問のうち第１の質問及びそれに対応する前記複数の回答候補を選択し、前記表示装置は、前記第１の質問及びそれに対応する前記複数の回答候補を表示し、前記処理装置は、前記入力装置を介して前記複数の回答候補の一つを回答として選択されると、今回選択された前記回答と、今回以前に選択された回答との組み合わせを検索キーとして前記検索対象のデータを検索し、前記表示装置は、前記検索の結果を表示することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、コストを抑えて、高速かつ効率的にユーザの所望する情報を検索すると共に、ユーザの不満の少ない情報検索システムを提供可能となる。
【図面の簡単な説明】
【００１１】
【図１】本発明の第１の実施形態に係る情報検索システムのシステム構成の一例を示す図である。
【図２】本発明の第１の実施形態に係るサーバのハードウェア構成の一例を示す図である。
【図３】本発明の第１の実施形態に係る携帯端末のハードウェア構成の一例を示す図である。
【図４】本発明の第１の実施形態に係るサーバの機能ブロックの一例を示す図である。
【図５】本発明の第１の実施形態に係る携帯端末の機能ブロックの一例を示す図である。
【図６】本発明の第１の実施形態の検索対象ＤＢのデータ及びデータ構造の一例を説明する図である。
【図７】本発明の第１の実施形態に係る検索データ生成ルールのデータ及びデータ構造の一例を説明する図である。
【図８】本発明の第１の実施形態に係る検索ＤＢのデータ及びデータ構造の一例を説明する図である。
【図９】本発明の第１の実施形態に係る質問生成ルールのデータ及びデータ構造の一例を説明する図である。
【図１０】本発明の第１の実施形態に係る質問間親子関係ルールのデータ及びデータ構造の一例を説明する図である。
【図１１】本発明の第１の実施形態に係る質問ＤＢのデータ及びデータ構造の一例を説明する図である。
【図１２】本発明の第１の実施形態に係るサーバにおけるデータベース更新処理動作の一例を説明する動作フロー図である。
【図１３】本発明の第１の実施形態においてユーザが所望する情報を検索する際のサーバと携帯端末の動作の一例を説明する動作フロー図である。
【図１４Ａ】本発明の第１の実施形態に係るサーバにおけるリクエスト・レスポンス処理部の処理内容を説明する動作フロー図である。
【図１４Ｂ】本発明の第１の実施形態に係るサーバにおける質問・回答生成部の処理内容を説明する動作フロー図である。
【図１５】本発明の第１の実施形態に係る携帯端末における表示部を介して表示装置の表示画面に表示される画面例を示す図である。
【図１６】本発明の第２の実施形態に係るサーバの機能ブロックの一例を説明する図である。
【図１７】本発明の第２の実施形態に係る絞込み件数マップのデータ及びデータ構造の一例を説明する図である。
【発明を実施するための形態】
【００１２】
＜第１の実施形態＞
以下、本発明の第１の実施形態を、図面を参照して説明する。
【００１３】
なお、本実施形態において、実質的に同一の機能及び構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００１４】
まず、本実施形態に係る情報検索システムのシステム構成の一例について説明する。
【００１５】
図１は、本発明の第１の実施形態に係る情報検索システムのシステム構成の一例を示す図である。
【００１６】
本発明の情報検索システムは、サーバと、テレビ、ＰＣ、レコーダ、携帯電話、又は携帯端末などの単体あるいはこれらの組み合わせによって実現できるが、図１は、このうち特にサーバと携帯端末によって構成した例を示す。本実施形態においては便宜的に本発明の情報検索システムをサーバと携帯端末によって構成する例をもって説明する。
【００１７】
図１に示すとおり、本発明の実施形態に係る情報検索システムは、サーバ１０１と、ネットワーク１０２と、基地局１０３と、携帯端末１０４と、を有する。
【００１８】
サーバ１０１は、ネットワーク通信機能を持つ公知のコンピュータシステム等の情報処理装置とすることができ、携帯端末１０４からのリクエストを処理して、レスポンスを携帯端末１０４に送る。
【００１９】
携帯端末１０４は、ネットワーク通信機能を持つＰＤＡ（Ｐｅｒｓｏｎａｌ Ｄｉｇｉｔａｌ Ａｓｓｉｓｔａｎｃｅ）又は携帯電話等の公知の機器とすることができる。携帯端末１０４は、ユーザが操作することによってサーバ１０１に基地局１０３及びネットワーク１０２を介して接続し、ユーザが所望のサービスを受けるために、サーバにリクエストを送り、サーバ１０１からのレスポンスに対応して、ユーザに情報を提供する端末装置である。
【００２０】
ネットワーク１０２は、例えば、携帯電話網、又は、ＬＡＮ（Ｌｏｃａｌ Ａｒｅａ Ｎｅｔｗｏｒｋ）若しくはＷＡＮ（Ｗｉｄｅ Ａｒｅａ Ｎｅｔｗｏｒｋ）などのイントラネット網又はインターネット網であり、基地局１０３と協働してサーバ１０１と携帯端末１０４の間でリクエスト及びレスポンスデータの送受信を可能とする。
【００２１】
基地局１０３は、例えば、携帯電話網の末端装置又は無線ＬＡＮなどのアクセスポイント等であり、上述の通り、ネットワーク１０２と協働してサーバ１０１と携帯端末１０４の間でリクエスト及びレスポンスデータの送受信を可能とする。
【００２２】
本実施形態では、本システム構成において、特に、サーバ１０１が、情報検索に必要となるユーザに対する質問とその質問に対する回答候補を携帯端末１０４に送信し、携帯端末１０４が、ユーザからの回答をサーバ１０１に送信する。また、サーバ１０１が、携帯端末１０４から送信されたユーザからの回答を元に情報の検索及び絞り込み処理を行い、その検索及び絞り込み結果を携帯端末１０４に送信し、携帯端末１０４が、サーバ１０１から送信された情報の検索及び絞り込み結果を表示する。
【００２３】
次に、本発明の第１の実施形態に係るサーバ１０１及び携帯端末１０４のハードウェア構成の一例について説明する。
【００２４】
まずは、本実施形態に係るサーバ１０１のハードウェア構成の一例について説明する。
【００２５】
図２は、本発明の第１の実施形態に係るサーバ１０１のハードウェア構成の一例を示す図である。
【００２６】
既に上述したとおり、本実施例に係るサーバ１０１はネットワーク通信機能を持つ公知のコンピュータシステム等の情報処理装置とすることができるが、図２に示すとおり、少なくとも通信装置２０１と、中央処理装置２０２と、記憶装置２０３と、二次記憶装置２０４と、を有する。なお、各装置は、バス２０５によって接続され、各装置間で相互にデータの送受信が可能である。
【００２７】
通信装置２０１は、例えばＬＡＮカードなどのネットワークカードユニットとすることができ、サーバ１０１をネットワーク１０２に接続可能とする。
【００２８】
中央処理装置２０２は、マイクロプロセッサを主体に構成され、記憶装置２０３又は二次記憶装置２０４に格納されているプログラムを実行し、サーバ１０１における処理を制御する。
【００２９】
記憶装置２０３は、例えばランダムアクセスメモリ（ＲＡＭ）等によって実現され、中央処理装置２０２によって実行されるプログラム及び携帯端末１０４から受信したデータ等のサーバ１０１において処理されるデータ等を格納する。
【００３０】
二次記憶装置２０４は、例えばハードディスク装置又は不揮発性メモリ等とすることができ、検索対象の情報、当該検索対象の情報を含むデータベース又は後述の本情報検索システムで構築する各種データ及びデータベースを格納する。
【００３１】
次に、本実施形態に係る携帯端末１０４のハードウェア構成の一例について説明する。
【００３２】
図３は、本発明の第１の実施形態に係る携帯端末１０４のハードウェア構成の一例を示す図である。
【００３３】
既に上述したとおり、本実施形態に係る携帯端末１０４はネットワーク通信機能を持つＰＤＡ又は携帯電話等の公知の機器とすることができるが、図３に示すとおり、少なくとも通信装置３０１と、中央処理装置３０２と、入力装置３０３と、記憶装置３０４と、表示装置３０５と、を有する。なお、各装置は、バス３０６によって接続され、各装置間で相互にデータの送受信が可能である。
【００３４】
通信装置３０１は、例えば既に知られる携帯電話における携帯電話網接続モジュールとそのドライバ、又は、無線ＬＡＮ接続モジュールとそのドライバ等によって実現され、携帯端末１０４をネットワーク１０２に接続可能とする。
【００３５】
中央処理装置３０２は、マイクロプロセッサを主体に構成され、記憶装置３０４に格納されているプログラムを実行し、携帯端末１０４における処理を制御する。
【００３６】
入力装置３０３は、既に知られるＰＤＡ等におけるタッチパネル及びそのドライバ等によって構成され、ユーザが携帯端末１０４に対して動作指示を入力可能とする。本実施例では、特に、本入力装置３０３によって、ユーザが、情報の検索開始指示を入力したり、サーバ１０１から提示された質問の回答候補に対して回答を入力したりすることができる。
【００３７】
記憶装置３０４は、例えばランダムアクセスメモリ（ＲＡＭ）等によって実現され、中央処理装置３０２によって実行されるプログラム及びサーバ１０１から受信したデータ等の携帯端末１０４において処理されるデータ等を格納する。
【００３８】
表示装置３０５は、例えば既に知られるＰＤＡ等における液晶パネル及びそのドライバ等によって構成され、携帯端末１０４内の情報を表示する。本実施形態の表示装置３０５は、特に、後述のとおり、サーバ１０１から受信した質問とその回答候補、及び情報の検索結果を表示する。
【００３９】
次に、本発明の第１の実施形態に係るサーバ１０１及び携帯端末１０４の機能ブロックの一例について説明する。
【００４０】
まずは、本実施形態に係るサーバ１０１の機能ブロックの一例について説明する。
【００４１】
図４は、本発明の第１の実施形態に係るサーバ１０１の機能ブロックの一例を示す図である。なお、本実施形態においては、これらの機能ブロックの全てが中央処理装置２０２によって実行されるソフトウェアプログラムであるものとして説明するが、これらの機能ブロックの一部あるいは全ては、ハードウェアとして実現されてもよい。その場合、これらの機能ブロックを実現するための一つ以上の処理装置がサーバ１０１に追加され、記憶装置３０４等と接続されてもよいし、中央処理装置２０２がそのような一つ以上の処理装置によって置き換えられてもよい。また、本来は、これらの機能ブロックに加え、各機能ブロックの起動及び動作管理等を行うＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）及び制御プログラム等（図示省略）が存在する。本実施形態では、これらの機能ブロックの連係動作を適宜説明するが、ＯＳ及び制御プログラムがここで適宜説明された連係動作に必要となる機能ブロックの起動及び動作管理を行うことは自明であるので、これらＯＳ及び制御プログラムについては説明及び記載を省略する。
【００４２】
さて、本発明の実施例に係るサーバ１０１は、機能ブロックとして、図４に示すとおり、ＤＢ更新部４０１と、検索対象ＤＢ構築部４０２と、検索対象ＤＢ４０３と、質問生成ルール４０４と、質問間親子関係ルール４０５と、質問ＤＢ生成部４０６と、質問ＤＢ４０７と、検索データ生成ルール４０８と、検索ＤＢ生成部４０９と、検索ＤＢ４１０と、リクエスト・レスポンス送受信部４１１と、リクエスト・レスポンス処理部４１２と、質問・回答生成部４１３と、検索部４１４と、検索対象データ取得部４１５と、を有する。
【００４３】
ＤＢ更新部４０１は、検索対象の情報がユーザ又は管理者によって作成、更新、又は追加された際に、後述する検索対象ＤＢ構築部４０２、質問ＤＢ生成部４０６、及び、検索ＤＢ生成部４０９によって、後述する検索対象ＤＢ４０３、質問ＤＢ４０７、及び、検索ＤＢ４１０をそれぞれ作成、更新、又は追加する。
【００４４】
検索対象ＤＢ構築部４０２は、ＤＢ更新部４０１の指示によって起動し、作成、更新、又は追加された検索対象の情報を元に、後述する検索対象ＤＢ４０３を作成、更新、又は追加する。
【００４５】
検索対象ＤＢ４０３は、検索対象の情報を元に生成されたデータベースであり、請求項記載の検索対象データに相当する。なお、本検索対象ＤＢ４０３の詳細については後述する。
【００４６】
質問生成ルール４０４は、実際にユーザに提示される質問文などを含み、ユーザに対する質問とその回答候補を生成するためのルールであり、後述の質問ＤＢ４０７を生成するために、後述する質問ＤＢ生成部４０６によって参照される。なお、本質問生成ルール４０４の詳細については後述する。
【００４７】
質問間親子関係ルール４０５は、質問とその質問に対する回答候補を生成する際の質問間の親子関係を定義したルールであり、後述の質問ＤＢ４０７を生成するために、質問生成ルール４０４と共に、後述する質問ＤＢ生成部４０６によって参照される。本実施形態では、質問・回答生成部４１３が、本質問間親子関係ルール４０５に基づいて、質問間の親子関係を考慮した質問順序でユーザに対して質問を提示できるように、質問ＤＢ４０７を生成することができる。なお、本質問間親子関係ルール４０５については後述する。
【００４８】
質問ＤＢ生成部４０６は、ＤＢ更新部４０１の指示によって起動し、作成、更新、又は追加された質問生成ルール４０４及び質問間親子関係ルール４０５を元に、後述する質問ＤＢ４０７を作成、更新、又は追加する。
【００４９】
質問ＤＢ４０７は、ユーザに対する質問とそれに対する回答候補とを対応付けて格納したデータベースであり、後述する質問・回答データ生成手段に相当する質問・回答生成部４１３により参照され、これに基づいてユーザに対する質問とそれに対する回答候補が選択される。なお、本質問ＤＢ４０７の詳細については後述する。
【００５０】
検索データ生成ルール４０８は、請求項記載の検索データ生成ルールに相当し、後述する検索ＤＢ生成部４０９によって参照され、検索対象の情報を元に、後述する検索ＤＢ４１０を生成可能とする。なお、本検索データ生成ルール４０８の詳細については後述する。
【００５１】
検索ＤＢ生成部４０９は、ＤＢ更新部４０１の指示によって起動し、作成、更新、又は追加された検索対象の情報と、検索データ生成ルール４０８とを元に、後述する検索ＤＢ４１０を作成、更新、又は追加する。
【００５２】
検索ＤＢ４１０は、検索データ生成ルール４０８と検索対象の情報とを元に生成されたデータベースであり、後述する検索部４１４によって検索されるデータベースである。後述の通り、本検索ＤＢ４１０を質問ＤＢ生成部４０６で生成される回答に対応した検索用のデータ構造とすることで、検索部４１４は、ユーザが所望する情報を高速に検索可能となる。
【００５３】
なお、上記質問ＤＢ、検索ＤＢ、及び、検索対象ＤＢは、二次記憶装置２０４に構築され、それぞれ必要なときに記憶装置２０３に一時的に記憶されて使用されるように構成される。
【００５４】
リクエスト・レスポンス送受信部４１１は、携帯端末１０４からのリクエストデータ及び携帯端末へのレスポンスデータを通信装置２０１経由で送受信する。特に、サーバ１０１は、本リクエスト・レスポンス送受信部４１１によって、情報検索に必要となるユーザに対する質問とその質問に対する回答候補を携帯端末１０４に送信し、携帯端末１０４で取得したユーザからの回答を受信する。
【００５５】
リクエスト・レスポンス処理部４１２は、リクエスト・レスポンス送受信部４１１が送受信するデータ、すなわち、サーバ１０１と携帯端末１０４との間で送受信されるデータを処理する。具体的には、リクエスト・レスポンス処理部４１２は、携帯端末１０４で取得したユーザからの回答をリクエスト・レスポンス送受信部４１１経由で取得し、検索部４１４が検索ＤＢ４１０内の情報を検索する。そして、この検索結果の情報をキーとして、後述する検索対象データ取得部４１５が検索対象ＤＢ４０３から対応する情報を取得する。これによって実際の検索対象の情報からユーザの所望の情報が検索され、リクエスト・レスポンス処理部４１２は、その検索結果をリクエスト・レスポンス送受信部４１１経由で携帯端末１０４に送信する。
【００５６】
また、リクエスト・レスポンス処理部４１２は、後述する質問・回答生成部４１３で生成した情報検索に必要となるユーザに対する質問とその質問に対する回答候補をリクエスト・レスポンス送受信部４１１経由で携帯端末１０４に送信する。
【００５７】
質問・回答生成部４１３は、ユーザに対する質問とユーザからの回答候補を生成する。このとき、質問・回答生成部４１３は、詳細については後述するが、質問ＤＢ４０７から、質問の優先度及び質問間の親子関係に基づいて、１つの質問と回答候補を選択することで、ユーザに対する質問とユーザからの回答候補を生成する。
【００５８】
検索部４１４は、詳細は後述するが、リクエスト・レスポンス送受信部４１１とリクエスト・レスポンス処理部４１２によって取得したユーザからの回答を元に、検索ＤＢ４１０内の情報を検索する。
【００５９】
検索対象データ取得部４１５は、検索部４１４による検索ＤＢ４１０内の情報の検索結果をキーとして、検索対象ＤＢ４０３から対応する情報を取得することで、実際の検索対象の情報からユーザの所望の情報を検索する。このとき、検索対象データ取得部４１５は、携帯端末１０４から位置情報又は時刻情報を取得して、これらに基づいて、検索対象ＤＢ４０３から取得する情報をフィルタリングしてもよい。
【００６０】
次に、本実施形態に係る携帯端末１０４の機能ブロックの一例について説明する。
【００６１】
図５は、本発明の第１の実施形態に係る携帯端末１０４の機能ブロックの一例を示す図である。なお、本実施形態においては、これらの機能ブロックの全てが中央処理装置３０２によって実行されるソフトウェアプログラムであるものとして説明するが、これらの機能ブロックの一部あるいは全ては、ハードウェアとして実現されてもよい。また、本来は、これらの機能ブロックに加え、各機能ブロックの起動及び動作管理等を行うＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）及び制御プログラム等（図示省略）が存在する。本実施形態では、これらの機能ブロックの連係動作を適宜説明するが、ＯＳ及び制御プログラムがここで適宜説明された連係動作に必要となる機能ブロックの起動や動作管理を行うことは自明であるので、これらＯＳ及び制御プログラムについては説明及び記載を省略する。
【００６２】
図５に示すとおり、本発明の実施例に係る携帯端末１０４は、入力部５０１と、リクエスト・レスポンス送受信部５０２と、リクエスト・レスポンス処理部５０３と、表示部５０４と、を有する。
【００６３】
入力部５０１は、ユーザからの検索実行指示及び質問に対するユーザからの回答を入力する。これは、後述する表示部５０４によって表示装置３０５に表示された情報に対して、ユーザが入力装置３０３を操作した情報を取得することによって実現可能となる。
【００６４】
リクエスト・レスポンス送受信部５０２は、通信装置３０１を介して、サーバ１０１からのユーザに対する質問とその回答候補、及び、検索対象の情報の検索結果を受信する。また、入力部５０１によって取得したユーザからの検索実行指示又は質問に対するユーザからの回答を、通信装置３０１を介してサーバ１０１に送信する。
【００６５】
リクエスト・レスポンス処理部５０３は、リクエスト・レスポンス送受信部５０２で受信した、サーバ１０１からのユーザに対する質問とその回答候補及び検索対象の情報の検索結果を元に、図１６で例示する質問及び検索結果の出力画面を生成する。なお、本出力画面の詳細については後述する。
【００６６】
表示部５０４は、リクエスト・レスポンス処理部５０３で生成した質問及び検索結果の出力画面を表示装置３０５に表示する。
【００６７】
次に、本実施形態に係る情報検索システムで使用するデータ及びデータ構造について説明する。
【００６８】
まず、検索対象ＤＢ構築部４０２で生成され、検索対象データ取得部４１５で参照される検索対象ＤＢ４０３のデータ及びデータ構造について説明する。
【００６９】
図６は、本発明の第１の実施形態に係る検索対象ＤＢ４０３のデータ及びデータ構造の一例を説明する図であり、特に、検索対象の情報がレストランの情報である場合の一例である。
【００７０】
図６に示すとおり、検索対象ＤＢ４０３は、ＩＤ６０１と、店名６０２と、位置６０３と、説明６０４と、からなる。これら個々の情報はユーザ又は管理者が作成し、ＤＢ更新部４０１から入力される。
【００７１】
ＩＤ６０１は、レストランを一意に識別するための識別子であり、本検索対象ＤＢ４０３に含まれる、個々のレストラン固有のＩＤである。
【００７２】
店名６０２は、レストランの名称であり、店の名前である。
【００７３】
位置６０３は、レストランの所在地であり、店の住所である。
【００７４】
説明６０４は、レストランの説明であり、そのレストランの種類、料金（必要な予算）、又は駐車場の収容台数など、そのレストランの特徴及びアピールポイント等の売り文句又はキャッチフレーズなどである。
【００７５】
レコード６１１乃至６１３は、それぞれ、個々のレストランに関する情報を含む。すなわち、レコード６１１乃至６１３は、それぞれ、検索対象ＤＢ４０３におけるレコードであり、６０１乃至６０４が、フィールドとなっている。
【００７６】
本実施形態では、ユーザ又は管理者から、レストランの情報が入力され、それらがＤＢ更新部４０１によって検索対象ＤＢ構築部４０２に通知されると、検索対象ＤＢ構築部４０２が、対応するレコード及びフィールドの情報を検出して、各レコード及びフィールドのデータを作成、追加、又は更新することで検索対象ＤＢ４０３を構築する。
【００７７】
なお、図６には、上記のようにレストランに関する情報を含む検索対象ＤＢ４０３を例示し、以下の本実施形態の説明もこの例に沿って行う。これは、例えばこれから食事をしようとしているユーザがレストランを探すために本情報検索システムを使用することを想定した例である。しかし、本発明は、レストラン以外の対象、例えば、任意の店舗、施設又はイベント等に関する情報についても適用することができる。
【００７８】
次に、検索ＤＢ生成部４０９によって参照され、検索ＤＢ４１０を生成するための検索データ生成ルール４０８のデータ及びデータ構造について説明する。
【００７９】
図７は、本発明の第１の実施形態に係る検索データ生成ルール４０８のデータ及びデータ構造の一例を説明する図であり、特に、検索対象の情報がレストランの情報である場合の一例である。
【００８０】
図７に示すとおり、検索データ生成ルール４０８は、グループ名７０１と、属性７０２と、定義７０３と、からなる。これら個々の情報はユーザ又は管理者が定義する。
【００８１】
グループ名７０１は、検索対象の情報をグループ分けする際のグループ名であり、例えば、検索対象の情報がレストランに関する情報の場合、レストランが扱う料理の種別として「肉全般」又は「魚全般」、レストランでかかる大まかな予算として、「予算高」、「予算中」又は「予算低」等をグループ名として記述すればよい。これらは本検索データ生成ルール４０８を作成するユーザ又は管理者が任意に記述することができる。
【００８２】
属性７０２は、グループ名７０１のグループが属する属性であり、例えば、グループ名が「肉全般」又は「魚全般」等の場合には、属性７０２として「料理種類」等を記述し、グループ名が「予算高」、「予算中」又は「予算低」等の場合には、「予算」等を属性として記述すればよい。これらについてもユーザ又は管理者がグループ名７０１に記載したグループ名に基づいて任意の属性を記述すればよい。
【００８３】
定義７０３は、検索対象の情報、すなわち本例の場合、レストランに関する情報が、グループ名７０１に記載されたグループに属するための定義であり、レストランの説明（すなわち図６における説明６０４に記載されている説明文）からグループを判断するための定義である。
【００８４】
例えば、レコード７１１の場合、定義７０３として「焼肉  ｜  とんかつ  ｜  ・・・」を記載することで、レストランの説明に「焼肉」というキーワード又は「とんかつ」といったキーワードが含まれていた場合に、そのレストランに関する情報が「肉全般」というグループ名の情報に属することを定義している。また、レコード７１２では、レストランの説明に「寿司」というキーワード又は「刺身」といったキーワードが含まれていた場合に、そのレストランに関する情報が「魚全般」というグループ名の情報に属することを定義している。
【００８５】
同様に、レコード７１４、７１５、及び７１６では、レストランの説明に予算が書かれていて、この予算が５０００円以上の場合には、「予算高」のグループに、書かれていた予算が３０００円以上５０００円未満の場合には「予算中」のグループに、３０００未満の場合には「予算低」のグループに、当該レストランに関する情報が属することを定義している。
【００８６】
なお、本例では、定義７０３において、レストランの説明からキーワードを解析し、定義７０３で記述されたキーワードと照合して、検索対象の情報がグループに属するか否かを判断できるようにしているが、例えば、検索対象の情報がすでに料理種類又は予算等の属性又は識別子を持っている場合には、定義７０３において、これらを参照することによってグループを判断できるようにしてもよい。
【００８７】
次に、検索ＤＢ生成部４０９によって生成され、検索部４１４で参照される検索ＤＢ４１０のデータ及びデータ構造について説明する。
【００８８】
図８は、本発明の第１の実施形態に係る検索ＤＢ４１０のデータ及びデータ構造の一例を説明する図であり、特に、図７の検索データ生成ルール４０８に基づいた検索ＤＢ４１０の例である。
【００８９】
図８に示すとおり、検索ＤＢ４１０は、ＩＤ８０１と、属性８０２乃至８０６と、からなる。
【００９０】
ＩＤ８０１は、レストランを一意に識別するための識別子であり、レストランごとに図６の検索対象ＤＢ４０３におけるＩＤ６０１で記した個々のレストラン固有のＩＤと一致したＩＤである。
【００９１】
属性８０２乃至８０６には、検索データ生成ルール４０８の定義７０３として記載された各属性が列挙され、それぞれの属性値として、検索データ生成ルール４０８のグループ名を格納する。
【００９２】
検索ＤＢ４１０は、検索ＤＢ生成部４０９によって、ＤＢ更新部４０１経由で入力される検索対象の情報に対して、検索データ生成ルール４０８を参照して作成される。すなわち、検索ＤＢ生成部４０９は、まず、検索データ生成ルール４０８の属性７０２に記載されている全ての属性を検索ＤＢ４１０の属性８０２乃至８０６として列挙する。次に、検索ＤＢ生成部４０９は、ＤＢ更新部４０１で入力した各レストランの情報に対して、検索対象ＤＢ４０３で付したＩＤ６０１と同じＩＤをレコード８１１乃至８１３に付していく。当該ＩＤで識別される各レストランの説明（すなわち図６における説明６０４に記載されている説明文）の中に、検索データ生成ルール４０８における定義７０３が含まれていた場合に、検索ＤＢ生成部４０９は、対応する属性を示すフィールドに、定義７０３が該当したグループ名を記していく。このようにして、検索ＤＢ４１０が生成される。
【００９３】
これによって、例えば、図６におけるレコード６１１の情報が入力された場合には、図８におけるレコード８１１が生成される。具体的には、図６におけるレコード６１１の場合、ＩＤ「１」をＩＤ８０１に格納し、説明文「炭火で焼く焼肉屋。予算６０００円・・・」に、図７の検索データ生成ルール４０８におけるレコード７１１、７１４、及び７１７の定義７０３で定義されるキーワード（すなわち「焼肉」及び「予算６０００円」）が含まれるため、これらのレコードの属性である「料理種類」と、「予算」と、「肉料理」のフィールド（それぞれ図８におけるフィールと８０２、８０３、８０４）に、それぞれレコード７１１、７１４、及び７１７のグループ名７０１である「肉全般」、「予算高」、「焼肉」を格納することによってレコード８１１が完成する。検索ＤＢ生成部４０９は、これを全てのレストランについて実施することで、検索ＤＢ４１０を完成させる。
【００９４】
なお、図８に示す検索ＤＢ４１０は、検索対象ＤＢ４０３の検索を容易にするために作成されるものである。具体的には、検索対象ＤＢ４０３に含まれる情報を、検索データ生成ルール４０８に基づいて、回答候補に対応するように分類することによって、検索ＤＢ４１０が作成される。後述するように、検索ＤＢ４１０を対象として、ユーザによって選択された回答をキーとした検索が実行されるが、それによって得られた検索結果に対応する検索対象ＤＢ４０３のデータが最終的な検索結果として取得される。例えば、検索ＤＢ４１０の検索によってレコード８１１が取得された場合、それに対応するレコード６１１の情報が検索結果として取得される（図１４Ａのステップ１４０２、１４０３等参照）。
【００９５】
次に、質問ＤＢ生成部４０６によって参照され、質問ＤＢ４０７を生成するための質問生成ルール４０４のデータ及びデータ構造について説明する。
【００９６】
図９は、本発明の第１の実施形態に係る質問生成ルール４０４のデータ及びデータ構造の一例を説明する図であり、特に、検索対象の情報がレストランの情報である場合の一例である。
【００９７】
図９に示すとおり、質問生成ルール４０４は、質問名９０１と、優先度９０２と、質問文９０３と、回答候補９０４と、からなり、レコード９１１乃至９１５がそれぞれユーザに対する質問の内容を定義している。なお、これら個々の情報はユーザあるいは管理者が定義する。
【００９８】
質問名９０１は、ユーザに対する質問を一意に識別するための名称であり、本質問生成ルール４０４で定義する各質問及び後述する質問ＤＢ４０７における各質問を個別に識別するための識別子としても使用する。また、本質問名９０１は、検索データ生成ルール４０８における属性７０２と対応させ、この記述と一致させる。これによって、後述のとおり、検索部４１４がユーザからの質問に対する回答を元に検索ＤＢ４１０を検索することで、ユーザの回答に合った情報を高速に検索することが可能となる。
【００９９】
優先度９０２は、本質問生成ルール４０４で定義されるユーザに対する質問の優先度又は重要度を示す値であり、例えば数値が小さいほど優先度又は重要度が高いことを示している。本実施形態では、後述するとおり、質問・回答生成部４１３が、本優先度９０２で記載された優先度にしたがって、ユーザに対する質問を生成する。
【０１００】
なお、優先度９０２の値は、例えば、予め本情報検索システムの管理者等によって設定される。管理者等は、早い段階で提示したほうがよいと思われる質問（例えば、以後の質問の方向性を左右する重要な質問等）の優先度が高くなるように優先度９０２を設定することができる。複数の質問に同一の優先度が設定されてもよい。適切な優先度が設定されていれば、それに従ってユーザに対する質問を生成することによって、ユーザが所望する情報を的確に絞り込むことができ、それによってユーザの利便性が向上する。なお、優先度に基づく具体的な質問の生成・提示の手順については後述する（図１４Ｂ参照）。
【０１０１】
質問文９０３は、ユーザに提示される質問文である。後述するとおり、本実施形態では、質問文９０３で記載された文がユーザに提示されるように情報検索システムを構成する。
【０１０２】
回答候補９０４は、ユーザに提示される質問に対して、同時にユーザに提示される回答候補である。後述するとおり、本実施形態では、質問文９０３で記載された文がユーザに提示された際、同時に回答候補９０４で記載された回答候補又はその一部がユーザに提示されるように情報検索システムを構成する。ここで、本実施形態では、特に本回答候補９０４における「、」は複数回答候補がある場合のデリミタであり、さらに「；」の後ろがユーザに提示される回答候補文字列、「；」の前が回答に対応して検索する検索ＤＢ４１０のグループ名である。したがって、例えば、図９におけるレコード９１１の質問では、回答候補９０４として、「肉全般；肉、魚全般；魚、・・・」と記載されているが、これは、ユーザに対する「何をメインにする？」という質問文９０３に対して、「肉」及び「魚」等の回答候補文字列がユーザに提示されることを想定している。そして、例えばユーザから「肉」と回答されたとき（すなわち、肉が選択されたとき）、その回答のグループ名である「肉全般」と、質問名９０１に記載されている「料理種類」をキーとして、検索部４１４が検索ＤＢ４１０から検索することが可能である。すなわち、検索部４１４は、検索ＤＢ４１０の「料理種類」フィールド（図８におけるフィールド８０２）が「肉全般」となっているレコード（図８におけるレコード８１１）を検索することで、ユーザの回答に基づく情報を検索する。なお、検索部４１４における検索動作については後述する。
【０１０３】
次に、質問ＤＢ生成部４０６が質問ＤＢ４０７を生成するために参照する質問間親子関係ルール４０５のデータ及びデータ構造について説明する。
【０１０４】
図１０は、本発明の第１の実施形態に係る質問間親子関係ルール４０５のデータ及びデータ構造の一例を説明する図であり、特に、検索対象の情報がレストランの情報である場合の一例である。
【０１０５】
図１０に示すとおり、質問間親子関係ルール４０５は、親質問名１００１と、親質問回答１００２と、子質問名１００３と、からなり、これら個々の情報はユーザ又は管理者が定義する。
【０１０６】
親質問名１００１は、質問間の親子関係を定義する際の親の質問名であり、質問生成ルール４０４において、親の質問として定義する質問の質問名９０１と一致させる。
【０１０７】
親質問回答１００２は、親質問名１００１の質問がユーザに対して行われた際のユーザからの回答であり、質問生成ルール４０４における回答候補９０４と一致させる。
【０１０８】
子質問名１００３は、親質問名１００１の質問がユーザに対してなされ、親質問回答１００２の回答がユーザからなされたときに、次に質問すべき子質問の質問名であり、１０１１の例では、ユーザに「料理種類」の質問がされて、ユーザからの回答が「肉」であった場合に、次に「肉料理」の質問がなされることを示している。
【０１０９】
図１０に示す親子関係は、優先度９０２と同様に、管理者等によって予め設定される。親質問の回答が示すカテゴリをさらに細分化するような質問が子質問となるように親子関係が設定されることが望ましい。例えば、レコード１０１１に示すように親質問名「料理種類」に対する回答が「肉」（すなわち肉料理全般）であった場合の子質問「肉料理」は、「焼肉」、「とんかつ」といった、肉料理のカテゴリをさらに細分化する回答候補に対応する。このように設定された親子関係に従う順序で質問を提示することによって、質問の流れが自然になり、ユーザにストレスを感じさせずに所望の情報を絞り込むことができる。なお、親子関係に基づく具体的な質問の生成・提示の手順については後述する（図１４Ｂ参照）。
【０１１０】
本質問間親子関係ルール４０５及び先に示した質問生成ルール４０４に従って、質問ＤＢ生成部４０６が、後述する質問ＤＢ４０７を生成する。この質問ＤＢ４０７によって、後述の通り、質問・回答生成部４１３が、質問間の親子関係に沿った順序で質問をユーザに提示可能となる。
【０１１１】
次に、質問ＤＢ生成部４０６で生成され、質問・回答生成部４１３で参照される質問ＤＢ４０７のデータ及びデータ構造について説明する。
【０１１２】
図１１は、本発明の第１の実施形態に係る質問ＤＢ４０７のデータ及びデータ構造の一例を説明する図であり、特に、検索対象の情報がレストランの情報である場合の一例である。
【０１１３】
図１１に示すとおり、質問ＤＢ４０７は、質問名１１０１と、親質問名１１０２と、優先度１１０３と、質問文１１０４と、回答数１１０５と、回答候補とその回答候補がユーザから選ばれた場合の子質問名１１０６乃至１１０９と、からなる。これらは質問生成ルール４０４及び質問間親子関係ルール４０５を参照して、質問ＤＢ生成部４０６が生成する。
【０１１４】
質問名１１０１は、質問生成ルール４０４における質問名９０１であり、質問ＤＢ生成部４０６が本質問ＤＢ４０７を作成する際に、質問生成ルール４０４における質問名９０１を参照して生成する。
【０１１５】
親質問名１１０２は、質問名１１０１の質問に対する親質問が存在する場合の親質問名である。質問ＤＢ生成部４０６は、本質問ＤＢ４０７を作成する際に、質問名１１０１の質問名を、質問間親子関係ルール４０５の子質問名１００３から探し出し、これが見つかった場合に、その質問間親子関係ルール４０５における親質問名１００１を格納することで親質問名１１０２を生成する。なお、質問名１１０１の質問名が質問間親子関係ルール４０５の子質問名１００３に見つからなかった場合には空欄にして置けばよい。
【０１１６】
優先度１１０３は、質問生成ルール４０４における優先度９０２であり、質問ＤＢ生成部４０６が、本質問ＤＢ４０７を作成する際に、質問名１１０１に対応する質問名９０１の優先度９０２を格納することによって生成する。
【０１１７】
質問文１１０４は、質問生成ルール４０４における質問文９０３であり、質問ＤＢ生成部４０６が、本質問ＤＢ４０７を作成する際に、質問名１１０１に対応する質問名９０１の質問文９０３を格納することによって生成する。
【０１１８】
回答数１１０５は、ユーザに提示される回答候補の数であり、質問ＤＢ生成部４０６が本質問ＤＢ４０７を作成する際に、質問名１１０１に対応する回答候補９０４における回答候補数を数えて、その数を格納することによって生成する。特に、本実施形態の場合、図９で示したとおり、回答候補９０４は、「、」を各回答候補のデリミタとしているため、質問ＤＢ生成部４０６は、回答候補９０４の文字列を「、」によって分割した分割数を格納することによって生成できる。
【０１１９】
回答候補及び子質問名（図１１のフィールド１１０６乃至１１０９）は、それぞれユーザに対して提示される１つの回答候補とその回答候補が選ばれた際の子質問とのセットを回答数１１０５分並べた構成となっている。質問ＤＢ生成部４０６は、本質問ＤＢ４０７を作成する際に、質問名１１０１に対応する回答候補９０４におけるデリミタ「、」で分割された各回答候補を本回答候補１１０６等に格納するとともに、その回答候補を質問間親子関係ルール４０５の親質問回答１００２から探し出し、これが見つかった場合に、その質問間親子関係ルール４０５における子質問名１００３を子質問名１１０７等に格納することで、回答候補及び子質問名（フィールド１１０６乃至１１０９）を生成する。なお、回答候補に対する子質問が見つからなかった場合には、その回答候補に対応する子質問名のフィールドを空欄とすればよい。
【０１２０】
本質問ＤＢ４０７によって、後述するとおり、質問・回答生成部４１３がユーザに対する質問及び回答候補を生成することが出来るだけでなく、質問の順序も制御可能となる。
【０１２１】
次に、本発明の実施形態に係る情報検索システムの動作を説明する。
【０１２２】
本実施形態に係る情報検索システムにおいては、検索対象の情報が作成、追加、更新された場合、あるいは検索データ生成ルール４０８、質問生成ルール４０４、及び、質問間親子関係ルール４０５等のルールが作成、追加、更新された場合に、サーバ１０１が、検索対象ＤＢ４０３、質問ＤＢ４０７、及び、検索ＤＢ４１０を更新する。また、サーバ１０１と携帯端末１０４が連動してユーザが所望する情報を検索する。
【０１２３】
まず、サーバ１０１におけるデータベース更新処理動作を説明する。
【０１２４】
図１２は、本発明の第１の実施形態に係るサーバ１０１におけるデータベース更新処理動作の一例を説明する動作フロー図である。
【０１２５】
図１２（ａ）に示すとおり、サーバ１０１は、タイマ（図示省略）などによって定期的にＤＢ更新対象データがあるか否かを判断し（ステップ１２０１）、ＤＢ更新対象データがある場合に、ＤＢ更新部４０１を起動してＤＢを更新し（ステップ１２０２）、ＤＢ更新対象データが無い場合には、ＤＢ更新作業は行わない。なお、サーバ１０１は、検索対象の情報、検索データ生成ルール４０８、質問生成ルール４０４、又は、質問間親子関係ルール４０５のいずれかが作成、追加、又は更新された場合にＤＢ更新対象データがあると判断し、これらのいずれも作成、追加、又は更新されていない場合には、ＤＢ更新対象データが無いと判断する。
【０１２６】
ＤＢの更新はＤＢ更新部４０１を起動することで、図１２（ｂ）の通り実施される。また、本ＤＢ更新処理は、必ずしも定期的にＤＢ更新対象データがあるか否かを判断することで実施される必要は無い。例えば、管理者又はユーザによって、検索対象の情報、検索データ生成ルール４０８、質問生成ルール４０４、又は、質問間親子関係ルール４０５のいずれかが作成、追加、又は更新された場合にサーバ１０１がＤＢ更新部４０１を起動して本ＤＢ更新処理を実施してもよい。
【０１２７】
さて、本実施形態では、ＤＢ更新部４０１が起動されると、図１２（ｂ）に示すとおり、以下の処理が実行される。
【０１２８】
まず、サーバ１０１は、検索対象の情報が作成、追加、又は更新されたか否かを判断し（ステップ１２０３）、検索対象の情報が作成、追加、又は更新された場合には、検索対象ＤＢ構築部４０２を起動して、検索対象ＤＢ４０３を生成する（ステップ１２０４）。検索対象ＤＢ構築部４０２は、ＤＢ更新部４０１から、ユーザ又は管理者によって入力された各レストランのＩＤ６０１、店名６０２、位置６０３及び説明６０４に対応する情報を元に、これらを所定のフィールドに格納することで、検索対象ＤＢ４０３を構築する。なお、検索対象ＤＢ４０３を作成する際、例えば、検索対象の情報が追加又は更新された場合には、当該追加又は更新された情報に関してのみ検索対象ＤＢ４０３を追加あるいは更新すればよく、検索対象の情報が新たに作成された場合には検索対象の情報すべてについて検索対象ＤＢ４０３を生成すればよい。
【０１２９】
次に、ＤＢ更新部４０１は、検索対象の情報又は検索データ生成ルール４０８が作成、追加、又は更新されたか否かを判断し（ステップ１２０５）、これらのいずれかが作成、追加、又は更新された場合には、検索ＤＢ生成部４０９を起動して、検索ＤＢ４１０を生成する（ステップ１２０６）。
【０１３０】
検索ＤＢ生成部４０９は、ＤＢ更新部４０１から、ユーザ又は管理者によって入力された各レストランの情報と検索データ生成ルール４０８を元に検索ＤＢ４１０を生成する。具体的には、検索ＤＢ生成部４０９は、まず、検索データ生成ルール４０８の属性７０２に記載されている全ての属性を検索ＤＢ４１０の属性８０２乃至８０６として列挙し、次に、ＤＢ更新部４０１で入力した各レストランの情報に対して、検索対象ＤＢ４０３で付したＩＤ６０１と同じＩＤをレコード８１１乃至８１３のＩＤ８０１として付し、当該ＩＤで識別される各レストランの説明（すなわち図６における説明６０４に記載されている説明文）の中に、検索データ生成ルール４０８における定義７０３が含まれていた場合に、対応する属性を示すフィールドに、定義７０３が該当したグループ名を記していくことで、検索ＤＢ４１０を生成する。
【０１３１】
例えば、図６におけるレコード６１１の情報が入力された場合には、図８におけるレコード８１１が生成される。具体的には、図６におけるレコード６１１の場合、検索ＤＢ生成部４０９は、ＩＤ「１」をＩＤ８０１に格納する。説明文「炭火で焼く焼肉屋。予算6000円・・・」に、図７の検索データ生成ルール４０８におけるレコード７１１、７１４、及び７１７の定義７０３で定義されるキーワードが含まれるため、検索ＤＢ生成部４０９は、これらのレコードの属性である「料理種類」、「予算」及び「肉料理」のフィールド（それぞれ図８におけるフィールド８０２、８０３、８０４）に、それぞれレコード７１１、７１４、及び７１７のグループ名７０１である「肉全般」、「予算高」、及び「焼肉」を格納する。これによってレコード８１１が完成する。
【０１３２】
検索ＤＢ生成部４０９は、上記の処理を全てのレストランについて実施することで、検索ＤＢ４１０を完成させる。なお、検索ＤＢ４１０を作成する際、例えば、検索対象の情報が追加又は更新された場合には、当該追加又は更新された情報に関してのみ検索ＤＢ４１０を追加又は更新すればよいが、検索対象の情報が新たに作成された場合又は検索データ生成ルールが作成、追加、更新された場合には検索対象の情報すべてについて検索ＤＢ４１０を生成するとよい。
【０１３３】
続いて、ＤＢ更新部４０１は、質問生成ルール４０４、又は、質問間親子関係ルール４０５のいずれかが作成、追加、又は更新されたか否かを判断し（ステップ１２０７）、これらのいずれかが作成、追加、又は更新された場合には、質問ＤＢ生成部４０６を起動して、質問ＤＢ４０７を生成する（ステップ１２０８）。なお、質問ＤＢ生成部４０６は、以下の通り質問ＤＢ４０７を生成する。
（１）質問生成ルール４０４における質問名９０１を質問名１１０１に格納する。
（２）質問名１１０１の質問名を、質問間親子関係ルール４０５の子質問名１００３から探し出して、これが見つかった場合に、その質問間親子関係ルール４０５における親質問名１００１を親質問名１１０２に格納し、見つからなかった場合には親質問名１１０２を空欄とする。
（３）質問名１１０１に対応する質問名９０１の優先度９０２を優先度１１０３に格納する。
（４）質問名１１０１に対応する質問名９０１の質問文９０３を質問文１１０４に格納する。
（５）質問名１１０１に対応する回答候補９０４における回答候補数を数えて、その数を回答数１１０５に格納する。これは、本実施例の場合、回答候補９０４の文字列を「、」によって分割した分割数を回答数１１０５に格納することによって実現できる。
（６）質問名１１０１に対応する回答候補９０４における各回答候補の文字列を回答候補に格納するとともに、その回答候補を質問間親子関係ルール４０５の親質問回答１００２から探し出し、これが見つかった場合に、その質問間親子関係ルール４０５における子質問名１００３を子質問名に格納する。これは、本実施例の場合、デリミタ「、」で分割された回答候補毎に、回答候補１、回答候補２等に格納し、それらに対応する子質問名を子質問名１、子質問名２等に格納する。なお、回答候補に対する子質問が見つからなかった場合には、空欄とする。
【０１３４】
以上の処理を質問ＤＢ生成部４０６が質問生成ルール４０４における全ての質問名９０１に対して実施することで、質問ＤＢ４０７が生成できる。
【０１３５】
次に、サーバ１０１と携帯端末１０４が連動してユーザが所望する情報を検索する際のサーバ１０１と携帯端末１０４の動作を説明する。
【０１３６】
図１３は、本発明の第１の実施形態においてユーザが所望する情報を検索する際のサーバ１０１と携帯端末１０４の動作の一例を説明する動作フロー図である。なお、本情報検索システムでは、図１３に示す動作によって、ユーザに対する質問と回答候補の提示とユーザからの回答の入力を繰り返すことによって、検索対象の情報を検索して絞り込んでいく。
【０１３７】
図１３に示すとおり、本実施例に係る情報検索システムでは、まず、携帯端末１０４が、ユーザに提示された質問と、回答候補に対するユーザからの回答とを入力する。これは、携帯端末の表示部５０４及び表示装置３０５に表示された回答候補を、ユーザが入力装置３０３及び入力部５０１を介して選択し、当該入力装置３０３及び入力部５０１が、選択された回答候補を回答として取得することによって実現できる。ただし、最初の検索では、ユーザに提示される質問及び回答候補は存在せず、ユーザからの検索要求が入力される（ステップ１３０１）。なお、この際の表示画面の詳細については後述する。
【０１３８】
次に、携帯端末１０４のリクエスト・レスポンス処理部５０３は、ユーザに提示された質問とユーザが入力した回答をセットにして、サーバ１０１に対する検索リクエスト生成し、生成したリクエストを、リクエスト・レスポンス送受信部５０２及び通信装置３０１を介して、サーバ１０１に送信する（ステップ１３０２）。なお、携帯端末１０４のリクエスト・レスポンス処理部５０３は、１回目の検索では、（式１）の通り、空のリクエストを生成し、２回目以降の検索では、（式２）の通り、質問と回答のセットをつなげたリクエストを生成する。
【０１３９】
リクエスト＝“”                                      ・・・（式１）
リクエスト＝“２回目の質問名”＋“２回目の回答”＋
“３回目の質問名”＋“３回目の回答”＋
・・・                                  ・・・（式２）
例えば、２回目の質問名が「料理種類」で、その回答が「肉」の場合には、リクエスト・レスポンス処理部５０３は、「リクエスト＝“料理種類”＋“肉全般；肉”」というリクエストを生成し、３回目の質問名が「肉料理」で、その回答が「焼肉」の場合には、リクエスト・レスポンス処理部５０３は、「リクエスト＝“料理種類”＋“肉全般；肉”＋“肉料理”＋“焼肉；焼肉”」というリクエストを生成する。
【０１４０】
次に、サーバ１０１が、通信装置２０１及びリクエスト・レスポンス送受信部４１１を介して、携帯端末１０４からリクエストを受信する（ステップ１３０３）。サーバ１０１のリクエスト・レスポンス処理部４１２は、受信したリクエストを処理し、ユーザからの回答を基にした検索対象の情報に対する検索結果と、ユーザに対する次の質問と、回答候補と、を基にしたレスポンスを生成する（ステップ１３０４）。なお、本リクエスト・レスポンス処理部４１２の処理内容の詳細については後述するが、本リクエスト・レスポンス処理部４１２で生成したレスポンスは、例えば、（式３）の通りである。
【０１４１】
レスポンス＝“次の質問名”＋
“次の質問文”＋
“次の回答候補”＋
“今回の回答による検索結果”              ・・・（式３）
ここで、“次の質問名“は、例えば、「予算」等であり、”次の質問文は、“予算は？”等、図１１における質問ＤＢ４０７の質問名１１０１に対応する質問文１１０４である。また、“次の回答候補”は、図１１における質問ＤＢ４０７の質問名１１０１に対応する回答候補１〜ｎを「、」で接続した文字列であり、例えば「予算高；かなりある、予算中；普通」等である。また、“今回の回答による検索結果”は、検索結果の情報を文字列として接続したものであり、例えば、レストランに関する情報の場合、「＜検索結果１＞“レストランの情報”＜検索結果２＞レストランの情報＜検索結果３＞・・・・・」のように各検索結果のレストランの情報ごとにタグ付けしてそれらを接続した文字列である。
【０１４２】
続いて、サーバ１０１は、リクエスト・レスポンス送受信部４１１及び通信装置２０１を介して、リクエスト・レスポンス処理部４１２で生成したレスポンスを携帯端末１３０６に送信して（ステップ１３０５）、サーバ１０１による処理を終了する。
【０１４３】
一方、携帯端末１０４は、通信装置３０１及びリクエスト・レスポンス送受信部５０２を介して、サーバ１０１から送信されたレスポンスを受信する（ステップ１３０６）。リクエスト・レスポンス処理部５０３は、レスポンスに含まれる“今回の回答による検索結果”と“次の質問文”及び“次の回答候補”を携帯端末１０４の表示部５０４及び表示装置３０５に表示する（ステップ１３０７）。なお、“次の回答候補”を表示する際には、デリミタ「、」を検出することにより個々の回答候補に分割し、さらに、「；」の後の回答候補文字列のみを表示すると良い。なお、表示画面の一例については後述する（図１５参照）。
【０１４４】
続いて、携帯端末１０４は、表示部５０４及び表示装置３０５に表示された画面に基づいて、入力装置３０３及び入力部５０１を介して、ユーザから検索終了の指示があったか否かを判断し（ステップ１３０８）、ユーザから検索終了指示があった場合には、携帯端末１０４における処理を終了する。
【０１４５】
一方、携帯端末１０４は、上記ステップ１３０８の判断の結果、ユーザから検索終了指示が無かった場合には、ステップ１３０１に戻り、先にステップ１３０７で表示された“次の質問文”及び“次の回答候補”に対するユーザからの回答を入力し、上記ステップ１３０１乃至１３０８を実行する。
【０１４６】
このように、本情報検索システムは、ステップ１３０７においてユーザから検索終了指示があるまでステップ１３０１乃至１３０８を繰り返すことで、ユーザに対する質問を提示し、提示された質問に対する回答を元に検索対象の情報を検索及び絞り込むことが出来る。
【０１４７】
次に、本発明の第１の実施形態に係るサーバ１０１におけるリクエスト・レスポンス処理部４１２の処理内容の詳細を説明する。
【０１４８】
図１４Ａは、本発明の第１の実施形態に係るサーバ１０１におけるリクエスト・レスポンス処理部４１２の処理内容を説明する動作フロー図である。
【０１４９】
図１４Ａに示すとおり、サーバ１０１におけるリクエスト・レスポンス処理部４１２は、通信装置２０１及びリクエスト・レスポンス送受信部４１１を介して、携帯端末１０４から受信したリクエストが空のリクエスト、すなわち（式１）で示した「リクエスト＝“”」であるか否かを判断する（ステップ１４０１）。受信したリクエストが空のリクエストであると判断した場合には、リクエスト・レスポンス処理部４１２は、後段のステップ１４０２の検索実行及びステップ１４０３の検索対象データ取得を行わず、ステップ１４０４の処理に移る。
【０１５０】
一方、上記ステップ１４０１における判断の結果、携帯端末１０４から受信したリクエストが空のリクエストではない、すなわち、（式２）で示す、例えば「リクエスト＝“料理種類”＋“肉全般；肉”＋“肉料理”＋“焼肉；焼肉”」など、リクエスト＝の後に文字列があると判断された場合には、受信したリクエストにおけるユーザからの回答“肉全般；肉”及び“焼肉；焼肉”等における「；」の前の文字列、すなわち回答に対応するグループ名に基づいて、検索部４１４が検索ＤＢ４１０を検索する（ステップ１４０２）。具体的には、リクエストが例えば「リクエスト＝“料理種類”＋“肉全般；肉”＋“肉料理”＋“焼肉；焼肉”」の場合には、検索部４１４は、「ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ｔａｂｌｅ  ＷＨＥＲＥ  料理種類＝肉全般  ＡＮＤ  肉料理＝焼肉」などのＳＱＬ文で検索ＤＢ４１０を検索する。これによって、例えば図８の検索ＤＢ４１０の場合には、レコード８１１等を容易に検索することが可能となる。
【０１５１】
次に、サーバ１０１におけるリクエスト・レスポンス処理部４１２は、検索部４１４による検索ＤＢ４１０の検索結果を元に、検索対象データ取得部４１５を用いて検索対象ＤＢ４０３を検索し、検索結果に対する全情報を取得する（ステップ１４０３）。これは、検索部４１４による検索ＤＢ４１０の検索結果のＩＤ８０１と同一のＩＤをもつレコードの各フィールドのデータを取得することによって実現する。
【０１５２】
例えば、上記の例で検索結果としてレコード８１１が検索された場合、このレコード８１１のＩＤ「１」と同一のＩＤ「１」のレコードを検索対象ＤＢ４０３から取得し、そのレコードの各フィールドの文字列をフィールド名でタグ付けた文字列をユーザに提示する検索結果とする。
【０１５３】
なお、本実施形態に係る情報検索システムでは必ずしも、本ステップ１４０３の処理を行う必要は無く、ステップ１４０２で取得した検索ＤＢ４１０の検索結果を基に各フィールドの文字列をフィールド名でタグ付けた文字列をユーザに提示する検索結果として取得してもよいし、単に検索結果の件数を元に「検索結果は○○件です」という文字列をユーザに提示する検索結果として取得してもよい。この場合、ユーザには検索対象の全ての情報は提示されないが、ユーザから全情報を提示するように指示された場合にリクエスト・レスポンス処理部４１２が上記ステップ１４０３に相当する処理を行い、全情報を提示すれば良い。これによって、検索及び絞込みを行うために要する全処理時間のうち、各検索及び検索結果の表示に係る処理時間を低減することが可能となる。
【０１５４】
さて、サーバ１０１におけるリクエスト・レスポンス処理部４１２は、次にステップ１４０４において、質問・回答生成部４１３を用いて、ユーザに提示する質問及び回答候補を生成する。これは、基本的には質問ＤＢ４０７からまだユーザに提示されていない質問のレコードを選択することによって実現する。この処理について、図１４Ｂを参照して説明する。
【０１５５】
図１４Ｂは、本発明の第１の実施形態に係るサーバ１０１における質問・回答生成部４１３の処理内容を説明する動作フロー図である。
【０１５６】
質問・回答生成部４１３は、質問ＤＢ４０７における優先度１１０３に基づき、高い優先度のレコードを優先的に選択する（ステップ１４１１）。例えば、優先度「１」のレコードＡ、Ｂ、Ｃと、優先度「２」のレコードＤ、Ｅ、Ｆと、優先度「３」のレコードＧ、Ｈ、Ｉが存在し、これらがまだユーザに対する質問として選択されていない場合、質問・回答生成部４１３は、まず、レコードＡ、Ｂ、Ｃの中から任意のレコードを選択する。
【０１５７】
そして、ここで例えばレコードＡが選択された場合には、次にユーザに提示する質問を選択するときには、質問・回答生成部４１３は、優先度「１」のレコードのうちまだ選択されていないものと、次に優先度の高い優先度「２」のレコードと、の中から任意のレコードを選択する。すなわち、先の例では、質問・回答生成部４１３は、レコードＢ、Ｃ、Ｄ、Ｅ、Ｆの中から任意のレコードを選択する。
【０１５８】
そして、例えばここでレコードＥが選択された場合には、さらに次にユーザに提示する質問を選択するときには、質問・回答生成部４１３は、優先度「１」及び「２」のレコードと次に優先度の高い優先度「３」のレコードとのうちまだ選択されていないものの中から任意のレコードを選択する。
【０１５９】
上記の手順における任意のレコードの選択は、例えば、サーバ１０１が発生させた擬似的なランダム値を用いて、各レコードが選択される確率が概ね均等になるように実行されてもよい。
【０１６０】
上記の手順によれば、最初の質問を選択するときには、選択可能な質問に優先度の低いものが含まれておらず、質問を繰り返す回数が多くなるほど、より優先度の低い質問が選択可能となる。しかし、質問を繰り返す回数が多くなっても、優先度の高い質問は依然として選択可能であり、それらのうちどれを選択するかはランダムに行われる。このように、概ね優先度に従う順序で質問がされるものの、質問の選択にランダム性が加味されることによって、優先度の高い質問からいつも同じ順序で質問されるためにユーザが本情報検索システムを使用することに飽きてしまうことを防止することができる。
【０１６１】
上記のような優先度に基づく質問の選択方法（第１の選択方法）は一例であり、質問・回答生成部４１３は、これ以外の方法によって質問を選択してもよい。例えば、質問・回答生成部４１３は、必ず優先度が高い質問から順に選択し、同一の優先度の質問が複数存在する場合には、それらの質問をランダムな順序で選択してもよい。この場合、優先度「１」の質問がランダムに順次選択され、優先度「１」の質問が全て選択されたら、次に優先度「２」の質問がランダムに順次選択される。より低い優先度の質問も同様の手順で順次選択される。この方法（第２の選択方法）によって、優先度に従いながらも、質問の順序に変化が生じるため、ユーザが飽きることを防止できる。
【０１６２】
それぞれの質問の選択方法が採用された場合にユーザが感じる使い勝手のよさは、選択可能な質問の数、それぞれの質問に対して選択可能な回答候補の数、設定された優先度の階級数（例えば「１」から「３」までの優先度が設定されているか、又は「１」から「１０」までの優先度が設定されているか、等）、それぞれの優先度が設定された質問の数（例えば優先度「１」が付与された質問数が３個であるか２０個であるか、等）、検索対象の情報の種類に起因する優先度の設定しやすさ、といった種々のパラメータに依存する。このため、質問・回答生成部４１３は、これらのパラメータに応じて自動的に質問の選択方法を決定してもよい。
【０１６３】
具体的には、例えば、各優先度が設定された質問の数が少ない場合には、第２の選択方法を採用すると質問の順序のバリエーションが限られるためにユーザが飽きるおそれがある。したがって、この場合には第１の選択方法を採用することによって質問の順序のバリエーションを増やすことが望ましい。反対に、各優先度が設定された質問の数が多い場合には、第２の選択方法を採用することによって、十分なバリエーションを確保しつつ、優先度に忠実な順序で質問を提示することによって的確に情報を絞り込むことができる。このため、質問・回答生成部４１３は、例えば各優先度が設定された質問の数が所定の閾値を超えるか否かに基づいて質問の選択方法を決定してもよい。
【０１６４】
なお、質問ＤＢ４０７における優先度が空欄となっているレコードは優先度が最も低いものとして扱えばよいが、直前の質問に対する回答に対して、子質問名１１０７が記載されていた場合には、質問・回答生成部４１３は、上記優先度によるレコードの選択よりも優先的に当該子質問名１１０７又は１１０９等で記載された質問名１１０１のレコードを選択する。すなわち、例えば、ある時点でレコード１１１１の質問を選択してユーザに質問を提示して、ユーザからの回答が「魚」であった場合には、回答候補「魚全般；魚」に当たる子質問名１１０７として「魚料理」が記載されているため、質問・回答生成部４１３は、優先度によるレコードの選択は行わず、次の質問のレコードとして、質問名１１０１が「魚料理」である、レコード１１１３を選択する。そして、質問・回答生成部４１３は、上記選択したレコードにおける質問名と質問文を取得する。
【０１６５】
結局、質問・回答生成部４１３は、質問の親子関係が設定されている場合にはそれに従って質問を選択し、質問の親子関係が設定されていないが優先度が設定されている場合にはそれに従って質問を選択し、親子関係・優先度のいずれも設定されていない場合には任意の質問を（例えばランダムに）選択する。
【０１６６】
次に、質問・回答生成部４１３は、回答候補として、選択したレコードに対する各回答候補（１１０６や１１０８等）に対する検索結果が０件とならない回答候補を有効化する。例えば、質問・回答生成部４１３は、上記ステップ１４０２で行ったのと同様にこれまでのユーザからの回答に追加して、上記選択したレコードにおける各回答候補（１１０６又は１１０８等）がユーザから選択されたと仮定して、ステップ１４０２と同様の動作で、検索部４１４により検索ＤＢ４１０を検索した結果数を取得する（ステップ１４１２）。次に、質問・回答生成部４１３は、１件以上の検索結果が取得されたか否かを判定する（ステップ１４１３）。質問・回答生成部４１３は、検索結果の数が０件とならなかった回答候補を有効化する（ステップ１４１４）。上記選択したレコードにおける全ての回答候補による検索結果の数が０件となった場合には、質問・回答生成部４１３は、この質問自体のレコードを無効化し（ステップ１４１５）、改めてステップ１４１１にて別の質問のレコードを選択する。
【０１６７】
例えば、ステップ１４１１においてレコード１１１２（すなわち「肉料理」）が選択された場合、提示されるはずの回答候補は「焼肉」及び「とんかつ」等である。しかし、レコード１１１２についてステップ１４１２の検索が行われ、ステップ１４１３において検索結果の数が０件であると判定された場合、「焼肉」又は「とんかつ」等のいずれの回答候補が選択されたとしても、それに対する検索結果は０件となる。すなわち、ユーザは、「どんな肉料理がいい？」（レコード１１１２の質問文１１１４）という質問に対して、提示された回答候補「焼肉」又は「とんかつ」等のいずれを選択しても１件も検索結果を得ることができない。このような質問を提示されたユーザは、時間と手間の浪費を強いられ、不快感を持つ。これを防ぐため、ステップ１４１２の検索によって検索結果が得られないことが判明した質問はユーザに提示しないよう、質問・回答生成部４１３は当該質問を無効化し（ステップ１４１５）、別の質問（例えばレコード１１１３の「魚料理」等）を選択する（ステップ１４１１）。
【０１６８】
一方、上記の例のステップ１４１３において検索結果の数が１件以上あると判定された場合であっても、いずれかの回答候補に関する検索結果は０件となる場合、例えば、回答候補「焼肉」が選択された場合には１件以上の検索結果が得られるが、「とんかつ」が選択された場合には１件も検索結果が得られない場合がある。このように検索結果が得られない回答候補を選択したユーザは、時間と手間の浪費を強いられ、不快感を持つ。これを防ぐため、ステップ１４１２の検索によって検索結果が得られないことが判明した回答候補はユーザに提示しないよう、質問・回答生成部４１３は１件以上の検索結果が得られる回答候補を有効化する（ステップ１４１４）。後述するステップ１４０５において、リクエスト・レスポンス処理部４１２は、有効化されなかった（すなわち無効な）回答候補を含まないレスポンスを生成する。その結果、有効化されなかった回答候補は図１３のステップ１３０７において表示されないため、ユーザに選択されることはない。
【０１６９】
再び図１４Ａを参照する。質問・回答生成処理（ステップ１４０４）が終了すると、次に、サーバ１０１におけるリクエスト・レスポンス処理部４１２は、レスポンスを生成して（ステップ１４０５）、本リクエスト・レスポンス処理部４１２における処理を完了する。例えば、リクエスト・レスポンス処理部４１２は、（式３）で示したレスポンスの形式に対して、上記ステップ１４０３で得られた検索結果に対する情報をレストランごとに上述の通りタグで接続して“今回の回答による検索結果”とすると共に、上記ステップ１４０４で得られた質問名を“次の質問名”、質問文を“次の質問文”、有効な回答候補を“次の回答候補”とすることでレスポンスを生成する。なお、先に示したとおり、複数の有効な回答候補（例えば回答候補１〜ｎ）を“次の回答候補”とする場合には各回答候補を「、」で接続した文字列を生成すればよい。
【０１７０】
次に、本実施例に係る情報検索システムでユーザに提示される表示画面の一例を説明する。
【０１７１】
図１５は、本発明の第１の実施形態に係る携帯端末１０４における表示部５０４を介して表示装置３０５の表示画面に表示される画面例を示す図である。
【０１７２】
図１５（ａ）は、本実施例に係る携帯端末１０４の検索初期画面例であり、表示画面１５０１は、表示装置３０５によって表示される。図１５（ａ）に示すとおり、初期画面では、検索開始ボタン１５０２が表示され、ユーザが本検索開始ボタン１５０２を押下することによって、携帯端末１０４が、ユーザからの検索要求の入力があったと判断することができる。
【０１７３】
図１５（ｂ）は検索及び絞り込みにおいて、質問と回答候補及びこれまでの絞り込み結果を提示する画面例であり、表示画面１５０１は、表示装置３０５によって表示される。図１５（ｂ）に示す質問文提示領域１５０３には、サーバ１０１からのレスポンス（式３）における、“次の質問文”に含まれる文字列が表示される。
【０１７４】
ボタン１５０４及び１５０５は、回答候補である。例えば、携帯端末１０４は、サーバ１０１からのレスポンス（式３）における、“次の回答候補”に含まれる文字列を「、」で分割することによって１つ以上の回答候補を取得してそれらを記憶しておき、さらに記憶した各回答候補に対応する「；」の後の回答候補文字列を取得して、これらをボタン１５０４及び１５０５として表示する。ユーザは所望の回答候補が表示されたボタン１５０４又は１５０５を押下することによって、質問に対する回答を入力することが可能となる。
【０１７５】
図１５（ｂ）の例では、回答候補「焼肉」に対応するボタン１５０４及び回答候補「とんかつ」に対応するボタン１５０５等が表示されている。しかし、例えば図１４Ｂのステップ１４１４において回答候補「とんかつ」が有効化されなかった（すなわち「とんかつ」が選択された場合の検索結果の数が０件となる）場合、ボタン１５０５は表示されない。
【０１７６】
なお、このとき、携帯端末１０４は、入力された回答に対応して、先に記憶した回答候補をもとにして、リクエストにおける“○回目の回答”を生成する。すなわち、リクエストにおける“○回目の回答”の形式を「グループ名：回答候補文字列」の形式に変換して、サーバに対してリクエストを生成する（ステップ１３０２参照）。
【０１７７】
検索結果表示領域１５０６は、前の質問に対する回答を行った結果をもとに検索対象の情報の検索を行った結果を表示する領域である。ここには、サーバ１０１からのレスポンス（式３）における、“今回の回答による検索結果”に含まれる文字列がタグごとに分割して表示される。これによって、例えば検索対象がレストランに関する情報であり、検索結果が複数のレストランに関する情報を含む場合でも、個々のレストランに関する情報を改行する等して見やすく表示することが出来る。
【０１７８】
また、図１５（ｂ）において、ユーザが検索終了ボタン１５０７を押下した場合に、携帯端末１０４は、ユーザからの検索終了要求の入力があったと判断することが可能となる。
【０１７９】
以上で説明した本発明の第１の実施形態によって、ユーザに対して効果的に質問とその質問に対する回答候補を提示し、ユーザからの回答に基づいて高速に情報を検索又は絞り込むことが出来る情報検索システムを提供可能となる。特に、ユーザに対する質問とその質問の回答候補を提示する際、提示された質問及び回答候補を元に、ユーザが回答を行った結果、情報の検索結果又は絞り込み結果が０件となることのないようにすることで、ユーザが不快感を得ることのない情報検索システムを提供することが可能となる。
【０１８０】
なお、本発明の第１の実施形態はレストランに関する情報を検索するシステムを例示したが、既に説明したとおり、それ以外の情報、例えば任意の種類の店舗、施設又はイベント等を検索するシステムにも本発明を適用することができる。さらに、本発明は、図１に示すようなサーバ１０１と携帯端末１０４とがネットワーク１０２等を介して接続された情報検索システムだけでなく、例えばスタンドアロンの機器又は計算機等、任意の形態の情報検索システムに適用することができる。一例を示せば、家庭用ビデオ記録装置における映像ファイルの検索等に本発明を適用してもよい。そのような形態の情報検索システムは、例えば図２に示すハードウェアに加えてさらに入力装置３０３及び表示装置３０５に相当する入力装置及び表示装置を備える。この場合、図１３に示す検索リクエスト及び検索レスポンスの送受信は不要になり、全ての処理がスタンドアロンの情報検索システムの内部で行われる。このように、本発明は、情報を格納及び検索するサーバ、テレビ、ＰＣ、レコーダ、携帯電話又は携帯端末等の任意の装置、及びそれらの任意の組み合わせに適用できる。後述する本発明の第２の実施形態についても同様である。
＜第２の実施形態＞
第１の実施形態では、ユーザに提示する質問に対する回答候補が有効であるか否かを判断するために、ユーザに対する質問及びその質問の回答候補を生成するたびに、質問・回答生成部４１３が、質問ＤＢ４０７において選択したレコードにおける各回答候補（１１０６や１１０８等）がユーザから選択されたと仮定して、検索部４１４を用いて検索ＤＢ４１０を検索した結果数を取得し、検索結果が０件とならなかった回答候補を有効と判断していた（図１４Ｂのステップ１４１２〜１４１５）。
【０１８１】
この場合、ユーザからの回答があるたびに次の質問に対する全ての回答候補に対して、これらの回答候補に基づいて検索部４１４が検索ＤＢ４１０を検索する必要があった。これは、本実施形態における検索ＤＢ等の構成が、検索を高速に行えるものであるために、実施可能であるが、それでも検索対象の情報量が多くなった場合には、リアルタイムに回答候補が有効であるか否かを判断することが困難となる場合がある。
【０１８２】
そこで、第２の実施形態では、後述する絞込み件数マップ生成部があらかじめ絞込み件数マップを生成し、質問・回答生成部４１３が本絞込み件数マップを参照することで、高速にユーザに提示する質問に対する回答候補が有効であるか否かを判断できる情報検索システムを例示する。
【０１８３】
第２の実施形態では、第１の実施形態に対してサーバ１０１の機能ブロックと関連各部の動作を若干変更することで実現できる。以下、変更部分を説明し、変更されない部分についての説明は第１の実施形態と同様であるので省略する。
【０１８４】
図１６は、本発明の第２の実施形態に係るサーバ１０１の機能ブロックの一例を説明する図である。
【０１８５】
図１６に示すとおり、本実施形態に係るサーバ１０１の機能ブロックは、第１の実施形態に係るサーバ１０１の機能ブロックに対して、絞込み件数マップ生成部１６０１及び絞込み件数マップ１６０２を加えた構成である。
【０１８６】
絞込み件数マップ生成部１６０１は、検索データ生成ルール４０８で定義されているグループの組み合わせについて、あらかじめ検索部４１４を用いて検索結果数を取得することで、絞込み件数マップ１６０２を生成する。
【０１８７】
絞込み件数マップ１６０２は、検索データ生成ルール４０８で定義されているグループの組み合わせについて検索部４１４によって行われた検索ＤＢ４１０の検索結果の数を示すマップである。
【０１８８】
図１７は、本発明の第２の実施形態に係る絞込み件数マップ１６０２のデータ及びデータ構造の一例を説明する図である。
【０１８９】
図１７に示すとおり、本発明の第２の実施形態に係る絞込み件数マップ１６０２は、組み合わせ数１７０１と、グループ名１７０２乃至１７０６と、件数１７０７と、からなる。
【０１９０】
組み合わせ数１７０１は、検索におけるグループ名の組み合わせ数である。
【０１９１】
グループ名１７０２乃至１７０６は、検索データ生成ルール４０８で定義されているグループ名である。
【０１９２】
件数１７０７は、グループの組み合わせについて、検索部４１４が検索ＤＢ４１０を検索することによって得られた検索結果の件数である。
【０１９３】
絞込み件数マップ生成部１６０１は、レコード１７１１乃至１７２０に示すとおり、組み合わせ対象とするグループ名に“○”を記載し、当該組み合わせ対象としたグループ名の数を組み合わせ数１７０１に記載する。また、この組み合わせを検索部４１４が検索ＤＢ４１０において検索することによって得られた検索結果の数を件数１７０７に記載する。
【０１９４】
例えば、レコード１７１２の場合には、二つのグループ、すなわち「グループ名１」及び「グループ名２」の組み合わせが対象として選択されているため、組み合わせ数１７０１は「２」となり、件数１７０７の値「８０００００」は、「ＳＥＬＥＣＴ  ＊  ＦＲＯＭ  ｔａｂｌｅ  ＷＨＥＲＥ  グループ名１の属性＝クループ名１  ＡＮＤ  グループ名２の属性＝グループ名２」なるＳＱＬ文にて検索した結果の数である。なお、グループ名の属性については検索データ生成ルール４０８における属性７０２から取得できる。
【０１９５】
なお、絞込み件数マップ生成部１６０１は、検索データ生成ルール４０８で定義されている全てのグループを組み合わせて絞込み件数マップ１６０２を作成する必要は無く、同じ属性のグループ名が２つ以上になる組み合わせについては絞込み件数マップ１６０２のレコードを生成する必要は無い。これは、一連の絞込みにおいて、例えば「予算」という属性の「予算高」、「予算中」、「予算低」がユーザから同時に選ばれることは無いことに起因する。
【０１９６】
さて、本実施形態においては、第１の実施形態と比較して、次の通りＤＢ更新部４０１の動作及び質問・回答生成部４１３の動作が変更される。すなわち、ＤＢ更新部４０１は、図１２において、検索対象の情報又は検索データ生成ルール４０８が作成、追加、又は更新されたか否かを判断し（ステップ１２０５）、これらのいずれかが作成、追加、又は更新された場合に、検索ＤＢ生成部４０９が検索ＤＢ４１０を生成（ステップ１２０６）した後に、絞込み件数マップ生成部１６０１を起動して、絞込み件数マップ１６０２を生成する処理を追加する。なお、本処理は、検索対象の情報又は検索データ生成ルール４０８が作成、追加、あるいは更新されるたびに、新規に絞込み件数マップ１６０２を生成するために実行されることが望ましい。
【０１９７】
また、質問・回答生成部４１３が、回答候補として、選択したレコードに対する各回答候補（図１１におけるフィールド１１０６及び１１０８等）に対する検索結果が０件とならない回答候補を有効化する処理（図１４Ａのステップ１４０４）は、次のように変更される。すなわち、質問・回答生成部４１３は、ユーザからのこれまでの回答のグループ名と、上記選択したレコードにおける各回答候補（図１１における１１０６や１１０８等）のグループ名との組み合わせについて、絞込み件数マップ１６０２の件数（図１７における件数１７０７）を参照して、当該件数が０件とならなかった回答候補を有効と判断する。すなわち、本実施形態の質問・回答生成部４１３は、図１４Ｂのステップ１４１２において絞込み件数マップ１６０２を参照することによって、検索の実行を省略することができる。
【０１９８】
なお、この場合、ユーザからのこれまでの回答の数＋１を組み合わせ数として、この組み合わせ数が絞込み件数マップ１６０２における組み合わせ数１７０１と合致するレコードのみを参照して、絞込み件数マップ１６０２における組み合わせと合致するレコードを探し出せばよい。例えば、既に質問が２回提示され、それぞれに対してユーザが回答をし、その次にユーザに提示する質問を選択しようとするとき、質問・回答生成部４１３は、組み合わせ数１７０１が「３」であるレコードのみを参照する。これによって、高速に所望の件数（図１７における件数１７０７）を取得することが可能となる。
【０１９９】
以上によって、本発明の第２の実施形態に係る情報検索システムでは、ユーザに提示する質問に対する回答候補が有効であるか否かを判断するために、ユーザからの回答があるたびに、次の質問に対する全ての回答候補に対して、検索部４１４が検索ＤＢ４１０を検索する必要がなくなる。このため、高速に回答候補が有効であるか否かを判断することが可能となる。
【産業上の利用可能性】
【０２００】
本発明は、情報を格納及び検索するサーバ、テレビ、ＰＣ、レコーダ、携帯電話又は携帯端末等、及びこれらの組み合わせに適用できる。
【符号の説明】
【０２０１】
１０１  サーバ
１０２  ネットワーク
１０３  基地局
１０４  携帯端末
２０１  サーバの通信装置
２０２  サーバの中央処理装置
２０３  サーバの記憶装置
２０４  サーバの二次記憶装置
２０５  サーバのバス
３０１  携帯端末の通信装置
３０２  携帯端末の中央処理装置
３０３  携帯端末の入力装置
３０４  携帯端末の記憶装置
３０５  携帯端末の表示装置
３０６  携帯端末のバス
４０１  ＤＢ更新部
４０２  検索対象ＤＢ構築部
４０３  検索対象ＤＢ
４０４  質問生成ルール
４０５  質問間親子関係ルール
４０６  質問ＤＢ生成部
４０７  質問ＤＢ
４０８  検索データ生成ルール
４０９  検索ＤＢ生成部
４１０  検索ＤＢ
４１１  サーバのリクエスト・レスポンス送受信部
４１２  サーバのリクエスト・レスポンス処理部
４１３  質問・回答生成部
４１４  検索部
４１５  検索対象データ取得部
５０１  入力部
５０２  携帯端末のリクエスト・レスポンス送受信部
５０３  携帯端末のリクエスト・レスポンス処理部
５０４  表示部
１６０１  絞込み件数マップ生成部
１６０２  絞込み件数マップ
【図１】
2013134755.tif 000003
【図２】
2013134755.tif 000004
【図３】
2013134755.tif 000005
【図４】
2013134755.tif 000006
【図５】
2013134755.tif 000007
【図６】
2013134755.tif 000008
【図７】
2013134755.tif 000009
【図８】
2013134755.tif 000010
【図９】
2013134755.tif 000011
【図１０】
2013134755.tif 000012
【図１１】
2013134755.tif 000013
【図１２】
2013134755.tif 000014
【図１３】
2013134755.tif 000015
【図１４Ａ】
2013134755.tif 000016
【図１４Ｂ】
2013134755.tif 000017
【図１５】
2013134755.tif 000018
【図１６】
2013134755.tif 000019
【図１７】
2013134755.tif 000020