Faire un corpus TEI pas à pas

Sous-sections :

Etapes à prévoir lors de la constitution d'un corpus.


1. Utilisation des sources et choix d'encodage

Le but est d'obtenir à partir d'une source un document encodé dans la syntaxe XML et selon les conventions TEI. On peut essayer d'automatiser la retranscription des propriétés de l'original dans le format de la TEI pour garder le maximum d'informations.

La démarche est la suivante :

 ---------             --------              ---------             -----------------
|Fichier  |Extraction,|Fichier | parseurs,  |corpusXML| parseurs  |projection,      |
|source   |---------->|  XML   |----------->|normalisé|---------->|sélection de     |
|original |Conversion |        | éditeurs   |   TEI   |           |sous-corpus, etc.|
 ---------             --------  de texte    ---------             -----------------

Penser à conserver une version non modifiées des "sources", afin de pouvoir revenir en arrière et garder une référence.

Recenser tous les traits importants marqués dans la source (typographie, mise en page, pagination...) à conserver dans une version étiquetée : une fois le document XML constitué puis enrichi, ce qui n'a pas été gardé comme information dans la source ne pourra plus lui être ajoutée. Par contre les informations non pertinentes pour une tâche particulière pourront toujours être écartées. Les traits non pertinents à court terme mais qui pourront de l'être ultérieurement devraient donc être conservés dans l'étiquetage.

Dans tous les cas, même si la source ne contient aucune mise en forme, prévoir un niveau d'encodage minimum afin que le corpus soit documenté, réutilisable facilement, puisse s'insérer dans un autre corpus, etc. (Cf. "L'en-tête" infra pour un encodage minimal selon la TEI.)

Les choix de balisage (par exemple, la notation des italiques) doivent être documentés dans l'en-tête (<encodingDesc>). Les étapes du passage de la source au document peuvent également être notées. Les différentes étapes de l'édition du corpus peut être documenté dans <revisionDesc>).

Le plus prudent est sans doute de noter la séquence des opérations à réaliser et de la tester sur une copie d'une partie de la source avant de l'exécuter sur la totalité du corpus.


2. Jeu de caractères

Le choix du jeu de caractères a des incidences sur l'encodage (notamment les entités caractères), la portabilité du corpus, et les outils utilisables pour sa manipulation (notamment parmi les éditeurs de texte). Plus le jeu de caractères est riche, moins il sera nécessaire d'utiliser des entités caractères, mais la portabilité et certains outils pourront en souffrir (cf. "Les jeux de caractères" dans Standard autour d'XML pour les corpus

Généralement l'encodage ISO-8859-1 (Latin 1) est le plus facile à manipuler. Dans le cas où on est dépendant d'un logiciel particulier il vaut mieux s'assurer qu'il supporte le jeu de caractères choisi. Il est nécessaire de spécifier le jeu d'encodage dans le header TEI du corpus ainsi que dans le header XML du document (<?xml version='1.0' encoding='ISO-8859-1'?>). Si un texte vient d'une source peu contrôlée (Word et ses caractères spéciaux, etc.), déclarer le corpus en ISO-8859-1 permettra également de faire vérifier par le parseur qu'il ne contient pas de caractères non standards.


3. Préparation du texte : préalable

Le format XML suppose que le texte lui-même (hors balises) ne contienne aucun des signes réservés pour la notation des balises. Ainsi avant d'encoder un texte il faut s'assurer qu'il ne contienne pas les caractères <, >, & qui sont réservés au métalangage (ouverture des balises et ouverture des entités) et ne peuvent pas apparaître dans le texte. S'ils sont présents, il faut les remplacer par les entités caractères correspondantes : "&lt;", "&gt;" et "&amp;".


4. Conversion en fonction des formats sources

Sous-sections :

En fonction du format du document source, il y a différents outils pour le convertir en XML.


Conversion de Word et RTF vers XML avec Open Office

La suite bureautique Open Office (ex-Star Office de Sun) utilise XML pour noter les propriétés de mise en page, ce qui permet de manipuler avec des outils XML le document à convertir.

Open Office peut importer différents formats de fichier, dont Word (ouvrir le fichier Word, puis faire "enregistrer sous" au format Open Office (*.oxw)).

Pour récupérer un fichier XML il faut ouvrir le fichier Open Office dans un décompresseur (type WinZip : un fichier Open Office est un fichier 'zippé' contenant plusieurs fichiers) et extraire le fichier nommé "content.xml".

Le fichier peut être manipulé comme un document XML, notamment pour renommer les tags suivant les conventions TEI, sélectionner les étiquettes à garder (Ce codage est fait à des fins de rendu, certains éléments ne sont pas pertinents), etc.


Conversion de PDF vers RTF

Pour convertir un fichier PDF en RTF il faut disposer d'une version d'Acrobat récente 5.0 (la dernière en date), qui permet l'enregistrement du document au format RTF. La conversion n'est évidemment pas parfaite, et le système OCR utilisé n'est pas extraordinaire, mais cela évite les copier-coller page par page laborieux dans le doc PDF. Un travail assez lourd de reformatage du document est nécessaire. Néanmoins, à moins de travailler sur des textes extrêmement structurés, l'opération peut être rentable.

D'autres produits pour la conversion de PDF en Word :


5. Préparation du texte avec des expressions régulières

Dans la plupart des cas, avant de disposer d'un document XML bien formé accessible à un parseur, il faut manipuler le texte, avec un éditeur de texte. Que le document soit partiellement ou totalement encodé les expressions régulières permettent d'automatiser la plupart des tâches.

Il est toujours possible d'automatiser l'annotation basée sur les caractères (par exemple les paragraphes) avec les expressions régulières. (Cf. ci-dessous le mémo sur les expressions régulières).

Par exemple : Rechercher : ^(.+)$ Remplacer : <p>\1</p> Permet d'encadrer tous les paragraphes des balises <p> et </p>.

On peut également utiliser les expressions régulières pour manipuler l'encodage lui-même.

Par exemple : "</?tag[^>]*>" permet de rechercher les tags 'tag', ouvrants ou fermants ('/' est rendu optionnel par '?') et quels que soient leurs éventuels attributs. Rechercher : "<(/?)tag([^>]*)>" à remplacer par : "<\1newtag\2>" permet de renommer le tag 'tag' en lui rendant les éventuels attributs et slash de fermeture rencontrés pendant la recherche.


6. L'en-tête

Au texte encodé lui-même il faut ajouter un en-tête TEI (teiHeader) et l'en-tête XML (<?xml etc.)définissant le document :

<?xml version='1.0' encoding='ISO-8859-1'?>
<teiCorpus.2>
	<teiHeader type='corpus'>
		[...]
	</teiHeader>

	<TEI.2>
		<teiHeader type='text'>
			[...]
		</teiHeader>
		<text complete='Y|N'>
			[<div>, <p>, texte...]
		</text>
	</TEI.2>

	<TEI.2>
		[... 2nd text ...]
	</TEI.2>

</teiCorpus.2>

Exemple de headers :


7. Validation

Pendant l'édition du corpus, il est utile de vérifier régulièrement la "bonne-formation" et la "validité" du corpus.

Microsoft Internet Explorer peut être utilisé pour vérifier la bonne formation et la validité (utiliser "Fichier > Ouvrir" ; il faut que le fichier fasse référence à sa DTD dans sa déclaration d'en-tête et qu'il soit nommé en *.xml) On peut aussi utiliser un parseur plus conforme comme libxml2 :.


8. Outils de sélection et de projection

A partir du corpus, différentes méthodes permettent d'extraire des sous corpus et de convertir le corpus dans les formats d'outils d'exploitations statistiques (Par exemple pour traiter le corpus avec Hyperbase, il faudra supprimer les balises, etc.). Les principaux langages pour la transformation de document XML sont XSLT et XQuery.