Most recipe websites have static recipes that are submitted by users. However, the process of creating really good home cooked meals is dynamic. A good cook will add a little of this, and a little of that, things that aren't necessarily specified in the recipe, and sometimes things that you wouldn't normally think to add. To my knowledge, no website has really captured this process. No matter how good the searching mechanism, or how pretty the site, it all boils down to a static listing of a user submitted recipe.
I propose that we create a website that displays a recipe map. Specifically, it uses user submitted recipes to generate correlation data between the ingredients in the recipes. This will allow a user to select one or more starting ingredients, and then personalize their recipe using the map as they go.
- There could be multiple different recipe maps: one for breakfast foods, one for lunch foods, one for dinner foods, ect. This will allow the user to optimize their experience toward their needs.
- If you allow users to log in, you could visually display ingredients that users generally use, and ingredients that users don't generally use. You could save a dictionary of their own personalized recipes, and suggest slight modifications to those recipes. Given this dictionary, you could generate a recipe book for them, or allow them to share their recipes with family members or other people.
- You could also use this tool to facilitate cooking classes. Instead of making people memorize specific recipes, you let people learn how ingredients meld, and you could give them a much better feel for cooking in general.
- You could suggest where they could get the ingredients that they are using, and show the average price.
- You could show a speculative rating based upon the ratings of the other recipes. This would allow them to optimize their customized recipe to always get the best quality.
- There are many other possible UI's. For example, you could have a wordle like interface where each word is an ingredient recommendation. Or you could have a network like interface where the ingredients are represented by nodes and relations by connections. Furthermore, you could allow people to create their own user interface by giving them powerful scripting tools.
- You could have the option to store their personal data on their computer and always access it from a specific location to facilitate their privacy, and by default, you would store their data on the server.
- Look for commonalities among recipes and display the food item that the ingredients they have selected will most likely make. Or use these commonalities to generate cooking and preparation instructions for completely new recipes.
- When a user hovers their mouse over the ingredient, you could display a Gaussian for the amount of the ingredient to use in the recipe that is generated from the other recipes.
The alpha page above has a network-like UI, although I would really like to change it to a wordle-like UI. It also only has a one level relational database. This means that it only considers the correlation between two ingredients in a recipe at a time. A more advanced recommendation system would include the full power set. However, having tried to generate the full power set, I have since realized that it will take up almost a terabyte of space. Since I don't have those kind of resources, I am stuck with only two at a time.
Thanks to AllRecipes for use of their database and Rateit for their rating plugin. This site is not yet meant to replace any other recipe website. It is only meant as a prototype to show that this proposal is possible. If I were to take this all the way, then I would not use AllRecipe's database to do so.