(57)【特許請求の範囲】
【請求項１】
質問文を取得する質問文取得手段と、
質問文の全て又は一部の回答を出力する回答部を複数有する回答手段と、
前記回答手段による出力結果に基づいた回答結果を生成する回答生成手段と、
前記回答生成手段が生成した回答結果を出力する回答出力手段と、を備え、
前記回答手段は、第１パターンの事実型質問について回答可能な回答部と、第２パターンの事実型質問について回答可能な回答部とを少なくとも有し、
前記回答手段には、プログラム演算結果を前記回答として出力するプログラム回答部を含み、さらに、質問文から一意に定まる質問である定義型質問の回答を検索し、検索結果を出力する定義型質問回答部又は、所定の対象物の属性を問い合わせる質問である属性型質問の回答を検索し、検索結果を出力する属性型質問回答部のいずれか１つを少なくとも含み、
前記質問文が、定義型質問又は属性型質問に対応する質問であり、且つ質問文中にプログラム演算を必要と解釈できる文言を含む場合、前記回答生成手段は、前記プログラム回答部による出力結果と、質問定義型質問回答部又は属性型質問回答部のいずれか１つによる出力結果とに基づいた回答を生成することを特徴とする情報処理装置。
【請求項２】
前記質問文中に含まれているプログラム演算を必要と解釈できる文言に対応するプログラムが引数を必要とする場合、
前記プログラム回答部は、前記質問文中に含まれる、所定の文言を引数として用いてプログラム演算することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記質問文が事実型質問であるか否かを判定する質問文種類判定手段をさらに備え、
前記質問文が事実型質問ではない場合、他の装置へ前記質問文の回答依頼をすることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記回答生成手段は、前記回答手段から取得した回答に基づいて、回答がない場合と、回答不能な質問である場合とを識別可能な回答結果を生成することを特徴とする請求項１から３の何れか一項に記載の情報処理装置。
【請求項５】
前記回答生成手段は、質問文の種類に応じて、回答結果のユーザインタフェースを切り替えることを特徴とする請求項１から４のいずれか一項に記載の情報処理装置。
【請求項６】
前記回答手段が出力した結果に付記的情報が含まれる場合、前記回答生成手段は、前記付記的情報を付加した回答情報を生成することを特徴とする請求項１から５のいずれか一項に記載の情報処理装置。
【請求項７】
端末装置と、情報処理装置とを備える情報処理システムであって、
前記情報処理装置は、
前記端末装置から質問文を取得する質問文取得手段と、
質問文の全て又は一部の回答を出力する回答部を複数有する回答手段と、
前記回答手段による出力結果に基づいた回答結果を生成する回答生成手段と、
前記回答生成手段が生成した回答結果を前記端末装置へ出力する回答出力手段と、を備え、
前記回答手段は、第１パターンの事実型質問について回答可能な回答部と、第２パターンの事実型質問について回答可能な回答部とを少なくとも有し、
前記回答手段には、プログラム演算結果を前記回答として出力するプログラム回答部を含み、さらに、質問文から一意に定まる質問である定義型質問の回答を検索し、検索結果を出力する定義型質問回答部又は、所定の対象物の属性を問い合わせる質問である属性型質問の回答を検索し、検索結果を出力する属性型質問回答部のいずれか１つを少なくとも含み、
前記質問文が、定義型質問又は属性型質問に対応する質問であり、且つ質問文中にプログラム演算を必要と解釈できる文言を含む場合、前記回答生成手段は、前記プログラム回答部による出力結果と、質問定義型質問回答部又は属性型質問回答部のいずれか１つによる出力結果とに基づいた回答を生成し、
前記端末装置は、
質問文を前記情報処理装置へ送信すると共に、回答要求を行う回答要求手段と、
前記情報処理装置から回答結果を取得する回答結果取得手段と、
前記回答結果を表示する回答結果表示手段と、
を備えることを特徴とする情報処理システム。
【請求項８】
情報処理装置で実行する質問回答方法であって、
質問文を取得する質問文取得ステップと、
質問文の全て又は一部の回答を出力する回答ステップを複数有する回答ステップと、
前記回答ステップによる出力結果に基づいた回答結果を生成する回答生成ステップと、
前記回答生成ステップが生成した回答結果を出力する回答出力ステップと、を有し、
前記回答ステップは、第１パターンの事実型質問について回答可能な回答部と、第２パターンの事実型質問について回答可能な回答部とを少なくとも含み、
前記回答ステップでは、プログラム演算結果を前記回答として出力するプログラム回答ステップを含み、さらに、質問文から一意に定まる質問である定義型質問の回答を検索し、検索結果を出力する定義型質問回答ステップ又は、所定の対象物の属性を問い合わせる質問である属性型質問の回答を検索し、検索結果を出力する属性型質問回答ステップのいずれか１つを少なくとも含み、
前記質問文が、定義型質問又は属性型質問に対応する質問であり、且つ質問文中にプログラム演算を必要と解釈できる文言を含む場合、前記回答生成ステップでは、前記プログラム回答ステップによる出力結果と、質問定義型質問回答ステップ又は属性型質問回答ステップのいずれか１つによる出力結果とに基づいた回答を生成する
ことを特徴とする質問回答方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、質問に回答する情報処理装置、情報処理システム、および質問回答方法に関する。
【背景技術】
【０００２】
音声認識技術やタッチパネルを活用したユーザインタフェースの進化、無線通信技術の進化により、特定の分野に限定せずユーザからの様々な分野に関する質問に回答するマルチドメイン型の質問応答システムが普及しつつある。マルチドメイン型の質問応答システムはユーザの日常生活に関するあらゆる質問を想定し、映画等エンタメに関する知識や地理歴史等一般常識などに関するデータに関する問い合わせや雑談などの実利を求めない質問などに回答する。これらの情報はシステム内部のデータベース管理システムもしくは連結した外部サービスから取得する。
【０００３】
ユーザの質問は非常に多岐にわたるため、一定の質問形式のみをそのサービス（もしくはそれを構成する部分サービス）が回答できるものと前提を置いて質問の解析と回答の生成を行うことが一般に行われている。
【０００４】
例えばカーナビゲーションシステムでは検索対象を施設などの地理データに限定し、ユーザが指定する検索キーは単語のみ、もしくは単語と検索したい対象の種類（「コンビニ」や「ファミリーレストラン」など）の組に限定している。この場合ユーザからの入力を解析する必要はなく、システム内部に保存された種類情報と対応付けられた対象物をそのまま検索すればよい。
【０００５】
一方マルチドメイン型の質問応答システムの場合はユーザからの質問型式を一定の形に限定することは難しい。「オーソン  コンビニ」という質問もあれば「オーソンというコンビニを探して」「○○町にあるオーソンというコンビニを探して」といった質問も考えられる。それぞれの質問でどの言葉をどの検索条件に設定すればよいかが異なり、それに回答するためのデータベースの準備方法も異なってくる。
【０００６】
また、所定の質問に対応する回答文のテンプレートを複数用意しておき、当該複数のテンプレートに基づいて回答を抽出する技術がある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１２−７９１６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、特許文献１の方法では、回答のテンプレートを複数用意しているに過ぎず、一定の質問形式であることを前提としており、多様な質問に対応できないという問題点がある。
【０００９】
そこで、本発明においては、上記の課題を解決するために、事実型の質問について、柔軟に回答し得る装置、システム、及び方法を提供することを目的とする。ここで事実型質問とは、理由や方法に関する質問とは異なり、固有表現を解答とした質問等を意味する。
【課題を解決するための手段】
【００１０】
上述の課題を解決するために、本発明の情報処理装置は、質問文を取得する質問文取得手段と、質問文の全て又は一部の回答を出力する回答部を複数有する回答手段と、回答手段による出力結果に基づいた回答結果を生成する回答生成手段と、回答生成手段が生成した回答結果を出力する回答出力手段と、を備え、回答手段は、第１パターンの事実型質問について回答可能な回答部と、第２パターンの事実型質問について回答可能な回答部とを少なくとも有し、回答手段には、プログラム演算結果を回答として出力するプログラム回答部を含み、さらに、質問文から一意に定まる質問である定義型質問の回答を検索し、検索結果を出力する定義型質問回答部又は、所定の対象物の属性を問い合わせる質問である属性型質問の回答を検索し、検索結果を出力する属性型質問回答部のいずれか１つを少なくとも含み、質問文が、定義型質問又は属性型質問に対応する質問であり、且つ質問文中にプログラム演算を必要と解釈できる文言を含む場合、回答生成手段は、プログラム回答部による出力結果と、質問定義型質問回答部又は属性型質問回答部のいずれか１つによる出力結果とに基づいた回答を生成する。
【００１１】
また、本発明の質問回答方法は、情報処理装置で実行する質問回答方法であって、質問文を取得する質問文取得ステップと、質問文の全て又は一部の回答を出力する回答ステップを複数有する回答ステップと、回答ステップによる出力結果に基づいた回答結果を生成する回答生成ステップと、回答生成ステップが生成した回答結果を出力する回答出力ステップと、を有し、回答ステップは、第１パターンの事実型質問について回答可能な回答部と、第２パターンの事実型質問について回答可能な回答部とを少なくとも含み、回答ステップでは、プログラム演算結果を回答として出力するプログラム回答ステップを含み、さらに、質問文から一意に定まる質問である定義型質問の回答を検索し、検索結果を出力する定義型質問回答ステップ又は、所定の対象物の属性を問い合わせる質問である属性型質問の回答を検索し、検索結果を出力する属性型質問回答ステップのいずれか１つを少なくとも含み、質問文が、定義型質問又は属性型質問に対応する質問であり、且つ質問文中にプログラム演算を必要と解釈できる文言を含む場合、回答生成ステップでは、プログラム回答ステップによる出力結果と、質問定義型質問回答ステップ又は属性型質問回答ステップのいずれか１つによる出力結果とに基づいた回答を生成する。
【００１２】
この発明によれば、複数パターンの事実型質問の回答部を有しているので、それぞれのパターンの質問の回答を行うことができる。すなわち、様々な種類の事実型質問に対して柔軟に回答を行うことができる。
【００１４】
この場合、定義型質問や属性型質問について、固定された回答だけでなく、プログラム演算を必要とする回答もすることができる。
【００１５】
また、本発明の情報処理装置において、質問文中に含まれている、プログラム演算を必要と解釈できる文言に対応するプログラムが引数を必要とする場合、プログラム回答部は、質問文中に含まれる所定の文言を引数として用いてプログラム演算するようにしても良い。
【００１６】
この場合、引数を利用したプログラム演算の回答をすることができるので、当該引数を用いて動的に変動し得る回答を生成することができる。
【００１７】
また、本発明の情報処理装置において、質問文が事実型質問であるか否かを判定する質問文種類判定手段をさらに備え、質問文が事実型質問ではない場合、他の装置へ質問文の回答依頼をするようにしても良い。
【００１８】
この場合、質問文が事実型質問ではない場合、他の装置へ質問文の回答依頼をするので、予め回答を作成するためのデータやロジックを用意することが難しい分野に対してもインターネット上に存在するＷｅｂサイトから回答を生成することができる。また、事実型質問であるか否かを予め判断しているので、事実型質問でない質問であるにも関わらず、回答処理をしてしまうことを未然に防止することができる。
【００１９】
また、本発明の情報処理装置において、回答生成手段は、回答手段から取得した回答に基づいて、回答がない場合と、回答不能な質問である場合とを識別可能な回答結果を生成する。
【００２０】
この場合、回答が得られない場合に、回答が存在しないか、情報処理装置で対応可能な質問ではなかったかを判別させることができる。
【００２１】
また、本発明の情報処理装置において、回答生成手段は、質問文の種類に応じて、回答結果のユーザインタフェースを切り替える。この場合、質問文の種類に応じて回答結果のインタフェースを変更するので、ユーザの理解度を向上させることができる。
【００２２】
また、本発明の情報処理装置において、回答手段が出力した結果に付記的情報が含まれる場合、回答生成手段は、付記的情報を付加した回答情報を生成する。
【００２３】
この場合、質問文で聞かれている対象について、例えば、敬称、単位等の付記的情報を付加するので、関係者への配慮や異なる単位への変換を実施することができる。
【００２４】
また、本発明の情報処理システムは、端末装置と、情報処理装置とを備える情報処理システムであって、情報処理装置は、端末装置から質問文を取得する質問文取得手段と、質問文の全て又は一部の回答を出力する回答部を複数有する回答手段と、回答手段による出力結果に基づいた回答結果を生成する回答生成手段と、回答生成手段が生成した回答結果を端末装置へ出力する回答出力手段と、を備え、回答手段は、第１パターンの事実型質問について回答可能な回答部と、第２パターンの事実型質問について回答可能な回答部とを少なくとも有し、回答手段には、プログラム演算結果を回答として出力するプログラム回答部を含み、さらに、質問文から一意に定まる質問である定義型質問の回答を検索し、検索結果を出力する定義型質問回答部又は、所定の対象物の属性を問い合わせる質問である属性型質問の回答を検索し、検索結果を出力する属性型質問回答部のいずれか１つを少なくとも含み、質問文が、定義型質問又は属性型質問に対応する質問であり、且つ質問文中にプログラム演算を必要と解釈できる文言を含む場合、回答生成手段は、プログラム回答部による出力結果と、質問定義型質問回答部又は属性型質問回答部のいずれか１つによる出力結果とに基づいた回答を生成し、端末装置は、質問文を情報処理装置へ送信すると共に、回答要求を行う回答要求手段と、情報処理装置から回答結果を取得する回答結果取得手段と、回答結果を表示する回答結果表示手段と、を備える。
【発明の効果】
【００２５】
本発明によれば、複数パターンの事実型質問の回答部を有しているので、それぞれのパターンの質問の回答を行うことができる。すなわち、様々な種類の事実型質問に対して柔軟に回答を行うことができる。
【図面の簡単な説明】
【００２６】
【図１】情報処理システムの機能を示すブロック図である。
【図２】知識検索回答サーバ１００等のハードウェア構成図である。
【図３】正常回答が得られない場合の出力画面例である。
【図４】正常回答が得られた場合の出力画面例である。
【図５】ルール‐回答表１１０で保持しているデータの一例を示す図である。
【図６】正規表現ルール表１１３で保持しているデータの一例を示す図である。
【図７】エンティティ‐属性値表１１１で保持しているデータの一例を示す図である。
【図８】属性表示形式表１１２で保持しているデータの一例を示す図である。
【図９】質問フロントサーバ５０の処理を示すフローチャートである。
【図１０】回答サービス候補を抽出する処理を示すフローチャートである。
【図１１】知識検索回答サーバ１００の処理を示すフローチャートである。
【図１２】サービス対象外判定処理を示すフローチャートである。
【図１３】検索エンジン利用好適判定処理を示すフローチャートである。
【図１４】ルール型検索による回答生成処理を示すフローチャートである。
【図１５】正規表現型検索による回答生成処理を示すフローチャートである。
【図１６】エンティティ‐属性型検索による回答生成処理を示すフローチャートである。
【発明を実施するための形態】
【００２７】
添付図面を参照しながら本発明の実施形態を説明する。可能な場合には、同一部分には同一の符号を付して、重複する説明を省略する。
【００２８】
図１は、本実施形態の情報処理システムの機能を示すブロック図である。
【００２９】
図１に示すように、情報処理システムは、携帯電話等のユーザ端末３０、質問回答フロントサーバ５０、知識検索回答サーバ１００、検索エンジン利用回答サービスサーバ１５０及び複数のその他回答サーバ６０（その他回答サーバ６０Ａ、その他回答サーバ６０Ｂ、・・・）から構成される。本実施形態では、ユーザ端末３０が端末装置として機能し、知識検索回答サーバ１００が情報処理装置として機能する。
【００３０】
ここでユーザ端末３０、質問回答フロントサーバ５０、知識検索回答サーバ１００、検索エンジン利用回答サービスサーバ１５０、及びその他回答サーバ６０はそれぞれネットワークを介して接続されているとしているが、ネットワークはインターネットなどの公衆通信網から専用線、ならびに同一物理装置内の通信バスでも構わず、その物理的な配置は問わない。また、質問回答フロントサーバ５０や知識検索回答サーバ１００の各機能も単一のサーバ装置内に配置されている必要はなく、物理的な構成は問わない。それぞれがＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やインターネットで接続された別々のサーバ装置に配置されている場合も含む。
【００３１】
図２は、ユーザ端末３０、質問回答フロントサーバ５０、及び知識検索回答サーバ１００のハードウェア構成図である。図２に示されるユーザ端末３０、質問回答フロントサーバ５０、及び知識検索回答サーバ１００は、物理的には、図２に示すように、ＣＰＵ１１、主記憶装置であるＲＡＭ１２及びＲＯＭ１３、入力デバイスであるキーボード及びマウス等の入力装置１４、ディスプレイ等の出力装置１５、ネットワークカード等のデータ送受信デバイスである通信モジュール１６、ハードディスクまたは半導体メモリ等の補助記憶装置１７などを含むコンピュータシステムとして構成されている。図１における各機能は、図２に示すＣＰＵ１１、ＲＡＭ１２等のハードウェア上に所定のコンピュータソフトウェアを読み込ませることにより、ＣＰＵ１１の制御のもとで入力装置１４、出力装置１５、通信モジュール１６を動作させるとともに、ＲＡＭ１２や補助記憶装置１７におけるデータの読み出し及び書き込みを行うことで実現される。以下、図１に示す機能ブロックに基づいて各機能ブロックを説明する。
【００３２】
ユーザ端末３０は、入力装置を介して、質問文を受け付けると、ネットワークを介して質問回答フロントサーバ５０へ質問文を送信すると共に当該質問文の回答要求を行う。そして、ユーザ端末３０は、質問回答フロントサーバ５０から回答結果を受信し、当該回答結果を表示出力する。
【００３３】
質問回答フロントサーバ５０は、回答サービス候補判定部５１、回答生成部５２、及びサービス制御部５３を有する。
【００３４】
回答サービス候補判定部５１は、ユーザ端末３０から受け取った質問文を読み込み、知識検索回答サーバ１００、及び複数のその他回答サーバ６０の内、何れのサーバへ質問要求すべきかを判断する。本実施形態では、回答サービス候補判定部５１は、質問文に含まれる単語によって回答要求対象のサーバを判定するものとする。
【００３５】
具体的に、回答サービス候補判定部５１は、質問文の語尾が「教えて」である場合、知識検索回答サーバ１００を回答候補サーバとする。回答サービス候補判定部５１は、質問文の語尾が「行きたい」である場合、その他回答サーバ６０Ａを回答候補サーバとする。回答サービス候補判定部５１は、質問文に「天気」が含まれている場合、その他回答サーバ６０Ｂを回答候補サーバとする。
【００３６】
本実施形態では、質問回答フロントサーバ５０は、全般的に歴史の事実などの一般的な知識に関する質問については、知識検索回答サーバ１００に回答要求し、公共交通機関の経路検索についての質問については、その他回答サーバ６０Ａに回答要求し、天気予報に関する質問については、その他回答サーバ６０Ｂに回答要求するものとする。
【００３７】
そして、回答候補サーバは、複数判定され得る。例えば「東京の天気を教えて」という質問については上記の判定方式の下では知識検索回答サーバ１００及びその他回答サーバ６０Ｂが回答候補サーバになる。
【００３８】
なお、その他回答サーバ６０はここで述べた以外の様々なサービスを担当し得る。例えば、音楽データを検索するサービスであっても良いし、ナビゲーションシステムであっても良いし、ユーザ端末に搭載されているメーラ等の機能を起動する指示を判断するサービスであっても良い。
【００３９】
サービス制御部５３は、ユーザ端末３０とのデータの送受信や知識検索回答サーバ１００とのデータの送受信を主に行う。サービス制御部５３は、知識検索回答サーバ１００及び複数のその他回答サーバ６０から回答を受け取り、その回答種別に応じて次の回答候補サーバに回答要求するか否か判断する。回答種別には、何らかの意味のある答え（質問に対する正常な回答）が得られている場合、回答が０件の場合、回答対応範囲外である場合の三通りの種別が含まれる。
【００４０】
回答が０件の場合は、質問文を受け付けたサーバが回答するサービス範囲ではあるが、それを回答するに充分なデータが存在しなかったことを示し、回答対応範囲外の場合は、質問文を受け付けたサーバが回答するサービス範囲内の質問ではなかったことを示している。
【００４１】
実際に質問文に対応する回答を準備する各サーバがより詳しく質問文の内容と各サーバ自体が回答すべき範囲を比較した上で対応範囲外の回答をすることで、質問回答フロントサーバ５０は各サーバの詳細な対応範囲を意識することなく質問文を転送することができる。
【００４２】
回答要求したサーバから、対応範囲外である旨の回答を取得した場合、サービス制御部５３は、他の回答候補サーバへ質問の回答要求を送信し、回答を得る。たとえば「東京の天気を教えて」といった質問をいったん知識検索回答サーバ１００へ送信した後、対応範囲外である旨の回答を得た場合、次にその他回答サーバ６０へ質問の回答要求を送信し、回答を得る。
【００４３】
サービス制御部５３は、全ての回答候補サーバから質問文に対する回答を得た結果、すべてのサーバから「対応範囲外」の回答を得た場合ならびに回答サービス候補判定部５１によって回答サービス候補が無いと判定された場合は、回答生成部５２に「対応範囲外」の信号を転送する。回答が０件もしくは何らかの意味のある回答が得られた場合は、サービス制御部５３は、得られた回答をそのまま回答生成部５２へ送信する。
【００４４】
回答生成部５２は、サービス制御部５３から得られた回答状況に応じてユーザ端末３０へ転送するための回答ユーザインタフェースを作成する。回答ユーザインタフェースはタッチパネル等の画面へ出力するためのＧＵＩ（グラフィカルユーザインタフェース）であっても良いし、音声回答用の読み上げ文章データ、又はこれらの二つを組み合わせたものであっても良い。
【００４５】
回答生成部５２は、回答に何らかの意味がある回答が得られている場合は、知識検索回答サーバ１００やその他回答サーバ６０から受信した情報（例えば、画面情報等）をそのままユーザ端末３０に表示させる。ユーザ端末３０は、「回答０件」ならびに「対応範囲外」である場合についてはその旨を区別してユーザに提示する。
【００４６】
図３に「回答０件」と「対応範囲外」をユーザ端末３０で表示している例を示す。図３（Ａ）は、回答０件である場合の画面例である。回答０件は暗にユーザが、対応サービスではあるが回答データが存在しない質問を送信した旨を意味している。図３（Ｂ）は、対応範囲外である場合の画面例である。対応範囲外の場合は、回答要求した質問を情報システムでは答えることができないことを意味している。ユーザ端末３０は、これらの文字列を音声出力するようにしても良い。このように、回答が得られない場合に、回答が存在しないか、知識検索回答サーバ１００で対応可能な質問ではなかったかを判別させることができる。
【００４７】
図４に、正常に回答結果を取得した場合の例を示す。図４（Ａ）は、文字により回答する場合の例を示し、図４（Ｂ）は、画像を用いて回答する例を示す。このように、質問文に対する回答結果に応じてユーザインタフェースを変更するようにしても良い。また、質問のパターンに応じて、回答結果のユーザインタフェースを変更するようにしても良い。これにより、ユーザの理解度を向上させることができる。
【００４８】
続いて、図１に戻り、知識検索回答サーバ１００の説明をする。知識検索回答サーバ１００は、入出力制御部１０１（質問文取得手段、回答出力手段）、回答制御部１０２（回答生成手段）、サービス対象外判定部１０３、検索エンジン利用好適判定部１０４（質問文種類判定手段）、ルール型検索部１０５（定義型質問回答部）、正規表現型検索部１０６、エンティティ‐属性型検索部１０７（属性型質問回答部）、プログラム型回答生成部１０８（プログラム回答部）、ルール‐回答表１１０、エンティティ‐属性値表１１１、属性表示形式表１１２及び正規表現ルール表１１３から構成される。そして、ルール型検索部１０５、正規表現型検索部１０６、エンティティ‐属性型検索部１０７、及びプログラム型回答生成部１０８が回答手段として機能する。
【００４９】
入出力制御部１０１は、質問回答フロントサーバ５０とのネットワークを介したデータの送受信を行う。具体的には、回答制御部１０２から取得した回答結果の出力をしたり、ユーザ端末３０が送信した質問文を受け取った後に当該質問文を回答制御部１０２へ送信したりする。入出力制御部１０１は、回答制御部１０２が生成した質問文の回答結果（０件、対応範囲外、もしくはルール型・正規表現型・エンティティ-属性型・検索エンジン利用回答サービスのいずれかの検索結果）を受信し、当該回答結果を質問回答フロントサーバ５０へ送信する。
【００５０】
回答制御部１０２は、質問文の回答生成に関する制御を行う。具体的には、サービス対象外判定部１０３に質問文がサービス対象外であるか否かを判定させたり、検索エンジン利用好適判定部１０４に検索エンジン利用回答サービスサーバ１５０に質問文を回答させた方が良いか否かを判定させたり、ルール型検索部１０５、正規表現型検索部１０６、及びエンティティ‐属性型検索部１０７に質問文の回答依頼をしたり、ルール型検索部１０５、正規表現型検索部１０６、及びエンティティ‐属性型検索部１０７から取得した回答に基づいた回答結果の生成をしたりする。
【００５１】
回答制御部１０２は、入出力制御部１０１から質問文を受け取り、サービス対象外判定部１０３に知識検索回答サーバ１００が回答可能な質問であるか否かを判定させる。回答制御部１０２は、サービス対象外判定部１０３から「対象範囲外」との情報を取得した場合は、その旨を回答結果として入出力制御部１０１へ転送する。回答制御部１０２は、「対象範囲外」との情報を取得しなかった場合は、検索エンジン利用好適判定部１０４に質問文を送信する。
【００５２】
回答制御部１０２は、検索エンジン好適判定部１０４から検索エンジン利用回答サービスサーバ１５０での回答が好適であるとの返答が得られた場合、質問文を検索エンジン利用回答サービスサーバ１５０に送信し、検索エンジン利用回答サービスサーバ１５０へ回答依頼をする。回答制御部１０２は、検索エンジン利用回答サービスサーバ１５０から取得した結果（０件もしくは１件以上）を回答結果として、入出力制御部１０１へ送信する。
【００５３】
検索エンジン利用回答サービスサーバ１５０での回答を利用することが好適ではないとの返信が得られた場合、回答制御部１０２は、ルール型検索部１０５、正規表現型検索部１０６、エンティティ‐属性型検索部１０７のそれぞれに質問文を送信し、いずれかから回答が得られた時点で、得た回答に基づいて回答結果を生成し、生成した回答結果を入出力制御部１０１へ送信する。なお、回答制御部１０２は、ルール型検索部１０５、正規表現型検索部１０６、及びエンティティ‐属性型検索部１０７の内、複数から回答を得て、全ての回答結果を生成するようにしても良いし、予め定められた優先順位等に基づいて選択的に回答結果を生成するようにしても良い。
【００５４】
回答制御部１０２は、ルール型検索部１０５、正規表現型検索部１０６、エンティティ‐属性型検索部１０７の何れからも、正常な回答が得られなかった場合は、検索エンジン利用回答サービスサーバ１５０に質問文を送信し、その結果（０件もしくは１件以上）を回答結果として、入出力制御部１０１へ送信する。
【００５５】
サービス対象外判定部１０３は、質問文がサービス対象であるか否かを判定する。サービス対象外判定部１０３は、回答制御部１０２から質問文を受け取り、その質問が知識検索回答サーバ１００で回答すべきものであるか否かを質問回答フロントサーバ５０の回答サービス候補判定部５１より詳細に判定する。
【００５６】
具体的に、サービス対象外判定部１０３は、「教えて」とは入っているが歴史の事実などの一般的な知識に関する質問ではないことが分かるようなキーワード（「かっこいい」「かわいい」などの主観的な質問を示すものなど）が含まれていた場合や、雑談を示すキーワード（ユーザ端末３０の利用者の名前など）、不適切な話題（アダルト分野の質問や領土問題など政治的な主義・主張が関わるものなど）が入っていた場合に知識検索回答サーバ１００のサービス対象外であると判定し、その旨を回答制御部１０２へ送信する。
【００５７】
検索エンジン利用好適判定部１０４は、質問文の内容に基づいて、検索エンジン利用回答サービスサーバ１５０に回答が好適であるか否かを判定する。検索エンジン利用好適判定部１０４は、回答制御部１０２から質問文を受け取り、知識検索回答サーバ１００で対応すべきではあるが、静的なデータベースや固定のプログラムによる回答では回答できないような幅広い知識に関する質問であるか否かを判定する。本実施形態では、物事の理由を尋ねる質問をそのような質問として捉える。具体的には「何故」「なぜ」「理由」「わけ」といったキーワードが質問文に含まれている場合、検索エンジンを使った回答が好適であると判定し、判定結果を回答制御部１０２へ送信する。
【００５８】
なお、検索エンジン利用回答サービスサーバ１５０は、インターネット上のＷｅｂサイトをクローリングし、その内容から検索を行って結果を回答するサービスを行う。検索エンジン利用回答サービスサーバ１５０は、インターネットポータルページで提供されている一般的な検索エンジンを利用してサービス提供しても良いし、より用途に特化したユーザ参加型のＱ＆Ａサービスを提供するようにしても良い。検索エンジン利用回答サービスサーバ１５０は、ルール型検索機能・正規表現型検索機能・エンティティ-属性型検索機能で回答を準備することを意図していない知識についての回答することを目的に設けられている。
【００５９】
回答制御部１０２が、検索エンジン利用回答サービスサーバ１５０へ質問文を送信すると、検索エンジン利用回答サービスサーバ１５０から質問文の内容を含むＷｅｂサイトの検索結果が返却される。検索エンジン利用回答サービスサーバ１５０は、より高い精度を提供する場合は、検索結果中に出現した単語を出現数の順に並べ、最も高いものを回答とするなど統計的な処理を行っても良い。
【００６０】
ルール型検索部１０５は、ルール‐回答表１１０に蓄積された情報に従って、ある特定の言い回しによる質問文に固定の回答を検索し、検索結果を回答制御部１０２へ送信する。なお、質問文から一意に定まる質問を定義型質問という。ルール‐回答表１１０の例を図５に示す。ルール‐回答表１１０は、ルール、回答、回答へ付与する敬称・単位を含む。ルール型検索部１０５は、質問文を検索条件として、ルール‐回答表１１０を検索する。具体的に、ルール型検索部１０５は、まず特定の語尾（「を教えて」「は誰」「は何」など）を質問文から削除した後、削除した質問文を検索キーとして、ルール‐回答表１１０のルールとの完全一致・前方一致検索もしくは部分一致検索を行う。
【００６１】
ルール型検索部１０５は、該当するレコードがある場合、当該レコードに含まれる回答と、回答への敬称・単位とを取り出して、取り出した情報を回答制御部１０２へ送信する。回答制御部１０２は、ルール型検索部１０５から取得した情報に基づいて回答結果を生成する。回答制御部１０２は、例えば”[質問文]についてお調べしたところ答えは[回答][回答の敬称・単位]です。”といった形で入力の質問文と回答、ならびに敬称・単位を連結した文章を回答結果として生成する。
【００６２】
具体例として、「世界一高い山は何」という質問文をルール型検索部１０５が受け付けた場合、まず、ルール型検索部１０５は、質問文の語尾を削除して「世界一高い山」という検索キーを作成する。ルール型検索部１０５は、検索キーを用いて、ルール‐回答表１１０のルールに対して検索すると、回答が「エベレスト」であり、回答への敬称・単位が、何もないレコードを検索する。ルール型検索部１０５は、検索したレコードに基づいた回答を回答制御部１０２へ送信する。ルール型検索部１０５が送信した内容に基づいて、回答制御部１０２が生成した回答結果は、「世界一高い山は何についてお調べしたところ答えはエベレストです。」となる。
【００６３】
一部のルール‐回答表１１０のレコードには回答にどのプログラムを起動すべきかと、それに引き渡す引数とを有するものが存在する。これは固定のデータではなく、後述するプログラム型回答生成部１０８により特定のプログラムを使って、回答を生成する必要があることを意味している。具体例として、「今何時」という質問文をルール型検索部１０５が受け付けた場合、ルール型検索部１０５は、プログラム型回答生成部１０８に、引数を「日本」としてプログラム１を起動することにより得られる回答を要求する。このように、ルール型検索部１０５は、質問文に対応するルール‐回答表１１０のルールの回答がプログラムの回答を必要とする場合、すなわち、質問文にプログラム演算を必要と解釈できる文言が含まれる場合、プログラム型回答生成部１０８による回答を要求する。なお、図５の例では、引数がルール‐回答表１１０中に定義されているが、質問文中から引数に対応する文言を抽出するようにしても良い。質問文中から引数部分を判定する処理の例は、後述する。
【００６４】
ルール型検索部１０５は、上述のような、起動プログラムや引数を有するレコードを検索した場合は、当該レコードに含まれるプログラム及び引数を、プログラム型回答生成部１０８へ送信し、プログラム型回答生成部１０８から取得した情報を回答の形に編集して回答制御部１０２へ送信する。
【００６５】
正規表現型検索部１０６は、いわゆる正規表現型で記載されている質問文に対する回答を行う。具体的には、正規表現型検索部１０６は、回答制御部１０２から得られる質問文に対し、正規表現ルール表１１３に保存された情報を参照して回答を生成し、当該回答を回答制御部１０２へ出力する。ここで、正規表現ルール表１１３を図６に示す。図６に示すように、正規表現ルール表１１３は、「正規表現パターン」と、「回答生成ルール」と、「回答への敬称・単位」とが対応付けられて保存されている。正規表現型検索部１０６は、正規表現と呼ばれる柔軟なパターンマッチを実現する表記方法に基づいた処理エンジンを使い、そのパターンに合致した場合にそれに対応するプログラムを起動する。正規表現の処理エンジンはＪａｖａ（登録商標）などの様々な汎用プログラミング言語で標準のライブラリとして提供されており、本実施形態における正規表現型検索部１０６でもそれらをそのまま活用することを想定する。
【００６６】
正規表現型検索部１０６は、まず質問文に対応する、正規表現ルール表１１３の正規表現パターンが存在するか否かを判断する。図６の１行目の正規表現パターンは、任意の文字列に続き、「は今何時」という文字列が続いた場合にマッチすることを意味している。例えば「ロンドンは今何時」という質問が入力された場合このパターンにマッチする。
【００６７】
また、「正規表現パターン」の丸カッコで囲まれた部分は、その正規表現パターンに対応づいたプログラムに対する引数として使うことを意味している。この例では「ロンドン」が回答生成ルールの引数に使用される。
【００６８】
正規表現型検索部１０６は、質問文に対応する、正規表現ルール表１１３の正規表現パターンが存在する場合、その正規表現パターンに対応づいたプログラムを起動することを、プログラム型回答生成部１０８に通知する。
【００６９】
プログラム型回答生成部１０８は、引数とともに指定されたプログラムを起動し、回答を出力する。上記の例では対応する都市の時刻を生成（「９時５９分」など）し正規表現型検索部１０６へ通知する。
【００７０】
正規表現型検索部１０６は、プログラム型回答生成部１０８から回答を取得すると、当該回答を回答制御部１０２へ送信する。回答制御部１０２は、取得した回答に基づいて、出力用の回答結果を生成する。回答制御部１０２は、例えばルール型検索部１０５と同様に「[質問文]についてお調べしました。答えは[プログラム型回答生成部から得られた回答][回答の敬称・単位]です。」といった文章を質問文・回答・回答の敬称・単位を使って作成する。
【００７１】
エンティティ‐属性型検索部１０７は、所定の対象物の属性を問い合わせる質問文（属性型質問）に対する回答を行う。具体的に、エンティティ‐属性型検索部１０７は、質問文から、その質問文でユーザが問い合わせようとしている対象物を表現するキー情報（エンティティ検索キー）ならびにその対象物の側面を示すキー情報（属性検索キー）を抽出する。
【００７２】
これらの抽出にはさまざまな方法が考えられるが、本実施形態では、エンティティ‐属性型検索部１０７は、キーワードの組合せの場合は一つ目のキーワードをエンティティ検索キー、二つめのキーワードを属性検索キーとして判断する。例えば「○△  監督」というキーワードの場合は「○△」をエンティティ検索キー、「監督」を属性検索キーと判断する。
【００７３】
他にも自然文質問を対象とする場合は「○○の監督は誰」といった形のルール（○○の部分は任意の文字列）と属性を対応付けた形でシステムが受け入れ可能な属性について準備しておき、そのパターンに当てはまった場合のみ○○の部分をエンティティ検索キー、マッチしたパターンに対応付けられた属性をその質問の属性検索キーとする方法などが考えられる。
【００７４】
エンティティ‐属性型検索部１０７は、これらの検索キーを抽出したあと、エンティティ-属性値表１１１を参照して答えにあたる値を検索する。エンティティ-属性値表１１１の例を図７に示す。図７に示すように、エンティティ-属性値表１１１は、「対象」と「属性」と「値」とが関連付けられた情報を管理する。
【００７５】
エンティティ‐属性型検索部１０７は、エンティティに対してはエンティティ検索キーを部分一致検索条件、属性に対して属性検索キーを完全一致の検索条件として、行を抽出する。上記のエンティティ検索キーが「○△」、属性検索キーが「監督」であるような質問の場合、図７の例では「○△と秘密の部屋」の監督としてＡＡＡＡＡＡ、「○△と△×の囚人」の監督としてＢＢＢＢＢＢ、「○△と死の秘宝」の監督としてＣＣＣＣＣＣが抽出される。
【００７６】
続いて、エンティティ‐属性型検索部１０７は、属性表示形式表１１２に対して、エンティティ-属性値表１１１から検索した属性をキーにしてレコードを取り出す。属性表示形式表１１２の例を図８に示す。属性表示形式表１１２は、「属性」と、「エンティティへの敬称・単位」と、「値への敬称・単位」と、「プログラム回答有無」とが対応付けられた情報を管理している。エンティティ‐属性型検索部１０７は、エンティティ-属性値表１１１や属性表示形式表１１２から取り出したレコードの情報を回答として、回答制御部１０２へ送信する。
【００７７】
回答制御部１０２は、例えば「[抽出したエンティティ][エンティティの敬称・単位]の[属性]は、[値][値の敬称・単位]です。」といった形で文章を生成する。上記の例では、「○△と秘密の部屋の監督は、ＡＡＡＡＡＡさんです。」「○△と△×の囚人の監督は、ＢＢＢＢＢＢさんです。」「○△と死の秘宝の監督は、ＣＣＣＣＣＣさんです。」の三つの文章が答えとなる。
【００７８】
また、エンティティ‐属性型検索部１０７は、質問文中から特定の属性検索キーが抽出された場合に、プログラム型回答生成部１０８にその旨を通知して、プログラム型回答生成部１０８からプログラムによる回答を取得しても良い。例えば、質問文が「次の満月は？」である場合、エンティティ‐属性型検索部１０７は、図８の属性表示形式表１１２の属性に「満月」を含むレコードを特定し、属性が「満月」であるレコードのプログラム回答有無にプログラム名が含まれているので、プログラム型回答生成部１０８に対して、引数を「次」として、プログラム３を用いた回答を要求する。そして、質問文が「来週の木曜日は？」である場合、エンティティ‐属性型検索部１０７は、質問文中に、週に関する情報である「来週」と、曜日である「木曜日」とが含まれるので、曜日から日付を回答要求していると判断し、図８の属性表示形式表１１２の属性が「曜日から日付」であるレコードを特定し、当該レコードのプログラム回答有無には、プログラム名が含まれているので、プログラム型回答生成部１０８に対して、引数を、「来週」及び「木曜日」として、プログラム４を用いた回答を要求する。そして、質問文が「来週木曜日は何の日？」である場合、エンティティ‐属性型検索部１０７は、「何の日」という文言から祝日・記念日の回答要求をしていると判断し、図８の属性表示形式表１１２の属性が「祝日・記念日」であるレコードを特定し、当該レコードのプログラム回答有無には、プログラム名が含まれているので、プログラム型回答生成部１０８に対して、引数を「来週木曜」として、プログラム５を用いた回答を要求する。
【００７９】
このように、エンティティ‐属性型検索部１０７は、質問文に対応する属性表示形式表１１２のレコードのプログラム回答有無の情報によりプログラムの回答を必要とすると判断できる場合、すなわち、質問文にプログラム演算を必要と解釈できる文言が含まれる場合、プログラム型回答生成部１０８による回答を要求する。
【００８０】
なお、引数部分を判定する処理は、正規表現ルール表１１３に正規表現パターンを利用するようにしても良い。例えば「○○は何の日」というパターンにマッチした場合、図６に示す正規表現ルールの二番目に存在するルールを起動し、その後の引数の処理を行うなどが考えられる。
【００８１】
プログラム型回答生成部１０８は、ルール型検索、正規表現型検索、エンティティ-属性型検索のそれぞれのルールからプログラムの識別子と引数を与えられ、対応するプログラムを起動し計算によって得られた回答を呼び出し元に返却する。プログラム型回答生成部１０８は、予め固定のデータによって回答ができないような質問に対して、動的に回答を生成して呼び出し元へ返却する。
【００８２】
例えば引数に都市名を受け入れ、その都市の現在時刻を返却するプログラムや、引数に絶対的・相対的な日付を受け入れ、その日付の祝日・記念日を返却するプログラムが考えられる。なお、プログラム型回答生成部１０８は、引数を取得することなく、プログラム演算結果を出力するだけでも良い。例えば、引数無しで現在時刻を出力するプログラムが該当する。
【００８３】
なお、サービス対象外判定部１０３、検索エンジン利用好適判定部１０４、ルール型検索部１０５、正規型表現検索部１０６、及びエンティティ-属性検索部１０７のそれぞれが行う、サービス対象外判定、検索エンジン利用好適判定、ルール型検索、正規表現型検索、及びエンティティ-属性検索は、この順に質問文を転送されるものとして記載をしたが、その一部を一つの機能としてまとめて実施しても構わない。例えばルール型検索の一部のルールにサービス対象外を示すフラグや検索エンジン利用好適を示すフラグを設定しておき、それにマッチした場合にサービス対象外の回答や検索エンジン利用回答サービスサーバ１５０への質問文を送信するようにしても良い。
【００８４】
また、エンティティ-属性型検索１０７がエンティティ-属性型検索をするために、サービス対象外を示す属性や検索エンジン利用回答サービスを使用することが好適である旨を示す属性をエンティティ‐属性値表１１１又は属性表示形式表１１２等に保持するようにしても良い。
【００８５】
続いて、上述のように構成された質問回答フロントサーバ５０及び知識検索回答サーバ１００の動作について説明する。
【００８６】
最初に質問回答フロントサーバ５０の動作について図９に示すフローチャートを用いて説明する。
【００８７】
質問回答フロントサーバ５０のサービス制御部５３は、ユーザ端末３０から質問文を受信すると、当該質問文を受け付ける（ステップＳ１）。
【００８８】
そして、回答サービス候補判定部５１は、回答サービス候補の判定を行う（ステップＳ２）。回答サービス候補の判定処理の詳細は、後述する。
【００８９】
続いて、サービス制御部５３は、回答サービス候補判定部５１が候補としたサーバに対して、質問文を送信すると共に、回答要求を行う（ステップＳ３）。
【００９０】
サービス制御部５３が回答要求を行ったサーバから回答結果を取得した結果、回答が得られた場合又は回答０件である場合（ステップＳ４；Ｙｅｓ）、回答生成部５２は、回答結果をユーザ端末３０へ送信し、ユーザ端末３０は、当該回答結果を表示出力する（ステップＳ６）。
【００９１】
サービス制御部５３が回答要求を行ったサーバから回答結果を取得した結果、回答が得られない場合（ステップＳ４；Ｎｏ）、回答サービス候補が他に有る場合には（ステップＳ５；Ｙｅｓ）、ステップＳ３へ移動し、回答サービス候補が他に無い場合には（ステップＳ５；Ｎｏ）、回答生成部５２は、回答できない旨の情報をユーザ端末３０へ送信する（ステップＳ７）。
【００９２】
続いて、回答サービス候補判定部５１による回答サービス候補の判定を行う処理について、図１０に示すフローチャートを用いて説明する。
【００９３】
回答サービス候補判定部５１は、最初に質問文を受け付ける（ステップＳ２１）。次に回答サービス候補判定部５１は、質問文に「教えて」が含まれている場合（ステップＳ２２；Ｙｅｓ）、回答サービス候補に知識検索回答サーバ１００を追加し（ステップＳ２３）、質問文に「行きたい」が含まれている場合（ステップＳ２４；Ｙｅｓ）、回答サービス候補にその他回答サーバＡ６０Ａを追加し（ステップＳ２５）、質問文に「天気」が含まれている場合（ステップＳ２６；Ｙｅｓ）、回答サービス候補にその他回答サーバＢ６０Ｂを追加する（ステップＳ２７）。なお、ステップＳ２２、ステップＳ２４、及びステップＳ２６のいずれの条件にも該当しない場合、回答サービス候補判定部５１は、回答サービス候補が存在しない旨をサービス制御部５３へ通知する。
【００９４】
続いて、知識検索回答サーバ１００の処理を図１１〜１６に示すフローチャートを用いて説明する。
【００９５】
最初に、知識検索回答サーバ１００の全体処理について図１１に示すフローチャートを用いて説明する。
【００９６】
まず、入出力制御部１０１は、質問回答フロントサーバ５０から回答要求を受け付けると共に、質問文を受け付ける（ステップＳ３１）。
【００９７】
そして、入出力制御部１０１が質問文を受け付けると、回答制御部１０２が回答に関する制御を行う。回答制御部１０２は、サービス対象外判定部１０３に対して、質問文の内容がサービス対象外か否かの判定をさせる（ステップＳ３２）。サービス対象外判定の詳細は、後述する。
【００９８】
サービス対象外判定部１０３が、知識検索回答サーバ１００のサービス対象外と判定した場合（ステップＳ３３；Ｙｅｓ）、回答制御部１０２は、対象外である旨の情報を回答結果として生成し、入出力制御部１０１は、当該回答結果を質問回答フロントサーバ５０へ回答結果として出力する（ステップＳ４１）。
【００９９】
サービス対象外判定部１０３が、知識検索回答サーバ１００のサービス対象と判定した場合（ステップＳ３３；Ｎｏ）、検索エンジン利用好適判定部１０４は、検索エンジン利用が好適であるか否かを判定する（ステップＳ３５）。検索エンジン利用が好適であるか否かを判定する処理の詳細は、後述する。
【０１００】
検索エンジン利用好適判定部１０４が、検索エンジン利用が好適であると判定した場合（ステップＳ３６；Ｙｅｓ）、回答制御部１０２は、検索エンジン利用回答サービスサーバ１５０へ質問文の回答依頼をする（ステップＳ３７）。回答制御部１０２は、検索エンジン利用回答サービスサーバ１５０から回答を取得し、取得した回答を回答結果として生成する。入出力制御部１０１は、当該回答結果を質問フロントサーバ５０へ送信する（ステップＳ４１）。
【０１０１】
検索エンジン利用好適判定部１０４が、検索エンジン利用が好適でないと判定した場合（ステップＳ３６；Ｎｏ）、回答制御部１０２は、ルール型検索部１０５、正規表現型検索部１０６、及びエンティティ‐属性型検索部１０７のそれぞれに回答検索させる（ステップＳ３８）。このように、知識検索回答サーバ１００は、複数種類の検索部を有しているので、複数の質問パターンに対応させることができる。
【０１０２】
ルール型検索部１０５、正規表現型検索部１０６、及びエンティティ‐属性型検索部１０７の検索処理の詳細は、後述する。
【０１０３】
回答制御部１０２がルール型検索部１０５、正規表現型検索部１０６、及びエンティティ‐属性型検索部１０７のそれぞれに回答検索させた結果、１件以上の回答が得られた場合（ステップＳ３９；Ｙｅｓ）、回答制御部１０２が回答から回答結果を生成し、入出力制御部１０１は、回答結果を質問回答フロントサーバ５０へ送信する（ステップＳ４１）。
【０１０４】
回答制御部１０２がルール型検索部１０５、正規表現型検索部１０６、及びエンティティ‐属性型検索部１０７のそれぞれに回答検索させた結果、回答が得られなかった場合（ステップＳ３９；Ｎｏ）、検索エンジン利用回答サービスサーバ１５０へ回答を依頼する（ステップＳ４０）。回答制御部１０２は、検索エンジン利用回答サービスサーバ１５０から取得した回答に基づいて、回答結果を生成する。例えば、検索エンジン利用回答サービスサーバ１５０から０件である旨の回答を取得した場合には、回答制御部１０２は、その旨の情報の回答結果を生成する。入出力制御部１０１は、回答制御部１０２が生成した回答結果を質問回答フロントサーバ５０へ送信する（ステップＳ４１）。
【０１０５】
続いて、サービス対象外判定の処理について図１２に示すフローチャートを用いて説明する。
【０１０６】
サービス対象外判定部１０３は、最初に回答制御部１０２から質問文を取得する（ステップＳ５１）。次に、サービス対象外判定部１０３は、質問文に主観的なキーワードが含まれている場合（ステップＳ５２；Ｙｅｓ）、質問文に雑談を示すキーワードが含まれている場合（ステップＳ５３；Ｙｅｓ）、又は質問文に不適切なキーワードが含まれている場合（ステップＳ５４；Ｙｅｓ）のいずれかに該当するときは、サービス対象外である旨を回答制御部１０２へ通知する（ステップＳ５５）。
【０１０７】
そして、サービス対象外判定部１０３は、質問文に主観的なキーワードが含まれていない場合であり（ステップＳ５２；Ｎｏ）、質問文に雑談を示すキーワードが含まれていない場合であり（ステップＳ５３；Ｎｏ）、且つ質問文に不適切なキーワードが含まれていない場合（ステップＳ５４；Ｎｏ）、回答制御部１０２へサービス対象である旨を通知する（ステップＳ５６）。
【０１０８】
次に、検索エンジン利用好適判定部１０４が、検索エンジン利用が好適か否かを判定する処理について、図１３に示すフローチャートを用いて説明する。
【０１０９】
まず、検索エンジン利用好適判定部１０４は、質問文を回答制御部１０２から取得する（ステップＳ６１）。次に検索エンジン利用好適判定部１０４は、質問文に理由を示すキーワードが含まれている場合（ステップＳ６２；Ｎｏ）、検索エンジン利用が好適でない旨を回答制御部１０２へ通知し（ステップＳ６３）、質問文に理由を示すキーワードが含まれていれば（ステップＳ６２；Ｙｅｓ）、検索エンジン利用回答サービスでの回答が好適である旨を通知する（ステップＳ６４）。このように、検索エンジン利用好適判定部１０４が、検索エンジン利用が好適か否かを判定するので、事実型質問でない質問であるにも関わらず、回答処理をしてしまうことを未然に防止することができる。
【０１１０】
次に、ルール型検索部１０５が行うルール型検索処理について、図１４に示すフローチャートを用いて説明する。
【０１１１】
最初にルール型検索部１０５は、回答制御部１０２から質問文を受け付け（ステップＳ７１）、次にルール型検索部１０５は、特定の語尾を削除し（ステップＳ７２）、質問文の所定箇所を検索キーとして、ルール‐回答表１１０を検索する（ステップＳ７３）。
【０１１２】
ルール型検索部１０５は、回答を検索できない場合（ステップＳ７４；Ｎｏ）、処理を終了し、回答を検索できた場合（ステップＳ７４；Ｙｅｓ）、回答と、回答の敬称・単位の取り出しを行う（ステップＳ７５）。
【０１１３】
ルール型検索部１０５は、質問文中に、プログラム回答が必要な情報が含まれていない場合（ステップＳ７６；Ｎｏ）、ステップＳ７５で取り出した情報を回答制御部１０２へ送信し、回答制御部１０２は、取得した情報に基づいて回答結果を生成する（ステップＳ７８）。
【０１１４】
ルール型検索部１０５は、質問文中に、プログラム回答が必要な情報が含まれている場合（ステップＳ７６；Ｙｅｓ）、プログラム型回答生成部１０８から情報を取得し（ステップＳ７７）、ルール型検索部１０５は、取得した情報と、ステップＳ７５で取り出した情報を回答制御部１０２へ送信し、回答制御部１０２は、取得した情報に基づいて回答結果を生成する（ステップＳ７８）。このように、知識検索回答サーバ１００は、定義型質問について、固定された回答だけでなく、プログラム演算を必要とする回答にも対応することができる。
【０１１５】
次に、正規表現型検索部１０６が行う正規表現型検索処理について、図１５に示すフローチャートを用いて説明する。
【０１１６】
最初に正規表現型検索部１０６は、回答制御部１０２から質問文を取得し（ステップＳ８１）、次に正規表現型検索部１０６は、正規表現表ルール表１１３を参照し、正規表現表のルールを質問文に適用する（ステップＳ８２）。
【０１１７】
正規表現型検索部１０６は、質問文中に正規表現ルール表１１３中のルールが含まれていない場合（ステップＳ８３；Ｎｏ）、処理を終了し、質問文中に正規表現ルール表１１３中のルールが含まれている場合（ステップＳ８３；Ｙｅｓ）、回答プログラムの識別子と、回答の敬称・単位を取り出し（ステップＳ８４）、プログラム型回答生成部１０８から情報を取得し（ステップＳ８５）、取得した情報を回答制御部１０２へ送信する。そして、回答制御部１０２は、回答結果を生成する（ステップＳ８６）。
【０１１８】
次に、エンティティ‐属性型検索部１０７が行うエンティティ属性型検索処理について、図１６に示すフローチャートを用いて説明する。
【０１１９】
最初に、エンティティ‐属性型検索部１０７は、回答制御部１０２から質問文を受け付ける（ステップＳ９１）。そして、エンティティ‐属性型検索部１０７は、質問文からエンティティ検索キー、属性検索キーを抽出し、（ステップＳ９２）、エンティティ属性情報を検索する（ステップＳ９３）。
【０１２０】
エンティティ‐属性型検索部１０７は、回答を検索できない場合（ステップＳ９４；Ｎｏ）、処理を終了し、回答を検索できた場合（ステップＳ９４；Ｙｅｓ）、エンティティへの敬称・単位、値への敬称・単位を取り出す（ステップＳ９５）。
【０１２１】
エンティティ‐属性型検索部１０７は、質問文中に、プログラム回答が必要な情報が含まれていない場合（ステップＳ９６；Ｎｏ）、ステップＳ９５で取り出した情報を回答制御部１０２へ送信し、回答制御部１０２は、取得した情報に基づいて回答結果を生成する（ステップＳ９８）。
【０１２２】
エンティティ‐属性型検索部１０７は、質問文中に、プログラム回答が必要な情報が含まれている場合（ステップＳ９６；Ｙｅｓ）、プログラム型回答生成部１０８から情報を取得し（ステップＳ９７）、エンティティ‐属性型検索部１０７は、取得した情報と、ステップＳ９５で取り出した情報を回答制御部１０２へ送信し、回答制御部１０２は、取得した情報に基づいて回答結果を生成する（ステップＳ９８）。このように、知識検索回答サーバ１００は、属性型質問について、固定された回答だけでなく、プログラム演算を必要とする回答にも対応することができる。
【０１２３】
次に、本実施形態に係る知識検索回答サーバ１００の作用効果について説明する。知識検索回答サーバ１００によれば、入出力制御部１０１が質問文を取得し、ルール型検索部１０５、正規表現型検索部１０６、エンティティ‐属性型検索部１０７、及びプログラム型回答生成部１０８が質問文の回答をし、回答制御部１０２が、上記回答内容に基づいて、回答結果を生成し、入出力制御部１０１が回答結果を出力する。
【０１２４】
このように、知識検索回答サーバ１００は、複数パターンの事実型質問（例えば、定義型質問や属性型質問）の回答部を有しているので、それぞれのパターンの質問の回答を行うことができる。すなわち、様々な種類の事実型質問に対して柔軟に回答を行うことができる。
【０１２５】
質問文が定義型質問又は属性型質問であり、さらに質問文中にプログラム演算を必要と解釈できる文言を含む場合、回答制御部１０２は、プログラム型回答生成部１０８による回答と、ルール型検索部１０５又はエンティティ‐属性型検索部１０７のいずれか１つによる回答とに基づいた回答結果を生成する。
【０１２６】
この場合、定義型質問や属性型質問について、固定された回答だけでなく、プログラム演算を必要とする回答にも対応することができる。
【０１２７】
プログラム型回答生成部１０８は、引数に対応するプログラム演算結果を出力する。この場合、引数を利用したプログラム演算の回答をすることができるので、当該引数を用いて動的に変動し得る回答を生成することができる。
【０１２８】
検索エンジン利用好適判定部１０４は、質問文が事実型質問であるか否かを判定する。検索エンジン利用好適判定部１０４によって質問文が事実型質問でないと判定された場合、知識検索回答サーバ１００は、検索エンジン利用回答サービスサーバ１５０へ質問文の回答依頼をする。この場合、知識検索回答サーバ１００は、質問文が事実型質問ではない場合、他の装置へ質問文の回答依頼をするので、予め回答を作成するためのデータやロジックを用意することが難しい分野に対してもインターネット上に存在するＷｅｂサイトから回答を生成することができる。また、事実型質問であるか否かを予め判断しているので、事実型質問でない質問であるにも関わらず、回答処理をしてしまうことを未然に防止することができる。
【０１２９】
回答制御部１０２は、回答がない場合と、回答不能な質問である場合とを識別可能な回答結果を生成する。この場合、回答が得られない場合に、回答が存在しないか、知識検索回答サーバ１００で対応可能な質問ではなかったかを利用者に判別させることができる。
【０１３０】
回答制御部１０２は、質問文の種類に応じて、回答結果のユーザインタフェースを切り替える。この場合、質問文の種類に応じて回答結果のインタフェースを変更するので、ユーザの理解度を向上させることができる。
【０１３１】
回答制御部１０２は、ルール型検索部１０５やエンティティ‐属性型検索部１０７から値や敬称等の付記的情報を取得した場合、当該付記的情報も付加した回答結果を生成する。この場合、質問文で聞かれている対象について、敬称や単位を付記的情報として付加するので、関係者への配慮や異なる単位への変換を実施することができる。
【０１３２】
（他の実施形態）
上述の実施形態では、質問回答フロントサーバ５０と知識検索回答サーバ１００を分けて構成する場合について述べたが、質問回答フロントサーバ５０と知識回答サーバ１００とを一体としたサーバとしても良い。
【符号の説明】
【０１３３】
３０…ユーザ端末、５０…質問回答フロントサーバ、５１…回答サービス候補判定部、５２…回答生成部、５３…サービス制御部、６０…その他回答サーバ、１００…知識検索回答サーバ、１０１…入出力制御部、１０２…回答制御部、１０３…サービス対象外判定部、１０４…検索エンジン利用好適判定部、１０５…ルール型検索部、１０６…正規表現型検索部、１０７…エンティティ‐属性型検索部、１０８…プログラム型回答生成部、１１０…ルール‐回答表、１１１…エンティティ‐属性値表、１１２…属性表示形式表、１５０…検索エンジン利用回答サービスサーバ。
【図１】
0005498556.tif 000002
【図２】
0005498556.tif 000003
【図３】
0005498556.tif 000004
【図４】
0005498556.tif 000005
【図５】
0005498556.tif 000006
【図６】
0005498556.tif 000007
【図７】
0005498556.tif 000008
【図８】
0005498556.tif 000009
【図９】
0005498556.tif 000010
【図１０】
0005498556.tif 000011
【図１１】
0005498556.tif 000012
【図１２】
0005498556.tif 000013
【図１３】
0005498556.tif 000014
【図１４】
0005498556.tif 000015
【図１５】
0005498556.tif 000016
【図１６】
0005498556.tif 000017