Ce projet est un projet alternatif au projet multimif, à destination des étudiants qui ne font pas MIF17; MIF16 et MIF13.
On considère le schéma relationnel du TP ORM.
L'objectif du projet est de créer une application permettant l'import/export de ces données au format XML et RDF/Turtle.
On supposera que les volume des données nécessite un traitement de celles-ci en flux, c'est à dire qu'on ne veut pas avoir toute la base de données chargée en mémoire.
Les fichiers XML lu à l'import et générés par l'export doivent être valide vis-à-vis du schéma suivant: films.xsd.
On utilisera l'API SAX pour lire ces fichiers. Voir les packages org.xml.sax et org.xml.sax.helpers. Ajout de faits en base de donnée se fera au choix via JDBC ou via l'ORM.
Pour l'écriture des fichiers, on passera par la génération de XML via les fonctions SQL. Pour récupérer les données côté Java, on pourra s'inspirer du TP XML-JDBC de 2011.
L'import/export au format RDF s'appuiera sur la bibliothèque ARQ, en particulier sur l'API RIOT.
Un projet de départ est fourni dans l'archive prj-mif18-2012.zip. Il s'agit d'un projet maven incluant les dépendances vers le driver PostgreSQL et la bibliothèque ARQ. Il contient un test JUnit ARQTest
avec du code exemple pour les entrées/sorties RDF utilisant ARQ/RIOT.
Le projet fourni est préconfiguré pour générer une archive target/prj-mif18-1.0-SNAPSHOT-jar-with-dependencies.jar
exécutable directement avec:
java -jar chemin/vers/prj-mif18-1.0-SNAPSHOT-jar-with-dependencies.jar arg1 ... argn
C'est la classe App
fournie dans ce projet qui sert de point d'entrée.
Le projet est à réaliser par groupes de un à deux étudiants (pas trois). Il est demandé d'envoyer un fichier .zip
1) à emmanuel.coquery@liris.cnrs.fr contenant:
La date de rendu est fixée au 10 décembre 2012 à 23h59. Une soutenance aura éventuellement lieu le 10/12/2012, à confirmer.
Il s'agit d'une application en ligne de commande ayant le comportement suivant:
–import <fichier>
est utilisé, importer les données du fichier dans la base de donnée–export <fichier>
est utilisé, exporter les données de la base de données vers le fichier dans le format dépendant de l'extension du fichier: .xml
→ XML, .n3
→ NTriples.–dburl <url>
est utilisé, remplacer la connexion à la base de donnée par défaut par celle fournie via l'url