Isabelle Kervella - Mastère ISIC1 Méta-calendrier automatique pour portail www Projet d’ingénierie Mars 2002
Isabelle Kervella - Mastère ISIC2 Plan Situons le contexte... Compréhension du besoin Analyse fonctionnelle Solutions techniques proposées
Isabelle Kervella - Mastère ISIC3 Situons le contexte...
Isabelle Kervella - Mastère ISIC4 Compréhension du besoin Ce projet couvre plusieurs aspects : 4 l’extraction des données 4 le stockage des données 4 le nettoyage des données 4 la représentation visuelle des données 4 le paramétrage de la collecte / l’administration
Isabelle Kervella - Mastère ISIC5 Analyse fonctionnelle
Isabelle Kervella - Mastère ISIC6 Solutions techniques retenues Le format HTML est adapté : à la présentation de documents à la navigation entre les pages publiées sur le web cependant… il n’offre pas : une présentation structurée des données BILAN : les informations au format HTML sont difficiles à capturer par des parsers grammaticaux ordinaires La solution proposée : le WRAPPING
Isabelle Kervella - Mastère ISIC7 Solutions techniques retenues Choix du Wrapper : Araneus il combine les avantages : d’une approche déclarative, basée sur une grammaire, et la flexibilité d’une programmation procédurale cette particularité lui permet de traiter efficacement les hétérogénéités et les exceptions. Il permettra de recueillir les données dans un fichier XML.
Isabelle Kervella - Mastère ISIC8 Solutions techniques retenues Présentation de l’outil par l’exemple Format HTMLFormat XML
Isabelle Kervella - Mastère ISIC9 Solutions techniques retenues Écriture de la grammaire (fichier nf) HTML : Fest-deiz Grammaire nf : $TypeEvt { out.print(" XML : <Evenement Type="Fest-deiz" En complément, consulter le tutorial fourni avec la documentation d’Araneus !
Isabelle Kervella - Mastère ISIC10 Solutions techniques retenues Extraction des données : les principales commandes calendrier.nf java mwg trads\NFFiles\calendrier.nf calendrier.java Wrapper calendrier.java calendrier.xml java calendrier S trads\html\capture.htm > calendrier.xml Cette commande produit dans le répertoire courant un wrapper appelé calendrier.java à partir des spécifications décrites dans le fichier calendrier.nf Cette commande wrappe le document source (fichier stocké localement ou URL), extrait les données et retourne le résultat dans un fichier XML.
Isabelle Kervella - Mastère ISIC11 Solutions techniques retenues Le wrapper génère en sortie un fichier xml, structuré, qui ne mélange pas l’information et la mise en forme du document. La séparation du contenu et de la forme permet d’extraire facilement les informations du document par un simple parsing.
Isabelle Kervella - Mastère ISIC12 Solutions techniques retenues Le parsing Le parseur, utilisé pour réaliser le parsing, est un programme capable de récupérer des informations contenues dans un fichier structuré, tel que XML. Principe : –on donne l’appellation de la balise –on obtient en retour la valeur comprise entre cette balise ouvrante et sa jumelle fermante Les APIs jouent le rôle d’interface et permettent d’accéder facilement aux données contenues dans le document XML.
Isabelle Kervella - Mastère ISIC13 Solutions techniques retenues Le parsing
Isabelle Kervella - Mastère ISIC14 Solutions techniques retenues Le parsing : développement d’un parseur en Java Le parseur développé utilise les APIs JAXP et DOM. La première partie du programme utilise l’API JAXP (Java API for XML Parsing) pour construire un arbre d’objets DOM. La seconde partie du programme permet de parcourir, nœud par nœud, l’arbre d’objets, afin de parser l’ensemble du fichier XML.
Isabelle Kervella - Mastère ISIC15 Conclusion Une solution au problème d’extraction... L’emploi : d’un wrappeur pour traduire un document non structuré dans un format XML, d’un parseur pour extraire l’information, constitue une solution à ce problème. Ce projet couvre plusieurs aspects. Seule la première partie a été abordée. La suite du travail... Concernant le stockage des données, deux solutions simples peuvent être envisagées : - la base de données XML - la base de données MySQL