System and method for adjusting the depth of parallelization for recipe program execution
Recipe instructions may be executed by one or more cooking apparatuses, and annotated with one or more device types suitable to execute the respectively annotated recipe instructions. A parallelization constraint associated with a particular cooking user may influences a degree of parallelization of the food preparation with regard to the parallel use of the registered cooking apparatuses. A program analyzer module determines one or more subsets of the registered cooking apparatuses by identifying execution options for the recipe instructions on said one or more subsets resulting in a recipe execution in compliance with the parallelization constraint. The execution option providing a best match with the received parallelization constraint in accordance with predefined matching rules is selected recipe deployment instructions are provided in relation to the respective one or more cooking apparatuses of the selected execution option in accordance with the corresponding annotations for preparing the food product.
1 . A computer-implemented method for recipe instruction provisioning in relation to registered cooking apparatuses in a cooking environment of a cooking user for preparing a food product, each registered cooking apparatus being registered in a cooking apparatus registry as having a particular device type, the method comprising:
receiving, at a processor and from a recipe database, a recipe program file with recipe instructions readable by the processor for preparing the food product, wherein the recipe instructions are configured to be executed by one or more cooking apparatuses in that the recipe instructions include annotations specifying one or more device types suitable to execute the recipe instructions in that the annotations include metadata specifying the one or more device types that are appropriate to execute a corresponding recipe instruction of the recipe instructions;
receiving a parallelization constraint associated with the cooking user, the parallelization constraint configured to influence a degree of parallelization of the food preparation with regard to parallel use of the registered cooking apparatuses;
determining one or more subsets of the registered cooking apparatuses by identifying execution options for the recipe instructions on said one or more subsets of the registered cooking apparatuses resulting in a recipe execution in compliance with the parallelization constraint, wherein each identified execution option of the execution options corresponds to a recipe instruction sequence that can be executed by one or more of the registered cooking apparatuses identified by respective ones of the annotations, wherein the annotations are used as a filter criterion to eliminate execution options for the recipe program that use device types not included in the registered cooking apparatuses or in the cooking environment;
selecting an execution option of the execution options providing a best match with the received parallelization constraint in accordance with predefined matching rules, wherein the best match is determined by comparing the received parallelization constraint with respective ones of the annotations of recipe instructions of each execution option to identify an equality between the received parallelization constraint and the execution option, or, in case no equality is identified, by selecting respective annotations of recipe instructions of the execution option as being closest to the received parallelization constraint in compliance with the predefined matching rules, wherein the selected execution option enables at least one of (i) reduced overall preparation time or (ii) fewer manual intervention steps compared to sequential execution on a single apparatus; and
transmitting, by a communications link, recipe deployment instructions to the one or more subsets of the registered cooking apparatuses of the selected execution option in accordance with corresponding annotations for preparing the food product, the recipe deployment instructions conforming to the recipe instruction sequence, and thereby causing the registered cooking apparatuses of the selected subsets to execute the partitioned recipe instructions in parallel.
2 . The method of claim 1 , wherein the parallelization constraint specifies any of the following: a user defined preparation time for the food product, a user defined device support-level specifying a degree of automation for semi-automated cooking, and a user defined device flexibility-level specifying potential use of special cooking devices.
3 . The method of claim 1 , wherein the recipe program file includes predefined alternative program listings of the recipe program, with each alternative program listing related to a particular combination of cooking apparatuses with corresponding device type annotations, wherein
determining one or more subsets of the registered cooking apparatuses comprises selecting the alternative program listings with combinations that only include registered cooking apparatuses.
4 . The method of claim 3 , wherein the alternative program listings in the recipe program file are annotated with corresponding parallelization constraint metadata in accordance with parallelization constraint preferences of stored user profiles, the parallelization constraint metadata including at least one of: a representation of a predicted preparation time for the alternative program listing, a representation of an associated support-level, and a representation of an associated flexibility-level.
5 . The method of claim 1 , wherein the recipe program file has a program listing which indicates groupings of recipe instructions, with the recipe instructions of a particular grouping to be executed by one cooking apparatus in accordance with the corresponding annotations, wherein
identifying execution options for the recipe instructions comprises one of: computing preparation times for various execution options executed by various combinations in accordance with the annotations, determining degrees of automation for various execution options executed by various combinations in accordance with the annotations, and determining degrees of device flexibility for various execution options executed by various combinations in accordance with the annotations.
6 . The method of claim 5 , wherein the identified execution options are mapped to parallelization constraint preferences of stored user profiles in accordance with predefined mapping rules.
7 . The method of claim 1 , wherein the parallelization constraint is received via an input from said user, or wherein the parallelization constraint is retrieved from a stored user profile of said user.
8 . A computer program product for recipe instruction provisioning in relation to registered cooking apparatuses in a cooking environment of a cooking user for preparing a food product, each registered cooking apparatus being registered in a cooking apparatus registry as having a particular device type, the computer program product comprising a non-transitory computer readable storage medium storing computer readable instructions that, when loaded into a memory of a computing device and executed by at least one processor of the computing device, cause the computing device to:
receive, at a processor and from a recipe database, a recipe program file with recipe instructions readable by the processor for preparing the food product, wherein the recipe instructions are configured to be executed by one or more cooking apparatuses in that the recipe instructions include annotations specifying one or more device types suitable to execute the recipe instructions in that the annotations include metadata specifying the one or more device types that are appropriate to execute a corresponding recipe instruction of the recipe instructions;
receive a parallelization constraint associated with the cooking user, the parallelization constraint configured to influence a degree of parallelization of the food preparation with regard to parallel use of the registered cooking apparatuses;
determine one or more subsets of the registered cooking apparatuses by identifying execution options for the recipe instructions on said one or more subsets of the registered cooking apparatuses resulting in a recipe execution in compliance with the parallelization constraint, wherein each identified execution option of the execution options corresponds to a recipe instruction sequence that can be executed by one or more of the registered cooking apparatuses identified by respective ones of the annotations, wherein the annotations are used as a filter criterion to eliminate execution options for the recipe program that use device types not included in the registered cooking apparatuses or in the cooking environment;
select an execution option of the execution options providing a best match with the received parallelization constraint in accordance with predefined matching rules, wherein the best match is determined by comparing the received parallelization constraint with respective ones of the annotations of recipe instructions of each execution option to identify an equality between the received parallelization constraint and the execution option, or, in case no equality is identified, by selecting respective annotations of recipe instructions of the execution option as being closest to the received parallelization constraint in compliance with the predefined matching rules, wherein the selected execution option enables at least one of (i) reduced overall preparation time or (ii) fewer manual intervention steps compared to sequential execution on a single apparatus; and
transmitting, by a communications link, recipe deployment instructions to the one or more subsets of the registered cooking apparatuses of the selected execution option in accordance with corresponding annotations for preparing the food product, the recipe deployment instructions conforming to the recipe instruction sequence, and thereby causing the registered cooking apparatuses of the selected subsets to execute the partitioned recipe instructions in parallel.
9 . The computer program product of claim 8 , wherein the parallelization constraint specifies any of the following: a user defined preparation time for the food product, a user defined device support-level specifying a degree of automation for semi-automated cooking, and a user defined device flexibility-level specifying potential use of special cooking devices.
10 . The computer program product of claim 8 , wherein the recipe program file includes predefined alternative program listings of the recipe program, with each alternative program listing related to a particular combination of cooking apparatuses with corresponding device type annotations, wherein the computer readable instructions, when loaded into the memory of the computing device and executed by at least one processor of the computing device, cause the computing device to determine the one or more subsets of the registered cooking apparatuses by selecting the alternative program listings with combinations that only include registered cooking apparatuses.
11 . The computer program product of claim 10 , wherein the alternative program listings in the recipe program file are annotated with corresponding parallelization constraint metadata in accordance with parallelization constraint preferences of stored user profiles, the parallelization constraint metadata including at least one of: a representation of a predicted preparation time for the alternative program listing, a representation of an associated support-level, and a representation of an associated flexibility-level.
12 . The computer program product of claim 8 , wherein the recipe program file has a program listing which indicates groupings of recipe instructions, with the recipe instructions of a particular grouping to be executed by one cooking apparatus in accordance with the corresponding annotations, wherein
execution options for the recipe instructions are identified by one of: computing preparation times for various execution options executed by various combinations in accordance with the annotations, determining degrees of automation for various execution options executed by various combinations in accordance with the annotations, and determining degrees of device flexibility for various execution options executed by various combinations in accordance with the annotations.
13 . The computer program product of claim 12 , wherein the identified execution options are mapped to parallelization constraint preferences of stored user profiles in accordance with predefined mapping rules.
14 . A computer system for recipe instruction provisioning in relation to registered cooking apparatuses in a cooking environment of a cooking user for preparing a food product, each registered cooking apparatus being registered in a cooking apparatus registry as having a particular device type, the system comprising at least one memory storing instructions and at least one processor configured to load and execute the instruction to thereby:
receive, at the processor and from a recipe database, a recipe program file with recipe instructions readable by the processor for preparing the food product, wherein the recipe instructions are configured to be executed by one or more cooking apparatuses in that the recipe instructions include annotations specifying one or more device types suitable to execute the recipe instructions in that the annotations include metadata specifying the one or more device types that are appropriate to execute a corresponding recipe instruction of the recipe instructions;
receive a parallelization constraint associated with the cooking user, the parallelization constraint configured to influence a degree of parallelization of the food preparation with regard to parallel use of the registered cooking apparatuses;
determine one or more subsets of the registered cooking apparatuses by identifying execution options for the recipe instructions on said one or more subsets resulting in a recipe execution in compliance with the parallelization constraint, wherein each identified execution option of the execution options corresponds to a recipe instruction sequence that can be executed by one or more of the registered cooking apparatuses identified by respective ones of the annotations, wherein the annotations are used as a filter criterion to eliminate execution options for the recipe program that use device types not included in the registered cooking apparatuses or in the cooking environment,
select an execution option of the execution options providing a best match with the received parallelization constraint in accordance with predefined matching rules, wherein the best match is determined by comparing the received parallelization constraint with respective ones of the annotations of recipe instructions of each execution option to identify an equality between the received parallelization constraint and the execution option, or, in case no equality is identified, by selecting respective annotations of recipe instructions of the execution option as being closest to the received parallelization constraint in compliance with the predefined matching rules, wherein the selected execution option enables at least one of (i) reduced overall preparation time or (ii) fewer manual intervention steps compared to sequential execution on a single apparatus; and
transmit, by a communications link, recipe deployment instructions to the one or more subsets of the registered cooking apparatuses of the selected execution option in accordance with corresponding annotations for preparing the food product, the recipe deployment instructions conforming to the recipe instruction sequence, and thereby causing the registered cooking apparatuses of the selected subsets to execute the partitioned recipe instructions in parallel.
15 . The system of claim 14 , wherein the parallelization constraint specifies any of the following: a user defined preparation time for the food product, a user defined device support-level specifying a degree of automation for semi-automated cooking, and a user defined device flexibility-level specifying potential use of special cooking devices.
16 . The system of claim 14 , wherein the recipe program file includes predefined alternative program listings of the recipe program, with each alternative program listing related to a particular combination of cooking apparatuses with corresponding device type annotations, wherein the system is further configured to:
determine one or more subsets of the registered cooking apparatuses by selecting the alternative program listings with combinations that only include registered cooking apparatuses.
17 . The system of claim 16 , wherein the alternative program listings in the recipe program file are annotated with corresponding parallelization constraint metadata in accordance with parallelization constraint preferences of stored user profiles, the parallelization constraint metadata including at least one of: a representation of a predicted preparation time for the alternative program listing, a representation of an associated support-level, and a representation of an associated flexibility-level.
18 . The system of claim 14 , wherein the recipe program file has a program listing which indicates groupings of recipe instructions, with the recipe instructions of a particular grouping to be executed by one cooking apparatus in accordance with the corresponding annotations, wherein the system is further configured to:
identify execution options for the recipe instructions by one of the following: computing preparation times for various execution options executed by various combinations in accordance with the annotations, determining degrees of automation for various execution options executed by various combinations in accordance with the annotations, and determining degrees of device flexibility for various execution options executed by various combinations in accordance with the annotations.
19 . The system of claim 18 , wherein the identified execution options are mapped to parallelization constraint preferences of stored user profiles in accordance with predefined mapping rules.
20 . The system of claim 14 , wherein the parallelization constraint is received via an input from said user, or wherein the parallelization constraint is retrieved from a stored user profile of said user.