INU3011 Documents structurés

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