diff --git a/resource/finnish/LexiconFin.gf b/resource/finnish/LexiconFin.gf index 45f7c645..feff5be3 100644 --- a/resource/finnish/LexiconFin.gf +++ b/resource/finnish/LexiconFin.gf @@ -114,7 +114,7 @@ lin leather_N = mkN "nahka" ; --- nahan leave_V2 = mkV2 (mkV "jättää") ; like_V2 = mkV2 (mkV "pitää") elative ; - listen_V2 = mkV2 (mkV "kuunnella" "kuuntelen" "kuunteli") partitive ; + listen_V2 = mkV2 (mkV "kuunnella" "kuunteli") partitive ; live_V = mkV "elää" ; long_A = mkA (mkN "pitkä") "pitempi" "pisin" ; lose_V2 = mkV2 (mkV "hävitä" "hävisi") ; --- hukata @@ -247,7 +247,7 @@ lin dull_A = mkA (mkN "tylsä") "tylsempi" "tylsin" ; full_A = mkA (mk3N "täysi" "täyden" "täysiä") "täydempi" "täysin" ; heavy_A = mkA "raskas" ; - near_A = mkA "läheinen" ; + near_A = mkA (mkN "läheinen") ; rotten_A = mkA "mätä" ; round_A = mkA "pyöreä" ; sharp_A = mkA "terävä" ; @@ -338,8 +338,8 @@ lin hold_V2 = mkV2 (mkV "pitää") cpartitive ; hunt_V2 = mkV2 (mkV "metsästää") cpartitive ; kill_V2 = mkV2 (mkV "tappaa") ; - laugh_V = mkV "nauraa" "nauran" "nauroi" ; - lie_V = mkV "maata" "makaan" "makasi" ; + laugh_V = mkV "nauraa" "nauroi" ; + lie_V = mkV "maata" "makasi" ; play_V = mkV "pelata" ; pull_V2 = mkV2 (mkV "vetää") ; push_V2 = mkV2 (mkV "työntää") ; @@ -376,7 +376,7 @@ lin john_PN = mkPN "Jussi" ; question_N = mkN "kysymys" ; - ready_A = mkA "valmis" ; + ready_A = mkA (mkN "valmis") ; reason_N = mkN "syy" ; today_Adv = mkAdv "tänään" ; uncertain_A = mkA "epävarma" ; diff --git a/resource/finnish/ParadigmsFin.gf b/resource/finnish/ParadigmsFin.gf index 73b67dc8..3e84b593 100644 --- a/resource/finnish/ParadigmsFin.gf +++ b/resource/finnish/ParadigmsFin.gf @@ -141,13 +141,13 @@ oper -- a table. -- The worst case needs twelve forms, as shown in the following. - mkV = overload { - mkV : (huutaa : Str) -> V = mk1V ; - mkV : (huutaa,huusi : Str) -> V = mk2V ; - mkV : (huutaa,huudan,huusi : Str) -> V = \x,_,y -> mk2V x y ; ---- + mkV : overload { + mkV : (huutaa : Str) -> V ; + mkV : (huutaa,huusi : Str) -> V ; + mkV : (huutaa,huudan,huusi : Str) -> V ; mkV : ( huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan, - huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V = mk12V ; + huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V ; } ; -- All the patterns above have $nominative$ as subject case. @@ -416,19 +416,24 @@ oper mkN3 = \n,c,e -> n ** {c2 = c ; c3 = e ; lock_N3 = <>} ; mkPN = overload { - mkPN : Str -> PN = \s -> {s = \\c => (mk1N s).s ! NCase Sg c ; lock_PN = <>} ; + mkPN : Str -> PN = mkPN_1 ; mkPN : N -> PN = \s -> {s = \\c => s.s ! NCase Sg c ; lock_PN = <>} ; } ; + mkPN_1 : Str -> PN = \s -> {s = \\c => (mk1N s).s ! NCase Sg c ; lock_PN = <>} ; + -- adjectives mkA = overload { - mkA : Str -> A = \s -> noun2adjDeg (mk1N s) ** {lock_A = <>} ; +-- mkA : Str -> A = \x -> noun2adjDeg (mk1N x) ** {lock_A = <>} ; + mkA : Str -> A = mkA_1 ; mkA : N -> A = \n -> noun2adjDeg n ** {lock_A = <>} ; mkA : N -> (kivempaa,kivinta : Str) -> A = regAdjective ; -- mkA : (hyva,parempi,paras : N) -> (hyvin,paremmin,parhaiten : Str) -> A ; } ; + mkA_1 : Str -> A = \x -> noun2adjDeg (mk1N x) ** {lock_A = <>} ; + -- auxiliaries mkAdjective : (_,_,_ : Adj) -> A = \hyva,parempi,paras -> {s = table { @@ -454,9 +459,18 @@ oper -- verbs - mk1V : Str -> V = \s -> vforms2V (vForms1 s) ** {sc = NPCase Nom ; lock_V = <>} ; - mk2V : (_,_ : Str) -> V = \s,t -> vforms2V (vForms2 s t) ** {sc = NPCase Nom ; lock_V = <>} ; + mkV = overload { + mkV : (huutaa : Str) -> V = mk1V ; + mkV : (huutaa,huusi : Str) -> V = mk2V ; + mkV : (huutaa,huudan,huusi : Str) -> V = mk3V ; + mkV : ( + huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan, + huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V = mk12V ; + } ; + mk1V : Str -> V = \s -> vforms2V (vForms1 s) ** {sc = NPCase Nom ; lock_V = <>} ; + mk2V : (_,_ : Str) -> V = \x,y -> vforms2V (vForms2 x y) ** {sc = NPCase Nom ; lock_V = <>} ; + mk3V : (huutaa,huudan,huusi : Str) -> V = \x,_,y -> mk2V x y ; ---- mk12V : ( huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan, huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V =