Nous présentons dans ce qui suit une manière d'annoter un corpus de parole en utilisant au mieux les standards émergeants (Unicode, XML).
Nous illustrerons nos propos par des exemples tirés du programme "Archivage de données texte/son" du LACITO. Nous verrons comment définir une syntaxe formelle pour la grille d'analyse choisie. Nous verrons ensuite comment utiliser cette syntaxe pour faire l'annotation d'un enregistrement et enfin comment il est possible de restituer, de diffuser et d'interroger ce corpus annoté.
Le linguiste qui analyse un corpus enregistré va utiliser principalement des méthodes d'observation. Son activité, qui peut être aidée par des instruments de mesure, se fait la plupart du temps avec l'aide de grilles d'observation. Contrairement aux mesures des indices qui fournissent des valeurs continues, ces grilles proposent des catégories discrètes d'événements possibles. Une grille peut être vue comme un métalangage qui permet d'exprimer les observables dans le cadre d'un formalisme particulier. En effet, grilles et théories linguistiques sont intimement liées puisque les catégories définies dans les grilles sont issues des connaissances sur la langue du corpus, les langues ou le langage en général pour êtres plus pertinentes.
Un système de notation est déjà une sorte de grille d'analyse qui permet de décrire aussi fidèlement que possible et dans l'optique que l'on s'est choisie les données observées.
Nous parlons ainsi de systèmes de notation orthographique ou phonologique de la parole. Un système de notation phonologique permet de décrire les sons du langage de manière fonctionnelle, c'est à dire en ne retenant que les traits (articulatoires, acoustiques, etc.) dont on soupçonne qu'ils participent à la fonction distinctive. Un système de notation orthographique permet, lui, de noter de manière normative des unités lexicales. Dans le premier cas les critères d'analyse retenus dans la grille seront les traits, dans le second cas il s'agira des entrées d'un lexique. On pourra parler aussi de systèmes de notation de la gestuelle, de la mimique, de la situation d'interlocution etc. Tous ces systèmes de notation renvoient à des grilles d'observations différentes.
La transcription, elle, est l'activité qui permet le passage d'un système de notation à un autre. On parle aussi de transcriptions phonologiques ou orthographiques. La parole est vue dans ce cas comme un système de codage de l'information. Transcrire consiste alors à passer d'un système de notation à caractère oral vers un système de notation à caractère écrit.
Alors que la transcription est vue comme une activité de description qui cherche à reproduire le plus fidèlement possible la forme, la traduction est vue comme l'activité qui vise à trouver des équivalences dans une autre langue pour le sens et parfois aussi pour la forme.
A ces termes de transcription de traduction et d'autres encore, nous préférons le terme d'annotation, plus neutre et plus général. Sous ce terme nous regroupons toutes les activités qui consistent à caractériser un corpus. L'annotation pourra donc comprendre des transcriptions qui utilisent des systèmes de notation phonologiques, des traductions qui utilisent des systèmes de notation orthographiques, d'autres transcriptions qui utilisent des systèmes de notation de la mimique, de la gestuelle, etc.
Les systèmes de notation de la parole proposent des grilles d'analyse associant des valeurs d'indices à des catégories d'analyse. Ces associations forment autant d'hypothèses sur la langue.
Une des grilles les plus connues est l'alphabet de l'Association de Phonétique Internationale (créée en 1885 par les linguistes Paul PASSY et Daniel JONES). Cet alphabet offre l'avantage d'être standardisé et d'être largement utilisé. L'A.P.I. (L'alphabet phonétique international) représente en fait l'état d'avancée de la recherche descriptive en matière phonologique, puisqu'il est censé permettre la représentation de toutes les oppositions fonctionnelles déjà rencontrées dans les langues décrites. Il existe aussi des systèmes de notation phonétique sous forme non alphabétique, comme par exemple ceux notant les états et changements observés sur l'onde (début de voisement, explosion, début de friction, etc.).
Les systèmes de notation orthographiques, eux, sont presque aussi divers que les cultures qui les emploient. On comptera à ce titre tous les systèmes alphabétiques (latin, cyrillique, hébreu, etc.), syllabiques (katakana, hiragana, etc.), logographiques (chinois).
Enfin les systèmes de notation de la gestuelle souffrent quant à eux soit d'un manque de popularité soit d'un manque de standardisation. Nous pouvons citer pour la langue des signes: la notation en alphabet signé, la notation de Bébian, de Stokoe...
Un certain nombre de systèmes de notation orthographique est normalisé dans des codes caractères (ISO-Latin-n, JIS, etc.), mais il est difficile de les faire coopérer ensemble dans un même document, ce qui rend compliquée la saisie de textes multilingues. Ce problème est en partie résolu par l'utilisation d'Unicode. Il s'agit d'un code permettant le codage potentiel de plus de 65000 caractères. Actuellement dans sa version 3.0 un peu plus de la moitié de sa capacité est utilisée et il comporte déjà de nombreux alphabets (le latin, l'arabe, les syllabaires japonais, le chinois, etc.).
Tous les caractères des tableaux de l'A.P.I. existent dans Unicode et sont répartis dans plusieurs blocks (le latin, le grec, les extensions A.P.I., les diacritiques, les modificateurs, etc.). Un caractère, identifié par sa position dans le code, possède une définition et un ensemble de glyphes. Par exemple : le caractère à la position hexadécimale '0283' dont le glyphe ressemble au signe mathématique pour l'intégrale 'ʃ'', est défini dans Unicode comme " LATIN SMALL LETTER ESH " ou dans sa définition articulatoire comme " voiceless postalveolar fricative ".
L'usage d'un tel standard met un terme aux "bricolages" informatiques tous plus incompatibles les uns avec les autres et qui la plupart du temps empêchaient ou limitaient les échanges.
Cependant, les notations d'événements phonétiques, gestuels, de la mimique etc. qui dans leur formalisation ne font pas souvent appel à une notation sous forme de caractères, ne sont pas prévus dans Unicode. Leur codification doit donc passer par un autre système que celui du codage des caractères.
Jusqu'à présent le plus courant des systèmes de structuration de l'information était la base de données. Depuis quelques années les techniques à base de langages de balisage de texte se sont considérablement répandus jusqu'à devenir (avec XML) des standards d'échange de documents utilisés dans de nombreux domaines allant de l'expression des chaînes d'atomes à la notation musicale, en passant par les expressions mathématiques, etc.
Tous les types d'annotations (transcriptions, traductions, marquages temporel ou spatial, indications scénographiques...) utilisant n'importe quel système de notation sont rendus possibles en XML par l'utilisation de balises que définit l'utilisateur. Schématiquement le balisage représente la structure des données, et le contenu des éléments balisés les données elles-mêmes.
Par exemple, analyser une phrase en mots consiste à entourer la phrase de balises l'identifiant comme telle, puis à entourer chaque mot de balises l'identifiant comme mot.
<phrase>
<mot>Ceci</mot>
<mot>est</mot>
<mot>un</mot>
<mot>mot</mot>
</phrase>
Pour contraindre l'annotation, il est possible de définir une syntaxe formelle (DTD : Document Type Definition) qui indique quelles sont les balises autorisées et dans quels contextes elles peuvent apparaître. Par exemple pour dire que les phrases d'un texte contiennent des mots et empêcher que les mots puissent se trouver en dehors d'une phrase on pourrait définir la mini syntaxe suivante:
<!ELEMENT texte (phrase+)>
<!ELEMENT phrase (mot+)>
<!ELEMENT mot (#PCDATA)>
La DTD utilisée pour le programme "Archivage de données texte/son" du LACITO, par exemple, permet un découpage en quatre niveaux hiérarchiques : le texte, la phrase, le mot et le morphème. A chacun de ces niveaux il peut y avoir une transcription et des traductions. Au niveau du mot et du morphème les traductions correspondent à ce que l'on appelle la glose (dans la langue cible).
Ce découpage en niveaux permet de faire des transcriptions où l'on peut noter la forme prototypique d'un morphème différemment de sa forme en contexte, ou bien une forme de mot qui ne tient pas compte des phénomènes de sandi tonal, qui ne seraient transcrits qu'au niveau de la phrase.
Pour les traductions le problème est le même. Il n'est pas toujours possible en mettant bout à bout les traductions des mots ou des morphèmes (gloses) d'obtenir une phrase syntaxiquement correcte.
Chaque niveau peut aussi faire l'objet d'autres types d'annotation comme par exemple au niveau de la phrase l'indication du locuteur. Enfin chaque niveau texte, phrase, mot et morphème peut faire l'objet d'un ancrage temporel dans un fichier son ou vidéo.
Puisque XML ne code que la structure logique des données, si l'on veut définir une interprétation typographique ou multimédia des données, il faut le faire avec un langage de formatage. XSL (XML Stylesheet Language) est le langage de feuilles de styles dédié à XML proposé par le consortium W3. Ces feuilles de styles sont de simples documents XML qui utilisent un jeux de balises particulier.
Nous avons créé par exemple pour les archives du LACITO des feuilles de styles qui définissent pour chaque niveau comment afficher la transcription et les traductions, comment restituer les indications scénographiques, etc.
Pour appliquer une feuille de styles à un document XML nous avons besoin d'un outil que l'on appellera un processeur de styles ou un processeur XSL. Il en existe maintenant de nombreuses implémentations.
Un document XML peut être vu comme une base de données qui contient beaucoup plus d'information que ce que l'on souhaite voir en même temps. Nous avons donc besoin d'un mécanisme permettant de faire des sélections dans cette base afin de n'afficher que des morceaux ou des vues particulières de celle-ci. Par exemple, pour afficher uniquement la transcription au niveau de la phrase, ou pour afficher la transcription et une la traduction en français, etc.
Nous avons aussi besoin d'un mécanisme permettant de réorganiser la structure des données pour présenter le texte ou les morceaux de texte de différentes manières. Par exemple, pour présenter les transcriptions des mots avec leur glose juste en dessous (présentation " interlinéaire " ou " mot sous mot ").
XSLT est la partie de XSL qui permet d'effectuer des transformations correspondant aux opérations (extractions, tris, comptages, etc.) que l'on avait l'habitude de faire avec des langages comme SQL dans des bases de données. XML est une structure strictement arborescente. Effectuer des transformations avec XSLT revient à définir une manière de parcourir cet arbre pour réécrire une nouvelle structure qui cette fois n'est pas forcément arborescente.
Pour les archives du LACITO nous avons défini des feuilles de styles pour établir une liste triée des formes ou des gloses d'un texte, pour faire une concordance, pour rechercher les occurrences d'un mot ou d'un gabarit de mot particulier, etc.
Enfin, pour la diffusion des données, nous avons besoin d'un outil qui nous permette d'effectuer un rendu correct de nos textes ou morceaux de texte (rendu typographique) ainsi que de nos enregistrements (rendu audio ou vidéo) tout en conservant le lien de synchronisation qui existe entre les deux.
Cela peut se faire par l'adoption d'HTML (HyperText Markup Language) comme standard de présentation. Le seul outil d'accès pour la consultation et l'interrogation des données devient alors le navigateur web (c'est à dire un interpréteur HTML). C'est lui qui prendra en charge l'affichage des textes.
Comme HTML ne prend pas en compte la gestion du son, nous avons réalisé un applet Java qui permet d'ajouter des capacités audio et vidéo aux navigateurs.
Encore une fois la production de ces documents HTML se fera directement dans les feuilles de styles. Il suffit pour cela d'ajouter dans les feuilles de styles déjà définies des balises propres au langage HTML.
Nous avons vu comment l'utilisation des formalismes et des technologies du web qui les implémentent nous a permis de définir une structure particulière de données (l'archive Texte/son) et d'envisager, sans trop de développement une application qui permet d'interroger ces données via Internet.