Journal Recherche de contributeurs pour taxonomy-editor un projet pour Open Food Facts (éventuel stage)

Posté par  . Licence CC By‑SA.
12
18
avr.
2023

L'année dernière à Open Food Facts, nous avons profité de Google Summer of Code pour démarrer un projet d'éditeur de taxonomies.

C'est quoi les taxonomies ?

La base de données Open Food Facts contient de nombreuses informations sur les produits alimentaires, telles que les ingrédients, les étiquettes, les additifs, etc.
Parce que ces domaines changent et qu'il peut y avoir des particularités locales, nous laissons toujours une saisie libre des informations (avec des suggestions) et nous cherchons à structurer à posteriori. Les informations structurées peuvent être mieux exploités (par exemple pour le calcul de Nutri-Score, la détection d'allergènes, etc.)
Ceci permet également de faire des liens avec des bases exetrens (agribalyse, wikidata, etc.).

le problème

Pour le moment, une taxonomie dans Open Food Facts est un fichier texte brut contenant un graphe acyclique dirigé (DAG) où chaque nœud feuille a un ou plusieurs nœuds parents.

Les fichiers de taxonomie présents dans Open Food Facts sont longs à lire (la taxonomie ingrédients.txt compte à elle seule environ 80000 lignes !) et lourds à éditer par les contributeurs, et impossible pour un utilisateur occasionnel.

De plus il est difficile d'avoir une image de haut niveau des taxonomies.

le projet

Ce projet vise à fournir une interface Web conviviale pour éditer facilement les taxonomies.

Il doit permettre pas mal de choses:
* activer la recherche et la navigation dans la taxonomie
* permettre aux utilisateurs occasionnels d'apporter des traductions et des synonymes et ainsi d'enrichir la taxonomie
* aider à repérer les problèmes dans la taxonomie (traductions manquantes, chemins manquants, etc.), obtenir des statistiques utiles à ce sujet
* fournir des assistants pour aider les contributeurs puissants à enrichir la taxonomie (par exemple, trouver l'entrée wikidata correspondante)
* proposer une API à la taxonomie pour les applications tierces (en complément de l'API existante)

pourquoi c'est intéressant ?

  • c'est en Python et ReactJS
  • ça utilise une base de données de graphes : Neo4J et vous pouvez faire beaucoup de requêtes utiles et intéressantes
  • projet pas trop gros et bien focalisé, vous pouvez rapidement le prendre en main
  • cela peut avoir un impact énorme sur Open Food Facts :
    • support sur plus de langues : être utile à plus d'utilisateurs autour du monde
    • meilleure analyse des ingrédients : plus de détection des allergies, calcul potentiellement plus fin du score environnemental
    • meilleure classification des produits : permettre des comparaisons de produits, des calculs de score environnemental, etc.
    • permettant plus de taxonomies : par exemple sur les marques pour connaître les producteurs alimentaires

pourquoi comme ça ?

Lors d'un précédent post on m'a fait remarquer que des formats (et des outils) existent déjà pour les taxonomies. C'est vrai, mais, à part notre ignorance, il y a quelques points qui nous font continuer ce projet:

  • il serait difficile de changer le format du tout au tout coté serveur d'open food facts (c'est malheureusement ancré à plein d'endroit dans le code) et les formats que j'ai vu sont dur à éditer à la mano.
  • nous avons une forte emphase sur les synonymes et les traductions, je ne suis pas sur que ce soit des choses privilégiés par les autres formats
  • je n'ai pas vu d'outil libre vraiment facile d'approche pour des contributeurs noob
  • il nous faut un chemin de changement incrémental. Le projet actuel ne change pas le format final et permet de continuer le workflow actuel (on passe par des PR github pour valider in fine). Mais il ouvre la possibilité d'un changement de workflow dans le futur
  • dans la suite du projet, nous voulons pouvoir intégrer des aides très spécifiques (ex: identifier les entrées wikidata correspondantes, voir les entrées voisines manquantes, etc.)
  • # Précision de vocabulaire

    Posté par  . Évalué à 10.

    DAG, c'est Directed Acyclic Graph, qui en français donne Graphe Orienté Acyclique.

    Oui, c'est un peu pédant comme commentaire, mais je me suis dit que pour les curieux qui cherche les détails d'un graphe dirigé, ils n'allaient pas trouver grand-chose…

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.