SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
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
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
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 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)
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 visualisation de documents XML. 
vue “tree” vue “plot” 
vue “table” vue “explorer” 
vue “map” 
vue “folder”
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 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>
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)
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…
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
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 peuvent être : 
○ absolus : (/div/lg[1]/l) 
○ relatifs (l/../../head) 
● Syntaxe formelle : (axe::type[predicat]) 
Exemple : child::div[contains(head, 'Chanson')]
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
Pour aller plus loin : tutoriel de Wieslaw Zielonka 
http://www.liafa.univ-paris-diderot.fr/~zielonka/Enseignement/BDAvances/2012/XML/xpath.pdf
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
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/
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.
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
XQuery : sensibilisation 3 
FLWOR = For-Let-Where-Order-Return 
Exemple 
for $variable in expression_recherche 
return 
for $titre in //TEI//text//opener 
return
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>
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”...

Contenu connexe

Tendances

Introduction à l'informatique documentaire - 2011
Introduction à l'informatique documentaire - 2011Introduction à l'informatique documentaire - 2011
Introduction à l'informatique documentaire - 2011
Sylvain Machefert
 
Html de base
Html de baseHtml de base
Html de base
krymo
 

Tendances (16)

Intégration #2 : HTML 101 : Back to Basics
Intégration #2 : HTML 101 : Back to BasicsIntégration #2 : HTML 101 : Back to Basics
Intégration #2 : HTML 101 : Back to Basics
 
xml dtd schema
xml dtd schemaxml dtd schema
xml dtd schema
 
Cours Introduction a la programmation Web ISI Ettaieb Abdessattar
Cours Introduction a la programmation Web ISI Ettaieb AbdessattarCours Introduction a la programmation Web ISI Ettaieb Abdessattar
Cours Introduction a la programmation Web ISI Ettaieb Abdessattar
 
Cours Introduction a la programmation Web ISI Ettaieb Abdessattar Chapitre 6
Cours Introduction a la programmation Web ISI Ettaieb Abdessattar Chapitre 6Cours Introduction a la programmation Web ISI Ettaieb Abdessattar Chapitre 6
Cours Introduction a la programmation Web ISI Ettaieb Abdessattar Chapitre 6
 
Introduction à XML
Introduction à XMLIntroduction à XML
Introduction à XML
 
Créer des documents accessibles RMLL 2011 AEGIS
Créer des documents accessibles RMLL 2011 AEGISCréer des documents accessibles RMLL 2011 AEGIS
Créer des documents accessibles RMLL 2011 AEGIS
 
Tout ce que le getting started mongodb ne vous dira pas
Tout ce que le getting started mongodb ne vous dira pasTout ce que le getting started mongodb ne vous dira pas
Tout ce que le getting started mongodb ne vous dira pas
 
Modèles de données et langages de description ouverts 2021-2022 - 2
Modèles de données et langages de description ouverts   2021-2022 - 2Modèles de données et langages de description ouverts   2021-2022 - 2
Modèles de données et langages de description ouverts 2021-2022 - 2
 
XML
XMLXML
XML
 
C5 Javascript
C5 JavascriptC5 Javascript
C5 Javascript
 
Introduction à l'informatique documentaire
Introduction à l'informatique documentaireIntroduction à l'informatique documentaire
Introduction à l'informatique documentaire
 
technologie web - part2
technologie web - part2technologie web - part2
technologie web - part2
 
Informatique documentaire - Cours Licence pro bib 2013
Informatique documentaire - Cours Licence pro bib 2013Informatique documentaire - Cours Licence pro bib 2013
Informatique documentaire - Cours Licence pro bib 2013
 
Introduction à l'informatique documentaire - 2011
Introduction à l'informatique documentaire - 2011Introduction à l'informatique documentaire - 2011
Introduction à l'informatique documentaire - 2011
 
Html de base
Html de baseHtml de base
Html de base
 
Java 5, un blian
Java 5, un blianJava 5, un blian
Java 5, un blian
 

En vedette

Lucibel Corporate presentation oct2011
Lucibel Corporate presentation oct2011Lucibel Corporate presentation oct2011
Lucibel Corporate presentation oct2011
Giorgio Anselmetti
 
Superivision Aéroportuaire
Superivision AéroportuaireSuperivision Aéroportuaire
Superivision Aéroportuaire
Karim Hassaouan
 
Les fils RSS : l’information au bout des doigts
Les fils RSS : l’information au bout des doigtsLes fils RSS : l’information au bout des doigts
Les fils RSS : l’information au bout des doigts
Aref Jdey
 
Pepsi Kick
Pepsi KickPepsi Kick
Pepsi Kick
M51
 
PORTIFÓLIO_LF BUILDING_LINKEDIN
PORTIFÓLIO_LF BUILDING_LINKEDINPORTIFÓLIO_LF BUILDING_LINKEDIN
PORTIFÓLIO_LF BUILDING_LINKEDIN
Luciano Fonseca
 

En vedette (20)

Google Actualités, what else ? - SEO Camp'us 2015
Google Actualités, what else ? - SEO Camp'us 2015Google Actualités, what else ? - SEO Camp'us 2015
Google Actualités, what else ? - SEO Camp'us 2015
 
Catalogue Idwatt 2016
Catalogue Idwatt 2016Catalogue Idwatt 2016
Catalogue Idwatt 2016
 
Présentation de MEODEX 2015 - Vos modules LED sur mesure
Présentation de MEODEX 2015 - Vos modules LED sur mesurePrésentation de MEODEX 2015 - Vos modules LED sur mesure
Présentation de MEODEX 2015 - Vos modules LED sur mesure
 
Lucibel Corporate presentation oct2011
Lucibel Corporate presentation oct2011Lucibel Corporate presentation oct2011
Lucibel Corporate presentation oct2011
 
Le référencement pour les developpeurs
Le référencement pour les developpeursLe référencement pour les developpeurs
Le référencement pour les developpeurs
 
Superivision Aéroportuaire
Superivision AéroportuaireSuperivision Aéroportuaire
Superivision Aéroportuaire
 
Formation web
Formation webFormation web
Formation web
 
Les fils RSS : l’information au bout des doigts
Les fils RSS : l’information au bout des doigtsLes fils RSS : l’information au bout des doigts
Les fils RSS : l’information au bout des doigts
 
Html
HtmlHtml
Html
 
Promenades et randonnées autour de Sainte-Maxime
Promenades et randonnées autour de  Sainte-MaximePromenades et randonnées autour de  Sainte-Maxime
Promenades et randonnées autour de Sainte-Maxime
 
Pepsi Kick
Pepsi KickPepsi Kick
Pepsi Kick
 
APARTAMENTO PRONTO PARA MORAR - Alameda Morumbi -96m2
APARTAMENTO PRONTO PARA MORAR - Alameda Morumbi -96m2APARTAMENTO PRONTO PARA MORAR - Alameda Morumbi -96m2
APARTAMENTO PRONTO PARA MORAR - Alameda Morumbi -96m2
 
Spot Mr16 Led lamp
Spot Mr16 Led lampSpot Mr16 Led lamp
Spot Mr16 Led lamp
 
Catálogo Neoflash Iluminação 2016
Catálogo Neoflash Iluminação 2016Catálogo Neoflash Iluminação 2016
Catálogo Neoflash Iluminação 2016
 
Catálogo Holle Iluminação 2016
Catálogo Holle Iluminação 2016Catálogo Holle Iluminação 2016
Catálogo Holle Iluminação 2016
 
LED lighting - Iluminação LED - Dualcom
LED lighting - Iluminação LED - DualcomLED lighting - Iluminação LED - Dualcom
LED lighting - Iluminação LED - Dualcom
 
PORTIFÓLIO_LF BUILDING_LINKEDIN
PORTIFÓLIO_LF BUILDING_LINKEDINPORTIFÓLIO_LF BUILDING_LINKEDIN
PORTIFÓLIO_LF BUILDING_LINKEDIN
 
Leds
LedsLeds
Leds
 
French www.lumin-lighting.com
French www.lumin-lighting.comFrench www.lumin-lighting.com
French www.lumin-lighting.com
 
Présentation html5
Présentation html5Présentation html5
Présentation html5
 

Similaire à Exploration et visualisation de fichiers XML avec BaseX

Similaire à Exploration et visualisation de fichiers XML avec BaseX (20)

Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
 
N. Dufournaud : XML TEI : un outil méthodologique pour la recherche en SHS. A...
N. Dufournaud : XML TEI : un outil méthodologique pour la recherche en SHS. A...N. Dufournaud : XML TEI : un outil méthodologique pour la recherche en SHS. A...
N. Dufournaud : XML TEI : un outil méthodologique pour la recherche en SHS. A...
 
Tp n 3 linux
Tp n 3 linuxTp n 3 linux
Tp n 3 linux
 
Ateliers numériques du LabexMed : LaTeX appliqué aux SHS
Ateliers numériques du LabexMed : LaTeX appliqué aux SHSAteliers numériques du LabexMed : LaTeX appliqué aux SHS
Ateliers numériques du LabexMed : LaTeX appliqué aux SHS
 
Rapport Projet Module Complexité
Rapport Projet Module ComplexitéRapport Projet Module Complexité
Rapport Projet Module Complexité
 
1 introduction
1 introduction1 introduction
1 introduction
 
Chap4_XPTAH_FR.pdf
Chap4_XPTAH_FR.pdfChap4_XPTAH_FR.pdf
Chap4_XPTAH_FR.pdf
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
XML Xpath & XSLT
XML  Xpath & XSLTXML  Xpath & XSLT
XML Xpath & XSLT
 
cour informatique niveau3 programmation en Python.pdf
cour informatique niveau3 programmation en  Python.pdfcour informatique niveau3 programmation en  Python.pdf
cour informatique niveau3 programmation en Python.pdf
 
Python.pptx
Python.pptxPython.pptx
Python.pptx
 
1- XML généralités technologies xml1.pdf
1- XML généralités technologies xml1.pdf1- XML généralités technologies xml1.pdf
1- XML généralités technologies xml1.pdf
 
Standards et outils XML
Standards et outils XMLStandards et outils XML
Standards et outils XML
 
PHP #6 : mysql
PHP #6 : mysqlPHP #6 : mysql
PHP #6 : mysql
 
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
Développement de modules pour odoo (anciennement OpenERP): exemples et exerci...
 
Rapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIXRapport des Travaux Pratiques UNIX
Rapport des Travaux Pratiques UNIX
 
Cours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptxCours_Linux_S1_Partie 2.pptx
Cours_Linux_S1_Partie 2.pptx
 
ATED 2015 - Données numériques et Mémoire par Nicolas Larrousse (Huma-Num)
ATED 2015 - Données numériques et Mémoire par Nicolas Larrousse (Huma-Num)ATED 2015 - Données numériques et Mémoire par Nicolas Larrousse (Huma-Num)
ATED 2015 - Données numériques et Mémoire par Nicolas Larrousse (Huma-Num)
 
01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf01 - Introduction à Python chaines de caractères.pdf
01 - Introduction à Python chaines de caractères.pdf
 
JAVA-IO.pdf
JAVA-IO.pdfJAVA-IO.pdf
JAVA-IO.pdf
 

Dernier

Dernier (14)

PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdfPowerPoint-de-Soutenance-de-TFE-infirmier.pdf
PowerPoint-de-Soutenance-de-TFE-infirmier.pdf
 
Àma Gloria.pptx Un film tourné au Cap Vert et en France
Àma Gloria.pptx   Un film tourné au Cap Vert et en FranceÀma Gloria.pptx   Un film tourné au Cap Vert et en France
Àma Gloria.pptx Un film tourné au Cap Vert et en France
 
Un petit coin etwinning- Au fil des cultures urbaines
Un petit coin  etwinning- Au fil des cultures urbainesUn petit coin  etwinning- Au fil des cultures urbaines
Un petit coin etwinning- Au fil des cultures urbaines
 
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptxGHASSOUB _Seance 3_ measurement and evaluation in education.pptx
GHASSOUB _Seance 3_ measurement and evaluation in education.pptx
 
Exemple de grille d'audit 5S, check liste Audit
Exemple de grille d'audit 5S, check liste AuditExemple de grille d'audit 5S, check liste Audit
Exemple de grille d'audit 5S, check liste Audit
 
Quitter la nuit. pptx
Quitter          la        nuit.    pptxQuitter          la        nuit.    pptx
Quitter la nuit. pptx
 
Texte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigéesTexte avec différentes critiques positives, négatives ou mitigées
Texte avec différentes critiques positives, négatives ou mitigées
 
Quitter la nuit. pptx
Quitter        la             nuit.   pptxQuitter        la             nuit.   pptx
Quitter la nuit. pptx
 
rapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdfrapport de stage gros oeuvre_compressed.pdf
rapport de stage gros oeuvre_compressed.pdf
 
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptxGHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
GHASSOUB _Seance 4_ measurement and evaluation in education_-.pptx
 
Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"Les débuts de la collection "Le livre de poche"
Les débuts de la collection "Le livre de poche"
 
Nathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre françaiseNathanaëlle Herbelin.pptx Peintre française
Nathanaëlle Herbelin.pptx Peintre française
 
Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024Réunion des directeurs de Jonzac - 15 mai 2024
Réunion des directeurs de Jonzac - 15 mai 2024
 
Fiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciationFiche de vocabulaire pour faire une appréciation
Fiche de vocabulaire pour faire une appréciation
 

Exploration et visualisation de fichiers XML avec BaseX

  • 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. 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. outil de collation Hyperdonat
  • 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. Atelier : balises Elle viendra <date>lundi prochain</date>. balise ouvrante balise fermante contenu
  • 6. Atelier : attributs <date when=”2014-11-25”>lundi prochain</date> valeur de l’attribut attribut
  • 7. Atelier : le corpus de travail
  • 8. Atelier : structure d’un fichier TEI
  • 9. Atelier : Corpus Morand : une structure “teiCorpus”
  • 10. Atelier : Corpus Morand, structure d’une lettre
  • 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. BaseX : prise en main Editor Query Info Result zone de saisie de requête XPath ou texte vues créer une base
  • 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. 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.
  • 16. 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…
  • 17. 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
  • 30. 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')]
  • 31. 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
  • 32. Pour aller plus loin : tutoriel de Wieslaw Zielonka http://www.liafa.univ-paris-diderot.fr/~zielonka/Enseignement/BDAvances/2012/XML/xpath.pdf
  • 33. 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
  • 34. 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/
  • 35. 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.
  • 36. 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
  • 37. XQuery : sensibilisation 3 FLWOR = For-Let-Where-Order-Return Exemple for $variable in expression_recherche return for $titre in //TEI//text//opener return
  • 38. 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>
  • 39. 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”...