(57)【要約】【課題】調理人にとって調理のしやすい調理スケジュールを構成する。【解決手段】ＡＰサーバ２２のレシピ特定部２２１は、それぞれ複数の調理工程により構成される、複数の料理のレシピを特定する。調理スケジュール構成部２２３は、レシピ特定部２２１により特定された複数のレシピを構成する各調理工程に対して調理の開始時間と終了時間とを割り当てることにより、上記複数の料理を並行して調理するための調理スケジュールを構成する。その際、調理スケジュール構成部２２３は、各調理工程のうち、その調理方法が共通する複数の調理工程に対して、当該複数の調理工程が時間的に連続するように調理の開始時間と終了時間とを割り当てる。出力部２２７は、調理スケジュール構成部２２３により構成された調理スケジュールを示す情報を出力する。【選択図】図１
2015161994.tif 000002
【特許請求の範囲】
【請求項１】
それぞれ複数の調理工程により構成される、複数の料理のレシピを特定するレシピ特定部と、
前記レシピ特定部により特定された複数のレシピを構成する各調理工程に対して調理の開始時間と終了時間とを割り当てることにより、前記複数の料理を並行して調理するための調理スケジュールを構成する調理スケジュール構成部であって、前記各調理工程のうち、その調理方法が共通する複数の調理工程に対して、当該複数の調理工程が時間的に連続するように調理の開始時間と終了時間とを割り当てる調理スケジュール構成部と、
前記調理スケジュール構成部により構成された調理スケジュールにおいて調理の開始時間と終了時間とが割り当てられた前記各調理工程に対して、調理工程の説明文を設定する調理説明設定部であって、前記複数の調理工程に対しては、当該複数の調理工程のそれぞれに対して予め用意されている説明文を統合し、その統合した説明文を、当該複数の調理工程の説明文として設定する調理説明設定部と、
前記調理説明部設定部により前記各調理工程に対して調理の説明文が設定された前記調理スケジュールを示す情報を出力する出力部と
を備える調理スケジュール構成装置。
【請求項２】
前記複数の調理工程のそれぞれに対して予め用意されている説明文は、各調理工程において調理される食材の分量を示す情報を含み、
前記調理説明設定部は、前記複数の調理工程に対しては、当該複数の調理工程において調理される食材の分量の合計値を算出し、その算出した合計値を、当該複数の調理工程の説明文の一部として設定する
ことを特徴とする請求項１に記載の調理スケジュール構成装置。
【請求項３】
前記調理スケジュール構成部は、前記複数の料理のうちの一の料理の特性が第１の条件を満たす場合に、前記各調理工程のうち、当該一の料理のレシピを構成する調理工程に対して、最も遅い調理の終了時間を割り当てることを特徴とする請求項１又は２に記載の調理スケジュール構成装置。
【請求項４】
前記調理スケジュール構成部は、前記各調理工程のうちの一の調理工程の負荷が第２の条件を満たす場合であって、かつ当該一の調理工程において使用される調理器具の数と、他の調理工程において使用される調理器具の数の合計が第３の条件を満たす場合には、前記一の調理工程に対して、前記他の調理工程と同時に並行するように調理の開始時間と終了時間とを割り当て、
前記レシピ特定部は、前記一の調理工程の負荷が前記第２の条件を満たす場合であって、かつ前記一の調理工程において使用される調理器具の数と、前記他の調理工程において使用される調理器具の数の合計が前記第３の条件を満たさない場合には、前記複数の料理のレシピのうち、前記一の調理工程又は前記他の調理工程により構成される少なくとも一の料理のレシピが別の料理のレシピにより置換された別の複数の料理のレシピを特定し、
前記調理スケジュール構成部は、前記特定された別の複数の料理のレシピを構成する各調理工程に対して調理の開始時間と終了時間とを割り当てることにより、前記別の複数の料理を並行して調理するための別の調理スケジュールを構成し、
前記出力部は、前記構成された別の調理スケジュールを示す情報を出力する
ことを特徴とする請求項１乃至３のいずれか一項に記載の調理スケジュール構成装置。
【請求項５】
前記調理スケジュール構成部は、前記一の調理工程の負荷が前記第２の条件を満たし、前記一の調理工程において使用される調理器具の数と、前記他の調理工程において使用される調理器具の数の合計が前記第３の条件を満たし、かつ前記他の調理工程と同時に並行するさらに他の調理工程が閾値以上存在しない場合に、前記一の調理工程に対して、前記他の調理工程と同時に並行するように調理の開始時間と終了時間とを割り当て、
前記調理スケジュール構成装置は、前記複数の料理の調理人の熟練度に応じて前記閾値を設定する閾値設定部をさらに備える
ことを特徴とする請求項４に記載の調理スケジュール構成装置。
【請求項６】
サーバが、それぞれ複数の調理工程により構成される、複数の料理のレシピを特定するレシピ特定ステップと、
前記サーバが、前記特定ステップにより特定した複数のレシピを構成する各調理工程に対して調理の開始時間と終了時間とを割り当てることにより、前記複数の料理を並行して調理するための調理スケジュールを構成する調理スケジュール構成ステップであって、前記各調理工程のうち、その調理方法が共通する複数の調理工程に対して、当該複数の調理工程が時間的に連続するように調理の開始時間と終了時間とを割り当てる調理スケジュール構成ステップと、
前記サーバが、前記調理スケジュール構成ステップにより構成された調理スケジュールにおいて調理の開始時間と終了時間とが割り当てられた前記各調理工程に対して、調理工程の説明文を設定する調理説明設定ステップであって、前記複数の調理工程に対しては、当該複数の調理工程のそれぞれに対して予め用意されている説明文を統合し、その統合した説明文を、当該複数の調理工程の説明文として設定する調理説明設定ステップと、
前記サーバが、前記調理説明部設定ステップにより前記各調理工程に対して調理の説明文が設定された前記調理スケジュールを示す情報を出力する出力ステップと
を備える調理スケジュール構成方法。
【請求項７】
コンピュータに、
それぞれ複数の調理工程により構成される、複数の料理のレシピを特定するレシピ特定ステップと、
前記特定ステップにより特定した複数のレシピを構成する各調理工程に対して調理の開始時間と終了時間とを割り当てることにより、前記複数の料理を並行して調理するための調理スケジュールを構成する調理スケジュール構成ステップであって、前記各調理工程のうち、その調理方法が共通する複数の調理工程に対して、当該複数の調理工程が時間的に連続するように調理の開始時間と終了時間とを割り当てる調理スケジュール構成ステップと、
前記サーバが、前記調理スケジュール構成ステップにより構成された調理スケジュールにおいて調理の開始時間と終了時間とが割り当てられた前記各調理工程に対して、調理工程の説明文を設定する調理説明設定ステップであって、前記複数の調理工程に対しては、当該複数の調理工程のそれぞれに対して予め用意されている説明文を統合し、その統合した説明文を、当該複数の調理工程の説明文として設定する調理説明設定ステップと、
前記調理説明部設定ステップにより前記各調理工程に対して調理の説明文が設定された前記調理スケジュールを示す情報を出力する出力ステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、調理スケジュールを構成する技術に関する。
【背景技術】
【０００２】
従来、複数の料理を並行して調理する調理人を支援するための技術が提案されている。例えば、非特許文献１では、既存のレシピをもとに、複数の料理を並行して調理するための一連の調理スケジュールを構成する手法が提案されている。この手法によれば、レシピに書かれている調理手順を構造化し、並行調理スケジュールを構成するためのレシピを新たに作成して、コンロや調理人を制約とした並行調理スケジュールを構成する。また、非特許文献２では、初心者でも失敗なく複数の料理を完成させることができるマルチメディア調理支援ソフトウェアが提案されている。このソフトウェアによれば、再計算された調理手順を正しいタイミングでユーザに提示することで、調理時間、調理の正確さ、そして学習効果の最適化が図られる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】杉本和香奈，佐藤哲司、「既存レシピを活用した並行調理スケジュール法の提案と評価」、電子情報通信学会他共催、第4回データ工学と情報マネジメントに関するフォーラムDEIM2012論文集、E8-1、2012年3月
【非特許文献２】浜田玲子，外３名、「マルチメディア調理支援ソフトウェア「HappyCooking」」、第2回デジタルコンテンツシンポジウム講演予稿集、2006年6月
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、上記の非特許文献１及び２において提案されている技術では、調理人にとっての調理のしやすさという観点からの配慮はなされていない。より具体的には、個別の調理工程における調理作業の効率化という観点からの配慮はなされていない。
【０００５】
本発明は、このような事情に鑑みてなされたものであり、調理人にとって調理のしやすい調理スケジュールを構成することを目的とする。
【課題を解決するための手段】
【０００６】
上記の課題を解決するため、本発明は、それぞれ複数の調理工程により構成される、複数の料理のレシピを特定するレシピ特定部と、前記レシピ特定部により特定された複数のレシピを構成する各調理工程に対して調理の開始時間と終了時間とを割り当てることにより、前記複数の料理を並行して調理するための調理スケジュールを構成する調理スケジュール構成部であって、前記各調理工程のうち、その調理方法が共通する複数の調理工程に対して、当該複数の調理工程が時間的に連続するように調理の開始時間と終了時間とを割り当てる調理スケジュール構成部と、前記調理スケジュール構成部により構成された調理スケジュールにおいて調理の開始時間と終了時間とが割り当てられた前記各調理工程に対して、調理工程の説明文を設定する調理説明設定部であって、前記複数の調理工程に対しては、当該複数の調理工程のそれぞれに対して予め用意されている説明文を統合し、その統合した説明文を、当該複数の調理工程の説明文として設定する調理説明設定部と、前記調理説明部設定部により前記各調理工程に対して調理の説明文が設定された前記調理スケジュールを示す情報を出力する出力部とを備える調理スケジュール構成装置を提供する。
【０００７】
この調理スケジュール構成装置において、前記複数の調理工程のそれぞれに対して予め用意されている説明文は、各調理工程において調理される食材の分量を示す情報を含み、前記調理説明設定部は、前記複数の調理工程に対しては、当該複数の調理工程において調理される食材の分量の合計値を算出し、その算出した合計値を、当該複数の調理工程の説明文の一部として設定してもよい。
【０００８】
また、上記の調理スケジュール構成装置において、前記調理スケジュール構成部は、前記複数の料理のうちの一の料理の特性が第１の条件を満たす場合に、前記各調理工程のうち、当該一の料理のレシピを構成する調理工程に対して、最も遅い調理の終了時間を割り当ててもよい。
【０００９】
また、上記の調理スケジュール構成装置において、前記調理スケジュール構成部は、前記各調理工程のうちの一の調理工程の負荷が第２の条件を満たす場合であって、かつ当該一の調理工程において使用される調理器具の数と、他の調理工程において使用される調理器具の数の合計が第３の条件を満たす場合には、前記一の調理工程に対して、前記他の調理工程と同時に並行するように調理の開始時間と終了時間とを割り当て、前記レシピ特定部は、前記一の調理工程の負荷が前記第２の条件を満たす場合であって、かつ前記一の調理工程において使用される調理器具の数と、前記他の調理工程において使用される調理器具の数の合計が前記第３の条件を満たさない場合には、前記複数の料理のレシピのうち、前記一の調理工程又は前記他の調理工程により構成される少なくとも一の料理のレシピが別の料理のレシピにより置換された別の複数の料理のレシピを特定し、前記調理スケジュール構成部は、前記特定された別の複数の料理のレシピを構成する各調理工程に対して調理の開始時間と終了時間とを割り当てることにより、前記別の複数の料理を並行して調理するための別の調理スケジュールを構成し、前記出力部は、前記構成された別の調理スケジュールを示す情報を出力してもよい。
【００１０】
また、上記の調理スケジュール構成装置において、前記調理スケジュール構成部は、前記一の調理工程の負荷が前記第２の条件を満たし、前記一の調理工程において使用される調理器具の数と、前記他の調理工程において使用される調理器具の数の合計が前記第３の条件を満たし、かつ前記他の調理工程と同時に並行するさらに他の調理工程が閾値以上存在しない場合に、前記一の調理工程に対して、前記他の調理工程と同時に並行するように調理の開始時間と終了時間とを割り当て、前記調理スケジュール構成装置は、前記複数の料理の調理人の熟練度に応じて前記閾値を設定する閾値設定部をさらに備えてもよい。
【００１１】
また、本発明は、サーバが、それぞれ複数の調理工程により構成される、複数の料理のレシピを特定するレシピ特定ステップと、前記サーバが、前記特定ステップにより特定した複数のレシピを構成する各調理工程に対して調理の開始時間と終了時間とを割り当てることにより、前記複数の料理を並行して調理するための調理スケジュールを構成する調理スケジュール構成ステップであって、前記各調理工程のうち、その調理方法が共通する複数の調理工程に対して、当該複数の調理工程が時間的に連続するように調理の開始時間と終了時間とを割り当てる調理スケジュール構成ステップと、前記サーバが、前記調理スケジュール構成ステップにより構成された調理スケジュールにおいて調理の開始時間と終了時間とが割り当てられた前記各調理工程に対して、調理工程の説明文を設定する調理説明設定ステップであって、前記複数の調理工程に対しては、当該複数の調理工程のそれぞれに対して予め用意されている説明文を統合し、その統合した説明文を、当該複数の調理工程の説明文として設定する調理説明設定ステップと、前記サーバが、前記調理説明部設定ステップにより前記各調理工程に対して調理の説明文が設定された前記調理スケジュールを示す情報を出力する出力ステップとを備える調理スケジュール構成方法を提供する。
【００１２】
また、本発明は、コンピュータに、それぞれ複数の調理工程により構成される、複数の料理のレシピを特定するレシピ特定ステップと、前記特定ステップにより特定した複数のレシピを構成する各調理工程に対して調理の開始時間と終了時間とを割り当てることにより、前記複数の料理を並行して調理するための調理スケジュールを構成する調理スケジュール構成ステップであって、前記各調理工程のうち、その調理方法が共通する複数の調理工程に対して、当該複数の調理工程が時間的に連続するように調理の開始時間と終了時間とを割り当てる調理スケジュール構成ステップと、前記サーバが、前記調理スケジュール構成ステップにより構成された調理スケジュールにおいて調理の開始時間と終了時間とが割り当てられた前記各調理工程に対して、調理工程の説明文を設定する調理説明設定ステップであって、前記複数の調理工程に対しては、当該複数の調理工程のそれぞれに対して予め用意されている説明文を統合し、その統合した説明文を、当該複数の調理工程の説明文として設定する調理説明設定ステップと、前記調理説明部設定ステップにより前記各調理工程に対して調理の説明文が設定された前記調理スケジュールを示す情報を出力する出力ステップとを実行させるためのプログラムを提供する。
【発明の効果】
【００１３】
本発明によれば、調理人にとって調理のしやすい調理スケジュールを構成することができる。
【図面の簡単な説明】
【００１４】
【図１】調理手順表示システム１の構成の一例を示す図である。
【図２】料理ＤＢ２３０１の一例を示す図である。
【図３】レシピ_基本ＤＢ２３０２の一例を示す図である。
【図４】レシピ_調理器具ＤＢ２３０３の一例を示す図である。
【図５】レシピ_食材ＤＢ２３０４の一例を示す図である。
【図６】調理器具ＤＢ２３０５の一例を示す図である。
【図７】食材ＤＢ２３０６の一例を示す図である。
【図８】画像ＤＢ２３０７の一例を示す図である。
【図９】調理手順_基本ＤＢ２３０８の一例を示す図である。
【図１０】調理手順_調理器具ＤＢ２３０９の一例を示す図である。
【図１１】調理手順_食材ＤＢ２３１０の一例を示す図である。
【図１２】ユーザ基本情報ＤＢ２３１１の一例を示す図である。
【図１３】所有調理器具ＤＢ２３１２の一例を示す図である。
【図１４】調理手順表示システム１の動作例を示すシーケンス図である。
【図１５】処理Ａの一例を示すフローチャートである。
【図１６】処理Ａ１の一例を示すフローチャートである。
【図１７】処理テーブルＴ１の一例を示す図である。
【図１８】処理Ａ２の一例を示すフローチャートである。
【図１９】処理Ａ２の一例を示すフローチャートである。
【図２０】処理テーブルＴ２の一例を示す図である。
【図２１】調理スケジュールの一例を示す図である。
【図２２】処理Ａ３の一例を示すフローチャートである。
【図２３】処理Ａ３の一例を示すフローチャートである。
【図２４】処理Ａ３ａの一例を示すフローチャートである。
【図２５】処理Ａ３ａの一例を示すフローチャートである。
【図２６】処理テーブルＴ３の一例を示す図である。
【図２７】処理Ａ３ａの効果について説明する図である。
【図２８】処理Ａ３のステップＳｅ２の処理の効果を示す図である。
【図２９】処理Ａ４の一例を示すフローチャートである。
【図３０】処理Ａ４の一例を示すフローチャートである。
【図３１】処理Ｂの一例を示すフローチャートである。
【図３２】処理Ｂの一例を示すフローチャートである。
【図３３】処理Ｂの一例を示すフローチャートである。
【図３４】処理Ｂの一例を示すフローチャートである。
【図３５】処理Ｂの一例を示すフローチャートである。
【図３６】処理Ｂの効果を説明する図である。
【図３７】ユーザ端末３の表示部３２に表示される画面例を示す図である。
【図３８】ユーザ端末３の表示部３２に表示される画面例を示す図である。
【発明を実施するための形態】
【００１５】
１．実施形態
１−１．構成
１−１−１．調理手順表示システム１の構成
本実施形態に係る調理手順表示システム１は、複数の料理を並行して調理するための調理スケジュールを構成し、その調理スケジュールに沿って調理手順を説明する画面を表示するためのシステムである。図１は、調理手順表示システム１の構成の一例を示す図である。調理手順表示システム１は、図１に示されるように、サーバシステム２と、ユーザ端末３とを有する。サーバシステム２とユーザ端末３とは、インターネット等のネットワーク４により接続される。サーバシステム２は、Ｗｅｂサーバ２１と、ＡＰ（Application）サーバ２２と、ＤＢ（Database）サーバ２３とにより構成される。
【００１６】
１−１−２．サーバシステム２の構成
Ｗｅｂサーバ２１は、図１に示されるように、通信部２１１を備える。通信部２１１は、ユーザ端末３から送信される情報を受信するとともに、後述するようにＡＰサーバ２２から出力される画面データをユーザ端末３に対して送信する。
【００１７】
ＡＰサーバ２２は、Ｗｅｂサーバ２１を介してユーザ端末３から送信される情報を取得し、この情報に基づいて、料理の調理手順を説明する画面データを生成して、Ｗｅｂサーバ２１に出力する。ＡＰサーバ２２は、図１に示されるように、レシピ特定部２２１と、重視特性特定部２２２と、調理スケジュール構成部２２３と、時間判定部２２４と、調理説明設定部２２５と、画面構成部２２６と、出力部２２７とを有する。これらの構成要素は、ＡＰサーバ２２が備えるＣＰＵ（Central Processing Unit）等の演算装置が、ＡＰサーバ２２が備えるメモリからプログラムを読み出して実行することにより実現される。ＡＰサーバ２２は、本発明に係る「調理スケジュール構成装置」の一例である。
以下、各構成要素について説明する。
【００１８】
レシピ特定部２２１は、それぞれ複数の調理工程により構成される、複数の料理のレシピを特定する。また、レシピ特定部２２１は、一の調理工程の負荷が所定の条件を満たす場合であって、かつその一の調理工程において使用される調理器具の数と、他の調理工程において使用される調理器具の数の合計が別の所定の条件を満たさない場合には、複数の料理のレシピのうち、その一の調理工程又は他の調理工程により構成される少なくとも一の料理のレシピが別の料理のレシピにより置換された別の複数の料理のレシピを特定する。
【００１９】
重視特性特定部２２２は、ユーザ端末３のユーザが重視する調理特性を特定する。
【００２０】
調理スケジュール構成部２２３は、レシピ特定部２２１により特定された複数のレシピを構成する各調理工程に対して調理の開始時間と終了時間とを割り当てることにより、複数の料理を並行して調理するための調理スケジュールを構成する。その際、調理スケジュール構成部２２３は、各調理工程のうち、その調理方法が共通する複数の調理工程に対して、当該複数の調理工程が時間的に連続するように調理の開始時間と終了時間とを割り当てる。
【００２１】
また、調理スケジュール構成部２２３は、上記の調理スケジュールを構成する際に、複数の料理のうちの一の料理の特性がある所定の条件を満たす場合には、各調理工程のうち、当該一の料理のレシピを構成する調理工程に対して、最も遅い調理の終了時間を割り当てる。
【００２２】
また、調理スケジュール構成部２２３は、上記の調理スケジュールを構成する際に、各調理工程のうちの一の調理工程の負荷が所定の条件を満たす場合であって、かつ当該一の調理工程において使用される調理器具の数と、他の調理工程において使用される調理器具の数の合計が別の所定の条件を満たす場合には、その一の調理工程に対して、その他の調理工程と同時に並行するように調理の開始時間と終了時間とを割り当てる。調理スケジュール構成部２２３は、上記の条件に加えてさらに、上記の他の調理工程と同時に並行するさらに他の調理工程が閾値以上存在しないという条件を満たした場合に限り、他の調理工程と同時に並行するように調理の開始時間と終了時間とを割り当てるようにしてもよい。
【００２３】
時間判定部２２４は、調理スケジュール構成部２２３によって構成された調理スケジュールに従って調理が行われた場合の合計調理時間が、ユーザ端末３のユーザによって指定された料理の完成時間以下であるか否かについて判定する。
【００２４】
調理説明設定部２２５は、調理スケジュール構成部２２３により構成された調理スケジュールにおいて調理の開始時間と終了時間とが割り当てられた各調理工程に対して、調理工程の説明文を設定する。その際、調理説明設定部２２５は、調理方法が共通し、かつ連続する複数の調理工程に対しては、当該複数の調理工程のそれぞれに対して予め用意されている説明文を統合し、その統合した説明文を、当該複数の調理工程の説明文として設定する。例えば、調理説明設定部２２５は、その複数の調理工程において調理される食材の分量の合計値を算出し、その算出した合計値を、当該複数の調理工程の説明文の一部として設定する。または、調理説明設定部２２５は、その複数の調理工程のそれぞれに対して予め用意されている説明文のうちの一の説明文のみを当該複数の調理工程の説明文として設定する。
【００２５】
画面構成部２２６は、調理説明設定部２２５により設定された調理工程の説明文に基づいて、ユーザ端末３において表示される画面データを構成する。
【００２６】
出力部２２７は、調理スケジュール構成部２２３により構成された調理スケジュールを示す情報を出力する。また、出力部２２７は、その調理スケジュールを示す情報とともに、各調理工程につきその調理工程において調理される食材の分量を示す情報を出力する。その際、出力部２２７は、複数の調理工程において調理される食材の分量を示す情報として、上記の算出部によって算出された合計値を示す情報を出力してもよい。
【００２７】
次に、ＤＢサーバ２３は、図１に示されるように、料理ＤＢ２３０１と、レシピ_基本ＤＢ２３０２と、レシピ_調理器具ＤＢ２３０３と、レシピ_食材ＤＢ２３０４と、調理器具ＤＢ２３０５と、食材ＤＢ２３０６と、画像ＤＢ２３０７と、調理手順_基本ＤＢ２３０８と、調理手順_調理器具ＤＢ２３０９と、調理手順_食材ＤＢ２３１０と、ユーザ基本情報ＤＢ２３１１と、所有調理器具ＤＢ２３１２とを有する。
以下、各データベースについて説明する。
【００２８】
図２は、料理ＤＢ２３０１の一例を示す図である。料理ＤＢ２３０１は、各料理の属性情報を管理するためのデータベースである。料理ＤＢ２３０１を構成する各レコードは、図２に示されるように、「料理ＩＤ」と、「料理名」と、「完成属性」の各フィールドにより構成される。ここで、料理ＩＤ（Identification Data）は、料理に一意に付与される識別情報であり、料理名は料理の名称である。完成属性は、その料理が完成後にできるだけ早く食すべきものであるか否かについて示す情報である。本実施形態では、料理の完成後すみやかに食すべき料理に対しては、「出来立て」の情報がフィールドに格納される。この完成属性は、本発明に係る「料理の特性」の一例であり、完成属性「出来立て」に料理ＩＤが対応づけられている状態は、本発明に係る「一の料理の特性が第１の条件を満たす場合」の一例である。
【００２９】
図３は、レシピ_基本ＤＢ２３０２の一例を示す図である。レシピ_基本ＤＢ２３０２は、各レシピに関する基本的な情報を管理するためのデータベースである。レシピ_基本ＤＢ２３０２を構成する各レコードは、図３に示されるように、「レシピＩＤ」と、「料理ＩＤ」と、「熟練度」と、「調理時間」の各フィールドにより構成される。ここで、レシピＩＤは、レシピに一意に付与される識別情報である。レシピＩＤは、一の料理ＩＤに対して複数存在し得る。熟練度は、ユーザ端末３のユーザの料理の熟練度である。本実施形態では、「初心者」、「中級者」及び「上級者」のいずれかの情報がフィールドに格納される。調理時間は、レシピに基づいて料理を完成させるために必要な時間である。
【００３０】
図４は、レシピ_調理器具ＤＢ２３０３の一例を示す図である。レシピ_調理器具ＤＢ２３０３は、レシピと調理器具とを対応づけるデータベースである。レシピ_調理器具ＤＢ２３０３を構成する各レコードは、図４に示されるように、「レシピＩＤ」と、「調理器具ＩＤ」の各フィールドにより構成される。ここで、料理器具ＩＤは、レシピに従って料理を完成させるために必要な調理器具の識別情報である。
【００３１】
図５は、レシピ_食材ＤＢ２３０４の一例を示す図である。レシピ_食材ＤＢ２３０４は、レシピと食材とを対応づけるデータベースである。レシピ_食材ＤＢ２３０４を構成する各レコードは、図５に示されるように、「レシピＩＤ」と、「食材ＩＤ」と、「分量」の各フィールドにより構成される。ここで、食材ＩＤと分量とは、レシピに従って料理を完成させるために必要な食材の識別情報とその量（１人分）である。
【００３２】
図６は、調理器具ＤＢ２３０５の一例を示す図である。調理器具ＤＢ２３０５は、調理器具の識別情報と名称とを対応づけるデータベースである。調理器具ＤＢ２３０５を構成する各レコードは、図６に示されるように、「調理器具ＩＤ」と、「調理器具名」の各フィールドにより構成される。
【００３３】
図７は、食材ＤＢ２３０６の一例を示す図である。食材ＤＢ２３０６は、食材の識別情報と名称とを対応づけるデータベースである。食材ＤＢ２３０６を構成する各レコードは、図７に示されるように、「食材ＩＤ」と、「食材名」の各フィールドにより構成される。
【００３４】
図８は、画像ＤＢ２３０７の一例を示す図である。画像ＤＢ２３０７は、画像の識別情報とデータとを対応づけるデータベースである。画像ＤＢ２３０７を構成する各レコードは、図８に示されるように、「画像ＩＤ」と、「画像データ」の各フィールドにより構成される。ここで、画像ＩＤは、画像に一意に付与される識別情報である。
【００３５】
図９は、調理手順_基本ＤＢ２３０８の一例を示す図である。調理手順_基本ＤＢ２３０８は、各調理手順に関する基本的な情報を管理するためのデータベースである。調理手順_基本ＤＢ２３０８を構成する各レコードは、図９に示されるように、「調理手順ＩＤ」と、「レシピＩＤ」と、「並行特性」と、「調理種別」と、「標準手順」と、「並行手順」と、「調理時間」と、「先行手順ＩＤ」と、「後続手順ＩＤ」と、「画像ＩＤ」の各フィールドにより構成される。ここで、調理手順ＩＤは、調理手順に一意に付与される識別情報である。通常、料理のレシピは複数の調理手順から構成されるため、一のレシピＩＤに対しては複数の調理手順ＩＤが対応づけられる。なお、本実施形態における調理手順は、本発明に係る「調理工程」の一例である。
【００３６】
並行特性は、その調理手順が他の調理手順と同時並行可能であるか否かを示す情報である。例えば、調理手順が「煮る」や「焼く」である場合には、鍋を火にかけている間、調理人の手は空くため、その場合には当該調理手順は、他の調理手順と同時並行可能であると言える。本実施形態では、「並行可」と「並行不可」のいずれかの情報がフィールドに格納される。並行特性は、本発明に係る「調理工程の負荷」を示す情報の一例であり、並行特性「並行可」と調理手順ＩＤが対応づけられている状態は、本発明に係る「一の調理工程の負荷が第２の条件を満たす場合」の一例である。
【００３７】
調理種別は、その調理手順において採用される調理方法を示す情報である。本実施形態では、「カット」、「まぜる」、「焼く」、「盛り付け」等の情報がフィールドに格納される。調理種別「焼く」のうち、その調理対象が他の食材と同一の鍋で同時に調理できるものについては、「焼くＡ」と呼称する。
なお、本実施形態における調理種別は、本発明に係る「調理方法」の一例である。
【００３８】
標準手順は、その調理手順の説明文である。並行手順は、その調理手順が他の調理手順と並行して行われる際に提示される、当該調理手順の説明文である。
調理時間は、調理手順を完了するために必要な時間である。
先行手順ＩＤは、その調理手順が行われる前に行われるべき調理手順の識別情報である。後続手順ＩＤは、その調理手順が行われた後に行われるべき調理手順の識別情報である。
【００３９】
図１０は、調理手順_調理器具ＤＢ２３０９の一例を示す図である。調理手順_調理器具ＤＢ２３０９は、調理手順と調理器具とを対応づけるデータベースである。調理手順_調理器具ＤＢ２３０９を構成する各レコードは、図１０に示されるように、「調理手順ＩＤ」と、「調理器具ＩＤ」の各フィールドにより構成される。
【００４０】
図１１は、調理手順_食材ＤＢ２３１０の一例を示す図である。調理手順_食材ＤＢ２３１０は、調理手順と食材とを対応づけるデータベースである。調理手順_食材ＤＢ２３１０を構成する各レコードは、図１１に示されるように、「調理手順ＩＤ」と、「食材ＩＤ」と、「分量」の各フィールドにより構成される。
【００４１】
図１２は、ユーザ基本情報ＤＢ２３１１の一例を示す図である。ユーザ基本情報ＤＢ２３１１は、各ユーザに関する基本情報を管理するためのデータベースである。ユーザ基本情報ＤＢ２３１１を構成する各レコードは、図１２に示されるように、「ユーザＩＤ」と、「熟練度」と、「重視調理特性」の各フィールドにより構成される。ここで、ユーザＩＤとは、ユーザ端末３のユーザに一意に付与される識別情報である。「重視調理特性」とは、ユーザにより重視される調理上の特性である。本実施形態では、「調理時間が短い」、「調理しやすい」及び「余裕をもって調理できる」のいずれかの情報がフィールドに格納される。
【００４２】
図１３は、所有調理器具ＤＢ２３１２の一例を示す図である。所有調理器具ＤＢ２３１２は、各ユーザが所有する調理器具に関する情報を管理するためのデータベースである。所有調理器具ＤＢ２３１２を構成する各レコードは、図１３に示されるように、「ユーザＩＤ」と、「調理器具ＩＤ」と、「調理器具名」と、「所有数」の各フィールドにより構成される。ここで、所有数とは、ユーザが所有している調理器具の数である。
なお、本実施形態では、ユーザ基本情報ＤＢ２３１１とユーザ基本情報ＤＢ２３１１とは、サーバシステム２において保持されているが、ネットワーク４上の他のサーバにおいて保持されてもよい。
【００４３】
１−１−３．ユーザ端末３の構成
ユーザ端末３は、例えば、パーソナルコンピュータである。より具体的には、スマートフォンやタブレット端末等の携帯端末や、据え置き型のコンピュータである。ユーザ端末３は、図１に示されるように、入力部３１と、表示部３２と、通信部３３とを有する。
【００４４】
入力部３１は、例えば、キーボードやタッチパネル等の入力装置である。
表示部３２は、例えば、液晶ディスプレイ等の表示装置である。表示部３２は、通信部３３により受信される画面データを表示する。
通信部３３は、例えばネットワークカードである。通信部３３は、入力部３１を用いて入力された情報をサーバシステム２に送信するとともに、サーバシステム２から送信されてくる画面データを受信する。
【００４５】
１−２．動作
次に、調理手順表示システム１の動作について説明する。
図１４は、調理手順表示システム１の動作例を示すシーケンス図である。この動作において調理手順表示システム１は、複数の料理を並行して調理するための調理スケジュールを構成し、その調理スケジュールに沿って調理手順を説明する画面を表示する。
【００４６】
ステップＳａ１において、ユーザ端末３の通信部３３は、ユーザ基本情報と所有調理器具情報とをサーバシステム２に対して送信する。ここで、ユーザ基本情報とは、ユーザの熟練度を示す情報と、ユーザの重視調理特性を示す情報とからなる。所有調理器具情報とは、ユーザが所有する調理器具の名称とその数を示す情報である。
【００４７】
サーバシステム２のＡＰサーバ２２は、ユーザ端末３から送信されたユーザ基本情報と所有調理器具情報とをＷｅｂサーバ２１を介して取得すると、当該ユーザに対してユーザＩＤを発行した上で、ユーザ基本情報をユーザ基本情報ＤＢ２３１１に登録し、所有調理器具情報を所有調理器具ＤＢ２３１２に登録する（ステップＳａ２）。
【００４８】
次に、ユーザ端末３の通信部３３は、料理情報とユーザＩＤとをサーバシステム２に対して送信する（ステップＳａ３）。ここで、料理情報とは、ユーザが調理しようとする複数の料理名を示す情報と、料理の完成時間を示す情報と、料理の分量を示す情報とからなる。料理の完成時間とは、すべての料理が完成するまでにかかる時間である。料理の分量とは、何人分の料理であるかを示す情報である。
なお、上記のユーザ基本情報と所有調理器具情報とは、上記のようにサーバシステム２のデータベースに登録せずに、この料理情報の送信の際に都度、ユーザ端末３からサーバシステム２に送信されるようにしてもよい。
【００４９】
サーバシステム２のＡＰサーバ２２は、ユーザ端末３から送信された料理情報をＷｅｂサーバ２１を介して取得すると、この料理情報に基づいて処理Ａを実行する。
【００５０】
図１５は、処理Ａの一例を示すフローチャートである。この処理ＡにおいてＡＰサーバ２２は、ユーザ端末３のユーザにより指定された複数の料理を並行して調理するための調理スケジュールを構成する。
ステップＳｂ１においてＡＰサーバ２２のレシピ特定部２２１は、処理Ａ１を実行する。
【００５１】
図１６は、処理Ａ１の一例を示すフローチャートである。この処理Ａ１においてレシピ特定部２２１は、ユーザによって指定された各料理名について一のレシピを特定する。
ステップＳｃ１においてレシピ特定部２２１は、料理ＤＢ２３０１を検索して、ユーザによって指定された各料理名に対応づけられている料理ＩＤを取得する。
次に、レシピ特定部２２１は、ループＬ１に移行する（ステップＳｃ２）。このループＬ１においてレシピ特定部２２１は、ステップＳｃ１において取得した各料理ＩＤについて一のレシピＩＤを取得する。
【００５２】
ステップＳｃ３においてレシピ特定部２２１は、レシピ_基本ＤＢ２３０２を検索して、ステップＳｃ１において取得した一の料理ＩＤに対応づけられているレシピＩＤを取得する。この際、レシピ特定部２２１は、ユーザの熟練度以下の熟練度（例えば、ユーザの熟練度が「中級者」である場合には、「中級者」と「初級者」）と、ユーザによって指定された料理の完成時間以下の調理時間とに対応づけられたレシピＩＤを取得する。ここで、ユーザの熟練度は、ユーザＩＤを検索キーとしてユーザ基本情報ＤＢ２３１１を検索することにより特定される。
【００５３】
次に、レシピ特定部２２１は、ステップＳｃ３において取得したレシピＩＤのうち、ユーザが所有しない調理器具を必要とするレシピのＩＤを除外する（ステップＳｃ４）。具体的には、レシピ特定部２２１は、ステップＳｃ３において取得した各レシピＩＤについて、レシピ_調理器具ＤＢ２３０３を検索して調理器具ＩＤを取得し、その取得した調理器具ＩＤのいずれかが、ユーザが所有する調理器具のＩＤに含まれていないレシピＩＤを、ステップＳｃ３において取得したレシピＩＤの中から除外する。ここで、ユーザが所有する調理器具のＩＤは、ユーザＩＤを検索キーとして所有調理器具ＤＢ２３１２を検索することにより特定される。
【００５４】
次に、レシピ特定部２２１は、ステップＳｃ４の処理の結果残ったレシピＩＤの数が「０」、「１」、「１より大」のいずれに該当するかを判定する（ステップＳｃ５）。この判定の結果、レシピＩＤの数が「０」である場合には（ステップＳｃ５：「０」）、レシピ特定部２２１は、処理対象となっている料理ＩＤに対応するレシピＩＤが存在しない旨のメッセージをＷｅｂサーバ２１を介してユーザ端末３に送信する（ステップＳｃ６）。そして、レシピ特定部２２１は処理Ａ１を終了する。
このステップＳｃ６の処理が実行された場合、ＡＰサーバ２２は、処理Ａの残りの工程の実行を中止し、処理Ｂについても実行をしない。
【００５５】
レシピＩＤの数が「１」である場合には（ステップＳｃ５：「１」）、レシピ特定部２２１は、ステップＳｃ４の処理の結果残ったレシピＩＤと調理手順_基本ＤＢ２３０８において対応づけられている調理手順ＩＤを処理テーブルＴ１に記述する（ステップＳｃ７）。
【００５６】
図１７は、処理テーブルＴ１の一例を示す図である。同図に示されるように、処理テーブルＴ１を構成する各レコードは、「調理手順ＩＤ」と、「並行特性」と、「調理時間」と、「後続手順ＩＤ」と、「ステータス」の各フィールドにより構成される。ここで、「ステータス」のフィールドは、後述する処理Ａ２〜Ａ４において使用される。
レシピ特定部２２１は、調理手順ＩＤを処理テーブルＴ１に記述するにあたり、当該調理手順ＩＤと調理手順_基本ＤＢ２３０８において対応づけられている並行特性、調理時間及び後続手順ＩＤも処理テーブルＴ１に記述する。
【００５７】
レシピＩＤの数が「１より大」に該当する場合には（ステップＳｃ５：「１より大」）、レシピ特定部２２１は、それらのレシピＩＤのうち、ユーザの熟練度と同一の熟練度とレシピ_基本ＤＢ２３０２において対応づけられているレシピＩＤの数が「０」、「１」、「１より大」のいずれに該当するかを判定する（ステップＳｃ８）。
【００５８】
この判定の結果、レシピＩＤの数が「０」である場合には（ステップＳｃ８：「０」）、レシピ特定部２２１は、ステップＳｃ４の処理の結果残ったレシピＩＤのうち、調理時間が最短であるレシピのＩＤと調理手順_基本ＤＢ２３０８において対応づけられている調理手順ＩＤを処理テーブルＴ１に記述する（ステップＳｃ９）。その際、レシピ特定部２２１は、ステップＳｃ４の処理の結果残った各レシピＩＤについて、レシピ_基本ＤＢ２３０２を検索して調理時間を特定し、それらを比較することにより、調理時間が最短であるレシピのＩＤを特定する。
レシピ特定部２２１は、調理手順ＩＤを処理テーブルＴ１に記述するにあたり、当該調理手順ＩＤと調理手順_基本ＤＢ２３０８において対応づけられている並行特性、調理時間及び後続手順ＩＤも処理テーブルＴ１に記述する。
【００５９】
レシピＩＤの数が「１」である場合には（ステップＳｃ８：「１」）、レシピ特定部２２１は、ユーザの熟練度と同一の熟練度とレシピ_基本ＤＢ２３０２において対応づけられているレシピＩＤと調理手順_基本ＤＢ２３０８において対応づけられている調理手順ＩＤを処理テーブルＴ１に記述する（ステップＳｃ１０）。その際、レシピ特定部２２１は、当該調理手順ＩＤと調理手順_基本ＤＢ２３０８において対応づけられている並行特性、調理時間及び後続手順ＩＤも処理テーブルＴ１に記述する。
【００６０】
レシピＩＤの数が「１より大」である場合には（ステップＳｃ８：「１より大」）、レシピ特定部２２１は、ユーザの熟練度と同一の熟練度とレシピ_基本ＤＢ２３０２において対応づけられているレシピＩＤのうち、最短の調理時間と対応づけられているレシピＩＤと調理手順_基本ＤＢ２３０８において対応づけられている調理手順ＩＤを処理テーブルＴ１に記述する（ステップＳｃ１１）。その際、レシピ特定部２２１は、当該調理手順ＩＤと調理手順_基本ＤＢ２３０８において対応づけられている並行特性、調理時間及び後続手順ＩＤも処理テーブルＴ１に記述する。
【００６１】
レシピ特定部２２１は、ステップＳｃ１において取得したすべての料理ＩＤについて一のレシピＩＤを取得すると（ステップＳｃ１２）、処理Ａ１を終了する。
以上説明した処理Ａ１によれば、ユーザによって指定された料理名に基づいてレシピが特定される際に、ユーザの熟練度とユーザが所有する調理器具の種類とが考慮される。
【００６２】
ここで、図１５に示される処理Ａの説明に戻る。
レシピ特定部２２１が処理Ａ１を終了すると、ＡＰサーバ２２の重視特性特定部２２２は、ユーザ端末３のユーザが重視する調理特性を特定する（ステップＳｂ２）。ここで、この調理特性は、ユーザＩＤを検索キーとしてユーザ基本情報ＤＢ２３１１を検索することにより特定される。そして、重視特性特定部２２２は、この特定した重視調理特性が「調理時間が短い」、「調理しやすい」及び「余裕をもって調理できる」のいずれに該当するかを判定する（ステップＳｂ３）。
【００６３】
この判定の結果、重視調理特性が「調理時間が短い」に該当する場合には（ステップＳｂ３：「調理時間が短い」）、ＡＰサーバ２２の調理スケジュール構成部２２３は、処理Ａ２を実行する（ステップＳｂ４）。重視調理特性が「調理しやすい」に該当する場合には（ステップＳｂ３：「調理しやすい」）、調理スケジュール構成部２２３は、処理Ａ３を実行する（ステップＳｂ９）。重視調理特性が「余裕をもって調理できる」に該当する場合には（ステップＳｂ３：「余裕をもって調理できる」）、調理スケジュール構成部２２３は、処理Ａ４を実行する（ステップＳｂ１０）。
以下、処理Ａ２〜Ａ４の各処理について説明する。
【００６４】
図１８及び図１９は、処理Ａ２の一例を示すフローチャートである。この処理Ａ２において調理スケジュール構成部２２３は、処理Ａ１において特定された各レシピに従って複数の料理を並行して調理するための調理スケジュールを構成する。その際、調理スケジュール構成部２２３は、処理Ａ１において特定された各レシピを構成する各調理手順に対して、スケジュール上の時間の流れと逆順に、調理の開始時間と終了時間とを割り当てていくことにより当該調理スケジュールを構成する。また、調理スケジュール構成部２２３は、調理時間が短くなるように当該調理スケジュールを構成する。
【００６５】
ステップＳｄ１において調理スケジュール構成部２２３は、処理テーブルＴ１に格納されている各調理手順ＩＤのステータスの値を「０」に設定する。ここで、ステータスの値「０」は、その調理手順ＩＤがまだ処理されていないことを示し、値「１」は、その調理手順ＩＤがすでに処理済みであることを示す。ここで処理とは、調理手順ＩＤに対して調理の開始時間と終了時間とを割り当てることである。
【００６６】
次に、調理スケジュール構成部２２３は、本処理Ａ２において構成される調理スケジュールにおいて最後に実行される調理手順に対して調理の開始時間と終了時間とを割り当てるために、以下のステップＳｄ２〜Ｓｄ７の処理を実行する。
まず、ステップＳｄ２において調理スケジュール構成部２２３は、処理Ａ１において特定された各レシピに従って調理される料理の完成属性を特定する。具体的には、調理スケジュール構成部２２３は、処理テーブルＴ１に格納される各調理手順ＩＤについて、調理手順_基本ＤＢ２３０８を検索してレシピＩＤを取得し、その取得したレシピＩＤについて、レシピ_基本ＤＢ２３０２を検索して料理ＩＤを取得し、その取得した料理ＩＤについて、料理ＤＢ２３０１を検索して完成属性を特定する。
【００６７】
次に、調理スケジュール構成部２２３は、ステップＳｄ２において特定した完成属性のうち、「出来立て」に該当する完成属性の数が「０」、「１」及び「１より大」のいずれに該当するかを判定する（ステップＳｄ３）。
この判定の結果、完成属性の数が「０」である場合には（ステップＳｄ３：「０」）、調理スケジュール構成部２２３は、レシピＩＤを介して最長の調理時間と対応づけられている調理手順ＩＤのうち、最終調理手順を示す調理手順ＩＤを処理テーブルＴ２に記述する（ステップＳｄ４）。ここで、最終調理手順を示す調理手順ＩＤとは、調理手順_基本ＤＢ２３０８において後続手順ＩＤと対応づけられていない調理手順ＩＤである。
【００６８】
図２０は、処理テーブルＴ２の一例を示す図である。同図に示されるように、処理テーブルＴ２の各レコードは、「時間ｔ」と、「調理手順ＩＤ」と、「標準手順／並行手順」と、「表示ステータス」の各フィールドにより構成される。ここで、「標準手順／並行手順」のフィールドと「表示ステータス」のフィールドとは、後述する処理Ｂにおいて使用される。
【００６９】
調理スケジュール構成部２２３は、調理手順ＩＤを処理テーブルＴ２に記述する際、時間ｔ［０］から時間ｔ［ｘ］に対応づけてその調理手順ＩＤを記述する。ここで変数ｘは、その調理手順ＩＤと調理手順_基本ＤＢ２３０８において対応づけられている調理時間である。例えば、当該調理手順ＩＤが「ｃｐ００５０１０３」であり、対応づけられている調理時間が「２（分）」である場合には、処理テーブルＴ２において、時間ｔ［０］から時間ｔ［１］に対応づけて、調理手順ＩＤ「ｃｐ００５０１０３」が記述される。
【００７０】
なお、もしステップＳｄ４において、最長の調理時間と対応づけられているレシピＩＤが複数存在する場合には、調理スケジュール構成部２２３は、その値が最小の調理手順ＩＤを処理テーブルＴ２に記述する。
【００７１】
完成属性の数が「１」である場合には（ステップＳｄ３：「１」）、調理スケジュール構成部２２３は、レシピＩＤを介して完成属性「出来立て」と対応づけられている調理手順ＩＤのうち、最終調理手順を示す調理手順ＩＤを処理テーブルＴ２に記述する（ステップＳｄ５）。調理手順ＩＤの処理テーブルＴ２への記述の仕方は、ステップＳｄ４と同様である。
【００７２】
完成属性の数が「１より大」である場合には（ステップＳｄ３：「１より大」）、調理スケジュール構成部２２３は、レシピＩＤを介して完成属性「出来立て」と最長の調理時間とに対応づけられている調理手順ＩＤのうち、最終調理手順を示す調理手順ＩＤを処理テーブルＴ２に記述する（ステップＳｄ６）。調理手順ＩＤの処理テーブルＴ２への記述の仕方は、ステップＳｄ４と同様である。
なお、もしステップＳｄ６において、完成属性「出来立て」と最長の調理時間とに対応づけられているレシピＩＤが複数存在する場合には、調理スケジュール構成部２２３は、その値が最小の調理手順ＩＤを処理テーブルＴ２に記述する。
【００７３】
次に、調理スケジュール構成部２２３は、処理テーブルＴ１において、ステップＳｄ４〜Ｓｄ６のいずれかの処理によって処理テーブルＴ２に記述された最終調理手順を示す調理手順ＩＤのステータスの値を「１」に設定する（ステップＳｄ７）。
【００７４】
以上説明したステップＳｄ２〜Ｓｄ７の処理により、調理スケジュールの最後に実行される調理手順に対する調理の開始時間と終了時間の割り当てを完了すると、次に調理スケジュール構成部２２３は、以下のステップＳｄ８〜Ｓｄ２６の処理を実行して、処理テーブルＴ１に格納されている未処理の調理手順ＩＤに対して、スケジュール上の時間の流れと逆順に、順次、調理の開始時間と終了時間とを割り当てていく。
【００７５】
まず、ステップＳｄ８において調理スケジュール構成部２２３は、処理テーブルＴ１においてそのステータスの値が「０」となっている各調理手順ＩＤ（すなわち、未処理の調理手順ＩＤ）のうち、調理手順_基本ＤＢ２３０８において後続手順ＩＤと対応づけられていない調理手順ＩＤか、または対応づけられている後続手順ＩＤのステータスの値が「１」となっている調理手順ＩＤを取得する。以下、本処理Ａ２において、この調理手順ＩＤを「処理対象の調理手順ＩＤ」と呼ぶ。
【００７６】
次に、調理スケジュール構成部２２３は、処理対象の調理手順ＩＤが調理手順_基本ＤＢ２３０８において後続手順ＩＤと対応づけられていないか否かについて判定する（ステップＳｄ９）。この判定の結果、処理対象の調理手順ＩＤが後続手順ＩＤと対応づけられていない場合には（ステップＳｄ９：ＹＥＳ）、すなわち、最終調理手順を示す調理手順ＩＤである場合には、調理スケジュール構成部２２３は、後述するループＬ２の変数ｉの初期値ｉ_ｓｔａｒｔとして「０」を設定する（ステップＳｄ１０）。
【００７７】
一方、この判定の結果、処理対象の調理手順ＩＤが後続手順ＩＤと対応づけられている場合には（ステップＳｄ９：ＮＯ）、調理スケジュール構成部２２３は、後述するループＬ２の変数ｉの初期値ｉ_ｓｔａｒｔとして「ｋ＋１」を設定する（ステップＳｄ１１）。ここで変数ｋとは、その後続手順ＩＤが処理テーブルＴ２において対応づけられている時間ｔの値のうち最大の値である。例えば、処理対象の調理手順ＩＤが「ｃｐ００５０１０２」であり、その後続手順ＩＤが「ｃｐ００５０１０３」である場合には、図２０に示される処理テーブルＴ２においては、変数ｋは「１」となる。
【００７８】
次に、調理スケジュール構成部２２３は、ループＬ２に移行する（ステップＳｄ１２）。このループＬ２の変数ｉの初期値と増分値は、それぞれ「ｉ_ｓｔａｒｔ」、「１」である。このループＬ２において調理スケジュール構成部２２３は、初期値ｉ_ｓｔａｒｔに対応する時間ｔを始点として、時間ｔの昇順で、処理対象の調理手順ＩＤを割り当て可能な時間ｔを検索する。
【００７９】
ステップＳｄ１３において調理スケジュール構成部２２３は、処理対象の調理手順ＩＤについて、調理手順_基本ＤＢ２３０８を検索して、並行特性と調理時間とを特定する。また、調理スケジュール構成部２２３は、処理対象の調理手順ＩＤについて、調理手順_調理器具ＤＢ２３０９を検索して、調理器具ＩＤを取得する（ステップＳｄ１４）。
【００８０】
次に、調理スケジュール構成部２２３は、ループＬ３に移行する（ステップＳｄ１５）。このループＬ３の変数ｊの初期値と終値と増分値は、それぞれ「ｉ」、「ｉ＋ｙ」、「１」である。ここで変数ｙは、ステップＳｄ１３において特定した調理時間である。このループＬ３において調理スケジュール構成部２２３は、初期値ｉ（すなわち、ループＬ２の変数ｉの初期値ｉ_ｓｔａｒｔ）に対応する時間ｔを始点として、ステップＳｄ１３において特定した調理時間の間、並行特性と使用調理器具の数の観点から処理対象の調理手順が他の調理手順と並行可能であるか否かについて判定する。
【００８１】
ステップＳｄ１６において調理スケジュール構成部２２３は、時間ｔ［ｊ］と処理テーブルＴ２において対応づけられている調理手順ＩＤについて、調理手順_基本ＤＢ２３０８を検索して、並行特性を特定する。次に、調理スケジュール構成部２２３は、ステップＳｄ１３において特定した並行特性が「並行不可」に該当し、かつステップＳｄ１６において特定した並行特性の中に「並行不可」に該当するものが存在するか否かについて判定する（ステップＳｄ１７）。
【００８２】
この判定の結果が肯定的である場合には（ステップＳｄ１７：ＹＥＳ）、すなわち、処理対象の調理手順ＩＤに示される調理手順が時間ｔ［ｊ］において他の調理手順と並行不可能である場合には、調理スケジュール構成部２２３は、ステップＳｄ２５に移行する。一方、この判定の結果が否定的である場合には（ステップＳｄ１７：ＮＯ）、すなわち、処理対象の調理手順ＩＤに示される調理手順が時間ｔ［ｊ］において他の調理手順と並行可能である場合には、調理スケジュール構成部２２３は、ステップＳｄ１８に進む。
【００８３】
ステップＳｄ１８において調理スケジュール構成部２２３は、時間ｔ［ｊ］と処理テーブルＴ２において対応づけられているすべての調理手順ＩＤについて、調理手順_調理器具ＤＢ２３０９を検索して、調理器具ＩＤを取得する。
次に、調理スケジュール構成部２２３は、ステップＳｄ１４において取得した調理器具ＩＤの数と、ステップＳｄ１８において取得した調理器具ＩＤの数との合計値を算出する（ステップＳｄ１９）。ここで調理スケジュール構成部２２３は、各調理器具ＩＤの種別ごとに、調理器具ＩＤの合計値を算出する。
【００８４】
次に、調理スケジュール構成部２２３は、ユーザＩＤを検索キーとして所有調理器具ＤＢ２３１２を検索して、ステップＳｄ１４及びＳｄ１８において取得した調理器具ＩＤに対応づけられる所有数を特定する（ステップＳｄ２０）。そして、調理スケジュール構成部２２３は、ステップＳｄ１９において算出した合計値が、ステップＳｄ２０において特定した所有数を超えるか否かについて判定する（ステップＳｄ２１）。
【００８５】
この判定の結果、合計値が所有数を超える場合には（ステップＳｄ２１：ＹＥＳ）、すなわち、処理対象の調理手順ＩＤに示される調理手順が時間ｔ［ｊ］において他の調理手順と並行不可能である場合には、調理スケジュール構成部２２３はステップＳｄ２５に移行する。一方、この判定の結果、合計値が所有数を超えない場合には（ステップＳｄ２１：ＮＯ）、すなわち、処理対象の調理手順ＩＤに示される調理手順が時間ｔ［ｊ］において他の調理手順と並行可能である場合には、調理スケジュール構成部２２３はステップＳｄ２２に進む。
なお、この判定における、合計値が所有値を超えない場合は、本発明に係る「第３の条件」を満たす場合の一例である。
【００８６】
調理スケジュール構成部２２３は、ループＬ３を終了すると（ステップＳｄ２２）、処理対象の調理手順ＩＤを処理テーブルＴ２に記述する（ステップＳｄ２３）。その際、調理スケジュール構成部２２３は、処理テーブルＴ２において、時間ｔ［ｉ］から時間ｔ［ｉ＋ｙ］に対応づけて、処理対象の調理手順ＩＤを記述する。例えば、ループＬ２の変数ｉが「２」であり、処理対象の調理手順ＩＤが「ｃｐ００２０１０５」であり、ステップＳｄ１２において特定した調理時間が「２（分）」である場合には、時間ｔ［２］から時間ｔ［３］に対応づけて調理手順ＩＤ「ｃｐ００２０１０５」が記述される。
【００８７】
次に、調理スケジュール構成部２２３は、処理テーブルＴ１において処理対象の調理手順ＩＤのステータスの値を「１」に設定する（ステップＳｄ２４）。そして、調理スケジュール構成部２２３は、ステップＳｄ２６に進む。
【００８８】
ステップＳｄ２６において調理スケジュール構成部２２３は、処理テーブルＴ１においてそのステータスが「０」である調理手順ＩＤの数が「０」と「１以上」のいずれに該当するかを判定する。この判定の結果、調理手順ＩＤの数が「１以上」である場合には（ステップＳｄ２６：「１以上」）、すなわち、未処理の調理手順ＩＤが存在する場合には、調理スケジュール構成部２２３は、ステップＳｄ８に戻る。一方、判定の結果、調理手順ＩＤの数が「０」である場合には（ステップＳｄ２６：「０」）、すなわち、すべての調理手順ＩＤが処理済みの場合には、調理スケジュール構成部２２３は、処理Ａ２を終了する。
【００８９】
以下、簡単な具体例を挙げて処理Ａ２について説明する。本説明では主に、図１７に示される処理テーブルＴ１と、図２１に示される、処理Ａ２の結果構成される調理スケジュールの一例を参照する。
【００９０】
処理テーブルＴ１に格納される調理手順ＩＤのうち、仮に調理手順ＩＤ「ｃｐ００５０１０１」〜「ｃｐ００５０１０３」のみが完成属性「出来立て」と対応づけられているとすると、これらの調理手順ＩＤのうち、最終調理手順ＩＤ「ｃｐ００５０１０３」が、処理Ａ２のステップＳｄ２、Ｓｄ３及びＳｄ５により、図２１に示されるように、時間ｔ［０］〜ｔ［１］に対応づけられる。
【００９１】
次に、後続手順ＩＤが対応づけられていない調理手順ＩＤ「ｃｐ００６０１０３」が、処理Ａ２のステップＳｄ８の結果、ループＬ２の処理対象とされた場合、この調理手順ＩＤには後続手順ＩＤが対応づけられていないため、時間ｔ［０］を始点として、この調理手順ＩＤが割り当てられる時間ｔが検索される。
【００９２】
この調理手順ＩＤの並行特性は、処理テーブルＴ１によれば「並行不可」であり、すでに時間ｔ［０］〜ｔ［１］に対応づけられている調理手順ＩＤ「ｃｐ００５０１０３」の並行特性も「並行不可」であることから、処理Ａ２のループＬ２の処理の結果、調理手順ＩＤ「ｃｐ００６０１０３」は、図２１に示されるように、時間ｔ［２］〜ｔ［４］に対応づけられることになる。
【００９３】
次に、後続手順ＩＤがすでに処理済みである調理手順ＩＤ「ｃｐ００５０１０２」が、処理Ａ２のステップＳｄ８の結果、ループＬ２の処理対象とされた場合、この調理手順ＩＤには後続手順ＩＤとして「ｃｐ００５０１０３」が対応づけられているため、時間ｔ［２（＝１＋１）］を始点として、この調理手順ＩＤが割り当てられる時間ｔが検索される。
【００９４】
この調理手順ＩＤの並行特性は、処理テーブルＴ１によれば「並行可」であり、また図１０に示される調理手順_調理器具ＤＢ２３０９によれば、調理手順ＩＤ「ｃｐ００６０１０３」の調理では、調理手順ＩＤ「ｃｐ００５０１０２」の調理で使用される調理器具「オーブン」が使用されないため、処理Ａ２のループＬ２の処理の結果、調理手順ＩＤ「ｃｐ００５０１０２」は、図２１に示されるように、時間ｔ［２］〜ｔ［６］に対応づけられることになる。
【００９５】
次に、後続手順ＩＤがすでに処理済みである調理手順ＩＤ「ｃｐ００６０１０２」が、処理Ａ２のステップＳｄ８の結果、ループＬ２の処理対象とされた場合、この調理手順ＩＤには後続手順ＩＤとして「ｃｐ００６０１０３」が対応づけられているため、時間ｔ［５（＝４＋１）］を始点として、この調理手順ＩＤが割り当てられる時間ｔが検索される。
【００９６】
この調理手順ＩＤの並行特性は、処理テーブルＴ１によれば「並行可」であるが、図１０に示される調理手順_調理器具ＤＢ２３０９によれば、この調理手順ＩＤの調理で使用される「オーブン」は、すでに時間ｔ［２］〜ｔ［６］に割り当てられている調理手順ＩＤ「ｃｐ００５０１０２」の調理でも使用されている。そして、図１３に示される所有調理器具ＤＢ２３１２によれば、ユーザは１台しかオーブンを所有していない。よって、処理Ａ２のループＬ２の処理の結果、調理手順ＩＤ「ｃｐ００６０１０２」は、図２１に示されるように、時間ｔ［５］〜ｔ［６］には対応づけられずに、時間ｔ［７］〜ｔ［１０］に対応づけられることになる。
【００９７】
次に、後続手順ＩＤがすでに処理済みである調理手順ＩＤ「ｃｐ００５０１０１」が、処理Ａ２のステップＳｄ８の結果、ループＬ２の処理対象とされた場合、この調理手順ＩＤには後続手順ＩＤとして「ｃｐ００５０１０２」が対応づけられているため、時間ｔ［７（＝６＋１）］を始点として、この調理手順ＩＤが割り当てられる時間ｔが検索される。
【００９８】
この調理手順ＩＤの並行特性は、処理テーブルＴ１によれば「並行不可」であるが、すでに時間ｔ［７］〜ｔ［１０］に割り当てられている調理手順ＩＤ「ｃｐ００６０１０２」の並行特性は「並行可」である。また、図１０に示される調理手順_調理器具ＤＢ２３０９によれば、この調理手順ＩＤ「ｃｐ００５０１０１」の調理では、調理手順ＩＤ「ｃｐ００６０１０２」の調理で使用される調理器具「オーブン」は使用されないため、処理Ａ２のループＬ２の処理の結果、調理手順ＩＤ「ｃｐ００５０１０１」は、図２１に示されるように、時間ｔ［７］〜ｔ［８］に対応づけられることになる。
【００９９】
次に、後続手順ＩＤがすでに処理済みである調理手順ＩＤ「ｃｐ００６０１０１」が、処理Ａ２のステップＳｄ８の結果、ループＬ２の処理対象とされた場合、この調理手順ＩＤには後続手順ＩＤとして「ｃｐ００６０１０２」が対応づけられているため、時間ｔ［１１（＝１０＋１）］を始点として、この調理手順ＩＤが割り当てられる時間ｔが検索される。
時間ｔ［１１］には、まだいずれの調理手順ＩＤも対応づけられていないため、調理手順ＩＤ「ｃｐ００６０１０１」は、図２１に示されるように、時間ｔ［１１］〜ｔ［１３］に対応づけられることになる。
【０１００】
以上説明した処理Ａ２によれば、複数の調理手順を並行させることが可能となるため、調理時間のより短い調理スケジュールが構成される。また、複数の調理手順を並行させるか否かを判断する際には、それら調理手順の特性（具体的には、並行特性）と、それら調理手順において使用される調理器具の数とが考慮される。また、調理スケジュールが構成される際に、料理の完成属性が考慮される。
【０１０１】
ここで、図１５に示される処理Ａの説明に戻る。
調理スケジュール構成部２２３が処理Ａ２を終了すると、ＡＰサーバ２２の時間判定部２２４は、処理Ａ２によって構成された調理スケジュールに従って調理が行われた場合の合計調理時間が、ユーザによって指定された料理の完成時間以下であるか否かについて判定する（ステップＳｂ５）。ここで、合計調理時間とは、処理テーブルＴ２において調理手順ＩＤが対応づけられている時間ｔの値のうち最大の値のことである。
【０１０２】
この判定の結果、合計調理時間が完成時間以下である場合には（ステップＳｂ５：ＹＥＳ）、ＡＰサーバ２２は、処理Ａを終了する。一方、判定の結果、合計調理時間が完成時間を超える場合には（ステップＳｂ５：ＮＯ）、ＡＰサーバ２２のレシピ特定部２２１は、ステップＳｂ６に進む。
【０１０３】
ステップＳｂ６においてレシピ特定部２２１は、処理Ａ２のステップＳｄ２１の判定結果が肯定的となってしまったために、その調理手順が他の調理手順と並行不可能となってしまったレシピのＩＤを特定する。
次に、レシピ特定部２２１は、ステップＳｂ６において特定したレシピＩＤに代わる別のレシピＩＤを特定する（ステップＳｂ７）。その際、レシピ特定部２２１は、ステップＳｂ６において特定したレシピＩＤとレシピ_基本ＤＢ２３０２において対応づけられている料理ＩＤを検索キーとして当該ＤＢを検索し、別のレシピＩＤを特定する。また、その際、レシピ特定部２２１は、処理Ａ１のステップＳｃ３と同様に、ユーザの熟練度と、ユーザにより指定された料理の完成時間を考慮する。また、レシピ特定部２２１は、処理Ａ１のステップＳｃ４と同様に、ユーザが所有する調理器具のＩＤを考慮する。
【０１０４】
次に、レシピ特定部２２１は、ステップＳｂ７において特定したレシピＩＤとレシピ_基本ＤＢ２３０２において対応づけられている調理手順ＩＤを、処理テーブルＴ１において、ステップＳｂ６において特定したレシピＩＤと対応づけられる調理手順ＩＤに上書きする（ステップＳｂ８）。
その後、ＡＰサーバ２２はステップＳｂ４に戻り、ＡＰサーバ２２の調理スケジュール構成部２２３は、ステップＳｂ８の処理により更新された処理テーブルＴ１に基づいて処理Ａ２を実行する。
次に、処理Ａ３について説明する。
【０１０５】
図２２及び図２３は、処理Ａ３の一例を示すフローチャートである。この処理Ａ３において調理スケジュール構成部２２３は、処理Ａ２と同様に、処理Ａ１において特定した各レシピに従って複数の料理を並行して調理するための調理スケジュールを構成する。その際、調理スケジュール構成部２２３は、調理人にとって調理しやすくなるように当該調理スケジュールを構成する。処理Ａ３の工程はその多くが処理Ａ２と共通しているため、以下の説明では処理Ａ３に特有の工程についてのみ説明する。
【０１０６】
処理Ａ３において調理スケジュール構成部２２３は、ステップＳｄ１とステップＳｄ２の間において処理Ａ３ａを実行する（ステップＳｅ１）。
図２４及び図２５は、処理Ａ３ａの一例を示すフローチャートである。この処理Ａ３ａにおいて調理スケジュール構成部２２３は、処理Ａ１において特定されたレシピを構成する調理手順のうち、その調理種別が共通する調理手順をまとめる処理を行う。
【０１０７】
ステップＳｆ１において調理スケジュール構成部２２３は、この処理Ａ３ａで使用する変数ｉの値として「０」を設定する。
次に、調理スケジュール構成部２２３は、ループＬ４を開始する（ステップＳｆ２）。このループＬ４において調理スケジュール構成部２２３は、処理テーブルＴ１に格納されている各調理手順ＩＤについて、その調理手順が他の調理手順とまとめることができるものであるか否かについてその昇順で判断する。
【０１０８】
ステップＳｆ３において調理スケジュール構成部２２３は、処理テーブルＴ１に格納されている一の調理手順ＩＤについて、レシピ_基本ＤＢ２３０２を検索して、調理種別を特定する。この一の調理手順ＩＤを本処理Ａ３ａにおいて「処理対象の調理手順ＩＤ」と呼ぶ。
【０１０９】
次に、調理スケジュール構成部２２３は、ステップＳｆ３において特定した調理種別が、「カット」、「蒸す」及び「焼くＡ」のいずれかに該当するか否かについて判定する（ステップＳｆ４）。この判定の結果、調理種別が「カット」、「蒸す」及び「焼くＡ」のいずれにも該当しない場合には（ステップＳｆ４：ＮＯ）、調理スケジュール構成部２２３は、処理対象の調理手順ＩＤに示される調理手順は他の調理手順とまとめることができないと判断し、ステップＳｆ１１に移行する。一方、判定の結果、調理種別が「カット」、「蒸す」及び「焼くＡ」のいずれかに該当する場合には（ステップＳｆ４：ＹＥＳ）、調理スケジュール構成部２２３は、処理対象の調理手順ＩＤに示される調理手順は他の調理手順とまとめることができると判断し、ステップＳｆ５に進む。
【０１１０】
ステップＳｆ５において調理スケジュール構成部２２３は、処理対象の調理手順ＩＤが、すでに処理テーブルＴ３に格納されている調理手順ＩＤの後続手順ＩＤに該当するか否かについて判定する。なお、ここで参照される処理テーブルＴ３は、ステップＳｆ３において特定された調理種別に対応するものとなる。また、処理テーブルＴ３については後述する。
【０１１１】
この判定の結果が肯定的である場合には（ステップＳｆ５：ＹＥＳ）、調理スケジュール構成部２２３は、処理対象の調理手順ＩＤに示される調理手順は他の調理手順とまとめることができないと判断し、ステップＳｆ１１に移行する。一方、この判定の結果が否定的である場合には（ステップＳｆ５：ＮＯ）、調理スケジュール構成部２２３は、処理対象の調理手順ＩＤに示される調理手順は他の調理手順とまとめることができると判断し、ステップＳｆ６に進む。
【０１１２】
ステップＳｆ６において調理スケジュール構成部２２３は、処理対象の調理手順ＩＤについて、調理手順_基本ＤＢ２３０８を検索して、後続手順ＩＤと調理時間とを特定する。
次に、調理スケジュール構成部２２３は、処理対象の調理手順ＩＤを処理テーブルＴ３に記述する（ステップＳｆ７）。
【０１１３】
図２６は、処理テーブルＴ３の一例を示す図である。図２６（ａ）は、調理種別「カット」用の処理テーブルＴ３ａを示し、図２６（ｂ）は、調理種別「蒸す」用の処理テーブルＴ３ｂを示し、図２６（ｃ）は、調理種別「焼くＡ」用の処理テーブルＴ３ｃを示す。図示の通り、処理テーブルＴ３は、調理種別ごとに作成される。
各処理テーブルＴ３を構成するレコードは、それぞれ時間ｔのフィールドと調理手順ＩＤのフィールドとからなる。
【０１１４】
調理スケジュール構成部２２３は、これら処理テーブルＴ３ａ〜Ｔ３ｃのうち、ステップＳｆ３において特定した調理種別に対応する処理テーブルＴ３において、時間ｔ［ｉ］から時間ｔ［ｘ］に対応づけて、処理対象の調理手順ＩＤを記述する。ここで、変数ｘは、本処理３Ａａにおいて、ステップＳｆ６において特定された調理時間を示す。例えば、変数ｉが「０」であり、ステップＳｆ３において特定した調理種別が「カット」であり、処理対象の調理手順ＩＤが「ｃｐ００５０１０１」であり、ステップＳｆ６において特定された調理時間が「２（分）」である場合には、処理テーブルＴ３ａにおいて、時間ｔ［０］から時間ｔ［１］に対応づけて、調理手順ＩＤ「ｃｐ００５０１０１」が記述される。
次に、調理スケジュール構成部２２３は、処理テーブルＴ１において、処理対象の調理手順ＩＤのステータスの値を「１」に設定する（ステップＳｆ８）。
【０１１５】
次に、調理スケジュール構成部２２３は、処理テーブルＴ１に、調理手順ＩＤ「ＩＤ_ｎ」のレコードを追加する（ステップＳｆ９）。ここで変数ｎは、処理Ａ３において、調理種別「カット」，「蒸す」又は「焼くＡ」を示す。具体的には、ステップＳｆ３において特定した調理種別がｎとして設定される。例えば、ステップＳｆ３において調理種別「カット」が特定された場合には、「ＩＤ_カット」という調理手順ＩＤのレコードが追加される。
調理スケジュール構成部２２３は、調理手順ＩＤ「ＩＤ_ｎ」のレコードの後続手順ＩＤ、調理時間として、処理対象の調理手順ＩＤと調理手順_基本ＤＢ２３０８において対応づけられている後続手順ＩＤ、調理時間を格納する。
【０１１６】
なお、このステップＳｆ９の処理を実行するにあたり、ステップＳｆ３において特定した調理種別に対応する調理手順ＩＤ「ＩＤ_ｎ」がすでに処理テーブルＴ１に存在する場合には、調理スケジュール構成部２２３は、新たに調理手順ＩＤを作成せずに、既存の調理手順ＩＤ「ＩＤ_ｎ」のレコードの後続手順ＩＤ、調理時間に対して、処理対象の調理手順ＩＤと調理手順_基本ＤＢ２３０８において対応づけられている後続手順ＩＤ、調理時間を加える処理を行う。
次に、調理スケジュール構成部２２３は、変数ｉに「１＋ｘ」を加算する（ステップＳｆ１０）。
【０１１７】
調理スケジュール構成部２２３は、処理テーブルＴ１に格納されているすべての調理手順ＩＤについて、その調理手順が他の調理手順とまとめることができるか否かについての判断を終了すると（ステップＳｆ１１）、ステップＳｆ１２に進む。
ステップＳｆ１２において調理スケジュール構成部２２３は、処理テーブルＴ３に調理手順ＩＤが格納されているか否かについて判定する。なお、このステップＳｆ１２からステップＳｆ１７までの処理は、調理種別ごとに作成される各処理テーブルＴ３ごとに行われる。
【０１１８】
この判定の結果、処理テーブルＴ３に調理手順ＩＤが格納されていない場合には（ステップＳｆ１２：ＮＯ）、すなわち、まとめるべき調理手順が存在しない場合には、調理スケジュール構成部２２３は、処理Ａ３ａを終了する。一方、判定の結果、処理テーブルＴ３に調理手順ＩＤが格納されている場合には（ステップＳｆ１２：ＹＥＳ）、すなわち、まとめるべき調理手順が存在する場合には、調理スケジュール構成部２２３は、処理テーブルＴ１において調理手順「ＩＤ_ｎ」のステータスの値を「０」に設定する（ステップＳｆ１３）。
【０１１９】
次に、調理スケジュール構成部２２３は、処理テーブルＴ３に格納されているすべての調理手順ＩＤについて、調理手順_基本ＤＢ２３０８を検索して、並行特性を特定する（ステップＳｆ１４）。そして、調理スケジュール構成部２２３は、ステップＳｆ１４において特定した並行特性がすべて「並行可」に該当するか否かについて判定する（ステップＳｆ１５）。
【０１２０】
この判定の結果、並行特性がすべて「並行可」に該当する場合には（ステップＳｆ１５：ＹＥＳ）、調理スケジュール構成部２２３は、処理テーブルＴ１における調理手順「ＩＤ_ｎ」のレコードに対して並行特性「並行可」を記述して（ステップＳｆ１６）、処理Ａ３ａを終了する。一方、この判定の結果、並行特性のすべてが「並行可」に該当しない場合には（ステップＳｆ１６：ＮＯ）、調理スケジュール構成部２２３は、処理テーブルＴ１における調理手順「ＩＤ_ｎ」のレコードに対して並行特性「並行不可」を記述して（ステップＳｆ１７）、処理Ａ３ａを終了する。
【０１２１】
以上説明した処理Ａ３ａによれば、処理テーブルＴ１に格納されている各調理手順ＩＤのうち、その調理手順が他の調理手順とまとめられるものについては、まとめられた調理手順を示す調理手順ＩＤが新たに作成される。
【０１２２】
図２７は、処理Ａ３ａの効果について説明する図である。同図に示される処理テーブルＴ１ａは、処理Ａ３ａが実行される前の処理テーブルＴ１であり、処理テーブルＴ１ｂは、処理Ａ３ｂが実行された後の処理テーブルＴ１である。同図に示される調理手順ＩＤ「ｃｐ００５０１０１」及び「ｃｐ００６０１０１」は、図９に示される調理手順_基本ＤＢ２３０８によれば、いずれも調理種別「カット」と対応づけられている。
【０１２３】
図２７に示されるように、処理Ａ３ａによれば、調理種別を「カット」とする複数の調理手順ＩＤ「ｃｐ００５０１０１」及び「ｃｐ００６０１０１」はまとめられて、新たに調理手順ＩＤ「ＩＤ_カット」が作成される。この場合、調理手順ＩＤ「ｃｐ００５０１０１」及び「ｃｐ００６０１０１」は、調理手順ＩＤ「ＩＤ_カット」が作成された後も処理テーブルＴ１に残されるが、そのステータスは「１」に設定されるため、後続するステップＳｄ２以降の処理において、調理手順ＩＤ「ＩＤ_カット」と重複して、調理の開始時間と終了時間とが割り当てられることはない。
【０１２４】
ここで、図２２に示される処理Ａ３の説明に戻る。
調理スケジュール構成部２２３が処理Ａ３ａを終了すると、調理スケジュール構成部２２３は、次に、処理Ａ１において特定した各レシピに従って調理される料理の完成属性を特定する（ステップＳｄ２）。このステップＳｄ２の処理は、処理Ａ２に関連して説明した通りである。
【０１２５】
その後、調理スケジュール構成部２２３が、ステップＳｄ３以降の処理を経て、処理テーブルＴ１に格納されるすべての調理手順ＩＤに対する処理を終了すると（ステップＳｄ２５：「０」）、調理スケジュール構成部２２３はステップＳｅ２に進む。
ステップＳｅ２において調理スケジュール構成部２２３は、処理テーブルＴ２に格納されている調理手順ＩＤ「ＩＤ_ｎ」を、処理テーブルＴ３を参照して、元の複数の調理手順ＩＤに分解する。
【０１２６】
図２８は、ステップＳｅ２の処理の効果を示す図である。同図に示される処理テーブルＴ２ａは、ステップＳｅ２の処理が実行される前の処理テーブルＴ２であり、処理テーブルＴ２ｂは、ステップＳｅ２の処理が実行された後の処理テーブルＴ２である。同図に示されるように、ステップＳｅ２の処理によれば、例えば、調理手順ＩＤ「ＩＤ_カット」は、元の複数の調理手順ＩＤ「ｃｐ００５０１０１」及び「ｃｐ００６０１０１」に分解される。
【０１２７】
以上説明した処理Ａ３によれば、処理Ａ２により得られる効果に加えて、調理種別が共通する調理手順がまとめられる結果、調理人にとって調理しやすい調理スケジュールを構成することができるという効果が得られる。
【０１２８】
ここで、図１５に示される処理Ａの説明に戻る。
調理スケジュール構成部２２３が処理Ａ３を終了すると（ステップＳｂ９）、ＡＰサーバ２２は、処理Ａを終了する。
次に、処理Ａ４について説明する。
【０１２９】
図２９及び３０は、処理Ａ４の一例を示すフローチャートである。この処理Ａ４において調理スケジュール構成部２２３は、処理Ａ２と同様に、処理Ａ１において特定した各レシピに従って複数の料理を並行して調理するための調理スケジュールを構成する。その際、調理スケジュール構成部２２３は、調理人が余裕をもって料理できるように当該調理スケジュールを構成する。処理Ａ４の工程はその多くが処理Ａ２と共通しているため、以下の説明では処理Ａ４に特有の工程についてのみ説明する。
【０１３０】
処理Ａ４において調理スケジュール構成部２２３は、ステップＳｄ１７とステップＳｄ１８の間において、ステップＳｇ１の処理を実行する。このステップＳｇ１において調理スケジュール構成部２２３は、処理テーブルＴ２においてすでに時間ｔ［ｊ］に２以上の調理手順ＩＤが対応づけられているか否かについて判定する。すなわち、処理テーブルＴ２は、時間ｔ［ｊ］においてすでに２以上の調理手順が並行しているか否かについて判定する。
【０１３１】
この判定の結果、２以上の調理手順ＩＤが対応づけられている場合には（ステップＳｇ１：ＹＥＳ）、調理スケジュール構成部２２３は、処理対象の調理手順ＩＤに示される調理手順は他の調理手順と並行させることはできないと判断し、ステップＳｄ２５に移行する。一方、判定の結果、２以上の調理手順ＩＤが対応づけられていない場合には（ステップＳｇ１：ＮＯ）、調理スケジュール構成部２２３はステップＳｄ１８に移行して、時間ｔ［ｊ］と処理テーブルＴ２において対応づけられている調理手順ＩＤについて、調理手順_調理器具ＤＢ２３０９を検索して調理器具ＩＤを取得する。
【０１３２】
以上説明した処理Ａ４によれば、処理Ａ２により得られる効果に加えて、同時に並行する調理工程の数が２以下に制限されるため、調理人が余裕をもって調理できる調理スケジュールが構成されるという効果が得られる。
なお、本実施形態では、ステップＳｇ１の判定の閾値として「２」が設定されているが、３以上の数でもよい。
【０１３３】
ここで、図１５に示される処理Ａの説明に戻る。
調理スケジュール構成部２２３が処理Ａ４を終了すると（ステップＳｂ１０）、ＡＰサーバ２２は、処理Ａを終了する。
【０１３４】
ここで、図１４に示される調理手順表示システム１の動作例の説明に戻る。
ＡＰサーバ２２が処理Ａを終了すると（ステップＳａ４）、次にＡＰサーバ２２は、処理Ｂを実行する（ステップＳａ５）。
【０１３５】
図３１〜図３５は、処理Ｂの一例を示すフローチャートである。この処理ＢにおいてＡＰサーバ２２の調理説明設定部２２５は、処理Ａ２〜Ａ４のいずれかによって構成された調理スケジュールに基づいて、各時間ｔにおいて表示される調理手順の説明文を設定する。その際、調理説明設定部２２５は、調理種別が共通し、かつ連続する調理手順については、それらの説明文をまとめる。
【０１３６】
ステップＳｈ１において調理説明設定部２２５は、本処理Ｂで使用する変数ｊ［カット］、ｊ［蒸す］及びｊ「焼くＡ」の値を「−１」に設定する。これらの変数は、後述するループＬ５において最初にその調理種別「カット」、「蒸す」又は「焼くＡ」が特定された調理手順ＩＤと処理テーブルＴ２において対応づけられている時間ｔを特定するために使用される。
【０１３７】
次に、調理説明設定部２２５は、処理テーブルＴ２に格納されている各時間ｔの表示ステータスの値を「０」に設定する（ステップＳｈ２）。ここで、表示ステータスの値「０」は、その時間ｔにおいて表示される調理手順の説明文がまだ構成されていないことを示し、値「１」は、その時間ｔにおいて表示される調理手順の説明文がすでに構成されていることを示す。
【０１３８】
次に、調理説明設定部２２５は、ループＬ５に移行する（ステップＳｈ３）。このループＬ５の変数ｉの初期値、終値及び増分値は、それぞれ「ｔｉｍｅ_ｅｎｄ」、「０」、「−１」である。ここで変数ｔｉｍｅ_ｅｎｄは、処理テーブルＴ２において調理手順ＩＤが対応づけられている時間ｔのうちの最大の値である。このループＬ５において調理説明設定部２２５は、処理テーブルＴ２に格納されている各時間ｔについて、時間ｔの降順で、調理手順の説明文をまとめる必要があるか否かについて判定し、まとめる必要がある場合には説明文をまとめる。
【０１３９】
ステップＳｈ４において調理説明設定部２２５は、処理テーブルＴ２において時間ｔ［ｉ］と時間ｔ［ｉ−１］に対応づけられている調理手順ＩＤについて、調理手順_基本ＤＢ２３０８を検索して、調理種別を特定する。
次に、調理説明設定部２２５は、ステップＳｈ４において、時間ｔ［ｉ］に対応づけられている調理手順ＩＤについて特定した調理種別が、「カット」、「蒸す」又は「焼くＡ」、及び「それ以外」のうちいずれに該当するかについて判定する（ステップＳｈ５）。
【０１４０】
この判定の結果、特定した調理種別が「カット」に該当する場合には（ステップＳｈ５：「カット」）、調理説明設定部２２５は、ステップＳｈ６に進む。特定した調理種別が「蒸す」又は「焼くＡ」に該当する場合には（ステップＳｈ５：「蒸す又は焼くＡ」）、調理説明設定部２２５は、ステップＳｈ２２に進む。特定した調理種別が「その他」に該当する場合には（ステップＳｈ５：「それ以外」）、調理説明設定部２２５は、ステップＳｈ３０に進む。
【０１４１】
ステップＳｈ６において調理説明設定部２２５は、変数ｊ［ｎ］の値が「−１」であるか否かについて判定する。ここで変数ｎとは、本処理Ｂにおいて、ステップＳｈ３において時間ｔ［ｉ］について特定された調理種別「カット」、「蒸す」又は「焼くＡ」である。
【０１４２】
この判定の結果、変数ｊ［ｎ］（ステップＳｈ６では、ｊ「カット」）の値が「−１」である場合には（ステップＳｈ６：ＹＥＳ）、すなわち、ループＬ５に移行してからステップＳｈ４において最初に調理種別「カット」が特定された場合には、調理説明設定部２２５は、変数ｊ［カット］の値を、その最初に調理種別「カット」が特定された調理手順ＩＤと処理テーブルＴ２において対応づけられている時間ｔ［ｉ］の値に更新し（ステップＳｈ７）、ステップＳｈ８に進む。一方、この判定の結果、変数ｊ［カット］の値が「−１」でない場合には（ステップＳｈ６：ＮＯ）、すなわち、ループＬ５に移行後すでに以前にステップＳｈ４において調理種別「カット」が特定されていた場合には、調理説明設定部２２５は、ステップＳｈ８に進む。
【０１４３】
ステップＳｈ８において調理説明設定部２２５は、ステップＳｈ４において、時間ｔ［ｉ−１］に対応づけられている調理手順ＩＤについて特定した調理種別に、「カット」が含まれるか否かについて判定する。この判定の結果、特定した調理種別に「カット」が含まれる場合には（ステップＳｈ８：ＹＥＳ）、調理説明設定部２２５は、ステップＳｈ９に進む。一方、この判定の結果、特定した調理種別に「カット」が含まれない場合には（ステップＳｈ８：ＮＯ）、調理説明設定部２２５は、ステップＳｈ１５に進む。
【０１４４】
ステップＳｈ９において調理説明設定部２２５は、処理テーブルＴ２において時間ｔ［ｉ］と対応づけられている調理手順ＩＤについて、調理手順_基本ＤＢ２３０８を検索して、並行手順を特定する。また、調理説明設定部２２５は、同調理手順ＩＤについて、調理手順_食材ＤＢ２３１０を検索して、食材の分量を特定する（ステップＳｈ１０）。
【０１４５】
次に、調理説明設定部２２５は、処理テーブルＴ２において時間ｔ［ｊ［カット］］から時間ｔ［ｉ］に対応づけられている並行手順の中に、ステップＳｈ９において特定した並行手順と同一のものが存在するか否かについて判定する（ステップＳｈ１１）。ここで同一の並行手順とは、並行手順に記述される食材とカット方法とが同一の並行手順をいう。
この判定の結果が肯定的である場合には（ステップＳｈ１１：ＹＥＳ）、調理説明設定部２２５は、ステップＳｈ１２に進む。一方、この判定の結果が否定的である場合には（ステップＳｈ１１：ＮＯ）、調理説明設定部２２５は、ステップＳｈ１３に進む。
【０１４６】
ステップＳｈ１２において調理説明設定部２２５は、ステップＳｈ９において特定した並行手順と同一の並行手順に記述されている食材の分量に、ステップＳｈ１０において特定した食材の分量を加算して、その分量が加算された並行手順を、処理テーブルＴ２において時間ｔ［ｊ［カット］］から時間ｔ［ｉ］に対応づけられている並行手順に上書きする。この処理は、本発明に係る「説明文を統合」する処理の一例である。
そして、調理説明設定部２２５は、ステップＳｈ２９に進む。
【０１４７】
ステップＳｈ１３において調理説明設定部２２５は、ステップＳｈ９において特定した並行手順に、ステップＳｈ１０において特定した食材の分量を設定する。そして、調理説明設定部２２５は、ステップＳｈ１３において食材の分量を設定した並行手順を、処理テーブルＴ２において、時間ｔ［ｊ［カット］］から時間ｔ［ｉ］に対応づけて記述する（ステップＳｈ１４）。
そして、調理説明設定部２２５は、ステップＳｈ２９に進む。
【０１４８】
上記のステップＳｈ８の判定の結果が否定的であった場合には、調理説明設定部２２５は、ステップＳｈ１５において、処理テーブルＴ２において時間ｔ［ｉ］と対応づけられている調理手順ＩＤについて、調理手順_基本ＤＢ２３０８を検索して、標準手順と並行手順とを特定する。また、調理説明設定部２２５は、同調理手順ＩＤについて、調理手順_食材ＤＢ２３１０を検索して、食材の分量を特定する（ステップＳｈ１６）。
【０１４９】
次に、調理説明設定部２２５は、処理テーブルＴ２において時間ｔ［ｊ［カット］］から時間ｔ［ｉ］に対応づけられている並行手順の中に、ステップＳｈ１５において特定した並行手順と同一のものが存在するか否かについて判定する（ステップＳｈ１７）。ここで同一の並行手順とは、並行手順に記述される食材とカット方法とが同一の並行手順をいう。
この判定の結果が肯定的である場合には（ステップＳｈ１７：ＹＥＳ）、調理説明設定部２２５は、ステップＳｈ１８に進む。一方、この判定の結果が否定的である場合には（ステップＳｈ１７：ＮＯ）、調理説明設定部２２５は、ステップＳｈ２０に進む。
【０１５０】
ステップＳｈ１８において調理説明設定部２２５は、ステップＳｈ１５において特定した並行手順と同一の並行手順に記述されている食材の分量に、ステップＳｈ１６において特定した食材の分量を加えて新分量を算出する。
次に、調理説明設定部２２５は、処理テーブルＴ２において、時間ｔ［ｊ［カット］］から時間ｔ［ｉ］に対応づけられている並行手順の中で、ステップＳｈ１５において特定した並行手順と同一の並行手順を削除する（ステップＳｈ１９）。
【０１５１】
次に、調理説明設定部２２５は、ステップＳｈ１５において特定した標準手順に、ステップＳｈ１８において算出した新分量を設定する（ステップＳｈ２０）。そして、調理説明設定部２２５は、処理テーブルＴ２において、時間ｔ［ｊ［カット］］から時間ｔ［ｉ］に対応づけて、ステップＳｈ２０において新分量を設定した標準手順を記述する（ステップＳｈ２１）。そして、調理説明設定部２２５は、ステップＳｈ２９に進む。
【０１５２】
なお、上記のステップＳｈ１７の判定の結果が否定的であった場合には（ステップＳｈ１７：ＮＯ）、調理説明設定部２２５は、ステップＳｈ２０において、ステップＳｈ１５において特定した標準手順に、ステップＳｈ１６において特定した食材の分量を設定する。
【０１５３】
上記のステップＳｈ５の判定において、特定した調理種別が「蒸す」又は「焼くＡ」に該当する場合には（ステップＳｈ５：「蒸す又は焼くＡ」）、調理説明設定部２２５は、変数ｊ［ｎ］（本ステップでは、ｊ［蒸す］又はｊ［焼くＡ］）の値が「−１」であるか否かについて判定する（ステップＳｈ２２）。
【０１５４】
この判定の結果、変数ｊ［ｎ］の値が「−１」である場合には（ステップＳｈ２２：ＹＥＳ）、すなわち、ループＬ５に移行してからステップＳｈ４において最初に調理種別「蒸す」又は「焼くＡ」が特定された場合には、調理説明設定部２２５は、変数ｊ［ｎ］の値を、その最初に調理種別「ｎ」が特定された調理手順ＩＤと処理テーブルＴ２において対応づけられている時間ｔ［ｉ］の値に更新し（ステップＳｈ２３）、ステップＳｈ２４に進む。一方、この判定の結果、変数ｊ［ｎ］の値が「−１」でない場合には（ステップＳｈ２２：ＮＯ）、すなわち、ループＬ５に移行後すでに以前にステップＳｈ４において調理種別「ｎ」が特定されていた場合には、調理説明設定部２２５は、ステップＳｈ２４に進む。
【０１５５】
ステップＳｈ２４において、調理説明設定部２２５は、ステップＳｈ４において時間ｔ［ｉ−１］について特定した調理種別の中に、ステップＳｈ４において時間ｔ［ｉ］について特定した調理種別と同じものが含まれているか否かについて判定する。この判定の結果が肯定的である場合には（ステップＳｈ２４：ＹＥＳ）、調理説明設定部２２５は、ステップＳｈ２５に進む。一方、この判定の結果が否定的である場合には（ステップＳｈ２４：ＮＯ）、調理説明設定部２２５は、ステップＳｈ２７に進む。
【０１５６】
ステップＳｈ２５において調理説明設定部２２５は、処理テーブルＴ２において時間ｔ［ｉ］と対応づけられている調理手順ＩＤについて、調理手順_基本ＤＢ２３０８を検索して、並行手順を特定する。次に、調理説明設定部２２５は、ステップＳｈ２５において特定した並行手順を、処理テーブルＴ２において、時間ｔ［ｊ［ｎ］］から時間ｔ［ｉ］に対応づけて記述する（ステップＳｈ２６）。そして、調理説明設定部２２５は、ステップＳｈ２９に進む。
【０１５７】
ステップＳｈ２７において調理説明設定部２２５は、処理テーブルＴ２において時間ｔ［ｉ］と対応づけられている調理手順ＩＤについて、調理手順_基本ＤＢ２３０８を検索して、標準手順を特定する。次に、調理説明設定部２２５は、処理テーブルＴ２において時間ｔ［ｊ［ｎ］］から時間ｔ［ｉ］に対応づけて、ステップＳｈ２７において特定した標準手順を記述する（ステップＳｈ２８）。そして、調理説明設定部２２５は、ステップＳｈ２９に進む。
【０１５８】
ステップＳｈ２９において調理説明設定部２２５は、処理テーブルＴ２に格納されている時間ｔ［ｉ］の表示ステータスの値を「１」に設定する。
次に、調理説明設定部２２５は、処理テーブルＴ２に格納されているすべての時間ｔについて、調理手順の説明文がまとめることができるか否かについての判定が完了している場合には（ステップＳｈ３０）、ループＬ６に移行する（ステップＳｈ３１）。このループＬ６の変数ｉの初期値、終値及び増分値は、それぞれ「ｔｉｍｅ_ｅｎｄ」、「０」、「−１」である。ここで変数ｔｉｍｅ_ｅｎｄは、処理テーブルＴ２において調理手順ＩＤが対応づけられている時間ｔのうちの最大の値である。このループＬ６において調理説明設定部２２５は、処理テーブルＴ２に格納されている各時間ｔについて、調理手順の説明文の設定を完了する。
【０１５９】
ステップＳｈ３２において調理説明設定部２２５は、処理テーブルＴ２に格納される一の時間ｔについて、その表示ステータスの値が「０」であるか否かについて判定する。この判定の結果、表示ステータスの値が「０」である場合は（ステップＳｈ３２：ＹＥＳ）、調理説明設定部２２５は、ステップＳｈ３３に進む。一方、この判定の結果、表示ステータスの値が「０」でない場合は（ステップＳｈ３２：ＮＯ）、調理説明設定部２２５は、ステップＳｈ３５に進む。
【０１６０】
ステップＳｈ３３において調理説明設定部２２５は、処理テーブルＴ２において時間ｔ［ｉ］と対応づけられている調理手順ＩＤについて、調理手順_基本ＤＢ２３０８を検索して、標準手順を取得する。次に、調理説明設定部２２５は、処理テーブルＴ２において時間ｔ［ｉ］に対応づけて、ステップＳｈ３３において特定した標準手順を記述する（ステップＳｈ３４）。そして、調理説明設定部２２５は、ステップＳｈ３９に進む。
【０１６１】
一方、ステップＳｈ３５において調理説明設定部２２５は、処理テーブルＴ２において時間ｔ［ｉ］と対応づけられている調理手順ＩＤについて、調理種別を特定する。次に、調理説明設定部２２５は、ステップＳｈ３５において特定した調理種別が、「カット」、「蒸す」又は「焼くＡ」に該当するもののみであるか否かについて判定する（ステップＳｈ３６）。
【０１６２】
この判定の結果が肯定的である場合には（ステップＳｈ３６：ＹＥＳ）、調理説明設定部２２５は、ステップＳｈ３９に進む。一方、この判定の結果が否定的である場合には（ステップＳｈ３６：ＮＯ）、調理説明設定部２２５は、処理テーブルＴ２において時間ｔ［ｉ］と対応づけられている調理手順ＩＤのうち、「カット」、「蒸す」及び「焼くＡ」以外の調理種別と対応づけられている調理手順ＩＤについて、調理手順_基本ＤＢ２３０８を検索して、標準手順を取得する（ステップＳｈ３７）。次に、調理説明設定部２２５は、処理テーブルＴ２において時間ｔ［ｉ］と対応づけて、ステップＳｈ３７において特定した標準手順を追記する（ステップＳｈ３８）。そして、調理説明設定部２２５は、ステップＳｈ３９に進む。
【０１６３】
調理説明設定部２２５は、処理テーブルＴ２に格納されているすべての時間ｔについて、調理手順の説明文の設定を完了すると（ステップＳｈ３９）、処理Ｂを終了する。
【０１６４】
図３６は、処理Ｂの効果を説明する図である。同図は特に、処理Ｂのうち、調理手順の説明文をまとめるループＬ５の処理の効果について説明している。図３６（ａ）は、本説明の前提条件を示すテーブルＴ４であり、図３６（ｂ）〜図３６（ｅ）は、ループＬ５の処理の結果、標準手順及び並行手順が記述されてゆく処理テーブルＴ２の変遷を示す図である。
【０１６５】
テーブルＴ４において時間ｔ［３０］と対応づけられている調理手順ＩＤ「ｃｐ００７０１０１」の調理種別は「カット」である（ステップＳｈ５：「カット」）。また、時間ｔ［２９］と対応づけられている調理手順ＩＤ「ｃｐ００８０１０１」の調理種別も「カット」である（ステップＳｈ８：ＹＥＳ）。また、時間ｔ［３１］のレコードはテーブルＴ４には存在しない（ステップＳｈ１１：ＮＯ）。よって、時間ｔ［３０］には、図３６（ｂ）に示されるように、調理手順ＩＤ「ｃｐ００７０１０１」の分量が設定された、当該調理手順ＩＤの並行手順「ｆ００５を１．５個一口大に切り、」が対応づけて記述される（ステップＳｈ１４）。
【０１６６】
次に、テーブルＴ４において時間ｔ［２９］と対応づけられている調理手順ＩＤ「ｃｐ００８０１０１」の調理種別は「カット」である（ステップＳｈ５：「カット」）。また、時間ｔ［２８］と対応づけられている調理手順ＩＤ「ｃｐ００７０１０２」の調理種別も「カット」である（ステップＳｈ８：ＹＥＳ）。また、調理手順ＩＤ「ｃｐ００８０１０１」の並行手順に記述されている食材及びカット方法は、時間ｔ［３０］と対応づけられている並行手順に記述されている食材及びカット方法と共通している（ステップＳｈ１１：ＹＥＳ）。
【０１６７】
この場合、時間ｔ［３０］と対応づけられている並行手順に記述されている分量に、調理手順ＩＤ「ｃｐ００８０１０１」の分量が加算されて新分量が算出される。そして、時間ｔ［２９］には、図３６（ｃ）に示されるように、この新分量が設定された、当該調理手順ＩＤの並行手順「ｆ００５を２．５個一口大に切り、」が対応づけて記述される（ステップＳｈ１２）。同並行手順により、時間ｔ［３０］に対応づけられている並行手順も上書きされる。
【０１６８】
次に、テーブルＴ４において時間ｔ［２８］と対応づけられている調理手順ＩＤ「ｃｐ００７０１０２」の調理種別は「カット」である（ステップＳｈ５：「カット」）。また、時間ｔ［２７］と対応づけられている調理手順ＩＤ「ｃｐ００８０１０２」の調理種別も「カット」である（ステップＳｈ８：ＹＥＳ）。一方、調理手順ＩＤ「ｃｐ００７０１０２」の並行手順に記述されている食材及びカット方法は、時間ｔ［３０］〜ｔ［２９］と対応づけられている並行手順に記述されている食材及びカット方法と共通していない（ステップＳｈ１１：ＮＯ）。
【０１６９】
この場合、時間ｔ［２８］には、図３６（ｄ）に示されるように、時間ｔ［３０］〜ｔ［２９］に対応づけられている並行手順に加えて、調理手順ＩＤ「ｃｐ００７０１０２」の分量が設定された、当該調理手順ＩＤの並行手順「ｆ０１０を１個薄く切り、」が対応づけて記述される（ステップＳｈ１４）。同並行手段は、時間ｔ［３０］〜ｔ［２９］に対応づけて追記される。
【０１７０】
次に、テーブルＴ４において時間ｔ［２７］と対応づけられている調理手順ＩＤ「ｃｐ００８０１０２」の調理種別は「カット」である（ステップＳｈ５：「カット」）。一方、時間ｔ［２６］と対応づけられている調理手順ＩＤ「ｃｐ００８０１０３」の調理種別は「焼く」である（ステップＳｈ８：ＮＯ）。また、調理手順ＩＤ「ｃｐ００８０１０２」の並行手順に記述されている食材及びカット方法は、時間ｔ［３０］〜ｔ［２８］と対応づけられている並行手順「ｆ０１０を１個薄く切り、」に記述されている食材及びカット方法と共通している（ステップＳｈ１７：ＹＥＳ）。
【０１７１】
この場合、並行手順「ｆ０１０を１個薄く切り、」に記述されている分量に、調理手順ＩＤ「ｃｐ００８０１０２」の分量が加算されて新分量が算出される（ステップＳｈ１８）。そして、時間ｔ［２７］には、図３６（ｅ）に示されるように、時間ｔ［３０］〜ｔ［２９］に対応づけられている並行手順（ただし、並行手順「ｆ０１０を１個薄く切り、」は除く。）に加えて、この新分量が設定された、当該調理手順ＩＤの標準手順「ｆ０１０を２個薄く切る。」が対応づけて記述される（ステップＳｈ２１）。同並行手順及び標準手順により、時間ｔ［３０］〜ｔ［２８］に対応づけられている並行手順も上書きされる。
【０１７２】
以上説明した処理Ｂによれば、調理種別が共通する調理手順が連続する場合には、それらの説明がまとめて表示される。また、同時並行する調理手順の説明が同時に表示される。
なお、上記の処理Ｂにおいて調理説明設定部２２５は、ステップＳｈ３９の処理後に、設定された調理手順の説明文に記述されている各食材の分量を、ユーザにより指定された料理の分量（すなわち人数）で乗算してもよい。
【０１７３】
ここで、図１４に示される調理手順表示システム１の動作例の説明に戻る。
調理説明設定部２２５が処理Ｂを終了すると（ステップＳａ５）、ＡＰサーバ２２の画面構成部２２６は、処理Ｂにより生成された処理テーブルＴ２に基づいて、画面データを生成する（ステップＳａ６）。この際、画面構成部２２６は、レシピ_食材ＤＢ２３０４と、調理器具ＤＢ２３０５と、食材ＤＢ２３０６と、画像ＤＢ２３０７とを参照して、画面データを生成する。
【０１７４】
画面構成部２２６により構成された画面データは、ＡＰサーバ２２の出力部２２７によりＷｅｂサーバ２１に出力され、Ｗｅｂサーバ２１は、出力された画面データをユーザ端末３に送信する（ステップＳａ７）。ユーザ端末３は、Ｗｅｂサーバ２１から順次送信されてくる画面データを表示部３２に表示させる（ステップＳａ８）。
【０１７５】
図３７は、ユーザ端末３の表示部３２に表示される画面例を示す図である。同図に示される画面例において、画像Ｉ１及びＩ２は、調理中の料理名を示している。画像Ｉ３は、調理の作業手順を示している。画像Ｉ４は、調理の様子を示す静止画である。同図の例では、野菜Ａをカットする場面の静止画と、野菜Ｂをカットする場面の静止画と、野菜Ｃをカットする場面の静止画が切り替えて表示される。
なお、同画面において、静止画に代えて動画を表示するようにしてもよい。
【０１７６】
図３８は、ユーザ端末３の表示部３２に表示される他の画面例を示す図である。同図に示される画面例のように、同時並行する調理の様子を示す静止画である画像Ｉ５もあわせて表示するようにしてもよい。
２．変形例
上記の実施形態は、下記のように変形してもよい。また、下記の変形例は互いに組み合わせてもよい。
【０１７７】
２−１．変形例１
上記の実施形態において、ＡＰサーバ２２は、ユーザ端末３のユーザの熟練度に応じて、処理Ａ４のステップＳｇ１（図３０参照）の判定の閾値を設定する閾値設定部をさらに備えてもよい。この閾値設定部は、ユーザの熟練度が高くなるにつれて、閾値を大きくするようにしてよい。
【０１７８】
２−２．変形例２
図１に示されるＡＰサーバ２２の機能群を実現するプログラムは、コンピュータ装置が読み取り可能な記録媒体を介して提供されてもよい。ここで、記録媒体とは、例えば、磁気テープや磁気ディスクなどの磁気記録媒体や、光ディスクなどの光記録媒体や、光磁気記録媒体や、半導体メモリ等である。また、このプログラムは、インターネット等のネットワークを介して提供されてもよい。
【符号の説明】
【０１７９】
１…調理手順表示システム、２…サーバシステム、３…ユーザ端末、４…ネットワーク、２１…Ｗｅｂサーバ、２２…ＡＰサーバ、２３…ＤＢサーバ、３１…入力部、３２…表示部、３３…通信部、２１１…通信部、２２１…レシピ特定部、２２２…重視特性特定部、２２３…調理スケジュール構成部、２２４…時間判定部、２２５…調理説明設定部、２２６…画面構成部、２２７…出力部、２３０１…料理ＤＢ、２３０２…レシピ_基本ＤＢ、２３０３…レシピ_調理器具ＤＢ、２３０４…レシピ_食材ＤＢ、２３０５…調理器具ＤＢ、２３０６…食材ＤＢ、２３０７…画像ＤＢ、２３０８…調理手順_基本ＤＢ、２３０９…調理手順_調理器具ＤＢ、２３１０…調理手順_食材ＤＢ、２３１１…ユーザ基本情報ＤＢ、２３１２…所有調理器具ＤＢ
【図１】
2015161994.tif 000003
【図２】
2015161994.tif 000004
【図３】
2015161994.tif 000005
【図４】
2015161994.tif 000006
【図５】
2015161994.tif 000007
【図６】
2015161994.tif 000008
【図７】
2015161994.tif 000009
【図８】
2015161994.tif 000010
【図９】
2015161994.tif 000011
【図１０】
2015161994.tif 000012
【図１１】
2015161994.tif 000013
【図１２】
2015161994.tif 000014
【図１３】
2015161994.tif 000015
【図１４】
2015161994.tif 000016
【図１５】
2015161994.tif 000017
【図１６】
2015161994.tif 000018
【図１７】
2015161994.tif 000019
【図１８】
2015161994.tif 000020
【図１９】
2015161994.tif 000021
【図２０】
2015161994.tif 000022
【図２１】
2015161994.tif 000023
【図２２】
2015161994.tif 000024
【図２３】
2015161994.tif 000025
【図２４】
2015161994.tif 000026
【図２５】
2015161994.tif 000027
【図２６】
2015161994.tif 000028
【図２７】
2015161994.tif 000029
【図２８】
2015161994.tif 000030
【図２９】
2015161994.tif 000031
【図３０】
2015161994.tif 000032
【図３１】
2015161994.tif 000033
【図３２】
2015161994.tif 000034
【図３３】
2015161994.tif 000035
【図３４】
2015161994.tif 000036
【図３５】
2015161994.tif 000037
【図３６】
2015161994.tif 000038
【図３７】
2015161994.tif 000039
【図３８】
2015161994.tif 000040