Supporting dietary restrictions (kosher/halal, vegetarian, vegan, lactose intolerant, gluten intolerant) would help a heck of a lot of people.
Even better would be ingredient substitutes, or optional ingredients (substitute of nothing), like removing the wine from tiramisu.
Agreed; it should be possible to resolve a recipe to a normal form (in the sense of URL normalization, not in the sense of database normalization), and then re-expand that normal form to include variations, so that if someone has ingredient X and has an aversion to ingredient Y then recipe Z (that contains ingredient Y and not ingredient X, in normal form) can still be returned as a search result as long as suitable substitutions can be applied.
Interesting. What’s the data model? Would it be possible to exclude groups of foods?
For eg., I wanted to find all recipes involving ground meat, cream cheese and cream - but without plant foods (I don’t tolerate most of them). I had to manually list the individual plant foods (see example) - but it would be great if you can exclude the entire group en masse.
The data model is quite naive at the moment: each recipe contains multiple ingredients, each ingredient has a quantity and exactly one product, and a product (such as “ground beef”) has a few boolean properties (vegetarian, vegan, dairy, …).
Matching products against a food/nutrition ontology would be a step towards what you’re looking for; there is a notion of hierarchy between products (“soft tofu” is-a “tofu”) but it isn’t particularly well specified, and it doesn’t handle any other types of linkage or non-product concepts (such as “plant”).
Great! The Recipe Explorer is like 20 Questions, except for finding what I’m in the mood for when I don’t know what I’m in the mood for
The swipe UI isn’t great for desktop use though, even though I do like the explorer.
neato! you may want to combine e.g. zucchini and courgette.
Thanks - yep, synonyms and/or translations would be really good to handle. No decisions yet on how best to model that (per-language? simple global replacements? do queries accept any version of the ingredient name?).
Looks pretty neat. Seeing some oddities where it will pick out the word “ground” and ignore the rest of the ingredient. For example, if I tell it I have cheddar cheese and no sausage, it suggests a recipe involving ground sausage. Based on the highlighting, it thinks “Ground” is an ingredient and ignores the fact it’s sausage.
That’s puzzling, ground is explicitly called out as something that isn’t a stopword, but also shouldn’t be a valid product (ingredient) name.
Now filed on GitHub as openculinary/knowledge-graph#64 if you’d like to follow resolution.
As a UI idea the ability to click on a grey ingredient in a suggested recipe and mark it as either “nearby” or “not available”. You can also mark an ingredient as both nearby and not available at the moment.
Good suggestion - “inventory management”. How would dragging-and-dropping ingredients into an inventory and/or shopping list sound?