【新規性喪失の例外の表示】特許法第30条第2項適用申請有り 平成29年3月8日、平成29年4月19日、平成29年7月19日、平成29年8月28日、https://itunes.apple.com/jp/app/id1049651704を通じて発表
【解決手段】コンピュータが、人数を含む予約条件を受けるステップと、コンピュータが、1以上の日付についての予約状況を表示するステップであって、1以上の日付の予約状況は、日付に対応した第1の方向と、時刻に対応した第2の方向とを有し、第1の方向に、予約条件を満たす1以上の日付が表示され、1以上の日付のうちの各日付について、第2の方向に当該日付の予約状況が表示され、当該日付の予約状況において、予約条件を満たす時間に対応した部分が、それ以外の部分とは異なる態様で表示されることを特徴とし、予約条件を満たす時間は、上記人数で予約可能という条件を少なくとも満たす時間であり、予約条件を満たす日付は、予約条件を満たす時間が存在するという条件を少なくとも満たす日付である、ステップとを含む方法。
請求項1に記載の方法であって、前記予約条件は希望時刻を更に含み、前記1以上の日付についての前記予約状況は、前記1以上の日付のうちの各日付の前記予約状況において、前記予約条件を満たす時間のうち、前記希望時刻以降の最先の開始時刻を有する所定の長さの時間に対応した部分が、それ以外の部分とは異なる態様で表示されることを更に特徴とする、方法。
請求項1又は2に記載の方法であって、前記予約条件は日付限定条件を更に含み、前記予約条件を満たす1以上の日付のうちの各日付は、前記日付限定条件を更に満たす日付であり、前記日付限定条件は、
1以上の曜日と、
平日と、
祝日と、
祝前日と、
月初と、
月中と、
月末と、
1以上の日付と
のうちの1以上である、方法。
請求項1から3のうちの何れか一項に記載の方法であって、前記予約条件は時間限定条件を更に含み、前記予約条件を満たす時間は、前記時間限定条件を更に満たす時間であり、前記時間限定条件は、
ランチと、
ディナーと、
時間そのものと
のうちの1以上である、方法。
【発明を実施するための形態】
【0020】
1 本発明の一実施形態
以下、図面を参照して、本発明の一実施形態について説明する。なお、以下の説明において、「時刻」は、時の流れにおける1以上の点を特定するものとして用いている。例えば、日付を特定しない「11:00」は、時の流れにおける無数の点を特定する時刻である一方で、「2017年11月2日」の「11:00」は、時の流れにおける1点を特定する時刻である。また、「時間」は時の流れに沿った1以上の線分を特定するものとして用いている。例えば、日付を特定しない「11:00〜14:00」は、時の流れに沿った無数の線分を特定する時間であり、「2017年11月2日」の「11:00〜14:00」は、時の流れに沿った1つの線分を特定する時間であり、「2017年11月2日」の「11:00〜14:00」及び「19:30〜25:00」は、時の流れに沿った2つの線分を特定する時間である。時の流れに沿った1つの線分は、当該線分の両端を特定する時刻(開始時刻及び終了時刻)によって特定する、当該線分の一方の端を特定する時刻(開始時刻又は終了時刻)と当該線分の長さ(任意の単位の時の長さ)とによって特定する等、任意の形式で特定することができる。
【0021】
1−1 一実施形態に係る予約システム
図1は、本発明の一実施形態に係る例示の予約システム100の構成を表している。
【0022】
110は、検索システムのユーザが使用するコンピュータであるクライアントを示している。
図1ではクライアント110は1つのみ描かれているが、実際には複数存在してよい。以下の説明では、「ユーザ」は飲食店等の店員であり、クライアント110は店舗の備品又は店員の私物であると仮定している。即ち、予約者(飲食店等の客)から電話等で予約の連絡を受けた店員が、クライアント110を操作するという想定である。しかしながら、「ユーザ」は予約者であり、クライアント110は予約者の私物であってもよい。また、クライアント110は、タッチパネル・ディスプレイを有するタブレット型コンピュータであると仮定しているが、スマートフォンやパーソナル・コンピュータ(PC)等の、ユーザに対して情報を表示する手段とユーザから入力を受ける手段とを有する任意のコンピュータであってよい。「コンピュータ」については、「3 コンピュータ」の節も参照されたい。
【0023】
120は、クライアント110と通信するコンピュータであるサーバを示している。
図1ではサーバ120は1つのみ描かれているが、実際には複数台のコンピュータから構成される場合がある。サーバ120は、飲食店等の店舗に設置されもよいし、店舗から離れた場所に設置されてもよい。
【0024】
130は、1以上のネットワーク(サブネットワーク)から構成されるネットワークを示している。ネットワーク130は、ローカル・エリア・ネットワーク(LAN)及びインターネット等のワイド・エリア・ネットワーク(WAN)の一方又は双方を含んでいてよい。クライアント110とサーバ120とは、ネットワーク130を介して通信可能である。
【0025】
1−2 クライアント110の概要
図2は、クライアント110が実行する例示の処理200のフローチャートを表している。なお、処理200を含む、以下に説明するコンピュータが実行する処理(以下、「例示処理」という。)は、プログラムがコンピュータに、より詳細には、当該コンピュータのプロセッサに実行させるものであってよい。また、そのようなプログラムは、公知のコンピュータ可読記憶媒体、より詳細には、例えば非一時的コンピュータ可読記憶媒体に記憶することができる。更に、例示処理が含むステップは、一部を省略することができ、その実行順序を変更することができ、例示処理には、更なるステップを追加することができる。
【0026】
ステップ210及び220は、それぞれ、予約条件を入力するためのグラフィック(あるいは、「グラフィカル」。以下同様。)・ユーザ・インターフェース(以下、「予約条件入力GUI」という。)を表示するステップ及び予約条件の入力を受けるステップを示している。以下、予約条件入力GUI及び予約条件の入力について、例示の予約条件入力GUI300が表わされた
図3を参照して説明する。
【0027】
310は、予約条件として日付限定条件を入力するためのユーザ・インターフェース・コントロール(以下、「コントロール」という。)を示している。日付限定条件は、1以上の曜日と、祝日と、祝前日と、月初と、月中と、月末と、1以上の日付とのうちの1以上であってよい。
図3において日付限定条件として表示されている項目は一部であり、コントロール310は、上下にフリックすることによってその表示がスクロールし、隠れていた項目が表示されるように構成されている。また、コントロール310は、項目をタップすることにより、タップされた項目に対応した日付限定条件が入力されるように構成されている。
図3には、例示として、日付限定条件として少なくとも金及び土が入力された状態に対応する。
【0028】
320は、予約条件として時間限定条件を入力するためのコントロールを示している。時間限定条件は、ランチ及びディナーの一方または双方であってよい。また、GUI300に具体的な時間(例えば、「14:00〜19:00」)を入力するためのコントロールを設け、時間そのものを時間限定条件として用いてもよい。コントロール320は、項目をタップすることにより、タップされた項目に対応した時間限定条件が入力されるように構成されている。
図3は、例示として、時間限定条件としてディナーが入力された状態に対応する。
【0029】
330は、予約条件として希望時刻を入力するためのコントロールを示している。
図3において希望時刻として表示されている項目は一部であり、コントロール330は、上下にフリックすることによってその表示がスクロールし、隠れていた項目が表示されるように構成されている。また、コントロール330は、項目をタップすることにより、タップされた項目に対応した希望時刻が入力されるように構成されている。
図3は、例示として、希望時刻は未定であるという入力がなされた状態に対応する。
【0030】
340は、予約条件として人数を入力するためのコントロールを示している。
図3において人数として表示されている項目は一部であり、コントロール340は、上下にフリックすることによってその表示がスクロールし、隠れていた項目が表示されるように構成されている。また、コントロール340は、項目をタップすることにより、タップされた項目に対応した人数が入力されるように構成されている。
図3は、例示として、人数として2名(2人)が入力された状態に対応する。なお、人数以外の予約条件は必須でなく、従って、GUI300においてコントロール310〜330は設けなくてもよい。また、更なる予約条件を入力するためのコントロールを設けてもよい。
【0031】
350は、入力された予約条件に基づいて、予約可能な日付及び時間の取得を開始するためのコントロールである。コントロール350のタップにより、処理はステップ230(
図2を参照)に進む。
【0032】
図2に戻ると、230は、予約条件を満たす1以上の日付及び当該1以上の日付のうちの各日付における予約条件を満たす時間(以下、「予約可能日付時間」という。)を取得するステップを示している。「予約条件を満たす日付」及び「予約条件を満たす時間」については、後述する。なお、取得される予約可能日付時間は、全ての予約可能日付時間である必要はない。本実施形態において、ステップ230は、予約条件をサーバ120に送信し、予約可能日付時間をサーバ120から受信するステップを含む。サーバ120が予約可能日付時間をどのよう取得するのかについては、後述する。
【0033】
240は、取得した予約可能日付時間に基づき、1以上の日付についての予約状況を表示するステップを示している。以下、1以上の日付についての予約状況の表示について、
図4A及び4B(以下、集合的に「
図4」ともいう。)を参照して説明する。
【0034】
図4Aを参照すると、400は、1以上の日付についての予約状況の表示を含む、例示の予約可能日付時間を一覧するためのグラフィック・ユーザ・インターフェース(以下、「予約可能日付時間一覧GUI」という。)を示している。なお、GUI400は、日付限定条件及び時間限定条件がなく、希望時刻が未定であり、人数が2人という状況に対応したものである。
【0035】
410は、日付に対応した方向を表す矢印を示している。GUI400においては、当該方向に予約条件を満たす1以上の日付が表示される。
図4において1以上の日付は降順に表示されているが、昇順に表示されても、あるいは、任意の基準(例えば、直近の土日が予約条件を満たしている場合、それより前の平日が予約条件を満たしていたとしても、最上部に表示する)で並べられて表示されてもよい。なお、
図4においては予約条件を満たす1以上の日付のみが表示されているが、予約条件を満たさない日付についての表示を排除する意図はない。即ち、日付に対応した方向に予約条件を満たす1以上の日付を表示することは、当該方向に予約条件を満たす1以上の日付のみを表示することと、当該方向に予約条件を満たさない1以上の日付とともに予約条件を満たす1以上の日付を表示することとを含む。予約条件を満たさない1以上の日付とともに予約条件を満たす1以上の日付を表示する場合、表示する予約条件を満たさない1以上の日付は、任意の基準により選択されたものであってもよいし、あるいは、予約条件を満たさない日付を含む連続した1以上の日付を表示してもよい。
【0036】
415は、時刻に対応した方向を表す矢印を示している。GUI400においては、各日付について、当該方向に当該日付における状況(例えば、どの時間が予約条件を満たすか)が表示される。
【0037】
420は、1以上の日付のうちの1つの日付(例示として、2017年11月2日)についての予約状況を示している。予約状況420は、当該日付の一日を構成する複数の所定の長さの時間(以下、「単位時間」という。)にそれぞれ対応した複数の部分を含んでいる。
図4におけるこの「所定の長さ」は30分であるが、15分や60分、1分等、任意の長さであってよい。430は、ある日付のある単位時間(例示として、2017年11月2日の22:30〜23:00)に対応した部分である。なお、
図4において、1日は6:00〜30:00(翌日の6:00)であるものとして扱われているが、0:00〜24:00(翌日の0:00)とする等、1日の定義は任意である。また、
図4において、予約状況420として、1日の全時間(6:00〜30:00)に対応した部分が表示されているが、1日の一部の時間(例えば、8:00〜26:00)に対応した部分のみが表示されてもよい。
【0038】
予約状況420において、予約条件を満たす時間に対応した部分は、それ以外の部分とは異なる態様で表示される。440は予約条件を満たす時間に対応した部分の1つ、445はそれ以外の部分の1つをそれぞれ示している。
図4においては、異なる態様の一例として、部分440は白抜きで、部分445はグレーの塗りつぶしでそれぞれ表示されている。異なる態様は、部分440と部分445とを表示上区別できるのであれば、どのようなものであってもよい。なお、異なる態様での表示は、部分440と部分445とのうちの一方を表示し、他方について特段の表示をしないことによって背景をもって他方の表示とすることを含む。また、410に関して上述したように、予約条件を満たさない日付が表示されている場合、当該日付についての予約状況は、全て、部分445に相当する表示とすることができる。
【0039】
図4Bを参照すると、450は、1以上の日付についての予約状況の表示を含む、別の例示の予約可能日付時間一覧GUIを示している。なお、GUI450は、希望時刻として19:00の入力がなされた以外、GUI400と同様の状況に対応したものである。また、以下に述べる460が示すもの以外、
図4Bは
図4Aと同一である。
【0040】
460は、ある日付(例示として、2017年11月2日)における予約条件を満たす時間のうち、希望時刻以降の最先の開始時刻を有する所定の長さの時間(以下、「好適予約可能時間」という。)を示している。
図4Bにおけるこの「所定の長さ」は150分であるが、90分や2時間等、任意の長さであってよい。好適予約可能時間に対応した部分は、それ以外の部分とは異なる態様で表示することができる。
図4Bにおいては、異なる態様の一例として、好適予約可能時間に対応した部分には角丸四角形が重ねて表示され、そうでない時間には特段の表示がなされていない。異なる態様は、好適予約可能時間とそうでない時間とを表示上区別できるのであれば、どのようなものであってもよい。各日付における好適予約可能時間は、取得した予約可能日付時間からクライアント110が計算してもよいし、予約可能日付時間とは別にサーバ120から取得してもよい。
【0041】
なお、予約可能日付時間「一覧」GUIと称されているものの、GUI400及び450(以下、「GUI400等」という。)においては、取得した予約可能日付時間を全て表示する必要はない。GUI400等は、上下左右にフリックすることによってその表示がスクロールし、隠れていた部分が表示されるように構成されてもよい。また、GUI400等は、上下にフリックすることによって、更なる予約可能日付時間が取得されて表示されるように構成されてもよい。
【0042】
また、GUI400等は、適切な部分をタップすることにより、タップした部分に対応した日付についての処理が実行されるように構成することができる。このような処理の一例は、従来技術を用いて、当該日付についての詳細な予約状況を表示し、実際に予約を行う処理である。
【0043】
1−3 サーバ120の概要
図5は、サーバ120が実行する、予約可能日付時間を取得するための例示の処理500のフローチャートを表している。従って、本実施形態において、この処理はクライアント110から予約条件を受信することに応答して開始し、この処理の終了後、サーバ120は取得した予約可能日付時間をクライアント110に送信することができる。
【0044】
510は、予約可能日付時間を初期化するステップを示している。ステップ510は、具体的には、予約可能日付時間を表すデータ構造を初期化するステップであってよい。そのようなデータ構造の一例は、日付を表すデータ構造及び時間を表すデータ構造のセットを要素とするリストであり、初期化の一例は、空の当該リストを作成する処理であってよい。「時間を表すデータ構造」の一例については、後述する。
【0045】
520は、最初の日付を選択するステップを示している。最初の日付は、任意の日付であってよい。例えば、最初の日付は、ステップ520を実行したときの日付や、当該日から所定の日数が経過した日であることができる。
【0046】
530は、選択した日付が営業日であるかを判定するステップを示している。サーバ120は、日付及び曜日(毎週特定の曜日が休みの場合)の一方又は双方の形式で定休日を予め記憶しておくことができ、ステップ530は、具体的には、選択した日付と定休日である日付との比較、及び、選択した日付の曜日と定休日である曜日との比較の一方または双方であることができる。選択した日付が営業日である場合にはステップ540に進み、そうでない場合にはステップ580に進む。
【0047】
540は、選択した日付が日付限定条件を満たすかを判定するステップを示している。ステップ540は、具体的には、選択した日付の曜日が日付限定条件である1以上の曜日に含まれるかの判定であることができる。また、サーバ120は、祝日及び祝前日の日付を予め記憶しておくことができ、ステップ540は、具体的には、選択した日付と祝日又は祝前日の日付との比較であることができる。更に、サーバ120は、月初と判定すべき日の範囲(例えば、1日〜10日)、月中と判定すべき日の範囲(例えば、11日〜20日)及び月末と判定すべき日の範囲(例えば、21日〜31日)を予め記憶しておくことができ、ステップ540は、具体的には、選択した日付の日が月初、月中及び月末のうちの1以上と判定すべき日の範囲に含まれるかの判定であることができる。更にまた、ステップ540は、具体的には、選択した日付が日付限定条件である1以上の日付に含まれるかの判定であることができる。選択した日付が日付限定条件を満たす場合にはステップ550に進み、そうでない場合にはステップ580に進む。
【0048】
550は、選択した日付における予約可能時間を取得するステップを示している。なお、予約可能時間を取得することは、空の予約可能時間を取得すること即ち予約可能時間が存在しないという結果を取得することを含む。ステップ550は、選択した日付における予約可能時間の取得を試みるステップと言い換えることができる。ステップ550の詳細については、後述する。
【0049】
560は、選択した日付において予約可能時間が存在するかを判定するステップを示している。ステップ560は、具体的には、予約可能時間が空でないかを判定するステップであることができる。予約可能時間が存在する場合にはステップ570に進み、そうでない場合にはステップ580に進む。
図6に関して後述するステップ646、670及び680の実行の結果として、ステップ560は、少なくとも、希望時刻以降に開始する所定の長さの予約可能時間が存在するかを実質的に判定することができる。
【0050】
570は、選択した日付及びその予約可能時間を予約可能日付時間に追加するステップを示している。予約可能時間が存在しない場合には予約可能日付時間への追加がなされないことからも明らかなように、「予約条件を満たす日付」とは、予約可能時間が存在する即ち予約条件を満たす時間が存在するという条件を少なくとも満たす日付である。ステップ570は、具体的には、選択した日付を表すデータ構造及びその予約可能時間を表すデータ構造のセットを、予約可能日付時間を表すリストに追加するステップであることができる。
【0051】
580は、次の日付を選択すべきかを判定するステップを示している。「次の日付」は、処理500を実行してから未だ選択されていない任意の日付であってよく、例えば、現在選択されている日付の翌日であってよい。また、次の日付を選択すべきかの判定基準は任意である。例えば、予約可能日付時間として追加された日付及び時間のセットが所定数に達していない場合に、次の日付を選択すべきと判定することができる。また、例えば、次の日付として選択される日付が所定の日付より前である場合に、次の日付を選択すべきと判定することができる。次の日付を選択すべきと判定した場合にはステップ590に進み、そうでない場合には処理500は終了する。
【0052】
590は、実際に次の日付を選択するステップを示している。
【0053】
処理500の終了時点での予約可能日付時間が、取得される予約可能日付時間である。
【0054】
図6は、ステップ550の詳細である、選択した日付における予約可能時間を取得するための例示の処理600のフローチャートを表している。なお、処理600は、飲食店等が24時間営業でないと仮定している。飲食店等が24時間営業である場合には、選択した日付の時間だけでなく、その翌日の日付の少なくとも一部の時間も考慮するように、処理600を変形してよい。
【0055】
610は、予約可能時間を初期化するステップを示している。ステップ610は、具体的には、予約可能時間としての時間を表すデータ構造を初期化するステップであってよい。そのようなデータ構造の一例は、一日の長さ/単位時間の長さ(例えば、1440分/30分=48)を要素数とするブール型の配列であり、初期化の一例は、配列を作成し、各要素に初期値を代入する処理であってよく、また、最終的にtrueの要素に対応する時間を予約可能時間として扱うならば、初期値はfalseであってよい。
【0056】
620は、最初の客席を選択するステップを示している。ここで、「客席」は、飲食店等における1以上の席を有する1まとまりの単位であり、具体的には、1つの客席は1つのテーブル席(複数の席を有する)や1つのカウンター席(1つの席のみを有する)等であることができる。最初の客席は、飲食店等に存在する全ての客席のうちの任意の客席であってよい。
【0057】
630は、選択した客席において、予約条件の人数が収容可能かを判定するステップを示している。サーバ120は、飲食店等に存在する全ての客席のうちの各客席に収容可能な最大人数を示す情報を予め記憶しておくことができる。
図7Aは、そのような情報を記憶した例示のテーブル700を表している。ステップ630は、具体的には、当該テーブルを用いて、選択した客席の最大収容人数を取得し、当該最大収容人数が予約条件の人数以上かを判定するステップであってよい。予約条件の人数が収容可能な場合にはステップ640に進み、そうでない場合にはステップ650に進む。
【0058】
640は、選択した客席について、選択した日付における未予約時間を取得するステップを示している。サーバ120は、ある日付にある客席に入っている予約の時間を示す情報を予め記憶しておくことができる。
図7Bは、そのような情報を記憶した例示のテーブル750を表している。テーブル750における各行は1つの予約に対応し、「…」は予約の省略を示している。テーブル750は例示であり、各行において、予約者の名前や連絡先等、更なる情報を含む列を設けてもよい。ステップ640は、具体的には、当該テーブルを用いて、選択した日付に選択した客席に入っている予約の時間を取得し、未予約時間としての時間を表す配列を作成し、当該配列の、取得した予約の時間に対応する要素にfalseを、そうでない要素にtrueを代入する処理であってよい。
【0059】
642は、未予約時間から営業時間外の時間を除外するステップを示している。サーバ120は、通常の営業時間及び特定の日の営業時間の一方又は双方を予め記憶しておくことができ、ステップ642は、未予約時間としての時間を表す配列の、選択した日の営業時間外の時間に対応する要素にfalseを代入する処理であることができる。
【0060】
644は、未予約時間から時間限定条件を満たさない時間を除去するステップを示している。サーバ120は、ランチに対応した時間(例えば、11:00〜14:00)及びディナーに対応した時間(例えば、18:00〜21:00)を予め記憶しておくことができ、ステップ644は、具体的には、時間限定条件が時間そのものでない場合に当該条件を対応した時間に変換し、未予約時間としての時間を表す配列の、時間限定条件を満たさない時間(例えば、ランチに対応した時間の外の時間)に対応する要素にfalseを代入する処理であることができる。
【0061】
646は、未予約時間から所定の長さ未満の連続した時間を除外するステップを示している。ステップ646は、具体的には、未予約時間としての時間を表す配列を最初の要素から順にチェックし、trueである要素が見つかった場合、次にfalseである要素の直前の要素(次にfalseである要素が見つかる前に最後の要素をチェックした場合には最後の要素。以下同様。)までの要素数を求め、当該要素数が所定の数(即ち、所定の長さ/単位時間の長さ)未満であった場合、trueである要素からfalseである要素の直前の要素までの各要素にfalseを代入するという処理を、配列の最後の要素をチェックするまで繰り返す処理であってよい。なお、ステップ646におけるこの「所定の長さ」は任意であり、例えば、2時間であってよいが、
図4Bに関して上述した「予定の長さ」と一致させることが好ましい。また、この「所定の長さ」(ステップ646に関するもの及び
図4Bに関して上述したものの双方を含む)は、時刻の関数であってもよく、例えば、18:00以降を開始時刻とする連続した時間については150分とし、そうでない連続した時間については90分とすることができる。これによれば、ランチに係る「所定の時間」と、ディナーに係る「所定の時間」とを異なるように扱うことが可能である。
【0062】
648は、未予約時間を予約可能時間に追加するステップを示している。ステップ630〜646の実行の結果として、ステップ648の実行の時点における未予約時間は、選択された客席に対して予約が可能な時間を表すことになる。予約可能時間への追加が、飲食店等に存在する何れかの客席において予約条件の人数が収容可能でなければ行われないことからも明らかなように、「予約条件を満たす時間」とは、予約条件の人数で予約可能という条件を少なくとも満たす時間である。ステップ648は、具体的には、予約可能時間としての時間を表す配列の各要素に、当該要素と、未予約時間としての時間を表す配列の対応する要素との論理OR演算結果を代入する処理であることができる。
【0063】
650は、次の客席が存在するかを判定するステップを示している。「次の客席」は、飲食店等に存在する全ての客席のうち、処理600を実行してから未だ選択されていない任意の客席であってよい。次の客席が存在する場合にはステップ660に進み、そうでない場合にはステップ670に進む。
【0064】
660は、実際に次の客席を選択するステップを示している。
【0065】
670は、希望時刻以降に開始する予約可能時間が存在するかを判定するステップを示している。ステップ670は、具体的には、予約可能時間としての時間を表す配列の、希望時刻に対応する要素以降にtrueである要素が存在するかを判定する処理であることができる。希望時刻以降を開始時刻とする予約可能時間が存在する場合には処理600は終了し、存在する場合にはステップ680に進む。
【0066】
ステップ680は、予約可能時間を空にするステップを示している。この処理は、ステップ610と同様のステップであってよいが、目的が異なる。即ち、ステップ680は、希望時刻以降を開始時刻とする予約可能時間が存在しない場合に、選択した日付における予約可能時間は結局のところ存在しないものとして扱うためのステップである。
【0067】
処理600の終了時点の予約可能時間が、取得される選択した日付における予約可能時間である。具体的には、予約可能時間としての時間を表す配列においてtrueである要素に対応した時間が、選択した日付における予約可能時間であり、従って、trueである要素が存在しなければ、選択した日付における予約可能時間は空であり、存在しないということになる。また、特にステップ646、670及び680の実行の結果として、予約可能時間が空でない即ち存在するのであれば、希望時刻以降を開始時刻とする所定の長さの予約可能時間が存在することになる。
【0068】
2 本発明の別実施形態
図8は、本発明の別の実施形態に係る予約システムの構成例を表している。
【0069】
810は、検索システムのユーザが使用するコンピュータであって、クライアント110(
図1を参照)及びサーバ120(
図1を参照)の双方の機能を有するものを示している。コンピュータ810は、クライアント110及びサーバ120の双方が実行する上述した処理を実行し、記憶している情報を記憶しており、従って、ネットワーク130を介したクライアント110とサーバ120との間の通信に係る処理は、コンピュータ810の内部でなされることになる。
【0070】
図9は、本発明のまた別の実施形態に係る予約システムの構成例を表している。
【0071】
910は、検索システムのユーザが使用するコンピュータであるクライアントを示している。クライアント910は、クライアント110と同一である。
【0072】
920は、クライアント910と通信するコンピュータであるサーバを示している。サーバ920は、サーバ120の機能を有するほか、クライアント110の機能も有している。従って、サーバ920は、クライアント110及びサーバ120の双方が実行する上述した処理を実行し、記憶している情報を記憶している。サーバ920は、飲食店等の店舗に設置されることが多いであろう。
【0073】
930は、1以上のネットワーク(サブネットワーク)から構成されるネットワークを示している。ネットワーク930は、ネットワーク110と同一であってよいが、LANのみから構成されることが多いであろう。
【0074】
3 コンピュータ
図10は、コンピュータのハードウェア構成の一例を表している。同図に示すように、コンピュータ1000は、主に、プロセッサ1010と、主記憶装置1020と、補助記憶装置1030と、ユーザ・インターフェース1040と、通信インターフェース1050とを備えており、これらはアドレスバス、データバス、コントロールバス等を含むバスライン1060を介して相互に接続されている。なお、バスライン1060と各ハードウェア資源との間には適宜インターフェース回路(図示せず)が介在している場合もある。
【0075】
プロセッサ1010は、コンピュータの全体の制御を行う。プロセッサ1010は、各々がコンピュータの一部又は全体の制御を行なう、複数のプロセッサにより構成されていてもよい。
【0076】
主記憶装置1020は、プロセッサ1010に対して作業領域を提供し、例えばSRAM、DRAM等の揮発性メモリである。
【0077】
補助記憶装置1030は、ソフトウェアであるプログラム(コンピュータ実行可能命令を含む)等や各種データ等を格納する、例えば、ハードディスクドライブ、フラッシュメモリ等の不揮発性メモリである。プログラムは、任意の時点で補助記憶装置1030からバスライン1060を介して主記憶装置1020へとロードされ、プロセッサ1010に各種処理、方法又はステップを実行させる。
【0078】
なお、主記憶装置1020及び補助記憶装置1030を、両者を区別することなく集合的に「メモリ」として参照する場合があることに留意されたい。
【0079】
ユーザ・インターフェース1040は、ユーザに情報を提示すること及びユーザから情報の入力を受けることの一方又は双方を行う、ハードウェア資源としてのユーザ・インターフェースであり、例えば、キーボード、マウス、トラックパッド、トラックポインタ、ディスプレイ、タッチパネル・ディスプレイ、マイク、スピーカ、加速度センサ等である。
【0080】
通信インターフェース1050は、ネットワーク130と接続されるものであり、ネットワーク130を介してデータを送受する。通信インターフェース1050とネットワーク130とは、有線又は無線で接続されうる。通信インターフェース1050は、ネットワークに係る情報、例えば、Wifiのアクセスポイントに係る情報、通信キャリアの基地局に関する情報等も取得することがある。
【0081】
4 むすび
以上、本発明の実施形態を説明したが、他の類似する形態の採用や、適宜形態の変更又は追加を行うことができることに留意されたい。