Les petites cases

Retour sur Freebase à la lumière du Web of data

Au mois de mars, Tim O'Reilly repris par Internet Actu définissait ainsi le but de Freebase : « Créer les synapses du cerveau global ». On y voyait les prémices de la première application concrète et accessible à tous du Web sémantique. Six mois plus tard, je vous propose d'y revenir, alors que le concept de Web of data et Dbpedia ont fait leur apparition.

Dans l'article d'Internet actu, Hubert citait Denny Vrandecic, concepteur de Semantic Mediawiki :

« Metaweb [nda : le concepteur de Freebase et par extension le logiciel qui fait tourner freebase] vient du monde des données structurées, même si la structure est ici flexible et changeante. Semantic Media Wiki vient du monde des données non structurées, qui peuvent être améliorées par quelques éléments de structure pour mettre en relation plusieurs éléments non structurés. ».

Cette analyse me paraît excellente, car elle pose tous les enjeux de Freebase et son mode de fonctionnement. Si on voulait caricaturer, je dirais que Freebase est un wiki structuré OU une base de données dont la modélisation peut changer à la demande de l'utilisateur qui peut librement saisir les données. Choisissez votre camp en fonction de votre origine : données non structurées ou données structurées.

Concrètement, Freebase est organisée sous la forme d'une taxonomie thématique (arts et divertissements, Société, Sport...). Chaque thème comprend des types de ressource (film, acteur, opera, pièce de théâtre, Personne, ville...) auxquels sont rattachés des propriétés. Ces propriétés peuvent relier une ressource à une autre ressource ou à une donnée typée (chaîne de caractères, date, nombre entier...). Si vous suivez ce blog attentivement, vous aurez reconnu le principe d'une ontologie qui présente la particularité d'une structure évolutive à la demande des utilisateurs.

Cerise sur le gâteau, Freebase propose pour gérer cette ontologie une interface très agréable, facile à manipuler et qui permet très simplement d'éditer une donnée, d'en ajouter, de relier une ressource à une autre.

Réaction immédiate : c'est génial, c'est effectivement la première application du Web sémantique ! En apparence et au premier abord, tout y est et il faut l'avouer, c'est impressionnant. Mais, à y regarder de plus près, deux problèmes se posent : l'un est technologique et l'autre est, je dirais, cognitif.

Commençons par le problème technologique. Si Freebase est structuré avec une ontologie, il n'utilise absolument aucune technologie du Web sémantique : pas de RDF, pas de OWL et encore moins de SPARQL. Et, c'est là que le bat blesse. Si je devais le classer parmi les visions du Web proposées par Christian, Freebase rentrerait dans la deuxième catégorie avec Google OpenSocial. En effet, Freebase propose une API pour accéder à ses données, mais avec un langage de requêtes « maison » le MQL (Metaweb query language) basé sur la syntaxe Json.

Conséquence de ces choix :

  • L'utilisateur est tributaire de Metaweb pour l'évolution de l'API (vous allez me répondre que c'est pareil pour toutes les API, c'est vrai, mais ce n'est pas une raison) ;
  • Le MQL est assez limité et ne permet d'interroger qu'un type de ressource à la fois, c'est dommage, alors qu'ils ont construit Freebase avec une ontologie ; c'est un peu comme acheter une Ferrari et être obligé de rouler à 130 km/h sur l'autoroute... ;
  • Il est impossible de lier une donnée extérieure à Freebase à une donnée de Freebase et inversement. Il fonctionne en vase clos et ne correspond pas à l'architecture distribuée et décentralisée du Web of data.

Arrêtons-nous sur ce dernier point. Le principe du Web of data/Web de données/Web sémantique est de mettre à disposition des bases de données décentralisées, dont toutes les données (aussi bien les ressources, que les propriétés) sont accessibles via une URI (et même une URL), reliées entre elles par des liens typées, décrites selon le même cadre de description (RDF), interrogeables avec le même langage de requêtes et le même protocole, c'est à dire la même API (SPARQL). Avec une architecture distribuée suivant les normes du Web sémantique, il est possible d'interroger en une requête deux bases distinctes. Au contraire, Freebase est basé sur un modèle centralisé, toutes les données doivent être dans Freebase pour y accéder et les interroger. D'ailleurs, Hubert Guillaud et Daniel Kaplan avaient repéré cet obstacle :

« la résistance des propriétaires de grandes bases de données (organismes scientifiques, entreprises, médias…) devant la perspective d’une mise en commun “profonde” de leurs informations »

Cet obstacle existe aussi avec l'architecture décentralisée du Web sémantique, mais la réticence sera peut-être moins importante dans la mesure où les organismes pourront gérer et contrôler eux-mêmes la mise à disposition de leurs données.

Le second problème tient aux conséquences de la structuration forte des données. Le système contraint la contribution de l'utilisateur qui est obligé de se conformer à la structure de la ressource. Il est possible d'ajouter des propriétés, mais ce n'est pas immédiat et le changement sera répercuté au niveau du type. De ce fait, les données sont parfaitement structurées et organisées, mais, à mon avis, nous n'atteindrons jamais la richesse de Wikipedia, dont le principe de base est la liberté totale de l'utilisateur. De ce fait, il est aussi peut-être moins agréable et enrichissant à naviguer pour un humain que Wikipedia. Freebase est plutôt fait pour les machines.

Sur ce point, il n'est pas inintéressant de faire la comparaison avec Dbpedia. Ce dernier est construit, entre autres, à partir des info-box de Wikipedia et de la catégorisation des articles. Si les données sont d'une très grande richesse, les défauts/manques de structuration de Wikipedia dûs à la liberté totale de l'utilisateur apparaissent rapidement quand vous commencez à faire des applications avec Dbpedia. J'avais déjà fait allusion à ce problème en ce qui concerne les propriétés relatives au lieu de naissance. Il m'est apparu à une autre occasion. Suite à un très beau billet d'Outils froids sur Wikipedia, j'ai voulu aller dans son sens en construisant une application exhibit listant tous les personnages de Dune ou de Star Wars à partir de Dbpedia. Malheureusement, après quelques tentatives, j'ai dû me rendre à l'évidence, il n'existait aucune catégorie qui rassemble tous les personnages de ces univers, ils étaient dispatchés et leur structure n'était pas assez stricte pour réussir à créer une application qui tienne la route. Bref, j'ai fait l'expérience que toutes personnes qui ont traité des données non structurées ont faite, à savoir la limitation des machines.

Finalement, si je devais conclure, je dirais qu'aucun des deux modèles n'est parfait et que chacun présente ses avantages et ses inconvénients. Les deux modèles doivent coexister. De plus, Freebase va s'enrichir et, avec Dbpedia, il est possible de remédier aux problèmes de structuration de Wikipedia. J'emmétrais quand même une réserve à l'égard de Freebase, il serait quand même bienvenu qu'ils changent leur architecture et qu'ils ouvrent vraiment leurs données pour les intégrer au Web of data. Je pense même qu'il en va de la pérennité de leur service.

Management de l'information RDF Sparql Causeries Wikipedia Linked Data —