commit f5ccd02139284978b1d1824216357390a3f5096e
parent 7c78cd5fa94c51cf1754eac6032d6fc4b74af7fb
Auteur: Loïc Daignault-Pichette <loic@asteride.net>
Date: Mon, 31 Aug 2026 11:02:36 -0400
Ajouter des traits identificateurs de vocable
Diffstat:
12 fichiers modifiés, 56 insertions(+), 55 suppressions(-)
diff --git a/Makefile b/Makefile
@@ -29,15 +29,15 @@ default: mots
# VERBES
# ------
-tf/verbes/lexical.fst: tf/phonologie.def tf/traits.def tf/verbes/lexique.lexs
+tf/verbes/lexical.fst: tf/orthographe.def tf/traits.def tf/verbes/lexique.lexs
tf/verbes/profond.fst: tf/traits.def tf/verbes/lexical.fst
-tf/verbes/positionnel.fst: tf/phonologie.def tf/traits.def tf/morphemes.def \
+tf/verbes/positionnel.fst: tf/orthographe.def tf/traits.def tf/morphemes.def \
tf/verbes/profond.fst
-tf/verbes/morphologique.fst: tf/phonologie.def tf/traits.def tf/morphemes.def \
+tf/verbes/morphologique.fst: tf/orthographe.def tf/traits.def tf/morphemes.def \
tf/verbes/positionnel.fst
tf/verbes/morphemique.fst: tf/traits.def tf/morphemes.def \
tf/verbes/morphologique.fst
-tf/verbes/morphique.fst: tf/phonologie.def tf/traits.def tf/morphemes.def \
+tf/verbes/morphique.fst: tf/orthographe.def tf/traits.def tf/morphemes.def \
tf/verbes/morphemique.fst
# ----
@@ -46,7 +46,7 @@ tf/verbes/morphique.fst: tf/phonologie.def tf/traits.def tf/morphemes.def \
mots: tf/mots_mrphm_prod.fst tf/mots_prod.fst tf/mots_mrphm.fst tf/mots.fst
-tf/surface.fst: tf/phonologie.def tf/verbes/morphique.fst
+tf/surface.fst: tf/orthographe.def tf/verbes/morphique.fst
tf/mots_mrphm_prod.fst: tf/traits.def tf/morphemes.def tf/surface.fst
tf/mots_prod.fst: tf/morphemes.def tf/mots_mrphm_prod.fst
tf/mots_mrphm.fst: tf/mots_mrphm_prod.fst
diff --git a/tf/morphemes.var b/tf/morphemes.var
@@ -38,8 +38,8 @@ define MSPers ["<Lc>"|"<NLc>"|"<LcPas>"| # Suffixe de personne
"<1PlExConjIndir>"|
"<1Sg2PlConjIndir>"|
"<21Sg3ConjIndir>"|
- "<ImpLcSg>"|
- "<ImpLcPl>"];
+ "<LcSgPasImp>"|
+ "<LcPlPasImp>"];
define MNbLc ["<2Pl>"|"<1Pl>"|"<1Pl2>"| # Nombre de personne locale
"<1PlEx3Conj>"|"<1PlImp>"|
"<2PlImp>"];
diff --git a/tf/orthographe.var b/tf/orthographe.var
@@ -0,0 +1,31 @@
+# ==========
+# PHONOLOGIE
+# ==========
+#
+# Inventaire phonologique.
+
+# --------
+# VOYELLES
+# --------
+
+define VoyCourte [a|i|u]; # Voyelle courte
+define VoyLongue [â|î|e|û]; # Voyelle longue
+define VoyAcc [â|î|û]; # Voyelle accentuée
+define Voy [VoyCourte|VoyLongue|ᵘ]; # Voyelle
+define VoyOrtho [Voy-VoyAcc]; # Voyelle de l’orthographe
+
+define SemiVoy [i|î|u|û]; # Semi-voyelle
+
+# ---------
+# CONSONNES
+# ---------
+
+define Cons [h|k|m|n|ń|p|s|t]; # Consonnes
+define ConsOrtho [Cons];
+
+# -------
+# LETTRES
+# -------
+
+define Lettre [Voy|Cons];
+define LettreOrtho [VoyOrtho|ConsOrtho];
diff --git a/tf/phonologie.var b/tf/phonologie.var
@@ -1,31 +0,0 @@
-# ==========
-# PHONOLOGIE
-# ==========
-#
-# Inventaire phonologique.
-
-# --------
-# VOYELLES
-# --------
-
-define VoyCourte [a|i|u]; # Voyelle courte
-define VoyLongue [â|î|e|û]; # Voyelle longue
-define VoyAcc [â|î|û]; # Voyelle accentuée
-define Voy [VoyCourte|VoyLongue|ᵘ]; # Voyelle
-define VoyOrtho [Voy-VoyAcc]; # Voyells de l’orthographe
-
-define SemiVoy [i|î|u|û]; # Semi-voyelle
-
-# ---------
-# CONSONNES
-# ---------
-
-define Cons [h|k|m|n|ń|p|s|t]; # Consonnes
-define ConsOrtho [Cons];
-
-# -------
-# LETTRES
-# -------
-
-define Lettre [Voy|Cons];
-define LettreOrtho [VoyOrtho|ConsOrtho];
diff --git a/tf/surface.xfst b/tf/surface.xfst
@@ -4,7 +4,7 @@
#
# Passer du niveau morphique au niveau de surface.
-load defined tf/phonologie.def
+load defined tf/orthographe.def
define Morphique @"tf/verbes/morphique.fst";
diff --git a/tf/traits.var b/tf/traits.var
@@ -20,10 +20,12 @@ define TImpers ["+impers"]; # Trait impersonnel
define TAccV [TId|TRacineV|TADial|TVILngr| # Trait accidentel verbal
TImpers];
define TAcc [TAccV]; # Trait accidentel
+define TIdVoc ["+V2"|"+V3"|"+V4"]; # Trait id. de vocable
define TVrbe ["+VII"|"+VAI"|"+VTI"|"+VTA"]; # Classe de verbes
define TDial ["+Est"|"+Ouest"]; # Dialecte
-define TLex [TProd|TAcc|TVrbe|TDial]; # Trait lexical
+define TLex [TProd|TAcc|TIdVoc|TVrbe| # Trait lexical
+ TDial];
# -------------------
# TRAITS GRAMMATICAUX
diff --git a/tf/verbes/lexical.xfst b/tf/verbes/lexical.xfst
@@ -4,7 +4,7 @@
#
# Former le lexique.
-load defined tf/phonologie.def
+load defined tf/orthographe.def
load defined tf/traits.def
# Charger et terminer de construire le lexique non-productif.
@@ -73,4 +73,4 @@ define Lexique [NProductif|Productif]
- [$["+RD" ?* "+VTA" ] & ~[?* [a|e] {ueu} \LettreOrtho*]];
# Ajouter le trait facultatif de longueur de la voyelle initiale.
-read regex [Lexique .o. [[..] (->) TVILngr || _ TVrbe]].l;
+read regex [Lexique .o. [[..] (->) TVILngr || \TIdVoc _ (TIdVoc) TVrbe]].l;
diff --git a/tf/verbes/lexique.lex b/tf/verbes/lexique.lex
@@ -23,6 +23,7 @@ natutamᵘ+RC+VTI
natutueu+Rua+VTA
nikamu+Ru+VAI
nimu+Ri+VAI
+nipau+Rau+V2+VAI
nipau+Râ+VAI
nipiun+Rûn+VII
papatau+Râ+VAI
diff --git a/tf/verbes/morphemique.xfst b/tf/verbes/morphemique.xfst
@@ -65,8 +65,8 @@ read regex Morphologique
.o. ["<1Sg2PlConjIndir>" -> {uaut} "<1Sg2PlConjIndir>"]
.o. ["<21Sg3ConjIndir>" -> {ut} "<21Sg3ConjIndir>"]
- .o. ["<ImpLcSg>" -> {kan} "<ImpLcSg>"]
- .o. ["<ImpLcPl>" -> {tshe} "<ImpLcPl>"]
+ .o. ["<LcSgPasImp>" -> {kan} "<LcSgPasImp>"]
+ .o. ["<LcPlPasImp>" -> {tshe} "<LcPlPasImp>"]
# Nombre de personne locale
.o. ["<2Pl>" -> {au} "<2Pl>"]
diff --git a/tf/verbes/morphique.xfst b/tf/verbes/morphique.xfst
@@ -4,7 +4,7 @@
#
# Passer du niveau morphémique au niveau morphique.
-load defined tf/phonologie.def
+load defined tf/orthographe.def
load defined tf/traits.def
load defined tf/morphemes.def
@@ -128,7 +128,7 @@ read regex Morphemique
# Nombre non local
.o. [a -> i || [n|ń] Mrphm* _ \Mrphm* "<NtrPl2>" $["+VII"]]
.o. [a -> i || [n|ń] Mrphm* _ \Mrphm* ["<ObvSg2>"|"<ObvPl2>"]]
- .o. [a -> i || ["<ImpLcSg>"|"<2PlImp>"|"<ImpIndir>"] Mrphm* _ \Mrphm* ["<ObvSg>"|"<ObvPl>"]]
+ .o. [a -> i || ["<LcSgPasImp>"|"<2PlImp>"|"<ImpIndir>"] Mrphm* _ \Mrphm* ["<ObvSg>"|"<ObvPl>"]]
.o. [n -> [] || _
["<NtrPl>"|"<ObvSg>"|"<ObvPl>"|
diff --git a/tf/verbes/morphologique.xfst b/tf/verbes/morphologique.xfst
@@ -4,7 +4,7 @@
#
# Passer du niveau positionnel au niveau morphologique.
-load defined tf/phonologie.def
+load defined tf/orthographe.def
load defined tf/traits.def
load defined tf/morphemes.def
@@ -489,11 +489,11 @@ define MorphologiqueImp $["+Imp"] .o. Positionnel
.o. ["[ThDir]" -> "<ThLcImpPas>" || _ $["+VTA"] $["+Pas"] $["+2"] $["+1"]]
# Suffixe de personne
- .o. ["[SPers]" -> "<ImpLcSg>" || _ $["+VAI"|"+VTI"] $["+Pas"] $["+Sg"]]
- .o. ["[SPers]" -> "<ImpLcSg>" || _ $["+VTA"] $["+Pas"] $["+Sg"] $[">"]]
+ .o. ["[SPers]" -> "<LcSgPasImp>" || _ $["+VAI"|"+VTI"] $["+Pas"] $["+Sg"]]
+ .o. ["[SPers]" -> "<LcSgPasImp>" || _ $["+VTA"] $["+Pas"] $["+Sg"] $[">"]]
- .o. ["[SPers]" -> "<ImpLcPl>" || _ $["+VAI"|"+VTI"] $["+Pas"] $["+Pl"]]
- .o. ["[SPers]" -> "<ImpLcPl>" || _ $["+VTA"] $["+Pas"] $["+Pl"] $[">"]]
+ .o. ["[SPers]" -> "<LcPlPasImp>" || _ $["+VAI"|"+VTI"] $["+Pas"] $["+Pl"]]
+ .o. ["[SPers]" -> "<LcPlPasImp>" || _ $["+VTA"] $["+Pas"] $["+Pl"] $[">"]]
# Nombre de personne locale
.o. ["[NbLc]" -> "<1Pl>" || _ $["+VTA"] $["+2"] $["+Ex"]]
@@ -504,9 +504,7 @@ define MorphologiqueImp $["+Imp"] .o. Positionnel
# Nombre de personne non locale
.o. ["[NbNLc]" -> "<NtrPlImp>" || _ $["+3" "+Pl" "+Ntr"]]
.o. ["[NbNLc]" -> "<ObvSg>" || _ $["+3" "+Sg" "+Obv"]]
- .o. ["[NbNLc]" -> "<ObvPl>" || _ $["+3" "+Pl" "+Obv"]]
-
- ;
+ .o. ["[NbNLc]" -> "<ObvPl>" || _ $["+3" "+Pl" "+Obv"]];
read regex [[MorphologiqueIndep | MorphologiqueConj | MorphologiqueImp]
.P. Positionnel]
diff --git a/tf/verbes/positionnel.xfst b/tf/verbes/positionnel.xfst
@@ -4,7 +4,7 @@
#
# Passer du niveau profond au niveau positionnel.
-load defined tf/phonologie.def
+load defined tf/orthographe.def
load defined tf/traits.def
load defined tf//morphemes.def