Atelier de formation 
Humanités numériques 
(HISoMA) 
Séance n°2 
Outil de collation du projet HyperDonat 
Initiation XPat...
Programme 
1. Présentation d’outil 
○ outil de collation du projet HyperDonat par Bruno Bureau 
2. Atelier pratique 
○ rap...
outil de collation Hyperdonat
Atelier : XML en 4 points 
1. XML ne sert pas à afficher les données mais à les décrire. Il ne fait 
rien. Appliqué à la r...
Atelier : balises 
Elle viendra <date>lundi prochain</date>. 
balise ouvrante 
balise fermante 
contenu
Atelier : attributs 
<date when=”2014-11-25”>lundi prochain</date> 
valeur de l’attribut 
attribut
Atelier : le corpus de travail
Atelier : structure d’un fichier TEI
Atelier : 
Corpus Morand : une 
structure “teiCorpus”
Atelier : 
Corpus Morand, structure 
d’une lettre
BaseX : introduction 
BaseX est une base de données XML native offrant de nombreuses possibilités de 
recherche et de visu...
BaseX : prise en main 
Editor 
Query Info 
Result 
zone de saisie de requête XPath ou texte 
vues 
créer une base
BaseX : premieres explorations 1 (vue tree) 
● Activez la vue “Tree” et la fenêtre “result” 
● Naviguez dans la structure ...
BaseX : premières explorations 2 (vue plot) 
Corpus Morand 
● Affichez la vue “plot” et la fenêtre de résultats 
● Quels c...
XPath : initiation 
● XPath = XML path language 
● Il sert à identifier et localiser des fragments de 
documents XML. 
● I...
XPath : initiation 
L’arbre XPath (un peu différent du précédent) 
● la racine est l’élément racine 
du document XML 
● le...
XPath : initiation 
Exemple
structure
/body/div/head ?
/body/div/head
/body/div/lg ?
/body/div/lg
/body/div/@type ?
/body/div/@type
/body/div/lg/l[@n=”2”] ?
/body/div/lg/l[@n=”2”]
//l[@n > 9] ?
//l[@n > 9]
Xpath : à savoir 
● un chemin de localisation retourne un node-set 
(ensemble non ordonné de noeuds) 
● Les chemins peuven...
Axes 
● ancestor:: tous les ascendants (parent, grand-parent etc.) du noeud courant 
● ancestor-or-self:: les ascendants +...
Pour aller plus loin : tutoriel de Wieslaw Zielonka 
http://www.liafa.univ-paris-diderot.fr/~zielonka/Enseignement/BDAvanc...
XPath : à vous de jouer 
● Comptez le nombre de lettres du corpus 
● Combien Antoine et Antoinette Morand ont-il écrit de ...
XPath : à vous de jouer 
● Recherchez tous les paragraphes des lettres 
● Recherchez tous les paragraphes des lettres qui ...
XQuery : sensibilisation 
XQuery est un langage de requêtes dans des 
documents XML permettant d’effectuer des 
calculs à ...
XQuery : sensibilisation 2 
FLWOR = For-Let-Where-Order-Return 
Modèle : 
● For : itération sur une liste de fragments XML...
XQuery : sensibilisation 3 
FLWOR = For-Let-Where-Order-Return 
Exemple 
for $variable in expression_recherche 
return 
fo...
XQuery : exercice 
Remplacez les ******** par les expressions requises 
for $lettre in ****************** 
where $lettre//...
Visualisation minute avec Google Fusion Tables 
● Affichez la fenêtre ‘editor’ 
● Chargez la requête “morand2csv” (dossier...
Exploration et visualisation de fichiers XML avec BaseX
Prochain SlideShare
Chargement dans…5
×

Exploration et visualisation de fichiers XML avec BaseX

900 vues

Publié le

Atelier de formation "Humanités numériques" du laboratoire HISoMA (UMR 5189) - Séance 2 - 19/11/2014 - Exploration et visualisation de fichiers XML avec BaseX.

Publié dans : Formation
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
900
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
12
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Exploration et visualisation de fichiers XML avec BaseX

  1. 1. 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
  2. 2. 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
  3. 3. outil de collation Hyperdonat
  4. 4. Atelier : XML en 4 points 1. 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)
  5. 5. Atelier : balises Elle viendra <date>lundi prochain</date>. balise ouvrante balise fermante contenu
  6. 6. Atelier : attributs <date when=”2014-11-25”>lundi prochain</date> valeur de l’attribut attribut
  7. 7. Atelier : le corpus de travail
  8. 8. Atelier : structure d’un fichier TEI
  9. 9. Atelier : Corpus Morand : une structure “teiCorpus”
  10. 10. Atelier : Corpus Morand, structure d’une lettre
  11. 11. 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 “table” vue “explorer” vue “map” vue “folder”
  12. 12. BaseX : prise en main Editor Query Info Result zone de saisie de requête XPath ou texte vues créer une base
  13. 13. 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 teiCorpus TEI ● résultat : teiHeader fileDesc titleStmt title <title>Lettre d'Antoine à son épouse Magdeleine, 19 août 1794</title>
  14. 14. 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)
  15. 15. 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…
  16. 16. XPath : initiation L’arbre XPath (un peu différent du précédent) ● la racine est l’élément racine du document XML ● les noeuds sont : ○ les éléments, ○ les attributs, ○ le texte, ○ etc.* * noeuds commentaire, processing-instruction, namespace
  17. 17. XPath : initiation Exemple
  18. 18. structure
  19. 19. /body/div/head ?
  20. 20. /body/div/head
  21. 21. /body/div/lg ?
  22. 22. /body/div/lg
  23. 23. /body/div/@type ?
  24. 24. /body/div/@type
  25. 25. /body/div/lg/l[@n=”2”] ?
  26. 26. /body/div/lg/l[@n=”2”]
  27. 27. //l[@n > 9] ?
  28. 28. //l[@n > 9]
  29. 29. 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')]
  30. 30. 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
  31. 31. Pour aller plus loin : tutoriel de Wieslaw Zielonka http://www.liafa.univ-paris-diderot.fr/~zielonka/Enseignement/BDAvances/2012/XML/xpath.pdf
  32. 32. 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
  33. 33. 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/
  34. 34. 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.
  35. 35. 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
  36. 36. XQuery : sensibilisation 3 FLWOR = For-Let-Where-Order-Return Exemple for $variable in expression_recherche return for $titre in //TEI//text//opener return
  37. 37. 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>
  38. 38. 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”...

×