Manuel de Codage
Le manuel de codage est un standard de saisie pour les textes
hiéroglyphiques. Il est officiellement décrit dans [BGH+88]. Les logiciels d'édition de
hiéroglyphes utilisent ce standard, mais lui apportent
généralement un certain nombre de modifications. Celles-ci
répondent, d'une part, à la demande des utilisateurs, qui
réclament un meilleur contrôle sur le rendu du système, et
d'autre part corrigent quelque bogues dans le standard d'origine
(en particulier pour tout ce qui concerne le hachurage des
textes).
Ce document se veut une présentation précise de l'état « actuel
» du standard. Il se base essentiellement sur
winglyph1.2. Dans cette présentation, les éléments
présentés sans commentaire spécial font partie de [BGH+88]. Ceux qui sont extraits de Winglyph
sont suivis de WG ; ceux qui proviennent de Tksesh sont
suivis de Tk. La version de Tksesh correspondante est la
version actuellement en développement. Je ne connais pas assez
bien Macscribe pour l'inclure ici. Enfin, les propositions sans
implémentation actuelle sont suivie du mot PROP
Conventions
Un texte au format du manuel de codage est a priori
écrit en ASCII ou en ISO8859.1.
Du fait de la multiplicité des plates-formes, il serait
souhaitable (ce n'est pas le cas actuellement, à ma
connaissance) que tout programme traitant des textes au format
du MDC reconnût les séquence de codes ascii (10), (13, 10) et
(13) comme des fins de lignes.
Description informelle du manuel de codage
le principe général du Manuel est le suivant : les signes sont
codés selon leur code typographique dans la fonte de Gardiner
(A40, I3, etc.) sauf pour les unilitaires, les bilitaires, et
les trilitères. Pour ceux-ci, il est aussi possible d'utiliser
leur translittération (voir tableau pour les codes). En cas
d'ambiguïté, seul le signe le plus fréquent sera accessible par
sa translittération.
Les choix sont parfois curieux. Par exemple, iw
est N18 (l'île), pas D54 (les jambes qui marchent). Le corpus
utilisé pour faire ces choix était-il représentatif de
l'ensemble des textes ? (dans l'état actuel de ma base, où le
néo-égyptien et les textes écrits en hiératique sont très
représentés, je trouve 40 N18 pour 892 D54 !)
Les variantes de signes dont les codes sont suivis d'une
astérisque dans la liste, comme A14*, sont codés en remplaçant
l'astérisque par un « A » : « A14A », ceux suivis de deux
astérisques, comme G7** sont codés avec un « B » : « G7B ».
Les signes sont combinés en les séparant par les symboles « -
», « * », « : » : « - » sépare deux cadrats, « : » permet
d'empiler des signes verticalement, et « * » sépare des signes
horizontalement, à l'intérieur d'un cadrat. Les parenthèses
permettent de changer les priorités.
Ligatures (TK, WG)
Le système de ligatures proposé ici est particulier à la
version actuelle de TKsesh. Winglyph utilise la même notation,
mais considère les ligatures commes des hiéroglyphes composites.
En particulier, pour winglyph, une ligature est connue ou
inconnue. Pour Tksesh, une ligature est une façon particulière
de grouper des hiéroglyphes. Si la ligature est définie, tksesh
les groupera d'une manière spéciale, sinon, il se comportera
comme si les signes étaient séparés par '*'. Le symbole servant
à lier des hiéroglyphes est '&'. Les modificateurs comme \,
\t, etc. ne sont pas pris en compte. Les marques grammaticales
sont par contre significatives.
exemples
- A&t
- ligature simple des signes A et t
- t&w&t
- ligature de trois signes. On peut lier autant de signes que
nécessaire.
- k-A &p-w
- ligature de deux signes n'appartenant pas au même mot
Grammaire du manuel de codage
Nous donnons ici une grammaire formelle du manuel de codage.
Cette grammaire est destinée aux programmeurs qui voudraient
écrire des logiciels lisant et écrivant des textes au format du
manuel.
La description de cette grammaire utilise les notations suivantes
:
- [...]
- le texte entre crochets est optionnel
- (...)
- les parentèses groupent du texte
- *
- le texte suivi par l'astérisque est répété 0 ou plusieurs
fois
- +
- le texte suivi par « plus » est répété 1 ou plusieurs
fois
- A|B
- la barre signifie « ou » : le texte A ou le texte B
-
"..."
-
le texte entre guillemets se trouve tel quel dans le document.
Par exemple, "*" désigne le signe « astérisque ».
mdcfile |
::= |
[WORDEND] [SEPARATOR] (textitem [SEPARATOR])* textitem
[SEPARATOR] |
textitem |
::= |
uppercadrat | PAGEEND | LINEEND | textsuper |
textsuper |
::= |
TEXTSUPER TEXTSUPERCHAR* |
uppercadrat |
::= |
cadrat [HACHING]
|
|
::= |
TOGGLE
|
|
::= |
TEXT
|
cadrat |
::= |
(subcadrat ":")* subcadrat |
subcadrat |
::= |
(inhierlist "*")* inhierlist |
inhierlist |
::= |
sign |
|
::= |
STARTCONSTRUCT cadrats ENDCONSTRUCT |
|
::= |
"(" cadrats ")" |
cadrats |
::= |
uppercadrat ([SEPARATOR] uppercadrat)* |
sign |
::= |
hieroglyphs | lig |
|
|
| HALFSPACE | FULLSPACE | REDPOINT | BLACKPOINT |
|
|
| HACHG | HACHV | HACHT | HACHH |
hieroglyphs |
::= |
hieroglyph | hieroglyph OVERWRITE hieroglyph |
lig |
::= |
hieroglyph ("&" hieroglyph)+ |
hieroglyph |
::= |
[GRAMMAR] HIEROGLYPH MODIFIER* [WORDEND] |
Note : remarquez que le texte en caractères latins n'intervient
pas comme élément de cadrat (+lSigne inconnu+s:n
,
par exemple, est illégal). On peut cependant l'inclure dans un
cadrat en le parenthésant.
Éléments lexicaux
- ESPSO ::= (" "|\t|\n|\015|"_"|"-")*
-
(Tk) Espaces optionnels. Ce token permet d'apporter une
certaine robustesse à l'analyseur syntaxique. Il est légal
après la plupart des autres tokens, si un espace n'a pas de
sens.
- WORDEND ::= " ", " " (deux espaces), "_", "__"
-
un espace ou un souligné marquent la fin d'un mot. Deux
espaces ou deux soulignés marquent la fin d'une phrase.
(Tk) Note : remarquer que le marqueur suit
immédiatement le dernier signe du mot. Ainsi, la
séquence : "tA:Aa32*(t:xAst)" doit-elle se coder
"tA:Aa32*(t:xAst_)" et non "tA:Aa32*(t:xAst)_".
- HACHING ::= "#"["1"]["2"]["3"]["4"]
-
(WG, repris dans Tk) Système simple de
hachurage. Le cadrat est séparé en quatre quadrants, ainsi :
chaque quart peut être hachuré ou non. Ainsi, "#124"
signifient que les cadrants 1,2, et 4 sont hachurés.
- PAGEEND ::= "-!!"
- PAGEEND ::= "-!!" [ ENTIER "%" ] ESPSO (WG)
- LINEEND ::= "-!"
- LINEEND ::= "-!" [ ENTIER "%" ] ESPSO (WG)
- marque la fin d'une page (resp. d'une ligne). L'entier
optionnel qui suit indique un saut dans winglyph.
- SEPARATOR ::= "-"
- SEPARATOR ::= "-" ESPSO(Tk)
- OVERWRITE ::= "#" | "##"
- Superposition de deux signes. La première version est à
éviter, elle devrait être supprimée du MDC, car elle est ambiguë.
- Sépare deux cadrats.
- TOGGLE ::= ("-#-" | "#b" | "#e" | "$r" | "$b" | "?" | "??" | "^" | "$" ) ESPSO
- Ces séparateurs sont des "drapeaux". Ils modifient le texte
qui les suit, et l'état du texte en question reste modifié
jusqu'à ce qu'un autre TOGGLE le change à nouveau. Par
exemple, le texte après "$r" est en rouge jusqu'à ce qu'un
"$b" le passe en noir.
- -#- : passe de hachuré à non hachuré et vice-versa
- #b : passe en mode "hachuré" (WG)
- #e : passe en mode "non hachuré" (WG)
- $r : passe en mode "rouge" (WG)
- $b : passe en mode "noir" (WG)
- $ : passe de "noir" à rouge et réciproquement (à éviter)
- ? : début/fin de passage en lacune
- ?? : début/fin de ligne en lacune
- ^ : début/fin d'haplographie
- +[sl] : passe en hiéroglyphes/texte romain/italiques/...
- TEXT ::= ([^+])*
-
Le texte dans un passage en caractères alphabétiques. Notez
que le symbole "+" ne peut être utilisé. On pourra le remplacer par "+"
- TEXTSUPER ::= "|"
- TEXTSUPERCHAR ::= [^-]
-
Un numéro de ligne est indiqué par un "|" suivi du texte à
placer au dessus de la barre. Il se termine par un "-".
Constructions parenthésées : cartouches, commentaires
philologiques
STARTCONSTRUCT ... ENDCONSTRUCT
En fait, nous résumons ici plusieurs constructions.
Cartouches
Les cartouches, serekh, etc... sont construits
grâce à des crochets "<" et ">".
- "<"["S"|"F"|"H"]["b"|"m"|"e"] ESPSO... ">"
- Cartouche. La première lettre indique de quel type de cartouche il s'agit :
- rien : cartouche
- S : serekh
- F : enceinte
- H : chateau-Hwt
la seconde lettre spécifie quelle partie du cartouche doit être dessinée :
- rien : tout le cartouche
- b : début
- m : milieu
- f : fin
- "<"["S"|"F"|"H"][0123] ESPSO... ["S"|"F"|"H"][0123]">"
- (WG)
Système similaire au précédent. Les numéros ont les significations suivantes:
- 0 : l'extrémité du cartouche n'est pas dessinée
- 1 : l'extrémité non décorée du cartouche (pour un vrai
cartouche, celle sans le noeud. Pour un serekh, la partie "haute", etc...)
- 2 : l'extrémité décorée du cartouche
- 3 : pour les Hwt uniquement, l'extrémité décorée avec le carré en haut.
Commentaires philologiques
Ces constructions sont:
-
[[..]] : texte effacé (rendu par [...]). Notez
que WinGlyph considère [[ et ]] comme des
symboles (et leur donne donc la même classe que
sign dans notre grammaire). Cela rend difficile
la détermination du passage effacé (un crochet ouvrant
peut avoir pour pendant plusieurs crochets fermants),
mais permet par contre un meilleur rendu.
[[*pt:p*]]*t
-
[{...}] : texte superfétatoire (rendu par
{....})
-
["..."] : texte disparu, mais autrefois
lisible.
-
['...'] : ajout du scribe (rendu par '...')
-
[&...&] : ajout de l'éditeur (rendu par
<...>)
Modificateurs
Les modificateurs (MODIFIER
dans la grammaire
précédente) permettent de fixer ou changer certaines
caractéristiques des signes. Actuellement, les modificateurs
reconnus sont :
- "\" NOMBRE
- fixe la taille du signe, en pourcentage de sa taille «
normale ». La signification de « taille normale » n'est pas
fixée a priori.
- "\"
-
inverse un signe. S'il est dans le sens gauche/droite, le met
dans le sens droite-gauche. Par exemple :
C2\-A30
- "\r" ("1"|"2"|"3"|"4")
-
rotation dans le sens inverse des aiguilles d'une montre (donc
dans le sens trigonométrique). Chaque unité correspond à 90
degrés.
- "\t" ("1"|"2"|"3"|"4")
-
rotation dans le sens des aiguilles d'une montre. Chaque unité
correspond à 90 degrés. Le signes est auparavant inversé.
- "\R" ["-"]ENTIER
-
rotation dans le sens des aiguilles d'une montre, exprimée en
degrés.
- "\i"
- (Tk) signe à ignorer. Ce signe n'est là que
pour occuper de l'espace. Le système pourra, soit ne pas le
dessiner du tout, soit le dessiner en pointillés, en gris
pâle, etc... Le signe ne devra pas non plus être pris en
compte dans des applications lexicographiques.
L'intérêt
de ce signe est de régler le problème qui se pose quand la
structure logique du texte et la structure graphique des
cadrats ne coïncident pas. Pour un exemple non informatique,
voir par exemple Hornung, Amduat, III, p. 780. Une
colonne commence ainsi : i\i*(n\i:U36*(1:n)
,
parce que le i-n
est déjà écrit sur la page
précédente.
L'idée de cette extension doit beaucoup à
Spencer Tasker, dans les versions préliminaires d'ETML.
- "\inword" NOMBRE
- (PROP) Le signe appartient au mot dont le numéro
suit. Ceci est une méthode alternative pour délimiter les
mots. Deux possibilités sont à étudier. D'un point de vue
logique, ce système fonctionne, mais rend complexe la
recherche des mots d'un texte. On peut envisager d'ajouter un
marqueur de début de mot et un marqueur de fin de mot. Cela
permettrait de plus d'avoir une certaine localité des numéros,
si on le souhaite. Exemple :
H\fw1-Xr\fw2\ew2 -b\ew1
permet d'écrire le groupe Xry-Hbd en
distingant les deux mots. Un problème de cette approche
est que nous aurions deux systèmes de désignation des mots,
certe compatibles, mais pas forcément faciles à combiner.
Forme générale d'un modificateur
Pour la compatibilité des applications, nous proposons que
toute séquence de la forme "\" LETTRE* CHIFFRE* soit
reconnue comme un modificateur, et ignorée le cas échéant.
Autres éléments
- HALFSPACE ::= "."
- demi-espace. Un quart de cadrat
- SPACE ::= ".."
- espace. Un cadrat
- HACHG= "//""
- hachure de la taille d'un cadrat entier
- HACHV= "v/"
- hachure vertical d'un demi-cadrat
- HACHH= "h/"
- hachure horizontale d'un demi-cadrat
- HACHT= "/"
- hachure d'un quart de cadrat
Bibliographie
- [BGH+88]
-
Jan BUURMAN, Nicolas GRIMAL,
Michael HAINSWORTH, Jochen
HALLOF et Dirk VAN
DER PLAS. « Inventaire des
signes hiéroglyphiqures en vue de leur saisie informatique
» ; Mémoires de l'Académie des Inscriptions et Belles
Lettres. Institut de France, Paris, 1988.
Serge
Rosmorduc