Université Claude Bernard Lyon 1- Master CCI - janvier / février 2006

Projet XML

Introduction

Dans ce projet, vous allez réaliser un petit moteur d'indexation et de recherche, capable de trouver toutes les occurrences d'un terme dans un document XML bien formé. Pour cela, vous réaliserez deux programmes : un moteur d'indexation (ou indexeur), qui parcourt des documents et stocke tous les mots trouvés dans un fichier d'index, ainsi qu'un moteur de recherche, qui parcourt le fichier d'index à la recherche des termes correspondant à la requête utilisateur.

Exemple

Fichier XML à indexer :

<?xml version="1.0" encoding="ISO-8859-1"?>
<carnet>
<entree>
<nom>Dupond</nom>
<adresse>123, rue de la moustache, Lyon</adresse>
</entree>
<entree>
<nom>Dupont</nom>
<adresse>124, rue de la moustache, Lyon</adresse>
</entree>
</carnet>

Après indexation de ce fichier, la recherche du terme "Lyon" produit :

carnet/entree/adresse :
123, rue de la moustache, Lyon
carnet/entree/adresse :
124, rue de la moustache, Lyon

Travail demandé

Applications 

Il vous est tout d'abord demandé de concevoir deux applications JAVA distinctes :

Remarque : pour chacune de ces applications, et pour chaque sous-tâche particulière de vos algorithmes, vous êtes libres d'utiliser l'API de programmation XML présentée en cours (DOM ou SAX) qui vous semble la plus pertinente. Vous justifierez ensuite ces choix dans votre rapport, en termes de facilité de programmation, rapidité de traitement, évolutivité pour les "raffinements" présentés ci-dessous...

Raffinements

Dans un deuxième temps, vous pourrez ensuite apporter à vos programmes l'une, l'autre ou les deux modifications suivantes :

Remarque : quelques conseils d'implémentation vous sont proposés pour cette étape.

Modalités

Vous travaillerez par groupes de 2 binômes, chacun réalisant l'un des deux programmes. Pour que le second binôme puisse commencer à travailler avant que le premier ait fini, il est important que vous vous mettiez d'accord sur la structure (DTD) du fichier d'index, et que vous réalisiez un exemple de ce fichier (à la main), conforme à cette structure.

Ce projet est à envoyer par mail à Lionel Médini pour le lundi 6 février. Pour cette date, vous devrez envoyer un fichier zippé contenant :

Remarques :