Changes

Jump to navigation Jump to search
5,192 bytes added ,  10:38, 22 March 2020
Line 5: Line 5:  
* '''Exclusive search''' - the taxonomy can be used to support search for ingredients in any language and multiple synonyms;
 
* '''Exclusive search''' - the taxonomy can be used to support search for ingredients in any language and multiple synonyms;
 
* '''Translation''' - as the taxonomy contains translations of each ingredient, it can be used as means to translate ingredient lists;
 
* '''Translation''' - as the taxonomy contains translations of each ingredient, it can be used as means to translate ingredient lists;
 +
* '''Ingredients analysis''' - the taxonomy can be extended with properties to indicate if ingredients are suitable for vegans, vegetarians etc. and to estimate how processed the food product is (e.g. NOVA groups)
 
* '''Ingredient language inconsistencies''' - it happens that ingredients in different languages of a single product are different. That can be ingredients that are left out or simplified. The thesaurus might help revealing these.
 
* '''Ingredient language inconsistencies''' - it happens that ingredients in different languages of a single product are different. That can be ingredients that are left out or simplified. The thesaurus might help revealing these.
   Line 30: Line 31:  
<nowiki>#</nowiki>description:en: SOYBEAN (Glycine max), or soya bean is a species of legume native to East Asia.
 
<nowiki>#</nowiki>description:en: SOYBEAN (Glycine max), or soya bean is a species of legume native to East Asia.
 
<nowiki>#</nowiki>comment:en: There is a bit of confusion whether "bean" should be part of the name, so "soy" or "soybeen"?.
 
<nowiki>#</nowiki>comment:en: There is a bit of confusion whether "bean" should be part of the name, so "soy" or "soybeen"?.
   
<br /><en:soya
 
<br /><en:soya
 
<br />en:soya bean, soy beans, soya beans, soybean
 
<br />en:soya bean, soy beans, soya beans, soybean
Line 68: Line 68:     
Note that ''en:soya'' and ''en:sauce'' should exist as an ingredient in the taxonomy. (is there a consistency check done somewhere?)
 
Note that ''en:soya'' and ''en:sauce'' should exist as an ingredient in the taxonomy. (is there a consistency check done somewhere?)
 +
 +
==== • Adjectives ====
 +
The ingredient can be made more specific through adjectives. As these adjectives occur for many ingredients and are essentially the same, they have been seperated into a separate taxonomies. Once they are in that taxonomy, they no longer have to be lised in the ingredients taxonomy. The adjectives can be categorised as:
 +
* '''Processing''' adjectives describe what has been done with an ingredient, i.e. ''ground'', ''cooked'', etc. Either the processing itself is used as adjective or the result, for instance ''ground'' versus ''powdered''. The identified processing adjectives can be found in the  [[Processing Taxonomy]].
 +
* '''Labels''' adjectives that follow the labels taxonomy, such as ''organic'', etc.
    
==== • Origin list specification ====
 
==== • Origin list specification ====
Line 89: Line 94:     
=== Application ===
 
=== Application ===
==== Inclusive search =====
+
==== Inclusive search ====
 
The only application for the taxonomy at the moment is search by url. You coud enter the url [https://world.openfoodfacts.org/ingredient/strawberry/ strawberry] to find all products that contain ''strawberry''. Or [https://world.openfoodfacts.org/ingredient/strawberry/language/finnish strawberry] to find all products that have a Finnish ingredient list with ''strawberry'' (puutarhamansikka). This is an inclusive search, which implies that all ingredients that are more specific are included as well in the results.
 
The only application for the taxonomy at the moment is search by url. You coud enter the url [https://world.openfoodfacts.org/ingredient/strawberry/ strawberry] to find all products that contain ''strawberry''. Or [https://world.openfoodfacts.org/ingredient/strawberry/language/finnish strawberry] to find all products that have a Finnish ingredient list with ''strawberry'' (puutarhamansikka). This is an inclusive search, which implies that all ingredients that are more specific are included as well in the results.
   Line 107: Line 112:  
==== Steps ====
 
==== Steps ====
 
To build the taxonomy from raw data, the follow steps need to be taken
 
To build the taxonomy from raw data, the follow steps need to be taken
* '''Gather''' - the first step is gathering the ingredients from the ingredient lists. This results in a list of  ''raw ingredients''. This process needs to be described @stephane does this;
+
* '''Gather''' - the first step is gathering the ingredients from the ingredient lists. This results in a list of  ''raw ingredients''. It is possible to create a list with ingredients that are not yet in the taxonomy. (This process needs to be described @stephane does this);
* '''Assign''' - the raw ingredients can be mapped unto the existing taxonomy, in order to find ingredients that are new and not yet part of the taxonomy (the ''new raw ingredients'');
+
* '''Assign''' - the raw ingredients in a language should be mapped unto the existing taxonomy. For each raw ingredient one has to check whether it is not already in the taxonomy. If the raw ingredient is not yet in the taxonomy one has to check whether it can be assigned to an existing ingredient, either as synonym, or as new translation. The raw ingredient might be totally new of more specified than an existing ingredient (the ''new raw ingredients'');
* '''Merge''' - each new raw ingredient must be looked at and if possible merged with an ingredient in the existing taxonomy. This also involves merging translations;
+
* '''Merge''' - for each new raw ingredient it must be decided how it will fit in the existing taxonomy. Either it is totally new or it is a child of an existing ingredient.;
 
* '''Key''' - if a new raw ingredient can be mapped to the taxonomy, it will probably be a new synonym of an existing entry. Ideally one should check which of the synonyms occurs the most and set that one as main ingredient name;
 
* '''Key''' - if a new raw ingredient can be mapped to the taxonomy, it will probably be a new synonym of an existing entry. Ideally one should check which of the synonyms occurs the most and set that one as main ingredient name;
 
* '''Create''' - if the ingredient is totally new, a new entry can be created. It should be decided what the super ingredient is (if any). It can then be entered in that part of the taxonomy.
 
* '''Create''' - if the ingredient is totally new, a new entry can be created. It should be decided what the super ingredient is (if any). It can then be entered in that part of the taxonomy.
Line 116: Line 121:  
* '''OFF''' - add a link to the corresponding ingredients page. For instance for [https://world.openfoodfacts.org/ingredient/fr:polydextrose/ fr:polydextrose].
 
* '''OFF''' - add a link to the corresponding ingredients page. For instance for [https://world.openfoodfacts.org/ingredient/fr:polydextrose/ fr:polydextrose].
 
* '''Occurences''' - note how often the ingredient occurs, in how many language and at what date that was determined. This might require an advanced search ([https://world.openfoodfacts.org/cgi/search.pl?action=process&tagtype_0=ingredients&tag_contains_0=contains&tag_0=polydextrose&sort_by=unique_scans_n&page_size=20&axis_x=energy&axis_y=products_n&action=display polydextrose]). This might allow us to track if changes are necessary;
 
* '''Occurences''' - note how often the ingredient occurs, in how many language and at what date that was determined. This might require an advanced search ([https://world.openfoodfacts.org/cgi/search.pl?action=process&tagtype_0=ingredients&tag_contains_0=contains&tag_0=polydextrose&sort_by=unique_scans_n&page_size=20&axis_x=energy&axis_y=products_n&action=display polydextrose]). This might allow us to track if changes are necessary;
 +
 
==== Watch out ====
 
==== Watch out ====
 
It is possible to make mistakes in these steps.
 
It is possible to make mistakes in these steps.
Line 311: Line 317:  
For example the product [https://world.openfoodfacts.org/product/20139315/beurre-gastronomique-doux-milbona Beurre Gastronomique Doux] of the brand ''Milbona'' with barcode ''20139315'' has one ingredient: [https://world.openfoodfacts.org/ingredient/pasteurized-butter Beurre pasteurisé] and belongs to the [https://world.openfoodfacts.org/category/sweet-cream-butters Sweet cream butters] category.
 
For example the product [https://world.openfoodfacts.org/product/20139315/beurre-gastronomique-doux-milbona Beurre Gastronomique Doux] of the brand ''Milbona'' with barcode ''20139315'' has one ingredient: [https://world.openfoodfacts.org/ingredient/pasteurized-butter Beurre pasteurisé] and belongs to the [https://world.openfoodfacts.org/category/sweet-cream-butters Sweet cream butters] category.
   −
== Allergens taxonomy ==
+
== Diet support ==
OFF uses an allergens taxonomy/thesaurus to detect/describe allergens. We need to indicate the relation with this ontology.
+
The ingredients taxonomy can be used by applications (web and mobile) to filter certain ingredients or ingredient groups for dietary purposes. The existing structure offers already many hooks for simple diets. For more complex ones additional hooks can be added.
 +
 
 +
=== Allergens ===
 +
Currently support for allergens is supported in a separate taxonomy. This allergens taxonomy is however based on ingredients, so there is a large overlap in work. For the different allergens, it is explained how it can be supported by the taxonomy.
 +
* Gluten:
 +
* Crustaceans: '''en:crustacean''' and children.
 +
* Egg: '''en:egg''' and its children.
 +
* Fish: '''en:fish''' and children.
 +
* Peanuts: '''en:peanut''' and '''en:peanut oil'''
 +
* Soybeans: '''en:soya''', '''en:soya oil''', '''en:soy flour''', '''en:soy protein''', '''en:tofu''', '''en:soy preparation''', '''en:soy sauce''', '''en:soya lecithin'''; maybe: E476
 +
* Milk: '''en:dairy''', '''en:lactose''', '''en:milk minerals''', '''en:milk proteins''', '''en:milk chocolate''', '''en:milk filling''', '''en:ice cream''', '''en:bechamel sauce'''
 +
* Nuts: '''en:nut''', '''en:peanut''', '''en:crocant''', '''en:nougat''', '''en:pistachio seed oil''', '''en:pine nuts''', '''en:walnut oil''', '''en:hazelnut oil''', '''en:pink peppercorn'''
 +
* Celery: '''en:celery''' and '''en:celeraic''' and children.
 +
* Mustard: '''en:mustard''' covers all synonyms. Should also some brassica be included? wasabi?
 +
* Sesame seeds: en:sesame, '''en:sesame oil''' and children.
 +
* Sulphur dioxide:
 +
* Lupin: '''en:lupin''' and its child.
 +
* Molluscs: '''en:molluscs''' and its children.
 +
 
 +
=== Vegetarian ===
 +
Vegetarianism has many [https://en.wikipedia.org/wiki/Semi-vegetarianism#Comparison_of_vegetarian_and_semi-vegetarian_diets subdivisions] as is seen below. The table lists which ingredient (groups) need to be excluded for each diet.
 +
{| class="sortable wikitable" style="font-size: smaller;"
 +
|-
 +
! Name
 +
! Livestock
 +
! Poultry
 +
! Game (hunting)|Game
 +
! Seafood
 +
! Dairy
 +
! Eggs
 +
! Honey
 +
! Root vegetables
 +
|-
 +
! Fruitarianism
 +
| en:animal
 +
| en:poultry
 +
| en:game animal
 +
| en:fish, en:shellfish
 +
| en:dairy, en:lactose, en:milk minerals, en:milk proteins, en:milk chocolate, en:milk filling, en:ice cream, en:bechamel sauce
 +
| en:egg
 +
| en:honey, en:royal jelly, en:pollen, en:beeswax, en:marzipan, en:nougat, en:invertase
 +
| en:root vegetable, en:ginger, en:betanin, en:turmeric
 +
|-
 +
! Jain vegetarianism
 +
| en:animal
 +
| en:poultry
 +
| en:game animal
 +
| en:fish, en:shellfish
 +
| -
 +
| en:egg
 +
| en:honey, en:royal jelly, en:pollen, en:beeswax, en:marzipan, en:nougat, en:invertase
 +
| en:root vegetable, en:ginger, en:betanin, en:turmeric
 +
|-
 +
! Veganism
 +
| en:animal
 +
| en:poultry
 +
| en:game animal
 +
| en:fish, en:shellfish
 +
| en:dairy, en:lactose, en:milk minerals, en:milk proteins, en:milk chocolate, en:milk filling, en:ice cream, en:bechamel sauce
 +
| en:egg
 +
| en:honey, en:royal jelly, en:pollen, en:beeswax, en:marzipan, en:nougat, en:invertase
 +
| -
 +
|-
 +
! Lacto vegetarianism
 +
| en:animal
 +
| en:poultry
 +
| en:game animal
 +
| en:fish, en:shellfish
 +
| -
 +
| en:egg
 +
| -
 +
| -
 +
|-
 +
! Orthodox Fasting
 +
| en:animal
 +
| en:poultry
 +
| en:game animal
 +
| sometimes
 +
| en:dairy, en:lactose, en:milk minerals, en:milk proteins, en:milk chocolate, en:milk filling, en:ice cream, en:bechamel sauce
 +
| en:egg
 +
| -
 +
| -
 +
|-
 +
! Ovo vegetarianism
 +
| en:animal
 +
| en:poultry
 +
| en:game animal
 +
| en:fish, en:shellfish
 +
| en:dairy, en:lactose, en:milk minerals, en:milk proteins, en:milk chocolate, en:milk filling, en:ice cream, en:bechamel sauce
 +
| -
 +
| -
 +
| -
 +
|-
 +
! Ovo-lacto vegetarianism
 +
| en:animal
 +
| en:poultry
 +
| en:game animal
 +
| en:fish, en:shellfish
 +
| -
 +
| -
 +
| -
 +
| -
 +
|-
 +
! Pescetarianism
 +
| en:animal
 +
| en:poultry
 +
| en:game animal
 +
| -
 +
| sometimes
 +
| -
 +
| -
 +
| -
 +
|-
 +
! Pollo-vegetarianism
 +
| en:animal
 +
| -
 +
| en:game animal (yes)
 +
| en:fish, en:shellfish
 +
| -
 +
| -
 +
| -
 +
| -
 +
|-
 +
! Pollo-pescetarianism
 +
| en:animal
 +
| -
 +
| en:game animal (yes)
 +
| -
 +
| -
 +
| -
 +
| -
 +
| -
 +
|-
 +
|}
 +
For some diets the game animal is permitted, so it is possible to include those ingredients.
 +
 
 +
=== Fodmap ===
    
== Maintenance ==
 
== Maintenance ==
3,390

edits

Navigation menu