Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
enseignement:bdav:projet:2012 [2012/11/13 13:28]
ecoquery créée
enseignement:bdav:projet:2012 [2012/11/15 17:21] (Version actuelle)
ecoquery
Ligne 9: Ligne 9:
 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. 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: {{:enseignement:bdav:projet: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 [[http://liris.cnrs.fr/emmanuel.coquery/dokuwiki.old/doku.php?id=enseignement:bdav:tp-apis-xml-jdbc|XML-JDBC]] de 2011.
 +
 +===== Import/Export RDF =====
 +
 +L'import/export au format RDF s'appuiera sur la bibliothèque [[http://jena.apache.org/documentation/query/index.html|ARQ]], en particulier sur [[http://jena.apache.org/documentation/io/riot.html|l'API RIOT]].
 +
 +===== Projet de départ =====
 +
 +Un projet de départ est fourni dans l'archive {{:enseignement:bdav:projet: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: <code shell>java -jar chemin/vers/prj-mif18-1.0-SNAPSHOT-jar-with-dependencies.jar arg1 ... argn</code>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 ''**.zip**''((pas de rar ou autre format d'archive)) à [[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: ''.xml'' -> XML, ''.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