This project aims to see if it's possible for OpenFoodFacts to support diets in the most generic way.
Exploring how Open Food Facts can support any dietary requirement
The idea for diets started with the question how vegetarian products are supported by Open Food Facts. It is clear however that these idea's can be extended to any dietary requirement. Other examples of diets are Hallal or Kosher, but also Organic can be seen as a diet.
Should Open Food Facts support diets?
Open Food Facts relies on the information on the labels. Support for diets seems to imply that other information should be folded into Open Food Facts. Which would make diets a derivative project.
However it might be that generic support for diets is so closely tied to Open Food Facts, that it should be integrated. Or, if Open Food Facts wants to support dietary requirement queries, it might have consequences for implementation of Open Food Facts (think taxonomy).</ br> At the moment Open Food Facts already includes some derived applications, such as comparing and finding Palm-tree based products. So supporting diets is not farfetched.
What is a diet exactly? Wikipedia defines it as In nutrition, diet is the sum of food consumed by a person or other organism. This does not help us much. The Wikipedia entry on diets shows more than 50 different diets (I stopped counting). There are many different reasons and approaches, which are not relevant here. As a working definition I will use: A Open Food Fact diet is a subselection of products in the Open Food Fact database. This implies that a person who follows a certain diet is only willing to eat specific products.
It is possible that a person adheres to multiple diets. For example vegetariansim + non-gmo + organic.
Wikipedia has a very large listing of Diets. I am not sure whether they are all relevant for this discussion.
Examples of diets are (I just copied some): Buddhist diet, Edenic diet, Hindu and Jain diets, Islamic dietary laws, I-tal, Kosher diet, Word of Wisdom, Fruitarian diet Lacto vegetarianism, Lacto-ovo vegetarianism, Vegan diet, Flexitarian diet, Kangatarian, Pescetarian diet, Plant-based diet, etc.
We have to analyse these diets to see how they are defined and whether they are suitable for support by Open Food Facts.
Which diets to support?
We need to set some rules to define which diets Open Food Facts could support:
- Open Diet - the definition of a diet and its corresponding rules should be in the public domain. (I guess this will exclude diets created by diet guru's).
- Rule set - the ruleset by which products are excluded should be clear.
- Diet Society - there should be a society that supports a diet. Such a society should certify products. Ideally their listing are available as open data.
- Label - there should be a label corresponding to a diet, such the vegetarian society.
- Package - ideally information whether a product is suited for a particular diet should be on the package of a product. However the advantage of Open Food Facts is that this would no longer necessary.
In order to obtain diet rules one must look at various diets to see how they are defined. After looking at these diets some conclusions can be drawn. Products are to be excluded based on:
- Ingredients created by a specific process - for instance GMO or organic;
- Specific ingredient - for instance the coloring agent Cochinelle, derived from crushing beetles;
- Ingredient groups - for instance all fats that required the killing of an animal;
- Products created by specific processes;
- Product groups created by specific processes.
Already supported Diets
Open Food Facts already support some support for diets.
Potentially impactful diets
Pork detection (to help Halal, Kosher apps)
Although it is much to early to talk about implementation, I gather some thoughts here.
Product level restrictions
The ruleset defined by the European Vegetarian Society implies restriction on the ingredient level: no ingredients that come from dead animals. Could this be defined as a branch in the taxonomy? Thus a branch for ingredients from dead animals, a branch for products from eggs (chickens, geese, etc), a branch for milk-based products (cow, camel, etc) and bees, and ....
The basis of a diet is to exclude products with specific ingredients from a search. This can be done by giving each ingredient a diet-attribute. It might be more simple to create an ingredient taxonomy based on these attributes and thus be able to exclude entire branches of ingredients. Question is how such a taxonomy can support multiple diets.
Product support levels
On the official dutch association site for vegetarians, they use a five-level scheme to indicate whether a product is suitable for vegetarians. such a scheme can be adapted to any diet.
- light green - the product has a lable by an official certification organisation, which certifies that the product is suitable for the diet;
- dark green - the product contains no ingredients that seem unsuitable for the diet;
- yellow - the product contains additives that might not be suitable for the diet;
- orange - the product contains additives not suitable for the diet;
- red - the product clearly contains ingredients not suitable for the diet;
Not all diets will support all levels.
A file is needed with all possible / supported diets.
Each supported diet requires a logo, similar to the one used for Palm fat. Maybe inspiration can be taken from the official corresponding logo's.