! Copyright © 1999-2005 by Heli Uibo.
! Copyright © 2010 by Jaak Pruulmann-Vengerfeldt.
! All rights reserved. 
Alphabet

a b c d e f g h i j k l m n o p q r s š z ž t u v õ ä ö ü x y G:g G:0 B:b B:0 B:m D:d D:0 D:l D:n D:r K:k K:g K:0 P:p P:b P:0 T:t
T:d T:0 S:s S:0 S:r %+:0 %$:0 %&:0 A:a A:0 E:e E:0 I:i I:0 U:u U:0 %.:a %.:e 
%.:o %.:u %.:ö %.:ä %.:i %.:0 %=:0 2:0 %!:0 Q:k %-; 

Sets

  Kons = b d f g h j k l m n p r s š z ž t v ;
  KonsKP = b d f g h j l m n r s š z ž t v ;
  Vok = a e i o u õ ä ö ü ;
  Alfa = Kons Vok;
  AV = G B D K P T S ;! astmevaheldusele alluvad foneemid
  AVT = g b d k p t s ;	! AV-tugev aste
  VaheVok = A E U I;
  TyveVok = a e i u ;
  LyhVok = a e o u õ ä ö ü ;
  LyhVoka = e o u õ ä ö ü ;
  LV = B G D S T ; ! laadivaheldus (assimilatsioon ja häälikukadu)
  LVTA = b g d s t ; ! laadivahelduse tugev aste
  Klus = k p t ;
  AVKlus = K P T ;
  NorkKlus = g b d G B D ;
  Liq = l r ;
  TavaKons = f h j l m n r s š  v ;


Definitions
  Algus = [.#. (Kons+) | %&: (Kons+)] ;  ! silbi/sõna algus
  Piir = [.#. | %+: | %&:] ;    ! morfeemidevaheline piir
  SonaPiir = [ .#. | %&: ];
  MitteSpr = [ [ ? - %!:0 ] | .#. ];

Rules

! --Astmevahelduse reeglid (astevaihtelun sääntöjä) --------------------

"AV 1-2 - k ja p kadu"!kukk-kuke, lipp-lipu, õhk-õhu, kask-kase
! parandus: kaduvale klusiilile järgnev vokaal võib ka ise kaduda, nt tüvemitmuse tõttu
 AVKlus:0 <=> Vok (r) [Klus|h|s] _ (Vok:) (S:|l) %$:;
               s _  (%$:)(%+:) t ;	!fonotaktika reegel skt->st
       where AVKlus in (K P)
                     Klus   in (k p)
       matched ;

"AV 3 - t kadu"
! parandus: suhTeldud-vihTeldud, sigaretT 
 T:0 <=>Vok [t|h] _ (Vok ([S: | s: | l ])) %$:;!tt-t (rott-roti) ja ht-h (ehtima-ehib)
        Algus Vok: _ e (l) %$:;	!ütlema-öelda, jätma-jäetakse


"AV 4-5- assimilatsioonid s-r ja b-m"!vars-varre,tõmbama-tõmmata
! parandus: kõr[s-kõrr[e-kõr[t viimase tüvevariandi jaoks kaob esimene r (konsonantühend?). lubame seda.
 SB:RM <=> RM: _ (TyveVok) (S:) %$: ; where SB  in (S B)
                                     RM  in (r m)
                                    matched;

"AV 6 - assimilatsioon d-l"	!kuld-kulla
! parandus: tüvevokaal võib kaduda (tüvemitmus), saadavad vormid on kahtlased..
! tõld, tald, kõld, vald, sild, süld saavad puudutatud
 D:l <=> Algus Vok l _ (TyveVok:) (S:) %$:;


"AV 7 - assimilatsioon d-n"	!hind-hinna, kannel-kandle

 D:n <=> [Algus | Kons] Vok n _ ([Vok: | VaheVok:] ([l | r | s])) (S:) %$:;
! D:n <=> n _ (Vok: l) (S:) %$:;

"AV 8 - assimilatsioon d-r"	!kord-korra

 D:r <=> Algus Vok r _ (TyveVok) (S: | l) %$:;


"AV 9 -  b kadu"	!tuba-toa

 B:0 <=> Algus Vok: _ (%=:) (Vok:) %$:;

"AV 10 -  d kadu." ! Muuseas siin ka yks morfeemipiiri reegel:
! morfeemipiiril kaks d-d saavad üheks ning dt saab t-ks"


D:0 <=>  Algus Vok Vok: _ (TyveVok:) (l) %$:; !laud-laua, vaidlema-vaielda
         Algus Vok Vok (Liq | n) _ TyveVok (l) %$:;     !siirdama-siirata
         Algus [ e | i: | u: | ü: ]  _  (%=:) TyveVok: %$: ;	!vedada-vean, rida-rea
	 Algus õ  _  (%=:) e %$: ; 		!õde-õe, põdeda-põen
	 [Kons- [r|s] ] a _ (%=:) u: %$: ;	!ladu-lao, kaduda-kaon
				_ %+: d ;	!and+da->anda
        			n _ %+: t ;	!and+tud->antud

"AV 11 - g kadu"

G:0 <=> Vok _ (%=:) (Vok|h) %$: ;
        [ a | i | õ | u ] [ l | r ] _ (Vok (S:)) %$: ; ! jalg-jala, kirg-kire
        [ e | ä | ü ]  [ l | r ] _ [ i | u ]  %$: ;  ! pürgima-pürin
	a %.: _ i: %$: ;     !saagida-saenA

"AV 12-13 - s sise- ja lõpukadu"

S:0 <=> Algus Vok [Kons+] (AV:AVT) TyveVok:  _ Piir; !küngas-künka
        Algus Vok AV:AVT TavaKons Vok  _  Piir;  !kobras-kopra
        Algus Vok (Vok) _ (Vok) %$:;		!käsi-käe, õis-õie
        Algus Vok (Vok) (Liq | n) s _ Vok %$:; 	!kauss-kausi, kurss-kursi?
                where AV in  (G B D K P T )
                     AVT in  (g b d k p t )
           matched;


 "AV 14 k-g"
 K:g <=> Vok [Liq | n | Vok] _ (Vok | VaheVok:) (S:|l|s) %$:;	!kook-koogi, pilk-pilgu, küngas-künka
 	 Vok _ VaheVok: Liq (Vok) %$:;    	!kogre-kokre

 "AV 15 p-b"
 P:b <=> Vok [Liq | m | Vok] _  [Vok | VaheVok:] ([S:|s]) %$:0 ;	!karp-karbi, kimp-kimbu, loopida-loobin
         Vok _ [Liq Vok | j: (Vok) ] (S:) %$:;	!lupjama-lubjata, kobras-kopra
         Vok _ VaheVok: Liq (Vok) %$:;    		!sõpra-sõbra

 "AV 16 t-d"
 T:d <=> Vok [Vok|Liq | n ] _ Vok (S:) %$:;	!paat-paadi, kaart-kaardi, elevant-elevandi
         Vok Vok _ e l %$:;     		!vaatlema-vaadelda
         Vok _ (VaheVok:) [Liq | v | j:] (Vok) %$:;    	!putru-pudru, patrama-padrata
	 

 "AV 17: g-j"	!märg-märja, hüljes-hülge
 G:j <=> [ e | ä | ü ]  [ l | r ] _ [ a | e ] (S: )  %$: ;

"AV 18: d-j"

D:j <=>  Algus [ a | o | õ ]  _  (%=:) a   %$:;	!sadada-sajab, sõda-sõja
 	 SonaPiir [ [[ r | s ] a] |s õ ]  _  u  %$: ; !sadu-saju,kodu-koju


"AV 19: b-v"

 B:v <=> Vok [Vok|Liq] _ (Vok:) (S:) %$:;	!kaebama-kaevata, kõlbama-kõlvata, värbama-värvata, varb-varva

!!!! EOF AV

!-----------------Fonotaktika- ja ortograafiareeglid-----------------


"Vahevokaali kadu"       ! Kui l,m,n,r,v-lõpulisele sõnale lisandub tüvevokaal, siis vahevokaal kaob, nt. tütar-tütre, suhkur-suhkru.

  VaheVok:0 <=>  _ [Liq | m | n | v | s] (%+:) TyveVok: ;

"Vokaali annihileerumine nõrgas astmes"

  V1:0 <=> Vok _ D: V1 %$:; where V1 in (a u); ! jõudu-jõuu->jõu


"Vokaali madaldumine"   ! Nõrgeneva AV tõttu !tekivad mõnedes 
			!'rida'-tüüpi sõnades häälikuühendid ua, üi jm, mis on fonotaktiliselt 
			!lubamatud ning teisenevad vastavalt oa-ks, öe-ksjm.
			!Seejuures 2 erinevat konteksti, kuna madalduda võib nii sise-
			!(siga->sea) kui lõppvokaal (kadu->kao)

  KorgeVok:MadalVok <=> Algus  _ LV:0 (%=:) [a|e|i:|u:](l) %$: ;
			Algus Vok (%.:) LV: (%=:) _ %$: [~[ [:0]* :Vok ] | SonaPiir ];
 where KorgeVok in (u ü i)
           MadalVok in (o ö e)
 matched ;

"vokaalide teisenemine järgsilbis o->u, ö->e, ä->e"

%.:V2 <=> V1 %.: h _ Piir;	!soo-sohu, töö-töhe, pea-pähe
where V1 in (a o u ö ä)
          V2 in (a u u e e)
matched;


"Konsonandi kahekordistumine"   !nt. elu-ellu, nime-nimme, tulema-tulla

  %=:K1 <=> K1 _ (TyveVok:) 2:;	!mitte-klusiilid
                     where K1 in TavaKons;

"Nõrga klusiili pikendamine III-välteliseks - 1"
 !vagu-vao-vakku, saba-saba-sappa, tuba-toa-tuppa, ladu-lao-lattu

  %=:Klus <=>  NorkKlus: _ (TyveVok:) 2:; !klusiilid
              where NorkKlus in (g G b B d D)
      	                Klus in (k k p p t t)
              matched;


"Nõrga klusiili pikendamine III-välteliseks - 2"

NorkKlus:Klus <=> _ %=: (TyveVok:) 2:;
              where NorkKlus in (g G b B d D)
      	                Klus in (k k p p t t)
              matched;


"pst -> st ja p kaashäälikuühendis" 	!pst -> st (lapst->last)

  p:0 <=> _ s (%$:) %+: t ;
  Kons Vok _ :p (%$:)(%+:) [Kons-p+]; 	!kaashäälikuühend

"m -> n  t|d ees" 	!(lumd->lund)

  m:n <=> _ %+: [d | t] ;

"skt -> st, kst -> st ja k kaashäälikuühendis"	!(lasktud->lastud),  (ukst->ust) AGA: maksti, peksti ?

  k:0 <=> _ s %$: %+: t ;
	! s _  (%$:)(%+:) t ; ! see pole tegelikult probleem?
 Kons Vok _ :k (%$:)(%+:) [Kons-k+];   !kaashäälikuühend

"j -> i sõna lõpus"      !(kirj->kiri, purj->puri)

  j:i <=> _ (%$:) SonaPiir ;


! Järgmised kolm on mitmuse vokaali valikureeglid:

 "mitmuse vokaal i"
W:i <=> e: (%$:) %+: _ MitteSpr;	! e-tüvelised
	Algus [e | o (o)| u| ä ([e]) | ö| ü] [[(Kons) [:Kons - [:j|:b|:n]]] | [ h :t ] ] (%=:) a: (%$:) %+: _ MitteSpr; 
	!"eks ämm söö kodus sütt"

 "mitmuse vokaal e"
W:e <=> [i: | u:] (%$:) %+: _ ;		! i- ja u-tüvelised
        Algus [u | o] [B:|n] (%=:) a: (%$:) %+: _ MitteSpr;	!a-tüvelised,lühikeses  
						!esisilbis u või o
        Algus [u | o | ü] Kons j: a: (%$:) %+: _ MitteSpr;	!a-tüvelised, esisilbis uCj, 
						!oCj, üCj (kuri)

 "mitmuse vokaal u"
W:u <=> [[i: [D:|G:]]|[[Kons | Algus] 
		[a | a a | i | i i | õ | õ õ | a e | a i 
		   | e i | ä i | õ i | a u | i u | õ u ] [:Kons | VaheVok:0]+]] (%=:) a: (%$:) %+: _ MitteSpr; !"kass kõrtsis ei käi"
	 [a | ä | e] Kons j: a: (%$:) %+: _ MitteSpr ; !a-tüvelised, esisilbis äCj, eCj (väli, neli) (asjus?)


 "ainsuse vokaal kirjutada korstnasse"
TyveVok:0 <=> [Kons|AV:] (%=:) _ (%$:) %+: [ W: ~%!: |u s];
	where TyveVok in (a e i u);  !pesa+i ->pesi, kana+u->kanu


"oo+a->uua, öö+a->üüa 1"	!joo+a->juua, söö+a->süüa

V1:V2 <=> _ %.:V2 %+: [a | e s];
                      where V1 in (o ö)
                            V2 in (u ü)
                      matched;

"oo+a ->uua, öö+a ->üüa 2"

%.:V2 <=> V1:V2 _ %+: [a | e s];
                      where V1 in (o ö)
                            V2 in (u ü)
                      matched;


"oo+i -> õi"	!joo+i->jõi, söö+i->sõi
o:õ <=> [ j | l | t ] _ %.: %+: i [ SonaPiir | d | n | m e | t e];

"öö+i -> õi"	!joo+i->jõi, söö+i->sõi
ö:õ <=> [ l | s ] _ %.: %+: i [ SonaPiir | d | n | m e | t e];


"Konsonantühendi reegel "    ! Konsonantühendis kirjutatakse kõik häälikud ühekordselt, nt. kukkru->kukru, kristallne->kristalne.

  K1:0 <=> Vok _ :K1 [:0 - %&:0]+ [Kons - K1]; ! vähemalt morfeemipiir võiks vahele jääda. 
             where K1 in KonsKP;


"Liitsõnapiirile sidekriips kolme ühesuguse hääliku korral"	!nt. plekk-katus, jää-äär

  %&:%- <=> :A1 (:0) :A1 (:0) _ :A1; where A1 in (a e f h i k l m n o p r s š t u õ ä ö ü);





!-----------------morfeemipiiridel kehtivad reeglid-----------

"Pika vokaali lühenemine enne i-d ja h-d"        ! Pikk vokaal lüheneb
!enne i-ga algavat formatiivi, nt.maa+id->maid, maaha->maha.
                                    ! Võõrsõnades ainult 'e': idee-ideid, aga miljöö-miljöösid,depoo-depoosid,kanuu-kanuusid

  %.:0 <=> [Vok [Kons+] e] | [Algus LyhVoka] _ [%+: [ i | h ]] ;
           a _ [D:|G:] i: %$:;	!praadida-praeb, saagida-saeb

"Pikk vokaal vaikimisi"
  %.:V1 <=> V1 _ ~[%+: [ i | h ] :* ] .#.; where  V1 in (e o u õ ä ö ü);

"Pikk vokaal vaikimisi, a"
  %.:a <=> a _ ~[ [D: | G:] i: %$: :* ] .#.;


"morfeemipiiril kaks s-i saavad üheks"

 s:0 <=> _ [:0*] %+: :s :i;	!inimes+sse->inimesse


"käskiva kõneviisi formatiivi alguse g läheb k-ks helitu konsonandi järel või NA-tüves a järel"

 g:k <=> [h | D:d | T:t] [:0*] %+: _ [e|u];	!teh+ge->tehke
        a %$: %+: _ [e|u];	!tõmbama-tõmma+gu->tõmmaku


"formatiivi alguse d läheb t-ks helitu konsonandi järel"

 d:t <=> s  %+: _ [a | e s];	!seis+des->seistes

"v ->ev konsonanttüvelistel verbidel"

 %+:e <=> [Kons | AV: ] _ v [ SonaPiir | a];! naer+v->naerev


"i -> e enne i-ga algavat formatiivi"	!kauni+im=kauneim

 i:e <=> Kons _ (S:) %+: i:;

"ki/gi liite valik - kui eelneb heliline häälik, siis gi"

 Q:g <=> [:Vok | :l | :m | :n | :r] [:0]* (%$:) (%+:) _ i;

"vokaalikadu +im eest"

 V:0 <=> _ %!: %+: i m; where V in (a e i u W);


