(57)【要約】【課題】並列性の高いスケジューリングを行うことのできる調理手順生成装置、調理手順生成方法及び調理手順生成プログラムを提供すること。【解決手段】入力されたレシピに基づいて調理手順を生成する調理手順生成装置において、調理手順の１作業単位分の単位レシピであって、前記単位レシピを開始するのに必要な第１の中間成果物と、調理に必要な資源と、調理に必要な時間と、調理によって生成される第２の中間成果物とが記述された開始条件付部分レシピを少なくとも１つ含むレシピが記述されたレシピデータベース（１０５）と、前記第２の中間成果物と前記第１の中間成果物の再活性化に関する知識が記述されたデータを保持する中間成果物データベース（１０９）とを備えた。【選択図】      図１
2007133581.tif 000002
【特許請求の範囲】
【請求項１】
入力されたレシピに基づいて調理手順を生成する調理手順生成装置において、
調理手順の１作業単位分の単位レシピであって、前記単位レシピを開始するのに必要な第１の中間成果物と、調理に必要な資源と、調理に必要な時間と、調理によって生成される第２の中間成果物とが記述された開始条件付部分レシピを少なくとも１つ含むレシピが記述されたレシピデータベースと、
前記第２の中間成果物と前記第１の中間成果物の再活性化に関する知識が記述されたデータを保持する中間成果物データベースとを具備することを特徴とする調理手順生成装置。
【請求項２】
請求項１に記載の調理手順生成装置において、前記中間成果物データベースは、１作業単位で生成される前記第２の中間成果物と、第２の中間成果物を生成するために必要な前記第１の中間成果物、資源及び時間に係るデータを更に保持する。
【請求項３】
調理手順の１作業単位分の単位レシピであって、前記単位レシピを開始するのに必要な第１の中間成果物と、調理によって生成される第２の中間成果物とが少なくとも記述された開始条件付部分レシピを少なくとも１つ含むレシピを入力するレシピ入力部と、
調理に使用可能な資源に関する情報を記述した資源データベースと、
入力された前記レシピと前記資源データベースの記述に基づき調理手順を生成する手順生成部とを備えたことを特徴とする調理手順生成装置。
【請求項４】
請求項３に記載の調理手順生成装置において、前記開始条件付部分レシピは、該レシピを実施するために必要な資源の記述を含むことを特徴とする調理手順生成装置。
【請求項５】
請求項３に記載の調理手順生成装置において、前記開始条件付部分レシピは、該レシピを実施するために必要な時間の記述を含み、前記時間の記述として、所要時間そのものを指定する場合と、資源の属性に基づいて変化するものとを記述できることを特徴とする調理手順生成装置。
【請求項６】
請求項３に記載の調理手順生成装置において、前記開始条件付部分レシピに含まれる手順の粗さは、該開始条件付部分レシピに必要とされる資源集合が変化しない極大であることを特徴とする調理手順生成装置。
【請求項７】
請求項３に記載の調理手順生成装置において、前記第１の中間成果物と前記第１の中間成果物の再活性化に関する知識を記述した中間成果物データベースを更に具備することを特徴とする調理手順生成装置。
【請求項８】
請求項７に記載の調理手順生成装置において、前記第１の中間成果物によるレシピ検索を行う中間成果物検索部を更に具備することを特徴とする調理手順生成装置。
【請求項９】
請求項１又は請求項7に記載の調理手順生成装置において、前記再活性化に関する知識は、生成される前記第２の中間成果物、前記第２の中間成果物を生成するために必要な前記第１の中間成果物、資源及び時間を含み、
前記再活性化に関する知識を参照して、前記第１の中間成果物から前記第１の中間成果物に関する部分レシピを取得する中間成果物検索部を更に具備することを特徴とする調理手順生成装置。
【請求項１０】
調理手順の１作業単位分の単位レシピであって、前記単位レシピを開始するのに必要な第１の中間成果物と、調理によって生成される第２の中間成果物とが少なくとも記述された開始条件付部分レシピを少なくとも１つ含むレシピを入力し、
入力された前記レシピと料理に使用可能な資源に関する情報を記述した資源データベースの記述に基づき調理手順を生成することを特徴とする調理手順生成方法。
【請求項１１】
入力されたレシピに基づいて調理手順を生成する調理手順生成プログラムにおいて、
調理手順の１作業単位分の単位レシピであって、前記単位レシピを開始するのに必要な第１の中間成果物と、調理によって生成される第２の中間成果物とが少なくとも記述された開始条件付部分レシピを少なくとも１つ含むレシピを入力し、
入力された前記レシピと料理に使用可能な資源に関する情報を記述した資源データベースの記述に基づき調理手順を生成することを特徴とする調理手順生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、調理手順のスケジューリング生成作業を支援する調理手順生成装置、調理手順生成方法及び調理手順生成プログラムに関する。
【背景技術】
【０００２】
レシピは、料理の手順を示したものであるが、上から順に書いてあることを実行した場合でも料理が出来上がるような書き方になっていない場合が多い。また、そのような書き方になっている場合でも、複数の料理を同時に並行して調理する際には、どのような手順で調理を行えばよいのか経験の浅い調理者にはわからない。
【０００３】
この問題を解決するために、特許文献１では、基本的な調理手順スケジューリングに関して、料理ごとに調理作業を不可分な作業単位に分割した作業モジュールについて、作業主体が調理器であって作業種類が同じ作業モジュールを並行して調理可能に割付ける。このため、調理器で複数の作業モジュールを並行して実行することができる。しかし、すべての作業単位に対する順序を変更することができないので、スケジューリングの自由度は低い。また、特許文献１では、料理の中間成果物に関する概念がないので、その再利用をすることや、手順毎に使用する資源の変更を行うことができない。
【０００４】
また、特許文献２は、学校給食や社員食堂等のように決められた献立を大量調理するにあたり、大量調理を円滑に行うための調理作業工程表を効率良く作成するためのものであって、下処理工程及び調理工程で使用する使用機器の制約を考慮した各工程の配置換え（マッピング）を行っている。しかし、特許文献２では、特許文献１と同様に調理手順を変更することもなく、更に、料理の中間成果物に関する概念がないので、その再利用をすることや、手順毎に使用する資源の変更を行うことができない。また、並列して実行する複数の料理のスケジューリングの作成を行うこともできない。
【特許文献１】特開２００３−１４１２３４号公報
【特許文献２】特開２００５−２５０８５７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上記のように従来技術では、料理を行う上でレシピに記入される調理手順は、作業の順序に従って行っていくことが前提となっているので、調理時間等の観点からすれば、好適なスケジュールを作成できるとは限らない。
【０００６】
本発明は、並列性の高いスケジューリングを行うことのできる調理手順生成装置、調理手順生成方法及び調理手順生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の局面に係る発明は、入力されたレシピに基づいて調理手順を生成する調理手順生成装置において、調理手順の１作業単位分の単位レシピであって、前記単位レシピを開始するのに必要な第１の中間成果物と、調理に必要な資源と、調理に必要な時間と、調理によって生成される第２の中間成果物とが記述された開始条件付部分レシピを少なくとも１つ含むレシピが記述されたレシピデータベースと、前記第２の中間成果物と前記第１の中間成果物の再活性化に関する知識が記述されたデータを保持する中間成果物データベースとを具備することを特徴とする。
【０００８】
本発明の他の局面に係る発明は、調理手順の１作業単位分の単位レシピであって、前記単位レシピを開始するのに必要な第１の中間成果物と、調理によって生成される第２の中間成果物とが少なくとも記述された開始条件付部分レシピを少なくとも１つ含むレシピを入力するレシピ入力部と、料理に使用可能な資源に関する情報を記述した資源データベースと、入力された前記レシピと前記資源データベースの記述に基づき調理手順を生成する手順生成部とを備えたことを特徴とする。  
なお、本発明は装置の発明に限らず、装置が実行する方法の発明としても成立するものとし、更に、当該方法をコンピュータで実行可能なプログラムの発明としても成立する。
【発明の効果】
【０００９】
本発明によれば、必要最小限の順序しか規定しないため、並列性の高い好適なスケジュールを作成することができる。
【発明を実施するための最良の形態】
【００１０】
図面を参照して本発明の実施の形態を説明する。本発明では、レシピの記述にあたり、１つの調理手順で生成された半完成品（本明細書及び以下の実施形態において、「中間成果物」と称する）の記述を導入し、レシピの調理手順と中間成果物の記述から複数の料理のスケジューリングの作成を支援するようにしている。なお、半完成品は、詳細は後述するように、例えば、砂抜きをしたアサリ、みじん切りしたパセリなどが相当する。なお、全ての調理の結果として生成された完成品（最終成果物）についても、説明の便宜上、本明細書では、中間成果物と称する。
【００１１】
図１は、本発明の一実施形態に係る調理手順生成装置の概略構成を示す図である。本実施形態に係る調理手順生成装置は、レシピ入力部１０１と、手順生成部１０２と、中間成果物登録部１０３と、スケジュール出力部１０４と、資源データベース（ＤＢ）１０５と、中間成果物入力部１０６と、中間成果物検索部１０７と、レシピデータベース（ＤＢ）１０８と、中間成果物データベース（ＤＢ）１０９とを備えている。なお、図１では、調理手順生成装置を１つの装置として記載しているが、各構成要素がネットワークを介して接続されて、１つのシステムとして構成されていても良く、例えば、当該システムをサーバ・クライアントモデルで構築することも可能である。
【００１２】
上記の構成において、レシピ入力部１０１は、レシピを記述する部分であって、ユーザがこのレシピ入力部１０１を介してレシピを入力する。手順生成部１０２は、入力されたレシピに基づいて、資源ＤＢ１０５とレシピＤＢ１０８を参照して調理手順を生成する。中間成果物登録部１０３は、レシピ中の中間成果物（詳細は後述する）を登録する。スケジュール出力部１０４は、手順生成部１０２で生成されたレシピの手順を出力する。資源ＤＢ１０５は、調理に必要となる資源（例えば調理者や調理道具）について記述されたデータを保持している。図２は、資源ＤＢ１０５に蓄積される資源の記述例を示す図である。図２に記述されている資源は、調理者（cook）１人、まな板（board）１個、包丁（knife）１本、シンク（sink）１つ、ボール（bowl）２個、フライパン（pan）２個、パスタ鍋（ppan）１個、コンロ（heat)２個、ざる（sieve）１個となっている。中間成果物入力部１０６は、中間成果物を活用するレシピを検索するために中間成果物或いはその集合を検索要求として入力する。中間成果物検索部１０７は、中間成果物入力部１０６から検索要求として入力された中間成果物を活用できるレシピを検索する。
【００１３】
レシピＤＢ１０８は、入力されたレシピを蓄積する。図４は従来のレシピの記述例を示す図である。これに対して、本実施形態では、例えば、図３に示すようなレシピが記述される。なお、図３と図４に記述されたレシピは、ほぼ一致している。しかし、図３における具体的な記述例として、例えば、部分レシピ３０１の記述例は、  
lr([xprawn,xclam],  
[['ワイン蒸し準備', [cook,pan,heat], [2]],  
['ワイン蒸し', [pan,heat], [5]]], [wine-steamed], []).  
となっている。なお、上記の「部分レシピ」とは、本明細書では、詳細は後述する「開始条件付部分レシピ」と同じ意味を持つ用語として使用するが、全体のレシピに対して、調理手順の１作業単位分のレシピ（例えば、野菜を切る、洗う、いためるなどの個々の作業であって、「単位レシピ」と称する場合もある）をいうものとする。上記の記述例において、各記載の詳細は以下の通りである。  
lrは、１つの単位レシピを示す識別子である。また、lrに続く[xprawn, xclam]は当該単位レシピを開始するために必要な材料（本明細書では「中間成果物」と称する）を示し、[]の場合は、必要な中間成果物が不要であることを示し、この場合には、殻と背ワタをとったえび（xprawn）と砂抜きをしたあさり（xclam）が必要であることを示す。  
２行目と３行目の記述は、調理方法を示しており、それぞれ、'ワイン蒸し準備'と'ワイン蒸し'を行うことが記載されている。この調理方法は、調理に必要な資源と、調理に要する時間と、調理による成果物（中間成果物）が記述される。具体的には、  
'ワイン蒸し準備' では、cook, pan, heatの３つの資源を利用し、調理に２分間要することを示している。次に、'ワイン蒸し'には、pan, heatの２つの資源を利用し、調理に５分かかることを表す。そして、'ワイン蒸し'により、wine-steamedという中間成果物が生成されたことを示す。
【００１４】
中間成果物ＤＢ１０９は、中間成果物の保存や再活性化に関する知識が記述されたデータを保持する。図５は、中間成果物ＤＢ１０９に格納される中間成果物に関する記述例を示す図である。図５に示すように、中間成果物ＤＢ１０９には、生成される中間成果物、その中間成果物を生成するために必要な中間成果物、資源及び時間の順に記述されている。ここで、例えば、中間成果物５０２に記載のwine-steamedという中間成果物を生成するためには、中間成果物５０２に記載のxprawn及びxclamが必要である。すなわち、wine-steamedという中間成果物を生成するための開始条件としてxprawn及びxclamが用意されている必要がある。このため、中間成果物（上記したように最終成果物も含む）を生成するための本発明の一実施形態における部分レシピを、特に「開始条件付部分レシピ」と呼ぶ。この場合において、中間成果物ＤＢ１０９に記述されたwine-steamedの部分レシピでは、wine-steamedの生成に必要な中間成果物はxprawn, xclam、必要とする資源はcook, pan, heat、作業時間は２分であり、さらにpan, heatを５分間使用することが記述されている。なお、作業時間については、このように、資源の属性（例えば、人の熟練度やなべの種類や容量）に依存しない場合は、所要時間をそのまま指定することになるが、資源の属性によって、変化するものとして記述できるようにしておくことが好ましい。また、開始条件付部分レシピの粗さは、該レシピに使用される資源が極大になるように決定される。
【００１５】
図６は、上記の中間成果物ＤＢ１０９に記述された部分レシピをツリー形式で示した図である。図６に示すように、中間成果物として、xprawn、xocto、xclam、xparsley、xchili、xgarlic、hotwater、wine-steamed、sauce、xspa、ebitakoasarispaがあるものとする（ebitakoasarispaは最終成果物である）。ここで、xprawn、xocto、xclam、xparsley、xchili、xgarlic、hotwaterは、他の中間成果物を利用することなく生成することが可能である。すなわち、利用する中間成果物データがヌルデータになる。ところが、中間成果物wine-steamedを得るためには、xprawn、xclamを利用し、更に、中間成果物sauceを得るためには、xocto、xchili、xgarlic、wine-steamedを利用する。従って、例えば、中間成果物sauceを得るためには、xocto、xchili、xgarlic、wine-steamedを用意しておく必要があるので、中間成果物xocto、xchili、xgarlic、wine-steamedの生成手順の後に、中間成果物sauceを生成する必要がある。このように、中間成果物ＤＢ１０９では、ある中間成果物を生成するために必要な中間成果物を定義する（すなわち、条件を定める）必要があるので、該中間成果物を生成するためのレシピを上記のように、「開始条件付部分レシピ」と称している。
【００１６】
図７を参照して、上記のように構成された本発明の一実施形態に係る調理手順生成装置の動作の流れを説明する。図７は、本実施形態に係る調理手順生成装置の動作の流れを示すフローチャートである。  
レシピ入力部１０１を介して、レシピの入力を行う（ステップ７０１）。この場合において、レシピはユーザにより入力されても良いし、装置がネットワークに接続されているのであれば、ネットワークを介して所望のレシピを入力しても良い。レシピが入力されると、レシピ中に記述されている資源が資源ＤＢ１０５から選択される（ステップ７０２）。例えば、部分レシピ３０１の記述に対しては、調理者、シンク、フライパンの記述が資源ＤＢ１０５から選択される。
【００１７】
レシピに記述された資源が選択されたら、レシピＤＢ１０８を参照して、手順生成部１０２によりスケジュールが生成される（ステップ７０３）。手順生成部１０２は、このスケジュール生成処理において、ステップ７０２で選択した資源の重複が起こらないように、かつレシピに記述された手順に従って中間成果物生成のためのスケジュール作成を行う。更に、手順生成部１０２は、中間成果物の待ち合わせが発生しないように、資源、手順のすべての組み合わせを行い最短のスケジュールを生成する。なお、この場合において、組み合わせを行う回数、レシピスケジュール時間、スケジュール生成時間などの制限を設けることもできる。そして、スケジュールの生成が終わると、レシピＤＢ１０８にレシピが登録される。
【００１８】
図８を参照して、ステップ７０３のスケジュールの生成処理の手順を詳細に説明する。図８は、ステップ７０３のスケジュール生成処理のフローチャートである。スケジュールの生成処理では、まず、入力されたレシピおよび資源について、手順ごとに中間成果物を生成するか、資源が空いているかを確認しながら、スケジュールを生成する。なお、新たに中間成果物を生成する必要がない場合には、前に生成したスケジュールを確認し、最短となるスケジュールを生成する。また、中間成果物が必要な場合でも、不要な場合と同様に資源の空きを確認し、最短となるスケジュールを生成する。具体的には、以下の通りである。なお、以下の処理は、全て手順生成部１０２で実行される。
【００１９】
まず、レシピ中の任意の部分レシピを選択する（ステップ８０１）。そして、ステップ８０１で入力された部分レシピに係る手順を解析し、中間成果物が必要かどうかの確認を行う（ステップ８０２）。ここで、中間成果物が必要の場合（ステップ８０２のＹ）はステップ８０３に進む。また、中間成果物が不要の場合（ステップ８０２のＮ）は、ステップ８０４の処理に進み資源の空き状況が確認される（ステップ８０４）。
【００２０】
中間成果物が必要の場合、当該部分レシピで必要とする中間成果物が生成されているか確認を行う（ステップ８０３）。この部分レシピを実行する手順において、必要とする資源が生成されている場合はステップ８０４の処理に進み資源の空き状況が確認される（ステップ８０４）。また、必要とする資源が生成されていない場合はステップ８０７に進む。また、ステップ８０４において、資源に空きがある場合はステップ８０５に進む。なお、ステップ８０４において、資源が他の手順により利用されている場合はステップ８０７に進む。
【００２１】
そして、当該部分レシピに係る手順で中間成果物を生成するのに必要な資源と中間成果物を元に、中間成果物のスケジューリングを行う（ステップ８０５）。最終的に、ステップ８０５で生成された中間成果物のスケジュールを元に、これまでに生成されたスケジュールを参照して最短のスケジュールを生成する（ステップ８０６）。ここで、部分レシピのスケジューリングがステップ８０５およびステップ８０６で成功すれば、当該部分レシピをスケジューリング対象から除去し、そうでなければ部分レシピをスケジューリング対象に残したまま、他の部分レシピを選択する（ステップ８０７）。なお、ステップ８０１で選択できる部分レシピがないとき、すなわち、スケジューリング対象の部分レシピがなくなったときに１つのスケジュール候補が作成されたことになる。
【００２２】
スケジュール候補を複数作成するためには、上記の手順にプログラミング言語Prologなどで採用されているバックトラッキングと呼ばれる技術を適用すればよい。すなわち、１つのスケジュール候補が生成されたとき、それをスケジューリング結果として記録した後、異なるスケジュールの生成が可能な時点まで処理を後戻りし、ステップ８０１での部分レシピの選択の順番やステップ８０５でのスケジューリングを変更して処理をやり直す。そして、異なるスケジュールを生成できなくなった時点で処理を終了し、生成されたスケジュールの中で最短のものを出力すれば良い。ただし、すべてのスケジュール候補を生成しなくても良く、事前に定められた個数のスケジュール候補を生成したとき、あるいは、事前に定められた処理時間を経過したときに処理を終了し、それまでのスケジュールの中で最短のものを出力してもよい。
【００２３】
図３の部分レシピ３０１の例にとって上記の手順を具体的に説明する。  
まず、入力された部分レシピ３０１の手順が選択される（ステップ８０１）。ステップ８０２において、中間成果物[xprawn, xclam]が必要であることが識別され、それらの中間成果物がそれまでに作成されたスケジュールで完成しているかを調査する（ステップ８０３）。作成されていれば、使用する資源、この場合は[cook, pan, heat]に空きがあるかを調査し（ステップ８０４）、資源が競合しないように部分レシピ３０１の手順をスケジューリングする（ステップ８０５）。そして、これまで生成されているスケジュールを参照して、再度これまでの手順についてスケジューリングを行う（ステップ８０６）。  
部分レシピ３０１に対するスケジュールの生成が終了（又は中断）したら、部分レシピ３０１を除いた他のスケジューリング対象の中から次の部分レシピを選択して（ステップ８０７）、ステップ８０１からステップ８０６の処理を繰り返す。
【００２４】
図９は、図３の部分レシピ３０１のスケジュールの生成前までに生成されたスケジュールの例を示す図である。図９では中間成果物を必要としない部分レシピについてスケジュールを行った結果となっている。  
図１０は、図３の部分レシピ３０１のみについて生成されたスケジュールの例を示す図である。この場合において、スケジュールを生成した結果、部分レシピ３０１のワイン蒸し準備では調理者、鍋、コンロを利用して２分間で準備を行い、ワイン蒸しは鍋とコンロで５分間作業を行うスケジュールが記載されている。
【００２５】
図１１は、図９に示すスケジュールのすぐ後に図１０に示すスケジュールを追加して、再度スケジュールを生成した場合の例を示す図である。なお、図９の開始状態（すなわち、時間が０分の時点）では、図１０で必要とする中間成果物[xclam]が生成されていないため、[xclam]が生成された後（すなわち、開始から２５分以降）に図７に示す手順が追加されることになる。
【００２６】
上記のようにして、スケジュールの生成が終わると、図７の中間成果物の登録処理に進む（ステップ７０４）。中間成果物の登録処理では、レシピ中に記述された中間成果物と、中間成果物が生成される過程（部分レシピ）とが、中間成果物ＤＢ１０９に登録される。 そして、最終的に作成されたスケジュールが出力されて（ステップ７０５）、処理が終了する。このときの出力結果の例を図１２に示す。図１２に示す表では、その縦に列として資源が並べられており、横に行として時間が並べられている。そして、図１２に示すように、資源を利用して生成される中間成果物について必要とする時間が出力される。
【００２７】
図４に示すようなこれまでに利用されている記述方法記述方法では、レシピ手順の生成を行う場合、１つの手順が完成すると次の手順に移行し作業を行い、次の手順が終了すると、さらに次の手順に移行し作業を行うといった手順になる。ここで、経験が浅い調理者には順番に作業を行うという認識があるため、当然、の手順４０１を行った後に、手順４０２を行うことになる。しかし、図１２から明らかなように、手順４０２を先に行うことでアサリの砂抜きを行っている間に手順４０１を行うことで時間の短縮を図ることができる。 
本発明の一実施形態においては、上記のような部分レシピを入力して、資源の重複を解消し、中間成果物を生成しながらレシピのスケジューリングを行うようにしたので、ユーザにとって最適なスケジュールを提供することが出来る。
【００２８】
上記の実施形態では、あるレシピを入力した場合における最適なスケジュールを作成するための手順について説明したが、例えば、中間成果物がある場合におけるレシピを検索することも可能である。図１３に本実施形態に係る装置を利用した中間成果物をキーとしたレシピ検索のフローチャートを示す。 
まず、中間成果物入力部１０６から検索要求となる中間成果物が入力される（ステップ１３０１）と、中間成果物検索部１０７により、中間成果物の検索処理が実行される（ステップ１３０２）。 この中間成果物検索部１０７の中間成果物検索処理では、中間成果物ＤＢ１０９を参照して、中間成果物入力部１０６から入力された中間成果物をキーにして、それが生成される過程（部分レシピ）を取得する。そして、取得した部分レシピを元に資源ＤＢ１０５の中で必要とされる資源を選択する。これらの結果を取得後、手順生成部１０２は、スケジュール生成処理を行う（ステップ１３０３）。なお、このスケジュール生成処理はステップ２０３の手順生成処理と同様の処理により実行される。そして、中間成果物ＤＢ１０９より取得した部分レシピと資源ＤＢ１０５より選択した資源とにより生成されたスケジュール（レシピを含む）が出力される（ステップ１３０４）。
【００２９】
具体例として、「えび、たこ、アサリの下ごしらえが終わったもの [xgarlic, xocto, wine-steamed, xchili]」を中間成果物入力部１０６の入力とした例について、ステップ１３０２の中間成果物検索処理について説明する。ステップ１３０２の中間成果物検索処理では、中間成果物ＤＢ１０９から中間成果物[xgarlic, xocto, wine-steamed, xchili]をキーとして検索する。その結果、中間成果物xgarlic, xocto, wine-steamed, xchiliに関して、それらを作成する手順を取得する。そして、取得した手順と、資源ＤＢ１０５より選択した必要な資源により、レシピのスケジュールを生成する。スケジュールの生成は前述した図８の処理と同様であるので、図示及び説明を省略する。
【００３０】
このときの出力結果の例を図１４に示す。図１４は、「えび、たこ、アサリの下ごしらえが終わったものすなわち、[xgarlic, xocto, wine-steamed, xchili]」を入力したときの中間成果物検索の出力例を示す図である。   
上記のように、本発明の実施形態では、中間成果物を基にそれらを生成するためのスケジュールも出力することができる。これは料理の下ごしらえを事前に行っておきたいときに有効である。また、図１３のステップ１３０２において、レシピＤＢ１０８を通してレシピを検索する機能を中間成果物検索部１０７に追加してもよい。その場合は、検索結果としてスケジュールの他に中間成果物が記載されているレシピも提示する。
【００３１】
ここで、図１５のレシピがレシピＤＢ１０８に登録されているものとする。ステップ１３０１でスパゲッティ料理としてxspaを入力すると、ステップ１３０２の中間成果物検索処理でレシピebitakoasarispa, umeshisospaが検索できる。検索した結果についてはレシピと中間成果物生成のためのスケジュールを表示する。また、中間成果物xspaは、中間成果物ＤＢ１０９に記載されているため、必要とする資源情報が、中間成果物ＤＢ１０９に蓄積されている。なお、新たにumeshisospaについてスケジュールの生成を行う場合は、中間成果物ＤＢ１０９中のxspaを利用したスケジュールを生成し、その結果を提示するようにしてもよい。
【００３２】
このように、本実施形態では、中間成果物から、その中間成果物を基にレシピの検索を行い、レシピとそのレシピのスケジュールを出力することができる。その際、検索要求として入力した中間成果物が完成している時点からのスケジュールを得ることができるので、中間成果物を事前に下ごしらえしてあった場合や、事情により料理を中断し、その中断時点から料理を再開する場合に有効である。例えば、図１６に調理を中断した場合の例を示す。図１６は、調理が中断された場合のスケジュールを示す図である。
【００３３】
図１６では、２５〜３０分の間に調理が一時的に中断されている。中間成果物の生成を行った後、資源やレシピの切れ目を中間成果物をより用いることで、調理手順の切れ目を判定することが可能となる。中断後に調理を再開する場合には、生成された中間成果物により検索を行うことで再度スケジュールの生成を行うことが出来る。また、各部分レシピで生成される中間成果物により、異なるレシピを検索し提示することも可能となる。
【００３４】
上記のように、本発明の実施形態によれば、レシピの記述を行う上で、前の手順で生成された中間成果物を用いることにより、並列性の高いスケジューリングを行うことができる。すなわち、レシピの記述にあたり、中間成果物の記述を導入し、レシピの調理手順と中間成果物の記述から複数の料理のスケジューリングの作成を支援するようにしている。従って、本発明によれば、必要最小限の順序しか規定しないため、従来の記述方法より並列性の高い好適なスケジュールを作れる。また、割り込みが入った際、中間成果物をどうしたらよいか、再開時にはどうしたらよいかがわかる。更に、何らかの理由で予定より短い調理時間しか許されなくなったとき、できるだけ無駄を出さずにメニュー変更することが可能となる。
【００３５】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００３６】
【図１】本発明の一実施形態に係る調理手順生成装置の概略構成を示す図。
【図２】資源ＤＢ１０５に蓄積される資源の記述例を示す図。
【図３】本実施形態に係るレシピの記述例を示す図。
【図４】従来のレシピの記述例を示す図。
【図５】中間成果物ＤＢ１０９に格納される中間成果物に関する記述例を示す図。
【図６】中間成果物ＤＢ１０９に記述された部分レシピをツリー形式で示した図。
【図７】本実施形態に係る調理手順生成装置の動作の流れを示すフローチャート。
【図８】ステップ７０３のスケジュール生成処理のフローチャート。
【図９】図３の部分レシピ３０１のスケジュールの生成前までに生成されたスケジュールの例を示す図。
【図１０】図３の部分レシピ３０１のみについて生成されたスケジュールの例を示す図。
【図１１】図９に示すスケジュールのすぐ後に図１０に示すスケジュールを追加して、再度スケジュールを生成した場合の例を示す図。
【図１２】本実施形態により作成されたスケジュールの出力例を示す図。
【図１３】本実施形態に係る装置を利用した中間成果物をキーとしたレシピ検索のフローチャート。
【図１４】図１３によるフローチャートによって作成されたスケジュールの出力例を示す図。
【図１５】中間成果物を入力して該中間成果物に基づく他のレシピを示す図。
【図１６】調理が中断された場合のスケジュールを示す図。
【符号の説明】
【００３７】
１０１…レシピ入力部
１０２…手順生成部
１０３…中間成果物登録部
１０４…スケジュール出力部
１０５…資源データベース
１０６…中間成果物入力部
１０７…中間成果物検索部
１０８…レシピデータベース
１０９…中間成果物データベース
【図１】
2007133581.tif 000003
【図２】
2007133581.tif 000004
【図３】
2007133581.tif 000005
【図４】
2007133581.tif 000006
【図５】
2007133581.tif 000007
【図６】
2007133581.tif 000008
【図７】
2007133581.tif 000009
【図８】
2007133581.tif 000010
【図９】
2007133581.tif 000011
【図１０】
2007133581.tif 000012
【図１１】
2007133581.tif 000013
【図１２】
2007133581.tif 000014
【図１３】
2007133581.tif 000015
【図１４】
2007133581.tif 000016
【図１５】
2007133581.tif 000017
【図１６】
2007133581.tif 000018