La meilleure définition dETYMO est probablement celle dune « machine étymologique abstraite » qui, grâce à un certain « langage », peut être « programmée » de façon à produire des étymologies dans une langue spécifique. Du point de vue informatique, ETYMO peut être considéré comme un « interpréteur de formules linguistiques » : dans une première phase (parsing), le programme lit des « définitions » (contenues dans ce que nous appelons un « catalogue de règles ») quil traduit dans des structures internes exécutables. En combinaison avec linterpréteur, ces structures forment un « algorithme complexe » qui permet de calculer des étymologies dans une langue donnée. Cet algorithme peut être exécuté (phase de linterprétation à proprement parler) soit en lappliquant à des unités lexicales isolées (mots individuels), soit à des ensembles de mots plus larges (corpus). Schématiquement, tout calcul effectué par ETYMO requiert donc deux informations : (1) un « catalogue de règles » qui définit lévolution diachronique dune langue et (2) le matériel linguistique mots individuels ou en corpus auquel le calcul sapplique :
Dans les chapitres suivants, nous présenterons le « langage » qui sert à « programmer » ETYMO. Notons que, dun point de vue scientifique, une telle présentation doit surtout aborder deux aspects du formalisme, à savoir (1) sa syntaxe et (2) sa sémantique. Étant donné quune séparation stricte des deux aspects aurait aboutit à un exposé relativement austère et peu lisible et que, outre cela, ils sont souvent interdépendants, nous avons essayé de trouver un juste milieu afin de les aborder ensemble.
Nous aurons aussi à présenter les différents types de calculs qui peuvent être effectués une fois quune certaine programmation a eu lieu. Ceci nous amènera à parler des différents types de résultats ainsi que des opérations disponibles pour sauvegarder les étymologies calculées. Afin de compléter le tour dhorizon, nous exposerons aussi quelques principes généraux qui caractérisent le calcul. En vue dune future amélioration du programme, nous aimerions finalement consacrer quelques pages à la documentation de certains aspects relevant de limplémentation même de celui-ci.
Le catalogue de règles est un fichier ASCII(1) composé de quatre parties différentes qui contiennent les définitions (1) des traits distinctifs (features), (2) des caractères littéraux (litterals), (3) des symboles (symbols) et (4) des règles proprement dites (rules). Afin que ces différentes parties puissent être reconnues par le programme, elles doivent être délimitées par des mots-clés du type @defpartie et @endpartie, donc @deffeatures @endfeatures pour les traits distinctifs, @defliterals @endliterals pour les caractères littéraux, @defsymbols @endsymbols pour les symboles, @defrules @endrules pour les règles. Lordre susmentionné des définitions doit être respecté étant donné que les traits sont utilisés pour définir les littéraux et les symboles qui, à leur tour, sont utilisés pour formuler des règles.
Tandis que le système phonologique de PHONO repose sur des traits distinctifs binaires, ETYMO introduit ce que nous appelons des traits distinctifs multiples. Cela veut dire que chaque trait peut contraster non seulement avec sa forme négative ([+x] soppose à [-x]), mais avec un nombre quelconque de traits ([+x] soppose à [+y] qui soppose à [+z] etc.). Si nous nous sommes décidés à « rompre » avec le système binaire traditionnel, cest quil force parfois lutilisateur à des définitions qui paraissent illogiques. Prenons lexemple des consonnes qui se caractérisent par leur « lieu darticulation » qui peut être « bilabial », « labio-dental », « alvéolaire », « dental », « palatal », « vélaire », « laryngal » etc. Dans un système binaire, on est obligé de définir un trait pour chaque lieu articulation. Chaque trait peut ensuite avoir deux valeurs (« + » ou « »), ce qui donne des définitions du style
|
ldent |
bil |
alv |
dent |
pal |
vel |
lar |
/t/ |
- |
- |
- |
+ |
- |
- |
- |
/b/ |
- |
+ |
- |
- |
- |
- |
- |
Nous constatons que seul un trait peut avoir la valeur « + » par phonème : en effet, pour des raisons évidentes, une consonne ne peut pas sarticuler à deux endroits différents en même temps, ce qui veut dire que les traits sexcluent mutuellement. Cest pour cette raison quil nous semble plus logique de définir des groupes de traits. Chaque phonème peut ensuite « sélectionner » un (et exactement un) trait par groupe, comme lillustre le schéma suivant pour /b/ et /x/ :
Le système de traits multiples nexclut pas la possibilité de définir des oppositions binaires : tous les groupes contiennent par défaut un élément « zéro » qui soppose à tous les traits du groupe. Lorsque le groupe ne contient quun seul trait, celui-ci et lélément « zéro » forment donc une opposition binaire.
Tout au début du catalogue de règles se situent les définitions des traits distinctifs. Celles-ci doivent respecter la syntaxe suivante :
n := { t1, t2, .., tm } m e N+(2)
où n désigne le nom du groupe et t1, t2, ..., tm représentent les traits distinctifs qui lui appartiennent. On pourrait donc définir un groupe « articulation » qui contiendrait les lieux darticulation des consonnes :
articulation := { bil, ldent, alv, dent, pal, vel, lar }(3)
Dans un tel groupe, chaque trait peut être décrit par deux coordonnées, à savoir le nom du groupe (n) et celui du trait (tx, avec 1 £ x £ m). Pour abréger, nous introduisons deux notations différentes pour désigner ces traits : (1) une notation longue [n,tx] qui contient les deux coordonnées et qui est donc aussi précise que possible, et (2) une notation brève [tx] qui fait abstraction du nom du groupe. Etant donné quETYMO exige que le nom des traits soit univoque, celui du groupe nest, en principe, pas nécessaire pour identifier le trait. Nous utiliserons donc de préférence la deuxième notation.
Dans un tel groupe, chaque trait [tx] soppose à tous les autres traits [t1], [t2], .. [tx-1], [tx+1] .., [tm], mais en même temps, il soppose aussi à un « trait zéro » [0]. Chaque groupe contient donc exactement m+1 éléments. Grâce à ce trait zéro il est possible de définir des traits binaires traditionnels, comme par exemple
accent := { ton }
où la valeur [accent,ton] soppose à la valeur [accent,0], opposition qui, comme nous le verrons plus tard, pourra aussi être notée [+ton] vs [-ton].
Nous avons dit que chaque phonème « sélectionne » un certain nombre de traits provenant de plusieurs groupes. Ce fait doit forcément soulever la question de savoir si tous les traits ou groupes peuvent être combinés(4). Il semble, en effet, que certaines combinaisons ne font pas de sens ou devraient même être considérées comme interdites : ainsi, le trait [+ton] qui indique laccent dune voyelle ne doit probablement pas sappliquer aux consonnes, cest-à-dire aux phonèmes qui présentent le trait [+cons]. On pourrait donc dire que le trait [+ton] est incompatible avec le trait [+cons], ou si nous inversons la perspective que le trait [+ton] exige la présence du trait [+voc].
Il existe donc, pour chaque groupe, un certain nombre de traits qui déterminent sa validité. Afin de tenir compte des dépendances qui existent entre les traits, ETYMO offre la notation suivante :
d1, d2, .., dk : n := { t1, t2, .., tn } m, k e N+
où d1, d2, ..., dk désignent ce que nous appelons les « traits dominants », par opposition aux « traits dominés » représentés par t1, t2, ..., tm. Les traits dominants se caractérisent donc par le fait quils doivent être présents pour que les traits t1, t2, ..., tn du groupe n soient valables.
Afin de donner un exemple concret de cette notation, voici une version complétée des définitions amorcées dans les paragraphes précédents :
: type := { cons, voc } (5) cons : articulation := { bil, ldent, alv, dent, pal, vel, lar } voc : articulation := { ant, cent, post }
Nous définissons donc un premier groupe « type » qui nest dominé par aucun trait, ce qui veut dire quil est global (et quil peut être combiné avec nimporte quel groupe). Ensuite, nous définissons deux groupes qui, quoiquils portent les deux le nom « articulation », nont pas la même signification : le premier (avec les traits [±bil], [±ldent] etc.) nest valable que pour les consonnes, tandis que le deuxième (avec [±ant] « antérieur », [±cent] « central », [±post] « postérieur ») ne peut être combiné quavec des voyelles.
Notons quil est possible dindiquer plusieurs traits dominants, qui, dans ce cas, doivent être séparés par des virgules. Lorsquun groupe est dominé par plusieurs traits, ceux-ci « partagent » les traits du groupe. On pourrait, par exemple, définir un groupe de traits binaire « durée » avec les éléments [+long] vs [-long] qui serait valable pour les consonnes aussi bien que pour les voyelles :
cons, voc : durée := { long }
Si le groupe « durée » pouvait être combiné avec nimporte quel groupe (et quil soit donc valable pour tous les groupes sans exception), on pourrait aussi ne pas indiquer de trait dominant tout simplement :
: durée := { long }
Dans ce cas, les groupes « type » et « durée » seraient, les deux, globaux. Comme nous le verrons en relation avec les traits non phonologiques(6), tous les groupes globaux peuvent être combinés entre eux.
Vu que les traits « dominés » peuvent être à leur tour « dominants », ces relations de validités peuvent créer de véritables « hiérarchies » qui ont une influence notamment sur le calcul : ainsi, chaque fois que le trait dun phonème est modifié, le programme établit sa validité à lintérieur de larbre hiérarchique pour effacer ensuite, si nécessaire, tous les traits inférieurs au trait en question, cest-à-dire tous les traits dominés par lui (infériorité directe) ou tous les traits dominés par des traits quil domine (infériorité indirecte). Cela veut dire, par exemple, que lorsquon transforme une voyelle en consonne, tous les traits dominés par [+voc] (donc tous les traits valables pour les voyelles) sont effacés, exception faite de ceux que le trait [+voc] partage avec le trait [+cons](7).
Le système hiérarchique tel que nous venons de le présenter, constitue, à nos yeux, une solution idéale par rapport au problème des validités. Malheureusement, il reste théorique dans la mesure où, quoique prévu et en partie implémenté dans la version UNIX, il a dû être simplifié, pour des raisons de temps, dans la version MS-DOS. Dans celle-ci, le système de validités a été remplacé par un système de « priorités » où chaque groupe de traits est pourvu dune valeur (p) entre 0 et 9 :
Par définition les numéros bas dominent les numéros plus élevés, cest-à-dire un groupe de la priorité x domine tous les groupes ayant une priorité p > x. La seule exception est la priorité 0 qui est réservée aux traits non phonologiques(8). Voici, à titre dexemple, les définitions données plus haut transcrites, cette fois-ci, pour la version MS-DOS :
Contrairement à la version UNIX, il nest pas clair, ici, avec quels traits les deux groupes « articulation » peuvent se combiner (ils pourraient ici être combiné à la fois avec [+cons] et [+voc], ce qui constitue un certain défaut théorique). Par contre, le traitement lors du calcul reste, pour lessentiel, le même, cest-à-dire que chaque fois quun trait avec une priorité x est modifié, tous les traits avec une priorité p > x sont effacés(9).
ETYMO distingue entre deux types de traits : ceux phonologiques et ceux non phonologiques. Tandis que les premiers comme leur nom lindique sont en rapport avec les phonèmes, les seconds sappliquent au mot : cest-à-dire que si les traits phonologiques servent à caractériser les phonèmes du mot, les traits non phonologiques servent à caractériser le mot lui-même en tant quunité sémantique, syntaxique, grammaticale etc. Un trait non phonologique permet, par exemple, de distinguer entre un cas sujet ou régime (trait « grammatical »), entre un verbe inchoatif ou non inchoatif (trait « sémantique »), entre un emploi proclitique ou enclitique (trait « syntaxique »), etc.
La définition des traits non phonologiques est la même que celle des traits phonologiques, sauf quils doivent être marqués comme « non dominés » dans la version UNIX et avec une priorité 0 dans la version MS-DOS. Voici, à titre dexemple trois groupes de traits grammaticaux :
version UNIX : | : cas := { nom, gen, acc, dat, abl, voc }
(10) : genre := { m, f, n } : nombre := { sg, pl } |
version MS-DOS : |
0 : cas := { nom, gen, acc, dat, abl, voc } 0 : genre := { m, f, n } 0 : nombre := { sg, pl } |
A laide de ces groupes, il est donc possible de déterminer un mot par rapport à son cas (six cas possibles), par rapport à son genre (masculin, féminin ou neutre) ou par rapport à son nombre (singulier ou pluriel).
Du point de vue technique, les traits non phonologiques sont liés au mot de la même façon quun trait phonologique, sauf que le phonème porteur du trait est, cette fois-ci, ce que nous appelons un « son factice » (dummy sound) : il sagit dun phonème « muet » qui se trouve tout au début du mot et qui est représenté par le caractère « @ ». Nous en parlerons plus en détail au chapitre « frontières » et « mots ».
Les caractères littéraux (ou « littéraux », en bref) correspondent aux phonèmes dun mot. Comme ceux-ci peuvent être considérés comme des « traits distinctifs simultanés »(11), la définition consiste à leur assigner un certain nombre de traits. Cela peut être obtenu par la notation suivante :
l := [ t1, t2, .., tn ] n e N+ (12)
où t1, t2, ..., tn désignent des traits préalablement définis et l représente une lettre. Des 256 caractères théoriquement disponibles sur lordinateur, tous ne peuvent pas être utilisés : sont exclus par avance les caractères prédéfinis par le système dexploitation (en général les codes ASCII 0 30 environs), les chiffres (0, 1, 2, ..., 9), les majuscules (qui, elles, sont réservées aux symboles), les autres caractères prédéfinis par le programme (essentiellement >, /, , +, _, :, ., #, !, &, ?, @ et la virgule) ainsi que toutes les parenthèses(13). Il reste donc, pour lessentiel, les minuscules ainsi que des caractères spéciaux du style à, á, â, ã, ä, å, ß, d, ñ, ç etc.(14) Voici, à titre dexemple, la définition des cinq voyelles principales a, e, i, o, u en latin :
i := [ voc, haut, ant ] e := [ voc, moy, ant ] a := [ voc, bas, cent ] o := [ voc, moy, post ] u := [ voc, haut, post ]
Ces définitions sont donc basées sur un triangle vocalique constitué par deux axes qui, par rapport à leur « lieu darticulation », pourraient être qualifiés d« horizontal » (avec les valeurs [+ant] « antérieur », [+cent] « central » et [+post] « postérieur ») et de « vertical » (avec les valeurs [+haut], [+moy] « moyen », [+bas]).
[+haut] |
i |
|
|
|
u |
[+moy] |
|
e |
|
o |
|
[+bas] |
|
|
a |
|
|
|
[+ant] |
[+cent] |
[+post] |
A ces définitions de base, on pourrait ajouter dautres traits tels que [+ouv] vs [+ferm] ou [+long] vs [+bref] pour distinguer les variantes ouvertes / fermées et longues / brèves de chacune de ces voyelles.
Tandis que les littéraux correspondent à un (et exactement un) phonème, les symboles décrivent certaines catégories de phonèmes. La définition dun symbole est pratiquement identique à celle dun littéral, sauf que les traits (t1, t2, .., tn) doivent être précédés soit par « », soit par « + » et que le caractère qui est censé représenter le symbole (s) doit être une majuscule :
s := [ +-t1, +-t2, .., +-tn ] n e N+ (15)
Lorsquun trait est précédé par « + », cela signifie quil doit être présent dans le phonème en question. Au contraire, lorsquil est précédé par « », il ne doit pas être présent. Voici deux exemples qui illustrent le fonctionnement des signes :
B := [ +cons, +bil ] O := [ +cons, -nas ]
Dans le premier, B représente les consonnes bilabiales (p, b, m), cest-à-dire tous les phonèmes qui contiennent à la fois les traits [+cons] et [+bil]. Dans le deuxième, O se rapporte aux consonnes « non nasales » (ou « orales »), cest-à-dire tous les phonèmes qui contiennent [+cons], mais pas [+nas].
En règle générale, les différents traits maintiennent entre eux un rapport de conjonction, cest-à-dire que toutes les conditions doivent être remplies pour que le phonème corresponde au symbole. Il existe, cependant, une exception importante à cette règle : lorsquun symbole contient plusieurs traits du même groupe précédés par « + », il suffit quun des traits énumérés soit présent. Dans la définition
H := [ +voc,+post, +ant ] (même groupe)
par exemple, où les traits [+haut] et [+moy] proviennent du même groupe, le phonème remplit la condition du symbole sil contient soit le trait [+haut], soit le trait [+moy]. Dans ces cas, il est important dobserver que les traits doivent se suivre immédiatement dans la définition. Il ne serait donc pas correct décrire
H := [ +voc,+post, +ouv, +ant ] faux : [+post] et [+ant] sont séparés
Vu léquivalence
H := [ +cons, +post, +ant ] <=> H := [ +voc, -cent ]
la deuxième forme est à préférer puisquelle est plus courte.
Notons quil existe aussi trois symboles prédéfinis ?, & et @ qui ont des significations particulières :
? : | se réfère
à un « phonème quelconque ».
Nimporte quel terme symbolique peut être remplacé
par un terme commençant par ?. Ainsi,
V[+ton] <=> ?[+voc,+ton] C[+bil,+son] <=> ?[+cons, +bil, +son]sont parfaitement équivalentes(16). |
& : | représente un « phonème vide ». Il ne peut contenir que des frontières et il est utilisé pour déterminer la structure syllabique dun mot(17) ou pour préserver les frontières dun phonème (dans la conséquence). Notons que le phonème vide coïncide toujours avec le phonème précédent. |
@ : | représente le « phonème factice ». Le phonème factice qui nest pas un phonème à proprement parler se trouve au tout début dun mot et contient les traits non phonologiques ainsi que la première frontière de celui-ci. |
Bien quil sagisse de symboles prédéfinis, ils disposent des mêmes possibilités que ceux définis par le linguiste et peuvent donc être combinés en termes(18).
Les règles, qui constituent sans doute la partie la plus importante et complexe du catalogue, obéissent à un formalisme que nous aimerions présenter en trois étapes : nous parlerons dabord de la structure des règles en général. Nous présenterons ensuite les éléments qui sinscrivent dans cette structure de base. Finalement, nous reviendrons sur la structure de base afin dexpliquer la coopération entre les différentes parties dune règle.
Chaque règle de quelque complexité quelle soit suit un modèle de base assez simple qui est le suivant :
[T:] A > B [/ [C] -- [D]] [ : K]
Les caractères gras (« : », « > », « / », « -- ») servent à structurer la règle et ne peuvent pas être modifiés, tandis T, A, B, C, D et K sont des variables qui signifient :
variable |
désignation |
fonction |
T |
temps |
moment où la règle sapplique |
A |
condition |
suite de phonèmes qui subira la transformation |
B |
conséquence |
transformation que A subira |
C -- D |
contexte (-- = "focus") |
ce qui se trouve à gauche et à droite de A |
K |
commentaire |
description (linguistique) de la transformation |
Les éléments entre crochets sont optionnels. Il existe donc différents formats de règles :
A > B forme la plus simple T: A > B / C D : K forme la plus complète A > B / C D A > B / D formes intermédiaires A > B : K T: A > B
Du point de vue sémantique, une règle nest rien dautre quune implication logique du type « SI A [entre C et D], ALORS B », cest-à-dire si un mot remplit la condition [C] A [D], la partie A subira la transformation décrite dans B.
Cette notation, prévue initialement pour la version UNIX, na malheureusement pas pu être implémentée telle quelle dans la version MS-DOS : celle-ci nadmet pas de contextes ce qui veut dire que toute règle du type
(i) A > B / C D
doit être formulée comme
(ii) C A D > C B D
Cette reformulation ne pose aucun problème lorsque le contexte (C et D) ne contient pas déléments disjonctifs(19). Dans tous les autres cas, il peut arriver que ce qui constitue une seule règle dans la version UNIX doive être formulé en plusieurs règles dans la version MS-DOS(20). Bien que cette restriction du formalisme constitue sans doute un certain désavantage (dans la mesure où plus de règles seront nécessaires pour décrire la même quantité de transformations), elle ne nuit finalement pas (ou très peu) à la fonctionnalité effective du programme.
Les parties centrales des règles condition, conséquence et contexte décrivent des séquences de phonèmes en recourant à ce que nous appelons des « unités minimales ». Ces unités sont au nombre de trois : ce sont (1) les termes (symboliques ou littéraux) qui se réfèrent à un seul segment dans le mot à calculer, (2) les jokers qui se rapportent à plusieurs segments et (3) les listes qui représentent des combinaisons plus complexes de termes et de jokers (et qui peuvent se référer à un ou plusieurs segments).
Un terme est une séquence de caractères qui se réfère à un (et exactement un) segment dans mot à calculer. Chaque terme contient un caractère de base (B) qui peut être soit un symbole, soit un phonème. Ce caractère peut être suivi dun marqueur (M), dune liste de traits supplémentaires (t1, t2, .., tn) ainsi que dune ou de plusieurs frontières (F) :
Tous les éléments sauf B sont optionnels : un terme peut donc se composer dun seul caractère un symbole ou un littéral tels que C, V, a, b, m etc. ou, au contraire, de séquences assez longues comme par exemple a1[+ouv,+ton]|!# ou C[+ocl,-son]#.
Le symbole ou le littéral qui sert de caractère de base (B) doit avoir été défini, au préalable, dans la section correspondante(21). Quant au marqueur (M), il sagit dun chiffre entre 1 et 9 qui identifie de manière univoque le phonème auquel le terme correspond. Les marqueurs jouent un rôle important notamment dans la conséquence de la règle(22). En ce qui concerne les traits supplémentaires (t1, t2, ..., tn), il sagit de traits phonologiques qui sajoutent au caractère de base. Chacun de ces traits doit être précédé par « + » ou « » qui ont, ici, exactement la même signification que dans la définition des symboles et des littéraux(23) : une expression telle que a[+ton] signifie donc que non seulement le phonème doit être a (ce qui revient à dire quil doit contenir tous les traits qui ont été définis pour ce littéral), mais que, outre cela, il doit aussi contenir le trait [+ton]; lexpression a[-ouv], par contre, signifie que le phonème ne doit pas contenir le trait [ouv](24).
Quant aux frontières (F), elles sont représentées par les caractères |, + et # dont chacun a une signification particulière :
| = frontière de syllabe + = frontière de morphème # = frontière de mot
Lorsquun terme contient plusieurs frontières, lordre « | avant + avant # » doit être respecté. Chaque frontière peut être niée par le caractère « ! » qui doit précéder immédiatement la frontière correspondante(25).
A la différence des termes, les jokers peuvent se référer à zéro, à un ou à plusieurs segments dans le mot à calculer. Ils servent essentiellement à formuler des règles qui décrivent des « transformations à distance »(26). Ces transformations se caractérisent par le fait que les phonèmes qui se trouvent entre ceux modifiés, restent intacts et nont, dans la plupart des cas, pas dinfluence sur celles-ci.
Un joker se compose dun caractère de base (J) suivi par un marqueur optionnel (M) qui est à nouveau un chiffre entre 1 et 9 :
J M
Il existe deux types de jokers différents que nous appelons, en fonction du caractère qui les représente, le joker-point (« . ») et le joker-astérisque (« * »). La différence entre les deux consiste dans leur comportement par rapport aux frontières de syllabe : tandis que le joker-astérisque peut dépasser les frontières de syllabe (représentées par « | »), le joker-point ne le peut pas. Voici, à titre dexemple, lapplication des deux jokers dans le mot @#mu|rum#(27) :
joker |
partie(s) affectée(s) |
C * C |
mu|r ET rum |
C . C |
rum |
En combinaison avec le phonème vide &(28), le joker-point peut être utilisé, notamment, pour déterminer la structure syllabique dun mot :
@# . V . &| . V . &| . V . &# (29)
Cette suite de caractères désigne donc nimporte quel mot de trois syllabes. Afin de pouvoir mieux illustrer le fonctionnement exact de ce joker et notamment les correspondances possibles qui peuvent sétablir dans le calcul concret, voici son application aux mots @#fa|bu|lam# et @#le|gum|bre# (30). Nous avons numéroté les différents éléments termes et jokers afin de rendre visibles leurs correspondances respectives :
@# . V . &| . V . &| . V . &# 0 1 2 3 4 5 6 7 8 9 10 11 12
dans @#fa|bu|lam# (i) : | 0 = @#(31) 4 = &|(32) 8 = &|(33) 12 = &#(34) 1 = F 5 = B 9 = L 2 = A| 6 = U| 10 = A 3 = 7 = 11 = M# |
dans @#le|gum|bre#(ii) : | 0 = &# 4 = &| 8 = &| 12 = &#(35) 1 = L 5 = G 9 = BR 2 = E| 6 = U 10 = E# 3 = 7 = M| 11 = |
Ces exemples montrent quun joker peut correspondre à zéro (voir i : 3, 7 ; ii : 3, 11), un (voir i : 1, 2, 5 etc.) ou plusieurs (voir ii : 9) phonèmes.
ETYMO distingue deux types de listes, à savoir (1) des listes simples et (2) des listes récursives. Dans les deux cas, la liste contient un certain nombre déléments qui se situent entre deux accolades. La liste simple est utilisée dans la conséquence où elle exprime une « évolution multiple ». Elle obéit à la syntaxe suivante :
{ e1, e2, .., en } n e N+, n > 1
Une telle liste nest donc rien dautre quune énumération linéraire dun certain nombre (n) déléments (e1, e2, .., en) qui se trouvent tous au même niveau.
Dans une liste récursive, par contre, chaque élément (e1, e2, .., en) peut être soit un élément simple (comme dans la liste simple), soit une liste. En dautres termes, une liste récursive se caractérise par le fait quelle peut, à son tour, contenir des listes :
L x1,2,..,n | = = | { x1, x2, .., xn } n e N+ soit: un élément simple (ei) soit: une liste (L) |
Les listes récursives sont utilisées notamment dans le contexte où elles désignent des éléments disjonctifs(36).
Les unités minimales (termes, jokers et listes) sont utilisées dans les parties centrales (condition, conséquence et contexte) des règles. Outre cela, ces dernières peuvent contenir un temps et un commentaire. Par la suite, nous expliquerons plus en détails les fonctions de ces différentes parties.
La variable optionnelle T désigne le moment (approximatif) où la règle produit le changement. Elle doit être un nombre entier qui peut prendre des valeurs positives (par exemple +100 ou tout simplement 100) ou négatives (-100, ce qui peut correspondre à une date « av. J.-Chr. », par exemple). T intervient dans le calcul dans la mesure où lon peut indiquer, pour chaque mot, le moment où il entre dans le calcul(37). Lorsque lutilisateur fait usage de cette possibilité, lordinateur vérifie la date de chaque règle et ne lapplique que dans le cas où celle-ci est postérieure à la date du mot. Après lapplication de la règle, la nouvelle forme reçoit la date de celle-ci. Si une règle nest pas datée de manière explicite, mais quelle a été précédée par une règle dont la date était postérieure à celle du mot, lordinateur déduit quelle peut aussi être appliquée (ETYMO procède donc à une datation implicite des règles). Dans ces cas, la date de la nouvelle forme est indiquée comme x++, ce qui veut donc dire « postérieur au moment x »(38).
La condition (A) se compose dune séquence déléments (a1, a2, .., an) qui peuvent être soit des termes, soit des jokers. Ceux-ci décrivent une suite de phonèmes que le mot doit contenir :
A := a1 a2 .. an n e N+ (39)
Ces éléments entretiennent entre eux un rapport logique de conjonction, cest-à-dire que tous doivent être vrais pour que la condition soit remplie.
Il existe deux types différents de conséquences : (1) la conséquence simple et (2) la conséquence multiple. Bien que, du point de vue technique, ces deux types soient identiques(40), leur notation diffère légèrement :
conséquence simple : | A > B1 | |
conséquence multiple : | A > { B1, B2, .., Bn } n e N+ |
La conséquence multiple doit donc être entourée de deux accolades et les différents éléments (dont chacun représente une conséquence simple) doivent être séparés par des virgules. Dans les deux cas, le ou les élément(s) Bx se compose(nt) dune suite de termes ou de jokers (b1, b2, .., bn) qui décrivent une transformation :
Bx := b1 b2 .. bn n, x e N+
La méthode implicite qui est celle utilisée par défaut assigne les termes et les jokers selon leur ordre dapparition. Dans la règle
V C[+sourd] V > V C[+son] V
le programme assigne les termes de la façon suivante :
condition& : V C[+sourd] V | | | conséquence : V C[+son] V
Notons que cest lordre individuel de chaque symbole ou littéral qui importe. Donc, même si on a des règles comme
V C V > V V C | |
ou : | V C V > C V V |
où la conséquence ne respecte pas lordre absolu (V avant C avant V) de la condition, les deux voyelles (V) et la consonne sont assignées séparément (on aurait donc, dans ce cas aussi, des correspondances V1 Û V1, V2 Û V2, C1 Û C1).
La méthode implicite, bien que pratique, atteint vite ses limites : dès que la conséquence contient plus ou moins de symboles ou de littéraux que la condition, il est impossible de savoir quelles correspondances il faut établir entre eux. Parfois, même si le nombre des éléments est le même, les correspondances ne sont pas évidentes. Pour éviter tout malentendu, il existe donc la possibilité de recourir à la méthode explicite. Celle-ci utilise des marqueurs afin de définir des relations univoques entre les termes. Cette méthode permet non seulement dassurer une assignation correcte des termes, mais encore dinverser lordre des éléments où dajouter plusieurs fois le même phonème dans la conséquence :
V1 V2 > V2 V1 V1 > V1 V1 | inversement de lordre le même phonème est ajouté 2 fois |
Les deux méthodes peuvent dailleurs être combinées dans la même règle :
V1 C V2 > V1 C V2 | V1, V2 = assignation explicite C = assignation implicite |
Finalement, il existe aussi la possibilité de ne pas assigner certains termes. Dans ce cas, il sagit dun nouveau phonème qui est inséré dans la conséquence :
p t1 > t t1(41) | le premier t nest pas assigné |
Il est important de savoir que dès quun terme de la conséquence est assigné, il est copié tel quel depuis la condition. Contrairement à ce quon pourrait croire, la règle
p1 t2 > t1 t2 | transformation zéro : #ap|ta# ® #ap|ta# |
ne provoque pas dassimilation du groupe pt, mais le laisserait intact du fait que t1 de est assigné à p1 qui est donc copié tel quel(42).
Le contexte pourrait être défini comme une « prolongation de la condition » dans la mesure où il fait également partie de la prémisse de la règle. A la différence de celle-ci, pourtant, les phonèmes auxquels il se réfère ne peuvent pas être modifiés : le contexte ne fait que décrire ce qui doit précéder et suivre immédiatement les phonèmes désignés dans la condition, mais il ne peut subir aucune modification.
Lavantage du contexte réside en cela quoutre les éléments conjonctifs (tels que nous les avons déjà vus dans la condition), il admet des éléments disjonctifs sous forme de listes récursives(43). Le contexte gauche ou droit peut donc être défini comme
C := D1 D2 .. Dn n e N+où Dx désigne soit un élément simple (E) terme (T) ou joker (J) soit une liste récursive (L) contenant des éléments qui peuvent, à nouveau, être soit des éléments simples (E), soit dautres listes récursives (L), donc
D := E v L E := T v J L := { X1, X2 , .. , Xm } X := C |
E = élement simple, L = liste T = terme, J = joker X = élement de la liste C = contexte (voir ci-dessus) |
Du point de vue sémantique, les séquences simples (D1 .. Dn) expriment un rapport de conjonction, tandis que les listes (L) désignent un rapport de disjonction. Voici trois exemples qui peuvent illustrer ces rapports :
(i) A > B / -- ab (ii) A > B / -- { a, b } (iii) A > B / -- { ab, cd }
Dans (i) la condition A doit être suivie ET par a ET par b. Dans (ii), la condition A doit être suivie OU par a, OU par b. Dans (iii), la condition A doit être suivie SOIT par a ET b, SOIT par c ET d.
Grâce à leur structure récursive, les contextes peuvent devenir très complexes, ce qui permet dexprimer un grand nombre de conditions en peu de caractères. Malheureusement, seule la version UNIX peut donner une première impression de la puissance de ce formalisme, étant donné que les contextes nont pas été implémentés dans la version MS-DOS.
Chaque règle peut être pourvue dun commentaire linguistique (K) qui décrit la transformation. Celui-ci doit se situer tout à la fin de la règle :
A > B / C -- D : K
Le commentaire na pas de format particulier : nimporte quelle suite de caractères est donc permise. Le commentaire est affiché sur lécran lors du calcul dun mot individuel(44).
1 Un fichier qui contient du texte, tout simplement. Nimporte quel éditeur conventionnel devrait, en principe, être capable de produire de tels fichiers.
2 Dans la version actuelle (V 1.3), le nombre des traits par groupe est limité à 255. Quant au nombre des groupes, il est limité à 200.
3 Nous abrégeons les traits tel que nous le ferons aussi dans le catalogue de règles valable pour lespagnol.
4 Dans le système binaire traditionnel, tous les traits sont globaux, ce qui signifie que nimporte quel trait peut être combiné avec nimporte quel autre. Le concept que nous suivons ici est différent puisque nous considérons que les traits sont interdépendants.
5 Lorsquun groupe nest dominé par aucun trait, il est quand même nécessaire décrire les deux points « : ».
6 Voir ch. , p. .
7 Notons quà lheure actuelle, ces fonctions nont pas encore été implémentées dans la version UNIX. La version MS-DOS, quant à elle, a recours à un système hiérarchique différent.
8 Voir ch. , p. .
9 Comme, dans la version MS-DOS, il est impossible dindiquer des « traits partagés » cest-à-dire des groupes dominés par plusieurs traits lors de la transformation dun trait (dans un phonème) tous les traits inférieurs sont effacés, même si, du point de vue linguistique, ceux-ci pourraient être compatibles avec le trait dominant impliqué dans la transformation. Par exemple, si nous avons un trait [+long] avec la priorité 2 et deux traits [+voc] et [+cons] avec la priorité 1 et que, dans un phonème [+voc, +long], nous remplaçons le trait [+voc] par [+cons], le trait [+long] est effacé même si, en théorie, ce dernier est compatible à la fois avec [+voc] et [+cons].
10 Notons que le trait [+voc] « vocatif » entre en conflit avec le trait [+voc] « vocalique ». Dans la pratique, on serait donc obligé de changer un des deux noms.
11 Robins, op. cit., 1976, p. 237.
12 Le nombre n est limité à 200.
13 Outre cela, nous déconseillons aussi lutilisation de caractères qui sont susceptibles dobtenir une signification linguistique dans une des versions futures, par exemple des caractères tels que %, $, , » etc.
14 Si nous restons assez vagues par rapport au problème des caractères qui peuvent être utilisés, cest que cela peut, effectivement, varier de système en système, le problème de la conversion correcte des caractères spéciaux étant, dailleurs, un des plus anciens du domaine informatique. La meilleure méthode pour savoir si un caractère peut être utilisé ou non est celle de passer le catalogue par le parseur : si celui-ci ne signale pas derreur, le caractère est correct et peut être utilisé.
15 Le nombre n est théoriquement illimité. Comme le nombre des groupes est limité à 200 et comme chaque groupe peut contenir 255 traits au maximum, la valeur théorique maximale pour n est 200 x 255 = 51000.
16 Pour les crochets, voir ch. , p. .
17 Voir ch. , p. .
18 Voir ch. , p. .
19 Voir ch. , p. .
20 La règle t > d / V { V, r } par exemple doit être formulée en deux règles : (1) VtV > VdV et (2) Vtr > Vdr.
21 Voir ch. , p. et ch. , p. .
22 Voir ch. , p. .
23 Voir ch. , p. .
24 Notons que les termes littéraux servent aussi à entrer le(s) mot(s) à calculer dans lordinateur. Nous nous sommes décidés pour cette notation puisquelle permet dexprimer des « variantes de phonèmes » sans avoir à définir un caractère spécial pour chacune de celles-ci. Cela réduit donc la quantité de caractères qui seraient nécessaires pour désigner tous les phonèmes dune langue (au lieu de définir un caractère pour le phonème « a nasal tonique », on ne définit quun phonème « a nasal » par exemple â auquel on peut ensuite rajouter le trait supplémentaire « tonique », donc â[+ton]. On na donc utilisé quun caractère pour exprimer les deux variantes tonique et atone du phonème â) ce qui constitue un grand avantage étant donné que le nombre des caractères disponibles sur lordinateur est limité.
25 Il existe donc en tout 27 (= 3(3)) combinaisons possibles pour F, à savoir « pas de frontière »; |, !|, +, !+, #, !#; |+, !|+, !|!+, |!+, |#, !|#, !|!#, |!#, +#, !+#, !+!#, +!#; |+#, !|+#, !|!+#, !|!+!#, |!+!#, |+!#, |!+#, !|+!#. Voir aussi ch. , p. .
26 Nous pensons à des métaphonies (par exemple un i final long qui a une influence sur lévolution de la voyelle tonique, comme cest le cas de certains parfaits latins), à certaines dissimilations (par exemple arbore > arbol, sanguine > sangre, *rodondo > redondo etc.), à des dissimilations dites totales du style propriu > propio (ou encore trem(u)lare > *tremblar > tiemblar) ou à des métathèses (animalia > alimaña, parabola > palabra, mirac(u)lu > milagro etc.). Voir aussi ch. , p. .
27 Pour la notation des mots, voir ch. , p.
28 Voir ch. , p. .
29 Pour le caractère « @ » voir ch. , p. .
30 Pour la notation des mots, voir ch. , p. .
31 La frontière de mot est sauvegardée dans le « son factice » symbolisé par « @ ».
32 La frontière de mot est ici la même que celle référencée par lélément 2. Le son vide coïncide donc avec le joker « . » qui, dans ce cas-ci se trouve être vide, lui aussi , ce qui fait quil coïncide finalement avec lélément 2.
33 La frontière de mot est la même que celle référencée par lélément 6. Voir la note précédente.
34 La frontière de mot est la même que celle référencée par lélément 11. Voir avant-dernière note.
35 Pour 0, 4, 8, 12, remarques similaires que pour lexemple précédent.
36 Voir ch. , p. .
37 On peut donc simuler des emprunts postérieurs ou des (semi-)cultismes comme nous lavons suggéré au ch. , p. .
38 Voir ch. , p. .
39 Dans la pratique, n ne dépassera probablement pas le nombre 20.
40 Pour lordinateur, autant les conséquences simples que celles multiples sont des listes, avec la seul différence que, dans le premier cas, la liste ne contient quun seul élément.
41 Dans la pratique, cette règle sécrirait plutôt p1t2 > t&1t2 pour préserver les frontières qui pourraient éventuellement se situer après p. Mais dans ce cas aussi, le premier t nest pas assigné.
42 Voir ch. , p. .
43 Voir ch. , p. .
44 Voir ch. , p. .
Retour à la page principale | << Chapitre précédent | Chapitre suivant >> |