SATO 4.4, Manuel de référence (mai 2007; dernière modification en mai 2008)
Table des matières | Définitions
Préparation d'un corpus pour soumission à SATO
Ce chapitre présente les règles de présentation d'un corpus aux fins d'analyse par SATO.
Introduction

Déclaration
ABRÉVIATION
ALPHABET
CARACTÈRE
INFORMATION
PAGE
PROPRIÉTÉ
PROTOCOLE
TABULATION
TITRE

Règles de codification du texte intégral

Exemples
Exemple 1 -- Corpus Le dormeur du val
Exemple 2 -- Corpus des fables de La Fontaine

Introduction

Avant de procéder à une analyse textuelle, l'utilisateur doit d'abord générer son corpus de textes en le soumettant à SATO. Le rôle du module de génération de SATO est de prendre un corpus en format texte et d'en construire une représentation dans le plan lexique/occurrences de SATO.

Un corpus textuel est composé de deux parties : une section déclarative qui indique comment le corpus est codifié, et la partie textuelle elle-même, généralement composée de plusieurs documents, qui sera transcrite en utilisant les normes définies dans la section déclarative du corpus.

Les formulaires de soumission à SATO permettent de générer les déclarations de base pour traiter un corpus faiblement annoté. Il peut être nécessaire, cependant, de compléter le formulaire en y ajoutant des déclarations supplémentaires. Pour ce faire, on pourra se référer aux diverses sections du présent chapitre qui définit chacune des commandes de déclaration que l'on peut inclure dans la partie déclarative du corpus. Il présente ensuite le format de présentation des divers documents constituant le corpus.

Voici d'abord une brève description de chacune des commandes de déclaration.

- PROTOCOLE : pour spécifier le protocole d'encodage des caractères utilisée pour l'entrée des textes. Si le protocole n'est pas spécifié, SATO s'attend à lire un fichier texte avec un encodage UTF-8

- ABRÉVIATION : pour associer une chaîne de caractères quelconque à une abréviation réduite à un chiffre de 0 à 9.

- ALPHABET : pour déclarer un alphabet.

- CARACTÈRE : pour redéfinir un caractère réservé.

- INFORMATION : pour définir un bloc d'information destiné à documenter le corpus.

- LIGNE : pour définir le nombre maximum de lignes par page et de caractères par ligne.

- PROPRIÉTÉ : pour définir de nouvelles propriétés.

- TABULATION : pour définir des positions de tabulation.

- TITRE : pour inscrire un titre identifiant le corpus.

Voici maintenant une description détaillée des commandes de déclaration. Ces déclarations précèdent toujours le texte. Elles peuvent être écrites dans n'importe quel ordre, avec les contraintes suivantes :

- La déclaration PROTOCOLE, si elle est présente, doit être la première déclaration.

- La déclaration TITRE doit terminer la section déclarative d'un corpus. Toutes les lignes qui suivent cette déclaration seront considérées comme faisant partie du texte intégral.


déclaration ABRÉVIATION
Syntaxe :
ABRÉVIATION valeur texte

Il est possible que certaines chaînes de caractères soient utilisées très souvent dans un texte. Il est alors commode d'employer des abréviations pour les désigner. C'est là l'objet de la déclaration d'abréviation qui associe une chaîne de caractères à un chiffre. Cette abréviation devient effective dès le moment où elle est décodée par SATO; elle peut donc être utilisée dans le bloc des commandes. À chaque fois qu'on fera précéder un chiffre du caractère de propriété, normalement «*», la chaîne associée sera automatiquement insérée dans la ligne.

Le paramètre valeur est un chiffre de 0 à 9 et texte est le texte de l'abréviation.


déclaration ALPHABET
Syntaxe :
ALPHABET nom [séquence-alphabétique] [*SÉPARATEUR séquence-alphabétique] [*TERMINAL séquence-alphabétique] [*INITIAL séquence-alphabétique]

Les déclarations ALPHABET servent à définir les langues employées dans le texte et à indiquer à SATO le rôle des caractères de cette langue dans la composition des unités lexicales. Avec l'adoption d'Unicode, SATO reconnaît tous les caractères connus. Cependant, le logiciel laisse à l'utilisateur le soin d'énumérer la liste des caractères qui auront un statut de séparateur. SATO a des listes par défaut pour quelques langues. Les séparateurs «universels« (l'espace standard et les caractères de contrôle) n'ont pas besoin d'être définis. SATO pouvant manipuler des textes en plusieurs langues, il est possible de définir jusqu'à quatre alphabets pour un même corpus.

Dans les versions de SATO antérieures à 4.3, la déclaration de propriété servait aussi à définir la position des caractères dans l'ordre alphabétique. Ce n'est plus le cas maintenant car Unicode propose un algorithme général de tri qui est appliqué dans SATO. La syntaxe de la déclaration d'alphabet a donc été simplifiée par rapport à celle des versions avec l'adoption d'Unicode. Pour des raisons de compatibilié, la syntaxe des anciennes versions est toujours reconnue même si c'est la syntaxe simplifiée qui est présentée ici.

La déclaration ALPHABET doit obligatoirement faire partie de la section déclarative d'un corpus. Aussi, elle doit précéder toute déclaration de définition de propriété (cf. Déclaration PROPRIÉTÉ).

Le nom de l'alphabet est une chaîne de caractères alphanumériques qui est conservée comme valeur de la propriété prédéfinie Alphabet. Il s'agit d'une propriété symbolique pour le lexique. Si le nom de l'alphabet correspond à un code standard de langue, actuellement fr (français), en (anglais) et es (espagnol), tous les autres paramètres de la déclaration peuvent être ignorés. SATO utilisera une définition standard pour les alphabets de ces trois langues. La définition de ces alphabets est contenue dans le fichier de ressources linguistiques de SATO sato-fr.ini, fichier qui peut être modifié par l'installeur qui pourra aussi y ajouter d'autres alphabets.

Les paramètres séquence-alphabétique sont des suites d'unités alphabétiques séparées par des espaces. L'unité alphabétique est une chaîne d'un ou de plusieurs caractères (sauf l'espace). On peut inscrire des caractères réservés (voir Déclaration CARACTÈRE) dans une séquence alphabétique. Mais, SATO va quand même interpréter ces caractères dans le corpus comme des métacaractères. Dans une séquence alphabétique, on peut utiliser l'opérateur *BLOC, suivi de deux caractères, pour désigner une suite de caractères Unicode allant du premier au dernier caractères dans l'ordre des numéros Unicodes des caractères. Cela permet de définir le statut d'une plage continue de caractères Unicode sans avoir à les énumérer explicitement.

Le fait qu'un caractère, au sens de SATO, peut correspondre à une suite de caractères informatiques permet d'indiquer qu'un caractère simple, s'il fait partie d'une chaîne plus longue, aura le statut de cette chaîne. Par exemple, en ASCII, on avait l'habitude de marquer les trois points de suspension par la répétition de trois points simples. Si on définit la séquence «...» comme caractère séparateur de SATO, elle sera reconnue comme une forme lexicale composée de trois points et non pas comme trois occurrences de l'unité lexicale «.». C'est donc dire que SATO reconnaît d'abord les séquences les plus longues. Un autre exemple de chaînes longues concerne l'utilisation des points décimaux (ou virgule selon le standard) : «3.1416» pourra être reconnu comme une unité lexicale si «.1» apparaît dans la liste des caractères standards, même si «.» est aussi définit comme séparateur simple. Chacune des déclarations d'alphabet peut déclarer jusqu'à un maximum de 255 de ces caractères multitouches.

La première séquence-alphabétique définie dans la syntaxe de la déclaration sert précisément à déclarer ces séquences longues contenant un caractère aussi déclaré comme séparateur. La deuxième séquence est introduite par le mot clé *SÉPARATEUR. Elle définit les caractères délimiteurs comme les ponctuations. On a aussi les séquences introduites, respectivement, par *TERMINAL et *INITIAL qui énumèrent les caractères qui marquent la fin d'un mot ou son début. Par exemple. l'apostrophe en français a un statut terminal quand il marque l'élision comme dans «l'» qui prend la place du «le» devant un mot commençant par une voyelle. On sait qu'il y a quelques mots en français qui font exception à cette règle en intégrant l'apostrophe dans leur graphie : «aujourd'hui», «presqu'île» («presqu'ile»), etc.

Voici, à titre d'exemple, la définition standard de l'alphabet fr utilisé par SATO pour la langue française

Alphabet fr ,0 .0 ,1 .1 ,2 .2 ,3 .3 ,4 .4 ,5 .5 ,6 .6 ,7 .7 ,8 .8 ,9 .9 '_ **
aujourd' qu'île qu'ile 's *séparateur - , : ; . ? ¿ ! ... … < > ( ) [ ] { } « **
» % $ £ ¢ ¥ # " @ & + = / \ | * ÷ ± ® ­ ¦ *terminal ' ´ ` '

La première séquence alphabétique définit les chaînes de caractères qui doivent être considérées comme caractères standards non séparateurs, par exemple : ,0 .0 ,1 .1 etc. Ainsi, SATO pourra reconnaitre les nombres avec leur partie fractionnaire : 100,1 ou 100.1125. On notera les chaînes qui doivent inclure l'apostrophe. Aussi, pour couvrir l'emprunt de mots anglais avec marques du possessif, la chaîne «'s» est considérée comme faisant partie du mot. La deuxième séquence, introduite par *séparateur définit les ponctuations. On notera que les points de suspension se présentent comme une suite de 3 points ou comme caractère unicode … (&#8230;). Le trait d'union ASCII est défini comme séparateur, ce qui convient bien pour les constructions syntaxique comme dans «veux-tu?». Unicode propose plusieurs codes de remplacement du trait d'union ASCII pour des contextes particuliers. Par exemple, − (&#8722;) représente le signe arithmétique moins, le trait de césure insécable ‑ (&#8209;) peut être utilisé pour les mots composés. Unicode ne propose pas de point réservé aux abréviations. On peut toujours utiliser le one dot leader ․ (&#8228;) dont l'apparence est très près du point. Le blanc insécable   (&#160;) sera aussi reconnu comme un caractère non-séparateur. Finalement, la quatrième séquence, introduite par *terminal, énumère les caractères terminaux, c'est-à-dire les caractères qui délimitent la fin d'un mot, comme l'apostrophe d'élision en français.․

La liste des caractères terminaux reprend un certain nombre de caractères utilisés par certains logiciels de traitement de texte qui substituent un accent ou un autre signe à l'apostrophe conventionnel. Cela peut faire joli, mais constitue une source significative d'erreurs en analyse, surtout si le corpus est composé de textes de diverses sources. Voilà pourquoi le formulaire d'envoi de fichier du bureau SATO offre la possibilité de normaliser les apostrophes en remplaçant ces «faux apostrophes» par l'apostrophe ASCII conventionnel.

La définition de l'alphabet est loin de résoudre toutes les ambigüités des règles d'écriture. Même si on trouve dans Unicode des définitions de caractères plus spécifiques, elles ne sont pas toujours suffisantes. Aussi, la majorité des textes que l'on retrouve en format électronique n'utilisent pas toute la puissane d'Unicode. Voilà pourquoi, on recommande d'utiliser une stratégie de balisage pour encadrer des chaines de caractères qui devront être considérées comme des mots, indépendamment des règles de l'alphabets. Pour plus de détails, consulter la section Règles de codification du texte intégral.

La désambigüisation des codes typographiques n'est pas un préalable à l'utilisation de SATO. Il est souvent préférable de soumettre un premier état du corpus afin d'utiliser les outils d'analyse de SATO pour faciliter cette désambigüisation si elle s'avère nécessaire. Ainsi, par exemple, on trouvera dans la section «Tâches» de l'interface à SATO des procédures pour bloquer des locutions, c'est-à-dire des formes lexicales composées de plusieurs mots simples incluant des séparateurs, espaces y compris.


déclaration CARACTÈRE
Syntaxe :
CARACTÈRE [CITATION|COUPURE|LIAISON|PROPRIÉTÉ] caractère

Dans la codification d'un texte, certaines touches sont réservées et ont une signification spéciale dans SATO. En d'autres mots, même s'ils sont définis à l'intérieur d'un alphabet, ces caractères sont interprétés comme des caractères spéciaux ayant l'attribut de métacaractères. On distingue quatre types de métacaractères : CITATION, COUPURE, LIAISON et PROPRIÉTÉ.

- CITATION permet de redéfinir le caractère de citation utilisé pour introduire une majuscule de nom propre. Au moment de la lecture du texte, tous les mots sont inscrits au lexique en minuscules, même si les majuscules sont rétablies lors de la visualisation du texte; si on veut conserver au lexique les majuscules de noms propres, il faut alors les préfixer du caractère de citation (exemple : «\Pierre» qui se distingue alors de «pierre»). S'il n'est pas redéfini explicitement, «\ » est le caractère de citation qui permet de marquer une majuscule de nom propre.

Comme certaines fonctions de SATO facilitent le dépistage des noms propres, et comme l'identification des noms propres n'est pas toujours nécessaire pour l'analyse, il est rare qu'on doive procéder au marquage des noms propres en prétraitement.

- COUPURE permet de redéfinir le caractère de coupure utilisé pour scinder un mot entre deux lignes (par exemple : «cou- RT pure» sera traité par SATO comme «coupure RT»). Le trait d'union étant aussi utilisé pour constituer un mot composé, on risque de retrouver des cas d'ambiguïté si un mot composé est coupé en fin de ligne en position de trait d'union. Dans ce cas, SATO va réunir le mot composé en supprimant le trait d'union considéré alors comme simple trait de coupure. Il peut donc être nécessaire de changer le caractère de coupure par un caractère qui n'aurait pas d'autre utilisation dans le texte. S'il n'est pas redéfini explicitement, le caractère ASCII standard «-» est le caractère de césure utilisé pour couper un mot à la fin de la ligne

- LIAISON permet de redéfinir le caractère de liaison utilisé pour lier des groupes de mots dans un texte. Ceci est particulièrement commode pour «bloquer» certaines locutions conjonctives ou prépositives, certains noms propres ou locutions terminologiques, etc.; par exemple, on voudra considérer comme une seule entrée au lexique des expressions comme : aussitôt_que, de_temps_en_temps, assemblée_nationale, etc. Le caractère de liaison ressemble au caractère de coupure parce qu'il permet de réunir les deux parties d'un mot séparé par une fin de ligne. Cependant, le caractère de liaison fait partie du mot alors que le caractère de coupure en est exclus. S'il n'est pas redéfini explicitement, «_» est utilisé comme caractère de liaison pour lier des groupes de mots dans un texte. Le caractère de liaison a priorité sur la définition de l'alphabet. Ainsi, un point précédé de _ perdra son caractère de séparateur. Il est à noter que cette façon de faire est en désuétude et est maintenant remplacée par l'usage de balises *( et *) donnant, par exemple, *(aussitôt que*), *(de temps en temps*), *(assemblée nationale*), etc. L'interface à SATO fournit des procédures permettant de faciliter le dépistage et le blocage automatique de locutions. Ces procédures utilisent maintenant le balisage plutôt que le caractère de liaison.

- PROPRIÉTÉ permet de redéfinir le caractère de propriété utilisé pour introduire une propriété ou une abréviation; ce caractère est préfixé au nom de la propriété ou au chiffre de l'abréviation (exemple : *locuteur, *0). S'il n'est pas redéfini explicitement, l'astérisque «* » est utilisé comme caractère de propriété. Comme l'astérisque peut être utilisé dans certains types de documents, il pourrait être utile de le redéfinir en lui substituant, par exemple, l'accent circonflexe «^».


déclaration INFORMATION
Syntaxe :
INFORMATION texte

Il est souvent utile de conserver certains éléments d'information qui seront rappelés au moment de l'analyse (cf. TEXTE DÉCRIRE). La déclaration INFORMATION remplit cette fonction.

Le paramètre texte est le texte de l'information à retenir.

Dans l'exemple qui suit, on utilise la déclaration INFORMATION pour documenter l'usage de certains caractères de l'alphabet dont l'interprétation ne serait pas immédiate.

INFORMATION **
- _- traits d'union séparateur et non-séparateur; **
_. point d'abréviation; 

déclaration PAGE
Syntaxe :
PAGE nombre-lignes LIGNES nombre-car CARACTÈRES

La déclaration PAGE permet d'indiquer le nombre maximum de lignes que peut comporter une page de texte et le nombre maximum de caractères par ligne. Lorsque SATO lit, pour une page donnée, une ligne de texte dépassant ce nombre limite, il augmente automatiquement le compteur de page et ramène le compteur de lignes à 1. Ce mode de fonctionnement permet de paginer un document de façon automatique. Ainsi, si l'on prend la peine de paginer la première page de chaque nouveau document, les pages successives du même document seront construites de façon automatique. De même si une ligne dépasse la longueur maximale, SATO tentera de la couper à un délimiteur de mot proche de la limite.

Le paramètre nombre-lignes est un entier positif ou nul représentant le nombre maximum de lignes par page (60 par défaut). Si on met zéro, le découpage automatique du corpus en pages sera ignoré.

Le paramètre nombre-car est un entier positif représentant le nombre maximum de caractères par ligne.


déclaration PROPRIÉTÉ
Syntaxe :
PROPRIÉTÉ propriété {ENTIÈRE|SYMBOLIQUE|LIBRE} POUR {TEXTE|LEXIQUE} [liste-de-symboles]

Il est possible dans SATO de qualifier les mots, c'est-à-dire de leur associer des propriétés agissant comme variables pouvant prendre diverses valeurs conformes à leur type. La déclaration PROPRIÉTÉ sert les objectifs suivants :

  1. nommer la propriété;
  2. définir son type;
  3. définir sa portée;
  4. énumérer, dans le cas des propriétés symboliques, la liste des symboles utilisés comme valeurs possibles de la propriété.

Le paramètre propriété est le nom de la propriété que l'on veut définir. Un nom de propriété peut être composé de lettres, de chiffres et des caractères «-» et «_». Le nom doit commencer par une lettre et ne peut dépasser 16 caractères. Un nom qui ne diffèrerait du nom d'une propriété existante que par la casse des caractères et l'accentuation n'est pas admissible. Une fois nommée, la propriété peut être désignée par son nom complet ou son nom tronqué. La troncation consiste à omettre un certain nombre de caractères terminaux du nom. On doit cependant s'assurer de mettre le nombre suffisant de caractères pour désigner la propriété sans ambiguïtés. Par exemple, pour distinguer entre les propriétés locuteur et longueur, il faut utiliser au moins les trois premiers caractères du nom de la propriété.

On dira d'une propriété qu'elle est de type ENTIÈRE si ses valeurs sont des nombres entiers. La valeur initiale d'une propriété numérique est «0».

On dira d'une propriété qu'elle est de type SYMBOLIQUE si elle peut prendre comme valeurs un ou plusieurs symboles appartenant à une liste fournie par l'utilisateur. Le paramètre liste-de-symboles énumère les symboles possibles de la propriété, chacun étant séparé du suivant par au moins une espace ou une tabulation. Le symbole spécial, «nil» fait implicitement partie de la liste des valeurs possibles de chaque propriété symbolique et désigne l'absence de valeurs (ensemble vide). Le symbole «nil» est la valeur initiale (on dit aussi implicite) des propriétés symboliques.

Informé de la liste des valeurs admissibles de la propriété symbolique, SATO interceptera, lors de la soumission du corpus, tout symbole non déclaré. Ce mécanisme de validation peut cependant causer problème lorsque la liste exhaustive des symboles effectivement utilisés dans le corpus, pour une propriété donnée, n'est pas connue au moment de la soumission. Dans ce cas, il est possible d'omettre la liste des symboles dans la déclaration de la propriété. La liste des valeurs de la propriété sera alors constituée dynamiquement de tous les symboles rencontrés dans le corpus comme valeurs de la propriété. Pour dépister d'éventuelles erreurs de codification, il est fortement recommandé de faire afficher la définition de la propriété après avoir soumis le corpus afin de corriger le texte source. Il faudra alors resoumettre le corpus à SATO et valider de nouveau que les valeurs de la propriété sont bien formées.

Une propriété est de type LIBRE si ses valeurs possibles sont des chaînes arbitraires de caractères imprimables ne dépassant pas 255 caractères. Si un chaîne contient des caractères autres que des lettres, des chiffres et les signes - et _, elle devra être mise entre guillemets anglais (").

La portée d'une propriété concerne la nature des objets affectés par la propriété. Une propriété est dite lexicale si elle s'applique aux éléments du lexique (formes lexicales), c'est-à-dire aux mots hors contexte. Elle est dite textuelle si elle s'applique aux mots dans le texte, c'est-à-dire aux mots en contexte. Dans la déclaration de propriété, LEXIQUE est utilisé si la propriété porte sur le lexique alors que TEXTE est utilisé pour désigner une propriété qui porte sur le texte.

Voici des exemples de déclarations de propriété. La première ligne déclare une propriété «x» de type entier et portant sur le texte. La seconde déclaration définit une propriété «typo» symbolique pour le lexique qui pourrait être utilisée pour générer plusieurs entrées lexicales pour une forme qui se distinguerait par son apparence typographique. Le symbole «nil», défini implicitement lors de la création de chaque propriété symbolique, pourrait être utilisé pour désigner les mots qui ne sont ni en gras ni en italique. La troisième déclaration de propriété est extraite de l'exemple des fables de La Fontaine. La propriété «locuteur» sert à délimiter les parties du texte correspondant à un personnage particulier : le boeuf, la grenouille, le renard ou La Fontaine. Finalement, les deux dernières déclarations de propriété définissent, respectivement, une propriété «lemme» libre pour le lexique et une propriété «note» libre pour le texte.

PROPRIÉTÉ x ENTIÈRE POUR TEXTE
PROPRIÉTÉ typo SYMBOLIQUE POUR LEXIQUE italique gras
PROPRIÉTÉ locuteur SYMBOLIQUE POUR TEXTE boeuf grenouil renard lafont
PROPRIÉTÉ lemme LIBRE POUR LEXIQUE
PROPRIÉTÉ note POUR TEXTE

déclaration PROTOCOLE
Syntaxe :
PROTOCOLE IBM850|IM863|ISOLATIN

La déclaration PROTOCOLE permet de préciser le protocole utilisé pour la représentation des caractères dans le fichier-source. Trois protocoles de caractères sont actuellement supportés : ISOLATIN, IBM850 et IBM863. Si cette déclaration ne le modifie pas, le protocole de caractère utilisé par SATO est le protocole ISOLATIN.


déclaration TABULATION
Syntaxe :
TABULATION suite-de-nombres

La déclaration TABULATION permet de définir des tabulateurs, créant ainsi des niveaux d'indentation du texte. SATO peut gérer jusqu'à huit tabulateurs par ligne.

Le paramètre suite-de-nombres est la suite des numéros de colonne correspondant aux positions de tabulation. Les espaces successives dans le texte original conduisant à une position de tabulation vont provoquer l'insertion automatique d'une marque de tabulation. Le tabulateur sera représenté par la valeur «tab» de la propriété prédéfinie «édition». Le niveau de tabulation, lorsque supérieur à 1, sera aussi conservé. Les tabulateurs inscrits dans le texte original seront également reconnus et traduits en valeurs de la propriété «édition».

Voici un exemple d'utilisation de la déclaration TABULATION qui définit trois positions de tabulation en colonnes 9, 17 et 25 :

TABULATION 9 17 25

déclaration TITRE
Syntaxe :
TITRE titre

La déclaration TITRE a un double objectif. Elle permet tout d'abord de mémoriser un titre court qui servira à identifier le corpus. Elle indique également la fin du bloc des déclarations et le début du texte intégral. Il s'agit donc d'une déclaration obligatoire.

Le paramètre titre est une chaîne de caractères décrivant le corpus. La longueur maximale du titre est de 72 caractères.

Voici, à titre d'exemple, la déclaration de titre utilisée dans le corpus des fables de La Fontaine :

TITRE Deux fables de La Fontaine

Règles de codification du texte intégral

Voici des règles de codification du texte intégral. Les mots s'écrivent en utilisant les unités alphabétiques définies dans les déclarations d'alphabet. Normalement donc, le découpage du texte en mots se réalise par l'application des règles de l'alphabet correspond à la langue de la séquence textuelle considérée. Il arrive cependant que ces règles ne permettent pas de prendre en charge des formes lexicales non standards. On utilisera alors une stratégie de balisage pour forcer la constitution d'un mot sans tenir compte des règles de l'alphabet. Il s'agit d'encadrer la chaine de caractères considérée par les balises *( et *), comme, par exemple, dans « (*assemblée nationale*) » ou « *(http://www.ling.uqam.ca*) ».

La forme du texte original peut être conservée, y compris les traits de coupure qui marquent la coupure d'un mot qui se continue sur la ligne suivante. S'il n'a pas été redéfini (déclaration déclaration CARACTÈRE), le trait de coupure (césure) de mot en SATO est représenté par le trait d'union standard «-» en fin de ligne.

Aussi, s'il n'est pas possible d'entrer une ligne du texte original sur une seule ligne physique, on peut l'inscrire sur deux lignes à condition de terminer la première par «**».

Dans la construction du lexique du texte, toutes les majuscules sont implicitement converties en minuscules. Il peut être nécessaire cependant d'empêcher cette conversion automatique des majuscules, par exemple pour identifier les noms propres. Dans ce cas, il s'agit de faire précéder la majuscule par le caractère de citation «\» (cf. déclaration CARACTÈRE CITATION). Autrement, les majuscules seront conservées comme marques d'édition dans la propriété textuelle prédéfinie «édition» (valeur «maj» ou «cap» si le mot est entièrement en majuscules).

Une affectation de propriété s'introduit par le caractère de propriété «*» (cf. déclaration CARACTÈRE PROPRIÉTÉ) immédiatement suivi du nom de la propriété, du signe d'égalité «=» et de la valeur qu'on veut lui associer. Cette valeur est soit un nombre, soit un symbole, ou soit une chaîne de caractères entre guillemets anglais (") selon le type de la propriété. Le signe d'égalité peut être précédé de «+» ou de «-» pour indiquer que la valeur de propriété doit être ajoutée ou soustraite de la valeur courante.

Dans le cas des propriétés symboliques, une valeur peut être simple (par exemple « corbeau ») ou multiple, c'est-à-dire composée de plusieurs valeurs simples. On doit alors séparer chacune des valeurs simples par une virgule, ne pas mettre d'espaces et entourer le tout par des parenthèses. Ainsi, par exemple, on pourrait avoir comme valeur de la propriété locuteur « (corbeau,renard) » voulant signifier ici qu'un mot a été prononcé par les deux locuteurs en même temps.

Si une affectation de propriété ne s'applique qu'à un mot, alors on doit l'inscrire immédiatement après le mot, sans laisser d'espaces (par exemple « maître*syntaxe=nom » où la propriété «syntaxe» servirait à donner la catégorie grammaticale des mots); on dit alors qu'il s'agit d'une affectation locale. Si l'affectation concerne plusieurs mots consécutifs (affectation globale), alors on la dégage par des espaces pour indiquer qu'elle va s'appliquer à tous les mots suivants, et cela jusqu'à ce qu'une nouvelle affectation vienne modifier la situation; un tel exemple serait l'utilisation de la propriété locuteur dans les deux fables.

Il est possible d'utiliser en parallèle les affectations globales et locales. Par exemple, on pourrait avoir une phrase comme celle-ci :

*loc=lafont Il ouvre un large bec, croac*loc="corbeau", laisse tomber sa proie.

SATO comprendra que « croac » a été prononcé par le corbeau alors que le reste de la phrase appartient à La Fontaine.

Comme on le voit dans l'exemple précédent, une affectation locale de propriété peut faire en sorte que la valeur de la propriété soit immédiatement suivie du mot suivant. Dans le cas d'une propriété symbolique avec valeurs multiples, par exemple « *loc=(corbeau,renard) », la parenthèse droite ferme la valeur de propriété. Mais, ce n'est pas le cas en général, par exemple dans « d'*syntaxe="préposition"un*syntaxe=article ». En mettant la valeur de propriété entre guillemets anglais ("), on délimite la frontière entre la valeur de la propriété (« préposition ») et le mot suivant (« un »). Dans des versions antérieures de SATO, on acceptait aussi l'utilisation d'une espace virtuelle représentée par «*_», donnant « d'*syntaxe=préposition*_un*syntaxe=article ». Pour des raisons de compatibilité avec des corpus déjà traités, cette construction est reconnue mais son utilisation n'est pas recommandée.

Le caractère de propriété suivi de l'accolade gauche «{» permet d'introduire des commentaires au texte. Ces commentaires, tableaux, notes marginales, etc., seront enregistrés tels quels sans générer d'entrées au lexique. Cela permet d'exclure de l'analyse lexicale certaines parties du texte qui ne seront conservées qu'à titre de commentaires d'accompagnement lors de l'écriture du texte dans SATO.

Voici la syntaxe des commentaires :

Syntaxe :
*{ texte-du-commentaire }

texte-du-commentaire comprend n'importe quel caractère sauf l'accolade gauche «}» qui sert à terminer le commentaire. Un commentaire peut donc occuper plus d'une ligne et comporter des caractères graphiques. Pour aider à dépister l'absence de fermeture d'un commentaire par l'accolade droite, SATO signalera la présence d'une accolage gauche dans un commentaire. Ce n'est pas une erreur mais seulement l'indice possible d'une erreur.

La pagination du texte prend aussi la forme d'une affectation de propriété.

La propriété «page» fait partie des propriétés prédéfinies de SATO. Une marque de pagination inscrite dans le texte par l'utilisateur peut prendre plusieurs formes. Une marque peut ainsi être composée uniquement d'un identificateur de document, ou d'un identificateur de document et d'un numéro de page suivie facultativement d'un numéro de ligne. On ne doit pas ajouter du texte sur la même ligne qu'une marque de pagination.

La propriété page est composée d'un identificateur et d'une suite facultative de un à trois nombres entiers positifs séparés entre eux par la barre oblique «/». Ces quatre informations s'interprètent comme étant respectivement le nom du document (Doc1 implicitement), le numéro de la page dans ce document (1 implicitement), le numéro de la ligne dans cette page (1 implicitement) et finalement, le numéro du mot dans cette ligne (1 implicitement). Si aucune marque explicite (débutant par *page=) n'est inscrite dans le texte, SATO utilise les valeurs implicites des quatre informations pour paginer les mots du texte. Si l'utilisateur introduit des marques de pagination dans le texte, SATO modifie en conséquence ses informations sur la pagination.

Lorsqu'une marque de pagination ne contient pas d'identificateur de document (par exemple : « *page=/2»), SATO utilise le dernier identificateur inscrit ou bien la valeur implicite de document (Doc1) si aucun document n'a été déclaré.

Lorsqu'une information n'est pas inscrite dans la marque de pagination, SATO utilise sa valeur implicite. Ainsi, si une marque ne contient qu'un numéro de page, SATO va comptabiliser automatiquement les numéros de lignes et de mots à l'intérieur de la page.

Voici des exemples valides de marques de pagination que l'utilisateur peut écrire dans son texte :

*page=Doc1/7
*{le texte qui suit s'inscrit dans la septième page du document identifié «Doc1».  Par la suite, SATO va comptabiliser automatiquement les numéros de lignes et de mots à l'intérieur de la page.}

*page=texte1/3/2
*{1er mot de la 2e ligne de la 3e page du document texte1.}

*page=/5
*{5e page du document actuel, 1ère ligne, 1er mot.}

*page=chap2
*{document chap2, 1ère page, 1ère ligne, 1er mot.}

De façon générale, l'utilisateur fournira le nom du document et le numéro de page, laissant ainsi la comptabilisation des lignes et des mots à SATO.

Si le nom du document est suivi du caractère @, immédiatement suivi d'un nom de fichier portant généralement le suffixe .txt, alors SATO ira chercher le contenu du document dans ce fichier. Si le nom du document est absent, c'est-à-dire que la valeur de la propriété page commence immédiatement par le caractère @, SATO utilisera le nom du fichier, amputé de son suffixe, comme nom du document. Par exemple, *page=@corbeau.txt indiquera à SATO que le document se trouve dans le fichier corbeau.txt et portera le nom corbeau. Aussi *page=Corbeau_Renard@corbeau.txt indiquera à SATO que le document se trouve dans le fichier corbeau.txt et portera le nom Corbeau_Renard.

Voici un exemple.

*{ nom du document } 
*page=@corbeau.txt
*{Le premier document porte le nom «corbeau» et son contenu se trouve dans le fichier corbeau.txt}

*page=@grenouil.txt
*{Le deuxième document  porte le nom «renard» et son contenu se trouve dans le fichier grenouil.txt} 

En l'absence de pagination explicite, SATO reconnaît le caractère de saut de page (form feed, en anglais) comme une indication de changement de page. De même, un saut de page sera automatiquement inséré à chaque fois que l'on a atteint le nombre maximum de lignes par page (cf. déclaration LIGNE). Ces deux modes de pagination implicites ne modifient cependant pas le nom du document courant. Celui-ci ne peut être introduit que par une pagination explicite.

SATO est aussi en mesure de détecter automatiquement les débuts de paragraphe qui, pour être repérés, devront être précédés d'une ou de plusieurs lignes blanches. Si plusieurs lignes blanches sont présentes, SATO n'en conserver qu'une seule. Le premier mot du paragraphe recevra alors «par» comme valeur de la propriété prédéfinie Édition (cf. propriétés prédéfinies).


Exemple 1 -- Corpus Le dormeur du val

Voici un exemple de présentation d'un corpus sans annotation prêt à être soumis à SATO. Il s'agit du poème d'Arthur Rimbaud, Le dormeur du val. Le texte lui-même est précédé de deux déclarations obligatoires. La déclaration ALPHABET indique à SATO que le texte utilise l'alphabet français standard «fr». La déclaration TITRE permet de nommer le corpus et de terminer la section déclarative du corpus.

Contenu du fichier «dormeur.sat» :

ALPHABET fr
TITRE Le dormeur du Val d'Arthur Rimbaud

C'est un trou de verdure où chante une rivière
Accrochant follement aux herbes des haillons
D'argent; où le soleil, de la montagne fière,
Luit: c'est un petit val qui mousse de rayons.

Un soldat jeune, bouche ouverte, tête nue,
Et la nuque baignant dans le frais cresson bleu,
Dort; il est étendu dans l'herbe, sous la nue,
Pâle dans son lit vert où la lumière pleut.

Les pieds dans les glaïeuls, il dort. Souriant comme
Sourirait un enfant malade, il fait un somme:
Nature, berce-le chaudement: il a froid.

Les parfums ne font pas frissonner sa narine;
Il dort dans le soleil, la main sur sa poitrine
Tranquille. Il a deux trous rouges au côté droit. 

Exemple 2 -- Corpus des fables de La Fontaine

Voici, à titre d'exemple, le contenu des fichiers de démonstration concernant les fables de Jean de La Fontaine. Il s'agit de trois fichiers: «fable.sat» qui contient les commandes de déclaration et les références aux fichiers de texte, «corbeau.txt», le texte de la première fable et «grenouil.txtt», le texte de la deuxième fable.

Contenu du fichier «fable.sat» :

ABRÉVIATION 0 *locuteur=lafont
ABRÉVIATION 1 *locuteur=boeuf
ABRÉVIATION 2 *locuteur=grenouil
ALPHABET fr
CARACTÈRE COUPURE -
PROPRIÉTÉ locuteur SYMBOLIQUE POUR TEXTE               **
boeuf grenouil lafont renard
INFORMATION  Corpus de démonstration
TABULATION 9 17 25
TITRE Deux fables de La Fontaine
*PAGE=@corbeau.txt
*PAGE=@grenouil.txt

Voici une brève description des déclarations contenues dans le fichier «fable.sat».

ABRÉVIATION 0 *locuteur=lafont
ABRÉVIATION 1 *locuteur=boeuf
ABRÉVIATION 2 *locuteur=grenouil
...ces trois déclarations introduisent les abréviations 0, 1 et 2 utilisées dans le fichier «grenouil.txt».
ALPHABET fr
... indique que le corpus est en français et utilise la définition standard de l'alphabet «fr» déjà connu par SATO.
CARACTÈRE COUPURE -
... indique que le trait d'union utilisé en bout de ligne sera considéré comme un trait de césure de mot en fin de ligne.
PROPRIÉTÉ locuteur SYMBOLIQUE POUR TEXTE ** boeuf grenouil lafont renard
... introduit la propriété textuelle «locuteur» avec les symboles qui lui sont associés.
INFORMATION Corpus de démonstration
... permet d'enregistrer un descriptif du corpus.
TABULATION 9 17 25
... indique à SATO de reconnaître l'indentation du texte en colonnes 9, 17 et 25 comme correspondant aux tabulations de niveau 1, 2 et 3.
TITRE Deux fables de La Fontaine
... donne le titre du corpus et termine la section déclarative du corpus.
*PAGE=@corbeau.txt *PAGE=@grenouil.txt
... les deux attributions à la propriété prédéfinie PAGE introduisent les documents «corbeau» et «grenouil» dont le contenu textuel se trouve respectivement dans les fichiers «corbeau.txt» et «grenouil.txt».

Contenu du fichier «corbeau.txt» :

*{
La fable suivante est de Jean De La Fontaine
____________________________________________
}
        LE CORBEAU ET LE RENARD
*LOC=lafont Maître \Corbeau, sur un arbre perché,
Tenait en son bec un fromage.
Maître \Renard, par l'odeur alléché,
Lui tint à peu près ce langage:
*LOC=renard "Hé! bonjour, \Monsieur du \Corbeau.
Que vous êtes joli! Que vous me semblez beau!
Sans mentir, si votre ramage
Se rapporte à votre plumage,
Vous êtes le phénix des hôtes de ces bois."
*LOC=lafont À ces mots, le corbeau ne se sent pas de joie;
Et pour montrer sa belle voix,
Il ouvre un large bec, laisse tomber sa proie.
Le renard s'en saisit, et dit: *LOC=renard "Mon bon \Monsieur,
Apprenez que tout flatteur
Vit aux dépens de celui qui l'écoute:
Cette leçon vaut bien un fromage, sans doute."
*LOC=lafont Le corbeau, honteux et confus,
Jura, mais un peu tard, qu'on ne l'y prendrait plus.

Contenu du fichier «grenouil.txt» :

*LOC=nil La grenouille qui veut se faire
aussi grosse que le boeuf

*0 Une grenouille vit un boeuf
Qui lui sembla de belle taille.
Elle qui n'était pas grosse en tout comme un oeuf,
Envieuse s'étend, et s'enfle, et se travaille
Pour égaler l'animal en grosseur,
Disant:
*2 "Regardez bien, ma soeur;
Est-ce assez? dites-moi: n'y suis-je point encore?
*1 Nenni.
*2 M'y voici donc?
*1 Point du tout.
*2 M'y voilà?
*1 Vous n'en approchez point."
*0 La chétive pécore
S'enfla si bien qu'elle creva.
Le monde est plein de gens qui ne sont pas plus sages:
Tout bourgeois veut bâtir comme les grands seigneurs,
Tout petit prince a des ambassadeurs,
Tout marquis veut avoir des pages.

*{Fin du texte}

La première fable commence par un commentaire, délimité par «*{» et «}». Les codes débutant par «*loc=» (propriété locuteur) permettent d'annoter le texte en indiquant que les mots qui suivent appartiennent à La Fontaine ou aux divers personnages des fables. Comme le titre ne fait pas partie de la narration, il doit avoir «nil» comme valeur pour locuteur (signifiant l'absence de valeur). C'est ce qui est explicitement inscrit dans la deuxième fable. Dans la première, comme le titre précède la première apparition de la propriété locuteur, il reçoit implicitement la valeur «nil» pour cette propriété.

Le caractère «\» précédant certaines majuscules, comme le «C» de « Maître \Corbeau», sert à introduire une majuscule de nom propre. Autrement, les majuscules sont considérées comme des marques de ponctuation. On remarquera finalement que, dans la deuxième fable, nous avons remplacé les mentions de la propriété locuteur par des abréviations invoquées par l'astérisque suivi du chiffre associé.

On remarquera l'utilisation des abréviations *0 *1 *2 dans le fichier «grenouil.txt» Lors de la génération du corpus, SATO traduira, par exemple la ligne « *0 Une grenouille vit un boeuf» qui deviendra « *locuteur=lafont Une grenouille vit un boeuf».