以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同一である。したがって、それらについての詳細な説明は繰返さない。
図1は、本実施の形態に係る情報表示システム(ただし、本願発明は表示に限らず、情報を音声として出力するような場合にも適用可能なものである。)の構成を示す図である。図1を参照して、本実施の形態に係る情報表示システムは、ユーザ端末52と、サーバ54と、複数の外部サービスデータベース56とを含む。
なお、外部サービスデータベース56の数は特に限定されない。たとえば、外部サービスデータベース56の数は1台であってもよい。
ユーザ端末52は、サーバ54に対し検索要求データ(以下、「検索要求」と称する)を送信するとともに、サーバ54から検索結果を示すデータ(以下、「端末向け検索結果データ」と称する)を受信する。ユーザ端末52は、検索結果を画像表示により出力する装置でもある。本実施の形態の場合、ユーザ端末52は携帯電話であることとする。
サーバ54は、外部サービスデータベース56とユーザ端末52との間で情報を中継する装置である。
外部サービスデータベース56.1,外部サービスデータベース56.2,外部サービスデータベース56.3,および外部サービスデータベース56.4(総称するときは、外部サービスデータベース56と総称する。)は、サーバ54を介してユーザ端末52に情報を提供するデータベースである。
なお、本実施の形態において、「データベース」とは、情報を蓄積し、かつ蓄積された情報を検索要求に応じて検索し、検索結果を検索要求元に返信する機能を有する、装置やシステムを意味する。
また、本実施の形態において、「検索要求データ」とは、以下に述べるような第1および第2の情報を有するデータである。その第1の情報は、シナリオIDを示す情報である。第2の情報は、パラメータである。本実施の形態において、「パラメータ」とは、ユーザ端末52によって作成されたりユーザ端末52のユーザによって選択されたりユーザ端末52が図示しない装置から受信したりした、シナリオIDとは異なる情報を意味する。本実施の形態におけるパラメータの例には、キーワードや放送地域IDが含まれる。パラメータは検索の際のキーデータとなり得るが、本実施の形態においては、パラメータのうちキーワードがキーデータとされるよう、予め定められている。
また、本実施の形態において、「検索結果」とは、パラメータの一種であるキーワードをキーデータとしたときの外部サービスデータベース56の検索結果を示す情報を意味する。
また、本実施の形態において、「端末向け検索結果データ」とは、サーバ54からユーザ端末52に送信される検索結果を示すデータを意味する。本実施の形態においては、端末向け検索結果データは、ユーザ端末52における検索結果の表示形態を示す情報も含むが、表示形態を示す情報は、端末向け検索結果データに必須の情報ではない。
ここで、シナリオIDについて説明する。本実施の形態の場合、「シナリオID」とは、「シナリオ」を選択するために用いられる識別情報である。後述するように、本実施の形態における「シナリオ」とは、サーバ54が実施する制御の内容を示すファイルの一種である。シナリオにおいて、どのUI記述データ760を用いるかということと、どの外部サービスデータベース56に検索を要求するかということが示される。これにより、シナリオIDは、シナリオだけでなく、UI記述データ760と外部サービスデータベース56との組合せにも間接的に対応することとなる。UI記述データ760と外部サービスデータベース56との組合せにもシナリオIDが対応しているので、UI記述データ760と外部サービスデータベース56との組合せを特定するためにシナリオIDを利用することが可能になる。
図2は、ユーザ端末52の制御ブロック図である。図2を参照して、本実施の形態に係るユーザ端末52は、通信部550と、操作部552と、表示部554と、制御部556と、記憶部558とを含む。通信部550は、サーバ54と通信する。操作部552は、ユーザによる操作を受付ける。表示部554は、検索結果その他の情報を表示する。制御部556は、通信部550が受信した検索結果や操作部552が受付けた情報を処理する。また、制御部556は、検索結果その他の情報を表示するように表示部554を制御する。記憶部558は、制御部556が実行するプログラムと、制御部556がそのプログラムを実行する際に必要な情報とを記憶する。
なお、ユーザ端末52は、図2に示した各部の他、携帯電話として動作するための図示しない各種のユニット(たとえば、マイクやスピーカ)を含む。それらの動作は周知であるので、ここではその詳細な説明は繰返さない。
図3は、ユーザ端末52の制御部556が記憶部558に記憶されたプログラムに基づいて実行する機能を示す機能ブロック図である。制御部556は、携帯電話として動作するための図示しない各種のユニットの他、実行エンジン560を含む。実行エンジン560は、表示部554に検索結果を表示させるための各種の処理を実施する。図3を参照して、実行エンジン560は、SVG(Scalable Vector Graphics)描画エンジン562と、遷移処理エンジン564と、通信処理部566とを含む。
SVG描画エンジン562は、通信部550が受信した端末向け検索結果データをもとに、表示部554を制御するための制御信号を生成する。表示部554は、この信号に基づいて、検索結果を示す画像を表示する。なお、SVG描画エンジン562に代え、SVGとは異なるフォーマットに準拠した描画エンジンや、ビットマップその他のデータフォーマットに基づいて画像を表示するための描画エンジンが含まれていてもよいが、本実施の形態においては、SVG描画エンジン562が含まれていることとする。
遷移処理エンジン564は、操作部552が操作されたことに応じて表示部554を制御する。表示部554は、遷移処理エンジン564に従って、検索結果を示す画像をスクロールさせる。本実施の形態の場合、表示部554がどのように操作されれば検索結果を示す画像がどのようにスクロールするかということは、通信部550が受信した端末向け検索結果データによって示される。
通信処理部566は、検索要求を送信し、かつ端末向け検索結果データを受信するように通信部550を制御する。
図4は、サーバ54において実行されるプログラムモジュールとそれらの間での情報の流れとを示す図である。本実施の形態の場合、サーバ54は、図4に示すプログラムモジュールを実行することにより、実行されるプログラムモジュールに応じた処理を実行する。図4を参照して、本実施の形態に係るサーバ54において実行されるプログラムは、通信処理部570と、シナリオ管理部572と、シナリオ実行部574と、データ取得部576と、UI記述データ管理部578と、データ合成処理部580と、検索結果管理部582とを含む。本実施の形態の場合、これらは互いに異なるプログラムモジュールである。
なお、以下の説明において、予め記憶された情報やあるプログラムモジュールの実行の際に作成されたり取扱われたりした情報を他のプログラムモジュールの実行の際に取扱い可能にすることを「渡す」と称する。たとえば、「通信処理部570からシナリオ管理部572に情報を渡す」や「シナリオ管理部572が通信処理部570から情報を渡される」は、通信処理部570の実行の際に作成されたり取扱われたりした情報をシナリオ管理部572の実行の際に取扱い可能にすることを意味する。「サーバ54に予め記憶されたシナリオをシナリオ実行部574に渡す」は、サーバ54に予め記憶されたシナリオをシナリオ実行部574の実行の際に取扱い可能にすることを意味する。
また、以下の説明において、次に実行するプログラムモジュールを特定する処理を「呼出す」と称する。たとえば、「UI記述データ管理部578を呼出す」とは、プログラムの実行を開始する際やあるプログラムモジュールを実行している間に、次に実行するプログラムモジュールをUI記述データ管理部578とすることを意味する。
通信処理部570は、ユーザ端末52からの検索要求を受信し、検索要求に含まれるシナリオIDなど(本実施の形態において検索要求に含まれるその他の情報については後述する)を抽出し、シナリオ管理部572に出力する処理を示す。また、通信処理部570は、データ合成処理部580から端末向け検索結果データを渡されると、それをユーザ端末52に送信する処理も示す。
シナリオ管理部572は、サーバ54にシナリオIDと対応づけて記憶されたシナリオを管理するための処理を示す。本実施の形態の場合についてより具体的に説明すると、シナリオ管理部572は、サーバ54に記憶された複数のシナリオのいずれかを通信処理部570から渡されたシナリオIDに基づいて選択し、シナリオ実行部574に渡す処理を示す。
なお、本実施の形態の場合、サーバ54に記憶されたシナリオは、オペレータの操作に応じて追加したり削除したりすることが可能である。
ここで、シナリオについて説明する。本実施の形態において「シナリオ」とは、サーバ54に記憶されたファイルの一種であって、サーバ54が実施する制御の内容(たとえば、どのUI記述データ760を用いるかといったことや、どの外部サービスデータベース56にパラメータを送信するかといったこと)を示すものである。サーバ54が実施する具体的な制御の例については後に説明する。これにより、UI記述データ760と、外部サービスデータベース56のうちパラメータの送信先となるデータベースとは、シナリオに基づいて特定されることとなる。サーバ54に記憶されたシナリオのうちどのシナリオがシナリオ実行部574に渡されるかによって、端末向け検索結果データが示す検索結果の内容は異なる。UI記述データ760とパラメータの送信先となる外部サービスデータベース56とがシナリオに基づいて特定されることにより、さまざまな種類の検索結果を得ることが可能となる。たとえば、初めにアーティスト名を検索キーとして音楽配信サイトを検索した後、音楽配線サイトから提供された検索結果(楽曲名)を使って書籍販売サイトを検索できる。または、検索結果(楽曲名)を使ってブログを検索できる。
シナリオ実行部574は、シナリオ管理部572が渡したシナリオに基づいてUI記述データIDとコネクタIDとを特定する処理を示す。
後述するように、「コネクタ」とは、外部サービスデータベース56と通信するための処理を行うものである。本実施の形態の場合、コネクタは、コネクタIDに対応付けてサーバ54に記憶されている。外部サービスデータベース56との通信は、コネクタ内に記載されている処理手順に基づいて実施される。このコネクタにより、どの外部サービスサーバを通信先とするかが示される。これより、シナリオは、検索を要求する外部サービスデータベース56を間接的に特定していることになる。
シナリオ実行部574は、UI記述データIDとコネクタIDとが特定された後に実行される処理も示す。その処理は、次に述べる第1の処理および第2の処理である。第1の処理は、UI記述データ管理部578にUI記述データIDを渡す処理である。UI記述データIDが渡された上でUI記述データ管理部578の処理が実行されると、UI記述データ管理部578はUI記述ファイル762をデータ合成処理部580に渡す。第2の処理は、データ取得部576(より具体的に説明すると、データ取得部576が含むコネクタ600のうちコネクタIDが示すもの)を呼出す処理である。コネクタ600のいずれかが呼出されると、サーバ54は、外部サービスデータベース56に対してパラメータを送信する。
データ取得部576は、外部サービスデータベース56との間で通信する処理を示す。
データ取得部576は、コネクタIDによりそれぞれ特定される複数のコネクタ600と、データ変換部602とを含む。
上述したように、コネクタ600は、外部サービスデータベース56と通信するための処理を行うものである。コネクタ600ごとに、通信の相手となる外部サービスデータベース56が予め定められている。
データ変換部602は、コネクタ600に基づいて受信したデータを中間フォーマットに従って変換する処理を示す。
本実施の形態における「中間フォーマット」とは、データ合成処理部580が示す処理に基づいてサーバ54が端末向け検索結果データを作成する際に用いられるマークアップ言語のことである。サーバ54が稼動し始めるまでに予め定められている言語であれば、具体的にどのようなマークアップ言語かということは特に限定されない。例えば、XMLであってもよいし、HTML(HyperText Markup Language)であってもよい。
コネクタ600に基づいて受信したデータは、HTMLに従って記述されている場合もあれば、XMLに従って記述されている場合もある。その他の言語に従って記述されている場合もある。検索結果を示すデータが中間フォーマットに沿うよう変換されることにより、データ合成処理部580が示す処理を実行する際、サーバ54は、検索結果を示すデータを記述している言語に応じてUI記述データ760を使い分ける必要がないので、端末向け検索結果データを容易に作成することができる。
なお、本実施の形態の場合、オペレータは、コネクタ600を追加したり削除したりすることができる。
UI記述データ管理部578は、UI記述データIDと対応づけてサーバ54に記憶されたUI記述データ760(UI記述データ760については後述する)を管理する処理を示す。より具体的に説明すると、UI記述データ管理部578は、サーバ54に記憶されたUI記述データ760のうち、シナリオ実行部574から渡されたUI記述データIDに対応するものを選択し、そのUI記述データ760をデータ合成処理部580に渡す処理を示す。なお、「UI記述データID」とは、UI記述データを指定するために用いられる識別情報である。
本実施の形態の場合、1つのUI記述データIDと1つのUI記述データ(UI記述データ760については後述する)が対応していることもあれば、1つのUI記述データIDと複数のUI記述データを含む1つのUI記述ファイルとが対応していることもある。
なお、シナリオと同様、UI記述データ760はオペレータの操作に応じて追加したり削除したりすることができる。
図5は、UI記述データ760とUI記述ファイル762との関係を示す図である。図5を参照して、UI記述データ760とUI記述ファイル762とについて説明する。
本実施の形態において、UI記述データ760は、画像やテキストなど各種データごとにレイアウトを定義しているデータを意味する。
UI記述データ760は、上述したテンプレート技術により端末向け検索結果データを作成するために用いられる。
UI記述ファイル762は、1つ以上のUI記述データ760の組合せで構成されるデータ群を意味する。
本実施の形態においては、UI記述データ760とUI記述ファイル762とは、端末向け検索結果データの雛型(UI記述ファイル762)とその雛型を構成するデータ(UI記述データ760)との関係にある。
なお、本実施の形態の場合、UI記述データ760はXML(Extensible Markup Language)で記述されている(その他のスクリプト言語で記述されていてもよい)。これに応じて、端末向け検索結果データもXMLで記述されている(UI記述データ760がその他のスクリプト言語で記述されている場合、端末向け検索結果データもそのスクリプト言語で記述されることとなるが、必要であれば、出力の前において、他の言語にいったん書き換えたり、スクリプト言語に準拠しない規格に従ってデータを変換したりしてもよい)。ユーザ端末52は、端末向け検索結果データに基づき検索結果を表示する。本実施の形態の場合、検索結果は二次元スクロールができるように表示される。なお、検索結果の表示形態は特に限定されない。たとえば、画面にいくつもの枠を表示させ、それらの枠それぞれが互いに異なる検索結果を含んでもよい。その場合、ユーザの操作に応じて、ある枠が他の枠の手前に表示されてもよい。
再び図4を参照して、データ合成処理部580は、端末向け検索結果データを作成する処理を示す。データ合成処理部580は、完成した端末向け検索結果データを通信処理部570に渡す。データ合成処理部580は、UI記述データ760内の所定の箇所を検索結果を示す内容に置換する処理(合成処理)も示す。合成処理が完了することで、端末向け検索結果データは完成する。UI記述ファイル762は、UI記述データ管理部578からデータ合成処理部580に渡される。検索結果を示すデータは、検索結果管理部582からデータ合成処理部580に渡される(検索結果管理部582は、データ取得部576から検索結果を示すデータを渡されている)。
また、データ合成処理部580は、通信処理部570の他、検索結果管理部582にも完成した端末向け検索結果データを渡す。
なお、端末向け検索結果データが作成される際、シナリオの内容によっては、2種類以上のUI記述データ760やUI記述ファイル762と2種類以上の検索結果とが用いられることがある。
検索結果管理部582は、次に述べる第1の処理と第2の処理とを示す。第1の処理は、過去に受信した検索要求データと同じ内容の検索要求データをサーバ54が受信した場合、端末向け検索結果データ(過去にサーバ54が作成し、かつ記憶したもの)のうちその検索要求データに対応する検索結果を示すものを選択し、通信処理部570に渡す処理である。第2の処理は、過去にサーバ54が受信し、かつ記憶した検索結果のうちその検索要求データに対応するものを選択し、データ合成処理部580に渡す処理である。これらの処理が実施される場合、データ取得部576は動作しない。
また、検索結果管理部582は、ある外部サービスデータベース56から受信した検索結果の一部をパラメータとして別の外部サービスデータベース56から新たな検索結果を受信する処理も示す。
図6は、シナリオ実行部574の構成を示す図である。図6を参照して、シナリオ実行部574は、シナリオ処理部610と、UI記述データ呼出部612と、コネクタ呼出部614と、検索結果呼出部616とを含む。
シナリオ処理部610は、シナリオからUI記述データIDとコネクタIDとを特定する処理を示す。また、シナリオ処理部610は、シナリオに基づいて、UI記述データ呼出部612と、コネクタ呼出部614と、検索結果呼出部616とに情報を渡す。
UI記述データ呼出部612は、シナリオ処理部610から渡されたUI記述データIDをUI記述データ管理部578に渡し、UI記述データ管理部578を呼出す処理を示す。
コネクタ呼出部614は、シナリオ処理部610から渡されたコネクタIDに基づき、データ取得部576が含むコネクタ600のいずれかを選択し、実行するコネクタを指定する。
検索結果呼出部616は、シナリオの内容に応じた情報(たとえば、検索要求が示すパラメータとシナリオID)を取得し、検索結果管理部582に渡す。これに応じて、検索結果管理部582を実行する際、サーバ54は自らが記憶した情報を検索する。
図7は、データ合成処理部580の構成を示す図である。図7を参照して、データ合成処理部580は、データ振分部620と、一時蓄積部622と、データ合成部624と、データパッケージ化部626とを含む。
データ振分部620は、UI記述ファイル762が含むUI記述データ760とデータ変換部602が変換したデータとを、一時蓄積部622とデータ合成部624とに振分けて渡す処理を示す。
一時蓄積部622は、データ振分部620から渡されたデータをアーカイブ化されるデータとして一時的に蓄積する処理を示す。一時蓄積部622の実行により蓄積されるデータは、端末に表示されるロゴなどの、検索結果に関わらず端末向け検索結果データに含まれ、かつその配置が確定しているデータである。これらのデータについてはデータ合成部624に基づく処理が不要である。
データ合成部624は、データ振分部620から渡されたUI記述データ760と検索結果を示すデータとを合成することにより、端末向け検索結果データの一部となるデータを作成する処理を示す。
データパッケージ化部626は、一時蓄積部622が蓄積したデータとデータ合成部624が合成したデータとを組合せて、1つのアーカイブファイルを作成する処理を示す。本実施の形態の場合、端末向け検索結果データは、このアーカイブファイルの形式で通信される。
図8は、本実施の形態におけるサーバ54を実現するコンピュータハードウェアの構成を示す図である。このコンピュータハードウェアは、ディスプレイ650と、CPU(Central Processing Unit)652と、メモリ654と、固定ディスク656と、メモリカード駆動装置658と、CD−ROM(Compact Disk Read Only Memory)駆動装置660と、キーボード662と、通信インターフェイス664とを含む。
ディスプレイ650は、表示により情報を出力する。CPU652は、各種の演算を実施する。CPU652は、図8に示すコンピュータハードウェアの各部を制御する回路でもある。メモリ654は、情報を記憶する。固定ディスク656は、本実施の形態におけるサーバ54を実現するためのプログラムなどを記憶する。メモリカード駆動装置658は、メモリカード670から情報を読取る。CD−ROM駆動装置660は、CD−ROM672から情報を読取る。キーボード662は、オペレータが情報を入力する装置である。通信インターフェイス664は、ユーザ端末52や、外部サービスデータベース56と通信する。
図9は、CPU652が上述したプログラムを実行することにより実現される機能を示す機能ブロック図である。図9を参照して、CPU652の機能は、特定部680と、パラメータ制御部682と、形式変換部684と、端末向け検索結果データ作成部686と、送信制御部688と、抽出部690と、メッセージ制御部692と、検索部684と、追加制御部696とを含む。
特定部680は、通信インターフェイス664が検索要求を受信すると、検索要求が示すシナリオIDに対応するように、メモリ654が記憶したシナリオ(ひいては、複数の外部サービスデータベース56のいずれかおよびUI記述データ760)を特定する。本実施の形態においては、特定部680により特定されたことになる外部サービスデータベース56を「対応サーバ」と称する。この処理は、シナリオ実行部574により示された処理である。
パラメータ制御部682は、メモリ654に記憶されたコネクタ600(メモリ654に記憶されるコネクタ600は一種類であってもよいが、本実施の形態の場合、メモリ654は複数の種類のコネクタ600を記憶していることとする)に基づいて、検索要求が示すパラメータを対応サーバに送信するように、通信インターフェイス664を制御する。
形式変換部684は、検索結果を示すデータを通信インターフェイス664が受信すると、検索結果を示すデータの形式を、端末向け検索結果データ作成部686が利用可能な形式のデータに変換する。本実施の形態の場合、形式変換部684は、検索結果を示すデータの形式を、中間フォーマットで記述される形式に変換する。この処理は、データ変換部602により示された処理である。
端末向け検索結果データ作成部686は、特定部680が特定した特定したシナリオ(厳密には、そのシナリオが示すUI記述データ760やUI記述ファイル762)と通信インターフェイス664が受信した検索結果とに基づいて、端末向け検索結果データを作成する。この処理は、データ合成処理部580により示された処理である。
送信制御部688は、端末向け検索結果データをユーザ端末52に送信するように通信インターフェイス664を制御する。この処理は、通信処理部570により示された処理である。
抽出部690は、メモリ654に記憶された検索結果を示すデータから、検索結果の一部を抽出する。この処理は、検索結果管理部582により示された処理である。検索結果の一部を抽出するための具体的な手順は特に限定されるものではないが、本実施の形態の場合、抽出部690は、検索結果を示すデータに含まれるメタデータに基づいて検索結果の一部を抽出する。本実施の形態の場合、検索結果を示すデータは、検索結果自体を示すテキストデータや画像データと、それらのデータが何かを示すメタデータとを含んでいる。抽出部690は、検索結果を示すデータのうち、シナリオが示すメタデータに対応するテキストデータや画像データを抽出する。これにより、検索結果を示すデータから検索結果の一部が抽出されることとなる。
メッセージ制御部692は、対応シナリオ(特定部680によって読み出されるシナリオのこと)の読み出しの開始時から端末向け検索結果データの作成の完了時までの間に、「しばらくお待ち下さい」といった所定のメッセージをユーザ端末52へ送信するように通信インターフェイス664を制御する。そのメッセージをいつ送信するかは、メモリ654に記憶されたプログラムなどによって定められる。
検索部694は、メモリ654が記憶した検索結果を示すデータのうち、検索要求が示すパラメータとコネクタIDとに対応するデータを検索する。検索部694による検索を可能とするために、本実施の形態においては、検索結果を示すデータは、パラメータとコネクタIDとに対応付けられている。検索部694は、メモリ654が記憶した端末向け検索結果データのうち、検索要求が示すパラメータとシナリオIDとに対応するデータを検索するユニットでもある。検索部694による検索を可能とするために、端末向け検索結果データは、パラメータとシナリオIDとに対応付けられている。これらの処理は、検索結果呼出部616により示された処理である。
追加制御部696は、外部サービスデータベース56にパラメータを送信するように、通信インターフェイス664を制御する。このサーバには、別の外部サービスデータベース56から通信インターフェイス664が受信した検索結果が所定の要件(たとえば「NULL」でないことという要件)を満たさない場合に、パラメータが送信される。
特定部680は、シナリオ読出部6802と、UI部6804と、コネクタ部6806とを含む。
シナリオ読出部6802は、メモリ654が記憶したシナリオのうち、検索要求が示すシナリオIDに対応するシナリオを読み出す。本実施の形態においては、シナリオ読出部6802が読み出すシナリオが対応シナリオである。
UI部6804は、メモリ654が記憶したUI記述データ760のうち、対応シナリオが示すデータを読み出す。
コネクタ部6806は、メモリ654が記憶したコネクタのうち、対応シナリオが示すコネクタ600を読み出す。
パラメータ制御部682は、受信パラメータ制御部6822と、抽出パラメータ制御部6824とを含む。
受信パラメータ制御部6822は、特定部680が複数の対応サーバを特定した場合に、それら複数の対応サーバのうちシナリオが示すサーバに対して検索要求データが示すキーワードを送信するように、通信インターフェイス664を制御する。
抽出パラメータ制御部6824は、複数の対応サーバのうち検索結果を送信した対応サーバとは異なる対応サーバに対し、抽出部690が抽出した検索結果の一部をパラメータとして送信するように、通信インターフェイス664を制御する。
図10は、本実施の形態におけるメモリ654のメモリマップを示す図である。図10を参照して、本実施の形態におけるメモリ654の記憶領域は、管理領域6540と、プログラム領域6542と、UI記述データ領域6544と、シナリオ領域6546と、コネクタ領域6548と、端末向け検索結果データ領域6550と、検索結果領域6552とを含む。
管理領域6540は、CPU652が演算や制御を実施するために必要な情報を記憶する領域である。
プログラム領域6542は、本実施の形態に係るサーバ54を実現するために必要なプログラムを固定ディスク656から読み出し、一時的に記憶する領域である。このプログラムは、メモリカード駆動装置658やCD−ROM駆動装置660によって読取られるCD−ROM672などの記録媒体に記録されたプログラムである。
UI記述データ領域6544は、UI記述データ760を記憶する領域である。UI記述データ領域6544に記憶されるUI記述データ760は1種類のみであってもよいが、本実施の形態の場合、UI記述データ領域6544は、複数の種類のUI記述データ760を記憶する。また、本実施の形態の場合、UI記述データ領域6544は、UI記述データ760の他に、UI記述ファイル762を記憶する。UI記述データ760やUI記述ファイル762は、UI記述データIDに対応付けられている。
シナリオ領域6546は、シナリオをシナリオIDに対応付けて記憶する。
コネクタ領域6548は、コネクタ600をコネクタIDに対応付けて記憶する。
端末向け検索結果データ領域6550は、端末向け検索結果データをパラメータやシナリオIDに対応付けて記憶する。
検索結果領域6552は、検索結果をパラメータやコネクタIDに対応付けて記憶する。検索結果領域6552に記憶される検索結果を示すデータは、中間フォーマットに従って記述されている。
このサーバ54は、図8に示すコンピュータハードウェアとCPU652により実行されるソフトウェアとにより実現される。一般的にこうしたソフトウェアは、CD−ROM672などの記録媒体に格納されて流通し、CD−ROM駆動装置660などにより記録媒体から読取られて固定ディスク656に一旦格納される。さらにメモリ654に読出されて、上述したCPU652により実行される。上述したコンピュータのハードウェア自体は一般的なものである。したがって、本発明の最も本質的な部分は、CD−ROM672などの記録媒体に記録されたソフトウェアである。なお、コンピュータ自体の動作は周知であるので、ここではその詳細な説明は繰返さない。
外部サービスデータベース56を実現するコンピュータハードウェアの構成は、サーバ54を実現するコンピュータハードウェアの構成と同様である。したがって、その詳細な説明はここでは繰返さない。
なお、サーバ54の通信インターフェイス664は、外部サービスデータベース56の通信インターフェイス664と通信することとなる。
図11および図12を参照して、サーバ54で実行されるプログラムは、端末向け検索結果データの作成に関し、以下のような制御を実行する。なお、以下の説明において、サーバ54(厳密にはCPU652)がプログラムモジュールを実行することでそのプログラムモジュールに応じた処理が実施されることを「・・・部×××は、〜する。」と称する。たとえば、CPU652が通信処理部570を実行することで検索要求に含まれたシナリオIDやパラメータが抽出されることを、「通信処理部570は、検索要求に含まれたシナリオIDやパラメータを抽出する。」と称する。CPU652が通信処理部570を実行する処理の一部として、シナリオ管理部572にてシナリオIDやパラメータが利用可能にされることを、「通信処理部570は、シナリオIDやパラメータをシナリオ管理部572に出力する。」と称する。コネクタ600に基づいてそのコネクタ600が示す外部サービスデータベース56と通信することを、「コネクタ600は、外部サービスデータベース56と通信する。」と称する。
ステップS720にて、通信インターフェイス664は検索要求を示す通信データを受信する。そのような通信データが受信されると、通信処理部570は、検索要求に含まれたシナリオIDやパラメータをシナリオ管理部572とシナリオ実行部574とに出力する。シナリオIDやパラメータが出力されると、シナリオ管理部572は、そのシナリオIDに対応するシナリオをシナリオ実行部574に出力する。
図13は、ユーザ端末52から通信インターフェイス664へ送信される、検索要求を示す通信データのフォーマットを示す図である。図13を参照して、そのフォーマットは、少なくとも1つのパラメータ領域と、シナリオID領域と、出力先端末情報領域とを含む。パラメータ領域は、キーワードやユーザアクション(検索のために用いるキーワードとは別の、予め設定されているユーザの動作のカテゴリーであって、ユーザにより選択されるもの、たとえば、「買う」「見る」「知る」といったようなユーザが行いたい動作として選択される可能性のある選択肢を意味する情報)といった、各種のパラメータを示す領域である。シナリオID領域は、シナリオIDを示す領域である。出力先端末情報領域は、端末向け検索結果データの送信先(本実施の形態の場合はユーザ端末52)の識別情報を示す領域である。
なお、ユーザ端末52、あるいはサーバ54の識別情報の例には、IPアドレスやメールアドレスがある。どのような識別情報を用いるかということは、本実施の形態に係る情報表示システムの設計者などによって任意に定められる。
再び図11および図12を参照して、ステップS722にて、検索結果呼出部616は、検索結果管理部582に検索要求が示すパラメータとシナリオIDとを出力する。検索結果管理部582は、端末向け検索結果データ領域6550に記憶された端末向け検索結果データの中から、ステップS720にて通信処理部570が出力したシナリオIDやパラメータに対応するデータ(端末向け検索結果データに対応付けられたパラメータとシナリオIDとの組合わせが、検索要求が示すすべてのパラメータとシナリオIDとの組合わせに一致するもの)を検索する。そのようなデータの検索が終了すると、検索結果管理部582は、そのような端末向け検索結果データがあるか否かを判断する。そのような端末向け検索結果データがあると判断した場合には(ステップS722にてYES)、処理はステップS724へと移される。もしそうでないと(ステップS722にてNO)、処理はステップS726へと移される。
ステップS724にて、検索結果管理部582は、ステップS720にて通信処理部570が出力したシナリオIDやパラメータに対応する端末向け検索結果データを通信処理部570に出力する。
ステップS726にて、シナリオ処理部610は、シナリオが含む命令文を解析する。解析結果に応じて、シナリオ処理部610は、次に実行する処理がswitch文か否かを判断する。次に実行する処理がswitch文であると判断した場合には(ステップS726にてYES)、処理はステップS728へと移される。もしそうでないと(ステップS726にてNO)、処理はステップS730へと移される。
ステップS728にて、シナリオ処理部610は、switch文の内容に基づき、次に実行する処理を特定する。
ステップS730にて、シナリオ処理部610は、シナリオが含む命令文に基づき、次に実行する処理がUI記述データ管理部578を呼出す処理か否かを判断する。次に実行する処理がUI記述データ管理部578を呼出す処理と判断した場合には(ステップS730にてYES)、処理はステップS732へと移される。もしそうでないと(ステップS730にてNO)、処理はステップS734へと移される。
ステップS732にて、UI記述データ呼出部612は、シナリオ処理部610からUI記述データIDを渡されると、そのUI記述データIDをUI記述データ管理部578に渡し、UI記述データ管理部578を呼出す。UI記述データ管理部578は、UI記述データIDが示すUI記述データ760(場合によってはUI記述ファイル762)をデータ合成処理部580に出力する。この時、検索結果管理部582は、検索結果を示すデータをデータ合成処理部580に出力する。データ合成処理部580は、合成処理を実施する。
本実施の形態の場合、ステップS732にて、UI記述データ呼出部612は、シナリオ処理部610から渡されるUI記述データIDの中から、シナリオなどが示す要件に応じたUI記述データIDを選択し、選択したUI記述データIDを出力する。次に2つの例を示す。
その第1の例として、UI記述データ呼出部612は、ステップS742にて検索結果を受信できたか否かに応じて異なるUI記述データIDを出力する。
第2の例として、UI記述データ呼出部612は、通信インターフェイス664が受信した検索要求に含まれた出力先情報に応じて異なるUI記述データIDを出力する。この場合、送信先に応じた形態の端末向け検索結果データを通信インターフェイス664は送信できることとなる。
ステップS734にて、検索結果呼出部616は、検索要求が示すパラメータとシナリオIDを取得し、検索結果管理部582に渡す。検索要求が示すパラメータとシナリオIDとが渡されると、検索結果管理部582は、コネクタ600のいずれかが受信した検索結果から抽出したパラメータが存在する(この場合、管理領域6540に記憶されていることを意味する)か否かを判断する。そのようなパラメータが存在すると判断した場合には(ステップS734にてYES)、処理はステップS736へと移される。もしそうでないと(ステップS734にてNO)、処理はステップS738へと移される。
ステップS736にて、コネクタ呼出部614は、シナリオ処理部610から渡されたコネクタIDに基づき、データ取得部576が含むコネクタ600のいずれかを選択し、実行するコネクタを指定する。検索結果管理部582は、そのコネクタIDに対応するコネクタ600に対し、パラメータを渡す。このパラメータは、コネクタ600のいずれかが外部サービスデータベース56から受信した検索結果から検索結果管理部582が抽出したものである。
ステップS738にて、検索結果呼出部616は、検索要求が示すパラメータとシナリオIDを取得し、検索結果管理部582に渡す。検索要求が示すパラメータとシナリオIDとが渡されると、検索結果管理部582は、パラメータとシナリオが示すコネクタIDとに対応付けられた検索結果を示すデータが検索結果領域6552に記憶されているか否かを判断する。このステップで言う「パラメータ」は、ステップS720にて通信処理部570が出力したパラメータのいずれかであっても、外部サービスデータベース56から受信した検索結果の一部であって端末向け検索結果データ領域6550や検索結果領域6552に記憶されているパラメータであってもよい。そのようなデータを記憶していると判断した場合には(ステップS738にてYES)、処理はステップS740へと移される。もしそうでないと(ステップS738にてNO)、処理はステップS742へと移される。
ステップS740にて、検索結果管理部582は、検索結果を示すデータをデータ合成処理部580に出力する。この時出力されるデータは、検索結果領域6552に記憶されたデータであって、ステップS720にて通信処理部570が出力した検索要求が示すパラメータのいずれかとシナリオが示すコネクタIDとに対応付けられていたデータである。
ステップS742にて、コネクタ呼出部614は、シナリオ処理部610から渡されたコネクタIDに基づき、データ取得部576が含むコネクタ600のいずれかを選択し、実行するコネクタ600を指定する。データ取得部576が含む複数のコネクタ600のうちそのコネクタIDに対応するコネクタ600は、そのコネクタ600が通信相手としている外部サービスデータベース56に、次に述べるパラメータを送信する。コネクタ600のいずれかが受信した検索結果から抽出されたパラメータが存在する場合、送信するパラメータはそのパラメータである。そのようなパラメータが存在しない場合、送信するパラメータは検索要求に含まれたパラメータある。パラメータが送信された後、パラメータを送信したコネクタ600は、検索結果を受信できたか否かを判断する。本実施の形態の場合、「NULL」以外の情報を受信できたか否かに基づき、検索結果を受信できたか否か(言い換えると、検索結果が所定の要件を満たしたか否か)が判断される。検索結果を受信できた場合、キーワードを送信したコネクタ600は、その検索結果を示すデータをデータ変換部576に出力する。データ変換部576は、そのデータを中間フォーマットに沿うよう変換した上で、検索結果管理部582に変換されたデータを出力する。検索結果を受信できなかった場合、そのコネクタ600は、シナリオ処理部610が処理したシナリオに基づき、次の2つの処理のうち一方を実施する。その第1の処理は、別のコネクタ600にパラメータを渡す(その「別のコネクタ」が外部サービスデータベース56と通信する)処理である。第2の処理は、シナリオ処理部610が処理するシナリオを変更する処理である。
ステップS744にて、シナリオ処理部610は、次に実施するstep文がシナリオに含まれていないか否かを判断する。次に実施するstep文がシナリオに含まれていないと判断した場合には(ステップS744にてYES)、処理はステップS746へと移される。もしそうでないと(ステップS744にてNO)、処理はステップS726へと移される。
ステップS746にて、シナリオ処理部610は、シナリオの処理を終了する。データ合成処理部580は、UI記述データ管理部578が出力したUI記述データ760(シナリオが示すUI記述データIDによってはUI記述ファイル762)と検索結果管理部582が出力した検索結果を示すデータとに基づいて、端末向け検索結果データを作成する。端末向け検索結果データが作成されると、データ合成処理部580は、端末向け検索結果データを通信処理部570に出力する。通信インターフェイス664は、データ合成処理部580が出力した端末向け検索結果データを送信する。
図14から図25までを参照して、以上のような構造およびフローチャートに基づく、情報表示システムの動作について説明する。
[受信した検索結果から抽出したパラメータを用いて次の検索を行い、端末向け検索結果データを作成する場合]
図14は、ユーザ端末52が検索要求を送信してからマガジンがユーザ端末52によって表示されるまでの情報の流れを示す図である。なお、本実施の形態の場合、「マガジン」とは、端末向け検索結果データを受信したユーザ端末52が表示できる、検索結果の一種を意味する。
ユーザ端末52のユーザが操作部552を操作することにより、放送中の番組の情報を求める旨の検索要求をユーザ端末52に送信させたとする。この場合、検索要求を示す通信データのパラメータ領域にはシナリオIDやその他パラメータが含まれていない場合もある。
サーバ54の通信インターフェイス664は、その通信データを受信する。その通信データにはシナリオIDやパラメータが含まれていないので、通信処理部570は、シナリオIDやパラメータが含まれていないことを示す情報(どのような情報であるかということは特に限定されないが、本実施の形態の場合は「NULL」という情報が送信されることとする)をシナリオ管理部572とシナリオ実行部574とに出力する。シナリオ管理部572は、「NULL」という情報に対応するシナリオをシナリオ実行部574に出力する。シナリオ実行部574は、シナリオの内容に応じた情報を検索結果管理部582に渡す。検索結果管理部582は、管理領域6540に記憶された情報の中から、放送地域の選択肢と、それらの選択肢にそれぞれ対応付けられた放送地域IDと、所定のシナリオIDとを読み出し、通信処理部570に出力する。通信インターフェイス664は、それらの情報をユーザ端末52に送信する。
それらの情報をユーザ端末52が受信すると、ユーザ端末52は、放送地域の選択肢を示す情報を表示する。ユーザ端末52のユーザは、操作部552を操作することにより、表示された選択肢のいずれかを選択する。選択肢のいずれかが選択されると、ユーザ端末52は、検索要求を送信する。図14においては、「パラメータ提供アプリを起動」という注釈が付された枠から延びる矢印がこの処理を示す。
図15は、この時ユーザ端末52からサーバ54へ宛てて送信される通信データのフォーマットを示す図である。この通信データは、パラメータ領域として放送地域IDを示す領域を含む。これにより、検索要求が含むキーワードは放送地域IDとなる。この放送地域IDは、ユーザが操作部552を操作することにより示した放送地域に対応している。
サーバ54の通信インターフェイス664は、その通信データを受信する。通信データが受信されると、通信処理部570は、検索要求に含まれたシナリオIDやキーワードをシナリオ管理部572に出力する。
シナリオIDやキーワードが出力されると、シナリオ管理部572は、そのシナリオIDに対応するシナリオをシナリオ実行部574に出力する(ステップS720)。
なお、図16は、この時シナリオ実行部574に出力に出力されたシナリオを示す概念図である。
シナリオが出力されると、検索結果管理部582は、端末向け検索結果データ領域6550に記憶された端末向け検索結果データの中から、その端末向け検索結果データに対応付けられたパラメータとシナリオIDとの組合わせが、ステップS720にて通信処理部570が出力した検索要求が示すすべてのパラメータとシナリオIDとの組合わせに一致するデータを検索する。検索が終了すると、検索結果管理部582は、端末向け検索結果データ領域6550に記憶された端末向け検索結果データの中に、そのような端末向け検索結果データがあるか否かを判断する(ステップS722)。
この場合、そのようなデータがないとすると(ステップS722にてNO)、シナリオ処理部610は、これから実行するシナリオの処理がswitch文か否かを判断する(ステップS726)。
図16に示すシナリオによれば、これから実行するシナリオの処理はstep文と考えられるので(ステップS726にてNO)、シナリオ処理部610は、次に実行する処理がUI記述データ管理部578の呼出しか否かを判断する(ステップS730)。
図16に示すシナリオによれば、放送中の番組の情報(チャンネル情報)を取得することが次に実行する処理と考えられるので(ステップS730にてNO)、検索結果管理部582は、コネクタ600のいずれかが受信した検索結果から抽出したパラメータが存在するか否かを判断する(ステップS734)。
この場合、そのようなパラメータが存在しないとすると(ステップS734にてNO)、検索結果管理部582は、ステップS720にて通信処理部570が出力した検索要求が示すパラメータのいずれかとシナリオが示すコネクタIDとに対応付けられた、検索結果を示すデータが検索結果領域6552に記憶されているか否かを判断する(ステップS738)。
この場合、そのようなデータが記憶されていないとすると(ステップS738にてNO)、コネクタ600は、外部サービスデータベース56に、検索要求に含まれたパラメータである放送地域IDを送信する。
放送地域IDが送信された後、コネクタ600は、検索結果を受信できたか否かを判断する。検索結果を受信できた場合、パラメータを送信したコネクタ600は、その検索結果を示すデータをデータ変換部576に出力する。データ変換部576は、そのデータを中間フォーマットに沿うよう変換した上で、検索結果管理部582に変換されたデータを出力する。
データが出力されると、シナリオ処理部610は、次に実施するstep文がシナリオに含まれていないか否かを判断する(ステップS744)。
図16に示すシナリオによれば、次に実施するstep文がシナリオに含まれていると考えられるので(ステップS744にてNO)、シナリオ処理部610は、次に実行する処理がswitch文か否かを判断する(ステップS726)。
図16に示すシナリオによれば、次に実行する処理はswitch文でないと考えられるので(ステップS726にてNO)、シナリオ処理部610は、シナリオが含む命令文に基づき、次に実行する処理がUI記述データ管理部578の呼出しか否かを判断する(ステップS730)。
この場合、次に実行する処理がUI記述データ管理部578の呼出しとすると(ステップS730にてYES)、UI記述データ管理部578は、UI記述ファイル762をデータ合成処理部580に出力する。データ合成処理部580は、合成処理を実施する(ステップS732)。
合成処理が実施されると、シナリオ処理部610は、次に実施するstep文がシナリオに含まれているか否かを判断する(ステップS744)。
この場合、次に実施するstep文がシナリオに含まれていないとすると(ステップS744にてYES)、シナリオ処理部610は、図16に示すシナリオの処理を終了する。データ合成処理部580は、端末向け検索結果データを作成し、通信処理部570に出力する。通信インターフェイス664は、データ合成処理部580が出力した端末向け検索結果データをユーザ端末52に送信する(ステップS746)。なお、この端末向け検索結果データには、検索結果である番組の情報に加え、所定のシナリオIDを示す情報が含まれている。
ユーザ端末52は、サーバ54が送信した端末向け検索結果データを受信する。図14に示す「チャンネル一覧を受信」という枠は、この動作を意味する。
端末向け検索結果データを受信したユーザ端末52は、そのデータに基づき、あるチャンネルについての番組の情報を表示部554に表示させる。図14において「チャンネル一覧を受信」という枠に付された吹き出しは、この時に表示部554に表示される番組の情報の内容例を示す。
表示部554に表示された番組の情報を見たユーザは、操作部552を操作することにより、番組情報やコマーシャル情報を取得したいチャンネルを選択する。そのチャンネルを示す情報を操作部552が受付けると、制御部556は、その情報を処理することにより、検索要求を作成し、通信部550にその検索要求を送信させる。
図17は、この時ユーザ端末52からサーバ54へ宛てて送信される通信データのフォーマットを示す図である。この通信データは、パラメータ領域としてチャンネルIDを示す領域を含む。この領域において示されるチャンネルIDは、ユーザが選択したチャンネルのチャンネルIDである。これにより、検索要求が含むパラメータはチャンネルIDとなる。また、この通信データに含まれるシナリオIDは、端末向け検索結果データを受信した際、チャンネル一覧を示す情報と共に送信されたシナリオIDである。
サーバ54の通信インターフェイス664がその通信データを受信すると、シナリオ管理部572は、そのシナリオIDに対応するシナリオをシナリオ実行部574に出力する(ステップS720)。
なお、図18は、この時シナリオ実行部574に出力されたシナリオを示す概念図である。
シナリオが出力されると、検索結果管理部582は、端末向け検索結果データ領域6550に記憶された端末向け検索結果データの中に、ステップS720にて通信処理部570が出力したシナリオIDやパラメータに対応するデータがあるか否かを判断する(ステップS722)。
この場合、そのようなデータがないとすると(ステップS722にてNO)、シナリオ処理部610は、これから実行するシナリオの処理がswitch文か否かを判断する(ステップS726)。
図18に示すシナリオによれば、これから実行するシナリオの処理はstep文と考えられるので(ステップS726にてNO)、シナリオ処理部610は、次に実行する処理がUI記述データ管理部578の呼出しか否かを判断する(ステップS730)。
図18に示すシナリオによれば、放送中の番組のジャンルとキーワードとを取得することが次に実行する処理と考えられるので(ステップS730にてNO)、検索結果管理部582は、コネクタ600のいずれかが受信した検索結果から抽出したキーワードが存在するか否かを判断する(ステップS734)。
この後、ステップS738の処理を経て、コネクタ600は、外部サービスデータベース56に、検索要求に含まれたパラメータであるチャンネルIDを送信する。
チャンネルIDが送信された後、チャンネルIDを送信したコネクタ600は、検索結果を受信できたか否かを判断する。受信された検索結果は、データ変換部576を経て検索結果管理部582に出力される。この場合、放送中の番組のジャンルとキーワードとが検索結果として送信されたとする。
検索結果が出力されると、シナリオ処理部610は、次に実施するstep文がシナリオに含まれていないか否かを判断する(ステップS744)。
図18に示すシナリオによれば、次に実施するstep文がシナリオに含まれていると考えられるので(ステップS744にてNO)、シナリオ処理部610は、次に実行する処理がswitch文か否かを判断する(ステップS726)。
図18に示すシナリオによれば、次に実行する処理はswitch文と考えられるので(ステップS726にてYES)、シナリオ処理部610は、switch文の内容に基づき、次に実行する処理を特定する(ステップS728)。図18に示すシナリオの場合、シナリオ処理部610は、管理領域6540に記憶されたジャンルを示す情報に基づき、次に実行する処理を特定することとする。
次に実行する処理が特定されると、シナリオ処理部610は、次に実行する処理がswitch文か否かを判断する(ステップS726)。
この場合、次に実行する処理がswitch文でないとすると(ステップS726にてNO)、シナリオ処理部610は、シナリオが含む命令文に基づき、次に実行する処理がUI記述データ管理部578の呼出しか否かを判断する(ステップS730)。
この場合、次に実行する処理がUI記述データ管理部578の呼出しとすると(ステップS730にてYES)、UI記述データ管理部578は、UI記述ファイル762をデータ合成処理部580に出力する。データ合成処理部580は、合成処理を実施する(ステップS732)。
合成処理が実施されると、シナリオ処理部610は、次に実施するstep文がシナリオに含まれているか否かを判断する(ステップS744)。
図18に示すシナリオにおいて、次に実施するstep文がシナリオに含まれていないとすると(ステップS744にてYES)、シナリオ処理部610は、図18に示すシナリオの処理を終了する。データ合成処理部580は、端末向け検索結果データを作成し、通信処理部570に出力する。通信インターフェイス664は、データ合成処理部580が出力した端末向け検索結果データをユーザ端末52に送信する(ステップS746)。この端末向け検索結果データは、キーワードを示す情報と複数の種類のユーザアクションを示す情報とに加え、ユーザアクションにそれぞれ対応付けられたシナリオIDの情報を含む。
ユーザ端末52は、サーバ54が送信した端末向け検索結果データを受信する。図14に示す「キーワードとユーザアクションの一覧」という枠は、ユーザ端末52が受信した端末向け検索結果データがキーワードとユーザアクションの一覧とを示すことを意味する。
端末向け検索結果データを受信したユーザ端末52は、そのデータに基づき、キーワードとユーザアクションとの情報を表示部554に表示させる。図14において「キーワードとユーザアクションの一覧」という枠に付された吹き出しは、この時に表示部554に表示されるキーワードの内容例を示す。
表示部554に表示された番組の情報を見たユーザは、操作部552を操作することにより、キーワードとユーザアクションとを選択する。キーワードとユーザアクションとを操作部552が受付けると、制御部556は、その情報を処理することにより、検索要求を作成し、通信部550にその検索要求を送信させる。
図19は、この時ユーザ端末52からサーバ54へ宛てて送信される通信データのフォーマットを示す図である。この通信データは、ユーザ端末52のユーザが選択したキーワードを示す領域とユーザアクションを示す領域とをパラメータ領域として含む。これにより、検索要求が含むパラメータは、ユーザ端末52のユーザが選択したキーワードと、そのユーザが選択したユーザアクションとになる。また、シナリオID領域において示されるシナリオIDは、ユーザアクションの内容に対応づけてサーバ54から送信されたものである。
図20は、検索結果管理部582が蓄積した情報を利用しない場合における、本実施の形態に係る情報表示システムにおける情報の流れのうち、図19に示すフォーマットの通信データを受信した時以降におけるものの例を示す図である。図20における「ユーザ端末」から「通信処理部」までの「検索要求」という注釈が付された矢印がユーザ端末52からサーバ54への通信データの送信処理を示す。「検索要求」という注釈の下に記載された「シナリオID、キーワード、ユーザアクション」という注釈は、このとき通信される検索要求に含まれるパラメータを示す。
サーバ54の通信インターフェイス664がその通信データを受信すると、通信処理部570は、検索要求に含まれたシナリオIDやパラメータをシナリオ管理部572とシナリオ実行部574とに出力する。図20において「通信処理部」と「シナリオ管理部」との間の「シナリオ読込指示」という注釈が付された矢印がこの処理を示す。
シナリオIDやパラメータが出力されると、シナリオ管理部572は、そのシナリオIDに対応するシナリオをシナリオ実行部574に出力する(ステップS720)。図20において「シナリオ管理部」と「シナリオ実行部」との間の「指定シナリオ実行指示」という注釈が付された矢印がこの処理を示す。
なお、図21は、この時シナリオ実行部574に出力に出力されたシナリオを示す概念図である。
シナリオが出力されると、検索結果管理部582は、端末向け検索結果データ領域6550に記憶された端末向け検索結果データの中に、ステップS720にて通信処理部570が出力したシナリオIDやパラメータに対応するデータがあるか否かを判断する(ステップS722)。
この場合、そのようなデータがないとすると(ステップS722にてNO)、シナリオ処理部610は、これから実行するシナリオの処理がswitch文か否かを判断する(ステップS726)。図20において「シナリオ実行部」に付された円がこの処理を示す。
図21に示すシナリオによれば、これから実行する処理はswitch文と考えられるので(ステップS726にてYES)、シナリオ処理部610は、switch文の内容に基づき、次に実行する処理を特定する(ステップS728)。図21に示すシナリオの場合、シナリオ処理部610は、検索要求に含まれたユーザアクションを示す情報に基づき、次に実行する処理を特定することとする。
次に実行する処理が特定されると、シナリオ処理部610は、次に実行する処理がswitch文か否かを判断する(ステップS726)。
ここでは、次に実行する処理が図21に示す「<step id="見たい"」であることと仮定する。この場合、次に実行する処理はswitch文でないので(ステップS726にてNO)、シナリオ処理部610は、シナリオが含む命令文に基づき、次に実行する処理がUI記述データ管理部578の呼出しか否かを判断する(ステップS730)。
この場合、次に実行する処理は図21に示す「<step id="見たい"」である。この処理はUI記述データ管理部578の呼出しではないので(ステップS730にてNO)、検索結果管理部582は、コネクタ通信部600のいずれかが受信した検索結果から抽出したキーワードが存在するか否かを判断する(ステップS734)。
この場合、そのようなキーワードが存在しないとすると(ステップS734にてNO)、検索結果管理部582は、ステップS720にて通信処理部570が出力した検索要求が示すキーワードのいずれかとシナリオが示すコネクタIDとに対応付けられた、検索結果を示すデータが記憶されているか否かを判断する(ステップS738)。
この場合、そのようなデータが記憶されていないとすると(ステップS738にてNO)、コネクタ呼出部614は、シナリオ処理部610から渡されたコネクタIDに基づき、データ取得部576が含むコネクタ600のいずれかを選択し、実行するコネクタ600を指定する(ステップS742)。図20において「シナリオ実行部」と「コネクタA」との間の「コネクタA実行指示(キーワード)」という注釈が付された矢印がこの処理を示す。
この場合、データ取得部576が含む複数のコネクタ600のうちそのコネクタIDに対応するコネクタ600は、DVD販売サイトとして動作する外部サービスデータベース56に、検索要求に含まれたキーワードを送信する。この場合、検索要求に含まれたキーワードは「×××」と「CM」とであることとする。図20において「コネクタA」と「サービスA」との間の「サービスA実行」という注釈が付された矢印がこの処理を示す。
DVD販売サイトとして動作する外部サービスデータベース56は、検索を行い、検索結果を示すデータをコネクタ600に返信する。図20において「サービスA」と「コネクタA」との間の「サービスA取得データ」という注釈が付された矢印がこの処理を示す。
キーワードを送信したコネクタ600は、検索結果を受信できたか否かを判断する。この場合、検索結果を受信できたとすると、キーワードを送信したコネクタ600は、その検索結果を示すデータをデータ変換部576に出力する。データ変換部576は、そのデータを中間フォーマットに沿うよう変換した上で、変換されたデータを検索結果管理部582に出力する。図20において「コネクタA」と「検索結果管理部」との間の「コネクタAデータ出力」という注釈が付された矢印がこの処理を示す。
図22は、DVD販売サイトとして動作する外部サービスデータベース56が送信した検索結果を示すデータの一例を示す概念図である。ただし、図22は、説明の便宜を図るためにブラウザで表示した場合の画像としてこのデータを示しているものに過ぎず、検索結果を示すデータがこのような画像データの形態で取り扱われることを示すものではない。通常の場合、検索結果を示すデータは、他のデータファイルと同様の形態で取り扱われる。
データが出力されると、検索結果管理部582は、検索結果領域6552にそのデータを記憶させる。シナリオ処理部610は、次に実施するstep文がシナリオに含まれていないか否かを判断する(ステップS744)。
この場合、図21によれば、次に実施するstep文がシナリオに含まれているので(ステップS744にてNO)、シナリオ処理部610は、次に実行する処理がswitch文か否かを判断する(ステップS726)。
図21に示すシナリオによれば、次に実行する処理は「コネクタ600を呼出し、関連ブログ検索を行い情報を取得する」である。この処理はswitch文でないと考えられるので(ステップS726にてNO)、シナリオ処理部610は、シナリオが含む命令文に基づき、次に実行する処理がUI記述データ管理部578の呼出しか否かを判断する(ステップS730)。
この場合、上述の通り、次に実行する処理はUI記述データ管理部578の呼出しではないので(ステップS730にてNO)、検索結果管理部582は、コネクタ600のいずれかが受信した検索結果から抽出したキーワードが存在するか否かを判断する(ステップS734)。
この場合、そのようなキーワードが存在しないとすると(ステップS734にてNO)、検索結果管理部582は、ステップS720にて通信処理部570が出力した検索要求が示すパラメータのいずれかとシナリオが示すコネクタIDとに対応付けられた検索結果を示すデータが検索結果領域6552に記憶されているか否かを判断する(ステップS738)。
この場合、そのようなデータを記憶していないとすると(ステップS738にてNO)、コネクタ呼出部614は、シナリオ処理部610から渡されたコネクタIDに基づき、データ取得部576が含むコネクタ600のいずれかを選択し、実行するコネクタ600と指定する(ステップS742)。図20において「シナリオ実行部」と「検索結果管理部」との間の「コネクタAデータ出力を使ってコネクタB実行指示」という注釈が付された矢印がこの処理を示す。
この場合、データ取得部576が含む複数のコネクタ600のうちそのコネクタIDに対応するコネクタ600は、検索エンジンとして動作する外部サービスデータベース56に、キーワードを送信する。送信されるキーワードは、検索結果管理部582が検索結果を示すデータから抽出した「△△△・□□□」というキーワードである。図20において「検索結果管理部」と「コネクタB」との間の「コネクタAデータ出力」という注釈が付された矢印、および「コネクタB」と「サービスB」との間の「サービスB実行」という注釈が付された矢印が、この処理を示す。
検索エンジンとして動作する外部サービスデータベース56は、検索を行い、検索結果を示すデータをコネクタ600に返信する。図20において「サービスB」と「コネクタB」との間の「サービスB取得データ」という注釈が付された矢印がこの処理を示す。
キーワードを送信したコネクタ600は、検索結果を受信できたか否かを判断する。この場合、検索結果を受信できたとすると、キーワードを送信したコネクタ600は、その検索結果を示すデータをデータ変換部576に出力する。データ変換部576は、そのデータを中間フォーマットに沿うよう変換した上で、変換されたデータを検索結果管理部582に出力する。図20において「コネクタB」と「検索結果管理部」との間の「コネクタBデータ出力」という注釈が付された矢印がこの処理を示す。
図23は、検索エンジンとして動作する外部サービスデータベース56が送信した検索結果を示すデータの一例を示す概念図である。ただし、図23も、説明の便宜を図るためにブラウザで表示した場合の画像としてこのデータを示しているものに過ぎない。
データが出力されると、検索結果管理部582は、検索結果領域6552にそのデータを記憶させる。シナリオ処理部610は、次に実施するstep文がシナリオに含まれていないか否かを判断する(ステップS744)。
この場合、図21によれば、次に実施するstep文がシナリオに含まれているので(ステップS744にてNO)、シナリオ処理部610は、次に実行する処理がswitch文か否かを判断する(ステップS726)。
図21に示すシナリオによれば、次に実行する処理は「<step id="検索結果の出力"」である。この処理はswitch文でないと考えられるので(ステップS726にてNO)、シナリオ処理部610は、シナリオが含む命令文に基づき、次に実行する処理がUI記述データ管理部578の呼出しか否かを判断する(ステップS730)。
この場合、「検索結果の出力」がUI記述データ管理部578の呼出しを意味すると考えられるので(ステップS730にてYES)、UI記述データ呼出部612は、シナリオ処理部610から渡されるUI記述データIDの中から、シナリオなどが示す要件に応じたUI記述データIDを選択し、選択したUI記述データIDを出力する。図20における「シナリオ実行部」から「UI記述データ管理部」までの「UI記述データ合成指示(UI記述データ、コネクタA、Bの取得データ出力指示)」という注釈が付された矢印がこの処理を示す。
UI記述データIDが出力されると、UI記述データ管理部578は、UI記述ファイル762をデータ合成処理部580に出力する。図20における「UI記述データ管理部」から「データ合成処理部」までの「UI記述データ出力」という注釈が付された矢印がこの処理を示す。
この時点までに、検索結果管理部582は、検索結果を示すデータをデータ合成処理部580に出力している。図20における「UI記述データ管理部」から「検索結果管理部」までの「取得データ出力指示」という注釈が付された矢印と、「検索結果管理部」から「データ合成処理部」までの「データ出力」という注釈が付された矢印とがこの処理を示す。
UI記述ファイル762と検索結果を示すデータとが出力されると、データ合成処理部580は、合成処理を実施する(ステップS732)。
合成処理が実施されると、シナリオ処理部610は、次に実施するstep文がシナリオに含まれているか否かを判断する(ステップS744)。
この場合、次に実施するstep文がシナリオに含まれていないと考えられるので(ステップS744にてYES)、シナリオ処理部610は、図21に示すシナリオの処理を終了する。データ合成処理部580は、端末向け検索結果データを作成し、通信処理部570に出力する。図20における「データ合成処理部」から「通信部」までの「端末向け検索結果データ」という注釈が付された矢印がこの処理を示す。
端末向け検索結果データが出力されると、通信インターフェイス664は、その端末向け検索結果データをユーザ端末52に送信する(ステップS746)。図20における「通信処理部」から「ユーザ端末」までの「端末向け検索結果データ」という注釈が付された矢印がこの処理を示す。
ユーザ端末52は、サーバ54が送信した端末向け検索結果データを受信する。図14に示す「マガジンの取得」という枠は、この動作を意味する。
図14において「マガジンの取得」という枠に付された吹き出しは、この時に表示部554に表示される情報(すなわちマガジン)の内容例を示す。
なお、この時に表示部554に表示される画像は、1種類に限らない。外部サービスデータベース56が受信した情報によっては、2種類以上の画像が表示されても良い。図24は、2種類以上の画像が表示部554に表示されることを示す概念図である。何ページ目のどの位置にどのような情報が配置されるかということは、すべてUI記述データに記述されている。
[予め蓄積されたデータを利用せず、端末向け検索結果データを作成する場合]
2種類のキーワードと1種類のユーザアクションとをパラメータとする通信データをサーバ54の通信インターフェイス664が受信したとする。
図25は、検索結果管理部582が蓄積した情報を利用しない場合における、本実施の形態に係る情報表示システムの情報の流れのうち、そのような通信データを受信した時以降におけるものの例を示す図である。
通信インターフェイス664が通信データを受信した後、上述した場合と同様の処理が実施されたとする。そしてその結果、あるコネクタ600が、通信データが含む2種類のキーワードのうち1種類に対する検索結果を示すデータを外部サービスデータベース56から受信したとする。
コネクタ600は、その検索結果を示すデータをデータ変換部576に出力する。データ変換部576は、そのデータを中間フォーマットに沿うよう変換した上で、変換されたデータを検索結果管理部582に出力する。図25において「コネクタA」と「検索結果管理部」との間の「コネクタAデータ出力」という注釈が付された矢印がこの処理を示す。
その後、コネクタ呼出部614は、シナリオ処理部610から渡されたコネクタIDに基づき、データ取得部576が含むコネクタ600のいずれかを選択し、実行するコネクタを指定する(ステップS742)。図25において「シナリオ実行部」と「コネクタB」との間の「コネクタB実行指示(キーワード)」という注釈が付された矢印がこの処理を示す。
この場合、データ取得部576が含む複数のコネクタ600のうちそのコネクタIDに対応するコネクタ600は、検索エンジンとして動作する外部サービスデータベース56に、キーワードを送信する。送信されるキーワードは、通信インターフェイス664が受信した2種類のキーワードのうち、まだ外部サービスデータベースに送信されていないキーワードである。図25において「コネクタB」と「サービスB」との間の「サービスB実行」という注釈が付された矢印が、この処理を示す。
[端末向け検索結果データ領域6550に記憶されたデータを返信する場合]
ステップS720の処理を経て、検索結果管理部582は、端末向け検索結果データ領域6550に記憶された端末向け検索結果データの中から、その端末向け検索結果データに対応付けられたパラメータとシナリオIDとの組合わせが、ステップS720にて通信処理部570が出力した検索要求が示すすべてのパラメータとシナリオIDとの組合わせに一致するデータを検索する。検索が終了すると、検索結果管理部582は、端末向け検索結果データ領域6550に記憶された端末向け検索結果データの中に、そのような端末向け検索結果データがあるか否かを判断する(ステップS722)。
この場合、そのようなデータがあるとすると(ステップS722にてYES)、検索結果管理部582は、ステップS720にて通信処理部570が出力したシナリオIDやパラメータに対応する端末向け検索結果データを通信処理部570に出力する(ステップS724)。通信インターフェイス664は、検索結果管理部582が出力した端末向け検索結果データをユーザ端末52に送信する(ステップS746)。
[検索結果領域6552に記憶されたデータを返信する場合]
ステップS720〜ステップS730の処理を経て、検索結果管理部582は、コネクタ600のいずれかが受信した検索結果から抽出したパラメータが存在するか否かを判断する(ステップS734)。
この場合、そのようなパラメータが存在するとすると(ステップS734にてYES)、コネクタ呼出部614は、シナリオ処理部610から渡されたコネクタIDに基づき、データ取得部576が含むコネクタ600のいずれかを選択し、実行するコネクタを指定する。検索結果管理部582は、そのコネクタIDに対応するコネクタ600に対し、パラメータを渡す(ステップS736)。
キーワードが渡されると、検索結果管理部582は、ステップS720にて通信処理部570が出力した検索要求が示すコネクタIDと渡されたキーワードとに対応付けられた、検索結果を示すデータが検索結果領域6552に記憶されているか否かを判断する(ステップS738)。
この場合、そのようなデータが記憶されていないとすると(ステップS738にてNO)、ステップS742以降の処理を経て、端末向け検索結果データがユーザ端末52宛に送信される(ステップS746)。
以上のようにして、本実施の形態における情報表示システムは、検索要求に含まれたシナリオIDに基づき複数のシナリオのいずれかを特定する。シナリオが特定されると、サーバ54は、そのシナリオに基づいて検索を要求する外部サービスデータベース56を特定する。特定された外部サービスデータベース56は検索結果を返信する。検索結果を受信したサーバ54は、検索結果を編集して端末向け検索結果データを作成する。端末向け検索結果データはユーザ端末52に送信されユーザ端末52によってマガジンその他の情報として表示される。図26はこのような処理を示す概念図である。
本実施の形態における情報表示システムにおいては、検索結果としてユーザ端末52に送信された情報が次の検索要求におけるパラメータとして利用される。そのような情報の利用により、ユーザ端末52のユーザは、検索のためのキーワードを検索の都度最初から考えなくてもよくなる。そのユーザは、複数のキーワードが提示された場合に、提示されたキーワードのうちどのキーワードを用いるかを考えればよい。
しかも、自動的に複数の外部サービスデータベース56に対して検索が要求され、検索結果としてユーザ端末52に送信された情報がその際のパラメータとして利用されるので、ユーザが検索のために何らかの動作を行う回数は少なくなる。図27は、このことを示す概念図である。従来の携帯電話やパーソナルコンピュータなどを用いて検索を行う場合、一度に検索を要求できるのは図27に示した3つの外部サービスデータベース56のうち1つだけであったが、本実施の形態にかかる情報表示システムの場合、図27に示す3つの外部サービスデータベース56から一度に検索結果を受信できる。通常、あるサイトから情報を得ようとするユーザは、そのサイトにアクセスした上で検索を要求するか、パラメータ一種としてそのサイトのURLなどを指定することが必要である。このような作業は煩わしい。その上、このような作業を実施する場合、ユーザが知らないサイトから情報を得ることはできなくなる。本実施の形態における情報表示システムにおいては、パラメータを送信する外部サービスデータベース56をユーザが個別に指定しなくてもよいので、ユーザに煩わしい作業を強いることがなく、ユーザが知らないサイトから得た情報をユーザに提供することができる。
また、検索を繰返す際、繰返される検索のうち最初の検索に用いるキーワードは予め定められている。これにより、ユーザ端末52のユーザは、繰返される検索のうち最初の検索においても、キーワードを考えなくてよい。
その上、本実施の形態に係るサーバ54は、通信可能な外部サービスデータベース56のうち情報を得るサーバをシナリオに基づいて特定する。情報を得るサーバがシナリオに基づいて特定されるので、通信のための制御のうち外部サービスデータベース56の特定以外の部分を共用化できる。制御の一部が共用化されることにより、サーバ54の設計が容易となり、かつ性能が低いハードウェアによってもサーバ54として動作させることが可能になる。しかも、外部サービスデータベース56をユーザが個別に指定しなくてもよい。
また、ユーザの意思を反映して外部サービスデータベース56を特定する必要がある場合、シナリオIDはユーザアクションに対するユーザの選択に応じて定められる。ユーザの意思が自明な場合やユーザの意思を反映する必要がない場合、検索要求に含まれるシナリオIDは予め定められたIDである。
上述したように、「ユーザアクション」は、検索のために用いるキーワードとは別の、予め設定されているユーザの動作のカテゴリーであって、ユーザにより選択されるもの、たとえば、「買う」「見る」「知る」といったようなユーザが行いたい動作として選択される可能性のある選択肢を意味する情報である。ユーザに対してユーザアクションを提示した後、提示したユーザアクションのいずれかが選択されると、選択されたユーザアクションはユーザが行いたい動作に対応することとなる。
これにより、シナリオIDはユーザが行いたい動作に対応することとなる。ユーザが行いたい動作にシナリオIDが対応しているので、外部サービスデータベース56が提供したすべての情報が検索結果に含まれる場合に比べ、ユーザにとって不要な情報が検索結果に占める割合は少なくなる。ユーザにとって不要な情報の割合が少なくなるので、検索が繰返される回数の合計は少なくなる。
また、外部サービスデータベース56がシナリオIDに基づいて特定されることにより、検索エンジンを用いて検索した場合のように情報量が多くなり過ぎることはなくなる。
その上、本実施の形態に係るサーバ54は、コネクタ600を参照して外部サービスデータベース56と通信する。これにより、通信のための制御のうち外部サービスデータベース56に関わらず同一の部分を共用化できる。制御の一部が共用化されることにより、サーバ54の設計が容易となり、かつ性能が低いハードウェアによってもサーバ54として動作させることが可能になる。
その上、本実施の形態に係るサーバ54は、シナリオに基づいてコネクタ600を特定し、特定されたコネクタ600に対応する外部サービスデータベース56と通信する。これにより、通信のための制御のうち外部サービスデータベース56の特定に関する部分において、制御のための処理を簡略化できる。制御のための処理が簡略化されることにより、サーバ54の設計が容易となり、かつ性能が低いハードウェアによってもサーバ54として動作させることが可能になる。
その上、本実施の形態に係るサーバ54は、ある検索要求を受信し、その検索要求に対する検索結果を受信すると、その検索結果やその検索結果を示す端末向け検索結果データを蓄積する。これにより、外部サービスデータベース56にアクセスする頻度を少なくできる。その頻度を少なくできるので、検索結果を蓄積しない場合に比べ、外部サービスデータベース56との通信が困難でも端末向け検索結果データを作成して送信できる可能性が高くなる。
その上、本実施の形態に係るサーバ54は、更新、削除、および追加のうち少なくとも一種類の処理が可能であるようにシナリオやコネクタ600を記憶する。これにより、本実施の形態に係るサーバ54は、外部サービスデータベース56の変動や必要とされる情報の変化に対して容易に対処できる。
その上、本実施の形態に係るサーバ54は、「NULL」などといった一定の要件を満たさない検索結果が返信された場合、その検索結果を送信した外部サービスデータベース56とは別の外部サービスデータベース56に対してパラメータを送信し、検索結果を受信することができる。これにより、ユーザが期待する検索結果が得られる可能性が高くなる。
その上、本実施の形態に係るサーバ54は、複数の種類のUI記述データを記憶でき、シナリオIDに基づいて特定されたそれらのデータのいずれかを用いて端末向け検索結果データを作成する。これにより、得られた検索結果に応じた形態で情報を出力できるので、UI記述データが一種類しか記憶できない場合に比べ、本実施の形態における情報表示システムの利便性は向上する。
しかも、本実施の形態においてUI記述データ760はスクリプト言語で記述されている。ユーザ端末52は、スクリプト言語で記述された端末向け検索結果データに基づき、表示機能を有する端末上にて検索結果を表示する際に表示部分を切り替え可能な形で検索結果を表示する。これにより、切り替え可能な表示により、表示切り替えが不可能な場合に比べ、検索結果は見やすくなる。
その上、本実施の形態に係るサーバ54は、対応シナリオの読み出しの開始時から端末向け検索結果データの作成の完了時までの間に、所定のメッセージをユーザ端末52へ送信することができる。これにより、検索結果を待つユーザの心理的ストレスを和らげることができる。
その上、本実施の形態に係るサーバ54は、端末向け検索結果データを作成する際、検索結果を示すデータを中間フォーマットに沿うよういったん変換する。これにより、端末向け検索結果データを作成するための制御が簡略化される。
なお、本実施の形態の第1の変形例においては、ユーザ端末52が検索結果を受信する場合、検索結果は音声データとして通信されてもよい。検索結果が音声データの場合、ユーザ端末52は検索結果を音声として出力できる。検索結果がテキストデータとして通信され、ユーザ端末52において音声データに変換されてもよい。検索結果が音声として出力されると、ユーザはその音声に基づいてユーザ端末52を操作することによりそれまでできなかった操作が容易にできる。
また、本実施の形態の第2の変形例においては、検索結果は、画像表示や音声出力以外の方法で出力されてもよい。そのような出力方法の例として、印刷することが考えられる。また、検索結果は動画として出力されてもよい。
また、本実施の形態の第3の変形例においては、ユーザ端末52は、受信した端末向け検索結果データを後に別の装置に転送してもよい。
また、本実施の形態の第4の変形例においては、ユーザ端末52の他に、サーバ54に検索要求を送信したりサーバ54から検索結果を受信したりする端末が上述した情報表示システムに含まれていてもよい。そのような端末は、何らかの機器に接続されていてもよい。
たとえば、そのような機器が蛍光灯である場合、蛍光灯の電源が投入されたことに応じて、蛍光灯に接続された端末からサーバ54に検索要求を示す通信データが自動的に送信されてもよい。この場合、検索要求が示すパラメータが放送地域IDで出力先端末情報がユーザ端末52を示していれば、蛍光灯の電源が投入されたことに応じて、ユーザ端末52にその時放送されている番組の情報を表示させることも可能になる。
あるいは、端末が接続されている機器が冷蔵庫であれば、冷蔵庫の扉を開いたことに応じて冷蔵庫の中の食品の賞味期限をユーザ端末52に表示させることも可能になる。この場合、検索要求が含むパラメータが冷蔵庫の識別情報で、外部サービスサーバ56のいずれかがその冷蔵庫の中の食品の賞味期限を記憶していることが必要である。
図28は、このような機器が含まれている場合の、情報表示システムの構成を示す図である。図28を参照して、本変形例に係る情報表示システムは、ユーザ端末52と、サーバ54と、複数の外部サービスデータベース56と、IH(Induction Heating)調理システム60とを含む。
IH調理システム60は、加熱条件の設定がなされた後、加熱調理を開始する操作がなされると、それに応じて、食品を加熱する。IH調理システム60は、サーバ54に対し検索要求を送信すると共に、サーバ54から端末向け検索結果データを受信する、ユーザ端末52と同様な端末の一種でもある。
なお、本変形例の場合、ユーザ端末52とIH調理システム60とは、いずれもサーバ54に対して検索要求を送信するとともに、サーバ54から端末向け検索結果データを受信する端末として動作する。
本変形例に係る情報表示システムは、ユーザ端末52とIH調理システム60とが含まれていることにより、IH調理システム60が送信した検索要求に対する検索結果をユーザ端末52に送信することも、その逆も可能である。それらのことが可能なのは、検索要求を示す通信データが検索結果の送信先を示す情報を含み、その情報が示す端末にサーバ54が検索結果を送信するためである。
図29は、IH調理システム60の構成を示す図である。本実施の形態の場合、IH調理システム60は、加熱調理装置500と情報処理装置502とを含む。加熱調理装置500と情報処理装置502との間は、ケーブルによって通信できるように接続されている。また、情報処理装置502は、図示しない通信回線を介してサーバ54と通信できる。
加熱調理装置500は、加熱調理装置500の動作を全体的に制御する制御部510を備えている。制御部510には、加熱部512、各種検知部514、表示部516、キー入力部518、記憶部520、および、通信部522が接続されている。
加熱調理装置500は、加熱調理を実行する。つまり、キー入力部518に対して、加熱条件の設定がなされた後、加熱調理を開始する操作がなされると、それに応じて、加熱調理装置500の制御部510は、加熱部512に加熱動作を開始させる。
各種検知部514は、被加熱物の加熱の進行度合いを種々の方法(具体的な方法は特に限定されるものではないが、例えば、加熱部512の内部の温度の推移により進行度合いを検知する方法がある。この場合、各種検知部514は、温度センサを含むこととなる。)で検知する。そして、制御部510は、各種検知部514から出力される情報に応じて、加熱部512による加熱動作を停止させる。
一方、加熱調理装置500は、通信部522を介して、情報処理装置502に接続されている。これにより、情報処理装置502は、キー入力部518に対して操作がなされたことを示す信号を通信部522から受信することができる。また、情報処理装置502は、様々な情報を加熱調理装置500に送信することができる。
制御部510は、通信部522を介して受信した情報を、記憶部520に記憶させることができる。そして、制御部510は、記憶部520に記憶させた情報に基づいて、加熱部512の加熱動作を制御したり、表示部516の表示内容を制御することができる。
情報処理装置502は、情報処理装置502の動作を全体的に制御するメイン処理部530を備えている。メイン処理部530には、入力部532、表示部534、記憶部536、および、通信部538が接続されている。
通信部538は、図示しない通信回線を介してサーバ54と通信する。これにより、通信部538は、外部サービスデータベース56が送信した情報をダウンロードできる。また、記憶部536は、ダウンロードされた情報を記憶する。メイン処理部530は、ダウンロードした情報を記憶部536に記憶させることができる。また、メイン処理部530は、記憶部536に記憶させた情報を、通信部538を介して、加熱調理装置500に送信する機能を備えている。
なお、情報処理装置502では、メイン処理部530は、表示部534に、ダウンロードした情報を表示する。また、メイン処理部530は、入力部532に対してなされた操作に応じて変更したり追加したりすることにより、ダウンロードした情報の内容を修正することができる。修正された情報は、記憶部536に記憶される。
そして、メイン処理部530は、修正後の情報を、通信部538を介して、加熱調理装置500に送信することができる。
加熱調理装置500の制御部510は、上述した修正後の情報も、記憶部520に記憶させることができる。そして、キー入力部518に対して所定の操作がなされた場合、制御部510は、その修正後の情報に応じて、加熱部512や表示部516などの動作を制御する。
以上のような構造およびフローチャートに基づく、本変形例にかかる情報表示システムの動作について説明する。
[IH調理システム60が検索要求を送信したことに応じて、端末向け検索結果データをユーザ端末52に送信する場合]
IH調理システム60のユーザがキー入力部518を操作することにより、ある料理の調理方法の情報を求める旨の検索要求をIH調理システム60に送信させたとする。この場合、料理の名称を示す情報が検索要求を示す通信データのパラメータ領域に含まれることとなる。
サーバ54の通信インターフェイス664は、その通信データを受信する。通信データが受信されると、通信処理部570は、検索要求に含まれたシナリオIDやパラメータをシナリオ管理部572とシナリオ実行部574とに出力する。
シナリオIDやパラメータが出力されると、シナリオ管理部572は、そのシナリオIDに対応するシナリオをシナリオ実行部574に出力する(ステップS720)。
シナリオが出力されると、検索結果管理部582は、端末向け検索結果データ領域6550に記憶された端末向け検索結果データの中に、ステップS720にて通信処理部570が出力したシナリオIDやパラメータに対応するデータがあるか否かを判断する(ステップS722)。
この場合、そのようなデータがないとすると(ステップS722にてNO)、シナリオ処理部610は、これから実行するシナリオの処理がswitch文か否かを判断する(ステップS726)。
この場合、次に実行する処理がswitch文とすると(ステップS726にてYES)、シナリオ処理部610は、switch文の内容に基づき、次に実行する処理を特定する(ステップS728)。この場合、シナリオ処理部610は、通信データのパラメータ領域に含まれた料理名の情報に基づき、次に実行する処理を特定することとする。
次に実行する処理が特定されると、シナリオ処理部610は、次に実行する処理がswitch文か否かを判断する(ステップS726)。
この場合、次に実行する処理がswitch文でないとすると(ステップS726にてNO)、シナリオ処理部610は、シナリオが含む命令文に基づき、次に実行する処理がUI記述データ管理部578の呼出しか否かを判断する(ステップS730)。
この場合、次に実行する処理がUI記述データ管理部578の呼出しでないとすると(ステップS730にてNO)、検索結果管理部582は、コネクタ600のいずれかが受信した検索結果から抽出したパラメータが存在するか否かを判断する(ステップS734)。
この場合、そのようなパラメータが存在しないとすると(ステップS734にてNO)、検索結果管理部582は、検索要求が示すパラメータとシナリオが示すコネクタIDとに対応付けられた検索結果を示すデータが検索結果領域6552に記憶されているか否かを判断する(ステップS738)。
この場合、そのようなデータが記憶されていないとすると(ステップS738にてNO)、コネクタ600は、外部サービスデータベース56に、検索要求に含まれたパラメータ(この場合、料理の名称)を送信する。
パラメータが送信された後、パラメータを送信したコネクタ600は、検索結果(この場合、調理方法の情報)を受信できたか否かを判断する。検索結果を受信できた場合、パラメータを送信したコネクタ600は、その検索結果を示すデータをデータ変換部576に出力する。データ変換部576は、そのデータを中間フォーマットに沿うよう変換した上で、検索結果管理部582に変換されたデータを出力する。
データが出力されると、シナリオ処理部610は、次に実施するstep文がシナリオに含まれていないか否かを判断する(ステップS744)。
この場合、次に実施するstep文がシナリオに含まれているとすると(ステップS744にてNO)、シナリオ処理部610は、次に実行する処理がswitch文か否かを判断する(ステップS726)。
この場合、次に実行する処理はswitch文でないとすると(ステップS726にてNO)、シナリオ処理部610は、シナリオが含む命令文に基づき、次に実行する処理がUI記述データ管理部578の呼出しか否かを判断する(ステップS730)。
この場合、次に実行する処理がUI記述データ管理部578の呼出しとすると(ステップS730にてYES)、UI記述データ管理部578は、UI記述ファイル762をデータ合成処理部580に出力する。データ合成処理部580は、合成処理を実施する(ステップS732)。
合成処理が実施されると、シナリオ処理部610は、次に実施するstep文がシナリオに含まれているか否かを判断する(ステップS744)。
この場合、次に実施するstep文がシナリオに含まれていないとすると(ステップS744にてYES)、シナリオ処理部610は、シナリオの処理を終了する。データ合成処理部580は、端末向け検索結果データを作成し、通信処理部570に出力する。通信インターフェイス664は、データ合成処理部580が出力した端末向け検索結果データをユーザ端末52に送信する(ステップS746)。
これにより、出力先端末情報領域において示された送信先に端末向け検索結果データが送信される。その端末向け検索結果データが送信されると、複数のユーザが同じ情報を共有することが可能になる。また、IH調理システム60がユーザ端末52を送信先として検索要求データを送信することで、ユーザ端末52のユーザが意識して検索を要求しなくてもそのユーザに情報を提供したりすることが可能になる。
また、本実施の形態の第5の変形例においては、ユーザ端末52は、サーバ54に検索要求を送信し、サーバ54から検索結果を受信し、かつ検索結果を表示できる、携帯電話以外の装置であってもよい。これにより、様々な情報源から得た情報を携帯電話以外の装置において出力させることができる。
また、本実施の形態の第6の変形例においては、ユーザ端末52における検索結果の表示形態は特に限定されない。例えば、表示部554の一部に検索結果が表示されてもよい。
また、本実施の形態の第7の変形例においては、図1に示した情報表示システムは、外部サービスデータベース56のいずれかに代え、外部サービスデータベース56と同様の機能を有する物を含んでもよい。そのような物の例には、情報を記憶できかつその情報を検索できる装置とその情報を送信する装置とを含むシステムがある。あるいは、パーソナルコンピュータ、DVDプレーヤ、HDDコンポ、携帯型オーディオプレーヤなどであってもよい。
また、本実施の形態の第8の変形例においては、サーバ54は、所定の情報を端末向け検索結果データの代わりとして送信する機能を有していてもよい。例えば、外部通信が物理的に遮断された場合や、サーバ自体に不具合が生じた場合など、意図しない状況によりサーバが端末向け検索結果データを送信できない事態となった場合に、所定の警告を端末向け検索結果データの代わりとして送信する。この場合の警告として、どのような情報を送信するか、また、どのようにしてその情報を取得するかは、予め定められている。
また、本実施の形態の第9の変形例においては、データ合成処理部580の構成は、図7に示すものに限定されない。図30は、データ合成処理部580の構成の一例を示す図である。図30を参照して、この場合のデータ合成処理部580は、データ合成部630と、データパッケージ化部632とを含む。
データ合成部630は、UI記述データ760と検索結果を示すデータとを合成することにより、端末向け検索結果データを作成する処理を示す。
データパッケージ化部632は、データ合成部624が合成したデータに基づいて、1つのアーカイブファイルを作成する処理を示す。
図30に示すデータ合成処理部580の構成は、端末にロゴが表示されないなどといった、検索結果に応じて端末向け検索結果データの内容がすべて変化する場合に適した構成である。
また、本実施の形態の第10の変形例においては、検索要求を示す通信データのフォーマットは、図13に示すものに限定されない。たとえば、出力先端末情報領域に代え、送信元端末情報領域が含まれていてもよい。この場合、サーバ54の送信制御部688は、送信元端末情報領域の情報が示す通信データの送信元の端末とは別の端末に端末向け検索結果データを送信するように通信インターフェイス664を制御してもよい。送信制御部688は、送信元の端末に端末向け検索結果データを返信するように通信インターフェイス664を制御してもよい。また、シナリオIDの代わりにシナリオを特定できる情報がパラメータ領域に含まれていれば、シナリオID領域は不要である。
また、本実施の形態の第11の変形例においては、データ取得部576は、データ変換部602を必ず含まなくてはならない訳ではない。検索結果を示すデータを記述するマークアップ言語に応じてUI記述データ760を使い分けるなどの対策を講じるのであれば、データ変換部602はなくともよい。
また、技術的に可能である場合には、上述した第1の変形例から第11の変形例までの各変形例のうち少なくとも2つ以上の変形例が同時に適用されてもよい。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
52 ユーザ端末、54 サーバ、56 外部サービスデータベース、60 IH調理システム、500 加熱調理装置、502 情報処理装置、510,556 制御部、512 加熱部、514 各種検知部、516,534,554 表示部、518 キー入力部、520,536,558 記憶部、522,538,550 通信部、530 メイン処理部、532 入力部、552 操作部、560 実行エンジン、562 SVG描画エンジン、564 遷移処理エンジン、566,570 通信処理部、572 シナリオ管理部、574 シナリオ実行部、576 データ取得部、578 UI記述データ管理部、580 データ合成処理部、582 検索結果管理部、600 コネクタ、602 データ変換部、610 シナリオ処理部、612 UI記述データ呼出部、614 コネクタ呼出部、616 検索結果呼出部、620 データ振分部、622 一時蓄積部、624,630 データ合成部、626,632 データパッケージ化部、650 ディスプレイ、652 CPU、654 メモリ、656 固定ディスク、658 メモリカード駆動装置、660 CD−ROM駆動装置、662 キーボード、664 通信インターフェイス、670 メモリカード、672 CD−ROM、680 特定部、682 パラメータ制御部、684 形式変換部、686 端末向け検索結果データ作成部、688 送信制御部、690 抽出部、692 メッセージ制御部、694 検索部、696 追加制御部、760 UI記述データ、762 UI記述ファイル、6540 管理領域、6542 プログラム領域、6544 UI記述データ領域、6546 シナリオ領域、6548 コネクタ領域、6550 端末向け検索結果データ領域、6552 検索結果領域、6802 シナリオ読出部、6804 UI部、6806 コネクタ部、6822 受信パラメータ制御部、6824 抽出パラメータ制御部。