diff --git a/lib/resource/finnish/BasicFin.gf b/lib/resource/finnish/BasicFin.gf index 9bec4c63f..ae24a6543 100644 --- a/lib/resource/finnish/BasicFin.gf +++ b/lib/resource/finnish/BasicFin.gf @@ -5,7 +5,7 @@ concrete BasicFin of Basic = CategoriesFin ** open ParadigmsFin in { flags startcat=Phr ; lexer=textlit ; unlexer=text ; - optimize=all ; + optimize=values ; lin @@ -23,7 +23,7 @@ lin beer_N = reg3N "olut" "oluen" "oluita" ; ---- beg_V2V = mkV2V (regDuplV "beg") [] "to" ; big_ADeg = mkADeg (reg3N "suuri" "suuren" "suuria") "suurempi" "suurin" ; - bike_N = regN "polkupyörä" ; + bike_N = nLukko "polkupyörä" ; --- for correct vowel harmony bird_N = reg3N "lintu" "linnun" "lintuja" ; black_ADeg = mkADeg (reg3N "musta" "mustan" "mustia") "mustempi" "mustin" ; blue_ADeg = mkADeg (regN "sininen") "sinisempi" "sinisin" ; @@ -42,94 +42,96 @@ lin camera_N = regN "kamera" ; cap_N = reg3N "lakki" "lakin" "lakkeja" ; car_N = regN "auto" ; -{- - carpet_N = regN "carpet" ; - cat_N = regN "cat" ; - ceiling_N = regN "ceiling" ; - chair_N = regN "chair" ; - cheese_N = regN "cheese" ; - child_N = mk2N "child" "children" ; - church_N = regN "church" ; - city_N = regN "city" ; - clean_ADeg = regADeg "clean" ; - clever_ADeg = regADeg "clever" ; - close_V2 = dirV2 (regV "close") ; - coat_N = regN "coat" ; - cold_ADeg = regADeg "cold" ; - come_V = (irregV "come" "came" "come") ; - computer_N = regN "computer" ; - country_N = regN "country" ; - cousin_N = regN "cousin" ; - cow_N = regN "cow" ; - die_V = (regV "die") ; - dirty_ADeg = regADeg "dirty" ; - distance_N3 = mkN3 (regN "distance") "from" "to" ; - doctor_N = regN "doctor" ; - dog_N = regN "dog" ; - door_N = regN "door" ; --} + carpet_N = reg3N "matto" "maton" "mattoja" ; + cat_N = regN "kissa" ; + ceiling_N = reg3N "katto" "katon" "kattoja" ; + chair_N = regN "tuoli" ; + cheese_N = regN "juusto" ; + child_N = mkN "lapsi" "lapsen" "lapsena" "lasta" "lapseen" + "lapsina" "lapsissa" "lasten" "lapsia" "lapsiin" human ; + church_N = reg3N "kirkko" "kirkon" "kirkkoja" ; + city_N = reg3N "kaupunki" "kaupungin" "kaupunkeja" ; + clean_ADeg = mkADeg (reg3N "puhdas" "puhtaan" "puhtaita") "puhtaampi" "puhtain" ; + clever_ADeg = mkADeg (reg3N "viisas" "viisaan" "viisaita") "viisaampi" "viisain" ; + close_V2 = dirV2 (reg3V "sulkea" "suljen" "sulki") ; + coat_N = reg3N "takki" "takin" "takkeja" ; + cold_ADeg = mkADeg (regN "kylmä") "kylmempi" "kylmin" ; + come_V = regV "tulla" ; + computer_N = regN "tietokone" ; + country_N = regN "maa" ; + cousin_N = reg3N "serkku" "serkun" "serkkuja" ; + cow_N = regN "lehmä" ; + die_V = regV "kuolla" ; + dirty_ADeg = mkADeg (regN "likainen") "likaisempi" "likaisin" ; +---- distance_N3 = mkN3 (regN "distance") "from" "to" ; + doctor_N = reg3N "tohtori" "tohtorin" "tohtoreita" ; + dog_N = reg3N "koira" "koiran" "koiria" ; + door_N = reg3N "ovi" "oven" "ovia" ; drink_V2 = dirV2 (regV "juoda") ; +---- easy_A2V = mkA2V (regA "easy") "for" ; + eat_V2 = dirV2 (regV "syödä") ; + empty_ADeg = mkADeg (regN "tyhjä") "tyhjempi" "tyhjin" ; + enemy_N = regN "vihollinen" ; + factory_N = reg3N "tehdas" "tehtaan" "tehtaiden" ; +---- father_N2 = regN2 "father" ; +---- fear_VS = mkVS (reg3V "pelätä" "pelkään" "pelkäsi") ; + find_V2 = dirV2 (reg3V "löytää" "löydän" "löysin") ; + fish_N = regN "kala" ; + floor_N = reg3N "lattia" "lattian" "lattioita" ; + forget_V2 = dirV2 (reg3V "unohtaa" "unohdan" "unohdin") ; + fridge_N = reg3N "jääkaappi" "jääkaapin" "jääkaappeja" ; + friend_N = regN "ystävä" ; + fruit_N = regN "hedelmä" ; +---- fun_AV = mkAV (regA "fun") ; + garden_N = regN "puutarha" ; + girl_N = reg3N "tyttö" "tytön" "tyttöjä" ; + glove_N = reg3N "käsine" "käsineen" "käsineitä" ; + gold_N = reg3N "kulta" "kullan" "kultia" ; + good_ADeg = mkADeg (regN "hyvä") "parempi" "parhain" ; --- paras + go_V = regV "mennä" ; + green_ADeg = mkADeg (regN "vihreä") "vihreämpi" "vihrein" ; + harbour_N = reg3N "satama" "sataman" "satamia" ; + hate_V2 = dirV2 (regV "vihata") ; + hat_N = reg3N "hattu" "hatun" "hattuja" ; + have_V2 = dirV2 (regV "omistaa") ; ---- olla + hear_V2 = dirV2 (regV "kuulla") ; + hill_N = regN "kukkula" ; +---- hope_VS = mkVS (regV "toivoa") ; + horse_N = regN "hevonen" ; + hot_ADeg = mkADeg (reg3N "kuuma" "kuuman" "kuumia") "kuumempi" "kuumin" ; + house_N = regN "talo" ; + important_ADeg = mkADeg (regN "tärkeä") "tärkeämpi" "tärkein" ; + industry_N = regN "teollisuus" ; + iron_N = reg3N "rauta" "raudan" "rautoja" ; + king_N = reg3N "kuningas" "kuninkaan" "kuninkaita" ; + know_V2 = dirV2 (reg3V "tietää" "tiedän" "tiesin") ; ---- tuntea + lake_N = reg3N "järvi" "järven" "järviä" ; + lamp_N = reg3N "lamppu" "lampun" "lamppuja" ; + learn_V2 = + dirV2 (mkV "oppia" "oppii" "opin" "oppivat" "oppikaa" "opitaan" + "oppi" "opin" "oppisi" "oppinut" "opittu" "opitun") ; + leather_N = reg3N "nahka" "nahan" "nahkoja" ; + leave_V2 = dirV2 (reg3V "jättää" "jätän" "jätin") ; + like_V2 = caseV2 (reg3V "pitää" "pidän" "pidin") elative ; + listen_V2 = caseV2 (reg3V "kuunnella" "kuuntelen" "kuuntelin") partitive ; + live_V = regV "elää" ; + long_ADeg = mkADeg (regN "pitkä") "pitempi" "pisin" ; + lose_V2 = dirV2 (regV "hävitä") ; --- hukata + love_N = reg3N "rakkaus" "rakkauden" "rakkauksia" ; + love_V2 = caseV2 (regV "rakastaa") partitive ; + man_N = mkN "mies" "miehen" "miehenä" "miestä" "mieheen" + "miehinä" "miehissä" "miesten" "miehiä" "miehiin" human ; +---- married_A2 = mkA2 (regA "married") "to" ; + meat_N = regN "liha" ; + milk_N = regN "maito" ; + moon_N = regN "kuu" ; +---- mother_N2 = regN2 "äiti" ; + mountain_N = reg3N "vuori" "vuoren" "vuoria" ; + music_N = regN "musiikki" ; + narrow_ADeg = mkADeg (regN "kapea") "kapeampi" "kapein" ; + new_ADeg = mkADeg (reg3N "uusi" "uuden" "uusia") "uudempi" "uusin" ; + newspaper_N = nSylki "sanomalehti" ; --- for correct vowel harmony {- - easy_A2V = mkA2V (regA "easy") "for" ; - eat_V2 = dirV2 (irregV "eat" "ate" "eaten") ; - empty_ADeg = regADeg "empty" ; - enemy_N = regN "enemy" ; - factory_N = regN "factory" ; - father_N2 = regN2 "father" ; - fear_VS = mkVS (regV "fear") ; - find_V2 = dirV2 (irregV "find" "found" "found") ; - fish_N = mk2N "fish" "fish" ; - floor_N = regN "floor" ; - forget_V2 = dirV2 (irregV "forget" "forgot" "forgotten") ; - fridge_N = regN "fridge" ; - friend_N = regN "friend" ; - fruit_N = regN "fruit" ; - fun_AV = mkAV (regA "fun") ; - garden_N = regN "garden" ; - girl_N = regN "girl" ; - glove_N = regN "glove" ; - gold_N = regN "gold" ; - good_ADeg = mkADeg "good" "better" "best" "well" ; - go_V = (mkV "go" "goes" "went" "gone" "going") ; - green_ADeg = regADeg "green" ; - harbour_N = regN "harbour" ; - hate_V2 = dirV2 (regV "hate") ; - hat_N = regN "hat" ; - have_V2 = dirV2 (mkV "have" "has" "had" "had" "having") ; - hear_V2 = dirV2 (irregV "hear" "heard" "heard") ; - hill_N = regN "hill" ; - hope_VS = mkVS (regV "hope") ; - horse_N = regN "horse" ; - hot_ADeg = regADeg "hot" ; - house_N = regN "house" ; - important_ADeg = compoundADeg (regA "important") ; - industry_N = regN "industry" ; - iron_N = regN "iron" ; - king_N = regN "king" ; - know_V2 = dirV2 (irregV "know" "knew" "known") ; - lake_N = regN "lake" ; - lamp_N = regN "lamp" ; - learn_V2 = dirV2 (regV "learn") ; - leather_N = regN "leather" ; - leave_V2 = dirV2 (irregV "leave" "left" "left") ; - like_V2 = dirV2 (regV "like") ; - listen_V2 = dirV2 (regV "listen") ; - live_V = (regV "live") ; - long_ADeg = regADeg "long" ; - lose_V2 = dirV2 (irregV "lose" "lost" "lost") ; - love_N = regN "love" ; - love_V2 = dirV2 (regV "love") ; - man_N = mk2N "man" "men" ; - married_A2 = mkA2 (regA "married") "to" ; - meat_N = regN "meat" ; - milk_N = regN "milk" ; - moon_N = regN "moon" ; - mother_N2 = regN2 "mother" ; - mountain_N = regN "mountain" ; - music_N = regN "music" ; - narrow_ADeg = regADeg "narrow" ; - new_ADeg = regADeg "new" ; - newspaper_N = regN "newspaper" ; oil_N = regN "oil" ; old_ADeg = regADeg "old" ; open_V2 = dirV2 (regV "open") ; diff --git a/lib/resource/finnish/MorphoFin.gf b/lib/resource/finnish/MorphoFin.gf index a76264a33..8839c8430 100644 --- a/lib/resource/finnish/MorphoFin.gf +++ b/lib/resource/finnish/MorphoFin.gf @@ -373,6 +373,26 @@ oper (naurei + ("t" + a)) (naurei + "siin") ; +-- The following covers adjectives like "kapea", "leveä". + + sKapea : (_ : Str) -> CommonNoun = \kapea -> + let + a = last kapea ; + kape = init kapea ; + kapei = kape + "i" + in + mkSubst a + kapea + kapea + kapea + (kapea + a) + (kapea + a+"n") + kapei + kapei + (kapei + "den") + (kapei + ("t" + a)) + (kapei + "siin") ; + -- The following two are used for adjective comparison. sSuurempi : Str -> CommonNoun = \suurempaa -> @@ -458,7 +478,7 @@ getHarmony : Str -> Str = \u -> case u of { "i" => "j" ; _ => "" } ; - "hk" => kukk ; -- *tahko-tahon + "hk" | "tk" => kukk ; -- *tahko-tahon, *pitkä-pitkän "sk" => kukk ; -- *lasku-lasvun "sp" => kukk ; -- *raspi-rasvin "st" => kukk ; -- *lastu-lasdun diff --git a/lib/resource/finnish/ParadigmsFin.gf b/lib/resource/finnish/ParadigmsFin.gf index b911a2fa4..415bc75ad 100644 --- a/lib/resource/finnish/ParadigmsFin.gf +++ b/lib/resource/finnish/ParadigmsFin.gf @@ -20,6 +20,8 @@ resource ParadigmsFin = open (Predef=Predef), Prelude, SyntaxFin, CategoriesFin in { + flags optimize=values ; + --2 Parameters -- -- To abstract over gender, number, and (some) case names, @@ -324,7 +326,7 @@ reg3N = \vesi,veden,vesi "aa" | "ee" | "ii" | "oo" | "uu" | "yy" | "ää" | "öö" => sPuu vesi ; "ie" | "uo" | "yö" => sSuo vesi ; "is" => sNauris (vesi + ("t" + a)) ; - "ut" | "yt" => sRae vesi (ves + ("en" + a)) ; + "ut" | "yt" | "as" | "äs" => sRae_vesi ; ---- (ves + ("en" + a)) ; "us" | "ys" => ifTok CommonNoun d "s" (sTilaus vesi (veden + a))