ISWC 2008 (5) – exploiter les données

Alors voilà : on a créé plein de beaux triples, des URIs, des ontologies, on a tout publié sur le Web of data… et qu’est-ce qu’on fait maintenant ? La conférence était assez riche en présentations d’outils ou de cas d’utilisation de toutes sortes qui montrent toute la puissance qu’apporte le Web sémantique en termes d’utilisation des données.
Je ferai ici une mention spéciale au Semantic Web challenge, un concours annuel qui a pour objectif de montrer des réalisations concrètes. Cette année, le challenge se divisait en deux branches : une branche « ouverte » (open track) dans laquelle on pouvait proposer n’importe quelle application, et une intitulée « billion triple challenge » dont l’objectif était de présenter des outils capables de manipuler une quantité importante de données.
Au moment de la « poster session », tous les participants au challenge ont fait des démos de leurs outils, et 5 outils ont été sélectionnés pour la finale dans chaque catégorie. Le lendemain, chacun des 5 élus a présenté dans le grand amphithéâtre son outil en une dizaine de minutes et cela a été une session pleine d’émerveillements. La plupart des exemples que je vais vous présenter dans ce billet en sont tirés (mais pas tous).
Par contre je ne parlerai pas de tout, alors ne m’en voulez pas ;-) vous pouvez retrouver tout cela sur le site du Challenge.

Il y a plusieurs façons d’exploiter les données du SemWeb. Je les ai classées en 4 catégories…

Les « triple store »
Un « triple store » est une base de données optimisée pour stocker des données en RDF. En général on utilise le langage de requête SPARQL, langage normalisé du Web sémantique, pour interroger ou extraire les données.
Dans cette catégorie, mention spéciale à Virtuoso qui n’a pas été dans les 5 élus du « billion triple challenge » mais s’est fait remarquer pour avoir réussi à indexer 11 milliards de triples en SPARQL avec des temps de réponse paraît-il très impressionnants. Pour la scalabilité, ils se posent là.
Pourquoi n’ont-ils pas été retenus pour le « billion triple » alors, me direz-vous ? Parce que le challenge consistait pas seulement à stocker les données, mais à les exploiter.

Les raisonneurs
Un des principaux intérêts d’avoir des données en RDF et des ontologies, c’est de pouvoir faire des inférences, c’est-à-dire déduire des informations exprimées les informations implicites (par ex., si A est cousin(e) de B et que la propriété « cousin(e) de » est symétrique, alors B est cousin(e) de A). Il existe donc des outils, raisonneurs ou moteurs d’inférences, dont le rôle est de parcourir les triples et de générer des inférences, ce qui crée de nouveaux triples qui peuvent être ajoutés au stock disponible pour être à leur tour exploités.
Deux outils de ce type ont été présentés : Marvin et SAOR.
MARVIN met l’accent sur la scalabilité et la possibilité de générer un maximum de triples tout en évitant de créer des doublons. La qualité des noeuds ajoutés n’est pas prise en compte, l’objectif étant plutôt de mettre à disposition des chercheurs une méthode permettant de tester différents algorithmes de raisonnement sur de larges ensembles de donnés. Il a gagné le 3e prix du challenge dans sa catégorie.
Le second, SOAR, ayant pour objectif de servir à alimenter un moteur de recherche (SWSE, voir ci-dessous) s’intéresse au contraire beaucoup aux questions de qualité de l’information générée (veiller à ce que les inférences aient du sens) et de temps de réponse.
Je ne rentre pas dans les détails, car très franchement, ça me dépasse… Mais il est bon de savoir que ces engins existent. Pour ceux qui seraient restés interloqués devant l’échange de commentaires de mon précédent billet, sachez que l’on peut également faire de petites inférences avec SPARQL. Il « suffit » de ranger l’ontologie dans le même triple store que les données, et de les requêter ensemble. Un jour, Got vous expliquera en détail comment marche SPARQL et comment on peut faire de petites inférences avec (pas vrai ?)

Les outils de recherche
Haha. Voilà qui est délicat, j’ai failli appeler ça les « moteurs de recherche sémantique » mais ça ne va pas du tout. Ca, ça ou encore ça, ce sont des choses qu’on a tendance à appeler des moteurs de recherche sémantique mais ils n’ont RIEN à voir avec le Web sémantique donc sachez-le : ce n’est pas du tout de ce genre de choses que je parle.
Les outils dont je parle ici sont des moteurs de recherche dont la vocation est spécifiquement d’exploiter des données en RDF et en particulier les données présentes dans le Linked Data.
Sindice est un moteur de recherche qui permet d’exploiter des données publiées en RDF, qu’elles se trouvent dans des triple stores, dans des fichiers RDF, ou dans des pages HTML sous forme de métadonnées (microformats ou RDFa – pour en savoir plus sur RDFa, cliquez ici). Sindice surveille, collecte et indexe ces données (apparemment il opère aussi des fonctions de raisonnement mais je ne sais pas lesquelles). Ensuite, il met à disposition tout cela sous forme d’API pour qu’on puisse l’utiliser dans une autre application. Sindice est une des briques essentielles du Web of data car il va permettre de trouver les triples que l’on veut mettre dans les interfaces d’accès (voir ci-dessous).
Après, il existe d’autres moteurs de recherche qui exploitent les données en RDF mais je ne les ai pas tous vus en détail, et ils ont été écartés du « billion triple challenge » pour la même raison que Virtuoso. J’ai par exemple pas mal entendu parler de SWSE (paper), un moteur orienté objet qui fournit un point d’accès en SPARQL (ce que ne fait pas Sindice).

Les interfaces de navigation
C’est dans cette catégorie que je vais ranger les deux gagnants du Semantic Web Challenge.
Dans la catégorie « billion triple », c’est SemaPlorer qui l’emporte. Il s’agit d’une interface d’exploration de données en RDF qui démarre avec de la géolocalisation et continue avec de la navigation à facettes. Vous pouvez regarder la démo sous forme de vidéo sur le site : c’est assez séduisant en termes de fonctionnalités. Enfin évidemment, ce qui a surtout pesé dans le résultat c’était l’architecture sous-jacente, avec du cloud computing d’Amazon (EC2), et 25 triple stores distincts qui sont fédérés par un point d’accès SPARQL, NetworkedGraphs. Le résultat est donc assez bluffant mais plutôt moche.
On ne peut pas en dire autant du gagnant de l’open track : Paggr. Imaginez un genre de Netvibes, mais dans lequel toutes les données seraient converties en RDF pour pouvoir être reliées et exploitées en déchaînant toute la puissance du Web sémantique. Bah, je vois bien que vous n’arrivez pas à imaginer ;-) alors regardez la vidéo, et je vous raconte juste le truc qui m’a le plus bluffée : quand il a glissé le nom d’un de ses contacts sur le widget Google maps, et qu’en analysant je ne sais quelles données ça lui a localisé la personne…
Un petit dernier pour la route : Freebase Parallax, une interface à facettes pour naviguer dans les données de Freebase. Elle est vraiment pas mal celle-là.

Inclassables et inoubliables
Je ne peux pas arrêter ce billet déjà beaucoup trop long sans évoquer les deux projets qui sont peut-être les plus riches d’enseignements pour notre communauté.
Le premier a reçu le 3e prix dans l’open track, il s’agit de Health Finland. Il s’agit d’une sorte de portail qui donne accès à une masse hétérogène d’informations médicales en Finlande. Son objectif est de faire se rencontrer les requêtes des citoyens internautes avec des données très structurées et modélisées dans des vocabulaires professionnels parfois hermétiques. Pour cela, il ont modélisé les différents vocabulaires professionnels en SKOS et les ont alignés avec une ontologie de haut niveau qui, elle, utilise un vocabulaire « grand public ». C’est vraiment une approche très convaincante.
ClioPatria n’a pas été présenté dans le Challenge mais on nous en a parlé dans les lightening talks (voir mon twitter) ainsi que dans la présentation du projet e-culture dont j’avais parlé dans ce billet. J’adore toujours autant le projet, et je ne suis pas la seule car il a été assez remarqué dans les « best papers awards ». Donc, il utilise ClioPatria, une plateforme de navigation dans des données en RDF qui utilise le concept de facettes mais aussi les requêtes SPARQL et un système de clustering assez séduisant. On a également appris qu’il allait être utilisé par Europeana.

J’aimerais bien continuer à vous raconter mais ce billet m’a épuisée… Je pense que je vais laisser de côté les outils pour passer à autre chose. De toutes façons, il sera toujours temps d’y revenir plus tard dans un billet plus détaillé sur l’un ou l’autre.