以下、実施形態として、本発明に係る予約支援装置について、図面を参照しつつ説明する。
<第1実施形態>
<1.予約支援装置の概要>
図1は、本発明の第1実施形態に係る予約支援装置の一例としての予約支援サーバ1が用いられる環境を説明するためのブロック図である。本実施形態においては、一例として、予約支援サーバ1がユーザとの対応を通じてゴルフ場の予約を行う場合について説明する。
予約支援サーバ1の詳細については後述する。図1に示すように、予約支援サーバ1は、インターネットなどの通信網NETを介して、外部管理サーバ3、マップサーバ4、予約サーバ5のそれぞれに対して通信可能になっている。また、予約支援サーバ1と端末装置2は、通信網NET及び外部管理サーバ3を介して通信可能になっている。
予約サーバ5は、プラン情報テーブル5a、空き枠情報テーブル5b、予約情報テーブル5c、及びコメント情報テーブル5dとを備えている。予約サーバ5は、各ゴルフ場に対応するゴルフ場端末(図示せず)と通信可能であり、プラン情報テーブル5a、空き枠情報テーブル5b、予約情報テーブル5c、及びコメント情報テーブル5dには、各ゴルフ情報ごとに区別されたプラン情報、空き枠情報、予約情報及びコメント情報がそれぞれ記憶されている。
図4にプラン情報テーブル5aの一例を示す。図4に示すように、プラン情報テーブル5aには、プラン名、条件、料金、曜日設定が記録されている。例えば、条件の一例としては、図4に示すように、2サムが保証されているか否か、即ち、2人で予約した場合、他の1人や2人と組み合わせにならないことを保証されているか否かが含まれる。その他にも、料金に昼食代が含まれているか、カート使用が可能か否か、及び、キャディ付きか否かが含まれている。曜日設定は、そのプランが平日用なのか土日祝日用なのかを示している。図4に示す例では、平日用のフィールドと、土日祝日用のフィールドが設けられており、フラグによって管理されている。つまり、平日用のフィールドのフラグが1の場合には、そのプランが平日用であり、土日祝日用のフィールドのフラグが1の場合には、そのプランが土日祝日用であることを示している。但し、上記のように2つのフィールドを設けなくても、1つのフィールドにおいて、フラグが0の場合にそのプランが平日用で、フラグが1の場合にそのプランが土日祝日用であると判断することとしてもよい。さらに、プランが平日用なのか土日祝日用なのかを区別する方法はフラグに限定されるものではなく、どのような方法でもよい。
図5に空き枠情報テーブル5bの一例を示す。空き枠情報テーブル5bには、図5に示すように、スタートIDごとに、日付、スタート時間、スタートコース、空き枠フラグ、及び1人予約枠フラグが関連付けられて記憶されている。空き枠フラグの値が1の場合には、空き枠があることを示しており、空き枠フラグの値が0の場合には、予約が入っていることを示している。
スタートコースのフィールドに示される「OUT」とは、ホール番号1のホールからラウンドが開始されることを示し、「IN」とは、ホール番号10のホールからラウンドが開始されることを示している。但し、ゴルフ場によっては、東コース(1〜9番)、西コース(1〜9番)、南コース(1〜9番)等となっていることもあり、この場合には空き枠情報テーブル5bのスタートホールのフィールドには、「東」、「西」、「南」、若しくはこれらを意味する記号等が記憶されることになる。一般的に、コースによって回る順番は決まっており、例えば東コースからスタートすれば後半は西コース、西コースからスタートすれば後半は南コース、南コースからスタートすれば後半は東コース等と決まっているため、スタートコースが特定されれば足りる。
なお、本実施形態では、図4に示すプラン情報と、図5に示す空き枠情報とは一対一で対応している訳ではなく、例えば、9月6日(平日)で空き枠フラグが1の枠を選択した場合には、図4に示すプラン情報のうち、曜日設定フラグが1のプランであれば、いずれのプランも選択が可能になっている。
1人予約枠フラグは、各空き枠が1人予約に対応しているかどうかを示すフラグである。本実施形態では、1人予約枠フラグが1であれば、その空き枠は1人予約に対応しており、1人予約枠フラグが0であれば、その空き枠は1人予約に対応していないことを示している。
図6に予約情報テーブル5cの一例を示す。予約情報テーブル5cには、図6に示すように、予約ID、予約者名、予約者UID、連絡先、スタートID、人数、同伴者名が記憶される。なお、これ以外の情報を記憶するようにしてもよい。図6において、同伴者名のフィールドに「null」となっているのは、まだ同伴者の名前が登録されていないことを示している。同伴者名は予約と同時に登録しても良いし、後から追加的に登録・変更してもよい。
予約情報テーブル5cにおいて予約IDが記憶されると、その予約IDとして記憶されたスタートIDに対応する空き枠情報テーブル5bの空き枠フラグは1から0に変更される。
図7にコメント情報テーブル5dの一例を示す。コメント情報テーブル5dには、図7に示すように、予約ID、プレーヤー1ID、プレーヤー1のコメント、プレーヤー2ID、プレーヤー2のコメント、プレーヤー3ID、プレーヤー3のコメント、プレーヤー4ID、プレーヤー4のコメントが記憶される。なお、これ以外の情報を記憶するようにしてもよい。
後述するように、1人予約を行うプレーヤーは、同じ枠に予約を行い、一緒にプレーすることになる他の1人予約を行うプレーヤーに対してコメントを残すことができる。そこで、本実施形態では、1人予約を行ったプレーヤーのIDと、そのコメントとを関連付けてコメント情報テーブル5dに記憶させるようにしている。なお、図7において、プレーヤーIDのフィールドに「null」となっているのは、プレーヤーの予約登録がまだ行われていないことを示している。また、図7において、コメントのフィールドに「null」となっているのは、コメントが残されていないことを示している。
なお、図7のコメント情報テーブル5dに記憶される予約IDは、予約情報テーブル5cに記憶される予約IDと同一の予約IDである。
本実施形態における予約サーバ5は、各ゴルフ場のゴルフ場端末(図示せず)からアクセスが可能となっており、各ゴルフ場のゴルフ場IDと関連付けてプラン情報テーブル5a、空き枠情報テーブル5b、予約情報テーブル5c、及びコメント情報テーブル5dが記憶されている。
ユーザは、予約サーバ5に直接アクセスすることによってプラン情報や空き枠情報を参照し、予約を行うことが可能であるが、本実施形態では、後述するように、チャットサービスを介して予約を行うようになっている。詳しくは後述する。
なお、ゴルフ場端末(図示せず)は、各ゴルフ場に設けられており、各ゴルフ場においてゴルフ場の管理者等がゴルフ場端末を操作して設定されたプラン情報や枠情報などの内容が記憶されるようになっている。また、ゴルフ場端末は予約サーバ5と通信可能になっている。
ゴルフ場端末は、予約サーバ5に定期的にアクセスし、予約サーバ5に記憶された自分のゴルフ場の予約情報、空き枠情報を取得し、ゴルフ場端末に記憶された空き枠情報テーブル、及び予約情報テーブルを更新する。
外部管理サーバ3は、インターネットなどの通信網NETを介した音声通話、チャット、及び、メール等の、メッセージの送受信が可能なメッセージ送受信サービスを提供する。本実施形態において説明するチャットサービスは、端末装置2のユーザ本人と、他の1名以上のユーザとで、リアルタイムでテキストメッセージや音声メッセージを送受信するチャットサービスを想定している。
外部管理サーバ3には、ユーザ情報テーブル3aが備えられており、本実施形態におけるユーザ情報テーブル3aには、図8に示すように、ユーザアカウント、ユーザにより登録されたユーザ名、認証された電話番号情報、登録されたEメールアドレス、プロフィール画像が関連付けて記憶されている。また、ユーザ自身が設定したユーザIDがあれば、そのユーザIDも関連付けて記憶されている。なお、ユーザアカウントは当該チャットサービスにユーザが登録したときに、外部管理サーバ3がユーザ毎に割り当てる識別子である。図8においては「UID」がユーザアカウントに該当する。また、電話番号またはメールアドレスが「null」となっているものは、該当する項目はユーザ情報テーブル3aに登録されていないことを示す。また、プロフィール画像は画像データへのリンク情報が記憶されている。
本実施形態では、後述する予約支援サーバ1が、チャットサービスにおける専用アカウントとして登録されており、チャットサービスにおいて他のユーザとの対話が可能になっている。つまり、あるユーザが前記専用アカウントと友達になると、外部管理サーバ3は当該ユーザと前記専用アカウントとの関連付けを行い、当該ユーザが端末装置2から送信したメッセージは、外部管理サーバ3を介して前記専用アカウントである予約支援サーバ1にて受信され、また、前記専用アカウントである予約支援サーバ1から送信したメッセージは、外部管理サーバ3を介して当該ユーザの端末装置2にて受信される。詳しくは後述する。
また同様に、一のユーザが他のユーザと友達になると、外部管理サーバ3は当該一のユーザと他のユーザとの関連付けを行い、当該一のユーザが端末装置2から送信したメッセージは、外部管理サーバ3を介して前記他のユーザの端末装置2にて受信され、また、前記他のユーザの端末装置2から送信したメッセージは、外部管理サーバ3を介して前記一のユーザの端末装置2にて受信される。詳しくは後述する。
マップサーバ4は、地図情報テーブル4aと施設情報テーブル4bとを備えている。地図情報テーブル4aには、位置情報(緯度経度情報)と関連付けて地図情報が記憶されている。施設情報テーブル4bには、位置情報(緯度経度情報)と関連付けて施設名称等の情報が関連付けて記憶されている。
マップサーバ4は、予約支援サーバ1から所定の要求を受信すると、この要求に関する処理を行うと共に、結果を予約支援サーバ1に送信する。所定の要求とは、上述のように住所情報から位置情報を特定する要求や、位置情報から所定範囲内の距離にあるゴルフ場を検索してリストを提示する要求である。これらの要求は、例えば所定のAPI(Application Program Interface)を用いて実行される。
端末装置2は、通信網NETを介した通信が可能であり、例えば、パーソナルコンピュータ、携帯電話機、スマートフォン、タブレット端末などが該当する。端末装置2には、通信網NET上で公開されているウェブページを表示可能なブラウザソフトウェアがインストールされており、ブラウザソフトウェアを用いることにより、HTMLデータ等を端末装置2上にウェブページとして表示させることができる。また、端末装置2には、外部管理サーバ3によって提供されるメッセージ送受信サービス用のアプリケーションソフトウェアが予めインストールされており、このアプリケーションソフトウェアを用いることにより、上述したチャットサービスを利用することが可能になっている。
端末装置2にはキーボード、あるいはタッチパネル等の情報入力部27が備えられており、この情報入力部27を利用して、ウェブページや前記メッセージ送受信サービス用のアプリケーションソフトウェアの入力欄等に文字データ等を入力することができる。また、この情報入力部27を利用して、予約に必要な情報の入力を行うことができる。端末装置2には、キーボード、あるいはタッチパネル等の申込み入力部28が備えられている。この申込み入力部28を利用して予約の申込みの入力を行うことが可能となっている。なお、図1においては、一つの端末装置2のみを示しているが、複数の端末装置2が通信網NETに接続されている。
予約支援サーバ1は、上述したように外部管理サーバ3によって提供されるメッセージ送受信サービスにおける専用アカウントとして登録されており、ユーザが端末装置2にインストールされたメッセージ送受信サービス用のアプリケーションソフトウェアを利用して前記専用アカウントと友達になり、当該アプリケーションソフトウェアを利用して前記専用アカウントにメッセージを送信した場合には、前記専用アカウントである予約支援サーバ1は、当該メッセージに応答することができる。
予約支援サーバ1は、問合わせ部10、応答部11、判断部12、受付部13、登録部14、空き枠検索部15、記憶部16、情報抽出部17、予約検出部18、及び住所検索部19とを備えている。問合わせ部10、応答部11、判断部12、受付部13、登録部14、空き枠検索部15、情報抽出部17、予約検出部18、及び住所検索部19は、予約支援サーバ1が予約支援サーバのプログラムを実行することにより発揮される機能ブロックである。
問合わせ部10は、ゴルフ場の予約に必要な情報の端末装置2における入力を促す。具体的には、後述するように端末装置2における予約人数の入力を促す。また、問合わせ部10は、後述する住所検索部19による検索結果としてユーザの住所に関する情報が抽出されなかった場合には、ユーザの住所に関する情報の端末装置2における入力を促す。さらに、問合わせ部10は、後述する受付部13により予約の申込みの入力を受け付けた場合には、他のユーザ宛ての情報の端末装置2における入力を促す。
応答部11は、端末装置2における入力の内容を解析し、解析結果に応じて所定の内容を応答したり、解析結果として、一のユーザから送信されたメッセージの宛先として自身(予約支援サーバ1)以外の他のユーザが含まれていることが検出された場合、登録部14において仮登録された情報を当該一のユーザ及び当該他のユーザに対して応答したりする。この場合、応答部11は応答する内容(報告文)を作成する機能も有する。また、応答部11は、後述する空き枠検索部15による検索結果として空き枠が抽出された場合には、空き枠の内容を端末装置2に対して応答するようになっている。さらに、応答部11は、予約に必要な情報の項目について候補を提示する。また、後述する予約検出部18により他のユーザの予約の内容が検出された場合に、空き枠の内容として、他のユーザの登録された予約の内容を端末装置2に応答可能となっている。また、応答部11は、他のユーザの登録された予約の内容と共に、後述する情報抽出部17により抽出された他のユーザについての情報を端末装置2に応答可能となっている。
判断部12は、一例として、ゴルフ場の予約に必要な情報が充足されたか否かを判断する。また、判断部12は、予約に必要な情報が充足されていないと判断した場合には、必要な情報の入力を促す内容を応答部11により応答させる。さらに、判断部12は、予約に必要な情報のうち予約人数が1人かどうかを判断する。
受付部13は、応答部11により応答した空き枠に対する端末装置2における予約の申込みの入力を受け付ける。また、受付部13は、応答部11により応答した空き枠に対する非承認の入力についても受け付ける。
登録部14は、判断部12により予約に必要な情報が充足されたと判断され、受付部13により予約の申込みの入力を受け付けた場合には、予約に必要な情報を予約支援サーバ1において仮登録し、または、予約サーバ5に登録する。また、応答部11により、仮登録されている情報が否定されたと判断された場合には、登録部14は当該仮登録された情報を削除する。
空き枠検索部15は、判断部12により予約人数が1人であると判断された場合には、1人での予約が可能な空き枠を検索する。また、空き枠検索部15は、後述する住所検索部19による検索結果としてユーザの住所に関する情報が抽出された場合、あるいは、端末装置2においてユーザの住所に関する情報が入力された場合には、ユーザの住所に関する情報に基づいて、予約における地域的条件を設定し、設定した地域的条件に基づいて1人での予約が可能な空き枠を検索する。さらに、空き枠検索部15は、検索を行う日を基準として予め設定された規則に基づいて日程的条件(例えば、直近の土曜日等)を設定し、設定した日程的条件に基づいて1人での予約が可能な空き枠を検索する。また、空き枠検索部15は、後述する予約検出部18による検索結果としてユーザによる過去の予約の内容が抽出された場合には、抽出された過去の予約の内容に含まれる会場についての空き枠の中から、1人での予約が可能な空き枠を検索する。
記憶部16には、予約支援サーバ1を制御するプログラムが記憶され、さらに、上述した応答のための文例等が記憶されている。
情報抽出部17は、空き枠検索部15による検索結果として抽出された空き枠の中に、空き枠の定員に満たない1人での予約が可能な空き枠が存在する場合には、その空き枠について既に予約の登録を行っている他のユーザについての情報を抽出する。
予約検出部18は、所定の場合に予約サーバ5の予約情報テーブル5cに記憶されている予約情報を検索し、特定の予約情報を検出する。例えば、一のユーザがゴルフを1人でプレーするための予約(すなわち1人予約)を行う場合、所定の範囲、例えば一のユーザの予約における場所と日付が同じ範囲、において、1人予約をしている他のユーザの予約情報を検索する。また、予約検出部18は、過去に登録された予約の内容の中に、前記ユーザによる過去の予約の内容を検索する。
住所検索部19は、ユーザの住所に関する情報を検索する。
図2に予約支援サーバ1の構成を示す。この図に示すように、予約支援サーバ1は、装置全体を制御するCPU(Central Processing Unit)30、CPU30の作業領域として機能するRAM(Random Access Memory)31、ブートプログラムなどを記憶したROM(Read Only Memory)32、各種のプログラムやデータを記憶するハードディスクドライブ(HDD)33、キーボードやマウスなどを含む入力部34、画像を表示するディスプレイ35、通信網NETを介して外部の装置と通信を行う通信インターフェース36、及びコンパクトディスクなどの情報記録媒体を読み取る読取装置37を備える。HDD33は、上述した記憶部16の一例である。
本実施形態において、CPU30は問合わせ部10、応答部11、判断部12、受付部13、登録部14、空き枠検索部15、情報抽出部17、予約検出部18、及び住所検索部19として動作し得る。
また、外部管理サーバ3、予約サーバ5も予約支援サーバ1と同様の構成である。
図3に端末装置2の構成を示す。この図に示すように、端末装置2は、装置全体を制御するCPU(Central Processing Unit)40、CPU40の作業領域として機能するRAM(Random Access Memory)31、ブートプログラムなどを記憶したROM(Read Only Memory)42、各種のプログラムやデータを記憶する記憶装置43、キーボード、マウス、タッチパネルなどを含む入力部44、画像を表示する液晶ディスプレイ等のディスプレイ45、及び通信網NETを介して外部の装置と通信を行う通信インターフェース46を備える。
<2:メッセージ送受信アプリケーション>
次に、外部管理サーバ3によって提供されるメッセージ送受信サービス用のメッセージ送受信アプリケーションについて説明する。メッセージ送受信アプリケーションは、端末装置2にインストールされる。メッセージ送受信アプリケーションを端末装置2上で起動すると、図9に示すようなフレンド表示画面P1が表示される。本実施形態においては、メッセージ送受信アプリケーションの起動時のデフォルト選択メニューがフレンド表示画面P1に設定されている。
フレンド表示画面P1は、タイトル表示領域A1、フレンド表示領域A2、プロフィール画像表示領域A3、ニックネーム表示領域A4、メニューバーA5を備えている。
タイトル表示領域A1には、そのページのタイトルが表示される。図9に示すフレンド表示画面P1は、メッセージ送受信アプリケーションにおいてフレンド登録しているフレンドを一覧表示する画面であり、タイトル表示領域A1には、現在選択中のメニューのタイトルが表示されるようになっており、図9の例では「フレンド」と表示される。
フレンド表示領域A2には、メッセージ送受信アプリケーションにおいてフレンド登録しているフレンドが、プロフィール画像とニックネームにより一覧表示される。図9に示す例では、一部のフレンドが表示されており、画面をスクロールすることにより、残りのフレンドも表示される。
また、外部管理サーバ3によって提供されるメッセージ送受信サービスの専用アカウントとして登録されているゴルフ予約A10もフレンドとして登録されている。このゴルフ予約A10を選択してメッセージを送信すると、予約支援サーバ1からの応答が行われることになる。
プロフィール画像表示領域A3には、フレンドが登録したプロフィール画像が表示される。ニックネーム表示領域A4には、フレンドが登録したニックネームが表示される。
メニューバーA5には、フレンドアイコンA6、チャットアイコンA7、お知らせアイコンA8、設定アイコンA9が表示される。それぞれのアイコンが押下されることにより、それぞれのアイコンに対応するページにジャンプするようになっている。フレンドアイコンA6が押下されると、図9に示すフレンド表示画面P1が表示され、チャットアイコンA7が押下されると、後述するチャット画面が表示される。お知らせアイコンA8が押下されると、メッセージ送受信アプリケーションの提供企業等からのお知らせを表示するページ(図示せず)にジャンプする。設定アイコンA9が押下されると、プロフィール画像やニックネーム等の各種設定が可能な設定ページ(図示せず)にジャンプする。
<3:チャット処理>
次に、本実施形態のメッセージ送受信アプリケーションにおけるチャット処理について説明する。図9に示すメニューバーA5のチャットアイコンA7が押下されると、図10に示すチャット画面P2が表示される。
チャット画面P2は、タイトル表示領域B1、フレンド表示領域B2、プロフィール画像表示領域B3、ニックネーム表示領域B4、前回メッセージ表示領域B5、前回メッセージ投稿日時表示領域B6、フレンド表示画面P1と共通のメニューバーA5を備えている。
タイトル表示領域B1には、そのページのタイトルが表示される。図10に示すチャット画面P2は、メッセージ送受信アプリケーションにおいてチャットを行う相手のフレンドを一覧表示する画面であり、タイトル表示領域B1には、「チャット」と表示される。
フレンド表示領域B2には、本実施形態では、ユーザのフレンドであって且つユーザとのチャットの記録が端末装置2から削除されていないフレンドが一覧表示される。一方、図9に示すフレンド表示画面P1はチャット履歴をユーザ別に一覧表示する画面である。
図10に示す例では、一部のフレンドが表示されており、画面をスクロールすることにより、残りのフレンドも表示される。表示の順序は、最後にチャットを行った日時が新しい順になっている。
プロフィール画像表示領域B3には、フレンドが登録したプロフィール画像が表示される。ニックネーム表示領域B4には、フレンドが登録したニックネームが表示される。
前回メッセージ表示領域B5には、表示されているフレンドとのチャットにおいて、当該フレンドまたは自身が最後に投稿したメッセージが表示される。但し、表示可能な字数が限られているので、表示可能な字数を超える部分の表示は省略される。
前回メッセージ投稿日時表示領域B6には、表示されているフレンドとのチャットにおいて、当該フレンドまたは自身が最後にメッセージ投稿した日時が表示される。但し、チャット画面P2を表示している日とメッセージの投稿日が同日の場合には、投稿時間のみが表示される。また、チャット画面P2を表示している日から1週間以内であれば曜日が表示される。チャット画面P2を表示している日から1週間よりも前の投稿の場合には、月日が表示される。
メニューバーA5は、フレンド表示画面P1と共通なので説明を省略する。
チャット画面P2に表示されるフレンドに対してメッセージを送信する場合には、メッセージを送信したいフレンドのプロフィール画像及びニックネーム等の表示枠内の部分を押下する。このプロフィール画像及びニックネーム等の表示枠内の部分が押下されると、図11に示すメッセージ表示画面P3が表示される。
メッセージ表示画面P3は、タイトル表示領域C1、メッセージ表示領域C2、相手側プロフィール画像C3、相手側メッセージ表示枠C4、本人側メッセージ表示枠C5、コマンドバーC6、及び機能ボタンC11を備えている。
タイトル表示領域C1には、そのページのタイトルが表示される。図11に示すメッセージ表示画面P3は、本人と相手側とで投稿されたメッセージを表示する画面であるが、図11の例では、チャット画面P2と同様に、タイトル表示領域C1には「チャット」と表示される。
メッセージ表示領域C2には、相手側プロフィール画像C3と、相手側メッセージ表示枠C4と、本人側メッセージ表示枠C5とが表示される。相手側プロフィール画像C3はチャットを行っている相手のプロフィール画像であり、相手側メッセージ表示枠C4には相手が投稿したメッセージが表示される。本人側メッセージ表示枠C5には、本人が投稿したメッセージが表示される。また、各メッセージには送信された時刻が表示されるとともに、本人側メッセージについては、送信したメッセージが送信相手に読まれた場合(少なくとも本人側メッセージを送信相手が表示した場合)を示す「既読」の文言が表示される。
メッセージ表示領域C2は、上から下に向かって、時系列に沿って投稿されたメッセージが表示される。すなわち、新しいメッセージが投稿されると、メッセージ表示領域C2の一番下の部分に当該新しく投稿されたメッセージが表示される。したがって、それまで表示されていた相手側プロフィール画像C3、相手側メッセージ表示枠C4及び本人側メッセージ表示枠C5は、順次上側にシフトして表示される。メッセージ表示領域C2の一番上の部分に表示されていた相手側プロフィール画像C3及び相手側メッセージ表示枠C4、または、本人側メッセージ表示枠C5は、シフトによってメッセージ表示領域C2から見えなくなる。しかし、画面をスクロールすることにより、それまでの投稿メッセージを全て確認することができるようになっている。
コマンドバーC6には、設定アイコンC7、絵文字アイコンC8、メッセージ書き込み枠C9、送信ボタンC10が表示される。
設定アイコンC7が押下されると、写真や動画の添付、あるいは、音声メッセージの添付等が可能になっている。絵文字アイコンC8が押下されると、絵文字を選択する画面(図示せず)が表示され、メッセージ内に挿入する絵文字を選択することができる。
メッセージ書き込み枠C9が押下されると、文字入力等を行うためのキーボード画面(図示せず)が表示され、キーボード画面を操作することによりメッセージ書き込み枠C9内にメッセージを書き込むことができる。
メッセージ書き込み枠C9内にメッセージを書き込んだ状態で送信ボタンC10が押下されると、メッセージ書き込み枠C9内に書き込んだメッセージが、メッセージ表示領域C2の一番下の部分の本人側メッセージ表示枠C5に表示され、端末装置2から外部管理サーバ3に送信され、当該メッセージが外部管理サーバ3を経由して相手側の端末装置2に送信される。
機能ボタンC11が押下されると、チャットに招待するに友達を選択することが可能となっている。詳しくは後述する。
<4.予約支援サーバの動作>
次に、図12乃至図24を参照して、以上のようなメッセージ送受信アプリケーションにおけるチャット処理を利用した本実施形態の予約支援サーバ1による予約支援動作について説明する。なお、図12乃至図20に示す例では、メッセージが投稿された日付や時間、「既読」の文言の記載を省略している。
<4−1:予約支援サーバの開始1>
まず、図21のフローチャートを参照して、予約支援サーバの開始処理について説明する。メッセージ送受信アプリケーションにおいて、専用アカウントであるゴルフ予約A10をフレンド登録した直後においては、図12に示すように、予約支援サーバ1側から、フレンド登録へのお礼メッセージC19と人数入力要求メッセージC20が送信される。図12の例では、メッセージ表示領域C2に、「フレンド登録ありがとう!どんどん活用してくださいね。」というメッセージと、「ゴルフの予約をする人数を教えてくださいね。」というメッセージが表示される。このメッセージは、記憶部16の文例テーブルに予め記憶されており、状況に応じて適切な文例を文例テーブルから読み取って、応答部11が送信するようになっている。
ゴルフ場の予約を希望するユーザが、この人数入力要求メッセージC20に対して、図13に示すように「1人で行く」というメッセージC80、あるいは、「1人予約」等のようなメッセージを送信し、このメッセージを予約支援サーバ1のCPU30が受信した場合には、予約支援サーバ1のCPU30は、ユーザから予約したい旨のメッセージを受信したと判断し(S1300)、ユーザに対して人数の入力を要求するメッセージを送信する(S1301)。但し、図13に示す例では、最初に人数の入力が行われているので、このような場合には、ステップS1301の人数の入力を要求するメッセージの送信処理は省略する。
しかし、最初に人数の入力が行われず、例えば、「予約したい!」というメッセージが送信された場合、あるいは、「予約」と送信された場合、もしくは、「tt」等の意味のないメッセージが送信され、予約支援サーバ1のCPU30において受信した場合は、予約支援サーバ1のCPU30は、予約したい旨のメッセージを受信したと判断し(S1300)、「ゴルフの予約をする人数を教えてください。」のようなメッセージをユーザに対して送信する(S1301)。
「ゴルフの予約をする人数を教えてください。」のようなメッセージに対して、図13のようにユーザから「1人で行く」等のメッセージを受信した場合には、予約支援サーバ1のCPU30は、受信した人数が1人かどうかを判断する(S1302)。なお、「ゴルフの予約をする人数を教えてください。」のようなメッセージに対しては、図13のように「1人で行く」等の文章の形で答えてもよいし、単に「1」のように数字で答えてもよい。このような場合でも、予約支援サーバ1のCPU30は、人数についての入力があったものとして処理を行うようになっている。
予約支援サーバ1のCPU30は、入力された人数が1人ではないと判断した場合には(S1302:NO)、図22乃至図24に示す処理に移行するが、これらの処理については後述する。
一方、予約支援サーバ1のCPU30は、入力された人数が1人であると判断した場合には(S1302:YES)、1人予約フラグをオン状態にする(S1303)。1人予約フラグは、図22に示す空き枠抽出処理において、1人予約枠に限定して空き枠を抽出するか、あるいは、1人予約枠を除外して空き枠を抽出するかの判断に用いられる。詳しくは後述する。
1人予約フラグをオン状態にした後は、予約支援サーバ1のCPU30は、このユーザが過去に住所を入力したことがあるかどうか、つまり、住所履歴があるかどうかを判断する(S1304)。この住所履歴は、予約支援サーバ1の記憶部16にユーザIDと関連付けて記憶されていてもよいし、予約サーバ5の予約情報テーブル5cに予約IDと関連付けて記憶されていてもよい。また、外部管理サーバ3に記憶されていてもよい。
予約支援サーバ1のCPU30は、住所履歴がないと判断した場合には(S1304:NO)、図13に示すように、住所入力を要求するメッセージC81を表示させる(S1305)。住所入力を要求するメッセージC81は、図13に示すように、住所を直接入力させる内容でもよいし、また、GPSの位置情報を入力させる内容でもよい。
予約支援サーバ1のCPU30は、図13に示すように、ユーザにより住所に関する入力が行われたと判断した場合には、入力された住所に基づいて、当該住所に近いゴルフ場の検索を行う(S1306)。また、予約支援サーバ1のCPU30は、ステップS1304において、住所履歴があると判断した場合には(S1304:YES)、図14に示すように、メッセージC92のように、ユーザに対して住所の入力を要求することなく、以前に予約した際の住所に基づいて、当該住所に近いゴルフ場の検索を行う旨のメッセージC92を表示させ、以前に予約した際の住所に近いゴルフ場の検索を行う(S1306)。
予約支援サーバ1のCPU30は、予め記憶しておいた優先都市(地域)のうち、ユーザの住所に近い優先都市(地域)を基準にゴルフ場を検索する。具体的には、予約支援サーバ1のCPU30は、APIを用いてマップサーバ4にアクセスし、マップサーバ4の施設情報テーブル4bから、当該優先都市(地域)内で位置登録されているゴルフ場を検索し、そのうちからお勧めのゴルフ場を抽出する。この優先都市(地域)は、例えばユーザの住所から所定距離内にある都市(地域)であって、予め優先順位が設定された都市(地域)としたり、ユーザの住所から所定距離内になる都市(地域)であって、当該都市(地域)内に存在するゴルフ場の数が最も多い都市(地域)順に優先都市(地域)を決定したりしてもよい。所定の法則に従って優先都市(地域)が決定されれば、その方法は問わないものである。
マップサーバ4のCPUは、条件に合致するゴルフ場が抽出された場合には、これらのゴルフ場リストにして予約支援サーバ1に送信する。このリストには、例えば、ゴルフ場名と、各ゴルフ場の前記住所からの距離等の情報が含まれている。
予約支援サーバ1のCPU30は、マップサーバ4からゴルフ場のリストを受信すると、前記住所に最も近いゴルフ場から順に、1人予約者がいる空き枠、つまり、1人予約が可能な枠で、まだ定員に達していない枠の検索を行う(S1307)。予約支援サーバ1のCPU30は、1人予約者がいる空き枠の検索を行う際、日程的条件を予め設定された規則に基づいて設定する(S1307)。予め設定された規則とは、例えば、検索を行う日を基準として、直近の土曜日とする。但し、本発明はこのような例に限定されるものではなく、直近の日曜日等、他の曜日であってもよい。
予約支援サーバ1のCPU30は、まず、前記住所に最も近いゴルフ場、上述のように設定された日程的条件、及び、1人予約可能なことを検索条件として、予約サーバ5に対して検索要求を送信する。なお、前記住所に最も近いゴルフ場は、本実施形態では前記住所から最も所要時間が短いゴルフ場とするが、前記住所から最も距離が近いゴルフ場としてもよい。
予約サーバ5のCPUは、検索要求及び検索条件を受信すると、検索条件として指定されたゴルフ場の空き枠情報テーブル5bを参照し、前記日程的条件に合致し、空き枠フラグが1で、1人予約枠フラグが1の枠を検索する。空き枠フラグが1の場合とは、当該枠がまだ定員に達しておらず、予約が可能な場合である。1人予約枠フラグが1の場合とは、1人予約が可能な枠である場合である。
予約サーバ5のCPUは、前記検索の結果、条件に合致する空き枠があった場合には、スタートIDを含む当該空き枠の情報を読み取る。次に、予約サーバ5のCPUは、予約情報テーブル5cを参照し、読み取ったスタートIDを含む予約情報の予約者名の項目に予約者の氏名が登録されているかどうかを判断する。判断の結果、予約者名の項目に予約者の氏名が登録されている場合には、予約サーバ5のCPUは、1人予約者がいる空き枠があったと判断し、当該予約者の識別情報UIDを前記予約情報から読み取る。さらに、予約サーバ5のCPUは、当該予約情報に同伴者名が登録されているかどうかを判断し、同伴者名が登録されている場合には、当該同伴者の識別情報UIDを前記予約情報から読み取る。なお、同伴者の識別情報UIDについても、予約情報テーブル5cに記憶されているものとする。また、1人予約者がいるか否かは識別情報UIDの登録の有無により判断してもよい。
そして、予約サーバ5のCPUは、コメント情報テーブル5dを参照し、読み取った予約者または同伴者のコメントが登録されているかどうかを判断する。コメントが登録されていた場合には、コメントの内容を読み取る。
また、予約サーバ5のCPUは、前記予約情報からプランIDを読み取り、プラン情報テーブル5aを参照して、当該プランIDに対応するプラン情報を読み取る。
予約サーバ5のCPUは、以上のように読み取った種々の情報を、予約支援サーバ1に送信する。
予約支援サーバ1のCPU30は、予約サーバ5から前記情報を受信した場合には、前記条件に合致する1人予約者がいる空き枠があったと判断する(S1307:YES)。
そして、予約支援サーバ1のCPU30は、受信した情報に基づいて、図13に示す空き枠メッセージC83のように、お勧めの空き枠の内容を表示させるための情報を端末装置2に送信する(S1308)。この空き枠に、既に他の1人予約者の予約が行われているので、予約支援サーバ1のCPU30は、当該他の1人予約者の情報を、メッセージC84のように提示する。他の1人予約者の情報には、性別、年齢を含んでもよいし、他の1人予約者がコメントを残している場合には、メッセージC84のようにコメントを表示させる情報を端末装置2に送信してもよい。また、メッセージC84のように、この空き枠に参加するかどうかを問い合わせるメッセージを含ませてもよい。また、性別及び年齢の情報、コメント、及び参加するかどうかを問い合わせるメッセージを、それぞれ別のメッセージとして表示させる情報を端末装置2に送信してもよい
予約支援サーバ1のCPU30は、提示した空き枠に対して、図13に示すようにユーザから参加の承認メッセージC85(肯定的なメッセージ)を入力したと判断した場合には(S1309:YES)、このユーザを当該空き枠に登録する予約登録の処理を行い(S1310)、図13に示すように、予約完了メッセージC86を表示させる情報を端末装置2に送信する。しかし、予約支援サーバ1のCPU30は、ユーザが、図15に示すように、「いいえ。」等の前記空き枠に対する参加を承認しないメッセージC93を入力したと判断した場合には(S1309:NO)、図22に示す処理に移行して、日程の入力要求のメッセージC94を表示させて、他の空き枠の検索を行う。詳しくは後述する。
次に、予約支援サーバ1のCPU30は、図13に示すように、ユーザ対して、他の1人予約者に対してコメントを残すかどうかを問い合わせる確認メッセージC87を表示させる情報を端末装置2に送信する。その結果、予約支援サーバ1のCPU30は、図13に示すように、ユーザがコメントを残す旨のメッセージC88を入力したと判断した場合には(S1311:YES)、コメントの入力を要求するメッセージC89を表示させる情報を端末装置2に送信する。そして、図13に示すように、ユーザがコメントC90を入力した場合には、予約支援サーバ1のCPU30は、入力されたコメントをコメント情報テーブル5dに記憶させる(S1312)。そして、予約支援サーバ1のCPU30は、図13に示すように、コメントの登録が完了した旨のメッセージと共に、ユーザが予約情報を確認することができるように、予約情報のリンク先を貼り付けたメッセージC91を表示させて処理を終了する。
しかし、予約支援サーバ1のCPU30は、ユーザが、図16に示すように、コメントを残さない旨のメッセージC95を入力したと判断した場合には(S1311:NO)、図16に示すように、予約の登録が完了した旨のメッセージと共に、ユーザが予約情報を確認することができるように、予約情報のリンク先を貼り付けたメッセージC96を表示させる情報を端末装置2に送信して処理を終了する。
予約支援サーバ1のCPU30は、前記ステップS1307において、予約サーバ5から条件に合致する空き枠がない旨の回答を受信した場合には、前記住所に最も近いゴルフ場においては、条件に合致する1人予約者がいる空き枠がないと判断し(S1307:NO)、前記マップサーバ4から受信したリストにある全てのゴルフ場について、条件に合致する1人予約者がいる空き枠の検索を行ったかどうかを判断する(S1313)。
予約支援サーバ1のCPU30は、まだ検索を行っていないゴルフ場があると判断した場合には(S1313:NO)、リストのうち、次に前記住所に近いゴルフ場を選択する(S1314)。そして、予約支援サーバ1のCPU30は、当該ゴルフ場について、上述と同様の1人予約者がいる空き枠の検索要求を、予約サーバ5に対して送信する。その結果、上述と同様の検索処理が行われ、条件に合致する空き枠があった場合には、ステップS1308〜S1312の処理を行う。
しかし、予約支援サーバ1のCPU30は、前記マップサーバ4から受信したリストにある全てのゴルフ場について、条件に合致する1人予約者がいる空き枠の検索を行ったと判断した場合には(S1313:YES)、次に、前記住所に最も近いゴルフ場から順に、1人予約枠の空き枠があるかどうかを判断する(S1315)。つまり、1人予約が可能な空き枠であるが、まだ予約者のいない空き枠があるかどうかを判断する。具体的には、予約支援サーバ1のCPU30は、前記ゴルフ場、前記日程的条件、及び、1人予約が可能な空き枠でまだ予約者のいない空き枠を検索条件として、予約サーバ5に対して検索要求を送信する。
予約サーバ5は、上述と同様に、空き枠情報テーブル5b、及び、予約情報テーブル5cを参照し、1人予約が可能な空き枠で、予約情報テーブル5cの予約者名の項目がnullとなっている予約情報を検索する。検索の結果、条件に合致した空き枠があった場合には、予約サーバ5は、プラン情報テーブル5a、空き枠情報テーブル5b、及び、予約情報テーブル5cから読み取った情報を予約支援サーバ1に送信する。
予約支援サーバ1のCPU30は、これらの情報を予約サーバ5から受信すると、1人予約枠があったと判断し(S1315:YES)、受信した情報に基づいて、当該1人予約枠の内容を端末表示2に表示させる情報を端末装置2に送信して、予約を行うかどうかの問合わせを行う(S1316)。
予約支援サーバ1のCPU30は、提示した空き枠に対して、ユーザが予約の承認メッセージ(肯定的なメッセージ)を入力したと判断した場合には(S1316:YES)、このユーザを当該空き枠に登録する予約登録の処理を行い(S1310)、予約完了メッセージC86を表示させる。また、予約支援サーバ1のCPU30は、コメントを残すかどうかの問合わせを行い(S1311)、ユーザが肯定的なメッセージを入力したと判断した場合には(S1311:YES)、当該コメントを登録する(S1312)。また、予約支援サーバ1のCPU30は、ユーザが否定的なメッセージを入力したと判断した場合には(S1311:NO)、コメントを登録せずに処理を終了する。
また、予約支援サーバ1のCPU30は、ステップS1316において、ユーザが、「いいえ。」等の前記空き枠に対する予約を承認しないメッセージを入力したと判断した場合には(S1316:NO)、図22に示す処理に移行して、日程の入力要求のメッセージC94を表示させて、他の空き枠の検索を行う。詳しくは後述する。
予約支援サーバ1のCPU30は、前記ステップS1315において、予約サーバ5から条件に合致する空き枠がない旨の回答を受信した場合には、前記住所に最も近いゴルフ場においては、条件に合致する1人予約枠がないと判断し(S1315:NO)、前記マップサーバ4から受信したリストにある全てのゴルフ場について、条件に合致する1人予約枠の検索を行ったかどうかを判断する(S1317)。
予約支援サーバ1のCPU30は、まだ検索を行っていないゴルフ場があると判断した場合には(S1317:NO)、リストのうち、次に前記住所に近いゴルフ場を選択する(S1318)。そして、予約支援サーバ1のCPU30は、当該ゴルフ場について、上述と同様の1人予約枠の検索要求を、予約サーバ5に対して送信する。その結果、上述と同様の検索処理が行われ、条件に合致する空き枠があった場合には、ステップS1316〜S1312の処理を行う。
しかし、予約支援サーバ1のCPU30は、前記マップサーバ4から受信したリストにある全てのゴルフ場について、条件に合致する1人予約枠の検索を行ったと判断した場合には(S1317:YES)、図22に示す処理に移行して、日程の入力要求のメッセージC94を表示させて、他の空き枠の検索を行う。詳しくは後述する。
以上のように、本実施形態によれば、チャットアプリにおいてコンピュータとの対話形式で容易に1人予約を行うことができる。
<4−2:予約支援サーバの開始2>
次に、図22を参照して、予約支援サーバにおける次の段階の処理について説明する。予約支援サーバ1のCPU30は、図17に示すように、予約の人数が1人ではない旨のメッセージC97の入力が行われたと判断した場合(S1302:NO)、あるいは、図15に示すように、提示された空き枠に参加しない旨のメッセージC93の入力が行われたと判断した場合(S1309:NO)には、予約支援サーバ1のCPU30は、図22に示すように、日程の入力を要求するメッセージ(図17に示すメッセージC22、または、図15に示すメッセージC94)を表示させる(S100)。
予約支援サーバ1のCPU30は、入力内容を受信して、解析する処理を行う(S101)。図22乃至図24においては、ラベルLB1〜LB10が示されており、応答部11により解析した結果がこれらのラベルLB1〜LB10のいずれかの内容に合致する場合には、合致した内容のラベルに続いて記載された処理が行われるようになっている。
例えば、応答部11により入力の内容が日付または期間に関するものであると判断された場合には、ラベルLB1、LB2、LB3のいずれかのラベルに続いて記載された処理が行われる。また、メッセージの内容が場所等に関するものである判断された場合には、ラベルLB4、LB5、LB6のいずれかのラベルに続いて記載された処理が行われる。さらに、友達招待と判断された場合にはラベルLB7に続いて記載された処理が行われ、提示情報の拒否等と判断された場合にはラベルLB8に続いて記載された処理が行われる。そして、おまかせ要求と判断された場合にはラベルLB9に続いて記載された処理が行われ、提示情報に対する承認と判断された場合にはラベルLB10に続いて記載された処理が行われる。しかし、上述したいずれでもない場合は、「認識できません」等の応答を行ってもよい。
<4−3:日付判断処理>
受信したメッセージの内容が、図17に示すように数字4ケタのメッセージC23であった場合には、予約支援サーバ1のCPU30は、メッセージの内容を解析し(S101)、解析の結果、ゴルフ場を予約する日付が送信されたと判断する。そして、日付が送信されたと判断した場合には、ラベルLB1に続いて記載された処理が行われる。まず、「8月25日ですね。」等の確認のメッセージC24を送信して、受信したメッセージの内容である日付を仮登録する(S201)。なお、本実施形態において仮登録とは、受信したメッセージの内容を一時的に予約支援サーバ1の記憶部16に記憶させておくことをいう。
次に、予約支援サーバ1のCPU30は、ゴルフ場の仮登録が行われたかどうかを判断し(S202)、まだゴルフ場の仮登録が行われていない場合には(S202:NO)、ユーザの住所が入力済みであるかどうかを判断する(S207)。住所が入力済みではない場合には(S207:NO)、住所の入力を要求するメッセージを送信する(S208)。図17に示す例では、「8月25日ですね。」という確認のメッセージC24を送信した後に、「おすすめのゴルフ場を探してみます。位置情報をおしえてくださいね。」というメッセージC25を送信する。
一方、予約支援サーバ1のCPU30は、ゴルフ場の仮登録が行われていると判断した場合には(S202:YES)、つまり、先にゴルフ場の仮登録が行われた後に、日付の仮登録(S201)が行われた場合には、1人予約フラグがオン状態かどうかを判断する(S203)。予約支援サーバ1のCPU30は、1人予約フラグがオン状態であると判断した場合には(S203:YES)、空き枠情報テーブル5bを参照して、仮登録されたゴルフ場の空き枠のうち、1人予約が可能な枠限定で、空き枠を検索する。そして、予約支援サーバ1のCPU30は、このような空き枠があると判断した場合には(S205:YES)、仮登録したゴルフ場及び日付に該当し、かつ、1人予約可能な空き枠情報を抽出し、承認を要求するメッセージを送信する(S206)。しかし、予約支援サーバ1のCPU30は、提示可能な空き枠がないと判断した場合には(S205:NO)、住所入力済みかどうかを判断する(S207)。そして、予約支援サーバ1のCPU30は、住所入力が行われていないと判断した場合には(S207:NO)、住所入力を要求し(S208)、住所入力済みであると判断した場合には(S207:YES)、図23に示すゴルフ場検索処理に移行する(S802)。
また、予約支援サーバ1のCPU30は、1人予約フラグがオン状態ではないと判断した場合には(S203:NO)、空き枠情報テーブル5bを参照して、仮登録されたゴルフ場の空き枠のうち、1人予約枠を除外して、空き枠を検索する。そして、予約支援サーバ1のCPU30は、このような空き枠があると判断した場合には(S204:YES)、仮登録したゴルフ場及び日付に該当し、かつ、1人予約可能な空き枠情報を抽出し、承認を要求するメッセージを送信する(S206)。しかし、予約支援サーバ1のCPU30は、提示可能な空き枠がないと判断した場合には(S204:NO)、住所入力済みかどうかを判断する(S207)。そして、予約支援サーバ1のCPU30は、住所入力が行われていないと判断した場合には(S207:NO)、住所入力を要求し(S208)、住所入力済みであると判断した場合には(S207:YES)、図23に示すゴルフ場検索処理に移行する(S802)。
空き枠情報を抽出する際には、例えば次のような優先順位のつけ方を採用した抽出を行う。
1.特定の時間帯(例えば8時)を最初に、次に9時台というように時間帯の優先順位を付けて空き枠を抽出するパターン
2.住所がわかっている場合は、ゴルフ場までの理論的所要時間を算出し、所定の時間(例えば朝6時)に出発したとして到着予想時刻を算出して、そこから所定時間(例えば30分)経過後の時間帯の空き枠を抽出するパターン
3.空き枠の中からランダムで一つ抽出するパターン
但し、以上のようなパターン以外のパターンを採用してもよい。本実施形態では、上記「1.」のパターンを採用する。
図17に示す例では、「では赤坂ゴルフ倶楽部はどうでしょう?車で1時間40分くらいです。」というメッセージC27が送信された後に、「8月25日も空いています。4人で7:43スタート、食事つきで12,000円です。予約しますか?」というメッセージC28が送信される。
以上のように、日付の仮登録(S201)を行った後は、空き枠情報の表示と承認の要求メッセージ、あるいは、住所入力の要求メッセージが送信される。
図18に示すように、日付の確認メッセージC52の送信の直後に別の日付のメッセージC53が送信された場合には、予約支援サーバ1のCPU30は、再び日付の送信があったと判断し、ラベルLB1に続いて記載された処理を行う。つまり、新たな日付を仮登録し(S201)、確認のメッセージを送信する。図18に示す例では、「9月1日もOKですね。わかりました。」という確認メッセージC54が表示される。
また、図18に示すように、確認メッセージC54の送信の直後に、仮登録した日付を取り消すメッセージC55が送信された場合には、予約支援サーバ1のCPU30は、日付を否定する内容を受信したと判断し、図23に示すラベルLB8に続いて記載されたステップS1001以下の処理を行う。ステップS1001では、他の候補があるかどうかが判断されるが、この場合には他に候補はないので(S1001:NO)、予約支援サーバ1のCPU30は、仮登録済情報を削除して(S1003)、確認のメッセージを送信する。図18の例では、「0825ムリ」という日付を否定するメッセージC55を受信した後に、8月25日の日付の仮登録済情報を削除して、「8月25日はNGになったんですね。わかりました。」という確認のメッセージC56を表示させる。なお、確認メッセージC54の送信の直後とは、例えば、確認メッセージC54を送信してから30分等の所定時間以内、または後述の予約情報の本登録がなされたとき、のいずれかの条件が満たされるまで、とすることができる。但し、いずれか一方のみの条件としても良いし、他の条件としてもよい。
仮登録済情報の削除の結果、日付の仮登録済情報が無くなってしまった場合には、新たな日程の入力を要求するメッセージを表示させる(S1004)。しかし、この例では、8月25日以外の日付が仮登録されているので、新たな日程の入力を要求するメッセージは表示させない。
さらに、図18に示すように、日付をカンマ等で区切り、複数の日付を示すメッセージC57が送信された場合には、予約支援サーバ1のCPU30は、複数の日付について入力が行われたと判断する。複数の日付について入力が行われたと判断した場合には、ラベルLB2に続いて記載されたステップS301以降の処理が行われる。まず、複数の日付を仮登録する(S301)。また、2つの日付をハイフンで結ぶメッセージC57が送信された場合には、予約支援サーバ1のCPU30は、期間について入力が行われたと判断する。期間について入力が行われたと判断した場合には、ラベルLB3に続いて記載された処理が行われる。つまり、つまり、予約支援サーバ1のCPU30は、期間の仮登録を行う(S401)。図18の例では、「0908,0915−0922」というメッセージC57が送信されたので、予約支援サーバ1のCPU30は、日付として9月8日と、9月15日から9月22日の期間とを仮登録する。そして、「9月8日、9月15日から9月22日もOKですね。わかりました。」という確認メッセージC58を送信して表示させる。
複数日付の仮登録(S301)、または、期間の仮登録(S401)が行われた後は、優先順位に基づいて選択した1日で空き枠検索の準備が行われる(S302)。本実施形態では、以下のような優先順位に従って特定の1日を決定する。
順位1:仮登録した日付に該当する日であって、予約を行っている現時点から最も近い土曜日(あるいは翌日が休日である日)
順位2:仮登録した日付に該当する日であって、予約を行っている現時点から最も近い日曜日
順位3:仮登録した日付に該当する日であって、予約を行っている現時点から次に近い土曜日(あるいは翌日が休日である日)
順位4:仮登録した日付に該当する日であって、予約を行っている現時点から次に近い日曜日
順位5:仮登録した日付に該当する日であって、予約を行っている現時点から最も近い平日
本実施形態では、前記順位1から順に該当する日を探すこととしているが、これは一例であって、特定の1日が決定できればどのような方法を採用してもよい。例えば、仮登録した日付に該当する日が2以上ある場合、その中からランダムで特定の1日を決定することとしてもよい。
なお、本実施形態では、ユーザから日程に関するメッセージを受信した場合、図18に示すように「8月25日ですね。」等と応答しているが、例えば「8月25日ですね。わかりました。ではゴルフ場を検索しますので住所を入力してください。GPSの位置情報でも構いません。」等と応答するところを、「ではゴルフ場を検索しますので住所を入力してください。GPSの位置情報でも構いません。」等の、住所入力の要求等の他の部分の記載を省略したものである。
また、日程の入力を要求するメッセージを送信したにも拘わらず、例えば、「東京都」等のように日程とは無関係の送信が行われることも考えられる。この場合には、エラーとして判断するようにしてもよいが、本実施形態では、受信したメッセージの内容を解析し、例えば都道府県についての内容であると判断した場合には、ゴルフ場の検索処理を行うようになっている。本実施形態では、このように、どのような問い掛けを行ったかどうかに拘わらず、ユーザが送信したメッセージの内容を解析して適切な処理を行う。すなわち本実施形態においては、受信したメッセージの内容が、応答部11からの問いかけに対する予め想定された回答とは異なるが、解析部10による解析の結果、他の問いかけに対する予め想定された回答に相当する場合は、当該他の問いかけに対する回答であると解析することとしている。従って、日程からでも、また、場所からでも、予約に必要な情報を決定していくことができる。
<4−4:ゴルフ場検索処理>
受信したメッセージの内容が、都道府県名、あるいは、都市名と判断した場合には、都道府県別、あるいは都市別のお勧めのゴルフ場の検索を行う。なお、ユーザの住所の入力と、ゴルフ場検索のための都道府県名、あるいは、都市名の入力との区別は次のように行う。送信された内容が、都道府県名のみ、あるいは、都市名のみ、もしくは都道府県名と都市名との組み合わせである場合には、ゴルフ場検索のための都道府県名、あるいは、都市名の入力があったと判断する。しかし、都市名以降の詳しい地区名、番地等が含まれている場合には、ユーザの住所の入力があったと判断する。
受信したメッセージの内容が、都道府県名、あるいは、都市名と判断した場合には、ラベルLB5に続いて記載された処理が行われる。まず、予約支援サーバ1のCPU30は、予め記憶しておいて優先都市(地域)を基準にゴルフ場を検索する旨の応答を行う(S501)。例えば、ユーザのメッセージが「栃木県」であった場合には、「那須地区でゴルフ場を探してみます。」というような応答を行う。そして、予約支援サーバ1のCPU30は、マップサーバ4にアクセスし、マップサーバ4の施設情報テーブル4bから、当該優先都市(地域)内で位置登録されているゴルフ場を検索し(S502)、そのうちの一つのゴルフ場をお勧めのゴルフ場として表示して、ユーザの承認を要求するメッセージを表示する(S503)。
ここで、検索したゴルフ場の中から一つのゴルフ場を選択する際には、ランダムに一つのゴルフ場を選択してもよいし、予め設けておいた優先順位に基づいて一つのゴルフ場を選択するようにしてもよい。優先順位は、予約支援サーバ1において予め設定しておいてもよいし、例えば予約後に実際にラウンドしたゴルフ場の評価をユーザに行ってもらい、これらの評価を集積して評価値の平均値が高い順としてもよい。また、平均値が同じである場合には、50音順としてもよい。本実施形態では、予約支援サーバ1において予め優先順位を設定している。
予約支援サーバ1のCPU30は、図19に示すメッセージC65のように、受信したメッセージの内容が、ゴルフ場名自体であると判断した場合には、ラベルLB5に続いて記載された処理が行われる。まず、ゴルフ場名の仮登録を行う(S601)。ゴルフ場名の仮登録を行うには、そのゴルフ場名のテキストデータを解析して、記憶部16に記憶されているゴルフ場情報を参照する。ゴルフ場情報には、ゴルフ場名とゴルフ場IDとが関連付けて記憶されており、ゴルフ場情報を参照することにより、そのゴルフ場に対応するゴルフ場IDを特定することができる。ゴルフ場IDが特定できた場合には、そのゴルフ場名とゴルフ場IDとを仮登録する(S601)。そして、図19に示すメッセージC66のような確認メッセージを送信する。図19の例では、メッセージC65が「西麻布ゴルフクラブ」とゴルフ場名を表しているので、メッセージC66のように「西麻布ゴルフですね。2ヶ月前にもプレーされています。車で1.5時間くらいですね。」という確認メッセージを送信する。このメッセージC66では、過去のラウンド履歴、及び当該ゴルフ場までの所要時間を表示しているが、このようなメッセージを送信するためには、予約支援サーバ1の記憶部16に、各ユーザの過去のラウンド履歴、及びゴルフ場に関する情報等を記憶させておけばよい。
ゴルフ場名の仮登録が行われた後は、予約支援サーバ1のCPU30は、日程についての仮登録が既に行われたかどうかを判断する(S602)。日程の仮登録が未だ行われていない場合には(S602:NO)、予約支援サーバ1のCPU30は、日程の入力を要求するメッセージを送信する(S603)。例えば、「日程を数字4ケタで入力してください。」のようなメッセージを送信する。また、日程の仮登録が既に行われている場合には(S602:YES)、予約支援サーバ1のCPU30は、1人予約フラグがオン状態かどうかを判断した後(S203)、予約サーバ5を参照して、空き枠情報を抽出し、ユーザに対して承認要求のメッセージを送信する(S204、S205、S206)。例えば、「西麻布ゴルフクラブで9月25日ですね。○時○分アウトスタートの△プランはいかがでしょうか。料金は×××円です。」というようなメッセージを送信する。
図19に示すメッセージC62のようにお勧めとして提示したゴルフ場に対して、メッセージC63のように「遠いなー」と入力された場合、あるいは、「他のところ」等の同意しない旨の入力が行われた場合には、予約支援サーバ1のCPU30は、提示した情報が拒否されたと判断し、図23のラベルLB8に続いて記載された処理を行う。まず、予約支援サーバ1のCPU30は、仮登録情報がある場合には仮登録情報を削除する(S1001)。図15に示すメッセージC62を送信した段階では仮登録情報は存在しないので、ステップS1001の処理は行わず、次の処理に移行する。つまり、予約支援サーバ1のCPU30は、他に候補があるかどうかを判断し(S1002)、他に候補がある場合には(S1002:YES)、お勧めゴルフ場の再検索を行い、他の候補を表示して承認を要求するメッセージを表示する(S1003)。最初の検索時に複数のゴルフ場が抽出されている場合には、予約支援サーバ1において予め設定した優先順位の次の順位のゴルフ情報を次の候補としてもよい。
しかし、他に候補がない場合には(S1002:NO)、予約支援サーバ1のCPU30は、新たなお勧めゴルフ場の提示を行うために、位置情報の入力を要求する(S1004)。
図19に示すメッセージC61のように、ユーザが入力した情報が場所に関する情報で、都市名以降の詳しい地区名、番地等が含まれている場合には、予約支援サーバ1のCPU30は、ユーザの住所の入力があったと判断する。この場合には、図23のラベルLB6に続いて記載された処理を行う。まず、予約支援サーバ1のCPU30は、日程の仮登録が既に行われているかどうかを判断し(S801)、日程の仮登録がまだ行われていない場合には(S801:NO)、日程の入力を要求するメッセージを送信する(S804)。しかし、予約支援サーバ1のCPU30は、日程の仮登録が既に行われている場合には(S801:YES)、お勧めのゴルフ場の検索を行う(S802)。お勧めのゴルフ場の検索は次のように行われる。まず、予約支援サーバ1のCPU30は、受信した住所をマップサーバ4に送信し、当該住所に対応する位置情報(緯度経度情報)を取得する。次に、予約支援サーバ1のCPU30は、取得した位置情報をマップサーバ4に送信し、当該位置情報に相当する位置から所定範囲内、例えば、車で所要時間2時間以内にあるゴルフ場のリストと、各ゴルフ場までの所要時間の情報を取得する。そして、予約支援サーバ1のCPU30は、所要時間の最も短いゴルフ場をお勧めゴルフ場として提示し、ユーザに承認を要求するメッセージを送信する(S803)。図19の例では、「六本木カントリーはどうでしょう?車で2時間くらいです。」というメッセージC62を送信している。
なお、位置情報(緯度経度情報)がユーザから送信されてきた場合も、予約支援サーバ1のCPU30は、住所が入力されたと判断する。従って、図23のラベルLB6に続いて記載された処理を行う。つまり、予約支援サーバ1のCPU30は、日程の仮登録が既に行われているかどうかを判断し(S801)、日程の仮登録がまだ行われていない場合には(S801:NO)、日程の入力を要求するメッセージを送信する(S804)。しかし、予約支援サーバ1のCPU30は、日程の仮登録が既に行われている場合には(S801:YES)、お勧めのゴルフ場の検索を行う(S802)。この場合のお勧めのゴルフ場の検索は次のように行われる。まず、予約支援サーバ1のCPU30は、受信した位置情報(緯度経度情報)をマップサーバ4に送信し、当該位置情報に相当する位置から所定範囲内、例えば、車で所要時間2時間以内にあるゴルフ場のリストと、各ゴルフ場までの所要時間の情報を取得する。そして、予約支援サーバ1のCPU30は、所要時間の最も短いゴルフ場をお勧めゴルフ場として提示し、ユーザに承認を要求するメッセージを送信する(S803)。
<4−5:友達招待処理>
次に、友達を招待した場合の予約支援処理について説明する。外部管理サーバ3によって提供されるメッセージ送受信サービスにおけるチャット処理では、友達を招待して複数人でチャットを行うことができる。予め招待する友達を選択してチャットを開始することもできるし、誰かとチャットを行っている状態で、新たな友達を招待することもできる。本実施形態では、専用アカウントであるゴルフ予約A10と上述したようなチャット形式で予約に必要な情報を入力している状態で、新たな友達を招待する例について説明する。
図20に示す機能ボタンC11を押下すると、「友達を招待する」というボタンが表示され、このボタンを押すと招待する友達を選択する画面が表示される。この画面において友達を選択すると、図20に示すように、「ゴルフ予約さん、美希さんが参加しました。」というメッセージC70が表示され、招待された友達もメッセージを送信できるようになる。
但し、この状態では、招待された友達と専用アカウントであるゴルフ予約A10は、招待されたことを検知することはできない。
図20のメッセージC71のように、招待したユーザが何等かのメッセージを送信した場合には、招待したユーザの端末装置2に予め記憶されている、招待したユーザ自身及び友達のID情報に基づいて、招待したユーザのIDと招待された友達のIDが予約支援サーバ1に送信される。予約支援サーバ1のCPU30は、これらのIDを検知することにより、招待したユーザが専用アカウントであるゴルフ予約A10と招待された友達宛にメッセージを発信したと判断することができる。そして、検知したIDの中に、仮登録を行っていたユーザ以外のユーザのIDが含まれている場合には、仮登録を行っていたユーザが友達を招待したと判断する。友達を招待したと判断した場合には、図23のラベルLB7に続いて記載された処理が行われる。
まず、予約支援サーバ1のCPU30は、それまでに仮登録されている仮登録情報を抽出する(S901)。そして、予約支援サーバ1のCPU30は、日程が既に仮登録されているかどうかを判断し(S902)、日程については未だ仮登録されていない場合には(S902:NO)、それまでに仮登録してある情報を提示すると共に、日程の入力を要求するメッセージを送信する(S903)。本実施形態では、仮登録される情報は、日程の情報とゴルフ場の情報なので、この場合に仮登録されている情報はゴルフ場の情報ということになる。したがって、例えば、図20の例のように、「ゴルフ場の候補は、○○カントリーです。このゴルフ場でプレーする日を数字4ケタで入力してください。」というメッセージC73を送信する。このような日程の入力を要求するメッセージに対して、友達を招待したユーザ、あるいは、招待された友達から数字4ケタを含む入力が行われた場合には、予約支援サーバ1のCPU30は、ラベルLB1、LB2、LB3に続いて記載された日付判断処理を行う。
図20の例では、友達を招待したユーザは「0901」というメッセージC74を送信し、招待された友達は「0908」というメッセージC75を送信している。この場合には、1人のユーザが複数の日付を入力した場合と同様に取り扱われる。したがって、メッセージC76のように9月1日と9月8日の両方が候補日となったことの確認が行われる。本実施形態では、例えば、「0901ムリ」のように、送信された内容を否定する入力が行われない限りは、送信された内容は有効な内容として取り扱われるようになっている。
また、日程については既に仮登録が行われている場合には(S902:YES)、予約支援サーバ1のCPU30は、ゴルフ場についての仮登録が既に行われているかどうかを判断する(S904)。ゴルフ場については未だ仮登録されていない場合には(S904:NO)、予約支援サーバ1のCPU30は、それまでに仮登録してある情報を提示すると共に、ゴルフ場の入力を要求するメッセージを送信する(S905)。この場合に仮登録されている情報は日程の情報なので、予約支援サーバ1のCPU30は、例えば、「これまでに、日程の候補として9月1日が挙がっています。お勧めのゴルフ場を検索しますので、位置情報をおしえてください。」のようなメッセージを送信する。このような日程の入力を要求するメッセージに対して、友達を招待したユーザ、あるいは、招待された友達から、都道府県の入力、ゴルフ場名の入力、あるいは住所の入力が行われた場合には、予約支援サーバ1のCPU30は、ラベルLB4、LB5に続いて記載された処理、または、ラベルLB6に続いて記載された処理が行われることになる。
そして、日程についても既に仮登録が行われ(S902:YES)、さらに場所についても既に仮登録が行われている場合には(S904:YES)、予約支援サーバ1のCPU30は、抽出された空き枠情報が提示されて承認の入力を要求するメッセージを送信する(S906)。このメッセージは、例えば、予約支援サーバ1の記憶部16に文例データベースを構築しておき、仮登録されている情報を文例データベースの文例に当て嵌めて報告文を作成する形式で作成される。図20の例では、招待された友達に対して、日程の入力を要求するメッセージC73が最初に送信されているが、このメッセージC73は、「ゴルフ場の候補は、[#ゴルフ場名]です。このゴルフ場でプレーする日を数字4ケタで入力してください。」という文例に、[#ゴルフ場名]として仮登録されている「西麻布カントリー」を当て嵌めて報告文として作成される。日程と場所の両方の仮登録が行われている場合には、メッセージC73の代わりに、メッセージC77のような空き枠を確認するメッセージが、最初に送信されることになる。このメッセージC77は、「[#日程]に[#ゴルフ場名]、[#プラン]に空きがありました。[#料金]です。これでいいですか?」という文例に、[#日程]、[#ゴルフ場名]、[#プラン]、[#料金]として仮登録されている「9月1日」、「西麻布カントリー」、「4人で7:00スタート」、「キャディ付きで10,000円」を当て嵌めて報告文として作成すればよい。本実施形態では、承認は、招待者(招待されたユーザ)と招待したユーザの両方が承認する旨のメッセージを送信した場合に、承認されたものと判断し、予約サーバ5の予約情報テーブル5cに本登録する。この場合、ユーザからはメッセージと関連付けて送信者のIDが送信されるため、このIDを管理することによって招待者と招待したユーザの両方が承認したかどうかを判断する。
図20の例のように、「えー、早いなー」のような否定的なメッセージC78が送信された場合には、予約支援サーバ1のCPU30は、図23のLB8に続く処理を行う。まず、予約支援サーバ1のCPU30は、仮登録情報を削除し(S1001)、他に候補があるかどうかを判断する(S1002)。予約支援サーバ1のCPU30は、他に候補があると判断した場合には(S1002:YES)、他の候補を表示して、承認を要求するメッセージを送信する(S1003)。図20の例では、「8:00スタートも空いていました。これでいいですか?」というメッセージC79が表示される。
また、予約支援サーバ1のCPU30は、他に候補がないと判断した場合には(S1002:NO)、新たに日程の入力を要求するメッセージを送信する(S1004)。
同様に、ゴルフ場の候補の提示に対して、否定的なメッセージが送信された場合には、予約支援サーバ1のCPU30は、他に候補があるかどうかを判断し(S1002)、他に候補がある場合には(S1001:YES)、他の候補を表示して、承認を要求するメッセージを送信する(S1003)。しかし、予約支援サーバ1のCPU30は、他に候補がないと判断した場合には(S1002:NO)、住所の入力を要求するメッセージを送信する(S1004)。
なお、友達を招待した場合には、招待したユーザと招待された友達との間での会話と、予約のための入力とを区別するために、4ケタの数字のみの入力、あるいは、「9月15日」のように日付のみの入力があった場合に日程の入力があったものとして処理を行う。しかし、「9月15日?」のように日付や4ケタの数字以外の言葉等、この場合のように「?」のマークが含まれている場合には、招待したユーザと招待された友達との間での会話と考えられるので、日程についての入力として処理しないようにしてもよい。また、日程を否定する場合にも、4ケタの数字や日付に「ムリ」等の否定する言葉が付け加えられた場合に、その日程を否定する入力が行われたとして処理を行うようにしてもよい。同様に、都道府県名または地域、あるいはゴルフ場名のような場所のみの入力があった場合には、場所についての入力があったものとして処理を行い、都道府県名または地域、あるいはゴルフ場名のような場所に、「ムリ」等の否定する言葉が付け加えられた場合に、その場所を否定する入力が行われたとして処理を行うようにしてもよい。
本実施形態では、友達を招待した場合には、招待したユーザ、あるいは、招待された友達から否定的なメッセージが送信されない限りは、提示した情報が承認されたものとして処理を進めるが、例えば、「はい。」あるいは「いいよ。」等のように積極的に肯定的なメッセージが送信された場合には、予約支援サーバ1のCPU30は、提示した情報が承認されたものと判断して、図24のLB9に続く処理を行う。そして、予約支援サーバ1のCPU30は、承認された情報を仮登録し(S1201)、日程について仮登録済みかどうかを判断する(S1202)。日程について仮登録済みではない場合には(S1202:NO)、予約支援サーバ1のCPU30は、日付の入力を要求するメッセージを送信する(S1203)。
日程について仮登録済みの場合には(S1202:YES)、予約支援サーバ1のCPU30は、ゴルフ場について仮登録済みかどうかを判断する(S1204)。ゴルフ場について仮登録済みではない場合には(S1204:NO)、予約支援サーバ1のCPU30は、住所の入力を要求するメッセージを送信する(S1205)。
ゴルフ場について仮登録済みの場合には(S1204:YES)、予約支援サーバ1のCPU30は、空き枠について仮登録済みかどうかを判断する(S1206)。空き枠について仮登録済みではない場合には(S1206:NO)、予約支援サーバ1のCPU30は、空き枠を抽出して承認を要求するメッセージを送信する(S1207)。
そして、予約支援サーバ1のCPU30は、日程、ゴルフ場、空き枠の全ての情報について仮登録が行われていると判断した場合には、(S1206:YES)、予約サーバ5に対する予約情報の本登録処理を行い(S1208)、予約が完了した旨の表示を行う(S1209)。但し、友達が招待されている状態においては、特に空き枠情報については、招待したユーザと、招待された友達の全員の承認が必要であると考えられる。招待された友達が複数である場合には、招待したユーザと、招待された複数の友達の全員の承認が必要であると考えられる。そこで、本実施形態では、予約サーバ5に対する予約情報の本登録処理を行う前に、空き枠情報について、否定的なメッセージが送信されていないかどうか、あるいは、招待したユーザと、招待された友達の全員の肯定的なメッセージが送信されているかどうかが判断される。空き枠情報について、否定的なメッセージが送信されておらず、あるいは、招待したユーザと、招待された友達の全員の肯定的なメッセージが送信されている場合には、予約支援サーバ1のCPU30は、予約サーバ5に対する予約情報の本登録処理を行い(S1208)、予約が完了した旨の表示を行う(S1209)。
以上のように、本実施形態によれば、友達が途中から招待された場合でも、それまでに仮登録されている内容を提示して、招待された友達に対して承認を求めるので、適切かつ簡易に複数人によるゴルフ場の予約が行われることになる。
<4−6:拒否または否定に対する処理>
次に、提示情報が拒否され、または、日付が否定された場合の処理について説明する。上述のように、友達を招待した場合の処理の一部として、提示情報が拒否され、または、日付が否定された場合の処理を説明したが、この拒否または否定に対する処理は、本実施形態における予約支援処理の全体について共通の処理なので、改めて説明する。
図22に示すステップS201、S301、S401の日付の仮登録処理が行われた後、例えば「0901ムリ」のような否定的なメッセージが送信された場合には、予約支援サーバ1のCPU30は、仮登録された日付が否定されたと判断する。この場合には、図23のラベルLB9に続いて記載された処理を行う。まず、予約支援サーバ1のCPU30は、仮登録情報を削除する処理を行う(S1001)。複数の日程のうちの一つが否定された場合には、予約支援サーバ1のCPU30は、その否定された日程の仮登録情報を削除する。次に、予約支援サーバ1のCPU30は、他に候補があるかどうかを判断する(S1002)。本実施形態においては、日程の仮登録の際には日程の候補を予約支援サーバ1のCPU30から提示することはないので(S1002:NO)、予約支援サーバ1のCPU30は、新たに日程の入力を要求するメッセージを送信する(S1004)。
同様に、図22に示すステップS503、図23に示すS803のお勧めゴルフ場の表示と承認を要求するメッセージの送信に対して、「遠い」等の否定的なメッセージが送信された場合には、予約支援サーバ1のCPU30は、提示した情報が否定されたと判断し、図23のラベルLB8に続いて記載された処理が行われる。まず、予約支援サーバ1のCPU30は、仮登録情報を削除する(S1001)。そして、予約支援サーバ1のCPU30は、他に候補があるかどうかを判断する(S1002)。他に候補がある場合には(S1002:YES)、予約支援サーバ1のCPU30は、他の候補を表示して、承認を要求するメッセージを送信する(S1003)。しかし、他に候補がない場合には(S1002:NO)、予約支援サーバ1のCPU30は、新たなお勧めのゴルフ場を検索するために、住所の入力を要求するメッセージを送信する(S1004)。
また、図22に示すステップS203の空き枠情報の提示と承認を要求するメッセージ対して、「早い」、あるいは、「高い」等の否定的なメッセージが送信された場合には、予約支援サーバ1のCPU30は、提示した空き枠情報が否定されたと判断し、この場合にも図23のラベルLB9に続いて記載された処理が行われる。まず、予約支援サーバ1のCPU30は、空き枠についての仮登録情報を削除し(S1001)、次に、予約支援サーバ1のCPU30は、他に候補があるかどうかを判断する(S1002)。空き枠について他に候補がある場合には(S1002:YES)、予約支援サーバ1のCPU30は、他の空き枠の候補を表示して、承認を要求するメッセージを送信する(S1003)。しかし、他に空き枠の候補がない場合には(S1002:NO)、予約支援サーバ1のCPU30は、新たな空き枠の提示を行うために再び日付の入力を要求するメッセージを送信する(S1004)。
<4−7:承認に対する処理>
次に、提示情報が承認された場合の処理について説明する。上述のように、友達を招待した場合の処理の一部として、提示情報が承認された場合の処理を説明したが、この承認に対する処理は、本実施形態における予約支援処理の全体について共通の処理なので、改めて説明する。
図22に示すステップS503、図23に示すS803のお勧めゴルフ場の表示と承認を要求するメッセージの送信に対して、「はい。」あるいは「いいよ。」等の肯定的なメッセージが送信された場合には、予約支援サーバ1のCPU30は、提示したゴルフ場が承認否定されたと判断し、図24のラベルLB11に続いて記載された処理を行う。まず、予約支援サーバ1のCPU30は、承認されたゴルフ場の情報を仮登録する(S1201)、そして、予約支援サーバ1のCPU30は、日程について仮登録済みかどうかを判断する(S1202)。予約支援サーバ1のCPU30は、日程について仮登録済みではないと判断した場合には(S1202:NO)、日付の入力を要求するメッセージを送信する(S1203)。このような処理が行われるのは、まず都道府県名等を入力することによってゴルフ場を決定し、その後に日程を決める場合が該当する。
予約支援サーバ1のCPU30は、日程について仮登録済みと判断した場合には(S1202:YES)、ゴルフ場について仮登録済みかどうかを判断する(S1204)。予約支援サーバ1のCPU30は、ゴルフ場について仮登録済みではないと判断した場合には(S1204:NO)、住所の入力を要求するメッセージを送信する(S1205)。このような処理が行われるのは、まず日程を入力することによって日程を決定し、その後に場所を決める場合が該当する。一方、予約支援サーバ1のCPU30は、ゴルフ場について仮登録済みであると判断した場合には(S1204:YES)、空き枠について仮登録済みかどうかを判断する(S1206)。予約支援サーバ1のCPU30は、空き枠について仮登録済みではないと判断場合には(S1206:NO)、空き枠を抽出して承認を要求するメッセージを送信する(S1207)。
しかし、図22に示すステップS203の空き枠情報の提示と承認を要求するメッセージ対して、「はい。」あるいは「いいよ。」等の肯定的なメッセージが送信された場合には、予約支援サーバ1のCPU30は、提示した空き枠情報が承認されたと判断し、承認された空き枠情報を仮登録する(S1201)。この場合には、日程、ゴルフ場、空き枠情報の全てについて仮登録済みとなるので(S1202:YES、S1204:YES、S1206:YES)、予約支援サーバ1のCPU30は、予約サーバ5に対して予約情報の本登録処理を行い(S1208)、予約が完了した旨の表示を行う(S1209)。この処理により、予約サーバ5の予約情報テーブル5cにおいて、予約情報の更新が行われることになる。
なお、予約情報の本登録処理(S1208)以降に同伴者を追加したり、プランを変更したり、あるいはキャンセルを行う場合には、所定の予約サイトにアクセスすることによって直接行う。したがって、予約が完了した旨の表示は、例えば、図17のメッセージC30のように、「詳細はこちらです。」のように予約サイトへのリンク情報を貼り付けたり、予約サイトのURLを表示するようにする。
<4−8:おまかせ処理>
次に、おまかせ処理について説明する。ユーザから「おまかせ」等のメッセージが送信された場合には、予約支援サーバ1のCPU30は、おまかせ要求があった判断し、図24のラベルLB9に続いて記載された処理を行う。まず、予約支援サーバ1のCPU30は、所定の日程を設定して仮登録する(S1101)。例えば、おまかせ要求の入力が行われた日から2週間経過した後に最初に到来する土曜日を日程として設定し、仮登録する。
次に、予約支援サーバ1のCPU30は、予約支援サーバ1の記憶部16にラウンド履歴情報が記憶されているかどうかを判断する(S1102)。初めて使用する場合等、ラウンド履歴情報が存在しない場合には(S1102:NO)、予約支援サーバ1のCPU30は、位置情報が仮登録されているかどうかを判断する(S1106)。位置情報が仮登録されている場合には(S1106:YES)、予約支援サーバ1のCPU30は、図23に示すステップS803にジャンプし、位置情報に基づいてお勧めのゴルフ場を検索し、検索したお勧めのゴルフ場を表示して承認を要求するメッセージを送信する(S803)。
位置情報が仮登録されていない場合には(S1106:NO)、予約支援サーバ1のCPU30は、住所の入力を要求する(S1107)。この場合、住所は、GPS等による位置情報であってもよいことは上述した通りである。以下、住所が入力されると、図23に示すステップS800以降のお勧めゴルフ場検索処理が行われることになる。
一方、ラウンド履歴情報が存在する場合には(S1102:YES)、予約支援サーバ1のCPU30は、一番新しいラウンド履歴情報に含まれるゴルフ場を特定する(S1103)。そして、予約支援サーバ1のCPU30は、ラウンド履歴情報と最も近いスタート時間の空き枠を特定する(S1104)。予約支援サーバ1のCPU30は、例えば、まず、このラウンド履歴情報と同じ時間を基準の時刻として、空き枠の検索を行う。この基準の時刻では空き枠がない場合には、基準の時刻の10分後までの空き枠を検索する。それでも空き枠がない場合には、基準の時刻の10分前までの空き枠を検索する。それでも空き枠がない場合には、基準時刻の10分後から基準時刻の20分後までの空き枠を検索する。このような検索を繰り返す。それでも空き枠がない場合には、基準時刻の10分前から基準時刻の20分前までの空き枠を検索する。このように所定時間ごとに、例えば10分間ごとに時間をずらして空き枠の検索を行う。なお、検索時間の範囲を予め設定しておき、例えば基準時刻の90分前から基準時刻の90分後までの範囲で空き枠が見つからない場合、他のラウンド履歴情報に含まれるゴルフ場について同様の処理を行うようにしてもよい。
空き枠が見つかった場合には、例えば、その時刻の空き枠を仮登録し、料金プランと共にユーザに提示して承認を要求するメッセージを送信する(S1105)。料金プランは、例えば、当該日程の当該スタート時刻が適用されるプランの中で最も安価なもの抽出するようにすればよい。
空き枠が見つからなかった場合には、ラウンド履歴情報に含まれるゴルフ場について、順次同様の処理を行う。それでも空き枠が見つからなかった場合には、ラウンド履歴情報に含まれるゴルフ場に比較的に近いゴルフ場について同様の処理を行うようにすればよい。
<5:予約処理の例>
次に、本実施形態における予約処理の例を図13及び図17に示す端末装置2における表示例と、図21乃至図24に示すフローチャートに基づいて説明する。
<5−1:1人予約>
図13は、1人予約を行う際の端末装置2における表示例を示す図である。
まず、ユーザが、専用アカウントであるゴルフ予約A10を会話の相手として選択すると、図13に示すメッセージ表示画面P3が表示される。そして、ユーザが「1人で行く」というメッセージC80を送信すると、予約支援サーバ1のCPU30は、このメッセージを受信してその内容を解析する。解析の結果、予約要求が送信されたと判断し(S1300)、さらに、人数についての入力があったと判断する(S1301)。そして、予約支援サーバ1のCPU30は、人数が1人であると判断した場合には(S1301:YES)、1人予約フラグをオン状態とし(S1303)。次に、予約支援サーバ1のCPU30は、住所履歴があるかどうかを判断する。予約支援サーバ1のCPU30は、住所履歴がないと判断した場合には(S1304:NO)、住所の入力を要求するメッセージを送信する(S1305)。ユーザの端末装置2においては、図13に示すように、「1人予約ですね。おすすめのゴルフ場を探してみます。あなたの住所をおしえてくださいね。GPSの位置情報でも構いません。」というメッセージC81が表示される。
次に、ユーザが「位置情報 日本 埼玉県○○市××町5」というメッセージC82を送信すると、予約支援サーバ1のCPU30は、このメッセージを受信してその内容を解析する。解析の結果、予約支援サーバ1のCPU30は、住所についての内容であると判断し、この住所に近いお勧めのゴルフ場の検索を行う(S1306)。そして、予約支援サーバ1のCPU30は、直近の土曜日等の日程的条件を設定し、前記住所に最も近いゴルフ場から順に、1人予約者がいる空き枠の検索を行う(S1307)。そして、予約支援サーバ1のCPU30は、おすすめの空き枠が抽出できた場合には(S1307:YES)、確認のメッセージを送信し(S1308)、ユーザの端末装置2においては、「8月25日の1人予約、六本木GCで7:00スタート、7,000円の枠が空いています。既に1人分の予約が入っています。メッセージを表示します。」という空き枠メッセージC83が表示される。
この例では、提示した空き枠に他の1人予約者がいる場合なので、予約支援サーバ1のCPU30は、当該他の1人予約者の情報を提示する(S1308)。ユーザの端末装置2においては、「「20代女性です。初心者ですけど、月イチくらいで気軽に楽しめるゴルフ友達を探してます。」・・・とのことです。一緒に行きますか?」というメッセージC84が表示される。
このメッセージC84に対して、「はい」という肯定的なメッセージC85が入力された場合には、予約支援サーバ1のCPU30は、ユーザがその空き枠への参加を承認したと判断し(S1309:YES)、そのユーザを当該空き枠に登録する予約登録処理を行う(S1310)。
そして、予約支援サーバ1のCPU30は、「予約完了しました。」という予約完了メッセージC86を表示させ、ユーザに対して、コメントを残すかどうかを問い合わせるメッセージを表示させる(S1311)。ユーザの端末装置2においては、「メッセージを残しますか?」という確認メッセージC87が表示される。
確認メッセージC87に対して、「はい」という肯定的なメッセージC88が入力された場合には(S1311:YES)、予約支援サーバ1のCPU30は、コメントの入力を求めるメッセージを表示させる。ユーザの端末装置2には、「では、コメントをお願いします。」という要求メッセージC89が表示させる。
要求メッセージC89に対して、「20代女性です。初心者です。楽しくゴルフがしたいです。」というようなコメントC90が入力されると、予約支援サーバ1のCPU30は、このコメントをコメント情報テーブル5dに登録して(S1312)、「コメントを登録しました。予定表に入れておきますね。詳細はこちらです。」というメッセージC91を表示させて処理を終了する。
このように本実施形態によれば、1人予約についてもチャットを利用して簡単かつ迅速にゴルフ場の予約を行うことができ、しかも、他に1人予約したユーザがいる場合には、そのユーザの情報(本実施形態ではメッセージ)を表示することにより、ユーザ同士をマッチングすることが可能となる。なお、他の1人予約者についての情報としては、氏名、性別、年代などであってもよい。
<5−2:複数人予約>
図17は、複数人での予約処理を行う際の端末装置2における表示例を示す図である。
まず、ユーザが、専用アカウントであるゴルフ予約A10を会話の相手として選択すると、図13に示すメッセージ表示画面P3が表示される。そして、ユーザが「予約したい」というメッセージ(図示せず)を送信すると、予約支援サーバ1のCPU30は、このメッセージを受信してその内容を解析する。解析の結果、予約支援サーバ1のCPU30は、予約要求が送信されたと判断し(S1300)、人数の入力を要求するメッセージを送信する(S1301)。ユーザの端末装置2においては、図17に示すように、「ゴルフの予約をする人数を教えてくださいね。」という人数入力要求メッセージC20が表示される。
この人数入力要求メッセージC20に対して、「4人」という人数を示すメッセージが入力されると、予約支援サーバ1のCPU30は、入力された人数が1人ではないと判断し(S1302:NO)、日程の入力を要求するメッセージを表示させる(S100)。ユーザの端末装置2においては、図17に示すように、「ゴルフに行きたい日を数字4ケタで教えてください。」というメッセージC22が表示される。
次に、ユーザが「0825」というメッセージC23を送信すると、予約支援サーバ1のCPU30は、このメッセージを受信してその内容を解析する(S101)。解析の結果、予約支援サーバ1のCPU30は、日付についての内容であると判断し、その日付を記憶部16に記憶させて仮登録する(S201)。また、予約支援サーバ1のCPU30は、確認のメッセージを送信し、ユーザの端末装置2においては、「8月25日ですね。」というメッセージC22が表示される。
予約支援サーバ1のCPU30は、次に、ゴルフ場の仮登録が行われているかどうかを判断し(S202)、まだ仮登録されていないと判断した場合には(S202:NO)、住所が入力済みかどうかを判断する(S207)。予約支援サーバ1のCPU30は、住所についても入力が行われていないと判断した場合には(S207:NO)、ユーザに対して住所の入力を要求するメッセージを送信する(S208)。ユーザの端末装置2においては、図17に示すように「おすすめのゴルフ場を探してみます。位置情報をおしえてくださいね。」というメッセージC23が表示される。
ユーザから、「位置情報、日本、埼玉県○○市××町5」というメッセージC24が送信されると、予約支援サーバ1のCPU30は、このメッセージを受信してその内容を解析する(S100)。解析の結果、予約支援サーバ1のCPU30は、住所についての内容であると判断し、日程について仮登録済みであるかどうかを判断する(S801)。日程については仮登録済みなので(S801:YES)、予約支援サーバ1のCPU30は、マップサーバ4にアクセスし、受信した住所の情報に基づいて、当該住所から所定時間内のゴルフ場を検索する(S802)。そして、ユーザに対してお勧めのゴルフ場を表示し、承認を要求するメッセージを送信する(S803)。ユーザの端末装置2には、図17に示すように、「では赤坂ゴルフ倶楽部はどうでしょう?車で1時間40分くらいです。」というメッセージC25が表示される。
このメッセージC25に対して、ユーザが「いいね」という肯定的なメッセージを送信したり、あるいは、一定時間内に否定的なメッセージを送信しない場合には、予約支援サーバ1のCPU30は、提示したゴルフ場が承認されたと判断する。そして、予約支援サーバ1のCPU30は、ゴルフ場を記憶部16に記憶させて仮登録を行う(S1201)。次に、予約支援サーバ1のCPU30は、日程が仮登録済みであり(S1202:YES)、ゴルフ場も仮登録済みであると判断し(S1204:YES)、空き枠情報が仮登録済みであるかどうかの判断を行う(S1206)。空き枠情報は未だ仮登録が行われていないので(S1206:NO)、予約支援サーバ1のCPU30は、予約サーバ5にアクセスして、空き枠情報を抽出して、ユーザに対して承認を要求するメッセージを送信する(S1207)。ユーザの端末装置2には、図17に示すように、「8月25日も空いています。4人で7:43スタート、食事つきで12,000円です。どうでしょう、予約しておきましょうか?」というメッセージC26が表示される。
ユーザが「はい」という肯定的なメッセージC27を送信すると、予約支援サーバ1のCPU30は、このメッセージを受信してその内容を解析する(S101)。解析の結果、予約支援サーバ1のCPU30は、提示した空き枠が承認されたと判断し、この枠を記憶部16に記憶させて仮登録を行う(S1201)。次に、予約支援サーバ1のCPU30は、日程が仮登録済みであり(S1202:YES)、ゴルフ場も仮登録済みであり(S1204:YES)、さらに空き枠情報も仮登録済みであると判断し(S1206:YES)、予約サーバ5に対して予約情報の本登録処理を行う(S1208)。ユーザに対しては、予約が完了した旨の表示を行う(S1209)。ユーザの端末装置2には、図13に示すように、「予約しました。予定表に入れておきますね。詳細はこちらです。」というリンク付きのメッセージC28が表示される。
このように、本実施形態によれば、チャットを利用して簡単かつ迅速にゴルフ場の予約を行うことができる。なお、同伴者の登録については、予約完了時に表示されるメッセージC41に含まれるリンクをクリックする等して行う。ただしこれに限られるものではなく、例えば予約完了時に予約支援サーバ1のCPU30が、「同伴者も登録しますか?」等のメッセージを送信することにより、ユーザに同伴者名の登録を促すこととしてもよい。
<第2実施形態>
次に、図25及び図26を参照して、本発明の第2実施形態について説明する。第1実施形態においては、1人予約の場合に、空き枠検索を行う前に住所履歴の有無を判断する例について説明した。しかし、本実施形態においては、1人予約の場合に、空き枠検索を行う前にラウンド履歴の有無の判断を行う構成が第1実施形態と異なっている。
ラウンド履歴とは、1人予約であるか否かを問わずに、外部管理サーバ3によって提供されるメッセージ送受信サービスにおけるチャットを利用して、本発明の予約支援サーバによるゴルフ場の予約支援サービスにおいてゴルフ場の予約を行った履歴をいう。
図25は本実施形態の予約支援サーバの開始処理を示すフローチャートである。図25に示すように、本実施形態においては、予約支援サーバ1のCPU30は、1人予約フラグをオン状態にした後に(S1303)、ラウンド履歴があるかどうかを判断する(S1320)。具体的には、予約支援サーバ1のCPU30は、予約サーバ5に対してラウンド履歴の検索要求を送信する。予約サーバ5のCPUは、ラウンド履歴の検索要求を受信すると、予約情報テーブル5cにアクセスし、今回1人予約を行おうとするユーザのUIDを含む過去の予約情報が予約情報テーブル5cに記憶されているかどうかを判断する。
その結果、当該過去の予約情報が予約情報テーブル5cに記憶されていた場合には、予約サーバ5のCPUは、その旨を予約支援サーバ1に回答する。この回答を受信した予約支援サーバ1のCPU30は、ラウンド履歴ありと判断し(S1320:YES)、当該予約情報として記憶されたゴルフ場において1人予約者のいる空き枠を検索する(S1307)。この際、予約支援サーバ1のCPU30は、ユーザの端末装置2に、ラウンド履歴に基づく空き枠の検索を行う旨のメッセージを表示させる。図26に示す例では、「1人予約ですね。以前に利用した六本木GCはどうでしょうか。空き枠を探してみます。」というメッセージC97が表示される。これ以降の処理は、第1実施形態と同様なので説明を省略する。
一方、前記ユーザによる過去の予約情報が予約情報テーブル5cに記憶されていなかった場合には、予約支援サーバ1のCPU30は、ラウンド履歴なしと判断し(S1320:NO)、第1実施形態と同様に住所履歴の有無について判断する(S1304)。これ以降の処理は、第1実施形態と同様なので説明を省略する。
以上のように本実施形態によれば、ラウンド履歴がある場合には、ラウンド履歴に基づくゴルフ場について1人予約の空き枠を検索するので、ユーザによって馴染みのあるゴルフ場において、簡易に1人予約を行うことが可能となる。
なお、ラウンド履歴に基づいて1人予約の空き枠の検索を行い、抽出された空き枠を提示した後に、あるいは、当該空き枠における他の1人予約情報を提示した後に、ユーザが当該空き枠への参加を拒否した場合には(S1309:NO)、図25に示すフローチャートにおいては、図22に示す処理に移行するようになっている。
しかしながら、本発明はこのような処理の例に限定される必要はなく、抽出された空き枠を提示した後に、あるいは、当該空き枠における他の1人予約情報を提示した後に、ユーザが当該空き枠への参加を拒否した場合には(S1309:NO)、住所履歴に基づく検索(S1304)に移行するようにしてもよい。
以上のように、1人予約の空き枠を検索する際には、ラウンド履歴の判断と住所履歴の判断はどちらか一方を行う構成でもよく、また、本実施形態のように、ラウンド履歴の判断と住所履歴の判断とを組み合わせる構成でもよい。さらに、ラウンド履歴の判断と住所履歴の判断のいずれも使用せずに、住所またはゴルフ場名入力を要求することにより、1人予約の空き枠を検索する構成としてもよい。
ラウンド履歴または住所履歴がないと判断される場合には、ゴルフ場をランダムで一つ抽出する構成にしてもよい。すなわち、ランダムでゴルフ場を特定して1人予約の可能な空き枠を検索し、当該空き枠がなければ再度ランダムで別のゴルフ場について検索する。これを見つかるまで行い、1人予約の可能空き枠が見つかった場合には、当該空き枠を提示するようにしてもよい。ユーザが、提示された空き枠への参加を拒否した場合には、ユーザに対して住所またはゴルフ場名の入力を要求してもよい。
<第3実施形態>
次に、図27を参照して、本発明の第3実施形態について説明する。第1実施形態においては、予約人数の入力要求が行われた後に、入力された人数が1人かどうかが判断される構成となっている。しかし、本実施形態においては、予約人数の入力要求が行われた後に、入力された人数が2人から4人の範囲内であるかどうかが判断される構成となっている。
図27は本実施形態の予約支援サーバの開始処理を示すフローチャートである。図27に示すように、本実施形態においては、予約支援サーバ1のCPU30は、予約人数の入力要求を行い(S1301)、その後に入力された人数が、2人から100人の範囲内であるかどうかを判断する(S1330)。予約支援サーバ1のCPU30は、入力された人数が、2人から100人の範囲内であると判断した場合には(S1330:YES)、図22に示す処理に移行する。なお、本実施形態では一例として上限を100人としているが、一般的に考えられるコンペ予約の人数の範囲内等で上限人数を設定すればよい。
一方、予約支援サーバ1のCPU30は、入力された人数が、2人から100人の範囲内ではないと判断した場合には(S1330:NO)、入力された人数が1人かどうかを判断する(S1331)。予約支援サーバ1のCPU30は、入力された人数が1人であると判断した場合には(S1331:YES)、第1実施形態と同様に、ステップS1303以降の処理を行う。
しかしながら、予約支援サーバ1のCPU30は、入力された人数が1人ではないと判断した場合には(S1331:NO)、ユーザの端末装置2において、エラーが生じた旨の表示をさせると共に、予約人数の再入力を要求するメッセージを表示させる(S1332)。
本実施形態によれば、誤った予約人数または人数として認識できない文字や記号が入力された場合には、エラーが生じたことを示して、予約人数の再入力を要求するので、適切な予約人数に基づく空き枠の検索を行うことができる。
なお、本実施形態においても、予約人数が1人であると判断された場合には、第2実施形態と同様に、ラウンド履歴の判断を行って、1人予約可能な空き枠を検索するようにしてもよい。
<第4実施形態>
次に、図28乃至図31を参照して、本発明の第4実施形態について説明する。第1実施形態においては、外部管理サーバ3によって提供されるメッセージ送受信サービスにおけるチャットを利用して、本発明の予約支援サーバによるゴルフ場の予約を行う例について説明した。しかし、第4実施形態では、ゴルフ予約用の専用のアプリケーションソフトウェアを用いる。外部管理サーバ3によって提供されるメッセージ送受信サービスにおいては、ゴルフ予約用の専用のアプリケーションソフトウェアを用いた場合には、ゴルフ予約の専用アカウントとメッセージ送受信サービスにおけるチャットが可能になっている。また、友達を招待した場合には、ゴルフ予約の専用アカウントと、招待した友達を含めてメッセージ送受信サービスにおけるチャットが可能になっている。
つまり、ユーザは、第1実施形態で説明したチャット画面を表示させることにより、友達同士でのチャットを行うことができるだけでなく、ゴルフ予約用の専用のアプリケーションソフトウェアを端末装置2aにインストールしていた場合には、ゴルフ予約用の専用のアプリケーションソフトウェアを起動させることにより、ゴルフ予約の専用アカウントとチャットを行うことができる。したがって、ゴルフ予約用の専用のアプリケーションソフトウェアを用いてゴルフ場の予約が可能になっている。
但し、第1実施形態で説明したチャットにおいては、文字情報と一部の画像情報、あるいは、音声情報の再生ボタン等しか表示させることができないが、ゴルフ予約用の専用のアプリケーションソフトウェアにおいては、画像の選択によって情報の入力が可能な機能が付加された画像を表示させることができる。第4実施形態では、このような画像の選択によって情報の入力が可能な機能が付加された画像を、ゴルフ予約用の専用のアプリケーションソフトウェアの画面において表示させ、日程の入力や、ゴルフ場の場所の入力を行うようにした例である。
第4実施形態における外部管理サーバ3、マップサーバ4、予約サーバ5の構成は、第1実施形態と同様であるので説明を省略する。
本実施形態における予約支援サーバ1aにおいては、記憶部16にはさらに、ゴルフ予約用の専用のアプリケーションソフトウェアおよびこれに付随するカレンダー情報、地図情報が記憶されている。その他の構成については、第1実施形態の予約支援サーバ1と同様なので説明を省略する。
また、本実施形態における端末装置2aは、図30に示すように、取得部21、入力部22、表示制御部23、変換部24、表示部25、記憶部26を備える。本実施形態における記憶部26は、ゴルフ予約用の専用のアプリケーションソフトウェアデータ、カレンダー情報、地図情報を少なくとも記憶している。取得部21は、記憶部26に記憶されているカレンダー情報、地図情報を所定のタイミングで取得する。入力部22は、ユーザの操作に応じて情報を入力可能としている。入力部22は例えばボタンやタッチパネルで構成される。表示制御部23は、入力部22により入力された内容や、取得部21が取得した、画像の選択によって情報の入力が可能な機能が付加された画像であるカレンダー情報や地図情報、予約支援サーバ1a等から受信したメッセージの内容を、後述の表示部25に表示させる制御を行う。変換部24は、表示部25に表示されたカレンダー情報や地図情報の一部が選択されると、当該選択された部分に相当する情報を、予約支援サーバ1aが処理可能な情報に変換する。本実施形態では、予約支援サーバ1aが処理可能なように、テキストデータに変換する。
本実施形態のゴルフ予約用の専用のアプリケーションソフトウェアは、所定のアプリケーション提供サイトにおいて提供されており、ユーザが選択することにより、当該アプリケーション提供サイトを介して、予約支援サーバ1aからダウンロードし、ユーザの端末装置2aにインストールすることができる。本実施形態のゴルフ予約用の専用のアプリケーションソフトウェアにはカレンダー情報や地図情報が含まれており、ユーザが端末装置2aにゴルフ予約用の専用のアプリケーションソフトウェアをインストールしたときに、同時にカレンダー情報、地図情報が端末装置2aに記憶されるようになっている。
ゴルフ予約用の専用のアプリケーションソフトウェアを端末装置2aにインストールし、ゴルフ予約用の専用のアプリケーションソフトウェアを起動させると、図28に示すようなアプリケーション画面P4が表示される。アプリケーション画面P4は、タイトル表示欄D1、メッセージ表示欄D2、日程ボタンD3、場所ボタンD4、参加者ボタンD5、及び機能ボタンD6を備えている。
タイトル表示欄D1には、例えば、「予約アプリ」と表示され、メッセージ表示欄D2には第1実施形態のチャット画面と同様に、ユーザが送信したメッセージが表示される。日程ボタンD3が押下されると、メッセージ表示欄D2に、日付の選択によって日付情報の入力が可能な機能が付加されたカレンダー画像が表示される。場所ボタンD4が押下されると、メッセージ表示欄D2に、地域の選択によって地域情報の入力が可能な機能が付加された地図画像が表示される。参加者ボタンD5が押下されると、友達リストが表示され、チャットに招待する友達を選択できるようになっている。そして、機能ボタンD6が押下されると、他の諸機能の選択が可能になり、例えば、メッセージの入力画面を表示させることができる。
次に、図28、図29、及び図31を参照して、第4実施形態における動作について説明する。
図31は第4実施形態の端末装置2aにおける処理の流れを示すフローチャートである。端末装置2aのCPU40は、何等かの入力があると、その入力内容を解析する(S2000)。入力された内容が、メッセージの入力画面に入力されたテキストであると判断した場合には(S2001)、そのテキストデータを予約支援サーバ1aに対して送信する(S2002)。但し、入力された内容に「地図」の文字が含まれている場合には、後述するように地図の表示要求であると判断されるので、予約支援サーバ1aには送信されない。
また、日程ボタンD3が押下された場合には、端末装置2aのCPU40は、カレンダーの表示要求があったと判断し(S2003)、図29に示すようなカレンダー画像C210を表示させる。このカレンダー画像C210は、例えばjavascript等を用いて表示されており、日の部分の画像が押下されると、その日に対応する情報が出力されるようになっている。
カレンダー画像C210のいずれかの日の部分の画像が押下されると、端末装置2aのCPU40は、カレンダーの日付の選択が行われた判断し(S2005)、選択の結果として出力される日付の情報を、テキストデータに変換する(S2006)。そして、このテキストデータを予約支援サーバ1aに送信する(S2007)。つまり、図28に示すようにカレンダー画像C210を表示させ、いずれかの日付の画像を押下して選択することにより、選択した日付の情報が予約支援サーバ1aに送信されることになる。このように、第2実施形態においては、カレンダー画像C210を用いて日程の入力が可能になっている。
場所ボタンD4が押下された場合には、端末装置2aのCPU40は、地図の表示要求があったと判断し(S2008)、図28に示すような地図画像C204を表示させる。この地図画像は、例えばjavascrip等を用いて表示されており、地域の部分の画像が押下されると、その地域に対応する情報が端末装置2aから出力されるようになっている。
地図画像C204のいずれかの地域の部分の画像が押下されると、端末装置2aのCPU40は、地域の選択が行われたと判断し(S2010)、選択の結果として出力される地域の情報を、テキストデータに変換する(S2011)。そして、このテキストデータを予約支援サーバ1aに送信する(S2012)。つまり、図28に示すように地図画像C204を表示させ、いずれかの地域の画像を押下して選択することにより、選択した地域の情報が予約支援サーバ1aに送信されることになる。このように、第2実施形態においては、地図画像C204を用いて都道府県あるいは住所の入力が可能になっている。
参加者ボタンD5が押下された場合には、端末装置2aのCPU40は、友達の招待要求があったと判断し(S2013)、メッセージ送受信システム上の友達リストを表示させる(S2014)。そして、いずれかの友達が選択された場合には、選択された友達を、チャットに招待する処理を行い、アプリケーション画面P4のメッセージ表示欄D2に、その友達のアイコン画像を表示させる(S2015)。
以上のように、第4実施形態においては、画像の選択によって情報の入力が可能な機能が付加されたカレンダー画像と地図画像を表示させることが可能であるが、カレンダー画像または地図画像の一部が押下された選択された場合には、テキストデータに変換して予約支援サーバ1aに送信するので、予約支援サーバ1aは、第1実施形態で説明したチャット機能を利用して送信されたデータと、第2実施形態の専用のアプリケーションソフトウェアを利用して送信されたデータとを区別することなく取り扱うことが可能になっている。従って、図21から図24のフローチャートに示した処理は、第4実施形態においても共通に実行される。また、チャット機能においてもカレンダー画像や地図画像からの選択が可能となり、ユーザの入力作業の負担が軽減されている。
図28及び図29の表示例を用いて、第4実施形態の動作例について説明する。まず、ユーザがゴルフ予約用の専用のアプリケーションソフトウェアを起動させると、図28に示すアプリケーション画面P4が表示される。最初に起動した場合には、図28に示すように、「ゴルフの予約をする人数を教えてくださいね。」というメッセージC200が表示されている。
この状態で、ユーザが「1人」という人数を示すメッセージC200を入力した場合には、端末装置2aのCPU40は、テキスト入力が行われたと判断し(S2001)、「1人」というテキストデータを予約支援サーバ1aに送信する(S2002)。このテキストデータを受信した予約支援サーバ1aのCPU30は、図21に示すように、予約人数が1人であると判断し(S1302:YES)、1人予約フラグをオン状態にする(S1303)。予約支援サーバ1aのCPU30は、住所履歴の有無を判断し(S1304)、例えば、住所履歴なしと判断した場合には(S1304:NO)、住所入力を要求するメッセージを端末装置2aに送信する(S1305)。
端末装置2aのCPU40は、予約支援サーバ1aから住所入力を要求するメッセージを受信すると、そのメッセージをメッセージ表示欄D2に表示させる。図28の例では、端末装置2aには、「おすすめのゴルフ場を探してみます。位置情報をおしえてください。」という住所入力要求メッセージC202が表示される。
ここで、ユーザが場所ボタンD4を押下し、あるいは、図28に示すように「とちぎの地図」というメッセージC203を入力した場合には、端末装置2aのCPU40は、地図の表示要求があったと判断し(S2008)、図28に示すように地図画像C204を表示させる(S2009)。図28の例のように、特定の場所の地図が指定された場合には、その場所の地図を表示させるようにすればよく、場所ボタンD4を押下された場合には、例えば、日本地図の画像を表示させるようにすればよい。地図画像は、拡大することが可能であり、詳細な場所の特定が可能になっている。
そして、地図画像C204において特定の地域が押下された選択された場合には、端末装置2aのCPU40は、地域が選択されたと判断し(S2010)、選択された地域をテキストデータに変換し(S2011)、そのデータを予約支援サーバ1aに送信する(S2012)。図28の例では、那須地区が押下されたので、「那須地区」という情報が予約支援サーバ1aに送信されることになる。
予約支援サーバ1aのCPU30は、図21に示すように、当該地域におけるお勧めのゴルフ場を検索する旨の確認メッセージを送信すると共にお勧めのゴルフ場の検索を行う(S1306、S1307)。図28の例では、ユーザの端末装置2aの表示部25には、「那須地区で探してみます。」というメッセージC205が表示される。
予約支援サーバ1aにおいては、地図画像において選択可能な地域のそれぞれについて、ユーザに対して提示可能なお勧めのゴルフ場の情報が推奨施設情報として予め記憶されており、端末装置2aから、例えば「那須地区」等の情報が送信された場合には、当該地区の1人予約可能なお勧めのゴルフ場の情報を抽出する。
ゴルフ場を抽出すると、予約支援サーバ1aのCPU30は、直近の土曜日の日程で、1人予約者のいる空き枠を検索する。そして、空き枠を抽出すると、予約支援サーバ1aのCPU30は、端末装置2aに当該空き枠の内容を表示させる(S1308)。さらに、予約支援サーバ1aのCPU30は、当該空き枠における他の1人予約者の情報を端末装置2aに対して提示する(S1308)。
図28の例では、端末装置2aにおいて、「10月22日の1人予約、○○GCで7:00スタート、7,000円の枠が空いています。既に1人分の予約が入っています。メッセージを表示します」というメッセージC206が表示される。さらに、「「20代女性です。初心者ですけど、月イチくらいで気軽に楽しめるゴルフ友達探してます。」・・・とのことです。一緒に行きますか?」というメッセージC207が表示される。
このような情報の提示に対して、図28に示すように、ユーザが「いいえ」のような否定的なメッセージC208を入力した場合には、予約支援サーバ1aのCPU30は、提示した空き枠に対する参加が拒否されたと判断し(S1309:NO)、図22に示すように日程の入力を要求するメッセージを端末装置2aに表示させる(S100)。
図29は、図28に示す表示例以降の端末装置2aにおける表示例を示す図である。図29の例では、端末装置2aには、「行きたい日を教えてください。」という日程入力要求メッセージC209が表示される。
この状態で、ユーザが日程ボタンD3を押下すると、端末装置2aのCPU40は、カレンダーの表示要求があったと判断し(S2003)、図29に示すようにカレンダー画像C210を表示させる。ユーザがカレンダーの例えば27日の部分を押下すると、端末装置2aのCPU40は、カレンダーの日付が選択されたと判断し(S2005)、選択された日付をテキストデータに変換する。図29の例では、10月27日が選択されているので、10月27日のテキストデータが予約支援サーバ1aに送信されることになる。
この日付の情報を受信した予約支援サーバ1aのCPU30は、図22に示すように、メッセージ内容の解析の結果(S101)、日付の入力があったと判断し、ラベルLB1に続く処理を行う。つまり、予約支援サーバ1aのCPU30は、日付を仮登録する(図S201)。この場合、図29の例では、「10月27日ですね。」という確認メッセージが表示される。そして、予約支援サーバ1aのCPU30は、ゴルフ場が仮登録済みかどうかを判断し(S202)、ゴルフ場が仮登録されていない場合には(S202:NO)、住所入力済みかどうかを判断する(S204)。図28及び図29の例では、既に住所が入力されているので(S204:YES)、図23に示すように、お勧めのゴルフ場の検索を行う(S802)。
以下、第1実施形態と同様に、提示された情報に対して承認または拒否を示すメッセージをユーザの端末装置2aから送信することにより、第1実施形態と同様に、1人予約であっても、また、複数人数の予約であっても、簡易にゴルフ場の予約を行うことができる。
なお、第4実施形態においては、1人予約用の機能ボタンを設け、この機能ボタンが押下された時に、1人予約を指定できるようにしてもよいし、あるいは、1人予約用のボタンをアプリケーション画面P4に表示させるようにしてもよい。1人予約用の機能ボタンの押下により1人予約が指定された場合には、例えば、「1人予約」というテキストメッセージに変換して予約支援サーバ1aに送信すればよい。その結果、上述した場合と同様に、1人予約処理が行われることになる。
なお、図28及び図29に示す例では、メッセージが投稿された日付や時間、「既読」の文言の記載を省略している。
<変形例>
本発明は、上述した実施形態に限定されるものではなく、以下に述べる各種の変形が可能である。また、各変形例及び実施形態は、適宜、組み合わせてもよいことは勿論である。
<変形例1>
また、上述した第4実施形態では、専用アプリケーションソフトウェアのアプリケーションの端末装置2aへのインストール時に、カレンダー画像及び地図画像を端末装置2aに記憶させる例について説明したが、カレンダー画像及び地図画像については、予約支援サーバ1aからその都度端末装置2aに送信するようにしてもよい。この場合には、例えば、端末装置2aは、カレンダー画像または地図画像の表示を求める操作がユーザからなされた場合や、ユーザの入力内容に応じて端末装置2aが自動的にカレンダー画像または地図画像を取得する場合に、カレンダー画像または地図画像の送信要求を予約支援サーバ1aに対して行う。カレンダー画像または地図画像の送信要求を受信した予約支援サーバ1aは、予め記憶部16に記憶しているカレンダー画像または地図画像を、当該端末装置2aに対して送信する。
<変形例2>
上述した第1実施形態においては、1人予約の際に、他の1人予約者にコメントを残す場合と残さない場合を選択可能な例について説明したが、他の1人予約者のコメントを表示する場合と表示しない場合を選択可能に設定するようにしてもよい。
図32にこの変形例2における1人予約処理のフローチャートを示す。図32は、第1実施形態の図21に示すフローチャートに対応するフローチャートである。図32の場合には、予約支援サーバ1のCPU30は、お勧めの空き枠の抽出処理を終えると(S1307:YES)、他の1人予約者の情報を表示させるかどうかの確認メッセージを端末装置2に表示させる(S1340)。例えば、「既に他の1人予約者がいます。情報を表示させますか?」のような確認メッセージを端末装置2に表示させる。
この確認メッセージに対して、ユーザが肯定的なメッセージを入力した場合には、予約支援サーバ1のCPU30は、ユーザが情報の表示を希望していると判断して(S1340:YES)、第1の実施形態と同様に他の1人予約者の性別、年齢等の情報を端末装置2に提示する(S1308)。
しかし、確認メッセージに対して、ユーザが否定的なメッセージを入力した場合には、予約支援サーバ1のCPU30は、ユーザが情報の表示を希望していないと判断して(S1340:NO)、他の1人予約者の情報の提示は行わずに、提示した空き枠に参加するかどうかの確認メッセージを端末装置2に表示させる。例えば、「一緒に行きますか?」のようなメッセージを端末装置2に表示させる。
これ以降の処理は第1実施形態と同様なので説明を省略する。
<変形例3>
さらに、上述した各実施形態では、1人予約の際に、他の1人予約者にコメントを残す場合と残さない場合を選択可能な例について説明したが、さらに詳細に公開範囲を設定するようにしてもよい。この変形例3においては、登録部14は公開設定に関する情報を登録する処理部としての機能をも有する。図34は、この変形例における1人予約処理のフローチャートを示す。図21と異なる部分を中心に説明する。図34に示すように、この変形例3では、予約支援サーバ1のCPU30は、1人予約の本登録を行った後に(S1310)、コメントを残すかどうかを判断し(S1311)、コメントを残す場合には(S1311:YES)、コメントの登録を行う(S1312)。そして、予約支援サーバ1のCPU30は、その後に個人情報の公開設定を行う(S1350)。
公開設定は、例えば、図33に示すように、「公開設定をします。次の中から番号を入力してください。1.個人情報は公開しない、2.プロフィール公開、3.メッセージ公開、4.プロフィールとメッセージを公開」というメッセージC303を送信する。そして、例えば、図33に示すように、ユーザが「3」というメッセージC304を送信した場合には、メッセージを残すと判断し、図示しないが、例えば「ではメッセージをどうぞ。」等のメッセージを送信する。公開設定において「4」が選択された場合も、メッセージを残す旨が選択されたと判断する。そしてメッセージを受信すると、先に受信した公開設定とともに、予約ID及び予約者UIDと関連付けて記憶する(S1350)。
一方、公開設定において「1」または「2」が選択された場合、その旨を予約ID及び予約者UIDと関連付けて記憶する(S1350)。
なお、公開設定の記憶方法は任意であり、受信した「3」という番号自体を記憶させてもよいし、フラグを用いてもよい。
以上のような公開範囲の設定を行った後においては、予約支援サーバ1のCPU30は、お勧めの空き枠の抽出後(S1307)、他の1人予約者の情報を提示する際に(S1308)、前記設定した公開範囲を参照する。
具体的には、他の1人予約者が、公開設定において「1.個人情報は公開しない」を選択していた場合、CPU30は当該予約情報の書誌的事項、例えばスタート時間、スタートホール、料金、のみを端末装置2に送信する。「2.プロフィール公開」を選択していた場合、CPU30は、上記予約情報の書誌的事項に加えて、当該他の1人予約者のプロフィール、例えば氏名、性別や「30歳台」等の年齢を、端末装置2に送信する。「3.メッセージ公開」を選択していた場合、CPU30は、上記予約情報の書誌的事項に加えて、当該他の1人予約者の残したメッセージを、端末装置2に送信する。「4.プロフィールとメッセージを公開」を選択していた場合、CPU30は、上記予約情報の書誌的事項、プロフィール情報、メッセージを、端末装置2に送信する。これ以降の処理は第1実施形態と同様なので説明を省略する。
なお、図33に示す例では、メッセージが投稿された日付や時間、「既読」の文言の記載を省略している。
<変形例4>
上述した各実施形態及び各変形例においては、メッセージ送受信サービスにおけるチャット機能や、専用のアプリケーションソフトウェアを用いて1人予約者の残したメッセージ等を確認するようにしたが、本発明はこのような例に限定されるものではない。例えば、所定の予約サイトに「1人予約」のボタンを設けておき、このボタンが押下されたことと、ゴルフ場が選択されたことを予約サイトのサーバが認識した場合に、当該ゴルフ場で他の1人予約者の情報を検索し、画面の全部または一部に表示するようにしてもよい。この場合、1人だけ抽出するようにしてもよい、リスト状に表示するようにしてもよい。
<変形例5>
上述した各実施形態および各変形例では、ゴルフ場の予約に予約支援サーバを用いる例について説明したが、本発明はこのような例に限定されるものではなく、他のスポーツの予約、映画や劇場等の予約、宿泊施設の予約等にも応用することが可能である。
<変形例6>
上述した各実施形態においては、メッセージ送受信サービスにおけるチャット機能や、専用のアプリケーションソフトウェアを用いて、予約支援サーバ1と対話形式でゴルフ場の予約を行う例について説明したが、本発明は、掲示板や一般的なメールも利用することが可能である。
<変形例7>
上述した各実施形態においては、予約支援装置の一例として予約支援サーバ1を用いる構成を説明したが、本発明の機能が実現できるならば、複数のサーバを用いて本発明の機能を実現させる構成や、例えば予約支援サーバ1に組み込まれた機能と予約サーバ5に組み込まれた機能とが1つのサーバに組み込まれた構成であってもよい。すなわち、サーバ構成や機能の集約、分散は自在である。
<変形例8>
上述した各実施形態及び各変形例においては、1人予約フラグを用いたが、本発明はこのような例に限定されるものではなく、1人予約であることを識別できる方法であればどのような方法も用いることができる。
<その他>
なお、本発明における機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することとしてもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、インターネットやWAN、LAN、専用回線等の通信回線を含むネットワークを介して接続された複数のコンピュータ装置を含んでもよい。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、ネットワークを介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。また、上記プログラムは、上述した機能の一部を実現するためのものであってもよい。さらに、上述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。また、本発明における機能またはその一部を実現するためのプログラムを配信する配信サーバ及び当該配信サーバによる配信に用いるために使用される、当該プログラムが記憶された備えられた記憶媒体についても、本発明の範囲に含まれる。
また、上述した機能の一部または全部を、LSI(Large Scale Integration)等の集積回路として実現してもよい。上述した各機能は個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
なお、本発明は上述の実施形態及び変形例に限定されるものではなく、本発明の趣旨の範囲内での変更は本発明に含まれるものである。