Products quantities: Difference between revisions

From Open Food Facts wiki
(Added some quantity observations.)
Line 26: Line 26:
** we can display the value in several metrics if we have a sanitized value in one metric
** we can display the value in several metrics if we have a sanitized value in one metric


=== Generic approach ===
=== Canonical approach ===
The real-world quantities for products as used by the users us a far from ideal. However it is possible to find some common approach. (At least we try here)
The real-world quantities for products as used by the user (and printed on the packages) is not ideal. It is often impossible to parse the quantities and understand what is indicated.
However it is possible to find some common approach. This is a first attempt.
 
Some remarks:
* product central - any quantity that is indicated is about the product and not the packaging;
* equivalents - one or more equivalents might be available, i.e. in grams or liters, 24 cookies / 6 cookies in 4 packages;
* containers - the generic toplevel package is a container;
* subcontainers - a container might comprise multiple subcontainers (or even subsubcontainers) [hierarchy?]
* (sub-)container synonyms - a user might container other words to describe a container, such as bottle, can, bag, etc.
* defaults - in indicating the quantity some parts are assumed to be understood. If it states 33cl it is assumed to be about the container (the bottle) and the product (beer);
*
 
* to indicate times, either a "*" or a "x" can be used;
* to indicate times, either a "*" or a "x" can be used;
* the generic formula is: multiplier * quantity size_unit for units
* the generic formula is: multiplier * quantity size_unit for units
Line 42: Line 53:
* naturally users do not use this formal approach, but most quantities can be translated to this approach.
* naturally users do not use this formal approach, but most quantities can be translated to this approach.


Test:
=== Test approach ===
To test this approach the examples found in France have translated to this formal approach:
To test this approach the examples found in France have translated to this formal approach:
{| class="wikitable sortable"
{| class="wikitable sortable"

Revision as of 13:06, 27 March 2016

How to handle it

Logic to handle it

Existing libraries to parse weights and quantities

Using Wikidata

Possible calculations

  • Weight per item
    • Is the same item always the same weight (ham slices)
    • Useful if you eat one of the cakes in the packaging, and want to know how many calories you ate without having to weight the cake
  • Percentage of water
    • Useful to calculate actual cost if we know the price
    • Useful to fix calorie calculation for some products
  • Calculate packaging weight by making the difference between actual weight and advertised weight
  • Calculate weight per volume for products (1dL of water is 1kg, but this changes for various products that also have a mention of their volume)
  • Some products will have multilingual weights
    • we can check that the conversion is well done if we have both values
    • we can display the value in several metrics if we have a sanitized value in one metric

Canonical approach

The real-world quantities for products as used by the user (and printed on the packages) is not ideal. It is often impossible to parse the quantities and understand what is indicated. However it is possible to find some common approach. This is a first attempt.

Some remarks:

  • product central - any quantity that is indicated is about the product and not the packaging;
  • equivalents - one or more equivalents might be available, i.e. in grams or liters, 24 cookies / 6 cookies in 4 packages;
  • containers - the generic toplevel package is a container;
  • subcontainers - a container might comprise multiple subcontainers (or even subsubcontainers) [hierarchy?]
  • (sub-)container synonyms - a user might container other words to describe a container, such as bottle, can, bag, etc.
  • defaults - in indicating the quantity some parts are assumed to be understood. If it states 33cl it is assumed to be about the container (the bottle) and the product (beer);
  • to indicate times, either a "*" or a "x" can be used;
  • the generic formula is: multiplier * quantity size_unit for units
  • multiple formulas are distinguished by a ";"
    • multiplier indicates how often a quantity unit is used, i.e. 6 (25 cl bottles). This is a number.
    • quantity the size of the units in size_units, i.e. 25 (size) cl (size_unit) bottles (units). This is a number.
    • size_units is the unit for the size parameter, i.e. kg, ml or cl. This is an enumerated?
    • unit is the element the numbers and sizes refer to, i.e. pot, bottle, sack, etc.

Some remarks:

  • not all 4 elements are always specified, eg 250 g means 1*250 g for the entire product
  • sometimes more than one quantity is specified, e.g. 250 g (5x50 g) might mean 1x250g for the entire product OR 5 50g pots
  • there are exceptions, such as multiple multipliers.
  • naturally users do not use this formal approach, but most quantities can be translated to this approach.

Test approach

To test this approach the examples found in France have translated to this formal approach:

Quantity as stated by user Multiplier Quantity Size_unit Units
1 kg (8 pots) - [2 x (4 x 125 g)] - 1 kg -
or 8 - - pots
or 2x4 125 g -
275 g [250 g + 25 g (10 %) gratuit]
2 * 400 g (800 g)
4X100g 4 100 g -
2*25g 2 25 g -
200 g [160 g (2 x 8 pièces) mini-nems + 40 g sauce nuoc mâm]
211,5 g (9x23,5g) - 211,5 g -
or 9 23,5 g -
220g (2 unités, 2 x (60 g + 50 g))
2 x 21.5 g = 43 g
300 g (15 biscuits de 20 g)
1 Litre - 1 litre -
18tranche 18 - - tranches
375 g, 30 pièces - 375 g -
or 30 - - pièces
240 g (12 Portions) - 240 g -
or 12 - - portions
400 g (12 à 18 bouchées)
Poids net 190 g, poids net égoutté 140 g
contenance : 4250ml, poids net total : 4000g, poids net égoutté : 2210g
3 x [200 g (130 g net égoutté), 212 ml]
330 g (dont 180 g net), 370 mL
28 g - 20 dragées - 28 g -
or 20 - - dragées
260 g (26 portions de 10 g)
130 g pour 20 galettes - 130 g -
or 20 - - galettes
280 ml - 310 g - 280 ml -
- 310 g -
25 sachets 25 - - sachets
220 g (1 personne) - 220 g -
128 g (16 bâtonnets de 2 cubes) - 128 g -
16 - - bâtonnets
16x4 - - cubes
12 (calibre Moyen => 53 à 63 g) 12 - - calibre moyen
8 sachets de 4 8 - - sachets
8x4 - - -
400 g, 425 ml (3 douzaines)
228g (4x57g) / 48 cl (4x12cl)

Countries

France

Product name Quantity as stated by user Product page URL
Brassé nature 1 kg (8 pots) - [2 x (4 x 125 g)] (link)
Emmental Coeur de Meule (28 % MG) 275 g [250 g + 25 g (10 %) gratuit] (link)
Basilico 2 * 400 g (800 g) (link)
Frais Malo Sucré 4X100g (link)
Twix 2*25g (link)
16 mini-nems Poulet, menthe, Légumes, coriandre - Précuits - Surgelés 200 g [160 g (2 x 8 pièces) mini-nems + 40 g sauce nuoc mâm] (link)
9 barres au chocolat au lait et aux céréales 211,5 g (9x23,5g) (link)
Fondant au chocolat 220g (2 unités, 2 x (60 g + 50 g)) (link)
Kinder Bueno 2 x 21.5 g = 43 g (link)
Prince Goût Chocolat 300 g (15 biscuits de 20 g) (link)
Eau minérale Contrex 1 Litre (link)
Brioche Harrys Tranchée la recette Originale 18tranche (link)
FERRERO ROCHER Boîte de 30 375 g, 30 pièces (link)
Kiri® (32 % MG) à la crème de lait 240 g (12 Portions) (link)
Bouchées de Poulet à la provençale 400 g (12 à 18 bouchées) (link)
Thon entier au naturel Poids net 190 g, poids net égoutté 140 g (link)
Haricots beurre très fins contenance : 4250ml, poids net total : 4000g, poids net égoutté : 2210g (link)
Lentilles (Lot de 3 boîtes) 3 x [200 g (130 g net égoutté), 212 ml] (link)
Délices du Potager - Mini poireaux 330 g (dont 180 g net), 370 mL (link)
Chewing Gum Hollywood 28 g - 20 dragées (link)
Fruit d'Or pro-activ® (35% MG) Tartine 260 g - Unilever 260 g (26 portions de 10 g) (link)
Galettes, tout au beurre 130 g pour 20 galettes (link)
Ketchup P'tits Heinz 280 ml - 310 g (link)
Original Earl Grey 25 sachets (link)
Cappellettis Tofu, Epinards Bio - 220 g - Céréal Bio 220 g (1 personne) (link)
KUB ® Or 128 g (16 bâtonnets de 2 cubes) (link)
Oeufs de poules Elevées en Plein Air (x 12) calibre Moyen - Carrefour 12 (calibre Moyen => 53 à 63 g) (link)
Belvita sablé lait 8 sachets de 4 (link)
Escargots de Bourgogne Extra Gros - 400 g - E 400 g, 425 ml (3 douzaines) (link)
nestle 228g (4x57g) / 48 cl (4x12cl) (link)