Passez vos données d’une vue relationnelle à une vue en graphe RDF

Lynda Temal Vue relationnelle à une vue en graphe RDF

La problématique du jour va nous permettre de vous présenter un outil open source appelé ontop. Il permet de se connecter à une base de données relationnelle et de créer un graphe RDF virtuel, en peuplant l’ontologie par les données de la DB. Il est ainsi possible de faire des requêtes SPARQL et d’exploiter toute la puissance de la sémantique, en gardant les données stockées dans des DB traditionnelles.

Avant de commencer, si vous n’êtes pas familier avec ontop, voici un petit tutoriel, où vous trouverez les ressources nécessaires avec leurs instructions pour mettre en place la base de données. Vous en profiterez aussi pour télécharger Protégé, l’éditeur standard pour les ontologies.

Le but de ce billet est d’aller plus loin dans ce tutoriel, et de faire le mapping complet entre la base de données relationnelle et l’ontologie. Puis d’enrichir l’ontologie pour faire des inférences sur le type.

Étape 1

  • Chargez la base de données « books » dans une DB (mysql, h2).
  • Téléchargez Protégé avec le plug-in ontop ici.
  • Connectez Protégé à la base de données book via le plug-in ontop.

Étape 2

La figure ci-dessous représente le schéma de la base de données :

Schéma de la base de données

Étape 3

Nous allons construire une ontologie qui va nous permettre de représenter la connaissance qui est dans le schéma de la base de données relationnelle. Ainsi, après analyse des tables, nous allons créer les concepts et les relations de l’ontologie qui correspondent aux données des tables.

Dans un premier temps, nous commençons par créer les Concepts pour typer nos ressources, par exemple :

:book1 a :Book.
:writer1 a :Writer.
:Horror a :Genre.

Class hierarchy: Edition

Ensuite, il faut créer les « objects properties » qui relient les ressources avec des relations sémantiques, par exemple :

:book1 :writtenBy :writer1;
:editedBy :editor1;
editedIn :edition1.

telles que :

:writer1 a :Writer.
:editor1 a :Editor.
:edition1 a :Edition.

Object property hierarchy: editeIn

En dernier, nous créons les data properties qui relient les ressources à des valeurs littérales. Par exemple :

:book1 :bookTitle ‘La physique pour les nulles’^^xsd:string.

Data property hierarchy: editionType

Étape 4

Procédez au mapping en allant sur ontop Mappings ➜ Mapping Manager

Faire le mapping sur les livres en donnant une uri, précisant qu’il s’agit de livre et en renseignant le titre du livre.

Edit Mapping

Il faut également le faire pour les auteurs, les éditeurs, et les éditions. Puis relier les livres à leurs auteurs via la relation :writtenBy.

Ci-dessous, tous les mappings :

Mapping editor

Étape 5

Avant de pouvoir faire des requêtes, il faut lancer le raisonneur de ontop :

Reasoner : Start reasoner

Étape 6

La requête SPARQL suivante permet d’extraire les livres de fiction en renseignant, l’auteur, l’éditeur, la date de publication, le numéro d’édition et le type d’édition.

Ontop query editor : résultat de la requête

Pour faire cette requête en SQL, il aurait fallu faire 5 jointures, alors qu’en SPARQL, il suffit de suivre les liens explicites qui relient les données.

Étape 7

Si on analyse les concepts, :Editor et :Writer sont des sous-classes de la classe :Person.

Class hierarchy: Person

Maintenant, nous allons faire une requête qui va récupérer toutes les personnes, leurs noms et le type de sous-classe à laquelle ils appartiennent.

Ontop Query Editor : résultat de la requête

Le résultat retourné englobe à la fois les éditeurs et les auteurs, parce que les deux sont de type « personnes ».

Conclusion

Avec ontop, il est donc possible d’exploiter les données qui sont dans des bases de données relationnelles dans un graphe RDF virtuel, et ainsi exploiter toute la puissance des ontologies et des technologies du Web sémantique. Les requêtes SPARQL sont en prime beaucoup plus simple à écrire que celles destinées à du SQL classique, qui nécessitent des jointures pour effectuer des requêtes complexes et riches. Avantage supplémentaire : l’intégration avec d’autres bases de données ou d’autres sources hétérogènes est beaucoup plus simple avec ces technologies, qui méritent toute votre attention.

Vous aimerez aussi...