Brands: Difference between revisions

From Open Food Facts wiki
(start rework)
(add slacks duscussion)
Line 75: Line 75:
** Brand with only numbers
** Brand with only numbers
*** For examples, <code>1664</code>, <code>1883</code> or <code>365</code>.
*** For examples, <code>1664</code>, <code>1883</code> or <code>365</code>.
From slack
- Because some names can differ per country instead of per languages (we can take the example of Miko/wall's ice creams (<nowiki>https://en.wikipedia.org/wiki/Wall%27s_(ice_cream))</nowiki> that are called Frigo in Spain but Bresler in Chile and Bolivia).
- The Coca-Cola Company sells Fanta in Thailand under two different brands (or two different writings of the same brand): one in English (Fanta) and one in Thai (แฟนต้า).
Danone is selling its mineral water in Morroco with both Arabic and French information on the bottle. The brand on the Arabic side is "عين سايس", but it is "aïn Saïss" on the French side.
There are probably thousands of examples with Japanese/English (like 味の素/Ajinomoto) in Japan and Chinese/English (乐虎/Hi-Tiger for instance)  in China.
- For these examples, I see 2 options
1) Synonyms
th: แฟนต้า, fanta
(+) they are at the same level of hierarchy
(-) only first synonym will be visible for users, have to opt for the most appropriate one (local language maybe?)
2) different children for the same parent. Let's say we have parent "Coca Cola company", then we would have something like
xx: coca-cola company<xx: coca-cola company
xx: fanta
th: fanta<xx: coca-cola company
xx: แฟนต้า
th: แฟนต้า(+) Both should be visible for users
(-) we have two different entries for the "same" brandI kind of like option 1)
(also by changing the website URL th.openfoodfacts -> world.openfoodfacts, we could see different names... Maybe  )
I like the first option better too.
It is kind of what we do for now.
It is probably not too awkward for countries like Thailand, China or Japan where there is only one official language.
It might be slightly more awkward when there are several official languages in the country.
When all those languages use the same writing system (like Switzerland or Belgium), the brand is usually the same across the languages so it should be ok.
The really tricky part is the case of countries having several official languages using different writing systems. Morocco is an example (Arabic/French), but things could get really problematic with India (22 official languages using 12 different writing systems).
in the PR from @aleene, there is the ice-cream brand I mentioned here-above (Frigo in Spain):
<span data-stringify-type="paragraph-break" class="c-mrkdwn__br" aria-label=""></span>According to this logic, '''fr:miko''' would be under '''fr:Unilever France'''. And both would be under '''en:Unilever PLC/N.V.'''<span data-stringify-type="paragraph-break" class="c-mrkdwn__br" aria-label=""></span>On the other hand, there are some ice-creams that are sold in both countries... (link)<span data-stringify-type="paragraph-break" class="c-mrkdwn__br" aria-label=""></span>So, this sub-brand in this example "cornetto" should have french and spanish parents.<span data-stringify-type="paragraph-break" class="c-mrkdwn__br" aria-label=""></span>I think it is possible to have more than a single parents (since ingredients taxonomy is like that).
<span data-stringify-type="paragraph-break" class="c-mrkdwn__br" aria-label=""></span>
<span data-stringify-type="paragraph-break" class="c-mrkdwn__br" aria-label=""></span>- That made me realise - in some cases one brand is owned by two companies, at least one example come to mind <span data-stringify-type="paragraph-break" class="c-mrkdwn__br" aria-label=""></span>- <span data-stringify-type="paragraph-break" class="c-mrkdwn__br" aria-label=""></span>Aldi. I believe both Aldi Nord and Aldi Süd use the name "Aldi" but they operate in <span data-stringify-type="paragraph-break" class="c-mrkdwn__br" aria-label=""></span>di<span data-stringify-type="paragraph-break" class="c-mrkdwn__br" aria-label=""></span>fferent areas, so it's going to be a mess
<nowiki>https://en.wikipedia.org/wiki/Aldi#/med</nowiki><span data-stringify-type="paragraph-break" class="c-mrkdwn__br" aria-label=""></span>ia<span data-stringify-type="paragraph-break" class="c-mrkdwn__br" aria-label=""></span>/File:Aldi_branches_in_Europe.svg
- Another classical example is the licensing of beer brands: the same brand may be exploited under a licensing agreement by different companies depending on the country (and this can change with time).
My understanding is that it is because for beer, it is a lot cheaper to produce locally than to transport internationally.
See for example: <nowiki>https://www.diffordsguide.com/beer-wine-spirits/2003/san-miguel-cerveza-uk-brewed</nowiki>
In the UK San Miguel would probably be under Carlsberg Marstons, but in Spain it would be under Mahou San Miguel and in the Philippine or Hong Kong under the (original) San Miguel Brewery. (edited)
- Another well known example is Asahi, whose brands are now manufactured for the European market by its local subsidiaries (Peroni in Italy, for instance) but used to be licensed to Carlsberg Marstons or AB Inbev depending on the country. Some Asahi brands are still licensed to AB InBev at least for some European markets. It used to be very opaque, but recent events made that obvious: <nowiki>https://www.asahiinternational.com/stories/people/asahi-europe-international-statement/</nowiki> (edited)


=== Some particular cases for a product ===
=== Some particular cases for a product ===

Revision as of 13:58, 25 February 2024

This is the brands of the product.

Suggested solution for the taxonomy

Taking the observations, use cases and design considerations into account, it is possible to specify how this can be encoded in a taxonomy. The same approach as all the other taxonomies will be used for thus.

An overview of the encoding used in the brands taxonomy:

  • blocks/white lines - a single brand is defined by a block of text and are separated by white lines;
  • definition - a single line defines the brand in a specific language, an attribute, etc. Each line starts with a name followed by parameters and separated by a colon
  • parameters:
    • parent (<zz:) - a reference to another (parent) brand. Thus any attributes shared between parent and child only have to be specified in the parent;
    • key (zz:) - an unique is required, so that we can distinguish between brands with the same name;
    • default (xx:) - a default value to be used for any language that is not specifically listed;
    • language (e.g. ru:) - the brand-name in the language ru. A brand might be defined in multiple languages as needed, with a single line for each language. For instance the ru: might be used to specify a brand in Cyrillic. Sometimes also country specific brands are required.
    • attributes - each brand can have one or more attributes
      • barcodeprefix:en: - the first 8(?) numbers of the barcode that belong to the brand. With this brands can be automatically assigned to a barcode. Also the barcodes of existing products can be checked;
      • wikipedia:en: - the full link to a page, which explains the brand(!!!). Note that brands are not well available on wikipedia;
      • wikidata:en: - the identifaction of the wikidata entry for the brand(!!). Note that brands are not well available on wikidata;
      • brand_owner_opencorporates:xx: - an identification of the probable brand owner/distributor on opencorporates. It is not always clear what should be written down here.
      • idea: local customer service address (one for each country where the product is distributed, and a generic one)
      • idea: eu trademark - maybe only useful for name trademarks? (not logo's). But not relevant to the consumer.
      • idea: stores - the stores where the brand is sold. Maybe better to create a store taxonomy and link from there to brands?

Example

zz:laespanola
xx:La Española
barcodeprefix:en:8410226
barcodeprefix:en:8410660
category:en en:Olive tree products
brand_owner_opencorporates:ES:80245129
#94 products @2022-04-23

zz:latrappe
xx:La Trappe
barcodeprefix:en:8711406
category:en en:belgian-beers
label:en: en:authentic-trappist-product
website:nl:https://nl.latrappetrappist.com/nl/nl.html
brand_owner_opencorporates:BE:0838355558
wikidata:en:Q590921
#11 products @2022-04-23

Q&A

  • Product has more than a single brands.
    • Product is part of a bigger brand or group.
      • For example, Actimel is sold by Danone.
      • For example, By Sainsbury's is sold by Sainsbury's.
      • Solution: make Actimel a child of Danone in this example.
    • Synonyms. Product is sold with 2 brands, each for different language/countries.
      • For example, both Nature Valley and Val Nature can be written on the same product, but not always.
      • For example, No Name and Sans nom can be written on the same product, but not always.
      • Solution: make Val Nature a child of Nature Valley in this example because Nature Valleyis the original U.S. brand (reference).
      • Solution: make No Name , No Name Sans nom and Sans nom 3 separate children of Generic brand in this example because they are all lines of Generic brandwhich is a Canadian brand (reference).
    • Also synonyms. Product brand has changed over time.
    • Solution: use synonyms in the taxonomy.
  • Same name shared by different brands.
    • For example, San Miguel is a beer in Spain [cervezas san miguel], food in Mexico [grupo agroindustrial san miguel], honey in Spain/France [Ramros Trading Company])
    • For example, Star is starfinefood in the U.S., Star S.p.A. in Italy, stardrinks in the United Arab Emirates, star from Ghadawat Indian airlines company,
    • For example, Walkers represents 3 different brands (1, 2 and 3)
    • For example, Dove is either cosmetic (from Unilever) or chocolates brand (from Mars)
    • Solution: having country specific brands would help as well as differencing Cervezas San Miguel and San Miguel. In long term we could have some set of rules like if it is San Miguel and category is Beers, then rename Cerezas San Miguel. Same for food vs cosmetic.
  • Products without brands written.
  • Brand spelling and formatting.
    • Is it Coop, coop, COOP, CO OP?
    • Solution: in taxonomy, there are no difference between lower and upper case, there are no difference between space and hyphen. We can make coop a synonym of co op.
    • Brands containing an apostrophe or quotes are often missing this one.
      • For examples for apostrophes, Lay's vs Lays, Kellogg's vs Kelloggs, Sar'Ocean.
      • For example for quotes,The Muffin "Mam" Inc
      • Solution: use synonyms in the taxonomy.
    • Brands with special characters like &
      • For example for &, M&M's
      • Solution: special characters should be recognized. Eventually, use synonyms in the taxonomy.
    • Brands with commas
      • For example for commaWilliams, West & Witt's Products
      • Solution: brand should be written without the comma. it is not possible to use commas in the tags (if you write comma it will start a new tag, this example will result in two tags: Williams and West & Witt's Products
    • Brand with only numbers
      • For examples, 1664, 1883 or 365.


From slack

- Because some names can differ per country instead of per languages (we can take the example of Miko/wall's ice creams (https://en.wikipedia.org/wiki/Wall%27s_(ice_cream)) that are called Frigo in Spain but Bresler in Chile and Bolivia).

- The Coca-Cola Company sells Fanta in Thailand under two different brands (or two different writings of the same brand): one in English (Fanta) and one in Thai (แฟนต้า).

Danone is selling its mineral water in Morroco with both Arabic and French information on the bottle. The brand on the Arabic side is "عين سايس", but it is "aïn Saïss" on the French side.

There are probably thousands of examples with Japanese/English (like 味の素/Ajinomoto) in Japan and Chinese/English (乐虎/Hi-Tiger for instance)  in China.

- For these examples, I see 2 options

1) Synonyms

th: แฟนต้า, fanta

(+) they are at the same level of hierarchy

(-) only first synonym will be visible for users, have to opt for the most appropriate one (local language maybe?)

2) different children for the same parent. Let's say we have parent "Coca Cola company", then we would have something like

xx: coca-cola company<xx: coca-cola company

xx: fanta

th: fanta<xx: coca-cola company

xx: แฟนต้า

th: แฟนต้า(+) Both should be visible for users

(-) we have two different entries for the "same" brandI kind of like option 1)

(also by changing the website URL th.openfoodfacts -> world.openfoodfacts, we could see different names... Maybe  )

I like the first option better too.

It is kind of what we do for now.

It is probably not too awkward for countries like Thailand, China or Japan where there is only one official language.

It might be slightly more awkward when there are several official languages in the country.

When all those languages use the same writing system (like Switzerland or Belgium), the brand is usually the same across the languages so it should be ok.

The really tricky part is the case of countries having several official languages using different writing systems. Morocco is an example (Arabic/French), but things could get really problematic with India (22 official languages using 12 different writing systems).


in the PR from @aleene, there is the ice-cream brand I mentioned here-above (Frigo in Spain):

According to this logic, fr:miko would be under fr:Unilever France. And both would be under en:Unilever PLC/N.V.On the other hand, there are some ice-creams that are sold in both countries... (link)So, this sub-brand in this example "cornetto" should have french and spanish parents.I think it is possible to have more than a single parents (since ingredients taxonomy is like that).

- That made me realise - in some cases one brand is owned by two companies, at least one example come to mind - Aldi. I believe both Aldi Nord and Aldi Süd use the name "Aldi" but they operate in different areas, so it's going to be a mess

https://en.wikipedia.org/wiki/Aldi#/media/File:Aldi_branches_in_Europe.svg


- Another classical example is the licensing of beer brands: the same brand may be exploited under a licensing agreement by different companies depending on the country (and this can change with time).

My understanding is that it is because for beer, it is a lot cheaper to produce locally than to transport internationally.

See for example: https://www.diffordsguide.com/beer-wine-spirits/2003/san-miguel-cerveza-uk-brewed

In the UK San Miguel would probably be under Carlsberg Marstons, but in Spain it would be under Mahou San Miguel and in the Philippine or Hong Kong under the (original) San Miguel Brewery. (edited)


- Another well known example is Asahi, whose brands are now manufactured for the European market by its local subsidiaries (Peroni in Italy, for instance) but used to be licensed to Carlsberg Marstons or AB Inbev depending on the country. Some Asahi brands are still licensed to AB InBev at least for some European markets. It used to be very opaque, but recent events made that obvious: https://www.asahiinternational.com/stories/people/asahi-europe-international-statement/ (edited)


Some particular cases for a product

  • A product can have more than 2 brands; eg:
    • Coop, in Switzerland, can add up to three brands on a product: Betty Bossi, Karma and Coop in this product; they justify it: "We offer a wide range of own-label brands and brand worlds." (source)
    • In this product, Lipton belongs to Unilever but this product is distributed by Pepsico . EDIT Lipton used to belong to Unilever, and now belong to CVC Capital Partners. Lipton's ready to drink beverages belongs to both Unilever and PepsiCo (who is distributor).

Implementation in Open Food Facts

In the database, this field is called brands.

See issues related to brands.

Observations summary

Summarizing the observations note above, we see the following brands:

  • 1 universal brand, exact same name used in all countries and languages. e.g. "Nutella"
  • 2 brand that is translated in different languages or scripts "The Laughing Cow", "La vache qui rit" (example) EDIT they both belong to the same parent (Bel Group)
  • 3 brands that have the same name, but used in different languages
  • 4 brands that have the same name, but used in different countries
  • 5 brands that have the same name, and used in the same country. (e.g. "Ferrero" in Italy: there's also a pasta brand. EDIT pasta brand in Italy named Industria-alimentare-ferraro).
  • 6 brands in non-latin scripts, which can not be latinised
  • 7 parent brands are sometimes shown on packaging

Use cases

The brands taxonomy has multiple applications within OFF. Theres are:

  • 1 Display the brands of a product, in the language requested by the user;
  • 2 Have a way to list all products of a brand;
  • 3 Let users enter brands for a product, as they appear on the package (as free text);
  • 4 Let the user select the correct brand from a list of existing brands. If the same brand text occurs multiple times, the user must be able to select the applicable one;
  • 5 Suggests a brand to the user based on the manufacturer part of the barcode and other information;
  • 6 Infer category and labels from brand - some brands are only used for specific products. This implies that the product category and possible labels can be implies (suggested);
  • 7 Infer brand from manufacturer code within the barcode;
  • 8 Barcode/Brand quality check - if the manufacturer part of the barcode does not match the specified brand, there is an error in either of them;

Design considerations

The observations and use cases lead to several design considerations:

  1. Unique brand key - as the same brand (string) can exist in multiple geographic areas or within the same geographic area, there must be a way to uniquely distinguish between the various brands. Otherwise, a user can not enter the correct brand (UC1), nor can we list all brands (UC2);
  2. Uses selectable brand - there must be a brand name in the same language/script of the package. If that name occurs multiple times in the taxonomy, it must be specified by product category, country sold, etc in order to make it unique. For instance, the label Taste occurs in France and Argentina, but is used for different categories. So the user should have the choice Taste (category 1 - France) and Taste (category 2 - Argentina). Maybe this can be mixed with the key. (UC4). EDIT: there are no Taste brands in France not in Argentina.
  3. Language/script specific brands - a way to code a single brand in multiple scripts and/or languages, for example in Chinese, Arabic and English (UC1)
  4. Language independent brand - a way to encode a brand that is valid for multiple languages (UC1);

Questions / Issues

  • company structure - do we want to list (and research) all the relationships between owners, marketing companies, etc. I would suggest that we do NOT and limit ourselves to the brands and brand owner (and maybe the production company);
  • overkill - it is very tempting to add al kinds details for owners, etc. The actual owners of the product, brand, etc, do not seem useful to the consumer. We just should provide links to third parties for this kind information. I.e. wikipedia, wikidata,, opencorporates, ipo europe, ...
  • parent brand - when should the parent brand be added? Only if the parent brand is available on the front of the packaging, or also when it is shown on the back of the packaging, or when we can find out the legal final parent owner of a brand? This choice might have an implication for how we structure the data.
  • EAN manufacturer codes - is there an open database which we could use?

Brands and Robotoff (AI)

Preventing OFF AI to detect some false brands: see brand_taxonomy_blacklist.txt.

Help to collect brands

The AI of Open Food Facts, called Robotoff, is trying to identify brands. The annotations made by Robotoff are provided to users, asking them to answer to a simple question. There are also used by Hunger Game. Everyone can use Hunger Game, but be careful to the issues mentioned in this current page.

  • on 2020-10-29, there were 43200 annotations and 22748 resting
  • on 2020-11-17, there were 46911 annotations and 22720 resting

Know challenges

Some brand names are related to common name, expressions or ingredients producing false positive with AI tool. For examples: