diff --git a/src/somali/LexiconSom.gf b/src/somali/LexiconSom.gf index 81d098b7..13c11778 100644 --- a/src/somali/LexiconSom.gf +++ b/src/somali/LexiconSom.gf @@ -41,7 +41,7 @@ lin bird_N = mkN "shimbir" fem ; -- lin bone_N = mkN "" ; -- lin boot_N = mkN "" ; -- lin boss_N = mkN "" ; -lin book_N = (mk2N "buug" "buugaag") ** {pl = F TA} ; +lin book_N = (mk2N "buug" "buugaag") ** {gda = MF GA TA} ; lin boy_N = mk2N "wiil" "wiilal" ; lin bread_N = mkN "rooti" ; --masc/fem -- lin break_V2 = mkV2 "" ; @@ -222,7 +222,7 @@ lin language_N = mkN "af" ; ---- -- M -lin man_N = mkN "nin" ; +lin man_N = (mk2N "nin" "niman") ** {gda = MM KA KA} ; -- lin married_A2 = mkA "" ; lin meat_N = mkN "hilib" "hilbo" masc ; -- lin milk_N = mkN "" ; diff --git a/src/somali/ParadigmsSom.gf b/src/somali/ParadigmsSom.gf index 81e9fe00..fb923596 100644 --- a/src/somali/ParadigmsSom.gf +++ b/src/somali/ParadigmsSom.gf @@ -38,6 +38,7 @@ oper mkN : overload { mkN : (bisad : Str) -> N ; -- Predictable nouns mkN : (shimbir : Str) -> (fem : Gender) -> N ; -- Unpredictable gender +-- mkN : (nin, niman : Str) -> N ; -- Monosyllable word with unpredictable plural mkN : (maalin,maalmo : Str) -> Gender -> N ; -- Consonant cluster in stem --mkN : N -> Gender -> N ; -- Otherwise predictable but not gender (TODO does this even happen?) } ; @@ -165,7 +166,8 @@ oper mkN = overload { mkN : Str -> N = \s -> lin N (mkN1 s) ; mkN : Str -> Gender -> N = \s,g -> lin N (mkNg s g) ; - mkN : (_,_ : Str) -> Gender -> N = \s,t,g -> lin N (nMaalin s t g) ; + mkN : (sg, pl : Str) -> N = \sg,pl -> lin N (mk2N sg pl) ; + mkN : (indefsg,defsg : Str) -> Gender -> N = \s,t,g -> lin N (nMaalin s t g) ; --mkN : N -> Gender -> N = \n,g -> n ** {g = g } } ; diff --git a/src/somali/ResSom.gf b/src/somali/ResSom.gf index cb64f32b..d25ad109 100644 --- a/src/somali/ResSom.gf +++ b/src/somali/ResSom.gf @@ -85,11 +85,11 @@ oper mkNoun ul (u + sha) (ul + o) (ul + "aha") Fem ; -- 4b) Masculine, plural with ó, 2 syllables - nGuri guri = let o = allomorph mO guri ; - ga = allomorph mKa guri ; + nGuri guri = let ga = allomorph mKa guri ; gury = case last guri of { -- TODO does this generalise? Or just exception? "i" => init guri + "y" ; - _ => guri } in + _ => guri } ; + o = allomorph mO gury in mkNoun guri (guri + ga) (gury + o) (gury + "aha") Masc ; -- 4c) Masculine, plural with -ó, 3 syllables or longer