Des données libres et liées : export RDF des données
Libres car la licence ouverte permet aux données d’être utilisées par tous et pour tout usage, et liées parce que les données sont maintenant reliées non seulement entre elles, mais aussi avec d’autres jeux de données, par l’intermédiaire de la base DBPedia.
J’explique en français : il y maintenant un gros fichier qui contient les données d’Open Food Facts sur les produits, leurs ingrédients et leur composition nutritionnelle. Les produits sont liés aux ingrédients qu’ils contiennent, et les ingrédients (certains pour commencer) font référence à leur page sur DBPedia (une base de données issue des articles de Wikipedia). Ce fichier n’est pas destiné aux humains, mais aux programmes. Il est possible de l’interroger, de formuler des requêtes comme « quels sont les produits dont l’ingrédient principal est le sucre », et de le croiser facilement avec d’autres jeux de données.
Grâce à ce fichier, les données d’OFF font maintenant partie de ce qu’on appelle « le Web des Données ». Elles sont plus facilement réutilisables.
Bientôt les données d’Open Food Facts croisées avec plein d’autres jeux de données ?
Les détails techniques :
J’ai participé au Datalift Camp auquel m’avait invité Charles Nepote de Datalift, et c’est d’abord avec l’outil Datalift qu’on a commencé à « jouer » avec les données d’OFF pour voir comment les exprimer en RDF.
Les données sur les ingrédients et les nutriments sont décrites par une ontologie food que nous sommes en train de créer avec François Scharffe du Laboratoire d’Informatique, de Robotique et de Microélectronique de Montpellier LIRMM et Emmanuel Nauer du Laboratoire Lorrain de Recherche en Informatique et ses Applications LORIA. L’idée est d’utiliser le même vocabulaire pour décrire une recette (comme celles utilisées par le projet Taaable auquel participe Emmanuel), ou un produit alimentaire manufacturé.
L’export RDF est ici : http://fr.openfoodfacts.org/data/fr.openfoodfacts.org.products.rdf (en XML/RDF)
Et il est référencé sur The Data Hub pour faciliter la découverte du jeu de données Open Food Facts.
Les ingrédients sont parsés depuis la liste des ingrédients en texte, il subsiste des erreurs, le format des listes variant beaucoup d’un produit à l’autre. Je vais améliorer le parser, et en parallèle des contributeurs corrigent les fautes d’orthographe présentes dans les listes.
Les URLs des produits et ingrédients retournent pour l’instant la page Web en HTML, mais je vais ajouter la négociation de contenu pour retourner du RDF.
François a généré des équivalences entre les ingrédients Open Food Facts et les mêmes ingrédients sur DBPedia. Ils sont indiqués par la propriété owl:sameAs, par exemple :
<food:name>Sorbate de potassium</food:name> <owl:sameAs rdf:resource="http://fr.dbpedia.org/resource/Sorbate_de_potassium"/> </rdf:Description>
Il n’y a pour l’instant pas d’endpoint SPARQL. Vous pouvez par contre charger l’export RDF dans un outil comme Datalift pour exécuter des requêtes SPARQL. A titre d’exemple, voici l’une de mes premières requêtes (pour trouver les produits dont l’ingrédient principal est le sucre) :
PREFIX food: <http://data.lirmm.fr/ontologies/food#> SELECT ?s ?code WHERE { ?s <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> food:FoodProduct . ?s food:containsIngredient ?i . ?i food:food <http://fr.openfoodfacts.org/ingredient/sucre> . ?i food:rank "1" OPTIONAL { ?s food:code ?code } . }
C’est bien sûr un travail en cours, il manque encore beaucoup de données dans l’export RDF (les marques, les catégories etc.). Elles vont être ajoutées progressivement.
Vos idées, commentaires, suggestions etc. sont les bienvenues pour améliorer ces données, mieux les lier, mieux les représenter etc. De plus si vous utilisez les données, cela serait sympa de nous le dire. Merci d’avance !
Et bien sûr un grand merci à Emmanuel et François pour leur aide !