mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-21 02:39:31 -06:00
new Finnish paradigms integrated
This commit is contained in:
@@ -71,4 +71,9 @@ concrete ExtraFin of ExtraFinAbs = CatFin **
|
||||
|
||||
vai_Conj = {s = "vai" ; n = Sg} ;
|
||||
|
||||
|
||||
CompPartAP ap = {
|
||||
s = \\agr => ap.s ! False ! AN (NCase agr.n Part)
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -15,5 +15,5 @@ abstract ExtraFinAbs = Extra [
|
||||
|
||||
vai_Conj : Conj ; -- minä vai sinä? ("or" in question)
|
||||
|
||||
vai_Conj : Conj ;
|
||||
CompPartAP : AP -> Comp ; -- kahvi on valmista
|
||||
}
|
||||
|
||||
@@ -7,378 +7,377 @@ flags
|
||||
|
||||
|
||||
lin
|
||||
airplane_N = regN "lentokone" ;
|
||||
answer_V2S = mkV2S (regV "vastata") (casePrep allative) ;
|
||||
apartment_N = regN "asunto" ;
|
||||
apple_N = nLukko "omena" ; --- omenia, not omenoita
|
||||
art_N = regN "taide" ;
|
||||
ask_V2Q = mkV2Q (regV "kysyä") (casePrep ablative) ;
|
||||
baby_N = nLukko "vauva" ;
|
||||
bad_A = mkADeg (nLukko "paha") "pahempi" "pahin" ;
|
||||
bank_N = regN "pankki" ;
|
||||
beautiful_A = mkADeg (regN "kaunis") "kauniimpi" "kaunein" ;
|
||||
become_VA = mkVA (regV "tulla") (casePrep translative) ;
|
||||
beer_N = regN "olut" ;
|
||||
beg_V2V = mkV2V (reg2V "pyytää" "pyysi") (casePrep partitive) ;
|
||||
big_A = mkADeg (sgpartN (nArpi "suuri") "suurta") "suurempi" "suurin" ;
|
||||
bike_N = nLukko "polkupyörä" ; --- for correct vowel harmony
|
||||
bird_N = nLukko "lintu" ;
|
||||
black_A = mkADeg (nLukko "musta") "mustempi" "mustin" ;
|
||||
blue_A = mkADeg (regN "sininen") "sinisempi" "sinisin" ;
|
||||
boat_N = regN "vene" ;
|
||||
book_N = nLukko "kirja" ;
|
||||
boot_N = regN "saapas" ;
|
||||
boss_N = nLukko "pomo" ;
|
||||
boy_N = nKukko "poika" "pojan" "poikia" ;
|
||||
bread_N = nLukko "leipä" ;
|
||||
break_V2 = dirV2 (regV "rikkoa") ;
|
||||
broad_A = mkADeg (regN "leveä") "leveämpi" "levein" ;
|
||||
brother_N2 = genN2 (
|
||||
airplane_N = mkN "lentokone" ;
|
||||
answer_V2S = mkV2 (mkV "vastata") (casePrep allative) ;
|
||||
apartment_N = mkN "asunto" ;
|
||||
apple_N = mkN "omena" ; --- omenia, not omenoita
|
||||
art_N = mkN "taide" ;
|
||||
ask_V2Q = mkV2 (mkV "kysyä") (casePrep ablative) ;
|
||||
baby_N = mkN "vauva" ;
|
||||
bad_A = mkA (mkN "paha") "pahempi" "pahin" ;
|
||||
bank_N = mkN "pankki" ;
|
||||
beautiful_A = mkA (mkN "kaunis") "kauniimpi" "kaunein" ;
|
||||
become_VA = mkVA (mkV "tulla") (casePrep translative) ;
|
||||
beer_N = mkN "olut" ;
|
||||
beg_V2V = mkV2 (mk2V "pyytää" "pyysi") (casePrep partitive) ;
|
||||
big_A = mkA (mkN "suuri" "suuria") "suurempi" "suurin" ;
|
||||
bike_N = mkN "polkupyörä" ; --- for correct vowel harmony
|
||||
bird_N = mkN "lintu" ;
|
||||
black_A = mkA (mkN "musta") "mustempi" "mustin" ;
|
||||
blue_A = mkA (mkN "sininen") "sinisempi" "sinisin" ;
|
||||
boat_N = mkN "vene" ;
|
||||
book_N = mkN "kirja" ;
|
||||
boot_N = mkN "saapas" ;
|
||||
boss_N = mkN "pomo" ;
|
||||
boy_N = mkN "poika" "pojan" "poikia" ;
|
||||
bread_N = mkN "leipä" ;
|
||||
break_V2 = mkV2 (mkV "rikkoa") ;
|
||||
broad_A = mkA (mkN "leveä") "leveämpi" "levein" ;
|
||||
brother_N2 = mkN2 (
|
||||
mkN "veli" "veljen" "veljenä" "veljeä" "veljeen"
|
||||
"veljinä" "veljissä" "veljien" "veljiä" "veljiin") ;
|
||||
brown_A = mkADeg (regN "ruskea") "ruskeampi" "ruskein" ;
|
||||
butter_N = reg3N "voi" "voin" "voita" ; ---- errors in Part
|
||||
buy_V2 = dirV2 (regV "ostaa") ;
|
||||
camera_N = nLukko "kamera" ;
|
||||
cap_N = regN "lakki" ;
|
||||
car_N = reg3N "auto" "auton" "autoja" ; -- regN: audon
|
||||
carpet_N = nLukko "matto" ;
|
||||
cat_N = nLukko "kissa" ;
|
||||
ceiling_N = nLukko "katto" ;
|
||||
chair_N = regN "tuoli" ;
|
||||
cheese_N = nLukko "juusto" ;
|
||||
brown_A = mkA (mkN "ruskea") "ruskeampi" "ruskein" ;
|
||||
butter_N = mk3N "voi" "voin" "voita" ; ---- errors in Part
|
||||
buy_V2 = mkV2 (mkV "ostaa") ;
|
||||
camera_N = mkN "kamera" ;
|
||||
cap_N = mkN "lakki" ;
|
||||
car_N = mk3N "auto" "auton" "autoja" ; -- mkN: audon
|
||||
carpet_N = mkN "matto" ;
|
||||
cat_N = mkN "kissa" ;
|
||||
ceiling_N = mkN "katto" ;
|
||||
chair_N = mkN "tuoli" ;
|
||||
cheese_N = mkN "juusto" ;
|
||||
child_N = mkN "lapsi" "lapsen" "lapsena" "lasta" "lapseen"
|
||||
"lapsina" "lapsissa" "lasten" "lapsia" "lapsiin" ;
|
||||
church_N = nLukko "kirkko" ;
|
||||
city_N = regN "kaupunki" ;
|
||||
clean_A = regA "puhdas" ;
|
||||
clever_A = regA "viisas" ;
|
||||
close_V2 = dirV2 (regV "sulkea") ;
|
||||
coat_N = regN "takki" ;
|
||||
cold_A = mkADeg (nLukko "kylmä") "kylmempi" "kylmin" ;
|
||||
come_V = regV "tulla" ;
|
||||
computer_N = regN "tietokone" ;
|
||||
country_N = regN "maa" ;
|
||||
cousin_N = nLukko "serkku" ;
|
||||
cow_N = nLukko "lehmä" ;
|
||||
die_V = regV "kuolla" ;
|
||||
dirty_A = mkADeg (regN "likainen") "likaisempi" "likaisin" ;
|
||||
distance_N3 = mkN3 (regN "etäisyys") (casePrep elative) (casePrep illative) ;
|
||||
doctor_N = reg2N "tohtori" "tohtoreita" ;
|
||||
dog_N = nLukko "koira" ;
|
||||
door_N = nArpi "ovi" ;
|
||||
drink_V2 = dirV2 (regV "juoda") ;
|
||||
easy_A2V = mkA2V (mkADeg (nLukko "helppo") "helpompi" "helpoin")
|
||||
church_N = mkN "kirkko" ;
|
||||
city_N = mkN "kaupunki" ;
|
||||
clean_A = mkA "puhdas" ;
|
||||
clever_A = mkA "viisas" ;
|
||||
close_V2 = mkV2 (mkV "sulkea") ;
|
||||
coat_N = mkN "takki" ;
|
||||
cold_A = mkA (mkN "kylmä") "kylmempi" "kylmin" ;
|
||||
come_V = mkV "tulla" ;
|
||||
computer_N = mkN "tietokone" ;
|
||||
country_N = mkN "maa" ;
|
||||
cousin_N = mkN "serkku" ;
|
||||
cow_N = mkN "lehmä" ;
|
||||
die_V = mkV "kuolla" ;
|
||||
dirty_A = mkA (mkN "likainen") "likaisempi" "likaisin" ;
|
||||
distance_N3 = mkN3 (mkN "etäisyys") (casePrep elative) (casePrep illative) ;
|
||||
doctor_N = mk2N "tohtori" "tohtoreita" ;
|
||||
dog_N = mkN "koira" ;
|
||||
door_N = mkN "ovi" "ovia" ;
|
||||
drink_V2 = mkV2 (mkV "juoda") ;
|
||||
easy_A2V = mkA2 (mkA (mkN "helppo") "helpompi" "helpoin")
|
||||
(casePrep allative) ;
|
||||
eat_V2 = dirV2 (regV "syödä") ;
|
||||
empty_A = mkADeg (nLukko "tyhjä") "tyhjempi" "tyhjin" ;
|
||||
enemy_N = regN "vihollinen" ;
|
||||
factory_N = regN "tehdas" ;
|
||||
father_N2 = genN2 (nLukko "isä") ;
|
||||
fear_VS = mkVS (reg2V "pelätä" "pelkäsi") ;
|
||||
find_V2 = dirV2 (reg2V "löytää" "löysi") ;
|
||||
fish_N = nLukko "kala" ;
|
||||
floor_N = reg2N "lattia" "lattioita" ;
|
||||
forget_V2 = dirV2 (regV "unohtaa") ;
|
||||
fridge_N = regN "jääkaappi" ;
|
||||
friend_N = nLukko "ystävä" ;
|
||||
fruit_N = nLukko "hedelmä" ;
|
||||
fun_AV = mkAV (mkADeg (nLukko "hauska") "hauskempi" "hauskin") ;
|
||||
garden_N = nKukko "puutarha" "puutarhan" "puutarhoja" ;
|
||||
girl_N = nLukko "tyttö" ;
|
||||
glove_N = regN "käsine" ;
|
||||
gold_N = nLukko "kulta" ;
|
||||
good_A = mkADeg (nLukko "hyvä") "parempi" "parhain" ; --- paras
|
||||
go_V = regV "mennä" ;
|
||||
green_A = mkADeg (regN "vihreä") "vihreämpi" "vihrein" ;
|
||||
harbour_N = nKukko "satama" "sataman" "satamia" ;
|
||||
hate_V2 = mkV2 (regV "vihata") cpartitive ;
|
||||
hat_N = nLukko "hattu" ;
|
||||
have_V2 = dirV2 (caseV adessive vOlla) ;
|
||||
hear_V2 = dirV2 (regV "kuulla") ;
|
||||
hill_N = nLukko "kukkula" ;
|
||||
hope_VS = mkVS (regV "toivoa") ;
|
||||
horse_N = regN "hevonen" ;
|
||||
hot_A = mkADeg (nLukko "kuuma") "kuumempi" "kuumin" ;
|
||||
house_N = nLukko "talo" ;
|
||||
important_A = mkADeg (regN "tärkeä") "tärkeämpi" "tärkein" ;
|
||||
industry_N = regN "teollisuus" ;
|
||||
iron_N = nLukko "rauta" ;
|
||||
king_N = regN "kuningas" ;
|
||||
know_V2 = dirV2 (reg2V "tietää" "tiesi") ; --- tuntea; gives tietänyt
|
||||
lake_N = nSylki "järvi" ;
|
||||
lamp_N = nLukko "lamppu" ;
|
||||
eat_V2 = mkV2 (mkV "syödä") ;
|
||||
empty_A = mkA (mkN "tyhjä") "tyhjempi" "tyhjin" ;
|
||||
enemy_N = mkN "vihollinen" ;
|
||||
factory_N = mkN "tehdas" ;
|
||||
father_N2 = mkN2 (mkN "isä") ;
|
||||
fear_VS = mkVS (mk2V "pelätä" "pelkäsi") ;
|
||||
find_V2 = mkV2 (mk2V "löytää" "löysi") ;
|
||||
fish_N = mkN "kala" ;
|
||||
floor_N = mk2N "lattia" "lattioita" ;
|
||||
forget_V2 = mkV2 (mkV "unohtaa") ;
|
||||
fridge_N = mkN "jääkaappi" ;
|
||||
friend_N = mkN "ystävä" ;
|
||||
fruit_N = mkN "hedelmä" ;
|
||||
fun_AV = mkAV (mkA (mkN "hauska") "hauskempi" "hauskin") ;
|
||||
garden_N = mkN "puutarha" "puutarhan" "puutarhoja" ;
|
||||
girl_N = mkN "tyttö" ;
|
||||
glove_N = mkN "käsine" ;
|
||||
gold_N = mkN "kulta" ;
|
||||
good_A = mkA (mkN "hyvä") "parempi" "parhain" ; --- paras
|
||||
go_V = mkV "mennä" ;
|
||||
green_A = mkA (mkN "vihreä") "vihreämpi" "vihrein" ;
|
||||
harbour_N = mkN "satama" "sataman" "satamia" ;
|
||||
hate_V2 = mkV2 (mkV "vihata") cpartitive ;
|
||||
hat_N = mkN "hattu" ;
|
||||
have_V2 = mkV2 (caseV adessive vOlla) ;
|
||||
hear_V2 = mkV2 (mkV "kuulla") ;
|
||||
hill_N = mkN "kukkula" ;
|
||||
hope_VS = mkVS (mkV "toivoa") ;
|
||||
horse_N = mkN "hevonen" ;
|
||||
hot_A = mkA (mkN "kuuma") "kuumempi" "kuumin" ;
|
||||
house_N = mkN "talo" ;
|
||||
important_A = mkA (mkN "tärkeä") "tärkeämpi" "tärkein" ;
|
||||
industry_N = mkN "teollisuus" ;
|
||||
iron_N = mkN "rauta" ;
|
||||
king_N = mkN "kuningas" ;
|
||||
know_V2 = mkV2 (mk2V "tietää" "tiesi") ; --- tuntea; gives tietänyt
|
||||
lake_N = mkN "järvi" "järviä" ;
|
||||
lamp_N = mkN "lamppu" ;
|
||||
learn_V2 =
|
||||
dirV2 (mk12V "oppia" "oppii" "opin" "oppivat" "oppikaa" "opitaan"
|
||||
mkV2 (mk12V "oppia" "oppii" "opin" "oppivat" "oppikaa" "opitaan"
|
||||
"oppi" "opin" "oppisi" "oppinut" "opittu" "opitun") ;
|
||||
leather_N = nLukko "nahka" ; --- nahan
|
||||
leave_V2 = dirV2 (regV "jättää") ;
|
||||
like_V2 = caseV2 (regV "pitää") elative ;
|
||||
listen_V2 = caseV2 (reg3V "kuunnella" "kuuntelen" "kuunteli") partitive ;
|
||||
live_V = regV "elää" ;
|
||||
long_A = mkADeg (nLukko "pitkä") "pitempi" "pisin" ;
|
||||
lose_V2 = dirV2 (regV "hävitä") ; --- hukata
|
||||
love_N = reg3N "rakkaus" "rakkauden" "rakkauksia" ;
|
||||
love_V2 = caseV2 (regV "rakastaa") partitive ;
|
||||
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 ;
|
||||
live_V = mkV "elää" ;
|
||||
long_A = mkA (mkN "pitkä") "pitempi" "pisin" ;
|
||||
lose_V2 = mkV2 (mkV "hävitä") ; --- hukata
|
||||
love_N = mk3N "rakkaus" "rakkauden" "rakkauksia" ;
|
||||
love_V2 = mkV2 (mkV "rakastaa") partitive ;
|
||||
man_N = mkN "mies" "miehen" "miehenä" "miestä" "mieheen"
|
||||
"miehinä" "miehissä" "miesten" "miehiä" "miehiin" ;
|
||||
married_A2 =
|
||||
mkA2 (mkA (nRae "avioitunut" "avioituneena")) (postPrep genitive "kanssa") ;
|
||||
meat_N = nLukko "liha" ;
|
||||
milk_N = nLukko "maito" ;
|
||||
moon_N = regN "kuu" ;
|
||||
mother_N2 = genN2 (regN "äiti") ;
|
||||
mountain_N = nArpi "vuori" ;
|
||||
music_N = regN "musiikki" ;
|
||||
narrow_A = mkADeg (regN "kapea") "kapeampi" "kapein" ;
|
||||
new_A = mkADeg (reg3N "uusi" "uuden" "uusia") "uudempi" "uusin" ;
|
||||
newspaper_N = nSylki "sanomalehti" ; --- for correct vowel harmony
|
||||
oil_N = nLukko "öljy" ;
|
||||
old_A = mkADeg (nLukko "vanha") "vanhempi" "vanhin" ;
|
||||
open_V2 = dirV2 (regV "avata") ;
|
||||
paint_V2A = mkV2A (regV "maalata") accPrep (casePrep translative) ;
|
||||
paper_N = reg2N "paperi" "papereita" ;
|
||||
paris_PN = mkPN (regN "Pariisi") ;
|
||||
peace_N = nLukko "rauha" ;
|
||||
pen_N = nLukko "kynä" ;
|
||||
planet_N = nLukko "planeetta" ;
|
||||
plastic_N = regN "muovi" ;
|
||||
play_V2 = mkV2 (regV "pelata") cpartitive ; --- leikkiä, soittaa
|
||||
policeman_N = regN "poliisi" ;
|
||||
priest_N = regN "pappi" ;
|
||||
married_A2 = mkA2 (mkA "avioitunut") (postPrep genitive "kanssa") ; ---- infl
|
||||
meat_N = mkN "liha" ;
|
||||
milk_N = mkN "maito" ;
|
||||
moon_N = mkN "kuu" ;
|
||||
mother_N2 = mkN2 (mkN "äiti") ;
|
||||
mountain_N = mkN "vuori" "vuoria" ;
|
||||
music_N = mkN "musiikki" ;
|
||||
narrow_A = mkA (mkN "kapea") "kapeampi" "kapein" ;
|
||||
new_A = mkA (mk3N "uusi" "uuden" "uusia") "uudempi" "uusin" ;
|
||||
newspaper_N = mkN "sanoma" (mkN "lehti" "lehtiä") ; --- for correct vowel harmony
|
||||
oil_N = mkN "öljy" ;
|
||||
old_A = mkA (mkN "vanha") "vanhempi" "vanhin" ;
|
||||
open_V2 = mkV2 (mkV "avata") ;
|
||||
paint_V2A = mkV2A (mkV "maalata") accPrep (casePrep translative) ;
|
||||
paper_N = mk2N "paperi" "papereita" ;
|
||||
paris_PN = mkPN (mkN "Pariisi") ;
|
||||
peace_N = mkN "rauha" ;
|
||||
pen_N = mkN "kynä" ;
|
||||
planet_N = mkN "planeetta" ;
|
||||
plastic_N = mkN "muovi" ;
|
||||
play_V2 = mkV2 (mkV "pelata") cpartitive ; --- leikkiä, soittaa
|
||||
policeman_N = mkN "poliisi" ;
|
||||
priest_N = mkN "pappi" ;
|
||||
probable_AS = mkAS --- for vowel harmony
|
||||
(mkADeg (nNainen "todennäköistä") "tonennäköisempi" "todennälöisin") ;
|
||||
queen_N = regN "kuningatar" ;
|
||||
radio_N = reg2N "radio" "radioita" ;
|
||||
rain_V0 = mkV0 (reg2V "sataa" "satoi") ;
|
||||
read_V2 = dirV2 (regV "lukea") ;
|
||||
red_A = regA "punainen" ;
|
||||
religion_N = nLukko "uskonto" ;
|
||||
restaurant_N = nLukko "ravintola" ;
|
||||
river_N = nArpi "joki" ;
|
||||
rock_N = reg2N "kallio" "kallioita" ;
|
||||
roof_N = nLukko "katto" ;
|
||||
rubber_N = regN "kumi" ;
|
||||
run_V = reg2V "juosta" "juoksi" ;
|
||||
say_VS = mkVS (regV "sanoa") ;
|
||||
school_N = nLukko "koulu" ;
|
||||
science_N = regN "tiede" ;
|
||||
sea_N = nMeri "meri" ;
|
||||
seek_V2 = mkV2 (regV "etsiä") cpartitive ;
|
||||
see_V2 = dirV2 (
|
||||
(mkA (mkN "todennäköinen") "tonennäköisempi" "todennälöisin") ; ---- sta
|
||||
queen_N = mkN "kuningatar" ;
|
||||
radio_N = mk2N "radio" "radioita" ;
|
||||
rain_V0 = mkV0 (mk2V "sataa" "satoi") ;
|
||||
read_V2 = mkV2 (mkV "lukea") ;
|
||||
red_A = mkA "punainen" ;
|
||||
religion_N = mkN "uskonto" ;
|
||||
restaurant_N = mkN "ravintola" ;
|
||||
river_N = mkN "joki" "jokia" ;
|
||||
rock_N = mk2N "kallio" "kallioita" ;
|
||||
roof_N = mkN "katto" ;
|
||||
rubber_N = mkN "kumi" ;
|
||||
run_V = mk2V "juosta" "juoksi" ;
|
||||
say_VS = mkVS (mkV "sanoa") ;
|
||||
school_N = mkN "koulu" ;
|
||||
science_N = mkN "tiede" ;
|
||||
sea_N = mkN "meri" "meren" "meriä" "merta" ;
|
||||
seek_V2 = mkV2 (mkV "etsiä") cpartitive ;
|
||||
see_V2 = mkV2 (
|
||||
mk12V "nähdä" "näkee" "näen" "näkevät" "nähkää" "nähdään"
|
||||
"näki" "näin" "näkisi" "nähnyt" "nähty" "nähdyn") ;
|
||||
sell_V3 = dirV3 (regV "myydä") allative ;
|
||||
send_V3 = dirV3 (regV "lähettää") allative ;
|
||||
sheep_N = regN "lammas" ;
|
||||
ship_N = nLukko "laiva" ;
|
||||
shirt_N = nLukko "paita" ;
|
||||
shoe_N = nLukko "kenkä" ;
|
||||
shop_N = nLukko "kauppa" ;
|
||||
short_A = regA "lyhyt" ;
|
||||
silver_N = regN "hopea" ;
|
||||
sister_N = nLukko "sisko" ;
|
||||
sleep_V = regV "nukkua" ;
|
||||
small_A = mkADeg (reg2N "pieni" "pieniä") "pienempi" "pienin" ;
|
||||
snake_N = regN "käärme" ;
|
||||
sock_N = nLukko "sukka" ;
|
||||
speak_V2 = mkV2 (regV "puhua") cpartitive ;
|
||||
star_N = nSylki "tähti" ;
|
||||
steel_N = regN "teräs" ;
|
||||
stone_N = nSylki "kivi" ;
|
||||
stove_N = reg3N "liesi" "lieden" "liesiä" ;
|
||||
student_N = reg2N "opiskelija" "opiskelijoita" ;
|
||||
stupid_A = regA "tyhmä" ;
|
||||
sun_N = nLukko "aurinko" ;
|
||||
switch8off_V2 = dirV2 (regV "sammuttaa") ; ---
|
||||
switch8on_V2 = dirV2 (regV "sytyttää") ; ---
|
||||
table_N = nLukko "pöytä" ;
|
||||
talk_V3 = mkV3 (regV "puhua") (casePrep allative) (casePrep elative) ;
|
||||
teacher_N = nLukko "opettaja" ;
|
||||
teach_V2 = dirV2 (regV "opettaa") ;
|
||||
television_N = reg2N "televisio" "televisioita" ;
|
||||
thick_A = regA "paksu" ;
|
||||
thin_A = regA "ohut" ;
|
||||
train_N = nLukko "juna" ;
|
||||
travel_V = regV "matkustaa" ;
|
||||
tree_N = regN "puu" ;
|
||||
---- trousers_N = regN "trousers" ;
|
||||
ugly_A = mkADeg (nLukko "ruma") "rumempi" "rumin" ;
|
||||
understand_V2 = dirV2 (reg3V "ymmärtää" "ymmärrän" "ymmärsi") ;
|
||||
university_N = nLukko "yliopisto" ;
|
||||
village_N = nLukko "kylä" ;
|
||||
wait_V2 = caseV2 (regV "odottaa") partitive ;
|
||||
walk_V = regV "kävellä" ;
|
||||
warm_A = mkADeg
|
||||
sell_V3 = mkV3 (mkV "myydä") accPrep (casePrep allative) ;
|
||||
send_V3 = mkV3 (mkV "lähettää") accPrep (casePrep allative) ;
|
||||
sheep_N = mkN "lammas" ;
|
||||
ship_N = mkN "laiva" ;
|
||||
shirt_N = mkN "paita" ;
|
||||
shoe_N = mkN "kenkä" ;
|
||||
shop_N = mkN "kauppa" ;
|
||||
short_A = mkA "lyhyt" ;
|
||||
silver_N = mkN "hopea" ;
|
||||
sister_N = mkN "sisko" ;
|
||||
sleep_V = mkV "nukkua" ;
|
||||
small_A = mkA (mk2N "pieni" "pieniä") "pienempi" "pienin" ;
|
||||
snake_N = mkN "käärme" ;
|
||||
sock_N = mkN "sukka" ;
|
||||
speak_V2 = mkV2 (mkV "puhua") cpartitive ;
|
||||
star_N = mkN "tähti" "tähtiä" ;
|
||||
steel_N = mkN "teräs" ;
|
||||
stone_N = mkN "kivi" "kiviä" ;
|
||||
stove_N = mk3N "liesi" "lieden" "liesiä" ;
|
||||
student_N = mk2N "opiskelija" "opiskelijoita" ;
|
||||
stupid_A = mkA "tyhmä" ;
|
||||
sun_N = mkN "aurinko" ;
|
||||
switch8off_V2 = mkV2 (mkV "sammuttaa") ; ---
|
||||
switch8on_V2 = mkV2 (mkV "sytyttää") ; ---
|
||||
table_N = mkN "pöytä" ;
|
||||
talk_V3 = mkV3 (mkV "puhua") (casePrep allative) (casePrep elative) ;
|
||||
teacher_N = mkN "opettaja" ;
|
||||
teach_V2 = mkV2 (mkV "opettaa") ;
|
||||
television_N = mk2N "televisio" "televisioita" ;
|
||||
thick_A = mkA "paksu" ;
|
||||
thin_A = mkA "ohut" ;
|
||||
train_N = mkN "juna" ;
|
||||
travel_V = mkV "matkustaa" ;
|
||||
tree_N = mkN "puu" ;
|
||||
---- trousers_N = mkN "trousers" ;
|
||||
ugly_A = mkA (mkN "ruma") "rumempi" "rumin" ;
|
||||
understand_V2 = mkV2 (mkV "ymmärtää" "ymmärrän" "ymmärsi") ;
|
||||
university_N = mkN "yliopisto" ;
|
||||
village_N = mkN "kylä" ;
|
||||
wait_V2 = mkV2 (mkV "odottaa") partitive ;
|
||||
walk_V = mkV "kävellä" ;
|
||||
warm_A = mkA
|
||||
(mkN "lämmin" "lämpimän" "lämpimänä" "lämmintä" "lämpimään"
|
||||
"lämpiminä" "lämpimissä" "lämpimien" "lämpimiä" "lämpimiin"
|
||||
)
|
||||
"lämpimämpi" "lämpimin" ;
|
||||
war_N = nLukko "sota" ;
|
||||
watch_V2 = mkV2 (regV "katsella") cpartitive ;
|
||||
water_N = reg3N "vesi" "veden" "vesiä" ;
|
||||
white_A = regA "valkoinen" ;
|
||||
window_N = reg2N "ikkuna" "ikkunoita" ;
|
||||
wine_N = regN "viini" ;
|
||||
win_V2 = dirV2 (regV "voittaa") ;
|
||||
woman_N = regN "nainen" ;
|
||||
wonder_VQ = mkVQ (regV "ihmetellä") ;
|
||||
wood_N = regN "puu" ;
|
||||
write_V2 = dirV2 (regV "kirjoittaa") ;
|
||||
yellow_A = regA "keltainen" ;
|
||||
young_A = mkADeg (nArpi "nuori") "nuorempi" "nuorin" ;
|
||||
war_N = mkN "sota" ;
|
||||
watch_V2 = mkV2 (mkV "katsella") cpartitive ;
|
||||
water_N = mk3N "vesi" "veden" "vesiä" ;
|
||||
white_A = mkA "valkoinen" ;
|
||||
window_N = mk2N "ikkuna" "ikkunoita" ;
|
||||
wine_N = mkN "viini" ;
|
||||
win_V2 = mkV2 (mkV "voittaa") ;
|
||||
woman_N = mkN "nainen" ;
|
||||
wonder_VQ = mkVQ (mkV "ihmetellä") ;
|
||||
wood_N = mkN "puu" ;
|
||||
write_V2 = mkV2 (mkV "kirjoittaa") ;
|
||||
yellow_A = mkA "keltainen" ;
|
||||
young_A = mkA (mkN "nuori" "nuoria") "nuorempi" "nuorin" ;
|
||||
|
||||
do_V2 = dirV2 (
|
||||
do_V2 = mkV2 (
|
||||
mk12V "tehdä" "tekee" "teen" "tekevät" "tehkää" "tehdään"
|
||||
"teki" "tein" "tekisi" "tehnyt" "tehty" "tehdyn") ;
|
||||
|
||||
now_Adv = mkAdv "nyt" ;
|
||||
already_Adv = mkAdv "jo" ;
|
||||
song_N = nLukko "laulu" ;
|
||||
add_V3 = dirV3 (regV "lisätä") illative ;
|
||||
number_N = reg2N "numero" "numeroita" ;
|
||||
put_V2 = dirV2 (regV "panna") ;
|
||||
stop_V = regV "pysähtyä" ;
|
||||
jump_V = regV "hypätä" ;
|
||||
left_Ord = mkOrd (regN "vasen") ;
|
||||
right_Ord = mkOrd (regN "oikea") ;
|
||||
song_N = mkN "laulu" ;
|
||||
add_V3 = mkV3 (mkV "lisätä") accPrep (casePrep illative) ;
|
||||
number_N = mk2N "numero" "numeroita" ;
|
||||
put_V2 = mkV2 (mkV "panna") ;
|
||||
stop_V = mkV "pysähtyä" ;
|
||||
jump_V = mkV "hypätä" ;
|
||||
left_Ord = mkOrd (mkN "vasen") ;
|
||||
right_Ord = mkOrd (mkN "oikea") ;
|
||||
far_Adv = mkAdv "kaukana" ;
|
||||
correct_A = regA "oikea" ;
|
||||
dry_A = mkADeg (regN "kuiva") "kuivempi" "kuivin" ;
|
||||
dull_A = mkADeg (regN "tylsä") "tylsempi" "tylsin" ;
|
||||
full_A = mkADeg (reg3N "täysi" "täyden" "täysiä") "täydempi" "täysin" ;
|
||||
heavy_A = regA "raskas" ;
|
||||
near_A = regA "läheinen" ;
|
||||
rotten_A = regA "mätä" ;
|
||||
round_A = regA "pyöreä" ;
|
||||
sharp_A = regA "terävä" ;
|
||||
smooth_A = regA "sileä" ;
|
||||
straight_A = mkADeg (regN "suora") "suorempi" "suorin" ;
|
||||
wet_A = mkADeg (regN "märkä") "märempi" "märin" ;
|
||||
wide_A = regA "leveä" ;
|
||||
animal_N = reg3N "eläin" "eläimen" "eläimiä" ;
|
||||
ashes_N = regN "tuhka" ;
|
||||
back_N = regN "selkä" ;
|
||||
bark_N = regN "kaarna" ;
|
||||
belly_N = regN "vatsa" ;
|
||||
blood_N = nMeri "veri" ;
|
||||
bone_N = regN "luu" ;
|
||||
breast_N = regN "rinta" ;
|
||||
cloud_N = reg2N "pilvi" "pilviä" ;
|
||||
day_N = regN "päivä" ;
|
||||
dust_N = regN "pöly" ;
|
||||
ear_N = regN "korva" ;
|
||||
earth_N = regN "maa" ;
|
||||
egg_N = regN "muna" ;
|
||||
eye_N = regN "silmä" ;
|
||||
fat_N = regN "rasva" ;
|
||||
feather_N = reg3N "höyhen" "höyhenen" "höyheniä" ;
|
||||
fingernail_N = reg3N "kynsi" "kynnen" "kynsiä" ;
|
||||
fire_N = reg2N "tuli" "tulia" ;
|
||||
flower_N = regN "kukka" ;
|
||||
fog_N = regN "sumu" ;
|
||||
foot_N = regN "jalka" ;
|
||||
forest_N = regN "metsä" ;
|
||||
grass_N = regN "ruoho" ;
|
||||
guts_N = regN "sisälmys" ; --- suoli
|
||||
hair_N = regN "hius" ;
|
||||
hand_N = reg3N "käsi" "käden" "käsiä" ;
|
||||
head_N = regN "pää" ;
|
||||
heart_N = reg3N "sydän" "sydämen" "sydämiä" ;
|
||||
horn_N = reg2N "sarvi" "sarvia" ;
|
||||
correct_A = mkA "oikea" ;
|
||||
dry_A = mkA (mkN "kuiva") "kuivempi" "kuivin" ;
|
||||
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" ;
|
||||
rotten_A = mkA "mätä" ;
|
||||
round_A = mkA "pyöreä" ;
|
||||
sharp_A = mkA "terävä" ;
|
||||
smooth_A = mkA "sileä" ;
|
||||
straight_A = mkA (mkN "suora") "suorempi" "suorin" ;
|
||||
wet_A = mkA (mkN "märkä") "märempi" "märin" ;
|
||||
wide_A = mkA "leveä" ;
|
||||
animal_N = mk3N "eläin" "eläimen" "eläimiä" ;
|
||||
ashes_N = mkN "tuhka" ;
|
||||
back_N = mkN "selkä" ;
|
||||
bark_N = mkN "kaarna" ;
|
||||
belly_N = mkN "vatsa" ;
|
||||
blood_N = mkN "veri" "veren" "veriä" "verta" ;
|
||||
bone_N = mkN "luu" ;
|
||||
breast_N = mkN "rinta" ;
|
||||
cloud_N = mk2N "pilvi" "pilviä" ;
|
||||
day_N = mkN "päivä" ;
|
||||
dust_N = mkN "pöly" ;
|
||||
ear_N = mkN "korva" ;
|
||||
earth_N = mkN "maa" ;
|
||||
egg_N = mkN "muna" ;
|
||||
eye_N = mkN "silmä" ;
|
||||
fat_N = mkN "rasva" ;
|
||||
feather_N = mk3N "höyhen" "höyhenen" "höyheniä" ;
|
||||
fingernail_N = mk3N "kynsi" "kynnen" "kynsiä" ;
|
||||
fire_N = mk2N "tuli" "tulia" ;
|
||||
flower_N = mkN "kukka" ;
|
||||
fog_N = mkN "sumu" ;
|
||||
foot_N = mkN "jalka" ;
|
||||
forest_N = mkN "metsä" ;
|
||||
grass_N = mkN "ruoho" ;
|
||||
guts_N = mkN "sisälmys" ; --- suoli
|
||||
hair_N = mkN "hius" ;
|
||||
hand_N = mk3N "käsi" "käden" "käsiä" ;
|
||||
head_N = mkN "pää" ;
|
||||
heart_N = mk3N "sydän" "sydämen" "sydämiä" ;
|
||||
horn_N = mk2N "sarvi" "sarvia" ;
|
||||
husband_N = mkN "mies" "miehen" "miehenä" "miestä" "mieheen"
|
||||
"miehinä" "miehissä" "miesten" "miehiä" "miehiin" ;
|
||||
ice_N = regN "jää" ;
|
||||
knee_N = reg2N "polvi" "polvia" ;
|
||||
leaf_N = reg2N "lehti" "lehtiä" ;
|
||||
leg_N = regN "jalka" ; --- sääri
|
||||
liver_N = regN "maksa" ;
|
||||
louse_N = regN "lude" ;
|
||||
mouth_N = regN "suu" ;
|
||||
name_N = reg2N "nimi" "nimiä" ;
|
||||
neck_N = regN "niska" ;
|
||||
night_N = regN "yö" ;
|
||||
nose_N = regN "nenä" ;
|
||||
person_N = regN "henkilö" ;
|
||||
rain_N = regN "sade" ;
|
||||
road_N = regN "tie" ;
|
||||
root_N = reg2N "juuri" "juuria" ;
|
||||
rope_N = reg3N "köysi" "köyden" "köysiä" ;
|
||||
salt_N = regN "suola" ;
|
||||
sand_N = regN "hiekka" ;
|
||||
seed_N = regN "siemen" ;
|
||||
skin_N = regN "nahka" ;
|
||||
sky_N = reg3N "taivas" "taivaan" "taivaita" ;
|
||||
smoke_N = regN "savu" ;
|
||||
snow_N = sgpartN (nMeri "lumi") "lunta" ;
|
||||
stick_N = regN "keppi" ;
|
||||
tail_N = regN "häntä" ;
|
||||
tongue_N = reg2N "kieli" "kieliä" ;
|
||||
tooth_N = regN "hammas" ;
|
||||
wife_N = regN "vaimo" ;
|
||||
wind_N = reg2N "tuuli" "tuulia" ;
|
||||
wing_N = reg2N "siipi" "siipiä" ;
|
||||
worm_N = regN "mato" ;
|
||||
year_N = reg3N "vuosi" "vuoden" "vuosia" ;
|
||||
bite_V2 = dirV2 (regV "purra") ;
|
||||
blow_V = regV "puhaltaa" ;
|
||||
burn_V = regV "palaa" ;
|
||||
count_V2 = dirV2 (regV "laskea") ;
|
||||
cut_V2 = dirV2 (reg2V "leikata" "leikkasi") ;
|
||||
dig_V = regV "kaivaa" ;
|
||||
fall_V = reg3V "pudota" "putoan" "putosi" ;
|
||||
fear_V2 = mkV2 (reg3V "pelätä" "pelkään" "pelkäsi") cpartitive ;
|
||||
fight_V2 = mkV2 (regV "taistella") (postPrep partitive "vastaan") ;
|
||||
float_V = regV "kellua" ;
|
||||
flow_V = reg3V "virrata" "virtaan" "virtasi" ;
|
||||
fly_V = regV "lentää" ;
|
||||
freeze_V = regV "jäätyä" ;
|
||||
give_V3 = dirdirV3 (reg3V "antaa" "annan" "antoi") ;
|
||||
hit_V2 = mkV2 (regV "lyödä") cpartitive ;
|
||||
hold_V2 = mkV2 (regV "pitää") cpartitive ;
|
||||
hunt_V2 = mkV2 (regV "metsästää") cpartitive ;
|
||||
kill_V2 = dirV2 (regV "tappaa") ;
|
||||
laugh_V = reg3V "nauraa" "nauran" "nauroi" ;
|
||||
lie_V = reg3V "maata" "makaan" "makasi" ;
|
||||
play_V = regV "pelata" ;
|
||||
pull_V2 = dirV2 (regV "vetää") ;
|
||||
push_V2 = dirV2 (regV "työntää") ;
|
||||
rub_V2 = mkV2 (regV "hieroa") cpartitive ;
|
||||
scratch_V2 = mkV2 (regV "raapia") cpartitive ;
|
||||
sew_V = regV "kylvää" ;
|
||||
sing_V = regV "laulaa" ;
|
||||
sit_V = regV "istua" ;
|
||||
smell_V = reg2V "haistaa" "haistoi" ;
|
||||
spit_V = regV "sylkeä" ;
|
||||
split_V2 = dirV2 (reg2V "halkaista" "halkaisi") ;
|
||||
squeeze_V2 = mkV2 (regV "puristaa") cpartitive ;
|
||||
stab_V2 = mkV2 (regV "pistää") cpartitive ;
|
||||
ice_N = mkN "jää" ;
|
||||
knee_N = mk2N "polvi" "polvia" ;
|
||||
leaf_N = mk2N "lehti" "lehtiä" ;
|
||||
leg_N = mkN "jalka" ; --- sääri
|
||||
liver_N = mkN "maksa" ;
|
||||
louse_N = mkN "lude" ;
|
||||
mouth_N = mkN "suu" ;
|
||||
name_N = mk2N "nimi" "nimiä" ;
|
||||
neck_N = mkN "niska" ;
|
||||
night_N = mkN "yö" ;
|
||||
nose_N = mkN "nenä" ;
|
||||
person_N = mkN "henkilö" ;
|
||||
rain_N = mkN "sade" ;
|
||||
road_N = mkN "tie" ;
|
||||
root_N = mk2N "juuri" "juuria" ;
|
||||
rope_N = mk3N "köysi" "köyden" "köysiä" ;
|
||||
salt_N = mkN "suola" ;
|
||||
sand_N = mkN "hiekka" ;
|
||||
seed_N = mkN "siemen" ;
|
||||
skin_N = mkN "nahka" ;
|
||||
sky_N = mk3N "taivas" "taivaan" "taivaita" ;
|
||||
smoke_N = mkN "savu" ;
|
||||
snow_N = mkN "lumi" "lumen" "lumia" "lunta" ;
|
||||
stick_N = mkN "keppi" ;
|
||||
tail_N = mkN "häntä" ;
|
||||
tongue_N = mk2N "kieli" "kieliä" ;
|
||||
tooth_N = mkN "hammas" ;
|
||||
wife_N = mkN "vaimo" ;
|
||||
wind_N = mk2N "tuuli" "tuulia" ;
|
||||
wing_N = mk2N "siipi" "siipiä" ;
|
||||
worm_N = mkN "mato" ;
|
||||
year_N = mk3N "vuosi" "vuoden" "vuosia" ;
|
||||
bite_V2 = mkV2 (mkV "purra") ;
|
||||
blow_V = mkV "puhaltaa" ;
|
||||
burn_V = mkV "palaa" ;
|
||||
count_V2 = mkV2 (mkV "laskea") ;
|
||||
cut_V2 = mkV2 (mk2V "leikata" "leikkasi") ;
|
||||
dig_V = mkV "kaivaa" ;
|
||||
fall_V = mkV "pudota" "putoan" "putosi" ;
|
||||
fear_V2 = mkV2 (mkV "pelätä" "pelkään" "pelkäsi") cpartitive ;
|
||||
fight_V2 = mkV2 (mkV "taistella") (postPrep partitive "vastaan") ;
|
||||
float_V = mkV "kellua" ;
|
||||
flow_V = mkV "virrata" "virtaan" "virtasi" ;
|
||||
fly_V = mkV "lentää" ;
|
||||
freeze_V = mkV "jäätyä" ;
|
||||
give_V3 = mkV3 (mkV "antaa" "annan" "antoi") accPrep (casePrep allative) ;
|
||||
hit_V2 = mkV2 (mkV "lyödä") cpartitive ;
|
||||
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" ;
|
||||
play_V = mkV "pelata" ;
|
||||
pull_V2 = mkV2 (mkV "vetää") ;
|
||||
push_V2 = mkV2 (mkV "työntää") ;
|
||||
rub_V2 = mkV2 (mkV "hieroa") cpartitive ;
|
||||
scratch_V2 = mkV2 (mkV "raapia") cpartitive ;
|
||||
sew_V = mkV "kylvää" ;
|
||||
sing_V = mkV "laulaa" ;
|
||||
sit_V = mkV "istua" ;
|
||||
smell_V = mk2V "haistaa" "haistoi" ;
|
||||
spit_V = mkV "sylkeä" ;
|
||||
split_V2 = mkV2 (mk2V "halkaista" "halkaisi") ;
|
||||
squeeze_V2 = mkV2 (mkV "puristaa") cpartitive ;
|
||||
stab_V2 = mkV2 (mkV "pistää") cpartitive ;
|
||||
stand_V = mk12V "seistä" "seisoo" "seison" "seisovat" "seiskää" "seistään"
|
||||
"seisoi" "seisoin" "seisoisi" "seissyt" "seisty" "seistyn" ; --- *seisoivät
|
||||
suck_V2 = mkV2 (regV "imeä") cpartitive ;
|
||||
suck_V2 = mkV2 (mkV "imeä") cpartitive ;
|
||||
swell_V = mk12V "turvota" "turpoaa" "turpoan" "turpoavat" "turvotkaa" "turvotaan"
|
||||
"turposi" "turposin" "turpoaisi" "turvonnut" "turvottu" "turvotun" ;
|
||||
swim_V = reg3V "uida" "uin" "ui" ;
|
||||
think_V = reg3V "ajatella" "ajattelen" "ajatteli" ;
|
||||
throw_V2 = dirV2 (regV "heittää") ;
|
||||
tie_V2 = dirV2 (regV "sitoa") ;
|
||||
turn_V = regV "kääntyä" ;
|
||||
vomit_V = regV "oksentaa" ;
|
||||
wash_V2 = dirV2 (regV "pestä") ;
|
||||
wipe_V2 = dirV2 (regV "pyyhkiä") ;
|
||||
swim_V = mkV "uida" "uin" "ui" ;
|
||||
think_V = mkV "ajatella" "ajattelen" "ajatteli" ;
|
||||
throw_V2 = mkV2 (mkV "heittää") ;
|
||||
tie_V2 = mkV2 (mkV "sitoa") ;
|
||||
turn_V = mkV "kääntyä" ;
|
||||
vomit_V = mkV "oksentaa" ;
|
||||
wash_V2 = mkV2 (mkV "pestä") ;
|
||||
wipe_V2 = mkV2 (mkV "pyyhkiä") ;
|
||||
|
||||
breathe_V = regV "hengittää" ;
|
||||
breathe_V = mkV "hengittää" ;
|
||||
|
||||
grammar_N = regN "kielioppi" ;
|
||||
language_N = reg2N "kieli" "kieliä" ;
|
||||
rule_N = regN "sääntö" ;
|
||||
grammar_N = mkN "kielioppi" ;
|
||||
language_N = mk2N "kieli" "kieliä" ;
|
||||
rule_N = mkN "sääntö" ;
|
||||
|
||||
john_PN = regPN "Jussi" ;
|
||||
question_N = regN "kysymys" ;
|
||||
ready_A = regA "valmis" ;
|
||||
reason_N = regN "syy" ;
|
||||
john_PN = mkPN "Jussi" ;
|
||||
question_N = mkN "kysymys" ;
|
||||
ready_A = mkA "valmis" ;
|
||||
reason_N = mkN "syy" ;
|
||||
today_Adv = mkAdv "tänään" ;
|
||||
uncertain_A = regA "epävarma" ;
|
||||
uncertain_A = mkA "epävarma" ;
|
||||
|
||||
oper
|
||||
mkOrd : N -> Ord ;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -20,9 +20,9 @@ lin
|
||||
(nhn (mkSubst "a" "kolme" "kolme" "kolme" "kolmea" "kolmeen" "kolmi" "kolmi"
|
||||
"kolmien" "kolmia" "kolmiin"))
|
||||
(ordN "a" "kolmas") ;
|
||||
n4 = co (regN "neljä") (ordN "ä" "neljäs") ;
|
||||
n5 = co (reg3N "viisi" "viiden" "viisiä") (ordN "ä" "viides") ;
|
||||
n6 = co (reg3N "kuusi" "kuuden" "kuusia") (ordN "a" "kuudes") ;
|
||||
n4 = co (mkN "neljä") (ordN "ä" "neljäs") ;
|
||||
n5 = co (mkN "viisi" "viiden" "viisiä") (ordN "ä" "viides") ;
|
||||
n6 = co (mkN "kuusi" "kuuden" "kuusia") (ordN "a" "kuudes") ;
|
||||
n7 = co
|
||||
(nhn (mkSubst "ä" "seitsemän" "seitsemä" "seitsemä" "seitsemää"
|
||||
"seitsemään" "seitsemi" "seitsemi" "seitsemien" "seitsemiä"
|
||||
@@ -105,12 +105,12 @@ oper
|
||||
"kymmeneen" "kymmeni" "kymmeni" "kymmenien" "kymmeniä" "kymmeniin"))
|
||||
(ordN "ä" "kymmenes") ;
|
||||
sataN = co
|
||||
(nhn (sLukko "sata"))
|
||||
(mkN "sata")
|
||||
(ordN "a" "sadas") ;
|
||||
|
||||
tuhatN = co
|
||||
(nhn (mkSubst "a" "tuhat" "tuhanne" "tuhante" "tuhatta" "tuhanteen"
|
||||
"tuhansi" "tuhansi" "tuhansien" "tuhansia" "tuhansiin"))
|
||||
(mkN "tuhat" "tuhannen" "tuhatta" "ruhantena" "tuhanteen"
|
||||
"tuhansien" "tuhansia" "tuhansina" "tuhansissa" "tuhansiin")
|
||||
(ordN "a" "tuhannes") ;
|
||||
|
||||
kymmentaN =
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
|
||||
--1 Finnish Lexical Paradigms
|
||||
--
|
||||
-- Aarne Ranta 2003--2005
|
||||
-- Aarne Ranta 2003--2008
|
||||
--
|
||||
-- This is an API to the user of the resource grammar
|
||||
-- for adding lexical items. It gives functions for forming
|
||||
-- expressions of open categories: nouns, adjectives, verbs.
|
||||
--
|
||||
-- Closed categories (determiners, pronouns, conjunctions) are
|
||||
-- accessed through the resource syntax API, $Structural.gf$.
|
||||
-- accessed through the resource syntax API and $Structural.gf$.
|
||||
--
|
||||
-- The main difference with $MorphoFin.gf$ is that the types
|
||||
-- referred to are compiled resource grammar types. We have moreover
|
||||
@@ -17,10 +17,9 @@
|
||||
-- than stems, as string arguments of the paradigms.
|
||||
--
|
||||
-- The structure of functions for each word class $C$ is the following:
|
||||
-- first we give a handful of patterns that aim to cover all
|
||||
-- regular cases. Then we give a worst-case function $mkC$, which serves as an
|
||||
-- escape to construct the most irregular words of type $C$.
|
||||
-- However, this function should only seldom be needed.
|
||||
-- there is a polymorphic constructor $mkC$, which takes one or
|
||||
-- a few arguments. In Finnish, one argument is enough in 80-90% of
|
||||
-- cases in average.
|
||||
|
||||
resource ParadigmsFin = open
|
||||
(Predef=Predef),
|
||||
@@ -82,119 +81,25 @@ oper
|
||||
-- two or three forms. Most notably, the two-argument variant is used
|
||||
-- for nouns like "kivi - kiviä", which would otherwise become like
|
||||
-- "rivi - rivejä". Three arguments are used e.g. for
|
||||
-- "sydän - sydämen - sydämiä", which would otherwise become
|
||||
-- "sydän - sytämen".
|
||||
-- "auto - auton - autoja", which would otherwise become
|
||||
-- "auto - audon".
|
||||
|
||||
mkN : overload {
|
||||
mkN : (talo : Str) -> N ;
|
||||
mkN : (savi,savia : Str) -> N ;
|
||||
mkN : (vesi,veden,vesiä : Str) -> N ;
|
||||
mkN : (olo,oln,olona,oloa,oloon,oloina,oloissa,olojen,oloja,oloihin : Str) -> N
|
||||
mkN : (vesi,veden,vesiä,vettä : Str) -> N ;
|
||||
mkN : (olo,olon,olona,oloa,oloon,olojen,oloja,oloina,oloissa,oloihin : Str) -> N ;
|
||||
mkN : (pika : Str) -> (juna : N) -> N ;
|
||||
mkN : (oma : N) -> (tunto : N) -> N ;
|
||||
} ;
|
||||
|
||||
|
||||
-- Some nouns have an unexpected singular partitive, e.g. "meri", "lumi".
|
||||
|
||||
sgpartN : (meri : N) -> (merta : Str) -> N ;
|
||||
nMeri : (meri : Str) -> N ;
|
||||
|
||||
-- The rest of the noun paradigms are mostly covered by the three
|
||||
-- heuristics.
|
||||
--
|
||||
-- Nouns with partitive "a","ä" are a large group.
|
||||
-- To determine for grade and vowel alternation, three forms are usually needed:
|
||||
-- singular nominative and genitive, and plural partitive.
|
||||
-- Examples: "talo", "kukko", "huippu", "koira", "kukka", "syylä", "särki"...
|
||||
|
||||
nKukko : (kukko,kukon,kukkoja : Str) -> N ;
|
||||
|
||||
-- A special case:
|
||||
-- the vowel harmony is inferred from the last letter,
|
||||
-- which must be one of "o", "u", "ö", "y". Regular weak-grade alternation
|
||||
-- is performed.
|
||||
|
||||
nTalo : (talo : Str) -> N ;
|
||||
|
||||
-- Another special case are nouns where the last two consonants
|
||||
-- undergo regular weak-grade alternation:
|
||||
-- "kukko - kukon", "rutto - ruton", "hyppy - hypyn", "sampo - sammon",
|
||||
-- "kunto - kunnon", "sisältö - sisällön", .
|
||||
|
||||
nLukko : (lukko : Str) -> N ;
|
||||
|
||||
-- "arpi - arven", "sappi - sapen", "kampi - kammen";"sylki - syljen"
|
||||
|
||||
nArpi : (arpi : Str) -> N ;
|
||||
nSylki : (sylki : Str) -> N ;
|
||||
|
||||
-- Foreign words ending in consonants are actually similar to words like
|
||||
-- "malli"-"mallin"-"malleja", with the exception that the "i" is not attached
|
||||
-- to the singular nominative. Examples: "linux", "savett", "screen".
|
||||
-- The singular partitive form is used to get the vowel harmony.
|
||||
-- (N.B. more than 1-syllabic words ending in "n" would have variant
|
||||
-- plural genitive and partitive forms, like
|
||||
-- "sultanien", "sultaneiden", which are not covered.)
|
||||
|
||||
nLinux : (linuxia : Str) -> N ;
|
||||
|
||||
-- Nouns of at least 3 syllables ending with "a" or "ä", like "peruna", "tavara",
|
||||
-- "rytinä".
|
||||
|
||||
nPeruna : (peruna : Str) -> N ;
|
||||
|
||||
-- The following paradigm covers both nouns ending in an aspirated "e", such as
|
||||
-- "rae", "perhe", "savuke", and also many ones ending in a consonant
|
||||
-- ("rengas", "kätkyt"). The singular nominative and essive are given.
|
||||
|
||||
nRae : (rae, rakeena : Str) -> N ;
|
||||
|
||||
-- The following covers nouns with partitive "ta","tä", such as
|
||||
-- "susi", "vesi", "pieni". To get all stems and the vowel harmony, it takes
|
||||
-- the singular nominative, genitive, and essive.
|
||||
|
||||
nSusi : (susi,suden,sutta : Str) -> N ;
|
||||
|
||||
-- Nouns ending with a long vowel, such as "puu", "pää", "pii", "leikkuu",
|
||||
-- are inflected according to the following.
|
||||
|
||||
nPuu : (puu : Str) -> N ;
|
||||
|
||||
-- One-syllable diphthong nouns, such as "suo", "tie", "työ", are inflected by
|
||||
-- the following.
|
||||
|
||||
nSuo : (suo : Str) -> N ;
|
||||
|
||||
-- Many adjectives but also nouns have the nominative ending "nen" which in other
|
||||
-- cases becomes "s": "nainen", "ihminen", "keltainen".
|
||||
-- To capture the vowel harmony, we use the partitive form as the argument.
|
||||
|
||||
nNainen : (naista : Str) -> N ;
|
||||
|
||||
-- The following covers some nouns ending with a consonant, e.g.
|
||||
-- "tilaus", "kaulin", "paimen", "laidun".
|
||||
|
||||
nTilaus : (tilaus,tilauksena : Str) -> N ;
|
||||
|
||||
-- Special case:
|
||||
|
||||
nKulaus : (kulaus : Str) -> N ;
|
||||
|
||||
-- The following covers nouns like "nauris" and adjectives like "kallis", "tyyris".
|
||||
-- The partitive form is taken to get the vowel harmony.
|
||||
|
||||
nNauris : (naurista : Str) -> N ;
|
||||
|
||||
-- Separately-written compound nouns, like "sambal oelek", "Urho Kekkonen",
|
||||
-- have only their last part inflected.
|
||||
|
||||
compN : Str -> N -> N ;
|
||||
|
||||
-- Nouns used as functions need a case, of which the default is
|
||||
-- the genitive.
|
||||
|
||||
mkN2 = overload {
|
||||
mkN2 : N -> N2 = genN2 ;
|
||||
mkN2 : N -> Prep -> N2 = mmkN2
|
||||
mkN2 : overload {
|
||||
mkN2 : N -> N2 ;
|
||||
mkN2 : N -> Prep -> N2
|
||||
} ;
|
||||
|
||||
mkN3 : N -> Prep -> Prep -> N3 ;
|
||||
@@ -219,12 +124,13 @@ oper
|
||||
mkA : overload {
|
||||
mkA : Str -> A ;
|
||||
mkA : N -> A ;
|
||||
mkA : N -> (kivempaa,kivinta : Str) -> A
|
||||
mkA : N -> (kivempaa,kivinta : Str) -> A ;
|
||||
mkA : (hyva,parempi,paras : N) -> (hyvin,paremmin,parhaiten : Str) -> A ;
|
||||
} ;
|
||||
|
||||
-- Two-place adjectives need a case for the second argument.
|
||||
|
||||
mkA2 : A -> Prep -> A2 ;
|
||||
mkA2 : A -> Prep -> A2 = \a,p -> a ** {c2 = p ; lock_A2 = <>};
|
||||
|
||||
|
||||
|
||||
@@ -235,45 +141,15 @@ oper
|
||||
-- a table.
|
||||
-- The worst case needs twelve forms, as shown in the following.
|
||||
|
||||
|
||||
-- The following heuristics cover more and more verbs.
|
||||
|
||||
mkV : overload {
|
||||
mkV : (soutaa : Str) -> V ;
|
||||
mkV : (soutaa,souti : Str) -> V ;
|
||||
mkV : (soutaa,soudan,souti : Str) -> V ;
|
||||
mkV : (tulla,tulee,tulen,tulevat,tulkaa,tullaan,tuli,tulin,tulisi,tullut,tultu,tullun : Str) -> V ;
|
||||
|
||||
-- The subject case of verbs is by default nominative. This function can change it.
|
||||
|
||||
mkV : V -> Case -> V
|
||||
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 : (
|
||||
huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan,
|
||||
huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V = mk12V ;
|
||||
} ;
|
||||
|
||||
|
||||
-- The rest of the paradigms are special cases mostly covered by the heuristics.
|
||||
-- A simple special case is the one with just one stem and without grade alternation.
|
||||
|
||||
vValua : (valua : Str) -> V ;
|
||||
|
||||
-- With two forms, the following function covers a variety of verbs, such as
|
||||
-- "ottaa", "käyttää", "löytää", "huoltaa", "hiihtää", "siirtää".
|
||||
|
||||
vKattaa : (kattaa, katan : Str) -> V ;
|
||||
|
||||
-- When grade alternation is not present, just a one-form special case is needed
|
||||
-- ("poistaa", "ryystää").
|
||||
|
||||
vOstaa : (ostaa : Str) -> V ;
|
||||
|
||||
-- The following covers
|
||||
-- "juosta", "piestä", "nousta", "rangaista", "kävellä", "surra", "panna".
|
||||
|
||||
vNousta : (nousta, nousen : Str) -> V ;
|
||||
|
||||
-- This is for one-syllable diphthong verbs like "juoda", "syödä".
|
||||
|
||||
vTuoda : (tuoda : Str) -> V ;
|
||||
|
||||
-- All the patterns above have $nominative$ as subject case.
|
||||
-- If another case is wanted, use the following.
|
||||
|
||||
@@ -283,6 +159,7 @@ oper
|
||||
|
||||
vOlla : V ;
|
||||
|
||||
|
||||
--3 Two-place verbs
|
||||
--
|
||||
-- Two-place verbs need an object case, and can have a pre- or postposition.
|
||||
@@ -367,202 +244,305 @@ oper
|
||||
\c -> {c = NPCase c ; s = [] ; isPre = True ; lock_Prep = <>} ;
|
||||
accPrep = {c = NPAcc ; s = [] ; isPre = True ; lock_Prep = <>} ;
|
||||
|
||||
mk10N= \a,b,c,d,e,f,g,h,i,j ->
|
||||
mkNoun a b c d e f g h i j ** {lock_N = <>} ;
|
||||
|
||||
mkN = overload {
|
||||
mkN : (talo : Str) -> N = regN ;
|
||||
mkN : (savi,savia : Str) -> N = reg2N ;
|
||||
mkN : (vesi,veden,vesiä : Str) -> N = reg3N ;
|
||||
mkN : (talo, talon, talona, taloa, taloon,
|
||||
taloina,taloissa,talojen,taloja,taloihin : Str) -> N = mk10N
|
||||
mkN : (talo : Str) -> N = mk1N ;
|
||||
-- \s -> nForms2N (nForms1 s) ;
|
||||
mkN : (talo,talon : Str) -> N = mk2N ;
|
||||
-- \s,t -> nForms2N (nForms2 s t) ;
|
||||
mkN : (talo,talon,taloja : Str) -> N = mk3N ;
|
||||
-- \s,t,u -> nForms2N (nForms3 s t u) ;
|
||||
mkN : (talo,talon,taloja,taloa : Str) -> N = mk4N ;
|
||||
-- \s,t,u,v -> nForms2N (nForms4 s t u v) ;
|
||||
mkN :
|
||||
(talo,talon,taloa,talona,taloon,talojen,taloja,taloina,taloissa,taloihin
|
||||
: Str) -> N = mk10N ;
|
||||
mkN : (sora : Str) -> (tie : N) -> N = mkStrN ;
|
||||
mkN : (oma,tunto : N) -> N = mkNN ;
|
||||
} ;
|
||||
|
||||
regN = \vesi ->
|
||||
let
|
||||
esi = Predef.dp 3 vesi ; -- analysis: suffixes
|
||||
a = if_then_Str (pbool2bool (Predef.occurs "aou" vesi)) "a" "ä" ;
|
||||
ves = init vesi ; -- synthesis: prefixes
|
||||
vet = strongGrade ves ;
|
||||
ve = init ves ;
|
||||
in nhn (
|
||||
case esi of {
|
||||
"uus" | "yys" => sRakkaus vesi ;
|
||||
_ + "nen" => sNainen (Predef.tk 3 vesi + ("st" + a)) ;
|
||||
_ + ("aa" | "ee" | "ii" | "oo" | "uu" | "yy" | "ää" | "öö") => sPuu vesi ;
|
||||
_ + ("ie" | "uo" | "yö") => sSuo vesi ;
|
||||
_ + ("ea" | "eä") =>
|
||||
mkSubst
|
||||
a
|
||||
vesi (vesi) (vesi) (vesi + a) (vesi + a+"n")
|
||||
(ves + "i") (ves + "i") (ves + "iden") (ves + "it"+a)
|
||||
(ves + "isiin") ;
|
||||
_ + "is" => sNauris (vesi + ("t" + a)) ;
|
||||
_ + ("ut" | "yt") => sRae vesi (ves + ("en" + a)) ;
|
||||
_ + ("as" | "äs") => sRae vesi (vet + (a + "n" + a)) ;
|
||||
_ + ("ar" | "är") => sRae vesi (vet + ("ren" + a)) ;
|
||||
_ + "n" => sLiitin vesi (vet + "men") ;
|
||||
_ + "s" => sTilaus vesi (ves + ("ksen" + a)) ;
|
||||
_ + "i" => sBaari (vesi + a) ;
|
||||
_ + "e" => sRae vesi (strongGrade vesi + "en" + a) ;
|
||||
_ + ("a" | "o" | "u" | "y" | "ä" | "ö") => sLukko vesi ;
|
||||
_ => sLinux (vesi + "i" + a)
|
||||
}
|
||||
) ** {lock_N = <>} ;
|
||||
mk1A : Str -> A = \jalo -> aForms2A (nforms2aforms (nForms1 jalo)) ;
|
||||
mkNA : N -> A = \suuri -> aForms2A (nforms2aforms (n2nforms suuri)) ;
|
||||
|
||||
reg2N : (savi,savia : Str) -> N = \savi,savia ->
|
||||
let
|
||||
savit = regN savi ;
|
||||
ia = Predef.dp 2 savia ;
|
||||
i = init ia ;
|
||||
a = last ia ;
|
||||
o = last savi ;
|
||||
savin = weakGrade savi + "n" ;
|
||||
in
|
||||
case <o,ia> of {
|
||||
<"i","ia"> => nhn (sArpi savi) ;
|
||||
<"i","iä"> => nhn (sSylki savi) ;
|
||||
<"o","ta"> | <"ö","tä"> => nhn (sRadio savi) ;
|
||||
<"a","ta"> | <"ä","tä"> => nhn (sPeruna savi) ;
|
||||
<"i","ta"> | <"i","tä"> => nhn (sTohtori (savi + a)) ; -- from 10 to 90 ms
|
||||
-- <"a","ia"> | <"a","ja"> => nhn (sKukko savi savin savia) ; ---needless?
|
||||
_ => savit
|
||||
}
|
||||
** {lock_N = <>} ;
|
||||
mk1N : (talo : Str) -> N = \s -> nForms2N (nForms1 s) ;
|
||||
mk2N : (talo,talon : Str) -> N = \s,t -> nForms2N (nForms2 s t) ;
|
||||
mk3N : (talo,talon,taloja : Str) -> N = \s,t,u -> nForms2N (nForms3 s t u) ;
|
||||
mk4N : (talo,talon,taloa,taloja : Str) -> N = \s,t,u,v ->
|
||||
nForms2N (nForms4 s t u v) ;
|
||||
mk10N :
|
||||
(talo,talon,taloa,talona,taloon,talojen,taloja,taloina,taloissa,taloihin
|
||||
: Str) -> N = \a,b,c,d,e,f,g,h,i,j ->
|
||||
nForms2N (nForms10 a b c d e f g h i j) ;
|
||||
|
||||
reg3N = \vesi,veden,vesiä ->
|
||||
let
|
||||
si = Predef.dp 2 vesi ;
|
||||
a = last vesiä
|
||||
in
|
||||
case si of {
|
||||
"us" | "ys" =>
|
||||
nhn (case Predef.dp 3 veden of {
|
||||
"den" => sRakkaus vesi ;
|
||||
_ => sTilaus vesi (veden + a)
|
||||
}) ;
|
||||
"as" | "äs" => nhn (sRae vesi (veden + a)) ;
|
||||
"li" | "ni" | "ri" => nhn (sSusi vesi veden (init vesi + ("en" + a))) ;
|
||||
"si" => nhn (sSusi vesi veden (Predef.tk 2 vesi + ("ten" + a))) ;
|
||||
"in" | "en" | "än" => nhn (sLiitin vesi veden) ;
|
||||
_ + ("a" | "o" | "u" | "y" | "ä" | "ö") => nhn (sKukko vesi veden vesiä) ;
|
||||
_ {- + "i" -} => nhn (sKorpi vesi veden (init veden + "n" + a))
|
||||
}
|
||||
** {lock_N = <>} ;
|
||||
mkStrN : Str -> N -> N = \sora,tie -> {
|
||||
s = \\c => sora + tie.s ! c ; lock_N = <>
|
||||
} ;
|
||||
mkNN : N -> N -> N = \oma,tunto -> {
|
||||
s = \\c => oma.s ! c + tunto.s ! c ; lock_N = <>
|
||||
} ; ---- TODO: oma in possessive suffix forms
|
||||
|
||||
nKukko = \a,b,c -> nhn (sKukko a b c) ** {lock_N = <>} ;
|
||||
nForms1 : Str -> NForms = \ukko ->
|
||||
let
|
||||
ukk = init ukko ;
|
||||
uko = weakGrade ukko ;
|
||||
ukon = uko + "n" ;
|
||||
o = case last ukko of {"ä" => "ö" ; "a" => "o"} ; -- only used then
|
||||
renka = strongGrade (init ukko) ;
|
||||
rake = strongGrade ukko ;
|
||||
in
|
||||
case ukko of {
|
||||
_ + "nen" => dNainen ukko ;
|
||||
_ + ("aa" | "ee" | "ii" | "oo" | "uu" | "yy" |"ää"|"öö") => dPuu ukko ;
|
||||
_ + ("ai" | "ei" | "oi" | "ui" | "yi" | "äi" | "öi") => dPuu ukko ;
|
||||
_ + ("ie" | "uo" | "yö") => dSuo ukko ;
|
||||
_ + ("ea" | "eä") => dKorkea ukko ;
|
||||
_ + "is" => dKaunis ukko ;
|
||||
_ + ("i" | "u") + "n" => dLiitin ukko (renka + "men") ;
|
||||
_ + ("ton" | "tön") => dOnneton ukko ;
|
||||
_ + "e" => dRae ukko (rake + "en") ;
|
||||
_ + ("ut" | "yt") => dRae ukko (ukk + "en") ;
|
||||
_ + ("as" | "äs") => dRae ukko (renka + last renka + "n") ;
|
||||
_ + ("uus" | "yys" | "eus" | "eys") => dLujuus ukko ;
|
||||
_ + "s" => dJalas ukko ;
|
||||
|
||||
nLukko = \a -> nhn (sLukko a) ** {lock_N = <>} ;
|
||||
nTalo = \a -> nhn (sTalo a) ** {lock_N = <>} ;
|
||||
nArpi = \a -> nhn (sArpi a) ** {lock_N = <>} ;
|
||||
nSylki = \a -> nhn (sSylki a) ** {lock_N = <>} ;
|
||||
nLinux = \a -> nhn (sLinux a) ** {lock_N = <>} ;
|
||||
nPeruna = \a -> nhn (sPeruna a) ** {lock_N = <>} ;
|
||||
nRae = \a,b -> nhn (sRae a b) ** {lock_N = <>} ;
|
||||
nSusi = \a,b,c -> nhn (sSusi a b c) ** {lock_N = <>} ;
|
||||
nPuu = \a -> nhn (sPuu a) ** {lock_N = <>} ;
|
||||
nSuo = \a -> nhn (sSuo a) ** {lock_N = <>} ;
|
||||
nNainen = \a -> nhn (sNainen a) ** {lock_N = <>} ;
|
||||
nTilaus = \a,b -> nhn (sTilaus a b) ** {lock_N = <>} ;
|
||||
nKulaus = \a -> nTilaus a (init a + "ksen" + getHarmony (last
|
||||
(init a))) ;
|
||||
nNauris = \a -> nhn (sNauris a) ** {lock_N = <>} ;
|
||||
sgpartN noun part = {
|
||||
s = table {
|
||||
NCase Sg Part => part ;
|
||||
c => noun.s ! c
|
||||
{- heuristics for 3-syllable nouns ending a/ä
|
||||
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + C_ +
|
||||
_ + "i" + C_ + a@("a" | "ä") =>
|
||||
dSilakka ukko (ukko + "n") (ukk + o + "it" + a) ;
|
||||
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + C_ + _ +
|
||||
("a" | "e" | "o" | "u" | "y" | "ä" | "ö") +
|
||||
("l" | "r" | "n") + a@("a" | "ä") =>
|
||||
dSilakka ukko (ukko + "n") (ukk + o + "it" + a) ;
|
||||
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + C_ + _ +
|
||||
("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") +
|
||||
("n" | "k" | "s") + "k" + a@("a" | "ä") =>
|
||||
dSilakka ukko (uko + "n") (init uko + o + "it" + a) ;
|
||||
_ + ("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") + C_ + _ +
|
||||
("a" | "e" | "i" | "o" | "u" | "y" | "ä" | "ö") +
|
||||
("n" | "t" | "s") + "t" + a@("a" | "ä") =>
|
||||
dSilakka ukko (uko + "n") (ukk + o + "j" + a) ;
|
||||
_ + ("a" | "e" | "i" | "o" | "u") + C_ + _ +
|
||||
("a" | "e" | "o" | "u") + C_ + "a" =>
|
||||
dSilakka ukko (ukko + "n") (ukk + "ia") ;
|
||||
-}
|
||||
_ + "i" +o@("o"|"ö") => dSilakka ukko (ukko+"n") (ukko+"it"+getHarmony o);
|
||||
_ + "i" + "a" => dSilakka ukko (ukko + "n") (ukk + "oita") ;
|
||||
_ + "i" + "ä" => dSilakka ukko (ukko + "n") (ukk + "öitä") ;
|
||||
_ + ("a" | "o" | "u" | "y" | "ä" | "ö") => dUkko ukko ukon ;
|
||||
_ + "i" => dPaatti ukko ukon ;
|
||||
_ + ("ar" | "är") => dPiennar ukko (renka + "ren") ;
|
||||
_ + "e" + ("l" | "n") => dPiennar ukko (ukko + "en") ;
|
||||
_ => dUnix ukko
|
||||
} ;
|
||||
|
||||
|
||||
nForms2 : (_,_ : Str) -> NForms = \ukko,ukkoja ->
|
||||
let
|
||||
ukot = nForms1 ukko ;
|
||||
ukon = weakGrade ukko + "n" ;
|
||||
in
|
||||
case <ukko,ukkoja> of {
|
||||
<_ + "ea", _ + "oita"> =>
|
||||
dSilakka ukko ukon ukkoja ; -- idea, but not korkea
|
||||
<_ + ("aa" | "ee" | "ii" | "oo" | "uu" | "yy" | "ää" | "öö" |
|
||||
"ie" | "uo" | "yö" | "ea" | "eä" |
|
||||
"ia" | "iä" | "io" | "iö"), _ + ("a" | "ä")> =>
|
||||
nForms1 ukko ; --- to protect --- how to get "dioja"?
|
||||
<_ + ("a" | "ä" | "o" | "ö"), _ + ("a" | "ä")> =>
|
||||
dSilakka ukko ukon ukkoja ;
|
||||
<arp + "i", _ + "i" + ("a" | "ä")> =>
|
||||
dArpi ukko (init (weakGrade ukko) + "en") ;
|
||||
<_ + "i", _ + ("eita" | "eitä")> =>
|
||||
dTohtori ukko ;
|
||||
<_ + "e", nuk + ("eja" | "ejä")> =>
|
||||
dNukke ukko ukon ;
|
||||
<_, _ + ":" + _ + ("a" | "ä")> => dSDP ukko ;
|
||||
<_ + ("l" | "n" | "r" | "s"), _ + ("eja" | "ejä")> => dUnix ukko ;
|
||||
<_, _ + ("a" | "ä")> => ukot ;
|
||||
_ =>
|
||||
Predef.error
|
||||
(["last argument should end in a/ä, not"] ++ ukkoja)
|
||||
} ;
|
||||
g = noun.g ;
|
||||
lock_N = noun.lock_N
|
||||
} ;
|
||||
nMeri meri =
|
||||
let a = vowelHarmony meri in
|
||||
sgpartN (reg2N meri (meri + a)) (init meri + "ta") ;
|
||||
|
||||
compN = \s,n -> {s = \\c => s ++ n.s ! c ; g = n.g ; lock_N = <>} ;
|
||||
nForms3 : (_,_,_ : Str) -> NForms = \ukko,ukon,ukkoja ->
|
||||
let
|
||||
ukk = init ukko ;
|
||||
ukot = nForms2 ukko ukkoja ;
|
||||
in
|
||||
case <ukko,ukon> of {
|
||||
<_ + ("aa" | "ee" | "ii" | "oo" | "uu" | "yy" | "ää" | "öö" |
|
||||
"ie" | "uo" | "yö" | "ea" | "eä" |
|
||||
"ia" | "iä" | "io" | "iö" | "ja" | "jä"), _ + "n"> =>
|
||||
ukot ; --- to protect
|
||||
<_ + ("a" | "o" | "u" | "y" | "ä" | "ö"), _ + "n", _ + ("a" | "ä")> =>
|
||||
dSilakka ukko ukon ukkoja ; -- auto,auton
|
||||
<_ + "mpi", _ + ("emman" | "emmän")> => dSuurempi ukko ;
|
||||
<_ + "in", _ + ("imman" | "immän")> => dSuurin ukko ;
|
||||
<terv + "e", terv + "een"> =>
|
||||
dRae ukko ukon ;
|
||||
<taiv + ("as" | "äs"), taiv + ("aan" | "ään")> =>
|
||||
dRae ukko ukon ;
|
||||
<nukk + "e", nuk + "een"> => dRae ukko ukon ;
|
||||
<arp + "i", arv + "en"> => dArpi ukko ukon ;
|
||||
<_ + ("us" | "ys"), _ + "den"> => dLujuus ukko ;
|
||||
<_, _ + ":n"> => dSDP ukko ;
|
||||
<_, _ + "n"> => ukot ;
|
||||
_ =>
|
||||
Predef.error (["second argument should end in n, not"] ++ ukon)
|
||||
} ;
|
||||
|
||||
nForms4 : (_,_,_,_ : Str) -> NForms = \ukko,ukon,ukkoja,ukkoa ->
|
||||
let
|
||||
ukot = nForms3 ukko ukon ukkoja ;
|
||||
in
|
||||
case <ukko,ukon,ukkoja,ukkoa> of {
|
||||
<_,_ + "n", _ + ("a" | "ä"), _ + ("a" | "ä")> =>
|
||||
table {
|
||||
2 => ukkoa ;
|
||||
n => ukot ! n
|
||||
} ;
|
||||
_ =>
|
||||
Predef.error
|
||||
(["last arguments should end in n, a/ä, and a/ä, not"] ++
|
||||
ukon ++ ukkoja ++ ukkoa)
|
||||
} ;
|
||||
|
||||
makeNP : N -> Number -> CatFin.NP ;
|
||||
makeNP noun num = {
|
||||
s = \\c => noun.s ! NCase num (npform2case num c) ;
|
||||
a = agrP3 num ;
|
||||
isPron = False ;
|
||||
lock_NP = <>
|
||||
mkN2 = overload {
|
||||
mkN2 : N -> N2 = \n -> mmkN2 n (casePrep genitive) ;
|
||||
mkN2 : N -> Prep -> N2 = mmkN2
|
||||
} ;
|
||||
|
||||
mmkN2 : N -> Prep -> N2 = \n,c -> n ** {c2 = c ; lock_N2 = <>} ;
|
||||
mkN3 = \n,c,e -> n ** {c2 = c ; c3 = e ; lock_N3 = <>} ;
|
||||
|
||||
mkPN = overload {
|
||||
mkPN : Str -> PN = regPN ;
|
||||
mkPN : N -> PN = mmkPN
|
||||
mkPN : Str -> PN = \s -> {s = \\c => (mk1N s).s ! NCase Sg c ; lock_PN = <>} ;
|
||||
mkPN : N -> PN = \s -> {s = \\c => s.s ! NCase Sg c ; lock_PN = <>} ;
|
||||
} ;
|
||||
|
||||
-- adjectives
|
||||
|
||||
mkA = overload {
|
||||
mkA : Str -> A = regA ;
|
||||
mkA : N -> A = mk1A ;
|
||||
mkA : N -> (kivempaa,kivinta : Str) -> A = mkADeg
|
||||
mkA : Str -> A = \s -> noun2adjDeg (mk1N s) ** {lock_A = <>} ;
|
||||
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 ;
|
||||
} ;
|
||||
|
||||
mk1A = \x -> {s = \\_ => (noun2adj x).s ; lock_A = <>} ;
|
||||
---- mkADeg (noun2adj x).s ...
|
||||
-- auxiliaries
|
||||
mkAdjective : (_,_,_ : Adj) -> A = \hyva,parempi,paras ->
|
||||
{s = table {
|
||||
Posit => hyva.s ;
|
||||
Compar => parempi.s ;
|
||||
Superl => paras.s
|
||||
} ;
|
||||
lock_A = <>
|
||||
} ;
|
||||
regAdjective : Noun -> Str -> Str -> A = \kiva, kivempi, kivin ->
|
||||
mkAdjective
|
||||
(noun2adj kiva)
|
||||
(noun2adjComp False (nForms2N (dSuurempi kivempi)))
|
||||
(noun2adjComp False (nForms2N (dSuurin kivin))) ;
|
||||
noun2adjDeg : Noun -> Adjective = \suuri ->
|
||||
regAdjective
|
||||
suuri
|
||||
(init (suuri.s ! NCase Sg Gen) + "mpi") ---- to check
|
||||
(init (suuri.s ! NCase Pl Part) + "n") ; ----
|
||||
|
||||
|
||||
mkA2 = \x,c -> x ** {c2 = c ; lock_A2 = <>} ;
|
||||
mkADeg x kivempi kivin =
|
||||
|
||||
|
||||
-- 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 = <>} ;
|
||||
|
||||
mk12V : (
|
||||
huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan,
|
||||
huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V =
|
||||
\a,b,c,d,e,f,g,h,i,j,k,l ->
|
||||
vforms2V (vForms12 a b c d e f g h i j k l) ** {sc = NPCase Nom ; lock_V = <>} ;
|
||||
|
||||
vForms1 : Str -> VForms = \ottaa ->
|
||||
let
|
||||
a = last (x.s ! ((NCase Sg Part))) ; ---- gives "kivinta"
|
||||
kivempaa = init kivempi + a + a ;
|
||||
kivinta = kivin + "t" + a
|
||||
a = last ottaa ;
|
||||
otta = init ottaa ;
|
||||
ott = init otta ;
|
||||
ots = init ott + "s" ;
|
||||
ota = weakGrade otta ;
|
||||
otin = init (strongGrade (init ott)) + "elin" ;
|
||||
ot = init ota ;
|
||||
in
|
||||
regAdjective x kivempaa kivinta ** {lock_A = <>} ;
|
||||
case ottaa of {
|
||||
_ + ("e" | "i" | "o" | "u" | "y" | "ö") + ("a" | "ä") =>
|
||||
cHukkua ottaa (ota + "n") ;
|
||||
_ + ("l" | "n" | "r") + ("taa" | "tää") =>
|
||||
cOttaa ottaa (ota + "n") (ots + "in") (ots + "i") ;
|
||||
("" | C_) + ("a" | "e" | "i" | "o" | "u") + C_ + _ +
|
||||
("a" | "e" | "i" | "o" | "u") + _ + "aa" =>
|
||||
cOttaa ottaa (ota + "n") (ot + "in") (ott + "i") ;
|
||||
("" | C_) + ("a" | "e" | "i") + _ + "aa" =>
|
||||
cOttaa ottaa (ota + "n") (ot + "oin") (ott + "oi") ;
|
||||
_ + ("aa" | "ää") =>
|
||||
cOttaa ottaa (ota + "n") (ot + "in") (ott + "i") ;
|
||||
_ + ("ella" | "ellä") =>
|
||||
cKuunnella ottaa otin ;
|
||||
_ + ("osta" | "östä") =>
|
||||
cJuosta ottaa (init ott + "ksen") ;
|
||||
_ + ("st" | "nn" | "ll" | "rr") + ("a" | "ä") =>
|
||||
cJuosta ottaa (ott + "en") ;
|
||||
_ + ("ita" | "itä") =>
|
||||
cHarkita ottaa ;
|
||||
_ + ("eta" | "etä" | "ota" | "ata" | "uta" | "ytä" | "ätä" | "ötä") =>
|
||||
cPudota ottaa (strongGrade ott + "si") ;
|
||||
_ + ("da" | "dä") =>
|
||||
cJuoda ottaa ;
|
||||
_ => Predef.error (["expected infinitive, found"] ++ ottaa)
|
||||
} ;
|
||||
|
||||
regA suuri =
|
||||
let suur = regN suuri in
|
||||
mkADeg
|
||||
suur
|
||||
(init (suur.s ! NCase Sg Gen) + "mpi")
|
||||
(init (suur.s ! NCase Pl Ess)) ;
|
||||
vForms2 : (_,_ : Str) -> VForms = \huutaa,huusi ->
|
||||
let
|
||||
huuda = weakGrade (init huutaa) ;
|
||||
huusin = weakGrade huusi + "n" ;
|
||||
autoin = weakGrade (init huusi) + "in" ;
|
||||
in
|
||||
case <huutaa,huusi> of {
|
||||
<_ + ("taa" | "tää"), _ + ("oi" | "öi")> =>
|
||||
cOttaa huutaa (huuda + "n") autoin huusi ;
|
||||
<_ + ("aa" | "ää"), _ + "i"> =>
|
||||
cOttaa huutaa (huuda + "n") huusin huusi ;
|
||||
<_ + ("eta" | "etä"), _ + "eni"> =>
|
||||
cValjeta huutaa huusi ;
|
||||
<_ + ("sta" | "stä"), _ + "si"> =>
|
||||
vForms1 huutaa ; -- pestä, halkaista
|
||||
<_ + ("ta" | "tä"), _ + "si"> =>
|
||||
cPudota huutaa huusi ;
|
||||
<_ + ("lla" | "llä"), _ + "li"> =>
|
||||
cKuunnella huutaa huusin ;
|
||||
_ => vForms1 huutaa
|
||||
} ;
|
||||
|
||||
regADeg = regA ; -- for bw compat
|
||||
|
||||
mk12V a b c d e f g h i j k l = mkVerb a b c d e f g h i j k l **
|
||||
{sc = NPCase Nom ; lock_V = <>} ;
|
||||
|
||||
mkV = overload {
|
||||
mkV : (soutaa : Str) -> V = regV ;
|
||||
mkV : (soutaa,souti : Str) -> V = reg2V ;
|
||||
mkV : (soutaa,soudan,souti : Str) -> V = reg3V ;
|
||||
mkV : (tulla,tulee,tulen,tulevat,tulkaa,tullaan,
|
||||
tuli,tulin,tulisi,tullut,tultu,tullun : Str) -> V = mk12V ;
|
||||
mkV : V -> Case -> V = subjcaseV
|
||||
} ;
|
||||
|
||||
regV soutaa = v2v (regVerbH soutaa) ** {sc = NPCase Nom ; lock_V = <>} ;
|
||||
|
||||
reg2V : (soutaa,souti : Str) -> V = \soutaa,souti ->
|
||||
v2v (reg2VerbH soutaa souti) ** {sc = NPCase Nom ; lock_V = <>} ;
|
||||
|
||||
reg3V soutaa soudan souti =
|
||||
v2v (reg3VerbH soutaa soudan souti) ** {sc = NPCase Nom ; lock_V = <>} ;
|
||||
|
||||
subjcaseV v c = {s = v.s ; sc = NPCase c ; lock_V = v.lock_V} ;
|
||||
|
||||
vValua v = v2v (vSanoa v) ** {sc = NPCase Nom ; lock_V = <>} ;
|
||||
vKattaa v u = v2v (vOttaa v u) ** {sc = NPCase Nom ; lock_V = <>} ;
|
||||
vOstaa v = v2v (vPoistaa v) ** {sc = NPCase Nom ; lock_V = <>} ;
|
||||
vNousta v u = v2v (vJuosta v u [] []) ** {sc = NPCase Nom ; lock_V = <>} ; -----
|
||||
vTuoda v = v2v (vJuoda v []) ** {sc = NPCase Nom ; lock_V = <>} ; -----
|
||||
caseV c v = {s = v.s ; sc = NPCase c ; lock_V = <>} ;
|
||||
|
||||
vOlla = verbOlla ** {sc = NPCase Nom ; lock_V = <>} ;
|
||||
|
||||
vHuoltaa : (_,_,_,_ : Str) -> Verb = \ottaa,otan,otti,otin ->
|
||||
v2v (MorphoFin.vHuoltaa ottaa otan otti otin) ** {sc = NPCase Nom ; lock_V = <>} ;
|
||||
|
||||
|
||||
mk2V2 = \v,c -> v ** {c2 = c ; lock_V2 = <>} ;
|
||||
caseV2 = \v,c -> mk2V2 v (casePrep c) ;
|
||||
mk2V2 : V -> Prep -> V2 = \v,c -> v ** {c2 = c ; lock_V2 = <>} ;
|
||||
caseV2 : V -> Case -> V2 = \v,c -> mk2V2 v (casePrep c) ;
|
||||
dirV2 v = mk2V2 v accPrep ;
|
||||
|
||||
mkAdv : Str -> Adv = \s -> {s = s ; lock_Adv = <>} ;
|
||||
|
||||
mkV2 = overload {
|
||||
mkV2 : Str -> V2 = \s -> dirV2 (mk1V s) ;
|
||||
mkV2 : V -> V2 = dirV2 ;
|
||||
mkV2 : V -> Case -> V2 = caseV2 ;
|
||||
mkV2 : V -> Prep -> V2 = mk2V2 ;
|
||||
} ;
|
||||
|
||||
mk2V2 : V -> Prep -> V2 ;
|
||||
caseV2 : V -> Case -> V2 ;
|
||||
dirV2 : V -> V2 ;
|
||||
|
||||
mkV3 v p q = v ** {c2 = p ; c3 = q ; lock_V3 = <>} ;
|
||||
dirV3 v p = mkV3 v accPrep (casePrep p) ;
|
||||
@@ -578,62 +558,15 @@ reg3N = \vesi,veden,vesi
|
||||
A2V : Type = A2 ;
|
||||
|
||||
mkV0 v = v ** {lock_V = <>} ;
|
||||
mkV2S v p = mk2V2 v p ** {lock_V2 = <>} ;
|
||||
mkV2V v p = mk2V2 v p ** {lock_V2 = <>} ;
|
||||
-- mkV2S v p = mk2V2 v p ** {lock_V2 = <>} ;
|
||||
-- mkV2V v p = mk2V2 v p ** {lock_V2 = <>} ;
|
||||
mkVA v p = v ** {c2 = p ; lock_VA = <>} ;
|
||||
mkV2A v p q = v ** {c2 = p ; c3 = q ; lock_V2A = <>} ;
|
||||
mkV2Q v p = mk2V2 v p ** {lock_V2 = <>} ;
|
||||
-- mkV2Q v p = mk2V2 v p ** {lock_V2 = <>} ;
|
||||
|
||||
mkAS v = v ** {lock_A = <>} ;
|
||||
mkA2S v p = mkA2 v p ** {lock_A = <>} ;
|
||||
mkAV v = v ** {lock_A = <>} ;
|
||||
mkA2V v p = mkA2 v p ** {lock_A2 = <>} ;
|
||||
|
||||
|
||||
--- old stuff
|
||||
|
||||
reg2N : (savi,savia : Str) -> N ;
|
||||
reg3N : (vesi,veden,vesiä : Str) -> N ;
|
||||
|
||||
mk10N: (talo, talon, talona, taloa, taloon,
|
||||
taloina,taloissa,talojen,taloja,taloihin : Str) -> N ;
|
||||
|
||||
regN : (talo : Str) -> N ;
|
||||
|
||||
mmkN2 : N -> Prep -> N2 = \n,c -> n ** {c2 = c ; lock_N2 = <>} ;
|
||||
mkN3 = \n,c,e -> n ** {c2 = c ; c3 = e ; lock_N3 = <>} ;
|
||||
genN2 = \n -> mmkN2 n (casePrep genitive) ;
|
||||
regPN m = mmkPN (regN m) ;
|
||||
mmkPN : N -> PN = \n -> mkProperName n ** {lock_PN = <>} ;
|
||||
|
||||
genN2 : N -> N2 ;
|
||||
|
||||
|
||||
mk1A : N -> A ;
|
||||
mkADeg : (kiva : N) -> (kivempaa,kivinta : Str) -> A ;
|
||||
regA : (punainen : Str) -> A ;
|
||||
|
||||
mk12V : (tulla,tulee,tulen,tulevat,tulkaa,tullaan,
|
||||
tuli,tulin,tulisi,tullut,tultu,tullun : Str) -> V ;
|
||||
|
||||
regV : (soutaa : Str) -> V ;
|
||||
reg2V : (soutaa,souti : Str) -> V ;
|
||||
reg3V : (soutaa,soudan,souti : Str) -> V ;
|
||||
|
||||
subjcaseV : V -> Case -> V ;
|
||||
|
||||
regPN : Str -> PN ;
|
||||
|
||||
mkV2 = overload {
|
||||
mkV2 : Str -> V2 = \s -> dirV2 (regV s) ;
|
||||
mkV2 : V -> V2 = dirV2 ;
|
||||
mkV2 : V -> Case -> V2 = caseV2 ;
|
||||
mkV2 : V -> Prep -> V2 = mk2V2 ;
|
||||
} ;
|
||||
|
||||
dirV2 : V -> V2 ;
|
||||
mk2V2 : V -> Prep -> V2 ;
|
||||
caseV2 : V -> Case -> V2 ;
|
||||
dirV2 : V -> V2 ;
|
||||
|
||||
} ;
|
||||
|
||||
@@ -9,7 +9,7 @@ concrete StructuralFin of Structural = CatFin **
|
||||
|
||||
all_Predet = {s = \\n,c =>
|
||||
let
|
||||
kaiket = caseTable n (nhn (sKorpi "kaikki" "kaiken" "kaikkena"))
|
||||
kaiket = caseTable n ((mkN "kaikki" "kaiken" "kaikkena"))
|
||||
in
|
||||
case npform2case n c of {
|
||||
Nom => "kaikki" ;
|
||||
@@ -28,17 +28,17 @@ concrete StructuralFin of Structural = CatFin **
|
||||
but_PConj = ss "mutta" ;
|
||||
by8agent_Prep = postGenPrep "toimesta" ;
|
||||
by8means_Prep = casePrep adessive ;
|
||||
can8know_VV = reg2V "osata" "osasi" ;
|
||||
can_VV = reg2V "voida" "voi" ;
|
||||
can8know_VV = mkV "osata" "osasi" ;
|
||||
can_VV = mkV "voida" "voi" ;
|
||||
during_Prep = postGenPrep "aikana" ;
|
||||
either7or_DConj = sd2 "joko" "tai" ** {n = Sg} ;
|
||||
everybody_NP = makeNP (regN "jokainen") Sg ;
|
||||
every_Det = mkDet Sg (regN "jokainen") ;
|
||||
everything_NP = makeNP ((nhn (sKorpi "kaikki" "kaiken" "kaikkena")) **
|
||||
everybody_NP = makeNP (mkN "jokainen") Sg ;
|
||||
every_Det = mkDet Sg (mkN "jokainen") ;
|
||||
everything_NP = makeNP (((mkN "kaikki" "kaiken" "kaikkena")) **
|
||||
{lock_N = <>}) Sg ;
|
||||
everywhere_Adv = ss "kaikkialla" ;
|
||||
few_Det = mkDet Sg (regN "harva") ;
|
||||
--- first_Ord = {s = \\n,c => (regN "ensimmäinen").s ! NCase n c} ;
|
||||
few_Det = mkDet Sg (mkN "harva") ;
|
||||
--- first_Ord = {s = \\n,c => (mkN "ensimmäinen").s ! NCase n c} ;
|
||||
for_Prep = casePrep allative ;
|
||||
from_Prep = casePrep elative ;
|
||||
he_Pron = mkPronoun "hän" "hänen" "häntä" "hänenä" "häneen" Sg P3 ;
|
||||
@@ -47,7 +47,7 @@ concrete StructuralFin of Structural = CatFin **
|
||||
here7from_Adv = ss "täältä" ;
|
||||
how_IAdv = ss "miten" ;
|
||||
how8many_IDet =
|
||||
{s = \\c => "kuinka" ++ (reg2N "moni" "monia").s ! NCase Sg c ; n = Sg} ;
|
||||
{s = \\c => "kuinka" ++ (mkN "moni" "monia").s ! NCase Sg c ; n = Sg} ;
|
||||
if_Subj = ss "jos" ;
|
||||
in8front_Prep = postGenPrep "edessä" ;
|
||||
i_Pron = mkPronoun "minä" "minun" "minua" "minuna" "minuun" Sg P1 ;
|
||||
@@ -58,11 +58,11 @@ concrete StructuralFin of Structural = CatFin **
|
||||
isPron = False
|
||||
} ;
|
||||
less_CAdv = ss "vähemmän" ;
|
||||
many_Det = mkDet Sg (reg2N "moni" "monia") ;
|
||||
many_Det = mkDet Sg (mkN "moni" "monia") ;
|
||||
more_CAdv = ss "enemmän" ;
|
||||
most_Predet = {s = \\n,c => (nhn (sSuurin "useinta")).s ! NCase n (npform2case n c)} ;
|
||||
most_Predet = {s = \\n,c => (nForms2N (dSuurin "useinta")).s ! NCase n (npform2case n c)} ;
|
||||
much_Det = mkDet Sg {s = \\_ => "paljon"} ;
|
||||
must_VV = subjcaseV (regV "täytyä") genitive ;
|
||||
must_VV = caseV genitive (mkV "täytyä") ;
|
||||
no_Phr = ss "ei" ;
|
||||
on_Prep = casePrep adessive ;
|
||||
--- one_Quant = mkDet Sg DEPREC
|
||||
@@ -140,7 +140,7 @@ concrete StructuralFin of Structural = CatFin **
|
||||
to_Prep = casePrep illative ; --- allative
|
||||
under_Prep = postGenPrep "alla" ;
|
||||
very_AdA = ss "erittäin" ;
|
||||
want_VV = regV "tahtoa" ;
|
||||
want_VV = mkV "tahtoa" ;
|
||||
we_Pron = mkPronoun "me" "meidän" "meitä" "meinä" "meihin" Pl P1 ;
|
||||
whatPl_IP = {
|
||||
s = table {NPAcc => "mitkä" ; c => mikaInt ! Pl ! npform2case Pl c} ;
|
||||
@@ -181,8 +181,8 @@ concrete StructuralFin of Structural = CatFin **
|
||||
oper
|
||||
jokuPron : MorphoFin.Number => (MorphoFin.Case) => Str =
|
||||
let
|
||||
ku = nhn (sPuu "ku") ;
|
||||
kui = nhn (sPuu "kuu")
|
||||
ku = mkN "ku" ;
|
||||
kui = mkN "kuu"
|
||||
in
|
||||
table {
|
||||
Sg => table {
|
||||
@@ -211,7 +211,7 @@ oper
|
||||
|
||||
mikaInt : MorphoFin.Number => (MorphoFin.Case) => Str =
|
||||
let {
|
||||
mi = nhn (sSuo "mi")
|
||||
mi = mkN "mi"
|
||||
} in
|
||||
table {
|
||||
Sg => table {
|
||||
@@ -228,8 +228,8 @@ oper
|
||||
|
||||
kukaInt : MorphoFin.Number => (MorphoFin.Case) => Str =
|
||||
let {
|
||||
ku = nhn (sRae "kuka" "kenenä") ;
|
||||
ket = nhn (sRae "kuka" "keinä")} in
|
||||
ku = mkN "kuka" "keitä" ; -----
|
||||
ket = mkN "kuka" "keitä"} in
|
||||
table {
|
||||
Sg => table {
|
||||
Nom => "kuka" ;
|
||||
@@ -301,5 +301,16 @@ oper
|
||||
} ;
|
||||
|
||||
|
||||
oper
|
||||
makeNP : N -> Number -> CatFin.NP ;
|
||||
makeNP noun num = {
|
||||
s = \\c => noun.s ! NCase num (npform2case num c) ;
|
||||
a = agrP3 num ;
|
||||
isPron = False ;
|
||||
lock_NP = <>
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -103,7 +103,8 @@ renameIdentTerm env@(act,imps) t =
|
||||
[] -> alt c ("constant not found:" +++ prt c)
|
||||
fs -> case nub [f c | f <- fs] of
|
||||
[tr] -> return tr
|
||||
ts -> return $ Strs $ (cnIC "#conflict") : reverse ts
|
||||
ts@(t:_) -> trace ("WARNING: conflict" +++ unwords (map prt ts)) (return t)
|
||||
---- ts -> return $ Strs $ (cnIC "#conflict") : reverse ts
|
||||
-- a warning will be generated in CheckGrammar, and the head returned
|
||||
-- in next V:
|
||||
-- Bad $ "conflicting imports:" +++ unwords (map prt ts)
|
||||
|
||||
Reference in New Issue
Block a user