Finite state and Constraint Grammar based analysers, proofing tools and other resources
This file documents the phonology.twolc file
Here we govern all morphophonological processes.
a á â ä b c d e f g h i j k l m n o õ p q r s t u v w x y z æ ä ø ö å č đ ŋ ŧ š ž
Literal quotes and angles must be escaped (cf morpheme boundaries further down):
<
Then some more abstract archiphonemes These are dependent upon the Triggers in the next section
These symbols govern the behaviour of the archiphonemes above.
Trigger ordering in twolc and lexc, from left to right:
{SV,ÁE,ÁI} {EA,EX,SC} {FCD | ,VD} {WG,CSH} CLEN {VHIGH,VBACK} {RVSH,RLEN} {SLEN,SVSH} SVLOW |
Here we define the suffix border > The other borders are not used yet, but still defined:
End of alphabet definitions
Sets
Introducing a WG right context
WeakGrade = (RealVow:) [:RealVow |i6:] (Cns:) ([%^SV:|%^ÁI:](%^ÁE:)) (%^FCD:) %^WG:0 ;
As we look at more cases, the WeakGrade definition tends to be longer. We want to keep it short, but we want the code to work Thus, we document.
First we list the consonant rules, thereafter the vowel ones.
First gradation and shortening. They are in the same rules, to avoid rule conflicts.
**RULE: x:y consonant gradation ** = WG gives x:x and x:y, when there is no consonant lengthening
**RULE: č:j consonant gradation ** = WG gives x:x and x:y, when there is no consonant lengthening
Not č:j if iä to its left. TODO check vowel sequences with i but not ä and vice versa.
kiäijá000>á
sa0vv0i00>i
**RULE: č:j consonant gradation ** = WG gives x:x and x:y, when there is no consonant lengthening
RULE: hh:vv = já%^RVhhá%^SVl%^ÁI : jäävvil
**RULE: t:đ, also tk4:đh gradation, part 1 ** =
RULE: k4:h gradation for kk4, tk4, rkk4, lkk4 =
RULE: xx:yy gradation for xx4 = puáhhoin, sukk4á:suhháást
määđhi00>.#.
RULE: t4:đ and c4, č4, p4 gradation for tt:đ etc. čuottâlm:čuođâlm njuottâs
RULE: ht:vt, ks:vs etc. gradation = ht:vt, we use h
RULE: k:0 gradation and shortening for xkk4 = for lkk4, rkk4, vkk4
RULE: xyy:xy gradation A = há%^RVi4ttás%^ÁI 1) WG 2) CSH !he%^RVi4ttug 3)
RULE: č:0 in čč4 consonant gradation when CLEN = when čč4
RULE: From i4j to j when WG and CSH = e.g. sai4joos:sajoos 1) when WG 2) when CSH 3) ?
RULE: xx:x consonant gradation and shortening and x:x shortening = weak grade or consonant shortening (Both in same rule) 1) when WG 2) when CSH
Tests:
RULE: tt:t - final consonant and consonant gradation = consonant gradation, and 3syll verbs in -tt lose t in front of cns-initial suff 1) WG, not CLEN 2) CSH 3) uáivátt : uáivát 4) olášuttem:olášutmân 5) uáiváátt>ân uáiváátân 6) uápásmittijm>uápásmitijm
RULE: nnj to nj shortening weak grade and consonant shortening = special rule, e.g. konnjâl -> konjâlân puánnjá
RULE: Word final consonant deletion = for vaskâm:vaaskâ
RULE: Final m in stems, smm to sm = 1) puttáás_min 2) stoorgâs_mân sto%^RVrgâsm
RULE: Wordfinal consonants part 1 e%^RVlâčč 1) 2)jurdâččmân:jurdâšmân ju%^RVrdâčč%^RLEN%>mân 3) šš>š in hárávušš>vetteđ
RULE: Lengthening of half-long root consonant x:xx = riččá piiru piirrun niisu niissun
RULE: Quality change of root consonant x:yy = consonant lengthening after WG, changing h:v, p:v, c:s
RULE: Lengthening of root consonant x:yy = consonant lengthening after WG - h:vv, p:vv, c:ss
va0vvo00>im
RULE: Lengthening of consonant h5 = this one does not fit into the general rule because of h5:h
TEST:
RULE: č:ij part 1 =
ij
(Eng. i0 0 >jn)ij
(Eng. á0 0 0 >á)kee j0
(Eng. i0 0)
j0
(Eng. i0 0 >jd)RULE: Lengthening root consonant j:ij 1 = for saje:saijeen
RULE: č:ij and j:ij part 2 =
Tests:
RULE: nj to nnj consonant lengthening = special rule, suánju : suánnjun for Par and Ess
RULE: Consonant lengthening after xx:x and xy:zy weak grade with x4 on upper side = k4, č, p4 kukse:kuvssijn
RULE: Consonant lengthening xy:xyy ( fix: døp Cz om til Cx)
RULE: Assimilation of consonants t d š delet t in front of -ttáá, avoid -tttáá
RULE: Wordfinal consonants part 2 e%^RVlâčč cummâlâhč:cummâlâhš
RULE: Final consonant x:xx = pottáák potákkân
RULE: Clitic devoicing = for focus particle bá to pá after unvoiced stem cns.
RULE: Gerund devoicing = dijn to tijn after stems in tšs
Tests:
RULE: Vowel shortening VV:V (e in own rule) = ráávhu- : rávhoid, käähir%^CSH%>id kuuđiâ%^RVSH%>žân
RULE: Long vowel shortening = (example?), no ^CSH, since that gives Vy:0 3syll kaavpug:kavpugân táálhudem koomerdem
RULE: e:0 in passive and elsewhere
2st stems
kaavpug:kavpugân
táálhudem koomerdem
Tests:
RULE: e:0 in passive and elsewhere = special rule for getting ej̣ittáá instead of ej̣ittáá.
RULE: Underlying long vowel shortening iä:e and ää:ä or a = čääh%^RCu2%^CLEN%^VBACK%>um
3st stems viäskár veskirin, časkes časkes ča%^RVskas%^ÁE viäskár%^ÁI%^WG%^RVSH
ka0vpug000>ân
mool0â0>
käävir0>
RULE: Root vowel lenghtening in many stems = no rootvowel length if stem vowel lengthens and the consonantcentre consists of two or more consonants 2syll and 3syll
kaavnâst000>
lee0hâ00>
heer0kib00ttáá
RULE: Root vowel o5:u = puhtii
RULE: Root vowel ä:ää lenghtening and diphthongisation e:iä = special rule, for avoiding conflict spä%^RVi4lih%^WG%^RLEN, 1) vä%^RVr%^RCid 2) 3)já%^RVhhá%^SVl%^ÁI%^WG%^RLEN> 4) 5) e:iä, ergi -> iärgán 6) too much here? 7) čevžuin čiävžui če%^RVvžui4%^WG>
piäivá00>žân
piäivá00>in
RULE: Root vowel o lengthening = alge : oolgijn 1) 2) 3) 5) toovâd moonnum poovtám o5o
RULE: Root vowel u lengthening with vowel change before suffix i = alge : oolgijn 1) 2) 3) 4) puuvtijd 5) juuttu>m 5) juuttâl
All instances of the same vowel alternation are in the same rule.
RULE: Root vowel change a:o before suffix i and for contract verbs = alge : olgijn contr contr
RULE: Root vowel o:u for contract verbs and Root vowel change o:u before suffix i and stem vowel o:u sometimes
juttuum
?
alge : olgijn, remove đ because of inf.
XXX ny
XXX ny
1) poccuu puásui
([%^RLEN:|%^RVSH:]) (%^SLEN:) [%>|.#.] 5) jutâlâm juuttâl
tuhhi>đ
luuv0á000>im
RULE: Monophthongisation rule iä:ee 1 =
1)
2)viäskár veeskir iäbbár eebir
estuđ
**RULE: iä:e rule 1 and second syllable Fleeting vowel before suffix ** = Note: many rules in one 1) i:0 for iđ C verbs 2) i:0 for uđ C verbs melluu 4) cokkiitt%^CLEN%^RLEN%^SLEN%>mân
RULE: iä:e and iä:ee rule 2 and Diphthongisation i5ä to ie =
estuđ ki5äptu2 > kieptuđ
vievvu000>u
RULE: Different rules for ä:a, first vowel (or only vowel) = čääci:čassijn, läbži:labžijn lään^RCi%>id OBS ^EA -> VHIGH?
njaav0i00>i
RULE: ää to aa, second vowel = á:o in pairs like kuátij -> koođij, säämi -> saamij čäällu%^VBACK%>m lään^RCi%>id viäskár:veeskir viäskár%^ÁI%^WG%^RLEN paaccim čaallum
RULE: ää to áá and á0 in Illative and Sg3 = … for säämi > sáámán :á XXX sámásis njálmásis
:á
RULE: äRV to áá in Illative and Sg3 = … for täsni -> táásnán čevžuin čiävžui RLEN
háávdá000>š
**RULE: Vowel lengthening äRV to aa ** = äigi aaigijd kä%^RVlgâ%^WG%^VBACK%^RLEN%>m
RULE: Root vowel change for á to ä with i in second syllable = päävir , já%^RVhhá%^SVl%^ÁI%^WG%^RLEN>
RULE: Root and stem vowel á:a for verbs
pa0kku0>m>
**RULE: Monophthongisation rule uá:o0 part 2: Vowel shortening for uá ** = for uábbi -> obbijn čuál%^RCi%^WG%>in tuái4jâl%^CSH%^VBACK%^RVSH%>âm sopâvetteđ tojâdâm uáinu
RULE: Monophthongisation rule u:o and root vowel change u:o, special rule for olmooš and contract verbs =
ulmu : olmooš, olmožin, carefully with only initial vowel
oođđim
sopâvetteđ tojâdâm
puáhháá : poovij ! XXX
o0inu>đ
RULE: Diphthong rule uá:uo and uá:oo, part 2 =
uá > uo
uá > uo
RULE: Root vowel aa:áá in C-stems with stemvowel u, part 1 = ahhu:áhu
RULE: Root vowel aa:áá in C-stems with stemvowel u, part 2 = ahhu:ááhu
**RULE: Diphthongisation e to iä, part 1 ** =
ergi:iärgán eeč^RCi^EA^CLEN^RVSH>s
čevžuin čiävžui če%^RVvžui4%^WG>
peeh%^RCá%^VHIGH> peeh%^RC
piävu>s piähho>on piäváččii not meendu
veerrá%^EA%^CSH>
SV: mánuttep : mánuttiäpán
ciälkko000>o
RULE: ie to iä in Illative and Sg3 = kiem´ni -> kiämnán, veerdi : viärdán peerru2%^CLEN%^VHIGH%^RVSH%>o čevžuin čiävžui piähhoo eellá%^CSH%^VHIGH PrfPrc Err/Orth
RULE: Diphthongisation uo:uá =
RULE: ye to uá and uo, part 1 = Part 1 of ye to uá for kyeli : kuálán
syej%^RCi%^RVSH%^CLEN%>in
[i|Cns]; ryettâ^WG^VBACK^RLEN>m
RULE: e to á in ye to uá, part 2 and Stem vowel e to á for other root vowel = Part 2 of ye to uá for kyeli : kuálán *ryetáim: *ryetáim:
mo0hháá0000
RULE: ye to uo, part 2 = Part 2 of ye to uá for kyeli : kuolijn
RULE: uá to ye and uo to ye, part 1 = Part 1 luámmán : lyeme čuággás%^ÁI%^WG%^RLEN%>
RULE: uá to ye, part 2 = Part 2 luámmán : lyeme
RULE: uo to ye, part 2 = vyelleen, vyeleem,vyelih
RULE: Second syllable vowel change á to e or i in 3syll stems = puttás- > putes, triggers are ^ÁE and ^ÁI já%^RVhhá%^SVl%^ÁI%^WG%^RLEN%> pu5árrás%^ÁI%^WG%>umos
Test:
RULE: Stemvowel shortening áá and aa to e or i in 3syll = puttás- > putes, triggers are ^ÁE and ^ÁI
Tests:
RULE: Stem vowel e to a for a root vowel. = alge to aalgan
Tests:
RULE: Stem vowel i to á for other root vowel. = e.g. säämi > Ill sáámán SV uábbám iännásis
RULE: Stem vowel i to â for other root vowel, as a common error. = e.g. säämi > Ill Err/Orth sáámân
RULE: Stem vowel i to e in front of j =
RULE: Stem vowel â to a in Pl Nom -h = silbâ to siilbah %^WG%^RLEN%>hlove%>h
RULE: Stem vowel â to á change before i = sollâ to sooláid
RULE: Stem vowel i3:0 =
RULE: Stem vowel u:o change before suffix =
1) olmooš, olmožin
2)
RULE: Stem vowel u2:o change before suffix =
SVLOW together with u?
RULE: Second vowel shortening = eemeed : emedân, savvoon : savo eemeed : emedân sai4joos
Tests
ka0p0er00>ân
RULE: Stem vowel:0 in front of â = aiguu:aaigâ
RULE: Stem â deleting = kandâ:kandii … built without ^FVD (sigh)
če0rd0i0>ih
če0rd0i0>j
RULE: Word final vowel deletion = This unfortunately both for word and stem vowel deletion just now.
Tests:
soll00>ii
a0lg0000i>i
RULE: Suffix vowel lengthening = long á in kissáást, nuorâ : nuorááin, hyeni:hyeneest
Tests
pa0rguu000
ke0rhuu000
RULE: Suffix i5:j for lexicon APINA = salijn
RULE: Suffix i5:0 for loanwords = timotein, Charlien, not timoteiin, Chariliein, change (invariant) i5 to something else?
RULE: Suffix i:j for i and e-stems =
RULE: Vowel copy in suffix = for imperative Sg3, at least
RULE: Adjective illative in -vân after u =
RULE: Shortening u for vân illative =
RULE: Potential vowel shortening for contract verbs = -áážep becomes -áš etc.
RULE: Insertion of pleonastic hyphen = for compounding of two vowels stovli-ijâ
Tests:
This (part of) documentation was generated from src/fst/morphology/phonology.twolc