(57)【要約】【課題】ユーザの入力に対応する応答をユーザの端末に出力することで、そのユーザとの会話を実現する情報提供システムにおいて、膨大な数の想定入力文（ユーザが入力すると想定される入力文）を含む知識データを容易に生成することが可能な仕組みを提供することである。【解決手段】情報提供システム１は、顧客等の指示に応じて、テンプレートデータ２４０で定義された想定入力文と応答文の組から、中間データ３５０に記憶されたデータごとに、当該想定入力文と応答文の組を展開し、知識データ２５０を生成する。【選択図】図１
2019200659.tif 000002
【特許請求の範囲】
【請求項１】
ユーザが操作する端末からの入力を受信する入力受信手段と、
前記入力に応じて前記端末に出力する応答の内容を決定する応答決定手段と、
知識データとを備えた情報提供システムであって、
前記知識データは、
前記入力として想定される想定入力文と、前記想定入力文に対応する応答文の組を複数含み、
前記想定入力文と前記応答文の組の少なくとも一部は、事前に定義されたテンプレート想定入力文とテンプレート応答文の組を、所定のデータ群のそれぞれに関し展開することによって生成され、
前記応答決定手段は、前記入力が前記知識データの前記想定入力文のいずれかに関連する場合に、当該関連する想定入力文に対応する応答文に基づいて、前記応答の内容を決定することを特徴とする情報提供システム。
【請求項２】
前記応答決定手段は、前記関連する想定入力文に対応する前記応答文に所定のコードが含まれている場合に、前記所定のコードに対応するデータを取得し、前記取得されたデータに基づいて前記応答の内容を決定することを特徴とする、請求項１に記載の情報提供システム。
【請求項３】
前記所定のデータ群は、既存の管理データから生成可能であることを特徴とする、請求項１、又は２に記載の情報提供システム。
【請求項４】
ユーザが操作する端末からの入力を受信し、前記入力に対応する応答を前記端末に出力することで、前記ユーザとの会話を実現する情報提供システムにおいて、前記応答の内容を決定するために用いられる知識データを生成するためのテンプレートデータのデータ構造であって、
前記入力として想定されるテンプレート想定入力文と、前記テンプレート想定入力文に対応するテンプレート応答文の組を含み、
前記テンプレート想定入力文には、前記テンプレート想定入力文と前記テンプレート応答文の組を、所定のデータ群のそれぞれに関し展開するよう制御するためのコードが含まれていることを特徴とする、テンプレートデータのデータ構造。
【発明の詳細な説明】
【技術分野】
【０００１】
ユーザの入力に応答して情報を提供する情報提供システムに関する。
【背景技術】
【０００２】
近年、ユーザからの質問に対して最適な解を検索し応答するシステムに関する研究が盛んに行われている。さらに、このようなシステムの開発に関連して、ユーザから入力された質問の構文や意味を解析したり、質問に対する解を検索したりするための、自然言語処理技術や人工知能技術についての研究も進められている。
【０００３】
例えば、ユーザからの入力文字列を受信し、知識データに基づいて当該入力文字列に対応する応答内容を決定し、その応答内容を含む応答データをユーザの端末に送信する情報提供システムが開示されている（特許文献１参照）。
【０００４】
この情報提供システムは、文字列と、当該文字列に対応付けられた応答文字列を含む知識データを備えており、知識データの中の文字列に、ユーザの入力文字列に近いものが見つかった場合に、その文字列に対応する応答文字列に基づいて応答内容を決定する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６−９９９６８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述のような情報提供システムにおいて、ユーザからの入力文字列に対応する文字列と応答文字列をそれぞれ定義した知識データを準備しておくことは、対応する入力文字列や話題の数が膨大である場合、非常に煩雑であり、また、そのような知識データのメンテナンスも大きな負担となる。
【０００７】
従って、本発明の目的は、ユーザの入力に対応する応答をユーザの端末に出力することで、そのユーザとの会話を実現する情報提供システムにおいて、膨大な数の想定入力文（ユーザが入力すると想定される入力文）を含む知識データを容易に生成することが可能な仕組みを提供することにある。
【０００８】
また、本発明の目的は、既存の別のデータから、容易に知識データを生成することができる情報提供システムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明は、以下のような情報提供システム、及びデータ構造を提供する。
【００１０】
本発明の第１実施態様は、
ユーザ（例えば、ユーザ１０）が操作する端末（例えば、ユーザ端末１００）からの入力を受信する入力受信手段と、
前記入力に応じて前記端末に出力する応答の内容を決定する応答決定手段と、
知識データ（例えば、知識データ２５０）とを備えた情報提供システム（例えば、情報提供システム１）であって、
前記知識データは、
前記入力として想定される想定入力文（例えば、図８Ｂに示す知識データ２５０の想定入力文（Ｑ））と、前記想定入力文に対応する応答文（例えば、図８Ｂに示す知識データ２５０の応答文（Ａ））の組（例えば、図８Ｂに示す知識データ２５０のＤ２、Ｄ３等）を複数含み、
前記想定入力文と前記応答文の組の少なくとも一部は、事前に定義されたテンプレート想定入力文（例えば、図８Ａに示すテンプレートデータ２４０の想定入力文（Ｑ））とテンプレート応答文（例えば、図８Ａに示すテンプレートデータ２４０の応答文（Ａ））の組（例えば、図８Ａに示すテンプレートデータ２４０のＤ１）を、所定のデータ群（例えば、中間データ３５０に記憶されたデータ）のそれぞれに関し展開することによって生成され、
前記応答決定手段は、前記入力が前記知識データの前記想定入力文のいずれかに関連する場合に、当該関連する想定入力文に対応する応答文に基づいて、前記応答の内容を決定するように構成される。
【００１１】
本発明のこのような構成によって、所定のデータ群に関してテンプレートデータが知識データに展開されるため、膨大な数の想定入力文を含む知識データを容易に生成することができる。また、その結果、知識データを提供する企業や組織の労力が軽減される。
【００１２】
本発明の第２実施態様は、第１実施態様において、
前記応答決定手段は、前記関連する想定入力文に対応する前記応答文に所定のコードが含まれている場合に、前記所定のコードに対応するデータを取得し、前記取得されたデータに基づいて前記応答の内容を決定するように構成される。
【００１３】
本発明のこのような構成によって、テンプレートデータに基づいて静的な知識データが生成された後、ユーザの入力文に対する応答が、知識データの内容と所定のコードに応じて動的に取得されたデータとにより決定されるため、膨大な数の想定入力文を含む知識データを容易に生成することができるというメリットを享受しながら、ユーザに対して柔軟な応答を提供することができる。
【００１４】
本発明の第３実施態様は、第１又は第２実施態様において、
前記所定のデータ群は、既存の管理データから生成可能であるように構成される。
【００１５】
本発明のこのような構成によって、例えば、自社の商品リストに含まれるそれぞれの商品に応じた想定入力文と応答文を知識データに記憶させることができるため、自社の管理データと知識データの内容を容易に対応付けることができる。
【００１６】
本発明の第４実施態様は、
ユーザが操作する端末からの入力を受信し、前記入力に対応する応答を前記端末に出力することで、前記ユーザとの会話を実現する情報提供システムにおいて、前記応答の内容を決定するために用いられる知識データを生成するためのテンプレートデータのデータ構造であって、
前記入力として想定されるテンプレート想定入力文と、前記テンプレート想定入力文に対応するテンプレート応答文の組を含み、
前記テンプレート想定入力文には、前記テンプレート想定入力文と前記テンプレート応答文の組を、所定のデータ群のそれぞれに関し展開するよう制御するためのコードが含まれている。
【００１７】
本発明のこのような構成によって、情報提供システムの知識データを、１つのテンプレート（ひな形）から（例えば、自社の商品ごとに）展開して容易に生成することができ、その結果、知識データを提供する企業や組織の労力が軽減される。
【発明の効果】
【００１８】
本発明に係る情報提供システムによって、膨大な数の想定入力文を含む知識データを容易に生成することが可能な仕組みが提供され、知識データを提供する企業や組織の労力が軽減される。
【００１９】
また、本発明に係る情報提供システムによって、企業や組織における管理データなど、既存のデータから容易に知識データを生成することができるため、管理データと知識データの一元管理が容易となり、データの変動に迅速かつ正確に対応することができる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施形態に係る情報提供システムの概要を示す図である。
【図２】本発明の一実施形態に係る情報提供システムの応答文出力処理を例示したフローチャートである。
【図３】本発明の一実施形態に係る情報提供システムの中間ＤＢ生成処理を例示したフローチャートである。
【図４】本発明の一実施形態に係る情報提供システムでの、ユーザ端末における会話画面のグラフィカルユーザインフェースを例示した図である。
【図５】本発明の一実施形態に係る情報提供システムに関連するテンプレートデータ表示画面を例示した図である。
【図６】本発明の一実施形態に係る情報提供システムに関連する知識データ表示画面を例示した図である。
【図７】本発明の一実施形態に係る情報提供システムにおける知識データの生成の流れを説明する図である。
【図８】本発明の一実施形態に係る情報提供システムのテンプレートデータと知識データの例を示す図である。
【図９】本発明の情報提供システムに関連するユーザ端末を構成するコンピュータのハードウェア構成の例を示す図である。
【図１０】本発明の情報提供システムに含まれる情報提供サーバを構成するコンピュータのハードウェア構成の例を示す図である。
【発明を実施するための形態】
【００２１】
以下に、本発明の一実施形態に係る情報提供システム１について、図面を参照して説明する。
【００２２】
図１は、ユーザの入力に対応する応答を提供することで、ユーザとの会話を実現する情報提供システム１を含むシステムの概要を示す図である。
【００２３】
ユーザ１０は、ユーザ端末１００において実行されるＷＥＢブラウザにより表示されている所定のＷＥＢページの入力エリアに、（例えば、ユーザ端末１００のキーボードやタッチパネルを用いて）文字列を入力する。ここでユーザ１０により入力される文字列は、一般的には文章（入力文）の形態であり、自然言語によって表現される。以降、ユーザからの入力は「入力文」と表現するが、文章の形態でなくてもよく、単語や文章の一部などを包含する、様々な入力文字列を意味する。
【００２４】
また、ここで、ユーザ端末１００のＷＥＢブラウザにより表示されるＷＥＢページには、例えば、医薬品などの商品について、成分や効用の説明を行ったり、注文したりするためのＷＥＢページや、レストランなどの施設の場所やサービスの問い合わせに応じるためのＷＥＢページなど、様々な用途・機能のＷＥＢページが含まれる。ユーザ１０は、会話形式で情報提供システム１とやりとりを行い、ユーザ１０が入力する入力文に対する応答として、商品や施設などに関する情報をユーザ端末１００に表示させる。
【００２５】
なお、本実施形態では、ユーザ端末１００で実行されるＷＥＢブラウザが、入力文字列を入力する入力エリアや商品・施設の情報等の応答を表示するように構成されているが、ユーザ端末１００で実行される他のアプリケーションが上記の入力エリアや応答の表示を行うようにしてもよい。
【００２６】
次に、ユーザ１０によりユーザ端末１００から入力された入力文は、ユーザ端末１００のＷＥＢブラウザによりネットワーク５００を介して情報提供システム１に提供される。ここで、ネットワーク５００は、例えば、インターネットを含むネットワークである。
【００２７】
情報提供システム１は、情報提供サーバ２００と情報管理サーバ３００を含むように構成される。また、情報提供サーバ２００は、ユーザ１０に有用な応答を提供するための知識データ２５０を備え、情報管理サーバ３００は、テンプレートデータ２４０と中間データ３５０を備える。情報管理サーバ３００は、テンプレートデータ２４０と中間データ３５０に基づいて知識データ２５０を生成する。また、情報管理サーバ３００は、外部データ４００を取り込むことによって中間データ３５０を生成する。
【００２８】
また、中間データ３５０又は顧客知識データ４１０は、情報提供サーバ２００が、ユーザ１０の入力文に対する応答の内容を決定する場合に、必要に応じて参照されうる。なお、この例では、顧客知識データ４１０は、外部データ４００に含まれるように構成される。顧客知識データ４１０は、例えば、商品の在庫情報等を含む、顧客に関する様々な情報である。
【００２９】
情報提供システム１の情報提供サーバ２００は、ユーザ端末１００から入力文を受信すると、この入力文に関連する入力文（想定入力文）が知識データ２５０の中にあるか否かを判定し、知識データ２５０の中に関連する想定入力文が存在している場合は、その関連する想定入力文に対応する応答文を知識データ２５０から取得し、取得した応答文に基づいて、ユーザ端末１００に表示させる応答の内容を決定する。
【００３０】
知識データ２５０には、ユーザ１０が入力するであろうと想定される想定入力文と、この想定入力文に対する応答である応答文とからなる組が複数含まれる。また、情報提供サーバ２００は、知識データ２５０の中の想定入力文に、ユーザ１０の入力文と関連するものがあるか否かを判定するが、この場合、必ずしも、ユーザ１０の入力文と知識データ２５０の想定力入力文が完全に一致する必要はなく、不一致であっても、（例えば、意味が近いことを示す）所定の判定基準を満たした場合に、両者は関連すると判定される。
【００３１】
ここで、情報提供システム１が不特定のユーザに利用可能なものとして提供される場合、ユーザ１０としては、ＷＥＢサイトを提供する企業や組織（の商品やサービス等）に対して質問等を行う一般ユーザが想定され、ユーザ端末１００は、通常、インターネット等に接続可能なユーザ１０が所有するスマートフォンやＰＣ（パーソナルコンピュータ）等が想定される。
【００３２】
また、一般的に、外部データ４００は、情報提供システム１を提供する企業や組織とは異なる企業等（以降、情報提供システム１の提供者にとって、情報提供システム１を利用する取引先であるという意味から「顧客」と称する）から提供される。外部データ４００は、例えば、顧客が販売する商品等の管理データを含む。また、外部データ４００に基づいて中間データ３５０を生成する処理の指示は、通常、この顧客が行う。
【００３３】
なお、図１では、ユーザ１０が、ＷＥＢサイトの入力エリアに、キーボード等で文字列を入力することで、質問等を情報提供システム１に提供する構成としたが、情報提供システム１としては、どのような方法・ルートで文字列を受信してもよい。例えば、ユーザ１０が音声によって質問を発した場合に、この音声に対して音声認識処理を施して文字列に変換し、当該変換された文字列を情報提供システム１に提供することができる。また、印字された質問事項等をＯＣＲ（Optical  Character  Recognition）によって文字列に変換し、当該変換された文字列を情報提供システム１に提供するといったことも考えられる。
【００３４】
また、情報提供システム１からの応答文も、文字だけでなく、音声や図形等、様々な方法・ルートでユーザ端末１００に提供されうる。
【００３５】
なお、本実施形態の情報提供サーバ２００は、ユーザ端末１００において実行されるＷＥＢブラウザとｈｔｔｐ等のプロトコルによってデータ送受信を行い、当該ＷＥＢブラウザに所定のＷＥＢページを表示させるように動作するＷＥＢサーバの機能も有している。
【００３６】
また、情報提供サーバ２００と情報管理サーバ３００は、ここでは、それぞれ１つのコンピュータとして示されているが、複数のコンピュータによって同様の機能を分散して実行するよう構成することもできる。また、情報提供サーバ２００と情報管理サーバ３００を統合して１つのコンピュータで実現するようにしてもよい。
【００３７】
さらに、本実施形態では、知識データ２５０、テンプレートデータ２４０、中間データ３５０も、それぞれ１つのデータとして構成されているが、このように記憶されているデータを様々な単位で分割し、複数のサイトやコンピュータに分散させることができる。また、知識データ２５０、テンプレートデータ２４０、中間データ３５０はそれぞれ、どのようなデータ形式で記憶されてもよい。例えば、ＣＳＶデータ、テキストデータ、所定のＤＢＭＳ（データベース管理システム）でアクセス可能なデータベース、所定のアプリケーションでアクセス可能な特定のファイル等が考えられる。
【００３８】
図２は、本実施形態に係る情報提供システム１における応答文出力処理の流れを示すフローチャートである。この処理は、上述したように、情報提供サーバ２００が知識データ２５０を参照して、ユーザ１０の入力文に対する応答の内容を決定し、応答文をユーザ端末１００に表示させるよう制御する。
【００３９】
最初に、ステップＳ１１において、情報提供サーバ２００は、ユーザ端末１００からユーザ１０の入力文を受信したか否かを判定する。入力文を受信していない場合は（ステップＳ１１のＮＯ）、当該判定処理を繰り返し、受信している場合は（ステップＳ１１のＹＥＳ）、ステップＳ１２に進む。
【００４０】
ステップＳ１２において、情報提供サーバ２００は、ユーザ端末１００から受信したユーザ１０の入力文を解析する。この解析処理は、例えば、形態素解析や意味解析であり、このような解析によって、入力文に含まれる単語を抽出するとともに句、文章の認識を行う。
【００４１】
次に、ステップＳ１３に進み、そこで、補完処理を行う。この補完処理では、知識データ２５０に含まれる想定入力文と効果的な比較が行えるように、言い回しを調整する言い回し処理、修飾関係解析処理、単語の親子関係判定処理、単語の重要度判定処理、及び肯定否定判定処理等を行う。
【００４２】
次に、ステップＳ１４において、ユーザ１０の入力文に関連する想定入力文（ここでは、必要に応じ、知識データ２５０に記憶されている想定入力文を「Ｑ」として表す）を、知識データ２５０の中で検索する。知識データ２５０の中に、ユーザ１０の入力文に関連する想定入力文（Ｑ）が見つかった場合は、ステップＳ１５において、見つかった想定入力文（Ｑ）に対応する応答文（ここでは、必要に応じ、知識データ２５０に記憶されている応答文を「Ａ」として表す）を、知識データ２５０の中で検索し取得する。なお、ここでは、関連する想定入力文（Ｑ）として、ユーザ１０の入力文と一致するものだけでなく、ユーザ１０の入力文と意味が近いと判定された入力文も選択されうる。
【００４３】
なお、ここで、知識データ２５０の中に、ユーザ１０の入力文に関連する想定入力文（Ｑ）が見つからなかった場合、情報提供サーバ２００は、ユーザ端末１００に、入力文に対する応答が見つからなかった旨のメッセージを表示したり、当該入力文の意図を確認するための質問を表示したり、他の話題に誘導するような表示をしたりすることができるが、このフローでは当該処理を省略する。
【００４４】
次に、ステップＳ１６において、ステップＳ１５で取得した応答文（Ａ）の内容を判定し、応答の内容を生成するために所定の問い合わせが必要か否かを判定する。この判定処理は、例えば、応答文（Ａ）の中に、所定の態様のコードが含まれているか否かで判定される。問い合わせが必要であると判定した場合（ステップＳ１６のＹＥＳ）、情報提供サーバ２００は、図１に示した中間データ３５０や顧客知識データ４１０等にアクセスし、所定のコードに応じた、応答文（Ａ）に関する情報を取得する（ステップＳ１７）。また、情報提供サーバ２００は、ユーザ１０から入力した入力文から、所定のコードに応じた、応答文（Ａ）に関する情報を取得する場合もある。なお、情報提供サーバ２００は、本実施形態では、ＡＰＩ等を利用して、情報管理サーバ３００を経由し中間データ３５０や外部の顧客知識データ４１０（外部データ４００）にアクセスする。
【００４５】
上述のように、情報提供サーバ２００は、応答文（Ａ）に記述されているコードに応じて、中間データ３５０、顧客知識データ４１０、ユーザ１０からの入力文等、様々なリソースにアクセスして必要なデータを取得するが、どのリソースに取得するかは、例えば、コードの体系やコードの内容によって判断することができる。また、応答文（Ａ）に記述されているコードに応じて、どのような方法でどこにアクセスするかを、別途定義したデータを参照して判断するようにしてもよい。
【００４６】
ステップＳ１７の後、又は問い合わせが必要でないと判定した場合（ステップＳ１６のＮＯ）、ステップＳ１８の処理に進み、そこで、情報提供サーバ２００は、取得した応答文（Ａ）に基づいて、ユーザ１０に提供する応答の内容を決定する。なお、ステップＳ１７において、所定のコードに応じた、応答文（Ａ）に関する情報を取得している場合は、その情報と応答文（Ａ）に基づいて、ユーザ１０に提供する応答の内容を決定し、生成する。
【００４７】
次に、ステップＳ１９において、情報提供サーバ２００が、ステップＳ１８で生成された応答をユーザ端末１００に出力するよう制御する。例えば、ユーザ端末１００がＷＥＢブラウザによってユーザ１０の入力を送信してきた場合は、応答の内容を表示するよう構成されたＷＥＢページを生成し、そのＷＥＢページを含むデータをユーザ端末１００に送信する。
【００４８】
図３は、本実施形態に係る情報提供システム１における中間データ生成処理の流れを示すフローチャートである。この処理は、上述したように、顧客の指示により、情報管理サーバ３００が、例えば、顧客が管理するデータである外部データ４００のデータを取り込んで中間データ３５０を生成するよう制御する。こうした中間データ生成処理は、外部データ４００に変更があったタイミングや、設定された周期的タイミングといった様々なタイミングで、繰り返し行われうる。
【００４９】
最初に、顧客（すなわち、情報提供システム１の利用者であって、ユーザ１０に情報を提供する企業等）が利用する顧客端末１５０において、顧客の指示により抽出プログラムが実行され、外部データ４００からデータを抽出し、必要に応じてそのデータの加工を行う（ステップＳ３１）。ここで、外部データ４００は、例えば、顧客が管理する商品データや知識データである。
【００５０】
外部データ４００は、どのような形式のファイルであってもよいし、また、複数のファイルであってもよい。例えば、顧客の扱う商品の情報を記憶するデータ、商品ごとの応答パターンを定義しファイル、及び同義語を定義したファイルを含むように構成することができる。また、この外部データ４００から抽出されるデータは、最終的に、上述した知識データ２５０を生成するためのデータである。
【００５１】
次に、ステップＳ３２において、ステップＳ３１で抽出されたデータ（抽出データ）が、顧客の指示により、顧客端末１５０から情報管理サーバ３００にアップロードされる。
【００５２】
ステップＳ３３において、顧客端末１５０から抽出データを受信した情報管理サーバ３００は、この抽出データを所定の記憶装置に記憶する。次に、ステップＳ３４において、別途、記憶装置に記憶されている修正差分データが存在するか否かを判定する。
【００５３】
修正差分データが存在すると判定された場合（ステップＳ３４のＹＥＳ）、ステップＳ３５において、抽出データと修正差分データに基づいて、中間データ３５０を生成する。
【００５４】
上述の外部データ４００が、例えば、顧客が扱う商品（医薬品）の情報を記憶する商品管理ＤＢであるとすると、この商品管理ＤＢには、製品ＩＤ、製品名、一般名、規格、色サイズ、同義製品名、詳細情報ＵＲＬ等の項目が記憶されており、これらの項目から、抽出プログラムが必要な項目を選択するとともに、判定した記憶位置からデータを取り出して中間データ３５０が生成される。中間データ３５０は、例えば、「{"製品ID":"1","製品名":"Ｍ1a","一般名":"Ｍ1","識別コード":"S1","規格":"錠60mg","同義":["SA1","SA2","SB錠60mg"],"色サイズ":{"直径(mm)":"7.0","厚さ(mm)":"3.8","色調":"黄色"},"詳細情報URL":"URL-1a"}」といった所定データ形式のレコードを複数含むように構成される。
【００５５】
一方、修正差分データが存在しないと判定された場合（ステップＳ３４のＮＯ）、ステップＳ３６において、抽出データと修正差分データに基づいて、中間データ３５０を生成する。顧客が最初に中間データ３５０を生成する場合、修正差分データはないので、ステップＳ３６の処理によって中間データ３５０を生成することになる。
【００５６】
ステップＳ３５、又はステップＳ３６の後、ステップＳ３７において、中間データ３５０が生成された旨を（例えば、メール等によって）顧客端末１５０に送信することによって顧客に通知する。
【００５７】
次に、ステップＳ３８において、情報管理サーバ３００は、中間データ３５０生成後のデータ調整を行い、調整の内容・履歴を示すデータを、修正差分データとして上述の記憶装置に記憶する。このような、中間データ３５０の調整は、顧客の指示に応じて、顧客端末１５０から行うこともできるし、情報提供システム１の提供者又は運営者の指示によって行うようにすることもできる。また、情報提供システム１が所定のルールに従い、自動的に調整するようにしてもよい。
【００５８】
また、ステップＳ３８では、修正差分データに基づいて、即時に中間データ３５０に反映する場合もあるし、一旦、未調整データとしてエクスポートされ、その時点では中間データ３５０には反映されず、その後、調整され修正差分データとして記憶される場合もある（この場合、調整されたデータは、次回の中間データ生成処理で、中間データ３５０に反映される）。
【００５９】
このように、中間データ３５０に関する調整の内容・履歴を示すデータを修正差分データとして別途記憶しておき、中間データ生成処理のたびに、修正差分データを中間データ３５０の元データとして利用することにより（ステップＳ３５参照）、中間データ３５０の調整に合わせて外部データ４００を修正することなく、調整された中間データ３５０を単純な手順で生成することができ、結果的に、外部データ４００の一元管理が容易となる。
【００６０】
図４には、ユーザ端末１００の会話画面１２０のグラフィカルユーザインフェース（ＧＵＩ）の一例が示されている。会話画面１２０には、キャラクタ表示部１２１、入力応答表示部１２２が示されている。キャラクタ表示部１２１には、例えば、ユーザ１０の入力や応答の表示に対応して表情や動きを変化させるコンシェルジュのキャラクタが表示される。入力応答表示部１２２には、ユーザ１０がユーザ端末１００に入力した質問等を含む入力文が表示され、さらに、その入力文に対応する情報提供システム１からの応答が表示される。入力応答表示部１２２に示されるように、ユーザ１０と情報提供システム１との間の会話のやりとりに応じて、入力文と応答の表示が、時系列に下方向に展開される。
【００６１】
また、図４に示すように、情報提供システム１からの応答には、応答文のほか、応答に係る詳細な情報を表示するためのリンクボタン１２２ａが示されている。例えば、ユーザ１０がリンクボタン１２２ａを押下（又はタッチ）すると、ユーザ端末１００の表示が、詳細情報を表示する別のＷＥＢページに遷移する。このほか、応答に関連する情報を表示するために、入力応答表示部１２２の下部等に商品等の詳細な情報や画像を表示させることもできる。
【００６２】
図５は、テンプレートデータ表示画面６００の例を示す図である。テンプレートデータ２４０は知識データ２５０の元となるデータであり、顧客、あるいは情報提供システム１の提供者又は運営者等によって（情報管理サーバ３００に端末から指示を送信することによって）作成される。また、テンプレートデータ表示画面６００は、このテンプレートデータ２４０を編集して表示した画面であり、例えば、情報管理サーバ３００に接続された作成者の端末に表示される。
【００６３】
図５のテンプレートデータ表示画面６００に例示されているテンプレートデータは、医薬品の商品案内に関する知識データの元となるデータと、書店やレストランといった施設の道順案内に関する知識データの元となるデータを含んでいる。
【００６４】
ここで、図５のテンプレートデータ表示画面６００では、テンプレートデータのそれぞれがファイルシステムのディレクトリのような様式で表されており、各データは他のデータとの従属関係を示す階層構造で表されている。また、矩形に囲まれたマイナスのシンボルが表示されたデータは、そのデータに関する下位の従属データが表示されている状態を表し、矩形に囲まれたプラスのシンボルが表示されたデータは、そのデータに関する下位の従属データが表示されていない状態を表している。
【００６５】
また、上記のシンボルの右横に「＜Ｑ＞」があれば、それは想定入力文のテンプレートであることを表しており、「＜Ａ＞」があれば、それは応答文のテンプレートであることを表している。またさらに、矩形に囲まれた矢印のシンボルが表示されたデータは、そのデータが、条件付き応答文のテンプレートであることを表している。
【００６６】
例えば、医薬品の商品案内に関するテンプレートデータの「メイン」では、第１の想定入力文のテンプレートとして「＄（＜！［ｃｄａｔａ［ｒｅｔｕｒｎ  ｇｅｔＡｌｌＭｅｄｉｃｉｎｅＮａｍｅ（）］］＞）という薬はある？」という文字列が定義されている。この中の、「＄（＜！［ｃｄａｔａ［ｒｅｔｕｒｎ  ｇｅｔＡｌｌＭｅｄｉｃｉｎｅＮａｍｅ（）］］＞）」の文字列は、後述するように、中間データ３５０に基づいて、それぞれの医薬品の一般名等を組み込むためのコードである。
【００６７】
上述した第１の想定入力文のテンプレートの下位に従属するデータとして、条件付き応答文のテンプレート「＆［ｓｔｏｃｋ］＞０」が定義されている。これは、＆［ｓｔｏｃｋ］のコードに応じて取得されるデータ（ここでは、中間データ３５０や顧客知識データ４１０から取得される、顧客における在庫数）が０を超える場合に、下位のシンボルで示された応答文のテンプレートとして「はい、ございます」が対応付けられる。
【００６８】
さらに、この応答文のテンプレート「はい、ございます」の下位に従属する想定入力文のテンプレートが３つ存在し、これらは、それぞれ「どんな商品がある？」、「錠剤タイプのものはある？」、「値段は？」という入力文を定義している。
【００６９】
上記の想定入力文のテンプレート「どんな商品がある？」の下位に従属する応答文のテンプレートは、条件付きではなく、「＆［ＵＩ_ｍ−ｎａｍｅ］には、＄（＜！［ｃｄａｔａ［ｒｅｔｕｒｎ  ｇｅｔＳｔｏｃｋＭｅｄｉｃｉｎｅＩｎｆｏ（）］］＞）」のテンプレートが定義されている。ここで、「＆［ＵＩ_ｍ−ｎａｍｅ］」は、ユーザ１０の入力文から抽出された医薬品の名称であり、＆［ＵＩ_ｍ−ｎａｍｅ］のコードに応じて取得されるデータである。
【００７０】
また、「＄（＜！［ｃｄａｔａ［ｒｅｔｕｒｎ  ｇｅｔＳｔｏｃｋＭｅｄｉｃｉｎｅＩｎｆｏ（）］］＞）」の文字列は、後述するように、中間データ３５０に基づいて、それぞれ在庫のある医薬品の製品名等を組み込むためのコードである。
【００７１】
想定入力文のテンプレート「錠剤タイプのものはある？」、「値段は？」はそれぞれ、下位となる応答文のテンプレートが存在するが、テンプレートデータ表示画面６００では表示されていない（想定入力文のテンプレートに係るシンボルが、矩形に囲まれた＋）。
【００７２】
また、上述した第１の想定入力文のテンプレートの下位に従属する他のデータとして、条件付き応答文のテンプレート「＆［ｓｔｏｃｋ］＝０」が定義されている。これは、＆［ｓｔｏｃｋ］のコードに応じて取得されるデータ（ここでは、顧客における在庫数）が０である場合に、下位のシンボルで示された応答文のテンプレートとして「申し訳ございません。ただいま欠品中です」が対応付けられる。
【００７３】
想定入力文のテンプレート「申し訳ございません。ただいま欠品中です」は、下位となる応答文のテンプレートが存在するが、テンプレートデータ表示画面６００では表示されていない（想定入力文のテンプレートに係るシンボルが、矩形に囲まれたプラスで表されている）。
【００７４】
同様に、書店やレストランといった施設の道順案内についても、想定入力文とこれに対応する応答文のテンプレートが定義されている。また、上記の医薬品の商品案内に関するものと同様に、「＄（・・・）」のコードは、中間データ３５０に基づいて、それぞれ対応するデータを組み込むためのコードであり、「＆［・・・］」のコードは、中間データ３５０や顧客知識データ４１０、又はユーザ１０の入力文から抽出されたデータを取得するためのコードである。
【００７５】
図５に示すように、テンプレートデータ２４０は、ファイルシステムのディレクトリのように、階層構造により表されるが、例えば、想定入力文の下位に従属する応答文は、その想定入力文に対して表示しようとする応答文であり、さらに、応答文の下位に従属する想定入力文は、その応答文に対して想定される入力文であり、このような階層構造によって、会話のシナリオが定義されていることが分かる。
【００７６】
また、テンプレートデータは、後述するようなデータ構造であり、テキストエディタ等で編集可能であるが、図５のテンプレートデータ表示画面６００でデータの追加、変更、削除等の編集をするように構成することも可能である。
【００７７】
図６の知識データ表示画面６１０に例示されている知識データ２５０は、医薬品の商品案内に関する知識データと、書店やレストランといった施設の道順案内に関する知識データを含んでおり、図５に示したテンプレートデータをコンパイルして展開した結果、得られたデータである。
【００７８】
上記のようなテンプレートデータのコンパイルは、例えば、顧客、あるいは情報提供システム１の提供者又は運営者等によって（情報管理サーバ３００に端末から指示を送信することによって）実行される。また、知識データ表示画面６１０は、この知識データ２５０を編集して表示した画面であり、例えば、情報管理サーバ３００に接続されたコンパイル実行者の端末に表示される。
【００７９】
ここで、図６の知識データ表示画面６１０では、図５のテンプレートデータ表示画面６００と同様、知識データ２５０のそれぞれがファイルシステムのディレクトリのような様式で表されており、各データは他のデータとの従属関係を示す階層構造で表されている。また、矩形に囲まれたマイナスのシンボルが表示されたデータは、そのデータに関する下位の従属データが表示されている状態を表し、矩形に囲まれたプラスのシンボルが表示されたデータは、そのデータに関する下位の従属データが表示されていない状態を表している。
【００８０】
また、上記のシンボルの右横に表示される「＜Ｑ＞」、「＜Ａ＞」、矩形に囲まれた矢印のシンボルについても、図５のテンプレートデータ表示画面６００と同様である。
【００８１】
図６の知識データ表示画面６１０では、例えば、図５で説明した第１の想定入力文のテンプレートデータと、これに対応する応答文の組が、医薬品の一般名ごとに複数展開されて、想定入力文とこれに対応する応答文からなるいくつかの組を形成している。この組は、下位の想定入力文や応答文を含むものである。
【００８２】
すなわち、符号６１０ａで示される組は、最上位の想定入力文が「Ｍ１という薬はある？」というもので、これは、図５の第１の想定入力文のテンプレート「＄（＜！［ｃｄａｔａ［ｒｅｔｕｒｎ  ｇｅｔＡｌｌＭｅｄｉｃｉｎｅＮａｍｅ（）］］＞）という薬はある？」という文字列において、「＄（・・・）」の部分に「Ｍ１」という医薬品の一般名が組み込まれたものである。
【００８３】
また、第１の想定入力文の下位の条件付き応答文「＆［ｓｔｏｃｋ］＞０」は、図５のテンプレートと同様にそのまま展開され、その下位の応答文の「はい、ございます」も図５のテンプレートと同様にそのまま展開され、さらに、その下位の３つの想定入力文の「どんな商品がある？」、「錠剤タイプのものはある？」、「値段は？」も図５のテンプレートと同様にそのまま展開される。
【００８４】
ただし、想定入力文の「どんな商品がある？」の下位の応答文は、「＆［ＵＩ_ｍ−ｎａｍｅ］には、商品名Ｍ１ａ（錠剤タイプ６０ｍｇ、１２錠  詳細はこちら（URL-1a））、商品名Ｍ１ｂ（顆粒タイプ１００ｍｇ、２０包  詳細はこちら（URL-1b））があります」と定義され、図５のテンプレートの「＄（・・・）」のコードの代わりに、一般名「Ｍ１」の医薬品に対応する製品名として２つの製品名「Ｍ１ａ」，「Ｍ１ｂ」についての情報が組み込まれる。なお、このような情報の他に、それぞれの製品の在庫数を組み込むようにしてもよい。
【００８５】
さらに、図５で説明した第１の想定入力文のテンプレートデータと、これに対応する応答文の組は、符号６１０ｂで示される組に展開される。すなわち、この組は、最上位の想定入力文が「Ｍ２という薬はある？」というもので、これは、図５の第１の想定入力文のテンプレート「＄（＜！［ｃｄａｔａ［ｒｅｔｕｒｎ  ｇｅｔＡｌｌＭｅｄｉｃｉｎｅＮａｍｅ（）］］＞）という薬はある？」という文字列において、「＄（・・・）」の部分に「Ｍ２」という医薬品の一般名が組み込まれたものである。
【００８６】
また、第１の想定入力文の下位の条件付き応答文「＆［ｓｔｏｃｋ］＞０」は、図５のテンプレートと同様にそのまま展開され、その下位の応答文の「はい、ございます」も図５のテンプレートと同様にそのまま展開され、さらに、その下位の３つの想定入力文の「どんな商品がある？」、「錠剤タイプのものはある？」、「値段は？」も図５のテンプレートと同様にそのまま展開される。
【００８７】
ただし、想定入力文の「どんな商品がある？」の下位の応答文は、「＆［ＵＩ_ｍ−ｎａｍｅ］には、商品名Ｍ２ａ（錠剤タイプ６０ｍｇ、２４錠  詳細はこちら（URL-2a））、商品名Ｍ２ｂ（錠剤タイプ６０ｍｇ、４８錠  詳細はこちら（URL-2b））があります」と定義され、図５のテンプレートの「＄（・・・）」のコードの代わりに、一般名「Ｍ２」の医薬品に対応する製品名として２つの製品名「Ｍ２ａ」、「Ｍ２ｂ」についての情報が組み込まれる。
【００８８】
以下同様に、図５で説明した第１の想定入力文のテンプレートを含む組が、顧客の提供する外部データ４００から抽出された中間データ３５０に含まれる商品のそれぞれについて展開され、さらに、他の最上位の想定入力文のテンプレートを含む組についても同様に、中間データ３５０に基づいて展開され、それぞれの商品に対応付けられた知識データ２５０が生成される。
【００８９】
なお、この例では、想定入力文の「どんな商品がある？」の下位の応答文は、共通のパターンとなっているが、医薬品の一般名ごと、又は医薬品の製品名ごとに異なる応答文とすることも可能である。例えば、顧客は、中間データ３５０を生成するための外部データ４００において、特定の一般名の医薬品については、ＵＲＬ情報を提供して、そのＵＲＬを参照するように誘導する応答とし、他の特定の一般名の医薬品については、具体的な個別の説明文を表示するよう定義することができる。
【００９０】
なお、知識データ２５０は、後述するようなデータ構造であり、テキストエディタ等で編集可能であるが、図６の知識データ表示画面６１０でデータの追加、変更、削除等の編集をするように構成することも可能である。
【００９１】
このようなコンパイル処理により知識データ２５０が生成されると、例えば、コンパイル実行者の指示により、その知識データ２５０が、情報提供サーバ２００で利用可能とされる（すなわち、「公開」される）。
【００９２】
本実施形態では、このように、テンプレートデータ２４０に基づいて知識データ２５０が展開され（例えば、顧客が実際に取り扱っている商品のそれぞれに関して想定入力文と応答文の組が生成され）るため、想定入力文と応答文のパターンやシナリオを、商品ごとに作成する必要がなく、膨大な数の商品について知識データ２５０を１つ１つ定義しておく必要がある場合、その労力を大きく低減させることができる。担当者は、想定入力文と当該想定入力文に対応する応答の組からなる共通パターンについて、１つのテンプレートを作成するだけでよい。
【００９３】
図７は、本実施形態における知識データ２５０を生成する処理の流れを示した図である。顧客が操作する顧客端末１５０は、情報提供システム１の情報管理サーバ３００に接続し、コンパイルの指示を行うことによって、中間データ３５０を参照して、（例えば、商品ごとに、テンプレートデータ２４０の想定入力文と応答文の組を個別に）展開し、知識データ２５０を生成する。
【００９４】
より具体的には、コンパイル処理では、テンプレートデータ２４０を参照し、想定入力文の中に、スクリプトや関数など、所定のコードを発見した場合に、これを解釈・実行して、そのスクリプトや関数に従って、中間データ３５０に記憶された所定の項目（例えば、商品の一般名等）を参照し、その項目ごとに、想定入力文と応答文の組を生成し、知識データ２５０に蓄積していく。
【００９５】
例えば、図５に示すテンプレートデータ２４０に記述されている「ｇｅｔＡｌｌＭｅｄｉｃｉｎｅＮａｍｅ（）」は、中間データ３５０に記憶されている医薬品の一般名をすべて取得する関数名であり、この関数が所定の実行環境で実行された結果、すべての医薬品（一般名）について、知識データが展開されることになる。また、図５に示すテンプレートデータ２４０に記述されている「ｇｅｔＳｔｏｃｋＭｅｄｉｃｉｎｅＩｎｆｏ（）」は、中間データ３５０に記憶されている医薬品の一般名に対応する製品名のうち、在庫のある製品の製品名をすべて取得する関数名であり、この関数が所定の実行環境で実行された結果、医薬品（一般名）に関する知識データに従属する知識データとして、その医薬品に係る製品のうち、在庫があるものが展開されることになる。なお、このとき、関数は、各製品の在庫数を取得するようにしてもよい。
【００９６】
本実施形態では、上述のように、テンプレートデータ２４０に、実行すべき関数名を含むコードが含まれるように構成されるが、読み込んだ際に、どのような展開処理を行うかが把握できれば、どのようなコードを記述しておいてもよい。また、どの想定入力文（Ｑ）、又はどの応答文（Ａ）に、中間データ３５０等を参照した展開処理をどのように行うかを別途定義したデータを記憶しておくなど、他の様々な仕組みを構築することが可能である。
【００９７】
ここで、中間データ３５０の作成（生成）も、顧客端末１５０を介した指示により情報管理サーバ３００が行う（図３参照）。また、テンプレートデータ２４０は、顧客によって設計・作成されうる。
【００９８】
従って、本発明の情報提供システム１では、テンプレートデータ２４０の設計・作成を、顧客等が、想定入力文と応答文の組の変更やシナリオの変更に応じて適宜（すなわち、「動的」に）行うことが可能であり、同様に、中間データ３５０の作成も、商品の変動等に応じて適宜（すなわち、「動的」に）行うことができる。そして、上記のコンパイル処理によって、知識データ２５０が生成されると、この知識データ２５０は、少なくとも、ユーザ１０との会話制御の間は変更されない、「静的」な知識として情報提供サーバ２００によって参照される。
【００９９】
なお、顧客は、ユーザ１０でどのような話題が会話の対象になるかに関わらず、コンパイル処理において、すべての話題の対象（例えば、すべての商品）についてコンパイル処理を行い、テンプレートデータ２４０から知識データ２５０を生成してもよいが、例えば、ユーザ１０がユーザ端末１００で話題のジャンルや質問の分類等を選択した場合や、入力文と応答の内容の変遷等に応じ、所定のタイミングで動的に、そのジャンル、分類、内容に対応する対象のみに関して知識データ２５０に展開するようにしてもよい。
【０１００】
このようにすることで、知識データ２５０のボリュームを小さくすることができるとともに、検索の効率を向上させることができる。また、ユーザ１０が入力する話題が変わった場合や、情報提供システム１によるシナリオのコントロールで話題が変わった場合に、現在の話題と関係がなくなった（又は、関係が希薄となった可能性が高い）話題の知識データを削除するように構成することもできる。
【０１０１】
図８Ａは、テンプレートデータ２４０の内容を例示する図である。テンプレートデータ２４０は、上述の知識データ２５０と同様に、ＣＳＶデータ、テキストデータ、所定のＤＢＭＳ（データベース管理システム）でアクセス可能なデータベース、所定のアプリケーションでアクセス可能な特定のファイル等を含む様々なデータ形式とすることができるが、ここでは、便宜上、表形式でそれぞれのデータを表している。
【０１０２】
図８Ａに示すテンプレートデータ２４０に含まれるレコードはそれぞれ、ジャンル、種別、ＱＡ区分、ＮＯ（シーケンス番号）、Ｑ／Ａ、従属ＮＯ、及び条件の各項目を含む。
【０１０３】
ジャンルは、「商品案内（薬）」や「道順案内」など、情報提供システム１が提供する会話機能で提供される話題の最上位の分類を示すものである。種別は、ジャンルのなかの分類であり、「Ｍ」はメインを示す。ＱＡ区分は、そのレコードが想定入力文（Ｑ）に該当するのか、応答文（Ａ）に該当するのかを示す区分である。ＮＯ（シーケンス番号）は、そのレコードのシーケンス番号を表すものであり、後述する従属ＮＯの項目で使用される。
【０１０４】
Ｑ／Ａは、ユーザ端末１００に提供する想定入力文（Ｑ）、又は応答文（Ａ）の元となる文言やコードである。従属ＮＯは、そのレコードが、どのレコードに従属するかを示すものであり、これによって、想定入力文（Ｑ）や応答文（Ａ）の階層関係が定義される。条件は、そのレコードの想定入力文（Ｑ）又は応答文（Ａ）が、どのような条件によって使用されるかを示すものである。このレコードに従属する他のレコードの想定入力文（Ｑ）や応答文（Ａ）も、この条件に従うことになる。
【０１０５】
例えば、ＮＯ＝００１のレコードのＱ／Ａに含まれる「＄（＜！［ｃｄａｔａ［ｒｅｔｕｒｎ  ｇｅｔＡｌｌＭｅｄｉｃｉｎｅＮａｍｅ（）］］＞）」や、ＮＯ＝００４のレコードのＱ／Ａに含まれる「＄（＜！［ｃｄａｔａ［ｒｅｔｕｒｎ  ｇｅｔＳｔｏｃｋＭｅｄｉｃｉｎｅＩｎｆｏ（）］］＞）」といったコード（スクリプト、及び関数）は、そのままの表現で、図５に示すテンプレートデータ表示画面６００において確認することができる。
【０１０６】
同様に、ＮＯ＝００２、２０１のレコードの条件に設定されている「＆［ｓｔｏｃｋ］＝０」や、ＮＯ＝００４のレコードのＱ／Ａに含まれる「＆［ＵＩ_ｍ−ｎａｍｅ］」といったコードも、そのままの表現で、図５に示すテンプレートデータ表示画面６００において確認することができる。
【０１０７】
図８Ｂは、知識データ２５０の内容を例示する図である。知識データ２５０は、上述の通り、ＣＳＶデータ、テキストデータ、所定のＤＢＭＳ（データベース管理システム）でアクセス可能なデータベース、所定のアプリケーションでアクセス可能な特定のファイル等を含む様々なデータ形式とすることができるが、ここでは、便宜上、表形式でそれぞれのデータを表している。
【０１０８】
図８Ｂに示す知識データ２５０に含まれるレコードはそれぞれ、ジャンル、種別、ＱＡ区分、ＮＯ（データシーケンス番号）、Ｑ／Ａ、従属ＮＯ、条件、及び補足情報の各項目を含む。
【０１０９】
ジャンル、種別、ＱＡ区分、ＮＯ（データシーケンス番号）、Ｑ／Ａ、従属ＮＯ、及び条件は、図８Ａを参照して説明したテンプレートデータ２４０と同様の項目である。ただし、ＮＯ＝１００１、２００１のＱ／Ａの項目には、上述したコンパイル処理によって、コードに応じた処理が実行され、医薬品の一般名（Ｍ１、Ｍ２）がそれぞれ埋め込まれ、テンプレートデータ２４０のＱ／Ａに含まれていたコード「＄（・・・）」の表現はなくなっている。
【０１１０】
また、同様に、ＮＯ＝１００４、２００４のＱ／Ａの項目も、上述したコンパイル処理によって、医薬品の製品名がそれぞれ埋め込まれ、テンプレートデータ２４０のＱ／Ａに含まれていたコード「＄（・・・）」の表現はなくなっている。
【０１１１】
また、補足情報の項目には、ＮＯ＝１００４、２００４のレコードにおいて、それぞれ、ＵＲＬ１、ＵＲＬ２が付加されている。なお、ＮＯ＝１００４、２００４のレコードにおいては、「＆［ＵＩ_ｍ−ｎａｍｅ］」のコードが、テンプレートデータ２４０からそのまま引き継がれており、このコードは、情報提供サーバ２００により、ユーザ１０から入力文を受信した場合に、必要に応じて評価される。
【０１１２】
すなわち、図８Ａのテンプレートデータ２４０のデータ群Ｄ１（ＮＯ＝１〜２０２）が、コンパイル処理によって、図８Ｂの知識データ２５０のデータ群Ｄ２（ＮＯ＝１００１〜１２０２）、Ｄ３（ＮＯ＝２００１〜２２０２）、・・・等に展開されている。
【０１１３】
次に、図９を参照して、本発明の実施形態に係るユーザ端末１００を構成するコンピュータのハードウェア構成の例について説明する。ユーザ端末１００は、例えば、スマートフォンといった携帯機器である。ただし、図９に示すユーザ端末１００の構成は、その代表的な構成を例示したにすぎない。なお、このようなコンピュータの構成を、顧客端末１５０等に採用してもよい。
【０１１４】
ユーザ端末１００は、ＣＰＵ（Central  Processing  Unit）１０１、メモリ１０２、カメラ１０３、ＧＰＳ制御部１０４、ＧＰＳ用アンテナ１０５、無線信号処理部１０６、無線通信用アンテナ１０７、オーディオ制御部１０８、マイクロフォン１０９、スピーカ１１０、ディスプレイ制御部１１１、入力機器インタフェース１１２、タッチスクリーン１１３、非接触ＩＣカードリーダ／ライタ１１４、センサー１１５、補助記憶装置１１６、及び外部記録媒体インタフェース１１７を含んでいる。
【０１１５】
ＣＰＵ１０１は、ユーザ端末１００の各構成要素の動作を制御し、ＯＳの制御下で、各機能を実行する。
【０１１６】
メモリ１０２は通常ＲＡＭ（Random  Access  Memory）で構成される。メモリ１０２には、ＣＰＵ１０１で実行される各機能を実現するためのプログラムが実行時にロードされ、当該プログラムに必要なデータ等が一時的に記憶される。
【０１１７】
カメラ１０３は、ユーザ端末１００に内蔵される小型の撮像装置である。ＧＰＳ制御部１０４は、ＧＰＳ用アンテナ１０５を介して、複数のＧＰＳから信号を受信し、ユーザ端末１００の位置を調べる。
【０１１８】
無線信号処理部１０６は、無線通信用アンテナ１０７を介して携帯電話基地局と通信を行い、他の機器との間での通話データの送受信や、（インターネットを介した）他端末との間でのＷＥＢページやメールデータの送受信を制御する。また、無線信号処理部１０６は、無線通信用アンテナ１０７を用いて無線ＬＡＮアクセスポイントとの間で無線ＬＡＮによる通信を実現し、インターネット経由のデータ送受信を行う（ここでは、便宜上、無線信号処理部１０６と無線通信用アンテナ１０７が、携帯電話基地局との間の無線通信及び無線ＬＡＮアクセスポイントとの間の無線通信を行うものとした）。
【０１１９】
オーディオ制御部１０８は、マイクロフォン１０９とスピーカ１１０を制御して無線通信による通話を実現し、一方で、アプリケーションにおいて動画や音楽を再生する場合に、音声を出力するよう制御する。
【０１２０】
タッチスクリーン１１３は、例えば、ＬＣＤ（Liquid  Crystal  Display）などで構成される表示装置で情報を表示するとともに、ユーザが指などで画面表面をタッチした（押した）位置を、抵抗膜方式や静電容量方式などのタッチセンサーで検知する。ディスプレイ制御部１１１は、ＣＰＵ１０１が発行する描画データを処理して、例えば、ＷＥＢページや動画等を、タッチスクリーン１１３の表示装置に出力する。入力機器インタフェース１１２は、タッチスクリーン１１３のタッチセンサーが、ユーザによる操作を検知し、これを所定の信号としてＣＰＵ１０１に送信する。
【０１２１】
非接触ＩＣカードリーダ／ライタ１１４は、非接触ＩＣチップが埋め込まれたカードがユーザ端末１００の所定の位置にかざされた場合に、ＣＰＵ１０１の指令に基づいて、そのＩＣチップに記憶されているデータを読み取り、又は、ＩＣチップに所定のデータを書き込む。
【０１２２】
センサー１１５は、タッチスクリーン１１３のタッチセンサー以外のセンサーであり、モーションセンサー、光センサー、近接センサーなどがある。
【０１２３】
補助記憶装置１１６は、例えば、フラッシュメモリと呼ばれる半導体メモリやハードディスクで構成される。補助記憶装置１１６は、ＣＰＵ１０１で実行される各機能を実現するためのプログラムを記憶するほか、各種データを記憶する。
【０１２４】
外部記録媒体インタフェース１１７は、外部記録媒体１４０にアクセスして、そこに記録されているデータを読み取る。外部記録媒体１４０は、例えば、可搬型のフラッシュメモリである。
【０１２５】
次に、図１０を参照して、本発明の実施形態に係る情報提供システム１の情報提供サーバ２００を構成するコンピュータのハードウェア構成の例について説明する。ただし、図１０に示す情報提供サーバ２００の構成は、その代表的な構成を例示したにすぎない。なお、このようなコンピュータの構成を、情報管理サーバ３００、ユーザ端末１００、顧客端末１５０等に採用してもよい。
【０１２６】
情報提供サーバ２００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ（Read  Only  Memory）２０３、ネットワークインタフェース２０４、オーディオ制御部２０５、マイクロフォン２０６、スピーカ２０７、ディスプレイコントローラ２０８、ディスプレイ２０９、入力機器インタフェース２１０、キーボード２１１、マウス２１２、外部記憶装置２１３、外部記録媒体インタフェース２１４、及びこれらの構成要素を互いに接続するバス２１５を含んでいる。
【０１２７】
ＣＰＵ２０１は、情報提供サーバ２００の各構成要素の動作を制御し、ＯＳの制御下で、本発明に係る各機能の実行を制御する。
【０１２８】
ＲＡＭ２０２には、ＣＰＵ２０１で実行される各処理を実行するためのプログラムや、それらのプログラムが実行中に使用するデータが一時的に格納される。ＲＯＭ２０３には、情報提供サーバ２００の起動時に実行されるプログラム等が格納される。
【０１２９】
ネットワークインタフェース２０４は、ネットワーク２２０に接続するためのインタフェースである。ネットワーク２２０は、例えば、情報提供サーバ２００とユーザ端末１００との間のネットワークであり、図１に示すネットワーク５００に対応する。
【０１３０】
オーディオ制御部２０５は、マイクロフォン２０６とスピーカ２０７を制御して音声の入出力を制御する。ディスプレイコントローラ２０８は、ＣＰＵ２０１が発行する描画命令を実際に処理するための専用コントローラである。ディスプレイ２０９は、例えば、ＬＣＤで構成される表示装置である。
【０１３１】
入力機器インタフェース２１０は、キーボード２１１やマウス２１２から入力された信号を受信して、その信号パターンに応じて所定の指令をＣＰＵ２０１に送信する。
【０１３２】
外部記憶装置２１３は、例えば、ハードディスクや半導体メモリのような記憶装置であり、この装置内には上述したプログラムやデータが記録される。例えば、知識データ２５０や中間データ３５０なども、このような外部記憶装置２１３に記憶されうる。
【０１３３】
外部記録媒体インタフェース２１４は、外部記録媒体２３０にアクセスして、そこに記録されているデータを読み取る。外部記録媒体２３０は、例えば、可搬型のフラッシュメモリなどである。ＣＰＵ２０１で実行され、本発明の各機能を実現するためのプログラムは、この外部記録媒体インタフェース２１４を介して外部記録媒体２３０から提供されうる。また、本発明の各機能を実現するためのプログラムの他の流通形態としては、ネットワーク上の所定のサーバから、ネットワーク２２０及びネットワークインタフェース２０４を介して外部記憶装置２１３やＲＡＭ２０２に格納されるというルート等も考えられる。
【０１３４】
なお、ここまで、本発明の一実施形態に係る情報提供システム１について、本発明を実施することができる具体例を示しながら説明してきたが、これらの具体例は本発明を説明するための一例に過ぎず、本発明の権利範囲はこれらの具体例に限定されることはない。これら以外の様々な方法や構成によって、本発明の技術的思想を実現することができる。
【符号の説明】
【０１３５】
１  情報提供システム
１００  ユーザ端末
２００  情報提供サーバ
２４０  テンプレートデータ
２５０  知識データ
３００  情報管理サーバ
３５０  中間データ
４００  外部データ
５００  ネットワーク
【図１】
2019200659.tif 000003
【図２】
2019200659.tif 000004
【図３】
2019200659.tif 000005
【図４】
2019200659.tif 000006
【図５】
2019200659.tif 000007
【図６】
2019200659.tif 000008
【図７】
2019200659.tif 000009
【図８】
2019200659.tif 000010
【図９】
2019200659.tif 000011
【図１０】
2019200659.tif 000012