Projet MIF18

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.

Import/Export XML

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.

Import/Export RDF

L'import/export au format RDF s'appuiera sur la bibliothèque ARQ, en particulier sur l'API RIOT.

Projet de départ

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.

Modalités de rendu

Le projet est à réaliser par groupes de un à deux étudiants (pas trois). Il est demandé d'envoyer un fichier .zip1) à emmanuel.coquery@liris.cnrs.fr contenant:

  • Le projet Java pour l'application à réaliser (cf ci-dessous)
  • Un fichier README.txt contenant:
    • le noms et numéros d'étudiants du/des membre(s) du groupe.
    • La liste des prédicats RDF utilisés, ainsi que les conventions de nommage permettant de fabriquer les URI des objets du graphe RDF.
    • Tout commentaire qui vous semble utile à porter à la connaissance du correcteur.

La date de rendu est fixée au 10 décembre 2012 à 23h59. Une soutenance aura éventuellement lieu le 10/12/2012, à confirmer.

Application Java à réaliser

Il s'agit d'une application en ligne de commande ayant le comportement suivant:

  • Si le switch –import <fichier> est utilisé, importer les données du fichier dans la base de donnée
  • Si le switch –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: .xmlXML, .n3 → NTriples.
  • Si le switch –dburl <url> est utilisé, remplacer la connexion à la base de donnée par défaut par celle fournie via l'url
1)
pas de rar ou autre format d'archive