INU3011 Documents structurés Cours 12 Hiver 2015 C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 1 Plan • Publication web de documents XML – Dans le cours: • Publication web – Protocole • Ensuite: en laboratoire C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 2 Publication web de documents XML • Deux scénarios – Publication statique • "Exportation" nécessaire: génération automatique de pages web en HTML (habituellement en lot) – Doit être refaite après chaque modification – Publication dynamique • Une BD est dynamiquement accessible par le web • Pas d'exportation à refaire à chaque modification C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 3 Post-indexation du HTML • La publication statique n'empêche pas de post-indexer le HTML généré avec un Service public d'indexation asynchrone à distance (Remote Search Hosting Service) comme FreeFind – Permet d’inclure un formulaire de recherche dans le site web généré – Mais la recherche ne peut pas exploiter la structure des documents XML originaux C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 4 Bases de données XML • Structure générale • XQuery • Extensions pour recherche textuelle • Exemple: eXist <http://exist.sourceforge.net/> • Autres exemples: – Apache XIndice <http://xml.apache.org/xindice/> – MonetDB/XQuery <http://monetdb.cwi.nl/XQuery/> – BaseX <http://basex.org/> C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 5 Structure générale • Très analogue à un système de fichiers – Naturel pour une approche orientée documents et information • Les différentes "fiches" (unités principales d'information) peuvent être dans un seul document ou dans des documents séparés • eXist: "collections" et "sous-collections" C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 6 XQuery (1/2) • XML Query (XQuery) • Statut normatif – XQuery 1.0: An XML Query Language (Second Edition) • W3C Recommendation 2010-12-14 – XQuery and XPath Full Text 1.0 (extensions) • W3C Recommendation 2011-03-17 – XQuery 3.0: An XML Query Language • W3C Recommendation 2014-04-08 C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 7 XQuery (2/2) • Langage normalisé d'interrogation pour bases de données XML • Au cœur de: – XQuery 1.0: XPath 2.0 (dont XPath 1.0 est un sous-ensemble) – XQuery 3.0: XPath 3.0 N.B.: Il n'y a jamais eu de XQuery 2.0 C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 8 eXist • • • • Implantation en Java Très facile d'installation Peut être "connecté" à oXygen Extensions pour recherche dans le texte intégral • Accès web intégré à la BD • Aspect négatif: quelques bogues non négligeables C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 9 eXist et web: architecture Disque rigide Fichiers HTML et PHP Fichiers PHP Serveur Web Données BD eXist Documents XML HTML Interprète PHP Requêtes Navigateur Web C12 - 2015-04-13 Alimentée à l'aide du client eXist Copyright © 2015 Yves Marcoux - Reproduction interdite 10 Publication web dans le cours (1/2) • Partie A: scénario statique – Traitements en lot (avec ant et saxon) pour • Validation • Préparation à la Partie B (résolution des appels d'entités) • Stylage (génération automatique du HTML) – Copie des fichiers HTML vers votre site web gin-ebsi – N.B.: Pas de post-indexation du HTML C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 11 Publication web dans le cours (2/2) • Partie B: scénario dynamique – BD XML: eXist – Extensions pour la recherche en texte intégral – Dans le cours: interrogation seulement, pas de mises à jour dynamiques • En général, cependant, les mises à jour dynamiques à partir du web sont possibles – Adaptation d'une application PHP qui vous est fournie C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 12 Formulation de requêtes (1/3) • Trois boîtes de recherche – Correspondant à trois types de requêtes • Type 1: – Recherche sur le texte intégral des documents – Retourne des documents complets C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 13 Formulation de requêtes (2/3) • Type 2: – Expression XPath absolue – Retourne des documents complets – Retourne l'ensemble des documents pour lesquels l'expression XPath retourne un résultat non vide; exemples: • //statut • /fiche/statut[. = 'complété'] C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 14 Formulation de requêtes (3/3) • Type 3: – Expression XPath absolue – Retourne des parties de documents – Retourne, pour chaque document, toutes les parties du document extraites par l'expression XPath; exemples: • /mémo/auteur • //contributeur[@type = 'parolier'] C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 15 Fonction ft:query (1/3) • eXist ajoute une nouvelle fonction XPath pour la recherche en texte intégrale: ft:query • La première boîte de recherche est basée sur cette fonction • Fonctionne comme contains, mais permet des opérateurs (booléens, proximité, etc.) et ne tient pas compte de la casse des lettres – Documentation après la 1e boîte de recherche dans l'application PHP C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 16 Fonction ft:query (2/3) • Exemple: • – On cherche Julia Royer dans <AUTEUR>: <AUTEUR>Royer, Julia</AUTEUR> //AUTEUR[contains(., 'royer, julia')] rien ! – contains exige une concordance parfaite • //AUTEUR[ft:query(., 'julia AND royer')] C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite OK 17 Fonction ft:query (2/3) • N.B.: Vous n’avez pas à utiliser vousmêmes la fonction ft:query, vous n’avez qu’à inscrire dans la boîte 1 une requête en texte intégral qui respecte la syntaxe expliquée sous la boîte 1 C12 - 2015-04-13 Copyright © 2015 Yves Marcoux - Reproduction interdite 18
© Copyright 2024