septembre 2023, Grenoble
Autour de TACT
TACT comme vous le savez permet d’exporter tout un tas de données et notamment les transcriptions. Celles-ci peuvent être transformées au moment de l’export (grâce à une feuille de transformation XSL ; ça se passe dans l’administration de votre projet). Le résultat est un dossier zippé contenant un fichier par transcription.
« Ben oui, mais moi, je voudrais un seul fichier avec tout dedans. Je fais comment ? »
Cette question est plus que légitime et parce que nous avons eu à y répondre pour plusieurs projets, voici une réponse détaillée pour tout le monde, avec pas moins de 3 solutions !
⇒ Attention, dans toutes les solutions proposées, les fichiers seront fusionnés selon l’ordre alphabétique des noms de fichiers ⇐
Solution 1, en ligne de commande : Concaténation de fichier
C’est basique mais efficace. Il vous faudra pourtant savoir lancer un script bash. Pour les linuxien, c’est facile, pour les autres : il vous faudra savoir comment lancer un petit script à partir de Windows ou Mac (et là, je ne peut pas vous aider, je suis une quiche en Win/Mac).
En une ligne de commande, ça donne :
cat export_tact/*.xml > fusion_transcriptions.xml
en supposant que vous ayez mis toutes vos transcriptions dans le sous-dossier export_tact/. Il vous faudra après cela ajouter en début en fin de ficher les balises qui vous sont utiles bien sûr, notamment au minimum un élément racine.
À noter : cette commande peut permettre de ne sélectionner qu’une partie de l’ensemble de fichier en se basant sur les noms de fichiers. En supposant que vos données correspondent à plusieurs ensembles, par exemple différents livres, et que vous avez nommé vos fichiers livre01_page001.xml, livre01_page002.xml (…) livre02_page001.xml (…), vous pouvez fusionner les fichiers en ne sélectionnant que les fichiers qui commencent par “livre01” : cat export_tact/livre01*.xml > fusion_livre01.xml
. Si vous vous intéressez un peu à la ligne de commande, vous découvrirez que ça peut aller bien plus loin que cela, mais c’est déjà un bon début !
Solution 2, en python : Fusion avec ajout d’une structure TEI ulta-minimaliste
Cette solution est aussi possible en bash, mais voici un petit script python, donc utilisable sous linux, mac et windows (il suffit d’installer python3) et qui vous permet de fusionner vos fichiers en ajoutant une petite structure TEI autour de votre ensemble de transcriptions.
Télécharger ou cloner le dépôt git suivant : https://gitlab.com/litt-arts-num/tact-related/merge-files grâce au bouton .
Copier les fichiers de transcriptions dans le dossier _in/. Lancer le script python app.py (en ligne de commande : python3 app.py
) et récupérez le résultat dans _out/ :
<TEI> <teiHeader> </teiHeader> <text> <body> (...) /* contenu fichier 1 */ (...) /* contenu fichier 2 */ (...) </body> </text> </TEI>
Là encore, si vous vous y connaissez un peu en python, vous pouvez bien sûr étendre ce script selon vos besoin.
Solution 3, en XSLT : Fusion avec manipulations, ajouts, transformations, etc.
Là, je vous invite à lire un billet de blog dédié qui vous donnera plein de détails : Fusionner des xml en opérant des modifications grâce à XSLT. Dans ce billet, vous aurez des détails sur les cas suivants
- Fusionner certains fichiers seulement
- Fusionner uniquement une partie du contenu
- Modifier l’ordre de fusion des fichiers
- Faire un traitement différencié selon les contenus des fichiers
- En profiter pour transformer des choses dans l’arbre XML
Et voilà, vous savez tout… ou presque 😉
OpenEdition vous propose de citer ce billet de la manière suivante :
Anne Garcia-Fernandez (13 septembre 2023). TACT : Fusionner les transcriptions en un seul fichier. ELAN - L'élan littératures, arts et numériques de Litt&Arts (UMR 5316). Consulté le 7 février 2025 à l’adresse https://doi.org/10.58079/w31y