以下、情報システム等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、複数のユーザが食べた食事や利用したレストランを特定する食事情報を受信し、ユーザごとにまとめて蓄積する情報システムについて説明する。
また、本実施の形態において、ユーザの指示に応じて、他のユーザの食事情報が含まれるメニューを提供できる情報システムについて説明する。
また、本実施の形態において、ユーザが居る位置や、ユーザの嗜好等のユーザの特性に応じて、他のユーザの適切な食事情報を含むメニューを提供できる情報システムについて説明する。
また、本実施の形態において、ユーザが行ったことがあるレストランにおいて、他のユーザが注文した食事情報が含まれるメニューを提供できる情報システムについて説明する。
また、本実施の形態において、ユーザが利用したレストランの有るエリア等の1または2以上のレストランにおいて、他のユーザが注文した食事情報が含まれるメニューを提供できる情報システムについて説明する。
また、本実施の形態において、ユーザが指定した食事特定情報(レストラン名、レストランのジャンル、食事、あるレストランの一メニュー等)に該当する食事情報の投函があった場合に、そのユーザに当該食事情報を自動送信する情報システムについて説明する。
また、本実施の形態において、注文時に食事情報を自動蓄積する情報システムについて説明する。
また、本実施の形態において、決済時に食事情報を自動蓄積する情報システムについて説明する。
また、本実施の形態において、ユーザが一のレストラン内に居る場合は、当該レストランの他人のメニューを取得し、そうでない場合は他のユーザが注文した食事情報が含まれるメニューを出力できる情報システムについて説明する。
さらに、本実施の形態において、食事情報に含まれているワインのラベルの画像を用いて、当該ワインの購入のためのURLを検索し、出力する情報システムについて説明する。
図1は、本実施の形態における情報システムの概念図である。情報システムは、サーバ装置1、2以上の端末装置2、1または2以上の注文装置3、および1または2以上の決済装置4を備える。端末装置2は、例えば、ユーザが保持しているいわゆるスマートフォン、携帯電話、携帯用PC等の携帯端末である。また、注文装置3は、レストラン等に存在する端末またはユーザが保持しているいわゆるスマートフォン、携帯電話、携帯用PC等の携帯端末である。決済装置4は、通常、レストラン等に存在する端末であり、例えば、レジ端末である。
図2は、本実施の形態における情報システムのブロック図である。また、図3はサーバ装置1のブロック図である。
情報システムを構成するサーバ装置1は、ユーザ情報格納部101、レストラン情報格納部102、飲食情報格納部103、登録情報格納部104、飲食情報受信部105、指示受信部106、飲食情報蓄積部107、メニュー構成部108、メニュー送信部109、検索部110、登録指示受信部111、登録情報蓄積部112、および通知部113を備える。
端末装置2は、位置情報取得部20、端末受付部21、端末送信部22、端末受信部23、および端末出力部24を備える。
注文装置3は、メニュー格納部30、注文受付部31、注文送信部32、および注文出力部33を備える。
決済装置4は、決済受付部41、決済送信部42、および決済出力部43を備える。
サーバ装置1を構成するユーザ情報格納部101は、2以上のユーザ情報を格納し得る。ユーザ情報は、ユーザに関する情報であり、ユーザ識別子とユーザへの連絡先を示す連絡先情報とを有する。ユーザ識別子は、例えば、ID、氏名等であり、ユーザを識別できる情報であれば何でも良い。また、ユーザ識別子は、ユーザが保有する端末装置2の識別情報(例えば、電話番号、IPアドレス、MACアドレス等)でも良い。また、連絡先情報は、例えば、メールアドレス、ユーザの端末装置2のIPアドレス、電話番号等である。さらに、ユーザ情報は、ユーザの位置を示すユーザ位置情報を含むことは好適である。
レストラン情報格納部102は、1または2以上のレストラン情報を格納し得る。レストラン情報は、1以上のメニュー情報とレストラン識別子とを有する。メニュー情報は、食事を識別するメニュー識別子と、メニュー識別子で識別される食事内容情報とを有する。食事内容情報は、食事等の内容を示す情報である。食事内容情報は、例えば、食事のメニューの情報、コース料理の各料理名の情報などである。レストラン識別子は、レストランを識別する情報である。レストラン識別子は、ID、レストラン名等、レストランを識別できる情報であれば何でも良い。また、レストラン情報は、レストランの位置を示すレストラン位置情報、レストラン名、レストランの住所、レストランの電話番号、レストランのURL、レストランで使用されている注文サーバや端末のアドレス等の情報を有しても良い。なお、食事は料理も含む概念であり、広く解する。
飲食情報格納部103は、2以上の飲食情報を格納し得る。飲食情報は、ユーザが飲食した料理や飲料等に関する情報であり、食事情報およびユーザ識別子を有する。食事情報は、ユーザが食べた食事に関する情報であり、食事の内容を示す食事内容情報と、食事をしたレストランのレストラン識別子とを有する。また、食事情報は、食事の時に自動取得した情報である自動取得情報を含んでも良い。自動取得情報は、例えば、日時、位置情報、天気、気温などである。また、食事情報は、食事をしたレストランのURL、レストラン名、レストランのジャンルのうちの1以上の情報を含んでも良い。また、食事情報は、食事をしたユーザのコメント、ユーザの評価、撮影画像を含んでも良い。なお、撮影画像は、ワインのラベル画像を含んでも良い。
登録情報格納部104は、1または2以上の登録情報を格納し得る。登録情報は、食事特定情報とユーザ識別子とを有する。食事特定情報とは、食事情報を特定する情報である。この食事情報は、他のユーザが送信してきた食事情報であり、ユーザ識別子で識別されるユーザが送信を要求する食事情報である。食事特定情報は、例えば、レストランIDやレストラン名等のレストラン識別子、レストランのジャンル、特定のレストランの一の料理を識別する食事識別子、料理名を特定する情報、食事情報を特定する検索式を構成する情報等である。
飲食情報受信部105は、2以上の端末装置2から2以上の飲食情報を受信する。
また、飲食情報受信部105は、レストラン情報格納部102に格納されているレストラン識別子を含む飲食情報を受信する場合、およびレストラン情報格納部102に格納されているレストラン識別子を含まない飲食情報を受信する場合があることは好適である。なお、飲食情報受信部105が受信する飲食情報は、飲食情報の一部の情報でも良い。かかる場合も、飲食情報の受信である。
また、飲食情報受信部105は、食事を注文する注文装置3に入力された食事内容情報を有する飲食情報を、1または2以上の注文装置3から受信しても良い。
さらに、飲食情報受信部105は、決済を行う決済装置4に入力された食事内容情報を有する飲食情報を、1または2以上の決済装置4から受信しても良い。
指示受信部106は、2以上の端末装置2からメニュー取得指示を受信する。メニュー取得指示は、ユーザ識別子を有する指示であり、他の人が送信した食事内容情報を有する1または2以上のメニュー項目を含む提示メニューを取得する指示である。また、メニュー取得指示は、ユーザ識別子で識別されるユーザの位置を示すユーザ位置情報を有することは好適である。メニュー取得指示は、レストラン識別子などを有しても良い。なお、このレストラン識別子は、取得したい食事内容情報に対応するレストランの識別子である。
指示受信部106は、ワインを購入するための指示である購入指示を受信しても良い。購入指示は、通常、提示メニューを構成する飲食情報の一部の情報を含む。飲食情報の一部の情報は、例えば、飲食情報を識別する飲食情報識別子である。
飲食情報蓄積部107は、飲食情報受信部105が受信した2以上の飲食情報を飲食情報格納部103に蓄積する。また、飲食情報蓄積部107は、予め決められた条件を満たさない飲食情報は飲食情報格納部103に蓄積しないことは好適である。予め決められた条件は、例えば、飲食情報であることを判断するための条件である。予め決められた条件は、例えば、飲食情報が画像を含むことである。なお、画像は、通常、注文した料理の画像である。なお、予め決められた条件は問わない。
メニュー構成部108は、1または2以上の食事内容情報を含む提示メニューを構成する。具体的には、メニュー構成部108は、指示受信部106が受信したメニュー取得指示に対応する食事内容情報であり、他の人が送信した1または2以上の食事内容情報を飲食情報格納部103から取得し、当該1または2以上の食事内容情報を含む提示メニューを構成する。提示メニューは、他の人が送信した1または2以上の食事内容情報だけではなく、自分が送信した1または2以上の食事内容情報を含んでも良い。また、提示メニューは、ユーザ識別子ごとに食事内容情報を分類した情報を含んでも良い。また、提示メニューは、注文回数、飲食した時刻、現在位置からの距離をキーとして、2以上の食事内容情報がソートされた情報を含んでも良い。なお、注文回数は、通常、飲食情報格納部103における、同一の食事内容情報を含むレコードの数である。
メニュー構成部108は、指示受信部106が受信したメニュー取得指示に含まれる情報であり、ユーザに関する情報であるユーザ情報を用いて、ユーザに適した提示メニューであり、1または2以上の他の人が送信した1または2以上の食事内容情報を飲食情報格納部103から取得し、1または2以上の食事内容情報を含む提示メニューを構成することは好適である。
メニュー構成部108は、指示受信部106が受信したメニュー取得指示に含まれるユーザ位置情報を用いて、当該ユーザ位置情報に対して予め決められた条件を満たすユーザ位置情報と対になる食事内容情報であり、1または2以上の他の人が送信した1または2以上の食事内容情報を、飲食情報格納部103から取得し、1または2以上の食事内容情報を含む提示メニューを構成することは好適である。
メニュー構成部108は、指示受信部106が受信したメニュー取得指示に含まれるユーザ位置情報に対応するレストラン識別子を取得し、当該レストラン識別子と対になる食事内容情報であり、1または2以上の他の人が送信した1または2以上の食事内容情報を、飲食情報格納部103から取得し、1または2以上の食事内容情報を含む提示メニューを構成することは好適である。このメニュー構成部108の処理により、現在、ユーザが居るレストランの食事内容情報を含む提示メニューが得られる。
メニュー構成部108は、指示受信部106が受信したメニュー取得指示に含まれるカテゴリー情報を取得し、カテゴリー情報を用いて、ユーザに適した提示メニューであり、1または2以上の他の人が送信した1または2以上の食事内容情報を飲食情報格納部103から取得し、1または2以上の食事内容情報を含む提示メニューを構成しても良い。このメニュー構成部108の処理により、ユーザが欲するカテゴリーの食事内容情報を含む提示メニューが得られる。
また、メニュー構成部108は、指示受信部106が受信したメニュー取得指示に含まれるレストラン識別子、またはユーザ位置情報を用いて、カテゴリー情報を取得し、当該カテゴリー情報を用いて、ユーザに適した提示メニューであり、1または2以上の他の人が送信した1または2以上の食事内容情報を飲食情報格納部103から取得し、1または2以上の食事内容情報を含む提示メニューを構成しても良い。なお、例えば、レストラン情報は、レストラン識別子とカテゴリー情報とを対応付けて有する。メニュー構成部108は、メニュー取得指示に含まれるレストラン識別子と対になるカテゴリー情報を取得しても良いし、メニュー取得指示に含まれるユーザ位置情報からレストラン識別子を取得し当該レストラン識別子と対になるカテゴリー情報を取得しても良い。
メニュー構成部108は、指示受信部106が受信したメニュー取得指示に含まれるユーザ識別子と対になるレストラン識別子のレストラン位置情報と、予め決められた条件を満たすレストラン位置情報を有するレストラン情報に含まれるレストラン識別子と対になる1または2以上の食事内容情報であり、1または2以上の他の人が送信した1または2以上の食事内容情報を飲食情報格納部103から取得し、1または2以上の食事内容情報を含む提示メニューを構成しても良い。ここで、予め決められた条件とは、例えば、距離が閾値以内、同一の道路上、同一の都道府県、同一の市町村などである。このメニュー構成部108の処理により、例えば、ユーザが利用したことのあるレストランの近くにあるレストランの食事内容情報を含む提示メニューが得られる。
メニュー構成部108は、指示受信部106が受信したメニュー取得指示に含まれるユーザ識別子を含む1以上の飲食情報と、他の人の1以上の飲食情報とを用いて、ユーザ識別子で識別されるユーザと予め決められた条件を満たすユーザ識別子を決定し、ユーザ識別子と対になる1または2以上の食事内容情報を飲食情報格納部103から取得し、1または2以上の食事内容情報を含む提示メニューを構成する。ここで、例えば、予め決められた条件とは、1以上の飲食情報と類似度が閾値以上である1以上の飲食情報であること(嗜好が予め決められた条件を満たすほど似ていること)である。また、例えば、予め決められた条件とは、1以上の飲食情報と類似度が閾値未満である1以上の飲食情報であること(嗜好が予め決められた条件を満たすほど似ていないと)である。このメニュー構成部108の処理により、例えば、嗜好の近い他のユーザの食事内容情報を含む提示メニューが得られる。なお、メニュー構成部108は、例えば、1以上の飲食情報間の類似度を以下のように算出する。メニュー構成部108は、例えば、各飲食情報が有する1以上の情報からベクトルを構成する。そして、メニュー構成部108は、例えば、1以上の各飲食情報の1以上のベクトルの和により、1以上の飲食情報のベクトルを取得する。そして、1以上の飲食情報の2つの集合のベクトル間の距離を算出し、当該距離をパラメータとする減少関数により、類似度を算出する。つまり、ベクトル間の距離が小さいほど、類似度は大きくなる。
メニュー構成部108は、ユーザ位置情報を用いて、ユーザが一のレストランに居るか否かを判断し、ユーザが一のレストランに居ると判断した場合は、一のレストランに対応する1以上の飲食情報であり、他の人が送信した1以上の飲食情報を用いて、提示メニューを構成する。なお、メニュー構成部108は、ユーザが一のレストランに居ないと判断した場合は、通常、上記のアルゴリズムとは異なるアルゴリズムにより、提示メニューを構成する。つまり、メニュー構成部108は、ユーザが一のレストランに居ないと判断した場合は、例えば、ユーザ位置情報が示す位置から予め決められた範囲に存在する1以上のレストランに対応する1以上の飲食情報であり、他の人が送信した1以上の飲食情報を用いて、提示メニューを構成する。このメニュー構成部108の処理により、例えば、ユーザが一のレストランに居る場合には、そのレストランの食事内容情報を含む提示メニューが得られ、一のレストランに居ない場合には、複数のレストランの食事内容情報を含む提示メニューが得られることもある。
また、メニュー構成部108は、ユーザ位置情報を用いて、ユーザが一のレストランに居るか否かを判断し、ユーザが一のレストランに居ると判断した場合は、当該一のレストランに対応する1以上の飲食情報であり、他の人が送信した1以上の飲食情報から取得したメニューの情報を、他の飲食情報から取得したメニューの情報とは、視覚的に区別して、提示メニューを構成することは好適である。なお、「視覚的に区別する」とは、当該一のレストランに対応する1以上の飲食情報が上位に表示されるように、メニューの情報を入れ替えたり、当該一のレストランに対応する1以上の飲食情報の色やフォント等を、他と比較して、目立つ態様にしたりすること等である。また、ここでの他の飲食情報とは、一のレストラン以外のレストランで利用された飲食情報である。
メニュー送信部109は、メニュー取得指示を送信してきた端末装置2に、メニュー構成部108が構成した提示メニューを送信する。
検索部110は、購入指示の受信に応じて、購入指示に対応する飲食情報が有するワインのラベル画像を用いて、ワインの購入のためのWepページ識別子を検索し、出力する。ここで、出力とは、通常、購入指示を送信してきた端末装置2への送信である。また、ワインのラベル画像は、ワインのラベルを含む画像であり、ラベル以外の領域(例えば、瓶の領域)の画像を含んでも良い。
なお、検索部110は、例えば、ワインのラベル画像を用いて、ワインのラベル画像を格納している画像データベースを検索する。また、画像データベースは、ワインのラベル画像と、当該ワインを販売するWepページを識別するWepページ識別子(例えば、URIやURLなど)とを有するレコードを多数、格納している。なお、ここでの画像検索のアルゴリズムは問わない。また、一の画像と同一または類似する画像を検索する技術は公知技術であるので、詳細な説明を省略する。なお、検索部110は、例えば、ワインのラベル画像と類似度が最も高い画像を検索する。また、検索部110は、例えば、ワインのラベル画像と類似度が閾値以内の画像を検索しても良い。
また、検索部110は、例えば、ワインの瓶の形状の情報である瓶形状情報を1以上保持している。そして、検索部110は、瓶形状情報を用いて、画像内の瓶を特定し、瓶内の瓶の色部分を除き、瓶の下部に存在するラベル部分を切り出す。そして、検索部110は、ラベル部分の画像であるラベル画像を取得する。なお、かかる場合、検索部110は、瓶のラベル以外の部分のドッドの色の変化率、色の範囲が閾値以内であることを利用して、瓶の色部分を決定する。また、検索部110は、ラベルの形状であるラベル形状情報(矩形または矩形を円柱に巻いた際の上辺および下辺が湾曲した形状の情報)を保持しており、かかるラベル形状情報を用いて、ラベル画像を取得しても良い。
なお、サーバ装置1において、飲食情報格納部103の飲食情報がレストラン識別子を含む場合と含まない場合とで、飲食情報に対する処理が異なる。例えば、メニュー構成部108の処理が異なる。メニュー構成部108のメニュー構成の処理において、登録されているレストランを目立つ態様でメニューを構成しても良い。また、例えば、メニュー構成部108は、登録されているレストランのメニューにのみ、店舗案内の位置情報を付与する。また、例えば、メニュー構成部108は、登録されているレストランのメニューにのみ、注文可能とする情報を付与する。注文可能とする情報とは、例えば、レストランの端末と通信するための情報(IPアドレス、MACアドレス等)である。
登録指示受信部111は、登録指示を受信する。登録指示とは、サーバ装置1に送信された食事情報の送信を要求する指示である。登録指示は、通常、食事特定情報とユーザ識別子とを含む。食事特定情報とは、食事情報を特定する情報であり、食事情報を検索するための情報であっても良い。食事特定情報は、例えば、レストラン識別子、食事(料理)を特定する食事識別子、レストランや食事のジャンル等である。例えば、食事特定情報がレストラン識別子である場合、当該レストラン識別子で識別されるレストランに対する食事情報であり、他の人がアップした食事情報がユーザに通知される。
登録情報蓄積部112は、登録指示受信部111が受信した登録指示が有する食事特定情報とユーザ識別子とを用いて登録情報を構成し、登録情報格納部104に蓄積する。
通知部113は、飲食情報受信部105が受信した飲食情報が合致する食事特定情報を特定し、当該食事特定情報と対になるユーザ識別子で識別されるユーザに、飲食情報受信部105が受信した飲食情報の一部または全部を送信する。通知部113は、飲食情報受信部105が飲食情報を受信した場合、当該飲食情報に合致する食事特定情報を特定し、当該食事特定情報と対になるユーザ識別子で識別されるユーザに、飲食情報受信部105が受信した飲食情報の一部または全部を送信することは好適である。
端末装置2を構成する位置情報取得部20は、ユーザの位置を示すユーザ位置情報を取得する。位置情報取得部20は、例えば、GPS受信機、ユーザから位置情報を受け付ける手段等である。ユーザ位置情報は、例えば、(緯度,経度)、(緯度,経度,高度)、住所等、ユーザの位置を特定する情報であれば良い。
端末受付部21は、ユーザから指示や情報を受け付ける。指示は、例えば、メニュー取得指示、購入指示、注文指示、登録指示等である。注文指示とは、端末出力部24が出力した提示メニューを構成する項目を選択し、当該選択された項目に対応する料理を注文する指示である。登録指示は、サーバ装置1に送信された食事情報の送信を要求する指示であり、食事特定情報とユーザ識別子とを含む指示である。また、情報は、例えば、飲食情報である。また、情報は、例えば、飲食情報の一部でも良い。また、端末受付部21は、一の飲食情報の一部を受け付けた後、一の飲食情報の残りの情報を受け付けても良い。また、情報は、例えば、食事情報である。食事情報は、ユーザが食べた食事に関する情報であり、食事の内容を示す食事内容情報と食事をしたレストランを識別するレストラン識別子とを有する情報である。また、食事情報は、食事のカテゴリーを示すカテゴリー情報を有しても良いし、ワインのラベル画像を有しても良い。さらに、指示や情報の入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。
端末送信部22は、端末受付部21が受け付けた指示や情報をサーバ装置1に送信する。また、端末送信部22は、通常、端末受付部21が受け付けた指示や情報に、予め格納されているユーザ識別子を付加して、サーバ装置1に送信する。例えば、端末送信部22は、端末受付部21が受け付けた食事情報とユーザ識別子とを有する飲食情報を、サーバ装置1に送信する。なお、ユーザ識別子が付加された指示や情報も、指示や情報である。端末受付部21が注文指示を受け付けた場合、例えば、端末送信部22は、当該注文指示、または当該注文指示を構成する料理の情報を他の装置に送信する。なお、他の装置は、例えば、厨房に設置されている端末である。
また、端末送信部22は、位置情報取得部20が取得したユーザ位置情報をも有する飲食情報をサーバ装置1に送信することは好適である。なお、ユーザ位置情報は、通常、飲食情報と一緒に送信される。さらに、端末送信部22は、登録指示をもサーバ装置1に送信する。
端末受信部23は、サーバ装置1から情報を受信する。ここでの情報は、例えば、提示メニュー、Wepページを識別する1以上のWepページ識別子である。提示メニューは、他の人が送信してきた食事内容情報を有する1または2以上のメニュー項目を含む情報である。
また、端末受信部23は、登録指示に対応する1以上の飲食情報の一部または全部を、サーバ装置1から受信する。
端末出力部24は、端末受信部23が受信した情報を出力する。端末出力部24は、例えば、端末受信部23が受信した提示メニューを出力する。ここで、出力とは、ディスプレイへの表示、プロジェクターを用いた投影、プリンタでの印字、音出力、外部の装置への送信、記録媒体への蓄積、他の処理装置や他のプログラムなどへの処理結果の引渡しなどを含む概念である。
注文装置3を構成するメニュー格納部30は、1以上のメニュー情報を格納し得る。メニュー情報は、注文するためのメニューを示す情報である。メニュー情報は、食事内容情報を有する。また、メニュー情報は、レストラン識別子、注文情報を受信する装置(レストランの装置)を特定する情報(例えば、IPアドレス、MACアドレス等)等をも有していても良い。
注文受付部31は、食事内容情報を有する注文情報を受け付ける。注文情報は、注文する食事等を特定する情報である。注文受付部31は、注文する食事等の識別子を受け付け、当該識別子を用いて、食事内容情報を有する注文情報を構成しても良い。かかる場合、注文受付部31は、食事等の識別子と食事内容情報とを有する1または2以上の情報を対応付けて格納している。注文受付部31は、ユーザ識別子やレストラン識別子等を受け付けても良い。
注文送信部32は、注文受付部31が受け付けた注文情報が有する食事内容情報を用いて、飲食情報を構成し、当該飲食情報をサーバ装置1に送信する。なお、例えば、注文送信部32は、予め格納されているレストラン識別子およびユーザ識別子を取得し、当該レストラン識別子、ユーザ識別子、および食事内容情報を用いて、飲食情報を構成する。そして、注文送信部32は、当該飲食情報をサーバ装置1に送信する。なお、予め格納されているレストラン識別子およびユーザ識別子は、注文受付部31が受け付けた情報でも良い。
注文送信部32は、注文受付部31が受け付けた注文情報を、他の装置に送信することは好適である。ここで、他の装置とは、例えば、厨房に設置された端末である。
注文出力部33は、注文受付部31が受け付けた注文情報を出力する。
決済装置4を構成する決済受付部41は、1以上の食事内容情報を有する決済情報を受け付ける。決済情報は、決済を行うための情報である。決済受付部41は、決済する食事等の識別子を受け付け、当該識別子を用いて、食事内容情報を有する決済情報を構成しても良い。かかる場合、決済受付部41は、食事等の識別子と食事内容情報とを有する1または2以上の情報を対応付けて格納している。
決済送信部42は、決済受付部41が受け付けた決済情報が有する食事内容情報を用いて、飲食情報を構成し、当該飲食情報をサーバ装置1に送信する。なお、例えば、決済送信部42は、予め格納されているレストラン識別子およびユーザ識別子を取得し、当該レストラン識別子、ユーザ識別子、および食事内容情報を用いて、飲食情報を構成する。そして、決済送信部42は、当該飲食情報をサーバ装置1に送信する。なお、予め格納されているレストラン識別子およびユーザ識別子は、決済受付部41が受け付けた情報でも良い。
決済送信部42は、決済受付部41が受け付けた決済情報を、他の装置に送信することは好適である。ここで、他の装置とは、例えば、銀行のサーバ装置である。
決済出力部43は、決済受付部41が受け付けた決済情報を出力する。
ユーザ情報格納部101、レストラン情報格納部102、飲食情報格納部103、登録情報格納部104、メニュー格納部30、端末格納部21、およびメニュー格納部30は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。ユーザ情報格納部101等にユーザ情報等が記憶される過程は問わない。例えば、記録媒体を介してユーザ情報等がユーザ情報格納部101等で記憶されるようになってもよく、通信回線等を介して送信されたユーザ情報等がユーザ情報格納部101等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたユーザ情報等がユーザ情報格納部101等で記憶されるようになってもよい。
飲食情報受信部105、指示受信部106、登録指示受信部111、および端末受信部23は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
飲食情報蓄積部107、メニュー構成部108、検索部110、および登録情報蓄積部112は、通常、MPUやメモリ等から実現され得る。飲食情報蓄積部107等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
メニュー送信部109、通知部113、端末送信部22、注文送信部32、および決済送信部42は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
端末受付部21、注文受付部31、決済受付部41は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
端末出力部24、注文出力部33、決済出力部43は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末出力部24等は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報システムの動作について説明する。まず、サーバ装置1の動作について、図4のフローチャートを用いて説明する。
(ステップS401)飲食情報受信部105は、端末装置2から飲食情報を受信したか否かを判断する。飲食情報を受信すればステップS402に行き、飲食情報を受信しなければステップS408に行く。
(ステップS402)飲食情報蓄積部107は、ステップS401で受信された飲食情報が、予め決められた条件を満たすか否かを判断する。予め決められた条件を満たす場合はステップS403に行き、予め決められた条件を満たさない場合はステップS401に戻る。なお、予め決められた条件を満たさない場合、例えば、メニュー送信部109は、不適切な情報が送信された旨のエラーメッセージ等を、端末装置2に送信することは好適である。
(ステップS403)飲食情報蓄積部107は、ステップS401で受信された飲食情報が有するレストラン識別子を取得する。
(ステップS404)飲食情報蓄積部107は、ステップS403で取得されたレストラン識別子をキーとして、レストラン情報格納部102を検索する。
(ステップS405)飲食情報蓄積部107は、ステップS404において、レストラン情報を検索できたか否かを判断する。レストラン情報を検索できた場合はステップS406に行き、レストラン情報を検索でなかった場合はステップS407に行く。なお、ストラン情報を検索できた場合とはレストラン識別子で識別されるレストランが登録されている場合であり、レストラン情報を検索でなかった場合はレストラン識別子で識別されるレストランが登録されていない場合である。
(ステップS406)飲食情報蓄積部107は、ステップS404で検索されたレストラン情報のうちの必要な情報、およびステップS401で受信された飲食情報を用いて、蓄積する飲食情報を構成する。なお、受信された飲食情報と蓄積する飲食情報とが異なる場合はあり得る。また、レストラン情報のうちの必要な情報とは、例えば、レストランのURL、レストランが保有する注文サーバのアドレス、レストランの位置情報等のレストランの情報である。
(ステップS407)飲食情報蓄積部107は、ステップS401で受信された飲食情報、またはステップS406で構成された飲食情報を、飲食情報格納部103に蓄積する。ステップS401に戻る。
(ステップS408)通知部113は、ステップS401で受信された飲食情報に合致する登録情報が存在するか否かを、登録情報格納部104に格納されている1以上の登録情報をチェックすることにより判断する。なお、かかる判断処理のために、通知部113は、登録情報格納部104を検索する処理を行う。
(ステップS409)通知部113は、ステップS408で飲食情報に合致する1以上の登録情報が存在したか否かを判断する。1以上の登録情報が存在すればステップS410に行き、1以上の登録情報が存在しなければステップS401に戻る。
(ステップS410)通知部113は、飲食情報に合致する1以上の登録情報に対応する1以上のユーザ識別子で識別される端末装置2に、ステップS401で受信された飲食情報を送信する。ステップS401に戻る。
(ステップS411)指示受信部106は、端末装置2から、メニュー取得指示を受信したか否かを判断する。メニュー取得指示を受信すればステップS412に行き、メニュー取得指示を受信しなければステップS414に行く。
(ステップS412)メニュー構成部108は、ステップS411で受信したメニュー取得指示に従って、提示メニューを構成する。なお、提示メニューを構成するメニュー構成処理について、図5のフローチャートを用いて説明する。
(ステップS413)メニュー送信部109は、ステップS412で構成された提示メニューを、メニュー取得指示を送信してきた端末装置2に送信する。ステップS401に戻る。
(ステップS414)指示受信部106は、端末装置2から、購入指示を受信したか否かを判断する。購入指示を受信すればステップS415に行き、購入指示を受信しなければステップS420に行く。
(ステップS415)検索部110は、ステップS414で受信された購入指示が有する飲食情報識別子を取得する。
(ステップS416)検索部110は、ステップS415で取得した飲食情報識別子と対になる画像を、飲食情報格納部103から取得する。なお、検索部110は、購入指示が有する飲食情報識別子とユーザ識別子の両方と対になる画像を、飲食情報格納部103から取得しても良い。また、ここで取得される画像は、ワインのラベル画像である、とする。
(ステップS417)検索部110は、ステップS416で取得したワインのラベル画像を用いて、ワインのラベル画像を格納している画像データベースを検索する。なお、画像データベースは、ワインのラベル画像と、当該ワインを販売するWepページを識別するWepページ識別子(例えば、URIやURLなど)とを有するレコードを多数、格納している。なお、ここでの画像検索のアルゴリズムは問わない。また、一の画像と同一または類似する画像を検索する技術は公知技術であるので、詳細な説明を省略する。なお、検索部110は、例えば、ステップS416で取得したワインのラベル画像と類似度が最も高い画像を検索する。
(ステップS418)検索部110は、ステップS417において検索された画像と対になるWepページ識別子(例えば、URL)を取得する。
(ステップS419)検索部110は、ステップS415で取得したWepページ識別子(例えば、URL)を、購入指示を送信した端末装置2に送信する。ステップS401に戻る。
(ステップS420)指示受信部106は、端末装置2から、登録指示を受信したか否かを判断する。登録指示を受信すればステップS421に行き、登録指示を受信しなければステップS422に行く。
(ステップS421)登録情報蓄積部112は、ステップS420で受信された登録指示が有する食事特定情報とユーザ識別子とを用いて登録情報を構成する。
(ステップS422)登録情報蓄積部112は、ステップS421で構成した登録情報を、登録情報格納部104に蓄積する。ステップS401に戻る。
なお、図4のフローチャートにおいて、ステップS402等の一部のステップにおける処理は行われなくても良い。
また、図4のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS412のメニュー構成処理について、図5のフローチャートを用いて説明する。
(ステップS501)メニュー構成部108は、ステップS502で検索式を構成するための元になる情報である検索式元情報を取得する。検索式元情報は、例えば、ステップS408で受信されたメニュー取得指示が有するユーザ識別子である。また、検索式元情報は、例えば、メニュー取得指示が有するユーザ識別子を含む1以上の飲食情報であり、飲食情報格納部103の1以上の飲食情報である。また、検索式元情報は、例えば、メニュー取得指示が有するユーザ位置情報である。また、検索式元情報は、例えば、メニュー取得指示が有するユーザ位置情報で示される位置に対応するレストラン識別子(ユーザが居るレストランのレストラン識別子)である。また、検索式元情報は、例えば、メニュー取得指示に含まれるカテゴリー情報である。また、検索式元情報は、例えば、メニュー取得指示が有するユーザ識別子と対になる1以上のレストラン識別子である。
(ステップS502)メニュー構成部108は、ステップS501で取得した検索式元情報を用いて検索式を構成する。なお、この検索式は、例えば、端末装置2の現在位置を示すユーザ位置情報を有していても良い。つまり、検索式は、ユーザ識別子を有する飲食情報であり、かつ現在位置を示すユーザ位置情報から予め決められた範囲に存在するレストランの飲食情報を検索するための検索式でも良い。
(ステップS503)メニュー構成部108は、ステップS502で構成した検索式を用いて、飲食情報格納部103から、1以上の飲食情報を検索する。
(ステップS504)メニュー構成部108は、ステップS503で検索した1以上の飲食情報から、提示メニューを構成する。上位処理にリターンする。なお、提示メニューは、ユーザ識別子ごとまたは/およびレストラン識別子ごとに、飲食情報が区分されていることは好適である。
なお、図5のフローチャートにおいて、メニュー構成部108は、受信されたメニュー取得指示が有するユーザ位置情報を用いて、ユーザが一のレストランに居るか否かを判断し、ユーザが一のレストランに居ると判断した場合は、当該一のレストランに対応する1以上の飲食情報を用いて、提示メニューを構成しても良い。なお、かかる場合、メニュー構成部108は、ユーザ識別子ごとに飲食情報をまとめて、提示メニューを構成することは好適である。かかることにより、ユーザは、レストランで食事を行う前に、当該レストランで、他の人が食べた料理のリストを容易に見ることができる。
また、かかる場合、ユーザが一のレストランに居ないと判断した場合、例えば、複数のレストランに対応する1以上の飲食情報であり、他の人の1以上の飲食情報を用いて、提示メニューを構成する。
次に、端末装置2の動作について、図6のフローチャートを用いて説明する。
(ステップS601)端末受付部21は、飲食情報を受け付けたか否かを判断する。飲食情報を受け付ければステップS602に行き、飲食情報を受け付けなければステップS604に行く。
(ステップS602)端末送信部22は、飲食情報の送信先を特定する情報(例えば、IPアドレス、MACアドレス等)を取得する。この情報は、サーバ装置1のIPアドレス等であり、端末送信部22は、予め保持している。
(ステップS603)端末送信部22は、ステップS601で受け付けられた飲食情報を、サーバ装置1に送信する。ステップS601に戻る。
(ステップS604)端末受付部21は、メニュー取得指示を受け付けたか否かを判断する。メニュー取得指示を受け付ければステップS605に行き、メニュー取得指示を受け付けなければステップS607に行く。
(ステップS605)端末送信部22は、メニュー取得指示の送信先を特定する情報を取得する。この送信先は、サーバ装置1である。
(ステップS606)端末送信部22は、メニュー取得指示を、サーバ装置1に送信する。ステップS601に戻る。
(ステップS607)端末受信部23は、提示メニューを受信したか否かを判断する。提示メニューを受信したか否かを判断する。提示メニューを受信すればステップS608に行き、受信しなければステップS618に行く。
(ステップS608)端末出力部24は、ステップS607で受信された提示メニューを出力する。
(ステップS609)端末受付部21は、注文指示を受け付けたか否かを判断する。注文指示を受け付ければステップS610に行き、注文指示を受け付けなければステップS612に行く。
(ステップS610)端末送信部22は、注文指示に対応する飲食情報に含まれる送信先を特定する情報(例えば、IPアドレス、MACアドレス等)を取得する。なお、この送信先を特定する情報は、注文指示に対応する飲食情報が示す料理等を提供したレストランの装置のIPアドレス等である。このレストランの装置は、注文の情報を受信する装置であり、例えば、厨房に設置されている端末である。
(ステップS611)端末送信部22は、ステップS610で取得した送信先を特定する情報に対応する送信先に、注文指示を送信する。ステップS601に戻る。
(ステップS612)端末受付部21は、購入指示を受け付けたか否かを判断する。購入指示を受け付ければステップS613に行き、購入指示を受け付けなければステップS601に戻る。
(ステップS613)端末送信部22は、購入指示の送信先を特定する情報を取得する。この送信先は、サーバ装置1である。
(ステップS614)端末送信部22は、購入指示をサーバ装置1に送信する。
(ステップS615)端末受信部23は、購入指示の送信に応じて、サーバ装置1から1以上のWepページ識別子(例えば、URL)を受信したか否かを判断する。1以上のWepページ識別子を受信すればステップS616に行き、1以上のWepページ識別子を受信しなければステップS615に戻る。なお、購入指示の送信から予め決められた時間以上、Wepページ識別子を受信しない場合、端末出力部24は、エラーメッセージを出力しても良い。
(ステップS616)端末出力部24は、ステップS615で受信された1以上のWepページ識別子を出力する。
(ステップS617)以後、ワインの購入ための入力を受け付け、ワインの購入ための処理がなされる。ステップS601に戻る。
(ステップS618)端末受付部21は、登録指示を受け付けたか否かを判断する。登録指示を受け付ければステップS619に行き、登録指示を受け付けなければステップS601に戻る。なお、受け付けられる登録指示は、通常、食事特定情報を有し、ユーザ識別子を有さない。
(ステップS619)端末送信部22は、ステップS618で受け付けられた登録指示が有する食事特定情報を用いて、送信する登録指示を構成する。通常、端末送信部22は、ステップS618で受け付けられた登録指示が有する食事特定情報と、端末装置2に格納されているユーザ識別子とを用いて、送信する登録指示を構成する。
(ステップS620)端末送信部22は、ステップS619で構成した登録指示をサーバ装置1に送信する。
なお、図6のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、注文装置3の動作について説明する。注文装置3の注文受付部31は、注文情報を受け付ける。そして、注文送信部32は、注文受付部31が受け付けた注文情報を、他の装置(例えば、厨房に設置された端末)に送信する。なお、他の装置に注文情報等を送信するのは、レストラン内で使用するためである。
また、注文送信部32は、注文受付部31が受け付けた注文情報が有する食事内容情報を用いて、飲食情報を構成し、当該飲食情報をサーバ装置1に送信する。また、食事内容情報は、メニュー格納部30のメニュー情報が有する。また、ここで、通常、注文送信部32は、レストラン識別子、ユーザ識別子、他の装置(例えば、厨房に設置された端末)と通信するための情報(例えば、他の装置のIPアドレス等)および食事内容情報を用いて、飲食情報を構成する。なお、ここでのレストラン識別子、他の装置と通信するための情報は、例えば、メニュー格納部30が保持しており、例えば、1以上のメニュー情報に含まれている。また、ユーザ識別子は、例えば、ユーザが入力した情報である。
そして、注文出力部33は、注文受付部31が受け付けた注文情報を出力する。
次に、決済装置4の動作について説明する。決済装置4の決済受付部41は、1以上の食事内容情報を有する決済情報を受け付ける。
次に、決済送信部42は、決済受付部41が受け付けた決済情報が有する食事内容情報を用いて、飲食情報を構成し、当該飲食情報をサーバ装置1に送信する。なお、ここで、通常、決済送信部42は、レストラン識別子、ユーザ識別子および食事内容情報を用いて、飲食情報を構成する。なお、ここでのレストラン識別子は、例えば、決済送信部42が予め保持している。また、ユーザ識別子は、例えば、入力された情報である。
以下、本実施の形態における情報システムの具体的な動作について説明する。情報システムの概念図は、図1である。
今、ユーザ情報格納部101は、図7に示すユーザ情報管理表を格納している。ユーザ情報管理表は、「ID」と「ユーザ情報」を有する。「ユーザ情報」は、「ユーザID」「氏名」「連絡先情報」「住所」「ユーザ位置情報」を有する。「ID」は、レコードを識別する情報である。「連絡先情報」は、ここではユーザのメールアドレスである。
また、レストラン情報格納部102は、レストラン情報管理表を格納している。レストラン情報管理表の例は、図8である。レストラン情報管理表は、「ID」「レストランID」「レストラン名」「住所」「電話番号」「URL」「位置情報」「注文サーバアドレス」「メニュー情報」等を有するレコードを1以上格納し得る。「メニュー情報」は、「メニューID」「食事内容情報」「価格」「カロリー」等を有する。「ID」は、レコードを識別する情報である。「レストランID」はレストランを識別する情報である。「位置情報」はレストランの位置を示す情報である。「位置情報」は、ここでは一の位置情報であるが、領域を示す2以上の位置情報や、領域を示す領域識別子等でも良い。「注文サーバアドレス」は、レストランが運用するサーバのアドレスであり、顧客の注文の情報を受信するサーバ(注文サーバと言う。)のアドレスである。なお、「注文サーバアドレス」はここではIPアドレスであるが、注文サーバと通信するための情報であれば何でも良い。「メニュー情報」は、レストランが提供する料理のメニューに関する情報である。「食事内容情報」は、通常、料理名であるが、料理に関する情報であり、レストランが提供する情報であれば何でも良い。今、図8のレストラン情報管理表には、レストラン「RES−XXX」「RES−YYY」「RES−ZZZ」等のレストラン情報が登録されている、とする。また、図示しないが、レストラン情報管理表は、レストランのジャンルの情報をも有している、とする。
また、飲食情報格納部103は、飲食情報管理表を格納している。飲食情報管理表の例は、図9である。飲食情報管理表は、「ID」「食事情報」等を有するレコードを1以上格納し得る。「食事情報」は、「レストラン情報」「食事関連情報」「自動取得情報」等を有する。「レストラン情報」は、食事をしたレストランに関する情報であり、「レストランID」「レストラン名」「URL」「ジャンル」「注文サーバアドレス」等を有する。「食事関連情報」は、食事をした料理(ドリンクも含む)に関する情報であり、「食事内容情報」「価格」「ユーザ評価」「コメント」「撮影画像」等を有する。「自動取得情報」は、食事を行った際(注文時、飲食時、または決済時等を含む)に、自動的に取得できる情報であり、ここでは、「日時」「位置情報」「天気」「気温」等を含む。「自動取得情報」は、例えば、外部の装置(例えば、NTPサーバ等)から通信手段を用いて、またはGPS受信機を用いて等により、取得され得る。なお、飲食情報管理表のレコードについて、すべての属性が属性値を有する必要はなく、NULLの属性値を有しても良い。
さらに、登録情報格納部104は、登録情報管理表を格納している。登録情報管理表の例は、図10である。登録情報管理表は、「ID」「ユーザ識別子」「食事特定情報」を有する。「ID=1」のレコードは、レストラン識別子「RES−XXX」で識別されるレストランの食事情報を受信した際に、当該食事情報をユーザ「U001」に通知することを示す。また、「ID=2」のレコードは、食事内容情報に「パスタ」が含まれる食事情報を受信した際に、当該食事情報をユーザ「U005」に通知することを示す。さらに、「ID=3」のレコードは、東京都品川区にあるレストランで食べられた食事情報であり、ユーザ評価が「5」の食事情報を受信した際に、当該食事情報をユーザ「U006」に通知することを示す。なお、図10の各レコードは、ユーザが登録指示を端末装置2に入力することにより、サーバ装置1が登録した登録情報である。
かかる状況において、以下の場合について説明する。
[1.飲食情報の登録]
以下、ユーザの端末装置2から飲食情報をサーバ装置1に送信し、登録する処理について説明する。
今、端末装置2を保持しているユーザは、自分がレストランで食べた料理の情報を入力するアプリケーションを起動した、とする。なお、このアプリケーションは、レストラン情報格納部102に格納されているレストラン情報を、サーバ装置1からダウンロード可能である、とする。
そして、端末装置2を保持しているユーザは、端末装置2に対して、レストランで食事をした際の情報を入力した、とする。かかる入力情報を図11に示す。本ユーザは、図11に示すように、端末装置2に、レストラン名、食事内容情報、価格、コメント、評価、撮影画像等を入力した、とする。また、「RES−XXX」の名称を有するレストランのIDは「R001」であることは、端末装置2が起動したアプリケーションが、サーバ装置1からダウンロードして、保持している、とする。
そして、端末受付部21は、図11に示すレストラン名等の情報を受け付ける。なお、撮影画像は、ユーザが、端末装置2が保有するカメラ機能を用いて、撮影した料理の画像である。
次に、ユーザは、図11の画面の「送信」ボタンを押下した、とする。すると、端末受付部21は、飲食情報送信指示を受け付ける。飲食情報送信指示は、ユーザが入力した情報を含む飲食情報をサーバ装置1に送信する指示である。なお、ここでの飲食情報は、「レストランID:R001,レストラン名:RES−XXX、食事内容情報:ステーキ,価格:2400円、コメント:「おいしかった。・・・・」、評価:5、撮影画像」等を含む情報である。
次に、端末送信部22は、当該飲食情報をサーバ装置1に送信する。なお、起動中のアプリケーションの「送信」ボタンに対応付けて、サーバ装置1のアドレス(例えば、IPアドレス)が保持されている、とする。
次に、サーバ装置1の飲食情報受信部105は、図11の飲食情報を受信する。そして、飲食情報蓄積部107は、受信された飲食情報が、予め決められた条件を満たすか否かを判断する。ここで、予め決められた条件とは、例えば、飲食情報が、食事内容情報または撮影画像のどちらかのデータを有することである、とする。そして、飲食情報蓄積部107は、受信された飲食情報が、予め決められた条件を満たす、と判断する。
次に、飲食情報蓄積部107は、受信された飲食情報が有するレストラン識別子「R001」を取得する。次に、飲食情報蓄積部107は、レストラン識別子「R001」をキーとして、レストラン情報管理表を検索する。そして、飲食情報蓄積部107は、当該レストラン識別子「R001」で識別されるレストランは、登録されたレストランであると判断する。そして、飲食情報蓄積部107は、検索されたレストラン情報のうちの必要な情報、および受信された飲食情報を用いて、蓄積する飲食情報を構成する。次に、飲食情報蓄積部107は、構成した飲食情報を、飲食情報管理表に蓄積する。なお、蓄積された飲食情報は、例えば、図9の「ID=1」のレコードである。また、蓄積された飲食情報は、レストラン情報のうちの、URL、注文サーバアドレス等を有する。
次に、以下のように、登録情報を利用した、飲食情報の自動通知が行われる。つまり、通知部113は、飲食情報「レストランID:R001,レストラン名:RES−XXX、食事内容情報:ステーキ,価格:2400円、コメント:「おいしかった。・・・・」」に合致する登録情報が存在するか否かを、図10の登録情報管理表を検索することによりチェックし、判断する。なお、通知部113は、レストランID:R001をキーとして、図8のレストラン管理表を検索し、「レストランID:R001」のレストランが東京都品川区に存在することを検出する。そして、通知部113は、飲食情報「レストランID:R001,レストラン名:RES−XXX、食事内容情報:ステーキ,価格:2400円、コメント:「おいしかった。・・・・」」が、登録情報のうちの「ID=3」の登録情報に合致すると判断する。
次に、通知部113は、飲食情報に合致する「ID=3」の登録情報に対応するユーザ識別子「U006」を取得する。
次に、通知部113は、ユーザ識別子「U006」に対応する連絡先情報「abc@ddd.co.jp」を、ユーザ管理表から取得する。次に、通知部113は、飲食情報「レストランID:R001,レストラン名:RES−XXX、食事内容情報:ステーキ,価格:2400円、コメント:「おいしかった。・・・・」」のうちの全部または一部の情報を「abc@ddd.co.jp」に送信する。なお、通知部113は、「レストランID:R001」からレストランの他の情報(例えば、URL等)も含めて、「abc@ddd.co.jp」に送信しても良いことは言うまでもない。
ここでは、受信された飲食情報は「ID=3」の登録情報のみに合致したが、他の登録情報に合致する場合、当該合致する登録情報に対応するユーザ識別子で識別されるユーザに、受信された飲食情報の全部または一部を送信することは言うまでもない。
(2)レストランまたはユーザの注文装置3からの飲食情報の登録
以下、注文装置3から飲食情報をサーバ装置1に送信し、登録する処理について説明する。注文装置3の注文出力部33は、メニュー格納部30からメニュー情報を読み出し、出力する。なお、例えば、注文出力部33は、図12に示す注文メニューを出力している、とする。また、図12に示す注文メニューの情報は、例えば、注文装置3のメニュー格納部30が予め格納していても良いし、注文装置3が図示しない装置から受信して、メニュー格納部30に格納されていても良い。
次に、ユーザは、注文メニューのうち「3.ポトフ」を選択した、とする。すると、注文受付部31は、「3.ポトフ」の選択を受け付ける。つまり、注文受付部31は、項目「3.ポトフ」に対応する注文情報を取得する。なお、注文情報は、「ボトフ,800,ポトフの画像」等を有する。また、ポトフの画像は、図12に示す注文メニューには表示されていないが、表示されていても良い。
次に、注文送信部32は、注文受付部31が受け付けた注文情報が有する食事内容情報「ポトフ」を用いて、飲食情報を構成する。ここで、注文送信部32は、飲食情報「ユーザID:U005,レストランID:R001,食事内容情報:ボトフ,価格:800,撮影画像:ポトフの画像」等を有する。なお、ユーザIDは、例えば、注文装置3が予め保持していても良いし、ユーザ等が入力しても良い。また、レストランIDは、メニュー情報が有しても良いし、注文装置3が予め保持等していても良い。
次に、注文送信部32は、当該飲食情報をサーバ装置1に送信する。また、注文送信部32は、注文情報を厨房に設置された端末等の他の装置(決済装置4でも良い)に送信する。また、注文出力部33は、注文受付部31が受け付けた注文情報を出力する。なお、通常、注文情報を厨房に設置された端末等の他の装置に送信することにより、注文が確定する
次に、サーバ装置1の飲食情報受信部105は、「ユーザID:U005,レストランID:R001,食事内容情報:ボトフ,価格:800,撮影画像:ポトフの画像」等を有する飲食情報を受信する。そして、飲食情報蓄積部107は、受信された飲食情報が、予め決められた条件を満たすか否かを判断する。そして、飲食情報蓄積部107は、受信された飲食情報が、予め決められた条件を満たす、と判断する。
次に、飲食情報蓄積部107は、受信された飲食情報が有するレストラン識別子「R001」を取得する。次に、飲食情報蓄積部107は、レストラン識別子「R001」をキーとして、レストラン情報管理表を検索する。そして、飲食情報蓄積部107は、当該レストラン識別子「R001」で識別されるレストランは、登録されたレストランであると判断する。そして、飲食情報蓄積部107は、検索されたレストラン情報のうちの必要な情報、および受信された飲食情報を用いて、蓄積する飲食情報を構成する。次に、飲食情報蓄積部107は、構成した飲食情報を、飲食情報管理表に蓄積する。なお、蓄積された飲食情報は、例えば、図9の「ID=2」のレコードである。また、図9の「ID=2」のレコードにおけるユーザ評価、コメント等は、例えば、ユーザにより別途入力された情報である、とする。
また、厨房に設置された端末等の他の装置は、注文情報を受信する。そして、例えば、厨房に設置された端末は、注文情報を出力する。そして、料理人は、注文情報を見て、料理を作る。また、例えば、決済装置4は、注文情報を受信し、決済処理に利用するために、少なくとも一時蓄積する。
(3)決済装置4からの飲食情報の登録
以下、決済装置4から飲食情報をサーバ装置1に送信し、登録する処理について説明する。
まず、決済受付部41は、1以上の食事内容情報を有する決済情報を受け付ける。つまり、例えば、ユーザID「107」で識別されるユーザが食べた「きつねうどん」の決済情報「食事内容情報:きつねうどん,価格:600」を受け付ける。
次に、決済送信部42は、決済受付部41が受け付けた決済情報が有する食事内容情報を用いて、送信される飲食情報を構成する。ここで、決済送信部42は、「ユーザID:U107,レストランID:R003,食事内容情報:きつねうどん,価格:600,撮影画像:きつねうどんの画像」等を有する飲食情報を構成する。なお、「レストランID:R003」は、決済装置4が予め保持している、とする。
次に、決済送信部42は、当該飲食情報をサーバ装置1に送信する。また、決済送信部42は、決済受付部41が受け付けた決済情報を、他の装置(例えば、レストランの売上管理用のサーバ装置)に送信する。また、決済出力部43は、決済受付部41が受け付けた決済情報を出力する。なお、決済情報の他の装置への送信、決済情報の出力等の処理により、決済処理が進められる、とする。
次に、サーバ装置1の飲食情報受信部105は、「ユーザID:U107,レストランID:R003,食事内容情報:きつねうどん,価格:600,撮影画像:きつねうどんの画像」等を有する飲食情報を受信する。そして、飲食情報蓄積部107は、受信された飲食情報が、予め決められた条件を満たすか否かを判断する。そして、飲食情報蓄積部107は、受信された飲食情報が、予め決められた条件を満たす、と判断する。
次に、飲食情報蓄積部107は、受信された飲食情報が有するレストラン識別子「R003」を取得する。次に、飲食情報蓄積部107は、レストラン識別子「R003」をキーとして、レストラン情報管理表を検索する。そして、飲食情報蓄積部107は、当該レストラン識別子「R003」で識別されるレストランは、登録されたレストランであると判断する。そして、飲食情報蓄積部107は、検索されたレストラン情報のうちの必要な情報、および受信された飲食情報を用いて、蓄積する飲食情報を構成する。次に、飲食情報蓄積部107は、構成した飲食情報を、飲食情報管理表に蓄積する。なお、蓄積された飲食情報は、例えば、図7の「ID=3」のレコードである。また、図9の「ID=3」のレコードにおけるユーザ評価、コメント等は、例えば、ユーザにより別途入力された情報である、とする。
また、厨房に設置された端末等の他の装置は、注文情報を受信する。そして、例えば、厨房に設置された端末は、注文情報を出力する。そして、料理人は、注文情報を見て、料理を作る。また、例えば、決済装置4は、注文情報を受信し、決済処理に利用するために、少なくとも一時蓄積する。
以上の処理のように、サーバ装置1は、端末装置2、注文装置3、または決済装置4から、飲食情報を受信し、図7に示すように、多数の飲食情報を蓄積して、保持している、とする。
[2.他人の飲食情報の利用]
(1)自分の現在位置に適合した提示メニューを呼び出し、閲覧する
以下、ユーザの端末装置2から提示メニューを呼び出し、閲覧する処理について説明する。ここでは、自分の居るレストランに対応するメニューの情報から構成された提示メニューを呼び出し、閲覧する処理について説明する。
今、ユーザID「U001」で識別されるユーザは、自分の端末装置2にメニュー取得指示を入力する。
次に、端末装置2の端末受付部21は、ユーザからメニュー取得指示を受け付ける。なお、端末受付部21は、ユーザからメニューの取得指示を受け付けた場合に、格納されているユーザID「U001」を読み出す。また、端末受付部21は、例えば、保持しているGPS受信機から、ユーザが居る位置を示すユーザ位置情報(例えば、(Xu,Yu))を取得する。そして、端末受付部21は、送信されるメニュー取得指示を構成する。なお、メニュー取得指示は、例えば、「メニュー取得(U001,(Xu,Yu))」である。
次に、端末送信部22は、端末受付部21が受け付けたメニュー取得指示をサーバ装置1に送信する。
次に、サーバ装置1の指示受信部106は、端末装置2から、メニュー取得指示「メニュー取得(U001,(Xu,Yu))」を受信する。
次に、メニュー構成部108は、メニュー取得指示「メニュー取得(U001,(Xu,Yu))」に従って、メニューを構成する。具体的には、メニュー構成部108は、以下のように提示メニューを構成する。まず、メニュー構成部108は、受信されたメニュー取得指示が有するユーザ識別子「U001」を取得する。また、メニュー構成部108は、受信されたメニュー取得指示が有するユーザ位置情報「(Xu,Yu)」を取得する。
そして、メニュー構成部108は、ユーザ位置情報「(Xu,Yu)」を用いて、図8のレストラン情報管理表を検索し、ユーザ位置情報「(Xu,Yu)」と各レストラン情報が有する位置情報との距離を算出する。そして、メニュー構成部108は、当該距離が閾値(例えば、10m)以内であるレストランのレストランID「R001」を取得した、とする。つまり、ユーザID「U001」のユーザは、現在、レストランID「R001」で識別されるレストランに居る、とメニュー構成部108は判断した、とする。
次に、メニュー構成部108は、検索式「レストランID=R001」を構成する。
次に、メニュー構成部108は、構成した検索式「レストランID=R001」を用いて、図9の飲食情報管理表から、飲食情報を検索し、取得する。取得された飲食情報は、図13である。なお、図13に示すように、メニュー構成部108は、ユーザごとに飲食情報を分類する。
なお、図13において、「ユーザID=U001」に対応する飲食情報が含まれなくても良い。かかる場合、メニュー構成部108は、検索式「ユーザID!=U001 AND レストランID=R001」を構成する。なお、演算子「!=」は、一致しないことを示す。
次に、メニュー構成部108は、図13の飲食情報を用いて、提示メニューを構成する。この提示メニューは、現在の自分の位置に適合した提示メニューである、と言える。なお、ここでは、メニュー構成部108は、図13の「ユーザID」を用いて、図7のユーザ管理表を参照し、各ユーザIDに対応する「氏名」を取得した、とする。
次に、メニュー送信部109は、構成された提示メニューを、メニュー取得指示を送信してきた端末装置2に送信する。なお、送信される提示メニューは、図13の情報をすべて含んでも良いし、図13の情報のうちの一部の情報を含んでも良い。
次に、端末装置2の端末受信部23は、サーバ装置1から提示メニューを受信する。そして、端末出力部24は、端末受信部23が受信した提示メニューを出力する。ここで、出力された提示メニューの例が図14である。なお、図14において、各ユーザが料理を食べた日も表示されている。また、提示メニューにおいて、図13の情報のうち、いかなる情報を表示しても良い。
(2)特定の他人が食べた食事に関する情報を有する提示メニューを呼び出し、閲覧する
以下、ユーザの端末装置2から提示メニューを呼び出し、閲覧する処理について説明する。ここでは、特定の他人が食べた飲食情報を有する提示メニューを呼び出し、閲覧する処理について説明する。
今、ユーザID「U001」で識別されるユーザは、自分の端末装置2に、他のユーザであるC田D子(ユーザID=U005)が食べた食事の情報であるC田D子の飲食情報を取得するメニュー取得指示を入力する。
次に、端末装置2の端末受付部21は、ユーザからメニュー取得指示「提示メニュー取得 ユーザID1=U001,ユーザID2=U005,ユーザ位置情報=Xv,Yv)」を受け付ける。なお、ユーザID1は、提示メニューの取得を要求するユーザのIDであり、ユーザID2は取得対象の飲食情報に対応するユーザのIDである。また、ユーザ位置情報は、位置情報取得部20が最近に取得したユーザの位置情報である。
次に、端末送信部22は、端末受付部21が受け付けたメニュー取得指示をサーバ装置1に送信する。
次に、サーバ装置1の指示受信部106は、端末装置2から、メニュー取得指示「提示メニュー取得 ユーザID1=U001,ユーザID2=U005,ユーザ位置情報=Xv,Yv)」を受信する。
次に、メニュー構成部108は、メニュー取得指示「提示メニュー取得 ユーザID1=U001,ユーザID2=U005,ユーザ位置情報=Xv,Yv)」に従って、U005に対応する飲食情報を取得し、提示メニューを構成する。具体的には、メニュー構成部108は、以下のように提示メニューを構成する。まず、メニュー構成部108は、受信されたメニュー取得指示が有するユーザ識別子「U005」を取得する。また、メニュー構成部108は、受信されたメニュー取得指示が有するユーザ位置情報「(Xv,Yv)」を取得する。
そして、メニュー構成部108は、ユーザID「U005」とユーザ位置情報「(Xv,Yv)」とを用いて、図8のレストラン情報管理表を検索する。そして、メニュー構成部108は、ユーザID「U005」に対応するレストラン情報の中で、すべてのレストランのレストラン情報が有する位置情報とユーザ位置情報「(Xv,Yv)」との距離を算出する。そして、メニュー構成部108は、ユーザID「U005」に対応するレストラン情報の中で、当該距離が閾値(例えば、10m)以内であるレストランのレストラン情報が存在しない、と判断した、とする。
次に、メニュー構成部108は、検索式「ユーザID=U005」を構成する。
次に、メニュー構成部108は、構成した検索式「ユーザID=U005」を用いて、図9の飲食情報管理表から、飲食情報を検索し、取得する。取得された飲食情報は、図15である。
次に、メニュー構成部108は、図15の飲食情報を用いて、提示メニューを構成する。そして、メニュー送信部109は、構成された提示メニューを、メニュー取得指示を送信してきた端末装置2に送信する。なお、送信される提示メニューは、図15の情報をすべて含んでも良いし、図15の情報のうちの一部の情報を含んでも良い。
次に、端末装置2の端末受信部23は、サーバ装置1から提示メニューを受信する。そして、端末出力部24は、端末受信部23が受信した情報を出力する。
(3)提示メニューを呼び出し、注文する
以下、注文装置3から提示メニューを呼び出し、当該提示メニューを用いて、料理を注文する処理について説明する。
今、「2.他人の飲食情報の利用」の「(1)自分の現在位置に適合した提示メニューを呼び出し、閲覧する」で説明した処理が行われ、ユーザID「U001」で識別されるユーザの注文装置3に、図14の提示メニューが出力されている、とする。なお、ユーザID「U001」で識別されるユーザは、現在、レストランID=R001」で識別されるレストラン「RES−XXX」に居る。なお、図14の提示メニューの各項目は選択可能になっている。また、図14の提示メニューの情報は、レストランのURL「http://www.XXX.jp」、注文サーバアドレス「190.188.2.56」等を有する、とする。
次に、ユーザは、図14の提示メニューから、「I田J夫」が食べた「1.ポトフ(5/13) 800」の項目を選択した、とする。すると、図16に示すように、「1.ポトフ(5/13) 800」の項目にフォーカスが当てられ、1601の操作用メニューが出力される。なお、操作用メニューの情報は、注文装置3を構成するメニュー格納部30に格納されている、とする。
そして、ユーザは、1601の操作用メニューの中の「注文」項目を選択した、とする。すると、注文受付部31は、「1.ポトフ(5/13) 800」に対応する料理の注文を示す注文情報を受け付ける。ここで、注文情報は、「メニューID:3,食事内容情報:ポトフ,価格:800」を有する。なお、「メニューID:3」の情報は、図8のメニュー情報に含まれている。
次に、注文送信部32は、注文受付部31が受け付けた注文情報を、本レストラン内の他の装置(例えば、厨房に設置された端末)に送信する。なお、この送信処理により、注文が確定する。
次に、注文送信部32は、レストラン識別子「R001」およびユーザ識別子「U005」を取得し、当該レストラン識別子「R001」、ユーザ識別子「U005」、および食事内容情報「ポトフ」等を用いて、飲食情報を構成する。そして、注文送信部32は、当該飲食情報をサーバ装置1に送信する。
サーバ装置1は、当該飲食情報を受信し、蓄積する。なお、かかるサーバ装置1の処理は、上述したので、処理の詳細説明は省略する。
以上の処理により、提示メニューを呼び出し、当該提示メニューを注文に利用できる。
(4)提示メニューを呼び出し、購入する
以下、ユーザの端末装置2から提示メニューを呼び出し、当該提示メニューを用いて、ワインや料理に関する物品を購入する処理について説明する。
今、「2.他人の飲食情報の利用」の「(1)自分の現在位置に適合した提示メニューを呼び出し、閲覧する」で説明した処理が行われ、ユーザID「U001」で識別されるユーザの端末装置2に、図14の提示メニューが出力されている、とする。なお、ユーザID「U001」で識別されるユーザは、現在、レストランID=R001」で識別されるレストラン「RES−XXX」に居る。なお、図14の提示メニューの各項目は選択可能になっている。また、図14の提示メニューの情報は、レストランのURL「http://www.XXX.jp」等を有する、とする。
次に、ユーザは、図14の提示メニューから、「3.ワインA(5/14) 3800」の項目を選択した、とする。すると、図17に示すように、「3.ワインA(5/14) 3800」の項目にフォーカスが当てられ、1701の操作用メニューが出力される。なお、操作用メニューの情報は、端末装置2に格納されている、とする。
そして、ユーザは、1701の操作用メニューの中の「購入」項目を選択した、とする。すると、端末受付部21は、「3.ワインA(5/14) 3800」に対応するワインの購入指示を受け付ける。なお、購入指示は、飲食情報識別子「レストランID:R001,メニューID:25」を有する、とする。「25」は、ワインAのメニューIDである。また、図13の提示メニューの項目「3.ワインA(5/14) 3800」に対応付けて、提示メニューの情報は飲食情報識別子「レストランID:R001,メニューID:25」を有する、とする。そして、端末受付部21は、送信する購入指示「購入 レストランID:R001,メニューID:25」を構成する。
次に、端末送信部22は、受け付けられた購入指示「購入 レストランID:R001,メニューID:25」をサーバ装置1に送信する。
次に、サーバ装置1の指示受信部106は、端末装置2から、当該購入指示を受信する。次に、検索部110は、受信された購入指示が有する飲食情報識別子「レストランID:R001,メニューID:25」を取得する。
次に、検索部110は、取得した飲食情報識別子と対になる画像(ワインのラベル画像)を、飲食情報管理表から取得する。なお、検索部110は、ワイン購入の検索時に、ワインの画像からラベル領域を抽出し、ラベル画像を取得し、当該ラベル画像を検索に用いることは好適である。
次に、検索部110は、取得したワインのラベル画像を用いて、ワインのラベル画像を格納している画像データベースを検索する。なお、画像データベースは、ワインのラベル画像と、当該ワインを販売するWepページを識別するWepページ識別子(例えば、URIやURLなど)とを有するレコードを多数、格納している。なお、ここでの画像検索のアルゴリズムは問わない。また、本画像データベースは、どのように構築しても良い。人手により画像データベースを構築しても良いし、特定のWebページから、またはWeb上をクローリングして、Wepページ識別子とラベル画像を取得して、画像データベースを構築しても良い。
そして、検索部110は、検索された画像と対になる1以上のWepページ識別子(例えば、URL)を取得する。
次に、検索部110は、取得した1以上のWepページ識別子(例えば、URL)を、購入指示を送信した端末装置2に送信する。
次に、端末装置2の端末受信部23は、1以上のWepページ識別子を受信する。そして、端末出力部24は、受信された1以上のWepページ識別子を出力する。以後、ユーザは、Wepページ識別子を選択する。そして、端末装置2は、ワインの購入のためのWebページを出力する。次に、ユーザは、当該Webページに対して、ワインを購入する操作を行う。
以上の処理により、ユーザが、自分または他の人が過去に飲んだワインを容易に購入できる。
以上、本実施の形態によれば、他人が食事をした食事内容の情報を用いて、自分用のメニューを構成し、利用できる。
また、本実施の形態によれば、料理を注文したり、食事の決済をしたりすることにより、自動的に食事をした食事内容の情報が登録され、当該登録された食事内容の情報を用いて、自分用または他の人用のメニューを構成し、利用できる。
また、本実施の形態によれば、提示メニューを用いて、料理の注文をしたり、購入をしたりできる。
さらに、本実施の形態によれば、予め登録した条件を満たす飲食情報がサーバ装置1にアップされた場合、当該飲食情報を自動的に得ることができ、豊かな食生活を送ることができる。
なお、本実施の形態におけるサーバ装置1や端末装置2等の処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態におけるサーバ装置を実現するソフトウェアは、以下のようなプログラムである。つまり、コンピュータがアクセス可能な記録媒体は、2以上の飲食情報を格納し得る飲食情報格納部を有し、このプログラムは、コンピュータを、2以上の端末装置から2以上の飲食情報を受信する飲食情報受信部と、前記2以上の飲食情報を前記飲食情報格納部に蓄積する飲食情報蓄積部と、ユーザ識別子を有する指示であり、他の人が送信した食事内容情報を有する1または2以上のメニュー情報を含む提示メニューを取得する指示であるメニュー取得指示を、1以上の端末装置から受信する指示受信部と、前記指示受信部が受信したメニュー取得指示に対応する食事内容情報であり、他の人が送信した1または2以上の食事内容情報を前記飲食情報格納部から取得し、当該1または2以上の食事内容情報を含む提示メニューを構成するメニュー構成部と、前記メニュー取得指示を送信してきた端末装置に前記提示メニューを送信するメニュー送信部として機能させるためのプログラム、である。
また、上記プログラムにおいて、前記メニュー構成部は、前記指示受信部が受信したメニュー取得指示に含まれる情報であり、ユーザに関する情報であるユーザ情報を用いて、当該ユーザに適した提示メニューであり、1または2以上の他の人が送信した1または2以上の食事内容情報を前記飲食情報格納部から取得し、当該1または2以上の食事内容情報を含む提示メニューを構成するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記メニュー構成部は、前記指示受信部が受信したメニュー取得指示に含まれるユーザ位置情報を用いて、当該ユーザ位置情報に対して予め決められた条件を満たすユーザ位置情報と対になる食事内容情報であり、1または2以上の他の人が送信した1または2以上の食事内容情報を、前記飲食情報格納部から取得し、当該1または2以上の食事内容情報を含む提示メニューを構成するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記メニュー構成部は、前記指示受信部が受信したメニュー取得指示に含まれるユーザ位置情報に対応するレストラン識別子を取得し、当該レストラン識別子と対になる食事内容情報であり、1または2以上の他の人が送信した1または2以上の食事内容情報を、前記飲食情報格納部から取得し、当該1または2以上の食事内容情報を含む提示メニューを構成するものとして、コンピュータを機能させるプログラムであることは好適である。
また、前記食事情報は、食事のカテゴリーを示すカテゴリー情報を有し、上記プログラムにおいて、前記メニュー構成部は、前記指示受信部が受信したメニュー取得指示に含まれるカテゴリー情報、またはレストラン識別子、またはユーザ位置情報を用いて、カテゴリー情報を取得し、当該カテゴリー情報を用いて、当該ユーザに適した提示メニューであり、1または2以上の他の人が送信した1または2以上の食事内容情報を前記飲食情報格納部から取得し、当該1または2以上の食事内容情報を含む提示メニューを構成するものとして、コンピュータを機能させるプログラムであることは好適である。
また、記録媒体は、食事を識別するメニュー識別子と当該メニュー識別子で識別される食事の食事内容情報とを有する1以上のメニュー情報と、レストラン識別子と、レストランの位置を示すレストラン位置情報とを有する1以上のレストラン情報を格納し得るレストラン情報格納部をさらに具備し、上記プログラムにおいて、前記メニュー構成部は、前記指示受信部が受信したメニュー取得指示に含まれるユーザ識別子と対になるレストラン識別子のレストラン位置情報と、予め決められた条件を満たすレストラン位置情報を有するレストラン情報に含まれるレストラン識別子と対になる1または2以上の食事内容情報であり、1または2以上の他の人が送信した1または2以上の食事内容情報を前記飲食情報格納部から取得し、当該1または2以上の食事内容情報を含む提示メニューを構成するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記メニュー構成部は、前記指示受信部が受信したメニュー取得指示に含まれるユーザ識別子を含む1以上の飲食情報と、他の人の1以上の飲食情報とを用いて、前記ユーザ識別子で識別されるユーザと予め決められた条件を満たす飲食情報に含まれるユーザ識別子を決定し、当該ユーザ識別子と対になる1または2以上の食事内容情報を前記飲食情報格納部から取得し、当該1または2以上の食事内容情報を含む提示メニューを構成するものとして、コンピュータを機能させるプログラムであることは好適である。
また、記録媒体は、食事特定情報とユーザ識別子とを有する登録情報を格納し得る登録情報格納部をさらに具備し、コンピュータを、前記登録指示を受信する登録指示受信部と、前記登録指示受信部が受信した登録指示が有する食事特定情報とユーザ識別子とを用いて登録情報を構成し、前記登録情報格納部に蓄積する登録情報蓄積部と、前記飲食情報受信部が受信した飲食情報が合致する食事特定情報を特定し、当該食事特定情報と対になるユーザ識別子で識別されるユーザに、前記飲食情報受信部が受信した飲食情報の一部または全部を送信する通知部として、さらに機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記飲食情報受信部は、食事を注文する注文装置に入力された食事内容情報を有する飲食情報を、前記注文装置から受信するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記飲食情報受信部は、決済を行う決済装置に入力された食事内容情報を有する飲食情報を、前記決済装置から受信するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記指示受信部は、ユーザ識別子と、当該ユーザ識別子で識別されるユーザの位置を示すユーザ位置情報を有するメニュー取得指示を受信し、前記メニュー構成部は、前記ユーザ位置情報を用いて、前記ユーザが一のレストランに居るか否かを判断し、前記ユーザが一のレストランに居ると判断した場合は、当該一のレストランに対応する1以上の飲食情報を用いて、提示メニューを構成するものとして、コンピュータを機能させるプログラムであることは好適である。
また、前記食事情報は、ワインのラベル画像を有し、上記プログラムにおいて、前記指示受信部は、ワインを購入するための指示である購入指示を受信し、コンピュータを、前記購入指示の受信に応じて、前記購入指示に対応する飲食情報が有するワインのラベル画像を用いて、当該ワインの購入のためのWepページ識別子を検索し、出力する検索部として、さらに機能させるプログラムであることは好適である。
また、図18は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態の情報システムを実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図18は、このコンピュータシステム300の概観図であり、図19は、システム300のブロック図である。
図18において、コンピュータシステム300は、CD−ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304と、マイク305と、スピーカー306とを含む。
図19において、コンピュータ301は、CD−ROMドライブ3012に加えて、MPU3013と、バス3014と、ROM3015と、RAM3016と、ハードディスク3017とを含む。なお、バス3014は、MPU3013やCD−ROMドライブ3012に接続されている。また、ROM3015には、ブートアッププログラム等のプログラムが記憶されている。また、RAM3016は、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのものである。また、ハードディスク3017は、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのものである。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態の情報システムの機能を実行させるプログラムは、CD−ROM3101に記憶されて、CD−ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態の情報システムの機能を実行させるオペレーティングシステム、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信するステップや、情報を受信するステップなどでは、ハードウェアによって行われる処理、例えば、送信するステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。