Si vous avez besoin de vous convaincre de l'utilité des technologies du Web sémantique pour partager, interroger et réutiliser des données structurées, organisées et décrites dans une syntaxe normalisée, je vous engage à aller visiter le site Dbpedia. Ce site, dont Marlène et d'autres ont parlé récemment, est un bon exemple du potentiel de RDF et de Sparql.
Mais, avant de vous proposer quelques tests concrets, de quoi s'agit-il ? Dbpedia est un projet mené par des chercheurs de deux universités allemandes (Berlin et Leipzig). Leur but est d'extraire les informations de Wikipedia et de les rendre disponibles dans un format permettant des requêtes complexes sur des entrepôts de données constitués. La démarche est donc différente de Semantic mediawiki, dont j'ai déjà parlé, puisqu'il s'agit ici de récupérer l'information déjà disponible dans Wikipedia. De ce point de vue, il se rapproche plus du projet de la société System One. Mais, à la différence de cette dernière qui reprend toutes les informations, les chercheurs de Dbpedia ne récupèrent « que » les informations présentes dans les « infobox ». Les infobox rassemblent, sur le côté droit de l'article, un certain nombre d'informations de manière à peu près normalisée. Les chercheurs ont extrait ces informations, les ont transformées en RDF et les ont intégrées à un entrepôt RDF.
Donc, pour répondre à la question de Marlène : les données de wikipedia sont stockées dans une base de données relationnelles, mais, dans cette base, elles sont assez peu structurées, l'essentiel de la structuration étant assuré par le HTML. Un script aspire les pages de Wikipedia, les analyse automatiquement, dès qu'il trouve une « infobox », il transforme les informations de l'infobox en RDF/XML suivant une ontologie mis au point pour chaque type d'objet. Ces données en RDF/XML sont ensuite stockées dans un entrepôt spécialisé pour pouvoir les interroger en Sparql, le langage de requêtes de RDF.
L'intérêt est double :
Disposer d'informations très structurées de manière normalisée ;
Utiliser RDF pour permettre des interrogations en Sparql.
Concrètement, que peut-on faire à partir de cela ? Plein de choses, il n'y a que votre imagination et vos connaissances en programmation qui vous arrêteront (et le temps aussi...). Vous pouvez faire appel très facilement aux données de wikipedia depuis un autre site : un peu d'ajax, un peu de sparql, un peu de Web services et au passage de la souris sur un nom de personne, vous pouvez faire apparaître dans une info-bulle la date de naissance, la date de mort... de cette personne. Vous pouvez aussi interroger le dépôt en agrégeant les déclarations, c'est à dire les phrases simples sous la forme Sujet Prédicat Objet à la base de RDF. C'est le cas dans l'exemple que j'ai construit qui est très simple, mais pourrait être facilement amélioré : vous choisissez le prédicat et l'objet et vous disposez des résultats. C'est un peu la même idée développée par Leipzig pour son constructeur de requêtes de Wikipedia. On peut aussi imaginer la construction de frise chronologique automatique à partir des données de Wikipedia grâce à Timeline, script mis au point par le Simile project. C'est ce que j'ai fait dans ce deuxième exemple, à partir de la requête des personnes nées à Paris. Dans le même ordre d'idée, les chercheurs de Berlin ont utilisé le script exhibit, toujours du simile project, pour construire ce site autour des personnes nées à Londres. Ces quelques exemples très simples prouvent que le schéma et la démarche sont intéressants et ouvrent la voie à des mashups absolument géniaux (et avec le nouveau Yahoo Pipes, ça semble plus facile) et cela grâce aux technologies du Web sémantique. En plus, ce projet est une bonne occasion de découvrir Sparql grâce à l'explorateur Sparql en AJAX mis à disposition sur Dbpedia. Amusez-vous bien !!
Commentaires
De rien, je suis toujours heureux de voir que mes billets peuvent servir.
Effectivement, la contextualisation d'un triple n'est pas forcément évidente en RDF (Topic maps proposait aussi sur ce point une méthode native pour traiter ce point). Il existe malgré tout un moyen nommé "réification" qui consiste à écrire un triple sur un triple. Concrètement, le triple initial devient sujet du second sur lequel on peut faire porter un prédicat, dans le cas que tu exposes, une propriété date et un objet, dans ton cas, une date proprement dite. Néanmoins, il existe pas mal de débats sur la question de la réification en RDF, essentiellement pour des questions de traitement, si j'ai bien compris. Pour en savoir plus, sur la question, cf. http://www.w3.org/TR/rdf-primer/#reification.
Alex, si tu passes dans le coin, n'hésite pas à donner des précisions sur la question, je suis preneur aussi ;-)