Spécification de la production des éditions synoptiques

Objectif

Automatiser la production des éditions synoptiques lors de l'import d'un corpus

Objectif max : importer des éditions du type Graal (plusieurs facettes et facsimilés)

Objectif min : associer un facsimilé à chaque page d'une édition

Méthode

Pour l'atelier on va faire des macro pour la cible minimale.

macro AddFacsAttribute

  • prend en entrée :
    • un répertoire de fichiers source XML d'un corpus
    • un répertoire d'images de facsimilé
      • les images d'un texte sont regroupées dans un dossier du nom du texte
      • l'ordre alphabétique des noms de fichiers correspond à celui des pages du texte (une macro de renommage de fichiers par regexp peut aider à séparer la partie numérique et à la préfixer par des '00')
    • tag = le nom de la balise de saut de page : 'pb' par défaut
    • attribute = le nom de l'attribut désignant les images : 'facs' par défaut
    • prefix = prefixe à ajouter au chemin vers les images, e.g. http://monsiteweb.org/img
      • si le préfixe est vide, le chemin absolu vers le répertoire des images sera utilisé
      • par défaut, le préfixe est ../img, ce qui veut dire que les sous-dossiers d'images doivent être placées dans TXM/[NOMDUCORPUS]/HTML/img
  • ajoute un attribut attribute à la balise tag.

macro FacsEditionBuilder

  • prend en entrée :
    • Une sélection d'un Corpus de la vue Corpus
    • editionName : le nom de l'édition à créer/mettre à jour
    • tag : le nom de la balise de saut de page : 'pb' par défaut
    • attribute : le nom de l'attribut désignant les images : 'facs' par défaut
    • debug : pour conserver les fichiers temporaires et afficher plus de messages
  • ajoute une édition HTML affichant les images de facsimilés dans BIN/html/facs
  • déclare l'édition 'facs' dans import.xml si on souhaite une vue synoptique

macro XSLEditionBuilder

  • prend en entrée
    • Une sélection d'un Corpus dans la vue Corpus
  • remplace l'édition HTML dans BIN/html/default (produit le même nombre de pages et les mêmes noms de fichiers pour rester compatible avec l'encodage d'import.xml)
  • Applique les XSL :
    • txm-edition-xtz.xsl
    • txm-edition-page-split.xsl
  • Paramètres
    • xslEdition : la XSL à appliquer pour créer les fichiers HTML (une page)
    • xslPages : la XSL à appliquer pour découper en page les fichiers HTML produit par la XSL xslEdition
    • editionName : le nom de l'édition à créer/modifier
    • useToeknizedDirectory : utiliser le dossier “tokenized” au lieu du dossier “txm”
    • debug : conserver les fichiers temporaires et afficher plus de messages

macro XTZEditionBuilder (cette macro sera finalisée PLUS TARD)

  • prend en entrée :
    • Une sélection d'un Corpus dans la vue Corpus
  • remplace l'édition HTML dans BIN/html/default (produit le même nombre de pages et les mêmes noms de fichiers pour rester compatible avec l'encodage d'import.xml)
  • cette édition est équivalente à celle produite par la feuille de style txm-edition-xmltok-bvh.xsl, qui effectue les transformations suivantes :
    • tei:text –>
      • référence de début de page
      • tableau des métadonnées
    • tei:p|tei:ab|tei:lg –> html:p + addClass (voir ci-dessous)
    • tei:head –> html:p + class=head
    • tei:lb –> html:br (à préciser) + class=lb + @n=n° de lb si absent
      • Créer html:a si multiple de 5 ou si n'est pas un nombre
    • tei:pb
      1. affiche les notes de la page qui précède
      2. coupe la page
      3. affiche le numéro de la page qui suit (délégué à l'auteur)
        • utiliser @n ou @facs ou [NN] si aucun
    • tei:w –> html:span avec @id, @title (tous les attributs su w concaténés) + espace blanc ou non selon les règles
    • tei:note
      • Créer une référence html:a avec le numéro de la note (global au document), @title=contenu de la note, @href=contenu de la note en bas de page
      • Stocker le contenu des notes
      • Puis au pb les écrire (voir pb)
    • le reste : on propage l'élément
    • addClass = concatenation de
      1. @class=local-name(),
      2. si @type ajouter @type
      3. si @subtype ajouter @subtype
      4. si @rend ajouter @rend

État de la plateforme

Avancement dans l'élaboration de la solution

Solution

État de l'art

Éléments de solution

Prototypes

Version finale

Documentation

Utilisateur

Développeur

Recette

Protocole de test

Alpha

Préparation
  • Copier le contenu (dossiers “scripts”, “xsl” et “css”) de l'archive dans le dossier “USERHOME/TXM”
  • Ouvrir la vue “macro”
  • Récupérer : l'archive de test ALPHA smb://ensldfs.ens-lyon.fr/services/labo_ana_corpus/Enseignement/Atelier%20Edition%20analytique/corpus/synopticeditiontest.zip qui contient des images de tests, un corpus source de test
Mise à jour automatique des sources avec des liens vers les fichiers images par l'attribut @facs des balises <pb/>
  • Lancer la macro “edition/AddFacsAttribute”
    • Remplir les paramètres :
      • dossier source : 'synopticeditiontest/aea2014b'
      • dossier d'images : 'synopticeditiontest/img'
      • dossier de sortie : 'synopticeditiontest/out' (pour la suite du test)
      • les paramètres “tag”, “attribute” et “prefix” ne sont pas à modifier
    • lancer l'Exécution
    • La console doit afficher qlqchose comme :

Execution de AddFacsAttributeMacro.groovy
Processing: 
 sourceDirectory: /home/sheiden/Corpus/synoptic/synopticeditiontest/aea2014b
 imageDirectory: /home/sheiden/Corpus/synoptic/synopticeditiontest/img
 outputDirectory: /home/sheiden/Corpus/synoptic/synopticeditiontest/out
 tag: pb
 attribute: facs
srcFiles=[/home/sheiden/Corpus/synoptic/synopticeditiontest/aea2014b/1549_DuBellayOl-b.xml, /home/sheiden/Corpus/synoptic/synopticeditiontest/aea2014b/qgraal_cm-b.xml]
Processing subdirectory: 1549_DuBellayOl-b with 10 images.
Processing subdirectory: qgraal_cm-b with 10 images.

  • Vérifier que l'attribut @facs a bien été ajouté aux balises <pb> des fichiers sources XML du répertoire 'synopticeditiontest/out'
  • Si nécessaire, copier les fichiers non-modifiés de “synopticeditiontest/aea2014b” dans “synopticeditiontest/out” (pas nécessaire pour les sources de l'archive “synopticeditiontest.zip”)
  • Remplacer les fichiers source xml du dossier d'origine 'aea2014b' par ceux du dossier 'synopticeditiontest/out'
Création de l'édition synoptique avec facsimilé
  • Importer le corpus 'synopticeditiontest/aea2014b'
    • neutraliser le nombre maximum de mots par page par défaut : dans le fichier de lancement principal du module d'import XML/w+CSV USERHOME/TXM/scripts/import/xmlLoader.groovy remplacer la valeur '300' par '9999' à la ligne 280 (cette édition peut être réalisée dans l'éditeur de texte intégré de TXM en ouvrant le fichier 'xmlLoader.groovy' à partir de la vue 'Fichier')
      [MÀJ → remplacer par 1) “Le fichier 'TXMHOME/scripts/import/xmlLoader.groovy' est mis à jour par l'installation de l'archive 2) message expliquant cela + procédure pour rétablir le fichier xmlLoader.groovy d'origine → remplacer par nouveau paramètre d'import WordsPerPage/'Mots par page' (UI paramètres+import.xml+loader.groovy+doc)]
    • lancer le module d'import XML/w+CSV sur le répertoire de sources 'synopticeditiontest/aea2014b'
      → un nouveau corpus 'AEA2014B' est ajouté
  • Sélectionner le corpus “AEA2014B”
  • Lancer la macro “FacsEditionBuilder”
    • Choisir le nom de l'édition et si nécessaire changer les paramètres “tag” et “attribute” (pas nécessaire pour les sources de l'archive “synopticeditiontest.zip”)
    • Go
  • A la fin de la macro, TXM redémarre ses moteurs et l'édition a été ajoutée, ou mise à jour si elle était déjà présente
  • La console doit afficher qlqchose comme :

Execution de FacsEditionBuilderMacro.groovy
Corpus view selection is: AEA2014B
Work directory=/home/sheiden/TXM/corpora/aea2014b/txm/AEA2014B
** Updating corpus configuration...
** Building new edition HTML files...
 Creating edition facs directory: /home/sheiden/TXM/corpora/aea2014b/HTML/AEA2014B/facs
 Build HTML pages of text=1549_DuBellayOl-b
 add page 0 w_0
 add page 1 w_0
 add page 2 w_0
 add page 3 w_1549_DuBellayOl-b_1
 add page 4 w_1549_DuBellayOl-b_153
 add page 5 w_1549_DuBellayOl-b_442
 add page 6 w_1549_DuBellayOl-b_759
 add page 7 w_1549_DuBellayOl-b_884
 add page 8 w_1549_DuBellayOl-b_1105
 add page 9 w_1549_DuBellayOl-b_1353
 add page 10 w_1549_DuBellayOl-b_1600
 Build edition references in corpus configuration
 Build HTML pages of text=qgraal_cm-b
 add page 0 w_0
 add page 1 w_0
 add page 2 w_qgraal_cm-b_1
 add page 3 w_qgraal_cm-b_455
 add page 4 w_qgraal_cm-b_902
 add page 5 w_qgraal_cm-b_1387
 add page 6 w_qgraal_cm-b_1699
 add page 7 w_qgraal_cm-b_1933
 add page 8 w_qgraal_cm-b_2422
 add page 9 w_qgraal_cm-b_2896
 add page 10 w_qgraal_cm-b_3370
 Build edition references in corpus configuration
 Saving corpus configuration...
Moteur de recherche lancé en mode mémoire.
Moteur statistique lancé.connecté.
Chargement des sous-corpus et des partitions...Terminé.
New edition created.
Terminé: 7677 ms

  • Copier le dossier 'synopticeditiontest/img' (contenant les sous-dossiers d'images par texte) dans TXM/corpora/aea2014b/HTML/AEA2014B (en tenant compte du fait que le préfixe par défaut '../img/' était donné en paramètre à la macro AddFacsAttribute)
Remplacement des éditions TXM d'origine (HTML)
  • Sélectionner le corpus “AEA2014B” [renommage → EATXT, EATEI, EATEIw]
  • Lancer la macro “XSLEditionBuilder” [renommage → EditionUpdater]
    • Aucun paramètre par défaut n'est à modifier
    • Lancer l'Exécution
  • A la fin de la macro, TXM redémarre ses moteurs et l'édition “default” (ou l'édition paramétrée par défaut dans le fichier “import.xml”) a été mise à jour
  • La console doit afficher qlqchose comme :

Execution de XSLEditionBuilderMacro.groovy
Corpus view selection is: AEA2014B
Edition name: default
XSLs: txm-edition-xtz.xsl & txm-edition-page-split.xsl

Backuping /home/sheiden/TXM/corpora/aea2014b/HTML/AEA2014B/default directory to /home/sheiden/TXM/corpora/aea2014b/HTML-default-back...
......................
Applying XSL 1: /home/sheiden/TXM/xsl/txm-edition-xtz.xsl...
-> Applying HTMLRenderer : /home/sheiden/TXM/xsl/txm-edition-xtz.xsl
..
Applying XSL 2: /home/sheiden/TXM/xsl/txm-edition-page-split.xsl...
-> Applying HTMLPageSplitter: /home/sheiden/TXM/xsl/txm-edition-page-split.xsl
..
Moteur de recherche lancé en mode mémoire.
Moteur statistique lancé.connecté.
Chargement des sous-corpus et des partitions...Terminé.
Terminé: 115447 ms

Lecture de l'édition à l'aide de l'extension "Éditeur d'édition synoptique"

S'appuyer sur la recette alpha de l'Extension “Éditeur d'édition synoptique” pour visualiser l'édition synoptique du corpus 'AEA2014B': https://groupes.renater.fr/wiki/txm-info/public/specs_editions_synoptiques_rcp#protocole_de_test

Beta

  • On se propose d'utiliser un corpus de 5 textes des BVH avec leurs facsimilés (Alexis demande à MLD).
  • On taille les sources pour pouvoir appliquer les 3 macros.
  • On applique les 3 macros.
  • Ça marche.

État courant

Qui Quand Quoi

public/specs_production_editions_synoptiques.txt · Dernière modification: 2014/06/17 10:24 par slh@ens-lyon.fr