(57)【要約】【課題】予約可能な日が一見しただけでわかる、１以上の日付についての予約状況を表示すること。【解決手段】コンピュータが、人数を含む予約条件を受けるステップと、コンピュータが、１以上の日付についての予約状況を表示するステップであって、１以上の日付の予約状況は、日付に対応した第１の方向と、時刻に対応した第２の方向とを有し、第１の方向に、予約条件を満たす１以上の日付が表示され、１以上の日付のうちの各日付について、第２の方向に当該日付の予約状況が表示され、当該日付の予約状況において、予約条件を満たす時間に対応した部分が、それ以外の部分とは異なる態様で表示されることを特徴とし、予約条件を満たす時間は、上記人数で予約可能という条件を少なくとも満たす時間であり、予約条件を満たす日付は、予約条件を満たす時間が存在するという条件を少なくとも満たす日付である、ステップとを含む方法。【選択図】図４Ａ
2019049807.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、人数を含む予約条件を受けるステップと、
コンピュータが、１以上の日付についての予約状況を表示するステップであって、前記１以上の日付の予約状況は、
日付に対応した第１の方向と、時刻に対応した第２の方向とを有し、
前記第１の方向に、前記予約条件を満たす１以上の日付が表示され、
前記１以上の日付のうちの各日付について、
前記第２の方向に当該日付の予約状況が表示され、
当該日付の前記予約状況において、当該日付における前記予約条件を満たす時間に対応した部分が、それ以外の部分とは異なる態様で表示される
ことを特徴とし、前記予約条件を満たす時間は、前記人数で予約可能という条件を少なくとも満たす時間であり、前記予約条件を満たす１以上の日付のうちの各日付は、前記予約条件を満たす時間が存在するという条件を少なくとも満たす日付である、ステップと
を含む方法。
【請求項２】
請求項１に記載の方法であって、前記予約条件は希望時刻を更に含み、前記１以上の日付についての前記予約状況は、前記１以上の日付のうちの各日付の前記予約状況において、前記予約条件を満たす時間のうち、前記希望時刻以降の最先の開始時刻を有する所定の長さの時間に対応した部分が、それ以外の部分とは異なる態様で表示されることを更に特徴とする、方法。
【請求項３】
請求項１又は２に記載の方法であって、前記予約条件は日付限定条件を更に含み、前記予約条件を満たす１以上の日付のうちの各日付は、前記日付限定条件を更に満たす日付であり、前記日付限定条件は、
１以上の曜日と、
平日と、
祝日と、
祝前日と、
月初と、
月中と、
月末と、
１以上の日付と
のうちの１以上である、方法。
【請求項４】
請求項１から３のうちの何れか一項に記載の方法であって、前記予約条件は時間限定条件を更に含み、前記予約条件を満たす時間は、前記時間限定条件を更に満たす時間であり、前記時間限定条件は、
ランチと、
ディナーと、
時間そのものと
のうちの１以上である、方法。
【請求項５】
請求項１又は２に記載の方法であって、
コンピュータが、前記予約条件を満たす１以上の日付と、前記１以上の日付のうちの各日付における前記予約条件を満たす時間とを取得するステップ
を更に含み、前記予約条件を満たす１以上の日付と、前記１以上の日付のうちの各日付における前記予約条件を満たす時間とを取得する前記ステップは、
ある日付における予約可能時間を取得するステップと、
前記ある日付が、１以上の条件を満たすかを判定するステップであって、前記１以上の条件は、前記予約可能時間が存在するという条件を含む、ステップと、
前記１以上の条件の全てを満たす場合に、前記ある日付及び前記予約可能時間を、それぞれ、前記予約条件を満たす１以上の日付のうちの１つ及び当該日付における前記予約条件を満たす時間として取得するステップと
を含み、ある日付における予約可能時間を取得する前記ステップは、
全ての客席のうちの各客席についての最大収容人数を示す情報と、ある日付にある客席に入っている予約の時間を示す情報とに少なくとも基づいて、前記ある日付における、前記人数を収容可能な１以上の客席のうちの各客席についての客席予約可能時間を取得するステップと、
１以上の前記客席予約可能時間に少なくとも基づいて、前記予約可能時間を取得するステップと
を含む、方法。
【請求項６】
請求項２に記載の方法であって、
コンピュータが、前記予約条件を満たす１以上の日付と、前記１以上の日付のうちの各日付における前記予約条件を満たす時間とを取得するステップ
を更に含み、前記予約条件を満たす１以上の日付と、前記１以上の日付のうちの各日付における前記予約条件を満たす時間とを取得する前記ステップは、
ある日付における予約可能時間を取得するステップと、
前記ある日付が、１以上の条件を満たすかを判定するステップであって、前記１以上の条件は、前記希望時刻以降に開始する前記所定の長さの前記予約可能時間が存在するという条件を含む、ステップと、
前記１以上の条件の全てを満たす場合に、前記ある日付及び前記予約可能時間を、それぞれ、前記予約条件を満たす１以上の日付のうちの１つ及び当該日付における前記予約条件を満たす時間として取得するステップと
を含み、ある日付における予約可能時間を取得する前記ステップは、
全ての客席のうちの各客席についての最大収容人数を示す情報と、ある日付にある客席に入っている予約の時間を示す情報とに少なくとも基づいて、前記ある日付における、前記人数を収容可能な１以上の客席のうちの各客席についての客席予約可能時間を取得するステップと、
１以上の前記客席予約可能時間に少なくとも基づいて、前記予約可能時間を取得するステップと
を含む、方法。
【請求項７】
請求項５又は６に記載の方法であって、前記予約条件は日付限定条件を更に含み、前記１以上の条件は前記日付限定条件を更に含み、前記日付限定条件は、
１以上の曜日と、
平日と、
祝日と、
祝前日と、
月初と、
月中と、
月末と、
１以上の日付と
のうちの１以上である、方法。
【請求項８】
請求項５から７のうちの何れか一項に記載の方法であって、前記予約条件は時間限定条件を更に含み、前記時間限定条件は、
ランチと、
ディナーと、
時間そのものと
のうちの１以上であり、前記ある日付における、前記人数を収容可能な１以上の客席のうちの各客席についての客席予約可能時間を取得する前記ステップは、
ある日付にある客席に入っている予約の時間を示す前記情報に基づいて、前記ある日付における、前記人数を収容可能な１以上の客席のうちの各客席についての未予約時間を取得するステップと、
少なくとも、前記未予約時間から前記時間限定条件を満たさない時間を除外することによって、前記客席予約可能時間を取得するステップと
を含む、方法。
【請求項９】
１以上のコンピュータに、全体として、請求項１から８のうちの何れか一項に記載の方法を実行させるプログラム。
【請求項１０】
請求項９に記載のプログラムを記憶したコンピュータ可読記憶媒体。
【請求項１１】
全体として、請求項１から８のうちの何れか一項に記載の方法を実行する１以上のコンピュータを含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、飲食店（例えば、レストラン）等における、１以上の日付についての予約状況の表示に関する。より詳細には、予約システムにおいて、１以上の日付についての予約状況を表示するためのデータを生成し、当該表示を行うことに関する。
【背景技術】
【０００２】
特定の日についての予約状況を表示する予約システムが知られている（例えば、［特許文献１］の［図１０］及び［図１１］並びに［特許文献２］の［図６］を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−９６０８０号公報
【特許文献２】特開２００６−２０９４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、予約が困難な有名店においては、予約が数ヶ月先まで埋まっていることも珍しくない。このような店に対しての予約照会では、「この日は予約できるか？」というよりも、「予約できる日はいつか？」というような形での問い合わせがなされることがある。
【０００５】
しかしながら、特定の日についての予約状況の表示によっては、数ヶ月先の予約可能な日を探すために、適当な日の予約状況を表示し、予約が不可能である場合には別の日の予約状況を再度表示するといった作業を延々と行わねばならないという問題があった。
【０００６】
本発明は、以上に鑑みてなされたものであり、本発明の課題は、予約可能な日が一見しただけでわかる、１以上の日付についての予約状況を表示することである。また、本発明の課題は、そのような表示を行うためのデータを生成することでもある。
【課題を解決するための手段】
【０００７】
本発明の実施の第１態様は、コンピュータが、人数を含む予約条件を受けるステップと、コンピュータが、１以上の日付についての予約状況を表示するステップであって、１以上の日付の予約状況は、日付に対応した第１の方向と、時刻に対応した第２の方向とを有し、第１の方向に、予約条件を満たす１以上の日付が表示され、１以上の日付のうちの各日付について、第２の方向に当該日付の予約状況が表示され、当該日付の予約状況において、当該日付における予約条件を満たす時間に対応した部分が、それ以外の部分とは異なる態様で表示されることを特徴とし、予約条件を満たす時間は、上記人数で予約可能という条件を少なくとも満たす時間であり、予約条件を満たす１以上の日付のうちの各日付は、予約条件を満たす時間が存在するという条件を少なくとも満たす日付である、ステップとを含む方法である。
【０００８】
予約条件は希望時刻を更に含んでいてよい。また、１以上の日付についての予約状況は、１以上の日付のうちの各日付の予約状況において、予約条件を満たす時間のうち、希望時刻以降の最先の開始時刻を有する所定の長さの時間に対応した部分が、それ以外の部分とは異なる態様で表示されることを更に特徴とすることができる。
【０００９】
予約条件は日付限定条件を更に含んでいてよく、予約条件を満たす１以上の日付のうちの各日付は、日付限定条件を更に満たす日付であってよい。日付限定条件は、１以上の曜日と、平日と、祝日と、祝前日と、月初と、月中と、月末と、１以上の日付とのうちの１以上であってよい。
【００１０】
予約条件は時間限定条件を更に含んでいてよく、予約条件を満たす時間は、時間限定条件を更に満たす時間であってよい。時間限定条件は、ランチと、ディナーと、時間そのものとのうちの１以上であってよい。
【００１１】
上記方法は、コンピュータが、予約条件を満たす１以上の日付と、１以上の日付のうちの各日付における予約条件を満たす時間とを取得するステップを更に含んでいてよい。予約条件を満たす１以上の日付と、１以上の日付のうちの各日付における予約条件を満たす時間とを取得するステップは、ある日付における予約可能時間を取得するステップと、ある日付が、１以上の条件を満たすかを判定するステップであって、１以上の条件は、予約可能時間が存在するという条件を含む、ステップと、１以上の条件の全てを満たす場合に、ある日付及び予約可能時間を、それぞれ、予約条件を満たす１以上の日付のうちの１つ及び当該日付における予約条件を満たす時間として取得するステップとを含むことができる。ある日付における予約可能時間を取得するステップは、全ての客席のうちの各客席についての最大収容人数を示す情報と、ある日付にある客席に入っている予約の時間を示す情報とに少なくとも基づいて、ある日付における、上記人数を収容可能な１以上の客席のうちの各客席についての客席予約可能時間を取得するステップと、１以上の客席予約可能時間に少なくとも基づいて、予約可能時間を取得するステップとを含むことができる。
【００１２】
上記１以上の条件は、希望時刻以降に開始する所定の長さの予約可能時間が存在するという条件を含んでいてよい。
【００１３】
予約条件は日付限定条件を更に含んでいてよい。上記１以上の条件は日付限定条件を更に含んでいてよい。日付限定条件は、１以上の曜日と、平日と、土日祝と、祝前日と、月初と、月中と、月末とのうちの１以上であってよい。
【００１４】
予約条件は時間限定条件を更に含んでいてよい、時間限定条件は、ランチと、ディナーと、時間そのものとのうちの１以上であってよい。ある日付における、上記人数を収容可能な１以上の客席のうちの各客席についての客席予約可能時間を取得するステップは、ある日付にある客席に入っている予約の時間を示す情報に基づいて、ある日付における、上記人数を収容可能な１以上の客席のうちの各客席についての未予約時間を取得するステップと、少なくとも、未予約時間から時間限定条件を満たさない時間を除外することによって、客席予約可能時間を取得するステップとを含むことができる。
【００１５】
本発明の実施の第２態様は、１以上のコンピュータに、全体として、上記方法を実行させるプログラムである。
【００１６】
本発明の実施の第３態様は、上記プログラムを記憶したコンピュータ可読記憶媒体である。
【００１７】
本発明の実施の第４態様は、全体として、上記方法を実行する１以上のコンピュータを含むシステムである。
【発明の効果】
【００１８】
本発明の実施形態によれば、飲食店等の店員は、少なくとも予約者の来店人数さえわかれば、予約可能な来店日時を容易に提案することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】例示の予約システム１００の構成
【図２】クライアント１１０が実行する例示の処理２００のフローチャート
【図３】例示の予約条件入力ＧＵＩ３００
【図４Ａ】例示の予約可能日付時間一覧ＧＵＩ４００
【図４Ｂ】例示の予約可能日付時間一覧ＧＵＩ４５０
【図５】予約可能日付時間を取得するための例示の処理５００のフローチャート
【図６】選択した日付における予約可能時間を取得するための例示の処理６００のフローチャート
【図７Ａ】全ての客席のうちの各客席に収容可能な最大人数を示す例示のテーブル７００
【図７Ｂ】ある日付にある客席に入っている予約の時間を示す例示のテーブル７５０
【図８】例示の予約システム８００の構成
【図９】例示の予約システム９００の構成
【図１０】例示のコンピュータ１０００の構成
【発明を実施するための形態】
【００２０】
１  本発明の一実施形態
以下、図面を参照して、本発明の一実施形態について説明する。なお、以下の説明において、「時刻」は、時の流れにおける１以上の点を特定するものとして用いている。例えば、日付を特定しない「１１：００」は、時の流れにおける無数の点を特定する時刻である一方で、「２０１７年１１月２日」の「１１：００」は、時の流れにおける１点を特定する時刻である。また、「時間」は時の流れに沿った１以上の線分を特定するものとして用いている。例えば、日付を特定しない「１１：００〜１４：００」は、時の流れに沿った無数の線分を特定する時間であり、「２０１７年１１月２日」の「１１：００〜１４：００」は、時の流れに沿った１つの線分を特定する時間であり、「２０１７年１１月２日」の「１１：００〜１４：００」及び「１９：３０〜２５：００」は、時の流れに沿った２つの線分を特定する時間である。時の流れに沿った１つの線分は、当該線分の両端を特定する時刻（開始時刻及び終了時刻）によって特定する、当該線分の一方の端を特定する時刻（開始時刻又は終了時刻）と当該線分の長さ（任意の単位の時の長さ）とによって特定する等、任意の形式で特定することができる。
【００２１】
１−１  一実施形態に係る予約システム
図１は、本発明の一実施形態に係る例示の予約システム１００の構成を表している。
【００２２】
１１０は、検索システムのユーザが使用するコンピュータであるクライアントを示している。図１ではクライアント１１０は１つのみ描かれているが、実際には複数存在してよい。以下の説明では、「ユーザ」は飲食店等の店員であり、クライアント１１０は店舗の備品又は店員の私物であると仮定している。即ち、予約者（飲食店等の客）から電話等で予約の連絡を受けた店員が、クライアント１１０を操作するという想定である。しかしながら、「ユーザ」は予約者であり、クライアント１１０は予約者の私物であってもよい。また、クライアント１１０は、タッチパネル・ディスプレイを有するタブレット型コンピュータであると仮定しているが、スマートフォンやパーソナル・コンピュータ（ＰＣ）等の、ユーザに対して情報を表示する手段とユーザから入力を受ける手段とを有する任意のコンピュータであってよい。「コンピュータ」については、「３  コンピュータ」の節も参照されたい。
【００２３】
１２０は、クライアント１１０と通信するコンピュータであるサーバを示している。図１ではサーバ１２０は１つのみ描かれているが、実際には複数台のコンピュータから構成される場合がある。サーバ１２０は、飲食店等の店舗に設置されもよいし、店舗から離れた場所に設置されてもよい。
【００２４】
１３０は、１以上のネットワーク（サブネットワーク）から構成されるネットワークを示している。ネットワーク１３０は、ローカル・エリア・ネットワーク（ＬＡＮ）及びインターネット等のワイド・エリア・ネットワーク（ＷＡＮ）の一方又は双方を含んでいてよい。クライアント１１０とサーバ１２０とは、ネットワーク１３０を介して通信可能である。
【００２５】
１−２  クライアント１１０の概要
図２は、クライアント１１０が実行する例示の処理２００のフローチャートを表している。なお、処理２００を含む、以下に説明するコンピュータが実行する処理（以下、「例示処理」という。）は、プログラムがコンピュータに、より詳細には、当該コンピュータのプロセッサに実行させるものであってよい。また、そのようなプログラムは、公知のコンピュータ可読記憶媒体、より詳細には、例えば非一時的コンピュータ可読記憶媒体に記憶することができる。更に、例示処理が含むステップは、一部を省略することができ、その実行順序を変更することができ、例示処理には、更なるステップを追加することができる。
【００２６】
ステップ２１０及び２２０は、それぞれ、予約条件を入力するためのグラフィック（あるいは、「グラフィカル」。以下同様。）・ユーザ・インターフェース（以下、「予約条件入力ＧＵＩ」という。）を表示するステップ及び予約条件の入力を受けるステップを示している。以下、予約条件入力ＧＵＩ及び予約条件の入力について、例示の予約条件入力ＧＵＩ３００が表わされた図３を参照して説明する。
【００２７】
３１０は、予約条件として日付限定条件を入力するためのユーザ・インターフェース・コントロール（以下、「コントロール」という。）を示している。日付限定条件は、１以上の曜日と、祝日と、祝前日と、月初と、月中と、月末と、１以上の日付とのうちの１以上であってよい。図３において日付限定条件として表示されている項目は一部であり、コントロール３１０は、上下にフリックすることによってその表示がスクロールし、隠れていた項目が表示されるように構成されている。また、コントロール３１０は、項目をタップすることにより、タップされた項目に対応した日付限定条件が入力されるように構成されている。図３には、例示として、日付限定条件として少なくとも金及び土が入力された状態に対応する。
【００２８】
３２０は、予約条件として時間限定条件を入力するためのコントロールを示している。時間限定条件は、ランチ及びディナーの一方または双方であってよい。また、ＧＵＩ３００に具体的な時間（例えば、「１４：００〜１９：００」）を入力するためのコントロールを設け、時間そのものを時間限定条件として用いてもよい。コントロール３２０は、項目をタップすることにより、タップされた項目に対応した時間限定条件が入力されるように構成されている。図３は、例示として、時間限定条件としてディナーが入力された状態に対応する。
【００２９】
３３０は、予約条件として希望時刻を入力するためのコントロールを示している。図３において希望時刻として表示されている項目は一部であり、コントロール３３０は、上下にフリックすることによってその表示がスクロールし、隠れていた項目が表示されるように構成されている。また、コントロール３３０は、項目をタップすることにより、タップされた項目に対応した希望時刻が入力されるように構成されている。図３は、例示として、希望時刻は未定であるという入力がなされた状態に対応する。
【００３０】
３４０は、予約条件として人数を入力するためのコントロールを示している。図３において人数として表示されている項目は一部であり、コントロール３４０は、上下にフリックすることによってその表示がスクロールし、隠れていた項目が表示されるように構成されている。また、コントロール３４０は、項目をタップすることにより、タップされた項目に対応した人数が入力されるように構成されている。図３は、例示として、人数として２名（２人）が入力された状態に対応する。なお、人数以外の予約条件は必須でなく、従って、ＧＵＩ３００においてコントロール３１０〜３３０は設けなくてもよい。また、更なる予約条件を入力するためのコントロールを設けてもよい。
【００３１】
３５０は、入力された予約条件に基づいて、予約可能な日付及び時間の取得を開始するためのコントロールである。コントロール３５０のタップにより、処理はステップ２３０（図２を参照）に進む。
【００３２】
図２に戻ると、２３０は、予約条件を満たす１以上の日付及び当該１以上の日付のうちの各日付における予約条件を満たす時間（以下、「予約可能日付時間」という。）を取得するステップを示している。「予約条件を満たす日付」及び「予約条件を満たす時間」については、後述する。なお、取得される予約可能日付時間は、全ての予約可能日付時間である必要はない。本実施形態において、ステップ２３０は、予約条件をサーバ１２０に送信し、予約可能日付時間をサーバ１２０から受信するステップを含む。サーバ１２０が予約可能日付時間をどのよう取得するのかについては、後述する。
【００３３】
２４０は、取得した予約可能日付時間に基づき、１以上の日付についての予約状況を表示するステップを示している。以下、１以上の日付についての予約状況の表示について、図４Ａ及び４Ｂ（以下、集合的に「図４」ともいう。）を参照して説明する。
【００３４】
図４Ａを参照すると、４００は、１以上の日付についての予約状況の表示を含む、例示の予約可能日付時間を一覧するためのグラフィック・ユーザ・インターフェース（以下、「予約可能日付時間一覧ＧＵＩ」という。）を示している。なお、ＧＵＩ４００は、日付限定条件及び時間限定条件がなく、希望時刻が未定であり、人数が２人という状況に対応したものである。
【００３５】
４１０は、日付に対応した方向を表す矢印を示している。ＧＵＩ４００においては、当該方向に予約条件を満たす１以上の日付が表示される。図４において１以上の日付は降順に表示されているが、昇順に表示されても、あるいは、任意の基準（例えば、直近の土日が予約条件を満たしている場合、それより前の平日が予約条件を満たしていたとしても、最上部に表示する）で並べられて表示されてもよい。なお、図４においては予約条件を満たす１以上の日付のみが表示されているが、予約条件を満たさない日付についての表示を排除する意図はない。即ち、日付に対応した方向に予約条件を満たす１以上の日付を表示することは、当該方向に予約条件を満たす１以上の日付のみを表示することと、当該方向に予約条件を満たさない１以上の日付とともに予約条件を満たす１以上の日付を表示することとを含む。予約条件を満たさない１以上の日付とともに予約条件を満たす１以上の日付を表示する場合、表示する予約条件を満たさない１以上の日付は、任意の基準により選択されたものであってもよいし、あるいは、予約条件を満たさない日付を含む連続した１以上の日付を表示してもよい。
【００３６】
４１５は、時刻に対応した方向を表す矢印を示している。ＧＵＩ４００においては、各日付について、当該方向に当該日付における状況（例えば、どの時間が予約条件を満たすか）が表示される。
【００３７】
４２０は、１以上の日付のうちの１つの日付（例示として、２０１７年１１月２日）についての予約状況を示している。予約状況４２０は、当該日付の一日を構成する複数の所定の長さの時間（以下、「単位時間」という。）にそれぞれ対応した複数の部分を含んでいる。図４におけるこの「所定の長さ」は３０分であるが、１５分や６０分、１分等、任意の長さであってよい。４３０は、ある日付のある単位時間（例示として、２０１７年１１月２日の２２：３０〜２３：００）に対応した部分である。なお、図４において、１日は６：００〜３０：００（翌日の６：００）であるものとして扱われているが、０：００〜２４：００（翌日の０：００）とする等、１日の定義は任意である。また、図４において、予約状況４２０として、１日の全時間（６：００〜３０：００）に対応した部分が表示されているが、１日の一部の時間（例えば、８：００〜２６：００）に対応した部分のみが表示されてもよい。
【００３８】
予約状況４２０において、予約条件を満たす時間に対応した部分は、それ以外の部分とは異なる態様で表示される。４４０は予約条件を満たす時間に対応した部分の１つ、４４５はそれ以外の部分の１つをそれぞれ示している。図４においては、異なる態様の一例として、部分４４０は白抜きで、部分４４５はグレーの塗りつぶしでそれぞれ表示されている。異なる態様は、部分４４０と部分４４５とを表示上区別できるのであれば、どのようなものであってもよい。なお、異なる態様での表示は、部分４４０と部分４４５とのうちの一方を表示し、他方について特段の表示をしないことによって背景をもって他方の表示とすることを含む。また、４１０に関して上述したように、予約条件を満たさない日付が表示されている場合、当該日付についての予約状況は、全て、部分４４５に相当する表示とすることができる。
【００３９】
図４Ｂを参照すると、４５０は、１以上の日付についての予約状況の表示を含む、別の例示の予約可能日付時間一覧ＧＵＩを示している。なお、ＧＵＩ４５０は、希望時刻として１９：００の入力がなされた以外、ＧＵＩ４００と同様の状況に対応したものである。また、以下に述べる４６０が示すもの以外、図４Ｂは図４Ａと同一である。
【００４０】
４６０は、ある日付（例示として、２０１７年１１月２日）における予約条件を満たす時間のうち、希望時刻以降の最先の開始時刻を有する所定の長さの時間（以下、「好適予約可能時間」という。）を示している。図４Ｂにおけるこの「所定の長さ」は１５０分であるが、９０分や２時間等、任意の長さであってよい。好適予約可能時間に対応した部分は、それ以外の部分とは異なる態様で表示することができる。図４Ｂにおいては、異なる態様の一例として、好適予約可能時間に対応した部分には角丸四角形が重ねて表示され、そうでない時間には特段の表示がなされていない。異なる態様は、好適予約可能時間とそうでない時間とを表示上区別できるのであれば、どのようなものであってもよい。各日付における好適予約可能時間は、取得した予約可能日付時間からクライアント１１０が計算してもよいし、予約可能日付時間とは別にサーバ１２０から取得してもよい。
【００４１】
なお、予約可能日付時間「一覧」ＧＵＩと称されているものの、ＧＵＩ４００及び４５０（以下、「ＧＵＩ４００等」という。）においては、取得した予約可能日付時間を全て表示する必要はない。ＧＵＩ４００等は、上下左右にフリックすることによってその表示がスクロールし、隠れていた部分が表示されるように構成されてもよい。また、ＧＵＩ４００等は、上下にフリックすることによって、更なる予約可能日付時間が取得されて表示されるように構成されてもよい。
【００４２】
また、ＧＵＩ４００等は、適切な部分をタップすることにより、タップした部分に対応した日付についての処理が実行されるように構成することができる。このような処理の一例は、従来技術を用いて、当該日付についての詳細な予約状況を表示し、実際に予約を行う処理である。
【００４３】
１−３  サーバ１２０の概要
図５は、サーバ１２０が実行する、予約可能日付時間を取得するための例示の処理５００のフローチャートを表している。従って、本実施形態において、この処理はクライアント１１０から予約条件を受信することに応答して開始し、この処理の終了後、サーバ１２０は取得した予約可能日付時間をクライアント１１０に送信することができる。
【００４４】
５１０は、予約可能日付時間を初期化するステップを示している。ステップ５１０は、具体的には、予約可能日付時間を表すデータ構造を初期化するステップであってよい。そのようなデータ構造の一例は、日付を表すデータ構造及び時間を表すデータ構造のセットを要素とするリストであり、初期化の一例は、空の当該リストを作成する処理であってよい。「時間を表すデータ構造」の一例については、後述する。
【００４５】
５２０は、最初の日付を選択するステップを示している。最初の日付は、任意の日付であってよい。例えば、最初の日付は、ステップ５２０を実行したときの日付や、当該日から所定の日数が経過した日であることができる。
【００４６】
５３０は、選択した日付が営業日であるかを判定するステップを示している。サーバ１２０は、日付及び曜日（毎週特定の曜日が休みの場合）の一方又は双方の形式で定休日を予め記憶しておくことができ、ステップ５３０は、具体的には、選択した日付と定休日である日付との比較、及び、選択した日付の曜日と定休日である曜日との比較の一方または双方であることができる。選択した日付が営業日である場合にはステップ５４０に進み、そうでない場合にはステップ５８０に進む。
【００４７】
５４０は、選択した日付が日付限定条件を満たすかを判定するステップを示している。ステップ５４０は、具体的には、選択した日付の曜日が日付限定条件である１以上の曜日に含まれるかの判定であることができる。また、サーバ１２０は、祝日及び祝前日の日付を予め記憶しておくことができ、ステップ５４０は、具体的には、選択した日付と祝日又は祝前日の日付との比較であることができる。更に、サーバ１２０は、月初と判定すべき日の範囲（例えば、１日〜１０日）、月中と判定すべき日の範囲（例えば、１１日〜２０日）及び月末と判定すべき日の範囲（例えば、２１日〜３１日）を予め記憶しておくことができ、ステップ５４０は、具体的には、選択した日付の日が月初、月中及び月末のうちの１以上と判定すべき日の範囲に含まれるかの判定であることができる。更にまた、ステップ５４０は、具体的には、選択した日付が日付限定条件である１以上の日付に含まれるかの判定であることができる。選択した日付が日付限定条件を満たす場合にはステップ５５０に進み、そうでない場合にはステップ５８０に進む。
【００４８】
５５０は、選択した日付における予約可能時間を取得するステップを示している。なお、予約可能時間を取得することは、空の予約可能時間を取得すること即ち予約可能時間が存在しないという結果を取得することを含む。ステップ５５０は、選択した日付における予約可能時間の取得を試みるステップと言い換えることができる。ステップ５５０の詳細については、後述する。
【００４９】
５６０は、選択した日付において予約可能時間が存在するかを判定するステップを示している。ステップ５６０は、具体的には、予約可能時間が空でないかを判定するステップであることができる。予約可能時間が存在する場合にはステップ５７０に進み、そうでない場合にはステップ５８０に進む。図６に関して後述するステップ６４６、６７０及び６８０の実行の結果として、ステップ５６０は、少なくとも、希望時刻以降に開始する所定の長さの予約可能時間が存在するかを実質的に判定することができる。
【００５０】
５７０は、選択した日付及びその予約可能時間を予約可能日付時間に追加するステップを示している。予約可能時間が存在しない場合には予約可能日付時間への追加がなされないことからも明らかなように、「予約条件を満たす日付」とは、予約可能時間が存在する即ち予約条件を満たす時間が存在するという条件を少なくとも満たす日付である。ステップ５７０は、具体的には、選択した日付を表すデータ構造及びその予約可能時間を表すデータ構造のセットを、予約可能日付時間を表すリストに追加するステップであることができる。
【００５１】
５８０は、次の日付を選択すべきかを判定するステップを示している。「次の日付」は、処理５００を実行してから未だ選択されていない任意の日付であってよく、例えば、現在選択されている日付の翌日であってよい。また、次の日付を選択すべきかの判定基準は任意である。例えば、予約可能日付時間として追加された日付及び時間のセットが所定数に達していない場合に、次の日付を選択すべきと判定することができる。また、例えば、次の日付として選択される日付が所定の日付より前である場合に、次の日付を選択すべきと判定することができる。次の日付を選択すべきと判定した場合にはステップ５９０に進み、そうでない場合には処理５００は終了する。
【００５２】
５９０は、実際に次の日付を選択するステップを示している。
【００５３】
処理５００の終了時点での予約可能日付時間が、取得される予約可能日付時間である。
【００５４】
図６は、ステップ５５０の詳細である、選択した日付における予約可能時間を取得するための例示の処理６００のフローチャートを表している。なお、処理６００は、飲食店等が２４時間営業でないと仮定している。飲食店等が２４時間営業である場合には、選択した日付の時間だけでなく、その翌日の日付の少なくとも一部の時間も考慮するように、処理６００を変形してよい。
【００５５】
６１０は、予約可能時間を初期化するステップを示している。ステップ６１０は、具体的には、予約可能時間としての時間を表すデータ構造を初期化するステップであってよい。そのようなデータ構造の一例は、一日の長さ／単位時間の長さ（例えば、１４４０分／３０分＝４８）を要素数とするブール型の配列であり、初期化の一例は、配列を作成し、各要素に初期値を代入する処理であってよく、また、最終的にｔｒｕｅの要素に対応する時間を予約可能時間として扱うならば、初期値はｆａｌｓｅであってよい。
【００５６】
６２０は、最初の客席を選択するステップを示している。ここで、「客席」は、飲食店等における１以上の席を有する１まとまりの単位であり、具体的には、１つの客席は１つのテーブル席（複数の席を有する）や１つのカウンター席（１つの席のみを有する）等であることができる。最初の客席は、飲食店等に存在する全ての客席のうちの任意の客席であってよい。
【００５７】
６３０は、選択した客席において、予約条件の人数が収容可能かを判定するステップを示している。サーバ１２０は、飲食店等に存在する全ての客席のうちの各客席に収容可能な最大人数を示す情報を予め記憶しておくことができる。図７Ａは、そのような情報を記憶した例示のテーブル７００を表している。ステップ６３０は、具体的には、当該テーブルを用いて、選択した客席の最大収容人数を取得し、当該最大収容人数が予約条件の人数以上かを判定するステップであってよい。予約条件の人数が収容可能な場合にはステップ６４０に進み、そうでない場合にはステップ６５０に進む。
【００５８】
６４０は、選択した客席について、選択した日付における未予約時間を取得するステップを示している。サーバ１２０は、ある日付にある客席に入っている予約の時間を示す情報を予め記憶しておくことができる。図７Ｂは、そのような情報を記憶した例示のテーブル７５０を表している。テーブル７５０における各行は１つの予約に対応し、「…」は予約の省略を示している。テーブル７５０は例示であり、各行において、予約者の名前や連絡先等、更なる情報を含む列を設けてもよい。ステップ６４０は、具体的には、当該テーブルを用いて、選択した日付に選択した客席に入っている予約の時間を取得し、未予約時間としての時間を表す配列を作成し、当該配列の、取得した予約の時間に対応する要素にｆａｌｓｅを、そうでない要素にｔｒｕｅを代入する処理であってよい。
【００５９】
６４２は、未予約時間から営業時間外の時間を除外するステップを示している。サーバ１２０は、通常の営業時間及び特定の日の営業時間の一方又は双方を予め記憶しておくことができ、ステップ６４２は、未予約時間としての時間を表す配列の、選択した日の営業時間外の時間に対応する要素にｆａｌｓｅを代入する処理であることができる。
【００６０】
６４４は、未予約時間から時間限定条件を満たさない時間を除去するステップを示している。サーバ１２０は、ランチに対応した時間（例えば、１１：００〜１４：００）及びディナーに対応した時間（例えば、１８：００〜２１：００）を予め記憶しておくことができ、ステップ６４４は、具体的には、時間限定条件が時間そのものでない場合に当該条件を対応した時間に変換し、未予約時間としての時間を表す配列の、時間限定条件を満たさない時間（例えば、ランチに対応した時間の外の時間）に対応する要素にｆａｌｓｅを代入する処理であることができる。
【００６１】
６４６は、未予約時間から所定の長さ未満の連続した時間を除外するステップを示している。ステップ６４６は、具体的には、未予約時間としての時間を表す配列を最初の要素から順にチェックし、ｔｒｕｅである要素が見つかった場合、次にｆａｌｓｅである要素の直前の要素（次にｆａｌｓｅである要素が見つかる前に最後の要素をチェックした場合には最後の要素。以下同様。）までの要素数を求め、当該要素数が所定の数（即ち、所定の長さ／単位時間の長さ）未満であった場合、ｔｒｕｅである要素からｆａｌｓｅである要素の直前の要素までの各要素にｆａｌｓｅを代入するという処理を、配列の最後の要素をチェックするまで繰り返す処理であってよい。なお、ステップ６４６におけるこの「所定の長さ」は任意であり、例えば、２時間であってよいが、図４Ｂに関して上述した「予定の長さ」と一致させることが好ましい。また、この「所定の長さ」（ステップ６４６に関するもの及び図４Ｂに関して上述したものの双方を含む）は、時刻の関数であってもよく、例えば、１８：００以降を開始時刻とする連続した時間については１５０分とし、そうでない連続した時間については９０分とすることができる。これによれば、ランチに係る「所定の時間」と、ディナーに係る「所定の時間」とを異なるように扱うことが可能である。
【００６２】
６４８は、未予約時間を予約可能時間に追加するステップを示している。ステップ６３０〜６４６の実行の結果として、ステップ６４８の実行の時点における未予約時間は、選択された客席に対して予約が可能な時間を表すことになる。予約可能時間への追加が、飲食店等に存在する何れかの客席において予約条件の人数が収容可能でなければ行われないことからも明らかなように、「予約条件を満たす時間」とは、予約条件の人数で予約可能という条件を少なくとも満たす時間である。ステップ６４８は、具体的には、予約可能時間としての時間を表す配列の各要素に、当該要素と、未予約時間としての時間を表す配列の対応する要素との論理ＯＲ演算結果を代入する処理であることができる。
【００６３】
６５０は、次の客席が存在するかを判定するステップを示している。「次の客席」は、飲食店等に存在する全ての客席のうち、処理６００を実行してから未だ選択されていない任意の客席であってよい。次の客席が存在する場合にはステップ６６０に進み、そうでない場合にはステップ６７０に進む。
【００６４】
６６０は、実際に次の客席を選択するステップを示している。
【００６５】
６７０は、希望時刻以降に開始する予約可能時間が存在するかを判定するステップを示している。ステップ６７０は、具体的には、予約可能時間としての時間を表す配列の、希望時刻に対応する要素以降にｔｒｕｅである要素が存在するかを判定する処理であることができる。希望時刻以降を開始時刻とする予約可能時間が存在する場合には処理６００は終了し、存在する場合にはステップ６８０に進む。
【００６６】
ステップ６８０は、予約可能時間を空にするステップを示している。この処理は、ステップ６１０と同様のステップであってよいが、目的が異なる。即ち、ステップ６８０は、希望時刻以降を開始時刻とする予約可能時間が存在しない場合に、選択した日付における予約可能時間は結局のところ存在しないものとして扱うためのステップである。
【００６７】
処理６００の終了時点の予約可能時間が、取得される選択した日付における予約可能時間である。具体的には、予約可能時間としての時間を表す配列においてｔｒｕｅである要素に対応した時間が、選択した日付における予約可能時間であり、従って、ｔｒｕｅである要素が存在しなければ、選択した日付における予約可能時間は空であり、存在しないということになる。また、特にステップ６４６、６７０及び６８０の実行の結果として、予約可能時間が空でない即ち存在するのであれば、希望時刻以降を開始時刻とする所定の長さの予約可能時間が存在することになる。
【００６８】
２  本発明の別実施形態
図８は、本発明の別の実施形態に係る予約システムの構成例を表している。
【００６９】
８１０は、検索システムのユーザが使用するコンピュータであって、クライアント１１０（図１を参照）及びサーバ１２０（図１を参照）の双方の機能を有するものを示している。コンピュータ８１０は、クライアント１１０及びサーバ１２０の双方が実行する上述した処理を実行し、記憶している情報を記憶しており、従って、ネットワーク１３０を介したクライアント１１０とサーバ１２０との間の通信に係る処理は、コンピュータ８１０の内部でなされることになる。
【００７０】
図９は、本発明のまた別の実施形態に係る予約システムの構成例を表している。
【００７１】
９１０は、検索システムのユーザが使用するコンピュータであるクライアントを示している。クライアント９１０は、クライアント１１０と同一である。
【００７２】
９２０は、クライアント９１０と通信するコンピュータであるサーバを示している。サーバ９２０は、サーバ１２０の機能を有するほか、クライアント１１０の機能も有している。従って、サーバ９２０は、クライアント１１０及びサーバ１２０の双方が実行する上述した処理を実行し、記憶している情報を記憶している。サーバ９２０は、飲食店等の店舗に設置されることが多いであろう。
【００７３】
９３０は、１以上のネットワーク（サブネットワーク）から構成されるネットワークを示している。ネットワーク９３０は、ネットワーク１１０と同一であってよいが、ＬＡＮのみから構成されることが多いであろう。
【００７４】
３  コンピュータ
図１０は、コンピュータのハードウェア構成の一例を表している。同図に示すように、コンピュータ１０００は、主に、プロセッサ１０１０と、主記憶装置１０２０と、補助記憶装置１０３０と、ユーザ・インターフェース１０４０と、通信インターフェース１０５０とを備えており、これらはアドレスバス、データバス、コントロールバス等を含むバスライン１０６０を介して相互に接続されている。なお、バスライン１０６０と各ハードウェア資源との間には適宜インターフェース回路（図示せず）が介在している場合もある。
【００７５】
プロセッサ１０１０は、コンピュータの全体の制御を行う。プロセッサ１０１０は、各々がコンピュータの一部又は全体の制御を行なう、複数のプロセッサにより構成されていてもよい。
【００７６】
主記憶装置１０２０は、プロセッサ１０１０に対して作業領域を提供し、例えばＳＲＡＭ、ＤＲＡＭ等の揮発性メモリである。
【００７７】
補助記憶装置１０３０は、ソフトウェアであるプログラム（コンピュータ実行可能命令を含む）等や各種データ等を格納する、例えば、ハードディスクドライブ、フラッシュメモリ等の不揮発性メモリである。プログラムは、任意の時点で補助記憶装置１０３０からバスライン１０６０を介して主記憶装置１０２０へとロードされ、プロセッサ１０１０に各種処理、方法又はステップを実行させる。
【００７８】
なお、主記憶装置１０２０及び補助記憶装置１０３０を、両者を区別することなく集合的に「メモリ」として参照する場合があることに留意されたい。
【００７９】
ユーザ・インターフェース１０４０は、ユーザに情報を提示すること及びユーザから情報の入力を受けることの一方又は双方を行う、ハードウェア資源としてのユーザ・インターフェースであり、例えば、キーボード、マウス、トラックパッド、トラックポインタ、ディスプレイ、タッチパネル・ディスプレイ、マイク、スピーカ、加速度センサ等である。
【００８０】
通信インターフェース１０５０は、ネットワーク１３０と接続されるものであり、ネットワーク１３０を介してデータを送受する。通信インターフェース１０５０とネットワーク１３０とは、有線又は無線で接続されうる。通信インターフェース１０５０は、ネットワークに係る情報、例えば、Ｗｉｆｉのアクセスポイントに係る情報、通信キャリアの基地局に関する情報等も取得することがある。
【００８１】
４  むすび
以上、本発明の実施形態を説明したが、他の類似する形態の採用や、適宜形態の変更又は追加を行うことができることに留意されたい。
【符号の説明】
【００８２】
１００  例示の予約システム
１３０  ネットワーク
３００  例示の予約条件入力ＧＵＩ
３１０  日付限定条件を入力するためのコントロール
３２０  時間限定条件を入力するためのコントロール
３３０  希望時刻を入力するためのコントロール
３４０  予約条件としての人数を入力するためのコントロール
３５０  予約可能な日付及び時間の取得を開始するためのコントロール
４００  例示の予約可能日付時間一覧ＧＵＩ
４１０  日付に対応した方向を表す矢印
４１５  時刻に対応した方向を表す矢印
４２０  １つの日付についての予約状況
４３０  ある日付のある単位時間
４４０  予約条件を満たす時間に対応した部分の１つ
４４５  それ以外の部分の１つ
４５０  例示の予約可能日付時間一覧ＧＵＩ
４６０  好適予約可能時間
５００  予約可能日付時間を取得するための例示の処理
６００  選択した日付における予約可能時間を取得するための例示の処理
７００  全ての客席のうちの各客席に収容可能な最大人数を示す例示のテーブル
７５０  ある日付にある客席に入っている予約の時間を示す例示のテーブル
８００  例示の予約システム
９００  例示の予約システム
１０００  例示のコンピュータ
【図１】
2019049807.tif 000003
【図２】
2019049807.tif 000004
【図３】
2019049807.tif 000005
【図４Ａ】
2019049807.tif 000006
【図４Ｂ】
2019049807.tif 000007
【図５】
2019049807.tif 000008
【図６】
2019049807.tif 000009
【図７Ａ】
2019049807.tif 000010
【図７Ｂ】
2019049807.tif 000011
【図８】
2019049807.tif 000012
【図９】
2019049807.tif 000013
【図１０】
2019049807.tif 000014