Transformation vers corpusHM

Version 18 (Severine Gedzelman, 28/09/2017 13:59)

1 1 Severine Gedzelman
h1. Transformation vers un corpus parallèle (alignement HM)
2 1 Severine Gedzelman
3 2 Severine Gedzelman
Le document fourni par Uetani est un fichier word, organisé avec des tableaux à 3 colonnes :
4 7 Severine Gedzelman
** col 1 : nom du segment philologique (et notes diverses, dont certains acronymes sont à élucider pour moi)
5 7 Severine Gedzelman
** col 2 : version italienne
6 7 Severine Gedzelman
** col 3 : version française correspondante
7 2 Severine Gedzelman
8 2 Severine Gedzelman
L'enregistrement du .doc vers .odt est obligatoire chez moi, car je ne possède pas de logiciel Microsoft. Pour obtenir un corpus en XML-TEI, on a besoin de passer par deux scripts :
9 7 Severine Gedzelman
# le premier est fourni par le service "OXGarage":http://www.tei-c.org/oxgarage/ (transformateur en ligne pour la communauté TEI principalement) 
10 7 Severine Gedzelman
# le deuxième a été écrit en python par moi-même dont les détails sont après.
11 2 Severine Gedzelman
12 15 Severine Gedzelman
h2. 1) ODT vers XML-TEI
13 1 Severine Gedzelman
14 2 Severine Gedzelman
* Le document de départ : attachment:CorpusSANAZIFR_Uetani_2017.odt 
15 2 Severine Gedzelman
* Le document de sortie : attachment:CorpusSANAZIFR_Uetani_2017.xml
16 2 Severine Gedzelman
17 6 Severine Gedzelman
Les choix ont été les suivants sur "OxGarage":http://www.tei-c.org/oxgarage/ : OpenOffice texte (odt) en entrée, TEI P5 XML Document en sortie
18 2 Severine Gedzelman
19 2 Severine Gedzelman
!{width:80%}OXGarage_convertODT-2-TEI.png!
20 2 Severine Gedzelman
21 8 Severine Gedzelman
Les tableaux sont restitués avec également les éléments de forme et les notes de bas de page, un exemple  de la dernière ligne (<row>) du dernier tableau (<table>) :
22 5 Severine Gedzelman
23 5 Severine Gedzelman
<pre><code> 
24 5 Severine Gedzelman
       <table rend="frame" xml:id="Tableau4">
25 5 Severine Gedzelman
                <row>
26 5 Severine Gedzelman
                    <cell>Ecloga II, vv. 1-12</cell>
27 5 Severine Gedzelman
                    <cell>....</cell>
28 5 Severine Gedzelman
                    <cell>....</cell>
29 5 Severine Gedzelman
               </row>
30 5 Severine Gedzelman
              ...
31 5 Severine Gedzelman
      </table>
32 5 Severine Gedzelman
      <table>
33 5 Severine Gedzelman
              ...
34 5 Severine Gedzelman
               <row>
35 5 Severine Gedzelman
                    <cell>A la Sampogna, 19-20</cell>
36 5 Severine Gedzelman
                    <cell rend="justify"><hi rend="bold italic">Benché</hi><hi rend="italic"> mi
37 5 Severine Gedzelman
                            pare esser certo che tal fatica a tenon fia necessaria, se tu tra le
38 5 Severine Gedzelman
                            selve, sí come io ti impongo, secretamente e senza pompe star ti vorrai.
39 5 Severine Gedzelman
                            Con ciò sia cosa che chi non sale, non teme di cadere ; e chi cade nel
40 5 Severine Gedzelman
                            piano, il che rare volte adiviene, con picciolo agiuto</hi><hi
41 5 Severine Gedzelman
                            rend="italic"><note xml:id="ftn529" place="foot" n="529">
42 5 Severine Gedzelman
                                <hi rend="italic">agiuto</hi> : aiuto (E).</note></hi><hi
43 5 Severine Gedzelman
                            rend="italic"> de la propria mano senza danno si rileva</hi><hi
44 5 Severine Gedzelman
                            rend="italic"><note xml:id="ftn530" place="foot" n="530"><hi
45 5 Severine Gedzelman
                                    rend="italic"> rileva</hi> : risolleva, rialza
46 5 Severine Gedzelman
                            (E).</note></hi><hi rend="italic">. Onde per cosa vera e indubitata
47 5 Severine Gedzelman
                            tener ti puoi che chi piú di nascoso e piú lontano da la moltitudine
48 5 Severine Gedzelman
                            vive, miglior vive ; e colui tra' mortali si può con piú verità chiamar
49 5 Severine Gedzelman
                            beato che, senza invidia de le altrui grandezze, </hi><hi
50 5 Severine Gedzelman
                            rend="bold italic">con modesto animo</hi><hi rend="italic"> de la sua
51 5 Severine Gedzelman
                            fortuna si contenta (p. 241).</hi></cell>
52 5 Severine Gedzelman
                    <cell rend="justify"><hi rend="bold">Nonobstant</hi> je pense estre aßeuré que
53 5 Severine Gedzelman
                        n'auras besoing de ce faire, si suyvant mon conseil, tu te veul tenir en ces
54 5 Severine Gedzelman
                        boys secretement, &amp; sans aucune pompe : Car qui ne saulte, n'a peur de
55 5 Severine Gedzelman
                        tumber : &amp; qui chet en la plaine (ce que n'advient gueres) se relieve
56 5 Severine Gedzelman
                        sans dommage, seulement avec un peu de secours de ses propres mains. Parquoy
57 5 Severine Gedzelman
                        tu peux tenir pour chose indubitable, que celuy peult vivre en plus grand
58 5 Severine Gedzelman
                        repos, qui est plus loingtain &amp; retiré de la multitude confuse. Et entre
59 5 Severine Gedzelman
                        les hommes se peult plus veritablement estimer bien heureux celuy qui sans
60 5 Severine Gedzelman
                        envie des grandeßes d'aultruy,<hi rend="bold">par </hi><hi
61 5 Severine Gedzelman
                            rend="bold italic">modestie</hi><hi rend="bold"> de courage</hi> se
62 5 Severine Gedzelman
                        contente de sa fortune (fol. 114 v°).</cell>
63 5 Severine Gedzelman
                </row>
64 5 Severine Gedzelman
     </table>
65 5 Severine Gedzelman
</code></pre>
66 5 Severine Gedzelman
67 15 Severine Gedzelman
h2. 2) XML-TEI vers XML-TEI-HM
68 2 Severine Gedzelman
69 9 Severine Gedzelman
70 1 Severine Gedzelman
Le script attachment:tei2teiHM.py permet de 
71 13 Severine Gedzelman
* récupérer l'ensemble des deux textes (source italien, cible français) :
72 1 Severine Gedzelman
** sans les notes (de bas de page)
73 3 Severine Gedzelman
** sans les indications graphiques (qui sont dans des balises <hi> avec attributs : italic, bold, ...)
74 13 Severine Gedzelman
* et de préparer la structure et les noms des divisions, et des segments contenus dans celles-ci. Par exemple les segments <seg> "Prosa_X_1", "Prosa_X_2", ... seront rassemblés sous une division <div> : "Prosa_X".
75 1 Severine Gedzelman
76 9 Severine Gedzelman
Pour plus d'info, voir le chapitre dédié à la [[structure philologique]], et les opérations de nettoyage effectuées jusqu'à présent.
77 9 Severine Gedzelman
78 12 Severine Gedzelman
h3. A propos de la ressource XML en entrée
79 12 Severine Gedzelman
80 11 Severine Gedzelman
Le document XML-TEI a été légèrement modifié à la main (attachment:)
81 11 Severine Gedzelman
# avec une substitution des "Egloga" en "Ecloga" (peut refaire la modification dans le sens inverse si besoin)
82 1 Severine Gedzelman
# avec remplacement des valeurs des attributs "xml:id" des tableaux afin de permettre la création de divisions philologiques plus méta comme "Prosa_X", dans lesquels s'inséreront automatiquement les segments philologiques "Prosa_X_1", "Prosa_X_2". L'attribut notait jusqu'à présent seulement l'incrémentation des tableaux  : "Tableau1", "Tableau2". Cela donne pour le premier tableau : *<table rend="frame" xml:id="Prologo I">*
83 11 Severine Gedzelman
84 12 Severine Gedzelman
Dans une réflexion semblable, faut-il préparer des <cell> avec les titres des segments, comme par exemple s'est trouvé par hasard le titre de "Ecloga XI". On pourra ainsi les traiter comme des titres en TEI avec la balise <head>.
85 9 Severine Gedzelman
86 10 Severine Gedzelman
<pre><code>
87 10 Severine Gedzelman
<table rend="frame" xml:id="Ecloga_XI">
88 10 Severine Gedzelman
                <row>
89 12 Severine Gedzelman
                    <cell>Ecloga XI, 0</cell> 
90 10 Severine Gedzelman
                    <cell rend="center">ERGASTO<hi rend="italic"> solo</hi></cell>
91 10 Severine Gedzelman
                    <cell>ERGASTO SEVL.</cell>
92 1 Severine Gedzelman
                </row>
93 1 Severine Gedzelman
</code></pre>
94 1 Severine Gedzelman
95 1 Severine Gedzelman
h3. A propos du script et de ses paramètres 
96 13 Severine Gedzelman
97 15 Severine Gedzelman
Le script génère des <teiHeader> pour les deux textes (it, fr) <TEI> et pour l'ensemble du corpus <teiCorpus>.  Chaque texte aura un identifiant pour Hypermachiavel avec une langue correspondante :
98 15 Severine Gedzelman
* Erspamer_1505 (i1) - it
99 15 Severine Gedzelman
* Martin_1544 (f1) - frm
100 13 Severine Gedzelman
101 14 Severine Gedzelman
+Remarque+ : Il faudra prévoir d'ajouter ces entêtes manuellement selon les indicatons de Uetani sur ces différentes éditions/productions. J'ai calqué pour l'instant à la structure de Hyperprince, pour les détails, voir le corpus.
102 1 Severine Gedzelman
103 12 Severine Gedzelman
Avant d'appeler le script python, il faut 
104 12 Severine Gedzelman
# vérifier l'installation de "python" sur la machine (à noter que tous les Mac ont une version par défaut, même chose pour le programme Java) 
105 12 Severine Gedzelman
# placer les ressources dans le même dossier : soit le fichier source de donnée .xml et le fichier script .py, 
106 12 Severine Gedzelman
# indiquer en deuxième paramètre du script, la chaîne correspondant au chemin du dossier où se trouve ces ressources
107 12 Severine Gedzelman
108 12 Severine Gedzelman
109 1 Severine Gedzelman
<pre><code>
110 9 Severine Gedzelman
$ python tei2teiHM.py CorpusSANAZIFR_Uetani_2017.xml ~/Documents/Travail_ENS/Projets/Exterieurs/CESR_Uetani/Transformations
111 9 Severine Gedzelman
</code></pre>
112 1 Severine Gedzelman
113 12 Severine Gedzelman
h3. A propos de la ressource générée
114 12 Severine Gedzelman
115 12 Severine Gedzelman
Le résultat avec le même extrait 'XML-TEI' donné plus haut : *A_la_Sampogna_19-20*
116 9 Severine Gedzelman
117 9 Severine Gedzelman
<pre><code>
118 11 Severine Gedzelman
 <seg n="15" type="Segment"  rend="A_la_Sampogna_19-20" xml:id="i1_Ch25-Seg15">
119 11 Severine Gedzelman
          Bench&#233; mi pare esser certo che tal fatica a tenon fia necessaria, se tu tra le selve, s&#237; 
120 11 Severine Gedzelman
          come io ti impongo, secretamente e senza pompe star ti vorrai. Con ci&#242; sia cosa 
121 11 Severine Gedzelman
          che chi non sale, non teme di cadere ; e chi cade nel piano, il che rare volte adiviene, 
122 11 Severine Gedzelman
          con picciolo agiuto de la propria mano senza danno si rileva. Onde per cosa vera e 
123 1 Severine Gedzelman
          indubitata tener ti puoi che chi pi&#250; di nascoso e pi&#250; lontano da la moltitudine vive, 
124 1 Severine Gedzelman
          miglior vive ; e colui tra' mortali si pu&#242; con pi&#250; verit&#224; chiamar beato che, 
125 1 Severine Gedzelman
          senza invidia de le altrui grandezze, con modesto animo de la sua fortuna si contenta (p. 241).
126 1 Severine Gedzelman
</seg>
127 1 Severine Gedzelman
</code></pre>
128 15 Severine Gedzelman
129 15 Severine Gedzelman
h2. 3) Importation dans Hypermachiavel
130 15 Severine Gedzelman
131 18 Severine Gedzelman
# Il faut ouvrir l'outil, voir la documentation officielle pour démarrer à "cette page":https://forge.cbp.ens-lyon.fr/redmine/projects/hypermachiavel/wiki/Comment_d%C3%A9marrer) 
132 18 Severine Gedzelman
# puis suivre "les étapes de la création d'un projet corpus":https://forge.cbp.ens-lyon.fr/redmine/projects/hypermachiavel/wiki/D%C3%A9marrer_un_nouveau_corpus_(XML-TEI).
133 18 Severine Gedzelman
# La tokenisation et lemmatisation sont ensuite déclenchées, le processus est plus ou moins long mais ne sera effectué qu'à cette étape de création. Par la suite, pour toute ré-ouverture de l'application et du projet, on pourra suive "cette page":https://forge.cbp.ens-lyon.fr/redmine/projects/hypermachiavel/wiki/Ouvrir_un_projet_existant).
134 15 Severine Gedzelman
135 16 Severine Gedzelman
!{width:80%}HM_HyperArcadia_AnnotateTranslationEquivalences.png!