Intégration de données

Transcription

Intégration de données
Université de Cergy-Pontoise
M2 ISIM SIC
2013-2014
Intégration de données
- projet Le but de ce projet est de réaliser une application d’intégration de données basée sur le Web de
Données. Le projet est divisé en deux étapes, qui correspondent à la mise en place de deux
techniques d’intégration différentes.
• La première étape vise la création d’un entrepôt local, alimenté avec des données du web,
transformées pour correspondre au format d’entrée de l’entrepôt.
• La seconde étape vise l’intégration dynamique des données de cet entrepôt avec des données
du web, afin de répondre à des requêtes simples.
Etape 1
L’entrepôt sera une base de données relationnelle locale (MySQL ou autre), alimentée avec des
données obtenues depuis la source LOD « Linked Movie Database » (http://data.linkedmdb.org/),
qui contient des informations sur le cinéma : films, acteurs, réalisateurs, etc.
L’entrepôt contiendra trois tables respectant le schéma relationnel suivant :
Film (FilmURI, Titre, Réalisateur, Date, Durée)
Acteur (ActeurURI, Nom, Description)
Joue (FilmURI, ActeurURI, Personnage)
où les attributs soulignés sont des clés primaires et ceux en italique sont optionnels.
Dans la table Film on doit extraire depuis les instances de type movie:film de la source seulement
les films anglais. Dans la table Acteur on extrait depuis les instances de type movie:actor de la
source seulement les acteurs jouant dans les films anglais. Enfin, dans la table Joue on extrait
depuis les instances de type movie:performance seulement la distribution des films anglais.
Attention : la source LOD « Linked Movie Database » restreint le nombre de résultats retournés par
les requêtes SPARQL, ce qui implique que les résultats peuvent être incomplets. Il est demandé à ce
que les instances chargées dans la table Joue soit cohérentes, ce qui signifie que le film et l’acteur
sont présents parmi les films et les acteurs récupérés.
A faire pour cette première étape :
1. Décrire le mapping (la correspondance) entre les attributs de chacune des tables de
l’entrepôt et les propriétés des entités de la source LOD.
2. Donner les 3 requêtes SPARQL (une par table de l’entrepôt) qui extraient les informations
nécessaires au remplissage des tables.
3. Utiliser l’interface web SNORQL de la source LOD (http://data.linkedmdb.org/snorql/) pour
exécuter chacune des 3 requêtes, en choisissant le format XML pour les résultats.
Sauvegarder ces résultats respectivement dans les fichiers films.xml, acteurs.xml,
distributions.xml.
4. A l’aide de l’ETL Talend, créer les transformations des fichiers XML d’origine vers des
fichiers CSV pour alimenter les tables Film, Acteur et Joue. Il faut donc produire 3
transformations, chacune produisant un fichier CSV, respectivement films.csv, acteurs.csv et
distributions.csv.
5. Créer les tables Film, Acteur et Joue dans l’entrepôt et les remplir en important les fichiers
CSV produits au point précédent.
Etape 2
Ecrire un programme Java qui permet de répondre à deux types de requêtes simples, en combinant
le contenu de l’entrepôt avec celui de la source LOD « DBpedia » (http://dbpedia.org/).
Le programme doit demander d’introduire la requête comme une chaîne de caractères de la forme
"acteur = … " ou "film = …" indiquant le nom d’un acteur ou le titre d’un film. Le programme doit
afficher le résultat de la requête sous la forme suivante :
• Pour un film donné par son titre : les acteurs du film, pour chaque acteur affichant le nom, le
personnage joué et la date de naissance ;
• Pour un acteur donné par son nom : les films où il a joué, pour chaque film affichant le titre,
la date, le réalisateur, le budget et les revenus.
Les requêtes sont exécutées sur les tables de l’entrepôt, mais les résultats sont étendus avec des
informations supplémentaires issues de DBpedia : la date de naissance de l’acteur, respectivement
le budget et les revenus du film.
Le programme utilisera l’API JDBC de la base de données utilisée pour l’entrepôt (voir
http://dev.mysql.com/downloads/connector/j/ pour MySQL) et l’API Jena (http://jena.apache.org)
pour interroger le point d’accès SPARQL de DBpedia (http://dbpedia.org/sparql/). Plus
précisément, on utilisera l’API application, contenue dans le package com.hp.hpl.jena.query
(voir http://jena.apache.org/documentation/query/app_api.html).
A faire pour cette seconde étape :
1. Télécharger et installer dans l’environnement de programmation les API JDBC et Jena.
2. Explorer le contenu et les concepts de DBpedia à l’aide de l’interface d’interrogation
SPARQL accessible à l’adresse http://dbpedia.org/sparql. L’ontologie est consultable sur
http://wiki.dbpedia.org/Ontology.
3. Ecrire les requêtes paramétrées SQL sur l’entrepôt local et SPARQL sur DBpedia pour
répondre aux requêtes par film ou par acteur décrites ci-dessus.
4. Ecrire le programme Java qui exécute une telle requête et affiche les résultats.
Le travail pour ce projet se fera en binôme. La date de soutenance prévue est le 11 février 2014.
L’évaluation sera basée sur les éléments suivants :
• Un rapport en format PDF, à rendre au plus tard le 9 février 2013, par e-mail. Il doit contenir
la description du travail réalisé, incluant les éléments demandés pour chaque étape.
• Le programme Java réalisé, à rendre au plus tard la veille de la soutenance, par e-mail.
• La soutenance du projet, sous forme de démonstration des transformations Talend et du
programme Java.