Ingredients ontology: Difference between revisions

From Open Food Facts wiki
Line 21: Line 21:


== Relationships ==
== Relationships ==
The following relationship types can be used to described how
The relationships should define how the ingredients are related to each other. An ingredient can be created from an other ingredient by applying some transformation process. This transformation process could remove one of the sub-ingredients. Or the transformation process could change one sub-ingredient into another ingredient.
* '''contains''' - describes if an ingredient contains other ingredients. If possible the fraction/percentage/range can be added;
=== Formal relationships ===
* '''derived from''' - describes if an ingredient is derived from an other ingredient. In addition one could add a description of transformation process used;
* '''contain''' - describes if an ingredient contains another ingredient. The relationship could specify the fraction of the ingredient. For example [https://world.openfoodfacts.org/ingredient/Butter butter] contains 80% [https://world.openfoodfacts.org/ingredient/Butterfat butterfat], pastry butter contains 99.8% [https://world.openfoodfacts.org/ingredient/Butterfat butterfat];
* '''removes''' - this transformation process removes a sub-ingredient. For example [https://world.openfoodfacts.org/ingredient/pastry-butter pastry butter] is created from [https://world.openfoodfacts.org/ingredient/Butter butter] by removing 20% water;
* '''isa''' - describes a detailed specification of an ingredient
* '''isa''' - describes a detailed specification of an ingredient
*'''created in''' - describes the location where the ingredient is created
*'''produced in''' - describes the location where the ingredient is created


== Example ==
== Example ==

Revision as of 19:08, 10 August 2018

Introduction

Why?

Why do we need an ingredients ontology? The ontology describes how ingredients are derived from each other and how ingredients can be combined into new ingredients. An ontology might be useful to:

  • Normalise ingredients - Producers take a lot of freedom in describing the ingredients they use. An ontology helps to standardise the ingredients.
  • Hidden ingredients - an ingredient might contain hidden ingredients, the ontology might reveal these. For example butter contains butterfat.
  • Combined ingredients - an ingredient might appear as a single ingredient. In reality however
  • Processed ingredients - often an ingredient is derived from an other ingredient through some process. We can make explicit what these processes are. Example clarified butter is created from butter by separating the milk solids and water from the butterfat.
  • Ingredient incompleteness - often an ingredient is incomplete defined in an ingredient list. For instance if an ingredient-list specifies milk, it should be defined from which mammal the milk comes from, for instance cow's milk.

Theory

What theory can be used to base an food ingredients taxonomy on? Is there already a food ontology somewhere?

Nodes

Each node in the ontology is an ingredient, as is found in ingredient lists of food products. Producers take a lot of freedom in describing the ingredients they use. This implies that an approach is needed to standardise the ingredients that are found in the ingredients list.

  • Main ingredient name - an ingredient might appear under different names, the synonyms. Of these multiple names one will be chose as main ingredient name. The main ingredient name will be defined in a single language.
  • Translations - an ingredient can be translated in multiple languages. However one must be careful that one ingredient is the really the same in another language. Legislation or actual production processes can be different. It might be possible to alert the user to such cases. Not all ingredients will be translatable in all languages
  • Compound ingredients - sometimes an ingredient list will contain a compound ingredient, i.e. an ingredient (product?) that consists of other ingredients.

Relationships

The relationships should define how the ingredients are related to each other. An ingredient can be created from an other ingredient by applying some transformation process. This transformation process could remove one of the sub-ingredients. Or the transformation process could change one sub-ingredient into another ingredient.

Formal relationships

  • contain - describes if an ingredient contains another ingredient. The relationship could specify the fraction of the ingredient. For example butter contains 80% butterfat, pastry butter contains 99.8% butterfat;
  • removes - this transformation process removes a sub-ingredient. For example pastry butter is created from butter by removing 20% water;
  • isa - describes a detailed specification of an ingredient
  • produced in - describes the location where the ingredient is created

Example

Maybe I can make a drawing of a part of the ontology.

Taxonomy

The ontology should be usable as the translations taxonomy. This taxonomy lists all ingredients, their synonyms and their translations. This taxonomy is already in use.

Example

# CLARIFIED BUTTER - en:milk fat rendered from butter to separate the en:milk solids and water from the en:butterfat

<en:butter
en:clarified butter
bxr:Шара тоһон
ca:mantega clarificada
cs:přepuštěné máslo
de:Butterschmalz

Explanation

  • The # describes a comment line and can be used to add a definition of the ingredient. In this case the definition is taken from wikipedia.
  • The <en:butter line describes the parent ingredient of this ingredient. The parent ingredient forms the basis of the current ingredient. This line is optional.
  • The en:clarified butter line is the main name of the ingredient. Any synonyms appear after the main name, separated by comma's. The prefix en: defines the language of the main ingredient.
  • The next lines provide translations of the main ingredient in other languages. One language per line. Each line starts with a language prefix. Thus de: means german.