Featured Dataset: Foodista

Posted on 07/14/2011 by


Foodista Logo It’s virtually impossible to feature a dataset about food without immediately thinking of applications (and puns involving forking, mashups of spuds etc…). Today’s ‘set is Foodista, which takes data from the community wiki as a crawl of food, tools and cooking techniques from the site. From the Developer’s Docs, the purpose of this dataset is clear:

The dataset does not currently contain full recipe instructions as this is already well presented on the Foodista website. The priority has been to capture the core data and relationships, e.g. individual foods, recipes and the ingredients used in specific recipes. This supports using the data to create new discovery and browsing tools, whilst encouraging readers to ultimately access and contribute to the Foodista website itself.

Dataset DiagramExploring the docs a bit further gives us a literal picture of the data model. Using the rather handy dataset diagram (something I’d definitely encourage publishers to think about adding), the relationships between kinds of data are illustrated. We can see how Recipes use Ingredients, for example. The complete docs cover potential uses (bit more on that below), vocabularies used, and information on the data conversion.

If we take a look at Foodista’s SPARQL Endpoint, we can also see that there are a few saved sample queries, covering some applicable searches through the dataset (like finding recipies using specific ingredients). From any SPARQL endpoint, you can create a sample query to give a picture of how you’d see the data being queried. If you want to take it a step further, you can also create a stored SPARQL procedure, which binds the query to a URI and can be accessed via GET requests.

Stuart Harrison has used the stored procedures to create an API looking for recipes via ingredients. Clicking on the “View configuration” button gives you the query stored:

PREFIX dct: <http://purl.org/dc/terms/>
PREFIX f: <http://linkedrecipes.org/schema/>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
SELECT ?uri ?title ?recipePage WHERE {
  ?uri a f:Recipe;
       dct:title ?title;
       foaf:isPrimaryTopicOf ?recipePage;
       f:ingredient ?ingredient.

Moving on to the applications of food data, Stuart took the sample queries and stored procedures a step further, and created a tool for searching for recipes with ingredients found in your kitchen. If you go to the Recipe Finder(which was put together at Kasabi’s inaugural hackday), you can tell the app what’s in your kitchen, and get some recipes for it. I’ve actually used this to figure out what do do with the random veggies from a delivered farm box. It was handier than googling “kohlrabi recipes,” because I got recipes, not the history of the funny-named turnip.

So, this leaves me with the question: “What else can be built?” When Leigh published the dataset, he listed some potential uses:

  • Creating of a recipe finder application, e.g. for mobile devices
  • Creating a recommendation engine based on relationships between foods and recipes
  • Building a personal recipe or menu manager
  • Widgets for embedding recipes into blogs and websites
  • Linking up other food and recipe information from across the web

So what’s coming next?

Posted in: Datasets