以下、サーバ装置等の実施形態について図面を参照して説明する。なお、実施の形態において同じ符号を付した構成要素は同様の動作を行うので、再度の説明を省略する場合がある。
(実施の形態1)
本実施の形態において、自分が食事をした食事内容を用いて、自分用のメニューを構成し、利用する情報システムについて説明する。
また、本実施の形態において、レストラン情報の管理を行い、登録されているレストランの飲食情報と登録されていないレストランの飲食情報とで異なる処理を行う情報システムについて説明する。
また、本実施の形態において、注文時に食事情報を自動蓄積する情報システムについて説明する。
また、本実施の形態において、決済時に食事情報を自動蓄積する情報システムについて説明する。
さらに、本実施の形態において、食事情報に含まれているワインのラベルの画像を用いて、当該ワインの購入のためのURLを検索し、出力する情報システムについて説明する。
図1は、本実施の形態における情報システムの概念図である。情報システムは、サーバ装置1、1または2以上の端末装置2、1または2以上の注文装置3、および1または2以上の決済装置4を備える。
図2は、本実施の形態における情報システムのブロック図である。情報システムを構成するサーバ装置1は、レストラン情報格納部11、飲食情報格納部12、飲食情報受信部13、指示受信部14、飲食情報蓄積部15、メニュー構成部16、メニュー送信部17、検索部18を備える。
また、端末装置2は、端末受付部21、端末送信部22、端末受信部23、端末出力部24を備える。
また、注文装置3は、注文受付部31、注文送信部32、注文出力部33を備える。
さらに、決済装置4は、決済受付部41、決済送信部42、決済出力部43を備える。
サーバ装置1を構成するレストラン情報格納部11は、1または2以上のレストラン情報を格納し得る。レストラン情報は、1以上のメニュー情報とレストラン識別子とを有する。メニュー情報は、食事または料理(以下、食事等とも言う)を識別するメニュー識別子と、メニュー識別子で識別される食事内容情報とを有する。食事内容情報は、食事等の内容を示す情報である。食事内容情報は、例えば、食事等のメニューの情報、コース料理の各料理名の情報などである。レストラン識別子は、レストランを識別する情報である。レストラン識別子は、ID、レストラン名等、レストランを識別できる情報であれば何でも良い。また、レストラン情報は、レストランの位置を示す位置情報、レストラン名、レストランの住所、レストランの電話番号、レストランのURL、レストランで使用されている注文サーバや端末のアドレス等の情報を有しても良い。
飲食情報格納部12は、1または2以上の飲食情報を格納し得る。飲食情報は、ユーザが飲食した料理や飲料等に関する情報であり、食事情報およびユーザを識別するユーザ識別子を有する。食事情報は、ユーザが食べた食事に関する情報であり、食事の内容を示す食事内容情報と、食事をしたレストランのレストラン識別子とを有する。また、食事情報は、食事の時に自動取得した情報である自動取得情報を含んでも良い。自動取得情報は、例えば、日時、位置情報、天気、気温などである。また、食事情報は、食事をしたレストランのURL、レストラン名、レストランのジャンルのうちの1以上の情報を含んでも良い。また、食事情報は、食事をしたユーザのコメント、ユーザの評価、撮影画像を含んでも良い。なお、撮影画像は、ワインのラベル画像を含んでも良い。
ユーザ識別子は、例えば、ID、氏名等であり、ユーザを識別できる情報であれば何でも良い。また、ユーザ識別子は、ユーザが保有する端末装置2の識別情報(例えば、電話番号、IPアドレス、MACアドレス等)でも良い。
飲食情報受信部13は、1または2以上の端末装置2から1または2以上の飲食情報を受信する。なお、飲食情報受信部13が受信する飲食情報は、飲食情報の一部の情報でも良い。かかる場合も、飲食情報の受信である。
また、飲食情報受信部13は、レストラン情報格納部11に格納されているレストラン識別子を含む飲食情報を受信する場合、およびレストラン情報格納部11に格納されているレストラン識別子を含まない飲食情報を受信する場合があることは好適である。
また、飲食情報受信部13は、食事を注文する注文装置3に入力された食事内容情報を有する飲食情報を、1または2以上の注文装置3から受信しても良い。
さらに、飲食情報受信部13は、決済を行う決済装置4に入力された食事内容情報を有する飲食情報を、1または2以上の決済装置4から受信しても良い。
指示受信部14は、1または2以上の端末装置2からメニュー取得指示を受信する。メニュー取得指示は、ユーザが食べた食事のメニューを取得する指示であり、ユーザ識別子を有する指示である。メニュー取得指示は、ユーザ識別子と、当該ユーザ識別子で識別されるユーザの位置を示すユーザ位置情報を有することは好適である。
指示受信部14は、ワインを購入するための指示である購入指示を受信しても良い。購入指示は、通常、自分メニューを構成する飲食情報の一部の情報を含む。飲食情報の一部の情報は、例えば、飲食情報を識別する飲食情報識別子である。
飲食情報蓄積部15は、飲食情報受信部13が受信した1または2以上の飲食情報を飲食情報格納部12に蓄積する。また、飲食情報蓄積部15は、予め決められた条件を満たさない飲食情報は飲食情報格納部12に蓄積しないことは好適である。予め決められた条件は、例えば、飲食情報であることを判断するための条件である。予め決められた条件は、例えば、飲食情報が画像を含むことである。なお、画像は、通常、注文した料理の画像である。なお、予め決められた条件は問わない。
メニュー構成部16は、メニュー取得指示に含まれるユーザ識別子を有する1または2以上の飲食情報を用いて、自分メニューを構成する。自分メニューは、自分が過去に注文した食事の情報から構成されるメニューである。また、メニュー構成部16は、注文した回数、飲食した時刻、現在位置からの距離をキーとして、飲食情報またはその一部の情報をソートし、当該ソートした飲食情報またはその一部の情報から、自分メニューを構成しても良い。
また、メニュー構成部16は、現在のユーザが居る位置を示すユーザ位置情報を用いて、現在位置から予め決められた範囲内にあるレストラン(周辺レストラン)を決定し、当該周辺レストランの飲食情報を用いて、食事のメニューを構成しても良い。
また、メニュー構成部16は、ユーザ位置情報を用いて、ユーザが一のレストランに居るか否かを判断し、ユーザが一のレストランに居ると判断した場合は、当該一のレストランに対応する1以上の飲食情報であり、ユーザ識別子を有する1以上の飲食情報を用いて、食事のメニューである自分メニューを構成することは好適である。
具体的には、メニュー構成部16は、ユーザ位置情報と、レストラン情報格納部11のレストラン情報が有するレストランの位置情報とを用いて、ユーザが一のレストランに居るか否かを判断する。メニュー構成部16は、例えば、レストラン情報格納部11のレストラン情報が有する一のレストランの位置情報とユーザ位置情報との距離が閾値以内であれば、ユーザが一のレストランに居ると判断し、閾値より大きければユーザが一のレストランに居ない、と判断する。また、メニュー構成部16は、例えば、レストラン情報格納部11のレストラン情報が有する一のレストランの位置情報が示す領域内に、ユーザ位置情報が入っているか否かを判断し、領域内にユーザ位置情報が入っている場合はユーザが当該一のレストランに居ると判断し、領域内にユーザ位置情報が入っていない場合はユーザが一のレストランに居ない、と判断する。
そして、メニュー構成部16は、ユーザが一のレストランに居ると判断した場合は、当該一のレストランに対応する1以上の飲食情報であり、当該ユーザのユーザ識別子を有する1以上の飲食情報を、飲食情報格納部12から取得する。次に、メニュー構成部16は、取得した1以上の飲食情報から自分メニューを構成する。
なお、メニュー構成部16は、ユーザが一のレストランに居ないと判断した場合は、通常、上記のアルゴリズムとは異なるアルゴリズムにより、自分メニューを構成する。つまり、メニュー構成部16は、ユーザが一のレストランに居ないと判断した場合は、例えば、ユーザ位置情報が示す位置から予め決められた範囲に存在する1以上のレストランに対応する1以上の飲食情報であり、当該ユーザのユーザ識別子を有する1以上の飲食情報を、飲食情報格納部12から取得し、当該取得した1以上の飲食情報から自分メニューを構成する。また、メニュー構成部16は、ユーザが一のレストランに居ないと判断した場合は、例えば、ユーザ位置情報を用いずに、当該ユーザのユーザ識別子を有する1以上の飲食情報を、飲食情報格納部12から取得し、当該取得した1以上の飲食情報から自分メニューを構成しても良い。
また、メニュー構成部16は、ユーザ位置情報を用いて、ユーザが一のレストランに居るか否かを判断し、ユーザが一のレストランに居ると判断した場合は、当該一のレストランに対応する1以上の飲食情報であり、ユーザ識別子を有する1以上の飲食情報から取得したメニューの情報を、他の飲食情報から取得したメニューの情報とは、視覚的に区別して、自分メニューを構成することは好適である。なお、「視覚的に区別する」とは、当該一のレストランに対応する1以上の飲食情報であり、ユーザ識別子を有する1以上の飲食情報を上位に表示されるように、メニューの情報を入れ替えたり、当該一のレストランに対応する1以上の飲食情報であり、ユーザ識別子を有する1以上の飲食情報の色やフォント等を、他と比較して、目立つ態様にしたりすること等である。また、ここでの他の飲食情報とは、当該ユーザのユーザ識別子を有する1以上の飲食情報である。
メニュー送信部17は、メニュー取得指示を送信してきた端末装置2に、メニュー構成部16が構成した自分メニューを送信する。
検索部18は、購入指示の受信に応じて、購入指示に対応する飲食情報が有するワインのラベル画像を用いて、ワインの購入のためのWebページ識別子を検索し、出力する。ここで、出力とは、通常、購入指示を送信してきた端末装置2への送信である。また、ワインのラベル画像は、ワインのラベルを含む画像であり、ラベル以外の領域(例えば、瓶の領域)の画像を含んでも良い。
なお、検索部18は、例えば、ワインのラベル画像を用いて、ワインのラベル画像を格納している画像データベースを検索する。また、画像データベースは、ワインのラベル画像と、当該ワインを販売するWebページを識別するWebページ識別子(例えば、URIやURLなど)とを有するレコードを多数、格納している。なお、ここでの画像検索のアルゴリズムは問わない。また、一の画像と同一または類似する画像を検索する技術は公知技術であるので、詳細な説明を省略する。なお、検索部18は、例えば、ワインのラベル画像と類似度が最も高い画像を検索する。また、検索部18は、例えば、ワインのラベル画像と類似度が閾値以内の画像を検索しても良い。
なお、サーバ装置1において、飲食情報格納部12の飲食情報がレストラン識別子を含む場合と含まない場合とで、飲食情報に対する処理が異なる。例えば、メニュー構成部16の処理が異なる。メニュー構成部16のメニュー構成の処理において、登録されているレストランを目立つ態様でメニューを構成しても良い。また、例えば、メニュー構成部16は、登録されているレストランのメニューにのみ、店舗案内の位置情報を付与する。また、例えば、メニュー構成部16は、登録されているレストランのメニューにのみ、注文可能とする情報を付与する。注文可能とする情報とは、例えば、レストランの端末と通信するための情報(IPアドレス、MACアドレス等)である。
端末装置2を構成する端末受付部21は、ユーザから指示や情報を受け付ける。指示は、例えば、メニュー取得指示、購入指示、注文指示等である。なお、端末受付部21は、ユーザ位置情報を受け付け、メニュー取得指示はユーザ識別子とユーザ位置情報とを有することは好適である。かかる場合、端末装置2は、通常、ユーザ位置情報を取得するための位置情報取得手段を具備する。位置情報取得手段は、例えば、GPS受信機等である。また、注文指示とは、端末出力部24が出力した自分メニューを構成する項目を選択し、当該選択された項目に対応する料理を注文する指示である。また、情報は、例えば、飲食情報である。また、情報は、例えば、飲食情報の一部でも良い。また、端末受付部21は、一の飲食情報の一部を受け付けた後、一の飲食情報の残りの情報を受け付けても良い。
指示や情報の入力手段は、キーボードやマウスやメニュー画面によるもの等、何でも良い。
端末送信部22は、端末受付部21が受け付けた指示や情報をサーバ装置1に送信する。また、端末送信部22は、端末受付部21が受け付けた指示や情報に、予め格納されているユーザ識別子を付加して、サーバ装置1に送信しても良い。なお、ユーザ識別子が付加された指示や情報も、指示や情報である。端末受付部21が注文指示を受け付けた場合、例えば、端末送信部22は、当該注文指示、または当該注文指示を構成する料理の情報を他の装置に送信する。なお、他の装置は、例えば、厨房に設置されている端末である。
端末受信部23は、サーバ装置1から情報を受信する。ここでの情報は、例えば、自分メニュー、Webページを識別する1以上のWebページ識別子である。
端末出力部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が受け付けた決済情報を出力する。
レストラン情報格納部11、飲食情報格納部12、メニュー格納部30は、不揮発性の記録媒体が好適であるが、揮発性の記録媒体でも実現可能である。レストラン情報格納部11等にレストラン情報等が記憶される過程は問わない。例えば、記録媒体を介してレストラン情報等がレストラン情報格納部11等で記憶されるようになってもよく、通信回線等を介して送信されたレストラン情報等がレストラン情報格納部11等で記憶されるようになってもよく、あるいは、入力デバイスを介して入力されたレストラン情報等がレストラン情報格納部11等で記憶されるようになってもよい。
飲食情報受信部13、指示受信部14、端末受信部23は、通常、無線または有線の通信手段で実現されるが、放送を受信する手段で実現されても良い。
飲食情報蓄積部15、メニュー構成部16、検索部18は、通常、MPUやメモリ等から実現され得る。飲食情報蓄積部15等の処理手順は、通常、ソフトウェアで実現され、当該ソフトウェアはROM等の記録媒体に記録されている。但し、ハードウェア(専用回路)で実現しても良い。
メニュー送信部17、端末送信部22、注文送信部32、決済送信部42は、通常、無線または有線の通信手段で実現されるが、放送手段で実現されても良い。
端末受付部21、注文受付部31、決済受付部41は、キーボード等の入力手段のデバイスドライバーや、メニュー画面の制御ソフトウェア等で実現され得る。
端末出力部24、注文出力部33、決済出力部43は、ディスプレイやスピーカー等の出力デバイスを含むと考えても含まないと考えても良い。端末出力部24等は、出力デバイスのドライバーソフトまたは、出力デバイスのドライバーソフトと出力デバイス等で実現され得る。
次に、情報システムの動作について説明する。まず、サーバ装置1の動作について、図3のフローチャートを用いて説明する。
(ステップS301)飲食情報受信部13は、端末装置2から飲食情報を受信したか否かを判断する。飲食情報を受信すればステップS302に行き、飲食情報を受信しなければステップS308に行く。
(ステップS302)飲食情報蓄積部15は、ステップS301で受信された飲食情報が、予め決められた条件を満たすか否かを判断する。予め決められた条件を満たす場合はステップS303に行き、予め決められた条件を満たさない場合はステップS301に戻る。
(ステップS303)飲食情報蓄積部15は、ステップS301で受信された飲食情報が有するレストラン識別子を取得する。
(ステップS304)飲食情報蓄積部15は、ステップS303で取得されたレストラン識別子をキーとして、レストラン情報格納部11を検索する。
(ステップS305)飲食情報蓄積部15は、ステップS304において、レストラン情報を検索できたか否かを判断する。レストラン情報を検索できた場合はステップS306に行き、レストラン情報を検索でなかった場合はステップS307に行く。なお、ストラン情報を検索できた場合とはレストラン識別子で識別されるレストランが登録されている場合であり、レストラン情報を検索でなかった場合はレストラン識別子で識別されるレストランが登録されていない場合である。
(ステップS306)飲食情報蓄積部15は、ステップS304で検索されたレストラン情報のうちの必要な情報、およびステップS301で受信された飲食情報を用いて、蓄積する飲食情報を構成する。なお、受信された飲食情報と蓄積する飲食情報とが異なる場合はあり得る。また、レストラン情報のうちの必要な情報とは、例えば、レストランのURL、レストランが保有する注文サーバのアドレス、レストランの位置情報等のレストランの情報である。
(ステップS307)飲食情報蓄積部15は、ステップS301で受信された飲食情報、またはステップS306で構成された飲食情報を、飲食情報格納部12に蓄積する。ステップS301に戻る。
(ステップS308)指示受信部14は、端末装置2から、メニュー取得指示を受信したか否かを判断する。メニュー取得指示を受信すればステップS309に行き、メニュー取得指示を受信しなければステップS311に行く。
(ステップS309)メニュー構成部16は、ステップS308で受信したメニュー取得指示に従って、メニューを構成する。このメニューは、メニュー取得指示を送信してきたユーザの自分メニューである。なお、メニューを構成するメニュー構成処理について、図4のフローチャートを用いて説明する。
(ステップS310)メニュー送信部17は、ステップS309で構成された自分メニューを、メニュー取得指示を送信してきた端末装置2に送信する。ステップS301に戻る。
(ステップS311)指示受信部14は、端末装置2から、購入指示を受信したか否かを判断する。購入指示を受信すればステップS312に行き、購入指示を受信しなければステップS301に戻る。
(ステップS312)検索部18は、ステップS311で受信された購入指示が有する飲食情報識別子を取得する。
(ステップS313)検索部18は、ステップS312で取得した飲食情報識別子と対になる画像を、飲食情報格納部12から取得する。なお、検索部18は、購入指示が有する飲食情報識別子とユーザ識別子の両方と対になる画像を、飲食情報格納部12から取得しても良い。また、ここで取得される画像は、ワインのラベル画像である、とする。
(ステップS314)検索部18は、ステップS313で取得したワインのラベル画像を用いて、ワインのラベル画像を格納している画像データベースを検索する。なお、画像データベースは、ワインのラベル画像と、当該ワインを販売するWebページを識別するWebページ識別子(例えば、URIやURLなど)とを有するレコードを多数、格納している。なお、ここでの画像検索のアルゴリズムは問わない。また、一の画像と同一または類似する画像を検索する技術は公知技術であるので、詳細な説明を省略する。なお、検索部18は、例えば、ステップS313で取得したワインのラベル画像と類似度が最も高い画像を検索する。
(ステップS315)検索部18は、ステップS314において検索された画像と対になるWebページ識別子(例えば、URL)を取得する。
(ステップS316)検索部18は、ステップS315で取得したWebページ識別子(例えば、URL)を、購入指示を送信した端末装置2に送信する。ステップS301に戻る。
なお、図3のフローチャートにおいて、ステップS302等の一部のステップにおける処理は行われなくても良い。
また、図3のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、ステップS309のメニュー構成処理について、図4のフローチャートを用いて説明する。
(ステップS401)メニュー構成部16は、ステップS308で受信されたメニュー取得指示が有するユーザ識別子を取得する。
(ステップS402)メニュー構成部16は、ステップS401で取得したユーザ識別子を検索条件に有する検索式を構成する。なお、この検索式は、例えば、端末装置2の現在位置を示すユーザ位置情報を有していても良い。つまり、検索式は、ユーザ識別子を有する飲食情報であり、かつ現在位置を示すユーザ位置情報から予め決められた範囲に存在するレストランの飲食情報を検索するための検索式でも良い。
(ステップS403)メニュー構成部16は、ステップS402で構成した検索式を用いて、飲食情報格納部12から、1以上の飲食情報を検索する。
(ステップS404)メニュー構成部16は、ステップS403で検索した1以上の飲食情報から、自分メニューを構成する。上位処理にリターンする。
なお、図4のフローチャートにおいて、メニュー構成部16は、受信されたメニュー取得指示が有するユーザ位置情報を用いて、ユーザが一のレストランに居るか否かを判断し、ユーザが一のレストランに居ると判断した場合は、当該一のレストランに対応する1以上の飲食情報であり、ユーザ識別子を有する1以上の飲食情報を用いて、自分メニューを構成しても良い。また、かかる場合、ユーザが一のレストランに居ないと判断した場合、例えば、複数のレストランに対応する1以上の飲食情報であり、ユーザ識別子を有する1以上の飲食情報を用いて、自分メニューを構成する。かかることにより、ユーザは、当該レストランで食事を行う前に、当該レストランで、以前に食べた料理のリストを容易に見ることができる。
次に、端末装置2の動作について、図5のフローチャートを用いて説明する。
(ステップS501)端末受付部21は、飲食情報を受け付けたか否かを判断する。飲食情報を受け付ければステップS502に行き、飲食情報を受け付けなければステップS504に行く。
(ステップS502)端末送信部22は、飲食情報の送信先を特定する情報(例えば、IPアドレス、MACアドレス等)を取得する。この情報は、サーバ装置1のIPアドレス等であり、端末送信部22は、予め保持している。
(ステップS503)端末送信部22は、ステップS501で受け付けられた飲食情報を、サーバ装置1に送信する。ステップS501に戻る。
(ステップS504)端末受付部21は、メニュー取得指示を受け付けたか否かを判断する。メニュー取得指示を受け付ければステップS505に行き、メニュー取得指示を受け付けなければステップS507に行く。
(ステップS505)端末送信部22は、メニュー取得指示の送信先を特定する情報を取得する。この送信先は、サーバ装置1である。
(ステップS506)端末送信部22は、メニュー取得指示を、サーバ装置1に送信する。ステップS501に戻る。
(ステップS507)端末受信部23は、自分メニューを受信したか否かを判断する。自分メニューを受信したか否かを判断する。自分メニューを受信すればステップS508に行き、受信しなければステップS501に戻る。
(ステップS508)端末出力部24は、ステップS507で受信された自分メニューを出力する。
(ステップS509)端末受付部21は、注文指示を受け付けたか否かを判断する。注文指示を受け付ければステップS510に行き、注文指示を受け付けなければステップS512に行く。
(ステップS510)端末送信部22は、注文指示に対応する飲食情報に含まれる送信先を特定する情報(例えば、IPアドレス、MACアドレス等)を取得する。なお、この送信先を特定する情報は、注文指示に対応する飲食情報が示す料理等を提供したレストランの装置のIPアドレス等である。このレストランの装置は、注文の情報を受信する装置であり、例えば、厨房に設置されている端末である。
(ステップS511)端末送信部22は、ステップS510で取得した送信先を特定する情報に対応する送信先に、注文指示を送信する。ステップS501に戻る。
(ステップS512)端末受付部21は、購入指示を受け付けたか否かを判断する。購入指示を受け付ければステップS513に行き、購入指示を受け付けなければステップS501に戻る。
(ステップS513)端末送信部22は、購入指示の送信先を特定する情報を取得する。この送信先は、サーバ装置1である。
(ステップS514)端末送信部22は、購入指示をサーバ装置1に送信する。
(ステップS515)端末受信部23は、購入指示の送信に応じて、サーバ装置1から1以上のWebページ識別子(例えば、URL)を受信したか否かを判断する。1以上のWebページ識別子を受信すればステップS516に行き、1以上のWebページ識別子を受信しなければステップS515に戻る。なお、購入指示の送信から予め決められた時間以上、Webページ識別子を受信しない場合、端末出力部24は、エラーメッセージを出力しても良い。
(ステップS516)端末出力部24は、ステップS515で受信された1以上のWebページ識別子を出力する。
(ステップS517)以後、ワインの購入ための入力を受け付け、ワインの購入ための処理がなされる。ステップS501に戻る。
なお、図5のフローチャートにおいて、電源オフや処理終了の割り込みにより処理は終了する。
次に、注文装置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である。
今、レストラン情報格納部11は、レストラン情報管理表を格納している。レストラン情報管理表の例は、図6である。レストラン情報管理表は、「ID」「レストランID」「レストラン名」「住所」「電話番号」「URL」「位置情報」「注文サーバアドレス」「メニュー情報」等を有するレコードを1以上格納し得る。「メニュー情報」は、「メニューID」「食事内容情報」「価格」「カロリー」等を有する。「ID」は、レコードを識別する情報である。「レストランID」はレストランを識別する情報である。「位置情報」はレストランの位置を示す情報である。「位置情報」は、ここでは一の位置情報であるが、領域を示す2以上の位置情報や、領域を示す領域識別子等でも良い。「注文サーバアドレス」は、レストランが運用するサーバのアドレスであり、顧客の注文の情報を受信するサーバ(注文サーバと言う。)のアドレスである。なお、「注文サーバアドレス」はここではIPアドレスであるが、注文サーバと通信するための情報であれば何でも良い。「メニュー情報」は、レストランが提供する料理のメニューに関する情報である。「食事内容情報」は、通常、料理名であるが、料理に関する情報であり、レストランが提供する情報であれば何でも良い。今、図6のレストラン情報管理表には、レストラン「RES−XXX」「RES−YYY」「RES−ZZZ」等のレストラン情報が登録されている、とする。また、図示しないが、レストラン情報管理表は、レストランのジャンルの情報をも有している、とする。
また、飲食情報格納部12は、飲食情報管理表を格納している。飲食情報管理表の例は、図7である。飲食情報管理表は、「ID」「食事情報」等を有するレコードを1以上格納し得る。「食事情報」は、「レストラン情報」「食事関連情報」「自動取得情報」等を有する。「レストラン情報」は、食事をしたレストランに関する情報であり、「レストランID」「レストラン名」「URL」「ジャンル」「注文サーバアドレス」等を有する。「食事関連情報」は、食事をした料理(ドリンクも含む)に関する情報であり、「食事内容情報」「価格」「ユーザ評価」「コメント」「撮影画像」等を有する。「自動取得情報」は、食事を行った際(注文時、飲食時、または決済時等を含む)に、自動的に取得できる情報であり、ここでは、「日時」「位置情報」「天気」「気温」等を含む。「自動取得情報」は、例えば、外部の装置(例えば、NTPサーバ等)から通信手段を用いて、またはGPS受信機を用いて等により、取得され得る。なお、飲食情報管理表のレコードについて、すべての属性が属性値を有する必要はなく、NULLの属性値を有しても良い。
かかる状況において、以下の場合について説明する。
[1.飲食情報の登録]
(1)ユーザの端末装置2からの飲食情報の登録
以下、ユーザの端末装置2から飲食情報をサーバ装置1に送信し、登録する処理について説明する。
今、端末装置2を保持しているユーザは、自分がレストランで食べた料理の情報を入力するアプリケーションを起動した、とする。なお、このアプリケーションは、レストラン情報格納部11に格納されているレストラン情報を、サーバ装置1からダウンロード可能である、とする。
そして、端末装置2を保持しているユーザは、端末装置2に対して、レストランで食事をした際の情報を入力した、とする。かかる入力情報を図8に示す。本ユーザは、図8に示すように、端末装置2に、レストラン名、食事内容情報、価格、コメント、評価、撮影画像等を入力した、とする。また、「RES−XXX」の名称を有するレストランのIDは「R001」であることは、端末装置2が起動したアプリケーションが、サーバ装置1からダウンロードして、保持している、とする。
そして、端末受付部21は、図8に示すレストラン名等の情報を受け付ける。なお、撮影画像は、ユーザが、端末装置2が保有するカメラ機能を用いて、撮影した料理の画像である。
次に、ユーザは、図8の画面の「送信」ボタンを押下した、とする。すると、端末受付部21は、飲食情報送信指示を受け付ける。飲食情報送信指示は、ユーザが入力した情報を含む飲食情報をサーバ装置1に送信する指示である。なお、ここでの飲食情報は、「レストランID:R001,レストラン名:RES−XXX、食事内容情報:ステーキ,価格:2400円、コメント:「おいしかった。・・・・」、評価:5、撮影画像」等を含む情報である。
次に、端末送信部22は、当該飲食情報をサーバ装置1に送信する。なお、起動中のアプリケーションの「送信」ボタンに対応付けて、サーバ装置1のアドレス(例えば、IPアドレス)が保持されている、とする。
次に、サーバ装置1の飲食情報受信部13は、図8の飲食情報を受信する。そして、飲食情報蓄積部15は、受信された飲食情報が、予め決められた条件を満たすか否かを判断する。ここで、予め決められた条件とは、例えば、飲食情報が、食事内容情報または撮影画像のどちらかのデータを有することである、とする。そして、飲食情報蓄積部15は、受信された飲食情報が、予め決められた条件を満たす、と判断する。
次に、飲食情報蓄積部15は、受信された飲食情報が有するレストラン識別子「R001」を取得する。次に、飲食情報蓄積部15は、レストラン識別子「R001」をキーとして、レストラン情報管理表を検索する。そして、飲食情報蓄積部15は、当該レストラン識別子「R001」で識別されるレストランは、登録されたレストランであると判断する。そして、飲食情報蓄積部15は、検索されたレストラン情報のうちの必要な情報、および受信された飲食情報を用いて、蓄積する飲食情報を構成する。次に、飲食情報蓄積部15は、構成した飲食情報を、飲食情報管理表に蓄積する。なお、蓄積された飲食情報は、例えば、図7の「ID=1」のレコードである。また、蓄積された飲食情報は、レストラン情報のうちの、URL、注文サーバアドレス等を有する。
(2)レストランまたはユーザの注文装置3からの飲食情報の登録
以下、注文装置3から飲食情報をサーバ装置1に送信し、登録する処理について説明する。注文装置3の注文出力部33は、メニュー格納部30からメニュー情報を読み出し、出力する。なお、例えば、注文出力部33は、図9に示す注文メニューを出力している、とする。また、図9に示す注文メニューの情報は、例えば、注文装置3のメニュー格納部30が予め格納していても良いし、注文装置3が図示しない装置から受信して、メニュー格納部30に格納されていても良い。
次に、ユーザは、注文メニューのうち「3.ポトフ」を選択した、とする。すると、注文受付部31は、「3.ポトフ」の選択を受け付ける。つまり、注文受付部31は、項目「3.ポトフ」に対応する注文情報を取得する。なお、注文情報は、「ボトフ,800,ポトフの画像」等を有する。また、ポトフの画像は、図9に示す注文メニューには表示されていないが、表示されていても良い。
次に、注文送信部32は、注文受付部31が受け付けた注文情報が有する食事内容情報「ポトフ」を用いて、飲食情報を構成する。ここで、注文送信部32は、飲食情報「ユーザID:U005,レストランID:R001,食事内容情報:ボトフ,価格:800,撮影画像:ポトフの画像」等を有する。なお、ユーザIDは、例えば、注文装置3が予め保持していても良いし、ユーザ等が入力しても良い。また、レストランIDは、メニュー情報が有しても良いし、注文装置3が予め保持等していても良い。
次に、注文送信部32は、当該飲食情報をサーバ装置1に送信する。また、注文送信部32は、注文情報を厨房に設置された端末等の他の装置(決済装置4でも良い)に送信する。また、注文出力部33は、注文受付部31が受け付けた注文情報を出力する。なお、通常、注文情報を厨房に設置された端末等の他の装置に送信することにより、注文が確定する
次に、サーバ装置1の飲食情報受信部13は、「ユーザID:U005,レストランID:R001,食事内容情報:ボトフ,価格:800,撮影画像:ポトフの画像」等を有する飲食情報を受信する。そして、飲食情報蓄積部15は、受信された飲食情報が、予め決められた条件を満たすか否かを判断する。そして、飲食情報蓄積部15は、受信された飲食情報が、予め決められた条件を満たす、と判断する。
次に、飲食情報蓄積部15は、受信された飲食情報が有するレストラン識別子「R001」を取得する。次に、飲食情報蓄積部15は、レストラン識別子「R001」をキーとして、レストラン情報管理表を検索する。そして、飲食情報蓄積部15は、当該レストラン識別子「R001」で識別されるレストランは、登録されたレストランであると判断する。そして、飲食情報蓄積部15は、検索されたレストラン情報のうちの必要な情報、および受信された飲食情報を用いて、蓄積する飲食情報を構成する。次に、飲食情報蓄積部15は、構成した飲食情報を、飲食情報管理表に蓄積する。なお、蓄積された飲食情報は、例えば、図7の「ID=2」のレコードである。また、図7の「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の飲食情報受信部13は、「ユーザID:U107,レストランID:R003,食事内容情報:きつねうどん,価格:600,撮影画像:きつねうどんの画像」等を有する飲食情報を受信する。そして、飲食情報蓄積部15は、受信された飲食情報が、予め決められた条件を満たすか否かを判断する。そして、飲食情報蓄積部15は、受信された飲食情報が、予め決められた条件を満たす、と判断する。
次に、飲食情報蓄積部15は、受信された飲食情報が有するレストラン識別子「R003」を取得する。次に、飲食情報蓄積部15は、レストラン識別子「R003」をキーとして、レストラン情報管理表を検索する。そして、飲食情報蓄積部15は、当該レストラン識別子「R003」で識別されるレストランは、登録されたレストランであると判断する。そして、飲食情報蓄積部15は、検索されたレストラン情報のうちの必要な情報、および受信された飲食情報を用いて、蓄積する飲食情報を構成する。次に、飲食情報蓄積部15は、構成した飲食情報を、飲食情報管理表に蓄積する。なお、蓄積された飲食情報は、例えば、図7の「ID=3」のレコードである。また、図7の「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の指示受信部14は、端末装置2から、メニュー取得指示「メニュー取得(U001,(Xu,Yu))」を受信する。
次に、メニュー構成部16は、メニュー取得指示「メニュー取得(U001,(Xu,Yu))」に従って、メニューを構成する。具体的には、メニュー構成部16は、以下のように自分メニューを構成する。まず、メニュー構成部16は、受信されたメニュー取得指示が有するユーザ識別子「U001」を取得する。また、メニュー構成部16は、受信されたメニュー取得指示が有するユーザ位置情報「(Xu,Yu)」を取得する。
そして、メニュー構成部16は、ユーザ位置情報「(Xu,Yu)」を用いて、図6のレストラン情報管理表を検索し、ユーザ位置情報「(Xu,Yu)」と各レストラン情報が有する位置情報との距離を算出する。そして、メニュー構成部16は、当該距離が閾値(例えば、10m)以内であるレストランのレストランID「R001」を取得した、とする。つまり、ユーザID「U001」のユーザは、現在、レストランID「R001」で識別されるレストランに居る、とメニュー構成部16は判断した、とする。
次に、メニュー構成部16は、検索式「ユーザID=U001 AND レストランID=R001」を構成する。
次に、メニュー構成部16は、構成した検索式「ユーザID=U001 AND レストランID=R001」を用いて、図7の飲食情報管理表から、飲食情報を検索し、取得する。取得された飲食情報は、図10である。
次に、メニュー構成部16は、図10の飲食情報を用いて、自分メニューを構成する。この自分メニューは、現在の自分の位置に適合した自分メニューである、と言える。
次に、メニュー送信部17は、構成された自分メニューを、メニュー取得指示を送信してきた端末装置2に送信する。なお、送信される自分メニューは、図10の情報をすべて含んでも良いし、図10の情報のうちの一部の情報を含んでも良い。
次に、端末装置2の端末受信部23は、サーバ装置1から自分メニューを受信する。そして、端末出力部24は、端末受信部23が受信した自分メニューを出力する。ここで、出力された自分メニューの例が図11である。なお、図11において、自分が料理を食べた日も表示されている。また、自分メニューにおいて、図10の情報のうち、いかなる情報を表示しても良い。
(2)自分の現在位置の情報を利用しないで、自分メニューを呼び出し、閲覧する
以下、ユーザの端末装置2から自分メニューを呼び出し、閲覧する処理について説明する。ここでは、自分の現在位置の情報を利用しないで、自分メニューを呼び出し、閲覧する処理について説明する。
今、ユーザID「U001」で識別されるユーザは、自分の端末装置2にメニュー取得指示を入力する。
次に、端末装置2の端末受付部21は、ユーザからメニュー取得指示を受け付ける。次に、端末送信部22は、端末受付部21が受け付けたメニュー取得指示をサーバ装置1に送信する。なお、サーバ装置1に送信するメニュー取得指示は、ユーザID「U001」、およびユーザが居る位置を示すユーザ位置情報(Xv,Yv)を有する。つまり、メニュー取得指示は、例えば、「メニュー取得(U001,(Xv,Yv))」である。
次に、サーバ装置1の指示受信部14は、端末装置2から、メニュー取得指示「メニュー取得(U001,(Xv,Yv))」を受信する。
次に、メニュー構成部16は、メニュー取得指示「メニュー取得(U001,(Xv,Yv))」に従って、メニューを構成する。具体的には、メニュー構成部16は、以下のように自分メニューを構成する。まず、メニュー構成部16は、受信されたメニュー取得指示が有するユーザ識別子「U001」を取得する。また、メニュー構成部16は、受信されたメニュー取得指示が有するユーザ位置情報「(Xv,Yv)」を取得する。
そして、メニュー構成部16は、ユーザID「U001」とユーザ位置情報「(Xv,Yv)」を用いて、図6のレストラン情報管理表を検索する。そして、メニュー構成部16は、ユーザID「U001」に対応するレストラン情報の中で、すべてのレストランのレストラン情報が有する位置情報とユーザ位置情報「(Xv,Yv)」との距離を算出する。そして、メニュー構成部16は、ユーザID「U001」に対応するレストラン情報の中で、当該距離が閾値(例えば、10m)以内であるレストランのレストラン情報が存在しない、と判断した、とする。
次に、メニュー構成部16は、検索式「ユーザID=U001」を構成する。
次に、メニュー構成部16は、構成した検索式「ユーザID=U001」を用いて、図7の飲食情報管理表から、飲食情報を検索し、取得する。取得された飲食情報は、図12ある。
次に、メニュー構成部16は、図12の飲食情報を用いて、自分メニューを構成する。そして、メニュー送信部17は、構成された自分メニューを、メニュー取得指示を送信してきた端末装置2に送信する。なお、送信される自分メニューは、図12の情報をすべて含んでも良いし、図12の情報のうちの一部の情報を含んでも良い。
次に、端末装置2の端末受信部23は、サーバ装置1から自分メニューを受信する。そして、端末出力部24は、端末受信部23が受信した情報を出力する。ここで、出力された自分メニューの例が図13である。なお、図13において、自分が料理を食べた日やレストラン名も表示されている。また、自分メニューにおいて、図12の情報のうち、いかなる情報を表示しても良い。
(3)自分メニューを呼び出し、注文する
以下、注文装置3から自分メニューを呼び出し、当該自分メニューを用いて、料理を注文する処理について説明する。
今、「2.自分の飲食情報の利用」の「(1)自分の現在位置に適合した自分メニューを呼び出し、閲覧する」で説明した処理が行われ、ユーザID「U001」で識別されるユーザの注文装置3に、図11の自分メニューが出力されている、とする。なお、ユーザID「U001」で識別されるユーザは、現在、レストランID=R001」で識別されるレストラン「RES−XXX」に居る。なお、図11の自分メニューの各項目は選択可能になっている。また、図11の自分メニューの情報は、レストランのURL「http://www.XXX.jp」、注文サーバアドレス「190.188.2.56」等を有する、とする。
次に、ユーザは、図11の自分メニューから、「1.ステーキ(5/13) 2400」の項目を選択した、とする。すると、図14に示すように、「1.ステーキ(5/13) 2400」の項目にフォーカスが当てられ、1401の操作用メニューが出力される。なお、操作用メニューの情報は、注文装置3を構成するメニュー格納部30に格納されている、とする。
そして、ユーザは、1401の操作用メニューの中の「注文」項目を選択した、とする。すると、注文受付部31は、「1.ステーキ(5/13) 2400」に対応する料理の注文を示す注文情報を受け付ける。ここで、注文情報は、「メニューID:2,食事内容情報:ステーキ,価格:2400」を有する。なお、図示しないが、「メニューID:2」の情報は、図7等の食事情報に含まれている、とする。
次に、注文送信部32は、注文受付部31が受け付けた注文情報を、本レストラン内の他の装置(例えば、厨房に設置された端末)に送信する。なお、この送信処理により、注文が確定する。
次に、注文送信部32は、レストラン識別子「R001」およびユーザ識別子「U001」を取得し、当該レストラン識別子「R001」、ユーザ識別子「U001」、および食事内容情報「ステーキ」等を用いて、飲食情報を構成する。そして、注文送信部32は、当該飲食情報をサーバ装置1に送信する。
サーバ装置1は、当該飲食情報を受信し、蓄積する。なお、かかるサーバ装置1の処理は、上述したので、処理の詳細説明は省略する。
以上の処理により、自分メニューを呼び出し、当該自分メニューを注文に利用できる。
(4)自分メニューを呼び出し、購入する
以下、ユーザの端末装置2から自分メニューを呼び出し、当該自分メニューを用いて、ワインや料理に関する物品を購入する処理について説明する。
今、「2.自分の飲食情報の利用」の「(2)自分の現在位置の情報を利用しないで、自分メニューを呼び出し、閲覧する」で説明した処理が行われ、ユーザID「U001」で識別されるユーザの端末装置2に、図13の自分メニューが出力されている、とする。なお、ユーザID「U001」で識別されるユーザは、現在、レストランID=R001」で識別されるレストラン「RES−XXX」に居る。なお、図13の自分メニューの各項目は選択可能になっている。また、図13の自分メニューの情報は、レストランのURL「http://www.XXX.jp」等を有する、とする。
次に、ユーザは、図13の自分メニューから、「4.ワインA(RES−XXX,5/14) 3800」の項目を選択した、とする。すると、図15に示すように、「4.ワインA(RES−XXX,5/14) 3800」の項目にフォーカスが当てられ、1501の操作用メニューが出力される。なお、操作用メニューの情報は、端末装置2に格納されている、とする。
そして、ユーザは、1501の操作用メニューの中の「購入」項目を選択した、とする。すると、端末受付部21は、「4.ワインA(RES−XXX,5/14) 3800」に対応するワインの購入指示を受け付ける。なお、購入指示は、飲食情報識別子「レストランID:R001,メニューID:25」を有する、とする。「25」は、ワインAのメニューIDである。また、図13の自分メニューの項目「4.ワインA(RES−XXX,5/14) 3800」に対応付けて、自分メニューの情報は飲食情報識別子「レストランID:R001,メニューID:25」を有する、とする。そして、端末受付部21は、送信する購入指示「購入 レストランID:R001,メニューID:25」を構成する。
次に、端末送信部22は、受け付けられた購入指示「購入 レストランID:R001,メニューID:25」をサーバ装置1に送信する。
次に、サーバ装置1の指示受信部14は、端末装置2から、当該購入指示を受信する。次に、検索部18は、受信された購入指示が有する飲食情報識別子「レストランID:R001,メニューID:25」を取得する。
次に、検索部18は、取得した飲食情報識別子と対になる画像(ワインのラベル画像)を、飲食情報管理表から取得する。なお、検索部18は、ワイン購入の検索時に、ワインの画像からラベル領域を抽出し、ラベル画像を取得し、当該ラベル画像を検索に用いることは好適である。
次に、検索部18は、取得したワインのラベル画像を用いて、ワインのラベル画像を格納している画像データベースを検索する。なお、画像データベースは、ワインのラベル画像と、当該ワインを販売するWebページを識別するWebページ識別子(例えば、URIやURLなど)とを有するレコードを多数、格納している。なお、ここでの画像検索のアルゴリズムは問わない。また、本画像データベースは、どのように構築しても良い。人手により画像データベースを構築しても良いし、特定のWebページから、またはWeb上をクローリングして、Webページ識別子とラベル画像を取得して、画像データベースを構築しても良い。
そして、検索部18は、検索された画像と対になる1以上のWebページ識別子(例えば、URL)を取得する。
次に、検索部18は、取得した1以上のWebページ識別子(例えば、URL)を、購入指示を送信した端末装置2に送信する。
次に、端末装置2の端末受信部23は、1以上のWebページ識別子を受信する。そして、端末出力部24は、受信された1以上のWebページ識別子を出力する。以後、ユーザは、Webページ識別子を選択する。そして、端末装置2は、ワインの購入のためのWebページを出力する。次に、ユーザは、当該Webページに対して、ワインを購入する操作を行う。
以上の処理により、ユーザが過去に飲んで美味しかったワインを容易に購入できる。
以上、本実施の形態によれば、自分が食事をした食事内容の情報を用いて、自分用のメニューを構成し、利用できる。
また、本実施の形態によれば、料理を注文したり、食事の決済をしたりすることにより、自動的に食事をした食事内容の情報が登録され、当該登録された食事内容の情報を用いて、自分用のメニューを構成し、利用できる。
また、本実施の形態によれば、登録された自分メニューを用いて、料理の注文をしたり、購入をしたりできる。
なお、本実施の形態によれば、本実施の形態における処理は、ソフトウェアで実現しても良い。そして、このソフトウェアをソフトウェアダウンロード等により配布しても良い。また、このソフトウェアをCD−ROMなどの記録媒体に記録して流布しても良い。なお、このことは、本明細書における他の実施の形態においても該当する。なお、本実施の形態におけるサーバ装置等を実現するソフトウェアは、以下のようなプログラムである。つまり、このプログラムは、コンピュータがアクセス可能な記録媒体は、ユーザが食べた食事に関する情報であり、食事の内容を示す食事内容情報と食事をしたレストランを識別するレストラン識別子とを有する食事情報、および当該ユーザを識別するユーザ識別子を有する1以上の飲食情報を格納し得る飲食情報格納部を有し、コンピュータを、1以上の端末装置から1以上の飲食情報を受信する飲食情報受信部と、前記1以上の飲食情報を前記飲食情報格納部に蓄積する飲食情報蓄積部と、1以上の端末装置からユーザが食べた食事のメニューを取得する指示であり、ユーザ識別子を有する指示であるメニュー取得指示を受信する指示受信部と、前記メニュー取得指示に含まれるユーザ識別子を有する2以上の飲食情報を用いて、食事のメニューである自分メニューを構成するメニュー構成部と、前記メニュー取得指示を送信してきた端末装置に前記自分メニューを送信するメニュー送信部として機能させるためのプログラム、である。
また、上記プログラムにおいて、記録媒体は、食事を識別するメニュー識別子と当該メニュー識別子で識別される食事の食事内容情報とを有する1以上のメニュー情報と、レストラン識別子とを有する1以上のレストラン情報を格納し得るレストラン情報格納部をさらに具備し、
前記飲食情報受信部は、
前記レストラン情報格納部に格納されているレストラン識別子を含む飲食情報を受信する場合、および前記レストラン情報格納部に格納されているレストラン識別子を含まない飲食情報を受信する場合があり、
前記飲食情報格納部の飲食情報がレストラン識別子を含む場合と含まない場合とで、処理が異なる
ものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記飲食情報受信部は、食事を注文する注文装置に入力された食事内容情報を有する飲食情報を、前記注文装置から受信するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記飲食情報受信部は、決済を行う決済装置に入力された食事内容情報を有する飲食情報を、前記決済装置から受信するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記飲食情報蓄積部は、予め決められた条件を満たさない飲食情報は前記飲食情報格納部に蓄積しないものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記指示受信部は、ユーザ識別子と、当該ユーザ識別子で識別されるユーザの位置を示すユーザ位置情報を有するメニュー取得指示を受信し、前記メニュー構成部は、前記ユーザ位置情報を用いて、前記ユーザが一のレストランに居るか否かを判断し、前記ユーザが一のレストランに居ると判断した場合は、当該一のレストランに対応する1以上の飲食情報であり、前記ユーザ識別子を有する1以上の飲食情報を用いて、食事のメニューである自分メニューを構成するものとして、コンピュータを機能させるプログラムであることは好適である。
また、上記プログラムにおいて、前記食事情報は、ワインのラベル画像を有し、前記指示受信部は、ワインを購入するための指示である購入指示を受信し、前記購入指示の受信に応じて、前記購入指示に対応する飲食情報が有するワインのラベル画像を用いて、当該ワインの購入のためのWebページ識別子を検索し、出力する検索部をさらに具備するものとして、コンピュータを機能させるプログラムであることは好適である。
また、図16は、本明細書で述べたプログラムを実行して、上述した種々の実施の形態のサーバ装置等を実現するコンピュータの外観を示す。上述の実施の形態は、コンピュータハードウェア及びその上で実行されるコンピュータプログラムで実現され得る。図16は、このコンピュータシステム300の概観図であり、図17は、システム300のブロック図である。
図16において、コンピュータシステム300は、CD−ROMドライブを含むコンピュータ301と、キーボード302と、マウス303と、モニタ304とを含む。
図17において、コンピュータ301は、CD−ROMドライブ3012に加えて、MPU3013と、MPU3013、CD−ROMドライブ3012に接続されたバス3014と、ブートアッププログラム等のプログラムを記憶するためのROM3015と、MPU3013に接続され、アプリケーションプログラムの命令を一時的に記憶するとともに一時記憶空間を提供するためのRAM3016と、アプリケーションプログラム、システムプログラム、及びデータを記憶するためのハードディスク3017とを含む。ここでは、図示しないが、コンピュータ301は、さらに、LANへの接続を提供するネットワークカードを含んでも良い。
コンピュータシステム300に、上述した実施の形態のサーバ装置等の機能を実行させるプログラムは、CD−ROM3101に記憶されて、CD−ROMドライブ3012に挿入され、さらにハードディスク3017に転送されても良い。これに代えて、プログラムは、図示しないネットワークを介してコンピュータ301に送信され、ハードディスク3017に記憶されても良い。プログラムは実行の際にRAM3016にロードされる。プログラムは、CD−ROM3101またはネットワークから直接、ロードされても良い。
プログラムは、コンピュータ301に、上述した実施の形態のサーバ装置等の機能を実行させるオペレーティングシステム(OS)、またはサードパーティープログラム等は、必ずしも含まなくても良い。プログラムは、制御された態様で適切な機能(モジュール)を呼び出し、所望の結果が得られるようにする命令の部分のみを含んでいれば良い。コンピュータシステム300がどのように動作するかは周知であり、詳細な説明は省略する。
なお、上記プログラムにおいて、情報を送信する送信ステップや、情報を受信する受信ステップなどでは、ハードウェアによって行われる処理、例えば、送信ステップにおけるモデムやインターフェースカードなどで行われる処理(ハードウェアでしか行われない処理)は含まれない。
また、上記プログラムを実行するコンピュータは、単数であってもよく、複数であってもよい。すなわち、集中処理を行ってもよく、あるいは分散処理を行ってもよい。
また、上記各実施の形態において、一の装置に存在する2以上の通信手段(端末情報送信部、端末情報受信部など)は、物理的に一の媒体で実現されても良いことは言うまでもない。
また、上記各実施の形態において、各処理(各機能)は、単一の装置(システム)によって集中処理されることによって実現されてもよく、あるいは、複数の装置によって分散処理されることによって実現されてもよい。
本発明は、以上の実施の形態に限定されることなく、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。