! South Sámi TWOLC file ! ! $Id$ ! ! Aft Alphabet 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 æ ä ø ö å á é í Å Ä Ö Ø Æ Á Á É Ó Ú Í À È Ò Ù Ì Ë Ü Ï Â Ê Ô Û Î Ã Ý þ Ñ Ð á é ó ú í à è ò ù ì ë ü ï â ê ô û î ã ý þ ñ ð ß ª ß ç 0:a 0:e 0:ö 0:å A1:a A1:e ! A2:a A2:a A2:e A2:0 A3:a A3:o A3:e A4:a A4:e A4:i A4:o E1:i E1:e E1:y E2:e ! this must be inserted everywhere 800209 I1:i I1:e I2:i I2:e I2:0 I3:i I3:j I4:e I4:i I4:0 O1:o ! O2:o O2:o O2:0 ! U1:u U1:ö U1:u U1:ö U1:å U2:e Æ:æ Æ:i Æ:y Å1:å Å1:u Å1:o ! Å2:a Å2:e Å2:a Å2:e Å2:å Å3:å Å3:ö Å4:å D1:0 %#:0 %>:0 %+:0 X2:0 X3:0 ':0 !' %^DISIMP:0 %^1UML:0 %^2UML:0 %^3UML:0 %^3sUML:0 %^3dUML:0 %^iæUML:0 %^iUML:0 ; Sets Letter = 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 æ ä ø ö å ; C = b c d f g h j k l m n p q r s t v w x z ; CJV = b c d f g h k l m n p q r s t w x z ; V = a e i ï o u y æ ä ø ö å A1 A2 A3 A4 E1 I1 I2 I3 I4 O1 O2 U1 U2 Æ Å1 Å2 Å3 Å4 ; DobCons = s m ; ! Bound = # %> ; ! WordBound = # ; DomainBound = # %+ ; Definitions Vowel = [ :V ] ; Nucleus = [ Vowel (Vowel)] ; Cons = [ C [ :C* | D1:*]] ; ConsJV = [CJV [ :C* | D1:*]]; AccGenSg = [ %>: [m | n ]] ; Onset = C* ; ! Onset = DomainBound: C*; Syllable = Onset Nucleus Cons; OpenFinal = Cons Nucleus DomainBound: ; OpenOrClosedFinal = [Cons (Nucleus) DomainBound:]; ! Dummy = %^DISIMP: %^1UML: %^2UML: %^3UML: %^3sUML: %^3dUML: %^iæUML: ; Rules ! Bisyllabic stems ! ================ ! Rules for ie nouns ! ------------------ ! Final vowel is ie "I2 as ie" I2:i <=> Syllable _ 0:e (%>: [ I3:j | Cons ]) DomainBound:; ! Final vowel is e "I2 as e" I2:e <=> Syllable _ %>: OpenFinal; Syllable _ %>: d h ; ! Final vowels is 0, suffix is vowel-initial "I2 as 0" I2:0 <=> Syllable _ %>: Nucleus (Cons) (Nucleus) DomainBound: ; ! Rules for oe nouns ! ------------------ "O2 as oe and o" O2:o <=> Syllable _ 0:e (%>: [ I3:j | Cons ]) DomainBound: ; Syllable _ %>: OpenFinal ; "O2 as 0" O2:0 <=> Syllable _ %>: A1: OpenFinal ; ! Rules for a-nouns ! ----------------- ! A2 as e, as in three-syllabic forms "A2 as e" A2:e <=> Syllable _ %>: OpenFinal ; ! A2 not realised, followed by a nucleus-initial affix "A2 as 0" A2:0 <=> Syllable _ %>: Nucleus (Cons) (Nucleus) (:0) DomainBound: ; ! Rules for e-nouns ! ----------------- ! Rules for two-syllable contexts ! =============================== "I1 as ie" I1:i <=> Syllable _ 0:e Cons+ [Nucleus %>: | V:0 %>: Nucleus] OpenFinal ; Syllable Nucleus Cons+ [Nucleus %>: | (V:0) %>: Nucleus] Cons+ _ 0:e DomainBound:; "O1 as oe" O1:o <=> Syllable _ 0:e Cons+ [Nucleus %>: | (V:0) %>: Nucleus] OpenFinal ; "A3, I1, O1 when preceding v" Vx:Vy <=> Syllable _ v (Cons) [ Nucleus (AccGenSg) | V:0 %>: [h | :i ]] DomainBound: ; where Vx in (A3 I1 O1) Vy in (o u o) matched; ! The rules for a preceding j (A-j, C-j) are strictly parallel. "I1, O1 when preceding j" Vx:Vy <=> Syllable _ j (Cons) [ Nucleus (AccGenSg) | V:0 %>: [h | :i ]] DomainBound: ; where Vx in (I1 O1) Vy in (i o) matched; ! The B-x and C-x cases are covered by the following rules ! The second context specifies two-syllabic stems, where the stem vowel is reduced ! to 'e' when inflected. 'maana' words were missing, added A2:e to cover Ine and ! Ela Sg of this noun class as well. SNM 13.5.2002 "I1 as e" I1:e <=> Syllable _ ConsJV [ Nucleus (AccGenSg) | V:0 %>: [h | :i ]] DomainBound: ; Syllable [ [I2:e | O2:o | A2:e | U2:e ] %>: | V:0 %>: [:e | :i]] Cons+ _ DomainBound: ; "O1 as o, A3 as e" Vx:Vy <=> Syllable _ ConsJV [Nucleus (AccGenSg) | V:0 %>: [h | :i]] DomainBound: ; where Vx in (A3 O1) Vy in (e o) matched; ! Rules for I4: "I4 as e" I4:e <=> Syllable Nucleus Cons+ _ (AccGenSg) DomainBound: ; "I4 as i" I4:i <=> Syllable Nucleus Cons+ _ %>: OpenFinal ; "I4 as 0" I4:0 <=> Syllable Nucleus Cons+ _ %>: [Nucleus (Cons+ Nucleus) | h] DomainBound: ; ! Rule for U2 "U2 as 0" U2:0 <=> DomainBound: C* Nucleus Cons+ _ %>: [ h | Nucleus ( Cons+ ) ( Nucleus ) ] DomainBound: ; "Consonant doubling" D1:X <=> A1:a X: _ ; X: _ I1:i 0:e ; where X in DobCons; ! Umlaut rules ! ============ ! Monophtongs ! ----------- ! Umlaut in row A in the umlaut table "Umlaut in ie-context, monopthongs" Vx:Vy <=> Onset _ Cons+ [I2:i 0:e | I2:e %>: ] ; where Vx in (Æ A4 Å1) Vy in (i e u ) matched ; !€ abba !€ abba ! Umlaut in row B in the umlaut table "Umlaut in a-context, monopthongs" Vx:Vy <=> Onset _ Cons+ I2:0 %>: A1:a ; where Vx in (Æ A4 Å1) Vy in (æ a å ) matched ; ! Umlaut in row C in the umlaut table "Umlaut in oe-context, monopthongs" Vx:Vy <=> Onset _ Cons+ O2:o ; where Vx in (Æ A4 Å1) Vy in (æ a å ) matched ; ! Umlaut in row E in the umlaut table "Umlaut before affixes on A1:e, row E, monophtongs" Vx:Vy <=> Onset _ Cons+ [I2:0|O2:0] %>: A1:e OpenOrClosedFinal ; where Vx in (Æ A4 Å1) Vy in (y o o ) matched ; ! Umlaut in row F in the umlaut table "Umlaut before affixes on -i, row F, monopthongs" Vx:Vy <=> Onset _ Cons+ I2:0 %>: :i (Cons+ Nucleus) DomainBound: ; where Vx in (Æ A4 Å1) Vy in (i i u ) matched ; ! Dipthongs ! --------- ! Umlaut in row A in the umlaut table "Umlaut in ie-context, diphthongs" Vx:Vy <=> Onset _ 0:e Cons+ [ I2:i | I2:e ] ; where Vx in (E1 Å2 Å3 U1) Vy in (i a å u ) matched; ! Umlaut in row B in the umlaut table "Umlaut in a-context, diphthongs" Vx:Vy <=> Onset _ 0:a Cons+ I2: %>: A1:a ; where Vx in (E1 Å2 Å3 U1) Vy in (e a å u ) matched; ! Umlaut in row C in the umlaut table "Umlaut in oe-context, diphthongs" Vx:Vy <=> Onset _ 0:a Cons+ O2:o ; where Vx in (E1 Å2 Å3 U1) Vy in (e a å å ) matched; "Å4 to åe and åa" Å4:å <=> Onset _ 0:a C+ I2: %>: A1: ; Onset _ 0:e C+ [I2:i |I2:e | I2:0 %>: Nucleus] ; ! Umlaut in row E in the umlaut table "Umlaut before affixes with A1:e, row E, diphthongs" Vx:Vy <=> Onset _ 0:Vy Cons+ [I2:0 | O2:0] %>: A1:e OpenOrClosedFinal ; where Vx in (Å2 Å3 U1) Vy in (å å å ) matched; ! Umlaut in row E in the umlaut table ie->yö "Umlaut before affixes with A1, row E, ie->yö" E1:y <=> Onset _ 0:ö Cons+ [I2:0 | O2:0] %>: [A1:a | A1:e] OpenOrClosedFinal ; ! Umlaut in row F in the umlaut table "Umlaut before affixes on -i, row F, diphthongs" Vx:Vy <=> Onset _ 0:Vy Cons+ I2:0 %>: :i (Cons+ Nucleus) DomainBound: ; where Vx in (E1 Å2 Å3 U1) Vy in (e e ö ö ) matched; ! Other rules ! =========== ! Rules for I3 (genitive plural): "I3 as j" I3:j <=> [I2:i 0:e | A2: | O2:o 0:e] %>: _ DomainBound: ; "I2 not as 0" I2:0 /<= Onset Å4:å 0:e Cons+ _ %>: I3: DomainBound: ; ! Rules for surface dipthtongs ! ============================ ! "Inserted a" ! 0:a <=> Onset [E1:| Å2: | Å3: | U1:] _ Cons+ I2: %>: A1:a ; ! Onset [E1:| Å2: | Å3:| U1:] _ Cons+ O2:o ; ! Onset Å4: _ C+ I2: %>: A1: ; ! "Inserted e" !E2 must in again. ! E2:e <=> ! Syllable [I2: | O2: ] _ (%>: [ I3:j | Cons+ ]) DomainBound:; ! Syllable I1: _ Cons+ [Nucleus %>: | V:0 %>: Nucleus] OpenFinal ; ! Syllable Nucleus Cons+ ! [Nucleus %>: | (V:0) %>: Nucleus] Cons+ I1: _ DomainBound:; ! Syllable O1: _ Cons+ [Nucleus %>: | (V:0) %>: Nucleus] OpenFinal ; ! Onset [E1:| Å2:| Å3:| U1:] _ Cons+ [ I2:i | I2:e ] ; ! Onset Å4: _ C+ [I2:i |I2:e | I2:0 %>: Nucleus] ; !! [I2: | O2:] _ %>: I3: DomainBound: ; ! Onset [E1:|Å2:] _ Cons+ I2:0 %>: :i (Cons+ Nucleus) DomainBound: ; "Inserted e" !E2 must in again. (080209 this now happens) 0:e <=> Syllable [I2: | O2: ] _ (%>: [ I3:j | Cons+ ]) DomainBound:; Syllable I1: _ Cons+ [Nucleus %>: | V:0 %>: Nucleus] OpenFinal ; Syllable Nucleus Cons+ [Nucleus %>: | (V:0) %>: Nucleus] Cons+ I1: _ DomainBound:; Syllable O1: _ Cons+ [Nucleus %>: | (V:0) %>: Nucleus] OpenFinal ; Onset [E1:| Å2:| Å3:| U1:] _ Cons+ [ I2:i | I2:e ] ; Onset Å4: _ C+ [I2:i |I2:e | I2:0 %>: Nucleus] ; ! [I2: | O2:] _ %>: I3: DomainBound: ; Onset [E1:|Å2:] _ Cons+ I2:0 %>: :i (Cons+ Nucleus) DomainBound: ; "Inserted ö" 0:ö <=> Onset E1: _ Cons+ [I2:0 | O2:0] %>: [A1:a | A1:e] OpenOrClosedFinal ; Onset [Å3:|U1:] _ Cons+ I2:0 %>: :i (Cons+ Nucleus) DomainBound: ; "Inserted å" 0:å <=> Onset [Å2:| Å3:| U1:] _ Cons+ [I2:0 | O2:0] %>: A1:e OpenOrClosedFinal ; ! New-style stem vowel alternations ! ================================= "e deletion before i-initial suffix" e:0 <=> _ X2:0 i: ; !€# manneX2ine !€0 mann00ine !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! Odd-syllabic verbs and nouns: !!! "Diphthong simplification ie:e" i:0 <=> _ e C+ (e) (%>:) %^DISIMP: ; !€# dåeried%>%^DISIMPem !€0 dåer0ed00em !$# dåeried%>%^DISIMPem !$0 dåeried00em !€# gieriehtse%>%^DISIMPm !€0 gier0ehtse00m !$# gieriehtse%>%^DISIMPm !$0 gieriehtse00m "Diphthong simplification oe:o" e:0 <=> o _ C+ (e) (%>:) %^DISIMP: ; !€# daaroest%>%^DISIMPem !€0 daaro0st00em !$# daaroest%>%^DISIMPem !$0 daaroest00em !€# gaaloehke%>%^DISIMPm !€0 gaalo0hke00m !$# gaaloehke%>%^DISIMPm !$0 gaaloehke00m "a/e alternation" a:e <=> _ [ C - j ] (C) (e) (%>:) %^DISIMP: ; !€# aatskad%>%^DISIMPem !€0 aatsked00em !$# aatskad%>%^DISIMPem !$0 aatskad00em !€# daktare%>%^DISIMPm !€0 daktere00m !$# daktare%>%^DISIMPm !$0 daktare00m "a/i alternation" a:i <=> _ j (e) (%>:) %^DISIMP: ; ! No nouns following this pattern, see last part of §103 in Bergsland - ??? !€# jåhtaj%^DISIMP%>em !€0 jåhtij00em !$# jåhtaj%^DISIMP%>em !$0 jåhtaj00em "Even syllabic verbs Du1Pl3 e/oe V" ':o <=> _ e: X2: C ; "Even syllabic verbs Du3 e/i alternation V" e:i <=> ': _ X3: C ; ! Blocking rules to prevent overgeneration ! ======================================== "Berre 0:e etter leksikalsk vokal" 0:e => E1:i _ ; E1:e _ ; I1:i _ ; I2:i _ ; O1:o _ ; O2:o _ ; U1:u _ ; Å2:a _ ; Å2:e _ ; Å3:å _ ; Å4:å _ ; "Berre 0:a etter leksikalsk vokal" 0:a => E1:e _ ; U1:u _ ; Å2:a _ ; Å3:å _ ; Å4:å _ ; "Berre 0:ö etter leksikalsk vokal" 0:ö => E1:y _ ; U1:ö _ ; Å3:ö _ ; "Berre 0:å etter leksikalsk vokal" 0:å => U1:å _ ; Å2:å _ ; Å3:å _ ; !! Plan for rewriting the twolc file. !! !! !! Now: !! Vx:Vy <=> _ context somelinguistic !! where Vx in (Æ A4 Å1) !! Vy in (æ a å ) !! matched ; !! This presupposes !! lila:lÄla CL ; !! ziza CL ; !! in lexicon !! !! Rather, perhaps: !! Vx:Vy <=> _ context ^UMLAUTROW3 !! where Vx in (i e u ) !! Vy in (æ a å ) !! matched ; !! this presupposes !! lila CL-UML ; !! ziza CL ; !! in lexicon !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!! New style Umlaut rules. !!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!Class Even I ! i:æ e:a ae:aa u:å ! Pres Sg123 ! V28, V30, V32, V36, V38, V40 ! N §102 "Even syllabic verbs present sg, monophpt E I" Vx:Vy <=> _ C+ (V) %>: %^1UML:0 ; where Vx in (i e u) Vy in (æ a å) matched ; !€# biss%>%^1UMLam !€0 bæss00am !€# belt%>%^1UMLam !€0 balt00am !€# buhtj%>%^1UMLa !€0 båhtj00a !€# paek%>%^1UMLa !€0 paak00a !€# bået%>%^1UMLa !€0 båat00a !€# buel%>%^1UMLa !€0 bual00a !€# kliht%>%^1UMLan !€0 klæht00an !€# jepts%>%^1UMLan !€0 japts00an !€# gull%>%^1UMLan !€0 gåll00an !€# gaevl%>%^1UMLan !€0 gaavl00an !€# gået%>%^1UMLan !€0 gåat00an !€# njuesl%>%^1UMLan !€0 njuasl00an "Even syllabic verbs present sg, diphth ie-ea" i:e <=> _ e:a C+ %>:0 %^1UML:0 ; !€# jieht%>%^1UMLa !€0 jeaht00a !€# sjiell%>%^1UMLan !€0 sjeall00an ! [C|#:] constraint is to avoid collission with diphthong contexts "Even syllabic verbs Sg3 + PrfPtc E II" Vx:Vy <=> [ C | #: ] _ C+ (V) %>: %^2UML: ; where Vx in (æ a å) Vy in (y o o) matched ; !€# gælj%>%^2UMLe !€0 gylj00e !€# færhtje%>%^2UMLse !€0 fyrhtje00se !€# hahtje%>%^2UMLse !€0 hohtje00se !€# rånhtje%>%^2UMLse !€0 ronhtje00se !$# færhtje%>%^2UMLse !$0 færhtje00se !$# hahtje%>%^2UMLse !$0 hahtje00se !$# rånhtje%>%^2UMLse !$0 rånhtje00se !! "o Deletion verbs Sg3 - PrfPtc II" !! o:0 <=> %>: %^2UML: _ e ; !! ! !! !"e Deletion" !! !e:0 <=> o _ (Dummy:) %>: [b|d]; ! Dummy being %^2UML "Even syllabic verbs Sg3 + PrfPtc ea-yø II a" e:y <=> _ a: C+ (V) %>: %^2UML: ; "Even syllabic verbs Sg3 + PrfPtc ea-yø II b" a:ø <=> e: _ C+ (V) %>: %^2UML: ; !€# tjear%>%^2UMLe !€0 tjyør00e !$# tjear%>%^2UMLe !$0 tjear00e !€# bearke%>%^2UMLse !€0 byørke00se !$# bearko%>%^2UMLse !$0 bearke00se !€# mearhtje%>%^2UMLse !€0 myørhtje00se !$# mearhtje%>%^2UMLse !$0 mearhtje00se "Even syllabic verbs Sg3 + PrfPtc aa-åå åa-åå II" a:å <=> [a:|å:] _ C+ (V) %>: %^2UML: ; _ a: C+ (V) %>: %^2UML: ; !aa åa !åå åå !€# haare%>%^2UMLse !€0 hååre00se !$# haare%>%^2UMLse !$0 haare00se !€# råafe%>%^2UMLse !€0 rååfe00se !$# råafe%>%^2UMLse !$0 råafe00se "Even syllabic verbs Sg3 ï-æ IV" Vx:Vy <=> _ C+ %>:0 %^3sUML: ; where Vx in (ï o) Vy in (æ å) matched ; ! Verbs like: mïnnedh, jovkedh !€# mïnn%>%^3sUMLa !€0 mænn00a !€# jovk%>%^3sUMLa !€0 jåvk00a "1st rule for even syllabic verbs Sg3 ïe-ea IV" Vx:Vy <=> [ C | #: ] _ e: C+ %>:0 %^3sUML: ; where Vx in (ï o) Vy in (e u) matched ; "2nd rule for even syllabic verbs Sg3 ïe-ea IV" e:a <=> [ï:|o:] _ C+ %>:0 %^3sUML: ; ! Verbs like: tjïeledh, roehtedh !€# tjïel%>%^3sUMLa !€0 tjeal00a !€# roeht%>%^3sUMLa !€0 ruaht00a "Even syllabic verbs Du1Pl3 IV" Vx:Vy <=> [ C | #: ] _ (e) C+ %>:0 %^3dUML: ; !(e) due to îe:ie where Vx in (ï a o å) Vy in (i e u e) matched ; !€# mïnn%>%^3dUMLien !€0 minn00ien !€# bark%>%^3dUMLien !€0 berk00ien !€# jovk%>%^3dUMLien !€0 juvk00ien !€# jårr%>%^3dUMLien !€0 jerr00ien !€# tjïek%>%^3dUMLien !€0 tjiek00ien ! prob delete this after testing ! " verbs Sg3 + PrfPtc ÅÅ II" ! a:å <=> _ a:å C+ o:0 e: %^2UML: ; ! Umlaut rules for even-syll past tense "ie:ee and ae:ee past tense" Vx:e <=> _ e C* %>: %^iUML: ; where Vx in ( a i ); !€# jieht%>%^iUMLim !€0 jeeht00im !€# tjael%>%^iUMLim !€0 tjeel00im "åe:øø and ue:øø past tense I" Vx:ø <=> _ e: C* %>: %^iUML: ; where Vx in ( u å ) ; "åe:øø and ue:øø past tense II" e:ø <=> [ å: | u: ] _ C* %>: %^iUML: ; !€# bået%>%^iUMLim !€0 bøøt00im !€# vuejn%>%^iUMLim !€0 vøøjn00im ! Lexical test suites ! =================== !0 dÅ30rI20dI2%>dh !0 dåeriedi0dh !# bÆssI2%>dh !0 bisse0dh !# bA4ltI2%>dh !0 belte0dh !# bÅ1htjI2%>dh !0 buhtje0dh !# pE1kI2%>dh !0 paeke0dh !# bÅ30tI2%>dh !0 båete0dh !# bU1lI2%>dh !0 buele0dh !# ÆbjO2%>dh !0 æbjo0dh !# hÅ4jkO2%>dh !0 hajko0dh !# gÅ1hpO2%>dh !0 gåhpo0dh !# tjE1rO2%>dh !0 tjearo0dh !# bÅ2jskO2%>dh !0 baajsko0dh !# gÅ3rO2%>dh !0 gåaro0dh !# skÆlkA2%>dh !0 skælke0dh !# skÅ4jkA2%>dh !0 skajke0dh !# plÅ1tjkA2%>dh !0 plåjke0dh !# slE1pkA2%>dh !0 sleapke0dh !# snjÅ3rkA2%>dh !0 snjåarke0dh !# sÆrr%>dh !0 sïrre0dh !# sÅ4rj%>dh !0 sarje0dh !# sÅ1dt%>dh !0 sodte0dh !# skE1rk%>dh !0 skïerke0dh !# slÅ2pk%>dh !0 slaapke0dh !# snjÅ3r%>dh !0 snjåare0dh !# tjU1hp%>dh !0 tjoehpe0dh !# skyll%>dh !0 skylle0dh !# aalhterost%>dh !0 aalhteroste0dh !# skyör%>dh !0 skyöre0dh !# vååjn%>dh !0 vååjne0dh !# skilhte%>dh !0 skilhte0dh !# sijle%>dh !0 sijle0dh !# snjurme%>dh !0 snjurme0dh !# snjeere%>dh !0 snjeere0dh !# gööle%>dh !0 gööle0dh