Transformation vers corpusHM

Version 17 (Severine Gedzelman, 28/09/2017 13:56)

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 17 Severine Gedzelman
Il faut ouvrir l'outil (voir la documentation officielle à "cette page":https://forge.cbp.ens-lyon.fr/redmine/projects/hypermachiavel/wiki/Comment_d%C3%A9marrer) 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).
132 15 Severine Gedzelman
133 17 Severine Gedzelman
La tokenisation et lemmatisation est un processus plus ou moins long et ne sera effectué qu'à cette étape de création. Par la suite il faudra seulement ouvrir le projet constitué (voir la documentation officielle à "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!