ISWC 2008 (6) – les enjeux de la normalisation

Si tout le monde s’accorde à dire que la normalisation est une des grandes forces du Web sémantique, celle-ci est loin d’être un long fleuve tranquille. Le « panel » ou table ronde sur OWL 2 en était un bon exemple. J’ai entendu certains se lamenter que le fait de faire étalage des doutes, mésententes et contradictions qui existent dans la communauté autour de l’évolution normative risquait de la discréditer, mais je dois dire que je ne partage pas tout à fait cet avis. De mon point de vue, l’existence de forces contradictoires, voire de lobbys, dans un domaine normatif sont inévitables, sauf à considérer un domaine dont l’envergure est limitée et où le consensus s’impose de lui même. Il n’y a qu’à voir comment cela se passe à l’ISO TC46 où se discutent les normes du domaine de l’information. Bref, si ces normes font débat, c’est que beaucoup de gens s’y intéressent, ce qui est plutôt bon signe.

Après, en ce qui concerne la normalisation d’OWL 2, je ne suis pas sûre d’avoir perçu tous les enjeux mais en gros on peut les résumer comme cela : pour certains (notamment ceux qui ont une approche pragmatique du SemWeb dans l’esprit du Linked data), OWL est un formalisme beaucoup trop complexe et détaillé. Pour d’autres (en particulier les logiciens et tous ceux qui font des recherches sur l’aspect « raisonnement » du SemWeb), il est insuffisant et limité. Dans OWL 2, on propose un système de « profils » qui vont permettre de n’utiliser qu’un sous-ensemble de OWL tout en restant interopérable…. mais ce n’est pas simple de trouver un consensus.
L’enjeu est d’autant plus important que la tendance à l’ubiquité du Web pousse vers une utilisation très large d’OWL pour toutes sortes de besoins, alors que ce formalisme n’a jamais été conçu pour remplacer tous les modes de représentation des connaissances, pour certains prééxistants, qui peuvent être utiles dans leur diversité.

Si cela vous intéresse, je vous invite à lire les notes prises avec exhaustivité ici et l’analyse développée .

J’ai aussi participé à une intéressante discussion de couloir sur la différence entre Powder et OAI-ORE.
C’est vrai que si on s’en tient à la définition de Powder :

« a mechanism through which structured metadata (« Description Resources ») can be authenticated and applied to groups of Web resources. »

et qu’on la compare à celle d’ORE :

« Open Archives Initiative Object Reusae and Exchange (OAI-ORE) defines standards for the description and exchange of aggregations of Web resources. »

on pourrait se poser des questions.
Alors pour résumer, Powder permet de qualifier en masse des triples en s’appuyant sur des expressions régulières dans les URI. L’assertion Powder porte sur chacun des triples sélectionnés (ex. tous ces triples ont pour langue le français). Au Powder est associé un mécanisme d’authentification qui permet de prouver l’origine des assertions. Powder intègre un protocole qui permet de demander en http des infos sur une seule URI. Usage prévu : par ex., demander la taille et le type de contenu avant d’afficher un site sur un mobile.
Au contraire Oai-ore est basé sur le principe des « named graph » (graphes nommés) c’est à dire que l’assertion associée à un ensemble de triples regroupés dans une « resource map » porte uniquement sur cette « resource map » et pas sur les triples eux-mêmes (voir mon explication d’Ore ici mais c’était pas très clair et il n’était pas encore en version 1.0, il faudrait que je me replonge dedans…) En plus dans Ore il n’y a pas de protocole.
Enfin, si j’ai bien compris, la principale différence entre les deux est que Powder sert à associer des métadonnées à des URIs à posteriori (ce n’est pas le créateur de la ressource qui le fait mais un tiers). Alors que dans Ore, on structure la description de la ressource en fonction des métadonnées qu’on veut lui associer (c’est le créateur de la ressource qui associe les métadonnées). Bon ça n’a l’air de rien, mais ça change tout.
Pardon pour cette petite digression. Donc il s’agit bien de deux choses complètement différentes, et chacun va pouvoir continuer à normaliser tranquillement dans son coin. Au fait, à quand un groupe de travail pour les bibliothèques dans le Web sémantique ?

Ce billet clôt la série ISWC 2008. J’en ai fini avec mon compte-rendu, vous pouvez reprendre une activité normale, c’est-à-dire, si vous êtes un geek, retourner lire d’autres blogs plus intéressants, et si vous êtes un bibliothécaire, c’est fini, tout va bien, vous pouvez revenir ;-)

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.

ISWC 2008 (4) – Simplifier le Semantic Web – un problème d’outils ?

La communauté présente à ISWC est quand même largement (mais pas exclusivement, j’en suis la preuve vivante ;-) composée de développeurs et d’informaticiens qui, très naturellement, cherchent la solution à leurs problèmes dans les outils. Or, l’un des problèmes majeurs du SemWeb est le suivant : comment rendre simple aux yeux des utilisateurs ce qui est, de toute évidence, compliqué, à savoir la structure complexe des données qui composent le SemWeb.

L’enjeu se situe à la fois du côté de la production et de l’usage. Commençons par la production.

Je classerais les outils d’aide à la production que j’ai vus en deux catégories : les assistants à la production d’ontologies, et les interfaces de type wiki.

Les premiers, auxquels une session était consacrée, ont principalement pour objectif de permettre à des « experts métier », c’est à dire des personnes qui ont d’importantes connaissances thématiques mais pas de compétences techniques en gestion des connaissances, de produire ou contribuer à la production des ontologies de leur domaine. Je ne vais pas rentrer dans les détails, cela allait du plug-in pour travailler en collaboratif dans Protégé à un outil qui transforme du pseudo langage naturel (des phrases simples comme « there are students, professors and universities ; ‘PhD Student’ is a type of student » etc.) en classes et propriétés dans une ontologie. On peut même générer des ontologies et des triples en utilisant des feuilles de calcul.
Ce qui m’a particulièrement frappé, c’est que quelle que soit l’ingéniosité déployée par les concepteurs de ces outils pour les rendre puissants, souples, attractifs, simples, riches et bien d’autres choses encore, leur constat final était toujours le même : l’ontologie résultant de ce processus n’est pas de qualité suffisante pour permettre de l’exploiter sans l’intervention préalable d’un « knowledge engineer », un expert en ontologies.

Un peu décevant, n’est-ce pas ? Alors tournons-nous vers l’autre hypothèse, celle des wikis (ou wiki-like) sémantiques. En fait, il existe toute une gamme d’outils qui permettent de générer des données en RDF de manière plus ou moins transparente pour l’utilisateur, dans la mouvance du Web 2.0. On peut citer par exemple Semantic Media Wiki (voir aussi ici). Dans la même veine, on nous a présenté divers outils de « semantic desktop » ou de « semantic knowledge management », comme par exemple K-now qui permet de créer des ontologies sous forme de formulaires puis de créer des triples en remplissant les formulaires.
Je me réfèrerai de nouveau à l’intervention de Mark Greaves (au passage, si vous voulez savoir ce qu’il a vraiment raconté, vous pouvez lire ces notes bien plus précises que les miennes). En étudiant les wikis sémantiques on peut tirer quelques leçons essentielles :
– l’importance des interfaces utilisateurs (il faut que ce soit joli et facile à utiliser)
– l’importance du « jardinage » (il faut des gens qui font sans arrêt du petit nettoyage, sinon ça devient du grand n’importe quoi)
– les ontologies créées par les utilisateurs (du wiki) sont médiocres (elles sont moins structurées et moins riches que ce qu’on pourrait attendre)
– on est obligés de compléter la structure RDF par du langage naturel.

Bon, je ne peux pas achever ce panorama des outils de production sans parler de Freebase. Freebase a fait l’objet d’une keynote assez largement reconnue comme excellente. Freebase est une sorte de Wikipedia, mais qui repose sur des données structurées modélisées sous forme de graphe. Dans Freebase, les utilisateurs peuvent ajouter des données mais aussi agir sur la façon dont elles sont organisées (il était question de « schéma » plutôt que d' »ontologie »).

Je passe sur la description détaillée et je saute directement à la conclusion : Freebase, est-ce ou non du Web sémantique ? John Giannandrea qui présentait la keynote a lui-même posé la question, en disant que oui (parce qu’elle repose sur des données modélisées sous forme de graphe et qu’elle apporte une importance toute particulière aux URIs) et non (parce qu’elle ne contient pas d’ontologie et n’implémente pas les aspects description logique). A quoi Ivan Herman, qui pilote l’activité SemWeb au W3C, a répondu que la logique n’était pas obligatoire et que, bienvenue dans le Web sémantique.
Je ne sais pas s’ils auraient été aussi bien accueillis s’ils n’avaient pas, il y a à peine un mois, mis en place un accès à Freebase en RDF qui permet d’exploiter les données de Freebase dans le Linked Data. Voir les réserves de Got exprimées il y a un an (il vous dirait qu’ils ne font toujours pas de SPARQL et que ça craint, mais autant que je sache, SPARQL n’est pas un critère de base pour être dans le linked data ;-).
Evidemment si on s’intéresse, une fois encore, à la qualité des données et de la modélisation, on obtiendra des réponses bien naturelles comme « il vaut mieux des données inexactes que pas de données » ou « cela ne peut que s’améliorer avec le temps ». Que celui qui n’a jamais renoncé à corriger un article dans Wikipedia leur jette la première pierre…

Bref bref : c’est pas demain que n’importe qui pourra faire des ontologies. En sortant de là, je me demandais pourquoi la question (de réussir à associer des « non experts » à la production des ontologies) n’était posée qu’en termes d’outils, et pas d’une façon plus large en termes d’organisation, de ressources humaines, de montée en compétences, etc.
Ca doit être un truc de bibliothécaire, en tout cas je ne suis pas surprise de constater que n’importe qui ne peut pas modéliser des données, même avec un super outil qui fait tout tout seul (même si je pense qu’on pourrait essayer d’aider les gens en les formant).
En tout cas, d’après ce que j’ai pu entendre à plusieurs reprises, que ce soit dans les conférences ou autour d’un repas, la modélisation des données reste un des problèmes majeurs du Web sémantique aujourd’hui.