C’est à une rencontre programmée que je vous convie ce soir, vous savez ces rendez-vous arrangés dont on est sûr et certain de l’issue, la rencontre d’Ubiquity et de Sparqlbot.
Commençons par la présentation de nos deux protagonistes :
Comme vous le pouvez le constater par vous-mêmes, leurs points communs étaient trop flagrants pour ne pas les faire se rencontrer. C’est justement ce que vient de faire Benjamin Nowack, en mettant à disposition une commande Ubiquity qui permet d’interroger SparqlBot et de recevoir la réponse sous la forme d’une petite pop-up qui s’affiche en haut de la page Web.
Non, il ne s'agit pas de faire un guide des parcs parisiens les plus accueillants pour votre nouveau compagnon à quatre pattes que vous auriez malicieusement appelé du nom de la recommandation la plus importante du W3C depuis XML, mais plutôt une liste non exhaustive des Sparql endpoint que vous pouvez interroger librement sur le Web. Les différentes interfaces que je vais présenter sont mis à disposition dans le cadre du projet Linking Open Data (ou LOD) coordonné par le W3C.
Ce projet vise à exposer sur le Web des données structurées avec les technologies du Web sémantique, en particulier RDF et Sparql, suivant les quatre principes du Linked Data édictés par Tim Berners-Lee et rappelés dans ce guide ou cette présentation, soit :
Il y a un peu plus d'un an, dans le but de montrer les possibilités des technologies du Web sémantique?, en particulier RDFa?, j'avais mis au point une petite application, la knowledge box, qui donnait la définition récupérée depuis Dbpedia de termes encodées en RDFa avec la propriété owl:sameAs et une URI? de Dbpedia. Cette première version relevant de la bidouille, il était difficile de récupérer le code pour l'intégrer dans un autre site sous Drupal ? ou d'autres CMS?.
La mise à disposition par Arto Bendiken d'une première version (Alpha ! attention donc en production) des modules RDF API et SPARQL pour Drupal 6 m'a permis d'améliorer le code de la knowledge box et d'en faire un vrai module drupal. Pour les (heureux !) utilisateurs de Drupal 6, il vous suffit donc de récupérer l'archive et de décompresser les fichiers dans le répertoire Modules.
Dans un précédent billet, Iamhondjack notait avec justesse en commentaire qu'il ne fallait pas dissocier SPARQL et SQL de manière aussi stricte que je pouvais le faire. Il appuie son propos sur l'expérience de D2R server qui permet d'interroger une base de données relationnelles en SPARQL grâce à un mapping entre la modélisation de la base de données relationnelles et le modèle de graphe. Dans la foulée, Christian pose la question essentielle à savoir la performance et le temps de réponse.
Il semble que la question du stockage des triples RDF soit dans l'air du temps ce qui est logique, eu égard, à l'intérêt grandissant du Web of data. Ainsi, même si Tim Berners-Lee donnait déjà des premiers éléments de réponse dès 1998 dans un document intitulé Relational Databases and the Semantic Web (in Design Issues), un workshop organisé par le W3C et intitulé « RDF Access to Relational Databases » a permis de faire récemment le point sur la question. Une des conclusions de ce workshop est la nécessité de mettre au point une procédure normalisée de benchmark pour les triple store RDF sur le modèle de TPC pour les bases de données relationnelles.
Preuve supplémentaire de la maturité du Web of data, nous disposons, à l'instar de son grand frère le Web, de navigateurs et de moteurs de recherche spécialisés ne requérant aucune compétence particulière.
Petite revue de détail, en commençant par les navigateurs.
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.
Saviez-vous qu'Emma Watson, alias Hermione Granger dans les adaptations au cinéma d'Harry Potter, est née à Paris ?
Pour ma part, je l'ai découvert en mettant au point une autre série d'exemples d'utilisation de Dbpedia, en m'interressant cette fois-ci aux personnes. Le principe est simple, vous choisissez dans la liste la ville qui vous intéresse, par exemple, Paris et vous découvrirez les différentes personnes nées dans cette ville et présentes dans Dbpedia, c'est à dire dans Wikipédia. La mise en forme et la navigation dans la page de résultat est assurée par l'excellent logiciel/script du projet Simile, Exhibit. J'ai volontairement limité la liste des villes, car le principe est toujours le même. J'en ai profité pour placer un lien directe vers cette page depuis la carte des capitales européennes.
Il y a quelques mois, je titrais mon billet présentant Dbpedia : « Dbpedia ou la puissance du RDF au profit du savoir ». Mis à part deux exemples très simples qui, d'ailleurs, ne fonctionnent plus aujourd'hui avec la nouvelle version de Dbpedia, cette affirmation restait toute théorique.
Pierre Lindenbaum, quant à lui, avait mis au point un exemple plus probant : Wikistory, qui présentait les biographies des scientifiques célèbres présents dans Dbpedia.
A l'occasion de la nouvelle version de Dbpedia, je me suis remis au boulot et j'ai mis au point quelques exemples qui, je l'espère, montreront tout l'intérêt de disposer de données structurées, disponibles sous une forme normalisée, RDF, et interrogeable via un langage de requête et un protocole normalisé, SPARQL. Bref, montrer l'intérêt des technologies du Web sémantique.
Sur ce mini-site, je vais donc rassembler différents exemples. J'ai pour l'instant deux exemples :
Avec l'initiative Linked data dont Dbpedia est l'exemple le plus représentatif, nous disposons d'une masse de données structurées de plus en plus importantes. Peu à peu se constituent sur le Web des entrepôts de données décentralisées, mais reliées par l'utilisation de RDF et de la propriété OWL « sameAs ».
Par exemple : la notice Paris dans Dbpedia est reliée à la notice Paris dans Geonames via le triple suivant :
<rdf:Description rdf:about="http://dbpedia.org/resource/Paris">
<owl:sameAs rdf:about="http://sws.geonames.org/2988507/"/>
</rdf:Description>
De cette façon, vous pouvez interroger de toutes les informations de Dbpedia et de Geonames sur la ressource « Paris ». Les applications sont très nombreuses, comme par exemple ma knowledge box (qui semble fonctionner cahin-caha, il faudra que je regarde cela) ou d'autres, comme le montre cet article.
Preuve de la maturité des technologies et des standards du Web sémantique, les chercheurs et promoteurs du domaine vont à la rencontre d'autres communautés pour leur proposer de nouvelles applications, des idées, des tutoriaux, leurs expertises... Bref, des rencontres se produisent qui amènent des projets qui montrent chaque jour un peu plus la pertinence du modèle. Voici une petite sélection repérée ces derniers jours.