Metodologia9 min de lectura

D'on surten les dades de Vnutri: 8 bases, un catàleg

Vuit bases de composició d'aliments de llicència oberta, com les fusionem en un catàleg únic de 845+ aliments amb 38 nutrients cadascun, i les decisions metodològiques al darrere.

Mapa de 8 fonts de composició alimentària — USDA, Ciqual, CoFID, AFCD, Frida, Matvaretabellen, CNF

"Quantes calories té una poma?" — una pregunta simple amb una resposta no tan simple. Depèn de la varietat, la maduresa, l'origen i qui la va mesurar. Les xifres de les etiquetes, els llibres i les apps poden diferir 1,5–2×. Aquest article tracta de com Vnutri intenta tancar aquest buit.

El catàleg de Vnutri té 845+ aliments quotidians i 340 plats, amb 38 nutrients cadascun. A sota: 8 bases de composició alimentària curades, de llicència oberta, fusionades en un sol conjunt. Aquí estan les bases, per què les vam triar i com les combinem.

Què és una base de composició alimentària

Una base de composició alimentària són dades de nutrients mesurats al laboratori per a aliments. Cada registre és un producte concret (per exemple, "Apple, raw, with skin, including foods for USDA's Food Distribution Program") amb desenes o centenars de columnes de nutrients per 100 g.

Les construeixen institucions nacionals: USDA als EUA, ANSES a França, FSANZ a Austràlia, etc. Les dades vénen d'anàlisi instrumental (HPLC per a vitamines, ICP-MS per a minerals, cromatografia de gasos per a àcids grassos) sobre mostres regulars. És car: un registre típic costa als laboratoris milers de dòlars.

Per això la majoria són públiques — es construeixen amb diners dels contribuents i els governs obliguen que siguin obertes.

Les vuit fonts de Vnutri

Font Registres Llicència Regió
USDA FoodData Central (Foundation + SR Legacy) 7 928 Domini públic EUA
USDA FNDDS 2021–2023 (plats compostos) 5 431 Domini públic EUA
Canadian Nutrient File 5 690 OGL Canada Canadà
UK CoFID (McCance & Widdowson 2021) 2 636 OGL v3.0 Regne Unit
ANSES Ciqual 2020 2 298 Etalab França
Matvaretabellen 2 118 NLOD Noruega
AFCD (FSANZ Release 3) 1 588 CC BY 3.0 AU Austràlia
Frida (DTU) 1 381 Open Dinamarca
USDA Choline DB ~25 Domini públic EUA

A prop de 29 000 registres abans de filtrar.

Per què aquestes en concret

Tres criteris.

  1. Llicència oberta. Domini públic, CC, OGL, NLOD. Res de "ús personal només" — fem un producte comercial. Això descarta bases tancades com NEVO (Països Baixos) i algunes universitàries.
  2. Actualitzacions regulars. Bases amb "Release 18" i actualitzacions cada 3–5 anys. Queden fora projectes arxivats o puntuals.
  3. Mesura al laboratori, no càlcul per recepta. Triem fonts amb la majoria de registres d'anàlisi instrumental. USDA FNDDS es fa servir només per a plats (els seus valors són recipe-calculated, i ho diuen).

Què no s'inclou, i per què:

  • Open Food Facts (OFF) — base contribuïda per usuaris, ODbL. Massa soroll: marques comercials, noms distorsionats, sense validació. Fem servir OFF només per a localització (diccionari multilingüe de noms), no per a valors de nutrients.
  • Fineli (Finlàndia) — gran base, CC BY 4.0, però l'accés CLI està bloquejat i no hem fet l'exportació manual encara.
  • Livsmedelsverket (Suècia) — CC0, càrrega manual, pendent.
  • NEVO (Països Baixos) — llicència tancada.

Quins nutrients

38 nutrients per aliment:

Energia i macros (10): calories, proteïnes, greixos, carbohidrats, fibra, sucres, midó, greixos saturats/mono/poli/trans, colesterol.

Minerals (10): calci, ferro, magnesi, fòsfor, potassi, sodi, zinc, coure, seleni, manganès, iode.

Vitamines (13): A, retinol, D, E, K, C, B1 (tiamina), B2 (riboflavina), B3 (niacina), B5 (pantotenat), B6, B9 (folat), B12.

Àcids grassos (3): omega-3, omega-6, més el desglossament dins dels greixos.

Altres (3): colina, lactosa, índex glucèmic (quan hi és).

És més del que publica una sola font: USDA SR Legacy no llista iode, USDA FDC no llista colina, Ciqual no llista seleni, etc. Cada nutrient ve de les bases que sí el publiquen.

Com fusionem les fonts

La mitjana simple no funciona. Bases diferents mostregen varietats diferents, mètodes diferents, regions diferents. La mateixa "poma" a USDA i a Ciqual són fruits físicament diferents.

Vnutri agrupa els registres de totes les fonts en clústers (aliment × varietat × estat) i després pren la mediana ponderada per nutrient dins de cada clúster.

En concret:

  1. Normalització de noms. Treure sufixos categòrics ("raw, with skin, includes…"), aplicar sinònims (yoghurt → yogurt, aubergine → eggplant), normalitzar format.
  2. Clustering. Tokens ordenats + estat (raw/cooked/dried) → clau de clúster. "Black beans, cooked" de l'USDA i "Beans, black, cooked" del CoFID cauen al mateix clúster.
  3. Comprovació de sanitat. Test d'Atwater: calories predites (proteïnes × 4 + greixos × 9 + carbohidrats × 4) han de coincidir amb les declarades dins de ±25 %. Fora de rang — es descarta, normalment error d'entrada.
  4. Mediana ponderada. USDA Foundation, Ciqual, CoFID, CNF, Frida, AFCD — pes 3. USDA SR Legacy, Matvaretabellen — pes 2. Mediana, no mitjana, perquè un outlier no arrossegui.
  5. Mínim de fonts. Un clúster necessita dades d'almenys 2 fonts. Les anomalies d'una sola font es descarten.

Resultat: un registre per aliment amb les millors dades disponibles per nutrient. Les fonts es llisten a la fitxa del producte.

Cobertura de nutrients

No tots els nutrients es mesuren amb la mateixa cura. Cobertura a 845 aliments:

Cobertura Nutrients
100 % Calories, proteïnes, greixos, carbohidrats
90–95 % Fibra, calci, ferro, sodi, potassi, magnesi, fòsfor, niacina, A, C, B1, B2, B6, zinc, coure, folat, B12
85–90 % Sucres, colesterol, greixos sat/mono/poli, manganès, seleni, D
75–85 % Pantotenat, E, omega-3
60–75 % Omega-6, midó, greixos trans, K
50–60 % Colina, iode

Iode i colina es queden al 50–60 % per límits de les fonts: USDA SR Legacy no publica iode (la columna existeix però està buida), i la colina només apareix a USDA i CNF.

I els plats

Dels ~340 plats del catàleg, uns 150 vénen d'USDA FNDDS 2021–2023 — base governamental de plats amb valors recipe-calculated. La resta (~190) són plats regionals sense anàleg a FNDDS: borscht, pelmeni, bibimbap, dal, pho, jollof rice, etc. Els seus valors nutricionals són estimats per Claude Opus a partir d'una recepta típica amb ingredients mesurats al laboratori del catàleg principal.

Aquests plats porten un segell "approximate" a la seva fitxa — el seu perfil nutricional és una estimació LLM, no dades de laboratori. La precisió aquí és notablement menor que en productes d'un sol ingredient.

Localització de noms

Els noms del catàleg es tradueixen a 6 idiomes (en, es, ca, fr, de, ru). El pipeline té tres capes, de la més barata a la més cara.

  1. Taxonomia OFF — vocabulari multilingüe curat, 4 212 entrades en 100+ idiomes. De la taxonomia d'ingredients d'Open Food Facts a GitHub. Taxa de match ~70 %.
  2. Wikidata — API wbsearchentities per a aliments rars o regionals. Selector per nivells amb filtres de P31 (instància d'aliment).
  3. Google Cloud Translation v3 (Translation LLM) — pas final. Retraductora tot per arreglar fugues de nom científic i aplicar concordança de gènere i nombre.

Més — com anomenem els aliments en 6 idiomes.

I els estats (cru vs cuit)

El mateix aliment cru i cuit són dos productes diferents nutricionalment. L'arròs cuit té més aigua i menys proteïnes i calories per 100 g que el cru. L'espinac cuit té major densitat de molts minerals que el cru perquè ha perdut aigua.

Vnutri ho resol amb un model de variants per estat: cada aliment té un state (raw, cooked, dried, baked, etc.) i un groupId comú a tots els estats del mateix aliment. La llista mostra un primari (normalment raw); al detall, un selector d'estats.

Més — per què "pollastre cuit" i "pollastre cru" són aliments diferents.

Índex glucèmic

GI és l'únic nutrient a Vnutri que no ve de les 8 bases. Font: el metanàlisi Atkinson 2021 (Am J Clin Nutr), International Tables of Glycemic Index and Glycemic Load Values 2021. És la compilació sistemàtica més completa de GI fins avui.

No tots els aliments tenen GI mesurat — només els que contenen carbohidrats, i només si hi ha almenys una sessió de laboratori a la literatura. A prop del 30 % del catàleg té GI. Veure l'índex glucèmic.

El que NO fem

  • No comprem bases tancades. Només llicència oberta.
  • No fem servir dades contribuïdes per usuaris per a nutrients. OFF només per a noms.
  • No confiem en dades d'etiqueta de producció. Les calories declarades al paquet poden diferir fins a un 20 % del valor de laboratori (tolerància FDA). Les dades de laboratori són més precises.
  • No sumem nutrients per recepta, excepte per a "mixed dishes" de FNDDS.

Precisió i límits

Què esperar.

Precisió de dades: per a aliments monoingredients — valors mesurats al laboratori. Per a plats FNDDS — valors recipe-calculated. Per a plats regionals — estimacions LLM.

Variació regional: una poma als EUA, Noruega i Austràlia són fruits físicament diferents. La nostra mediana suavitza els efectes regionals. Si analitzes menjar d'una regió concreta, una base local pot ser més precisa.

Variació varietal: Honeycrisp ≠ Granny Smith en sucres i acidesa. Al catàleg, "poma" és la mediana entre varietats. Cal buscar varietats concretes a part.

Cocció: "patata bullida" al catàleg és mitjana de mètodes de bullir. Rostida o fregida — perfil diferent.

Envelliment de dades: USDA SR Legacy és del 2018; CoFID 2021; Ciqual 2020. Aliments molt recents no apareixen ràpid.

Atribució

Totes les fonts estan citades a la pàgina d'Acknowledgments amb les seves llicències. Cada nutrient a la fitxa d'un aliment es pot rastrejar fins a la seva font.

Si vols fer servir les dades de Vnutri al teu projecte, estem oberts a parlar-ne. Escriu-nos: hello@vnutri.app.

Referències

  • US Department of Agriculture. FoodData Central. 2024.
  • Health Canada. Canadian Nutrient File. 2023.
  • Public Health England. McCance and Widdowson's The Composition of Foods Integrated Dataset 2021.
  • ANSES. Ciqual French food composition table. 2020.
  • Norwegian Food Safety Authority. Matvaretabellen. 2023.
  • Food Standards Australia New Zealand. Australian Food Composition Database, Release 3. 2024.
  • Technical University of Denmark. Frida Food Database. 2023.
  • Atkinson FS, Brand-Miller JC, Foster-Powell K, et al. International tables of glycemic index and glycemic load values 2021. Am J Clin Nutr. 2021;114(5):1625–1632.