Recipe selection essentially is a feature based filtering task. There are many features that can be used to select a recipe. Perhaps the list of features that can be used is endless. This makes this particular task already very different from a traditional slot filling task. Where in such tasks the system can ask for information to fill a slot that is still missing, in a recipe selection task the system at best can suggest a feature to a user. The user then can decide whether to follow-up or not on such a suggestion. In this sense, the task is much more user-driven than the typical system-driven approaches for tasks with a fixed and limited number of slots (e.g., like planning a bus trip, where destination, origin, time, duration, and price are typical slots to fill).
Recipe websites offer many different approaches for searching a recipe. For example, the well-known recipe website All Recipes offers just two ways of selecting a recipe: by means of a visually displayed list of types of recipes and by means of ingredients. The Food Network forces a user to first select a type of recipe based on a list of various but also very restricted number of features and then provides three additional features in its advanced search capability including difficulty (easy, medium, hard), and preparation and cooking time. Both websites compensate for only offering this limited number of features by also offering a generic keyword based search mechanism.
One of the key issues of using a website is that they the type of features they offer for guiding the search process is fixed and cannot be changed by a user. Ideally, a speech-based system should lift this type of restriction as it is hard to make transparent for a user which features such a system supports for searching a recipe. This poses a challenge, however, as the list of features seems endless and a speech-based system will very likely end up sometimes not understanding one of the features a user would like to use for recipe selection. In such cases a repair mechanism needs to be available. To address the challenge itself a list of possible features is needed as well as an approach for filtering recipes based on those features. Some of the features that can be used to select a recipe include:
type of ingredients (to include and/or exclude),
availability of ingredients (this may include stock checking as well as local and seasonal availability of ingredients),
number of ingredients (a proxy for the simplicity of the food to be cooked),
type of course or food (e.g., appetizer, dessert, lunch, cake, etc.; often related to the time of day the food will be consumed),
cooking style (slow cooking, make-ahead, leftover, etc.),
difficulty of the recipe (what levels should be distinguished here? or: what levels could a user possibly choose to use?),
length of a recipe (e.g., number of steps as a proxy for duration or difficulty; one difficulty here is how to count the steps in a recipe as many instructions contain one or more simpler steps that may need to be performed),
preparation and/or cooking time,
a keyword,
budget,
type/availability/number of utensils (e.g., a one pot recipe),
origin of the recipe (e.g., author, region),
fit with event (e.g., season, holidays such as Christmas, etc.),
fit with wine or other drinks,
nutritional value,
user characteristics such as e.g. being a vegetarian, lactose intolerant, etc.
Part of the difficulty for developing a comprehensive recipe selection system, however, is not just the sheer number of features (the list above is pretty complete and exceeds most of the features offered on websites) but perhaps more so the almost endless list of values for each of the features that such a system should be able to recognize. To mention just one less common but yet also very difficult feature to implement is the type of grape used for making a wine that a recipe should match with. It is not clear in this particular case whether there is a database available that would support resolving such a search query… Clearly, in any case, multiple databases that include very different types of information would be needed to come even close to being able to adequately respond to particular feature requests for recipe selection from a user.