39
Atelier de formation Humanités numériques (HISoMA) Séance n°2 Outil de collation du projet HyperDonat Initiation XPath / XQuery avec BaseX ENS de Lyon, 19/11/2014

Exploration et visualisation de fichiers XML avec BaseX

Embed Size (px)

Citation preview

Page 1: Exploration et visualisation de fichiers XML avec BaseX

Atelier de formation Humanités numériques (HISoMA)Séance n°2

Outil de collation du projet HyperDonatInitiation XPath / XQuery avec BaseX

ENS de Lyon, 19/11/2014

Page 2: Exploration et visualisation de fichiers XML avec BaseX

Programme

1. Présentation d’outil ○ outil de collation du projet HyperDonat par Bruno Bureau

2. Atelier pratique○ rappels XML○ prise en main de BaseX○ exercices Xpath○ exercices Xquery○ “visualisation minute” avec GoogleFusion tables

Page 3: Exploration et visualisation de fichiers XML avec BaseX

outil de collation Hyperdonat

Page 4: Exploration et visualisation de fichiers XML avec BaseX

Atelier : XML en 4 points1. XML ne sert pas à afficher les données mais à les décrire. Il ne fait

rien. Appliqué à la représentation des textes, il permet de décrire notamment leur structure (livre, section, chapitre, paragraphe, phrase, mot…)

2. Les balises ne sont pas prédéfinies : on peut librement créer ses propres balises (en fonction de la structure logique qu’on choisit de représenter par exemple)

3. On peut l’utiliser avec une “grammaire” de balises (pour donner de la rigueur et encoder avec un langage commun entre projets)

4. XML est auto-descriptif et assez facilement lisible (on peut prendre connaissance de la structure d’un corpus assez rapidement en ouvrant simplement le fichier avec n’importe quel éditeur de texte)

Page 5: Exploration et visualisation de fichiers XML avec BaseX

Atelier : balises

Elle viendra <date>lundi prochain</date>.

balise ouvrante

balise fermante

contenu

Page 6: Exploration et visualisation de fichiers XML avec BaseX

Atelier : attributs

<date when=”2014-11-25”>lundi prochain</date>

valeur de l’attribut

attribut

Page 7: Exploration et visualisation de fichiers XML avec BaseX

Atelier : le corpus de travail

Page 8: Exploration et visualisation de fichiers XML avec BaseX

Atelier : structure d’un fichier TEI

Page 9: Exploration et visualisation de fichiers XML avec BaseX

Atelier : Corpus Morand : une structure “teiCorpus”

Page 10: Exploration et visualisation de fichiers XML avec BaseX

Atelier : Corpus Morand, structure d’une lettre

Page 11: Exploration et visualisation de fichiers XML avec BaseX

BaseX : introduction

BaseX est une base de données XML native offrant de nombreuses possibilités de recherche et de visualisation de documents XML.

vue “tree” vue “plot”

vue “map”

vue “table” vue “explorer”

vue “folder”

Page 12: Exploration et visualisation de fichiers XML avec BaseX

BaseX : prise en main

zone de saisie de requête XPath ou texte

Editor

Result

Query Info

vues

créer une base

Page 13: Exploration et visualisation de fichiers XML avec BaseX

BaseX : premieres explorations 1 (vue tree)

● Activez la vue “Tree” et la fenêtre “result”

● Naviguez dans la structure TEI de noeud element en noeud element pour afficher le titre d’une lettre dans la vue result

● résultat :

teiCorpus

TEI

teiHeader

fileDesc

titleStmt

title

<title>Lettre d'Antoine à son épouse Magdeleine, 19 août 1794</title>

Page 14: Exploration et visualisation de fichiers XML avec BaseX

BaseX : premières explorations 2 (vue plot)

Corpus Morand● Affichez la vue “plot” et la fenêtre de résultats● Quels correspondants ont écrit le plus grand nombre de

lettres ?

Aide :

● Pour l’élément TEI, mettez en relation les lettres et les correspondants en utilisant comme variables :○ axe X: l’attribut @id (cf. les lettres)○ axe Y : l’élément persName (cf. les correspondants)

Page 15: Exploration et visualisation de fichiers XML avec BaseX
Page 16: Exploration et visualisation de fichiers XML avec BaseX

XPath : initiation

● XPath = XML path language

● Il sert à identifier et localiser des fragments de documents XML.

● Il décrit des chemins à prendre pour aller de la racine ou d’un noeud “local” vers le noeud recherché en suivant les filiations…

Page 17: Exploration et visualisation de fichiers XML avec BaseX

XPath : initiation

L’arbre XPath (un peu différent du précédent)

● la racine est l’élément racinedu document XML

● les noeuds sont : ○ les éléments, ○ les attributs, ○ le texte, ○ etc.*

* noeuds commentaire, processing-instruction, namespace

Page 18: Exploration et visualisation de fichiers XML avec BaseX

XPath : initiation

Exemple

Page 19: Exploration et visualisation de fichiers XML avec BaseX

structure

Page 20: Exploration et visualisation de fichiers XML avec BaseX

/body/div/head ?

Page 21: Exploration et visualisation de fichiers XML avec BaseX

/body/div/head

Page 22: Exploration et visualisation de fichiers XML avec BaseX

/body/div/lg ?

Page 23: Exploration et visualisation de fichiers XML avec BaseX

/body/div/lg

Page 24: Exploration et visualisation de fichiers XML avec BaseX

/body/div/@type ?

Page 25: Exploration et visualisation de fichiers XML avec BaseX

/body/div/@type

Page 26: Exploration et visualisation de fichiers XML avec BaseX

/body/div/lg/l[@n=”2”] ?

Page 27: Exploration et visualisation de fichiers XML avec BaseX

/body/div/lg/l[@n=”2”]

Page 28: Exploration et visualisation de fichiers XML avec BaseX

//l[@n > 9] ?

Page 29: Exploration et visualisation de fichiers XML avec BaseX

//l[@n > 9]

Page 30: Exploration et visualisation de fichiers XML avec BaseX

Xpath : à savoir

● un chemin de localisation retourne un node-set (ensemble non ordonné de noeuds)

● Les chemins peuvent être :○ absolus : (/div/lg[1]/l)○ relatifs (l/../../head)

● Syntaxe formelle : (axe::type[predicat])

Exemple : child::div[contains(head, 'Chanson')]

Page 31: Exploration et visualisation de fichiers XML avec BaseX

Axes

● ancestor:: tous les ascendants (parent, grand-parent etc.) du noeud courant● ancestor-or-self:: les ascendants + le noeud courant● attribute:: les attributs du noeud courant● child:: tous les enfants du noeud courant● descendant:: tous les descendants (enfants, petits-enfants, etc.) du noeud

courant● descendant-or-self:: descendants + le noeud courant● following:: les noeuds après le noeud courant dans l’ordre de document mais qui

ne sont pas les descendants du noeud courant● following-sibling:: les frères à droite du noeud courant● parent:: le parent● preceding:: tous les noeuds à gauche du noeud courant à l’exception des

ascendants● preceding-sibling:: les frères à gauche du noeud courant● self:: le noeud courant

Page 32: Exploration et visualisation de fichiers XML avec BaseX

Pour aller plus loin : tutoriel de Wieslaw Zielonka

http://www.liafa.univ-paris-diderot.fr/~zielonka/Enseignement/BDAvances/2012/XML/xpath.pdf

Page 33: Exploration et visualisation de fichiers XML avec BaseX

XPath : à vous de jouer

● Comptez le nombre de lettres du corpus

● Combien Antoine et Antoinette Morand ont-il écrit de lettres ?

● Regardez la vue “tree” de ces résultats pour voir la répartition sur l’ensemble du corpus

Page 34: Exploration et visualisation de fichiers XML avec BaseX

XPath : à vous de jouer

● Recherchez tous les paragraphes des lettres

● Recherchez tous les paragraphes des lettres qui ont des éléments enfants

● Quel est le plus fréquent ? Qu’en déduire sur les centres d’intérêt de l’auteur du corpus ?

Aide :

● Allez voir la définition de cet élément dans les guidelines de la TEI : http://www.tei-c.org/

Page 35: Exploration et visualisation de fichiers XML avec BaseX

XQuery : sensibilisation

XQuery est un langage de requêtes dans des documents XML permettant d’effectuer des calculs à partir des informations extraites, et de formater les résultats dans de nouveaux documents XML ou des fragments XML.

FLWOR (prononcer flower) est une syntaxe de XQuery.

Page 36: Exploration et visualisation de fichiers XML avec BaseX

XQuery : sensibilisation 2

FLWOR = For-Let-Where-Order-Return

Modèle :

● For : itération sur une liste de fragments XML● Let : association du résultat d’une expression avec une

variable● Where : condition de sélection● Order : tri des résultats● Return : expression à retourner

Page 37: Exploration et visualisation de fichiers XML avec BaseX

XQuery : sensibilisation 3

FLWOR = For-Let-Where-Order-Return

Exemple

for $variable in expression_recherche

return

for $titre in //TEI//text//opener

return

Page 38: Exploration et visualisation de fichiers XML avec BaseX

XQuery : exercice

Remplacez les ******** par les expressions requises

for $lettre in ******************

where $lettre//persName[contains(.,’*****’)]

let $lieu := $lettre//location/placeName

let $titre := $lettre//text/body//opener/text()

group by **************

let $nbr_lettres := count($lettre)

order by ************ descending

return

<result>

<lieu>{$lieu}</lieu>

<lieu>**********</lieu>

</result>

Page 39: Exploration et visualisation de fichiers XML avec BaseX

Visualisation minute avec Google Fusion Tables

● Affichez la fenêtre ‘editor’

● Chargez la requête “morand2csv” (dossier ‘requete’)● Executez la requête puis enregistrez le résultat sous “export-

morand.csv”● Dans GoogleDrive, faites “créer > fusion table”● Choisissez “export-morand.csv”● Indiquez le caractère point-virgule (“;”) comme séparateur● Cliquez sur “next” 2 fois, puis “finish”● Dans Drive, cliquez sur la croix rouge et sélectionnez “add chart”● Sélectionnez “Network graph” dans la colonne de gauche

● Choisissez des variables à mettre en relation dans “show link between”...