mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-14 07:19:31 -06:00
Merge Estonian v1.0.0-alpha from Kaarel Kaljurand
This commit is contained in:
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -52,7 +52,7 @@ resource HjkEst = open ResEst, Prelude, Predef in {
|
||||
-- IVa additionally needs the stem vowel.
|
||||
hjk_type_IVb_audit,
|
||||
hjk_type_IVb_audit1 : Str -> Str -> NForms ;
|
||||
|
||||
|
||||
hjk_type_VI_link2 : Str -> Str -> NForms ;
|
||||
|
||||
hjk_type2 : Str -> Str -> NForms ;
|
||||
@@ -85,6 +85,7 @@ resource HjkEst = open ResEst, Prelude, Predef in {
|
||||
nForms6 x (x+v_g) (x+v_g+"t") (x+v_g+"sse") (x+v_g+"te") (x+v_pl+"id") ;
|
||||
|
||||
-- TODO: clean this up
|
||||
-- 2nd argument is sg gen without the final vowel
|
||||
hjk_type_IVb_audit1 x y =
|
||||
nForms6 x (y + "i") (y+"it") (y+"isse") (y+"ite") (y+"eid") ;
|
||||
|
||||
@@ -140,6 +141,10 @@ resource HjkEst = open ResEst, Prelude, Predef in {
|
||||
in
|
||||
nForms6 x (f+"e") (f+"t") (f+"esse") (f+"te") (f+"i") ;
|
||||
|
||||
-- Examples:
|
||||
-- siid, link, president, romanss, tendents
|
||||
-- rostbiif, portfell, seersant, impulss
|
||||
-- TODO: remove: never called
|
||||
hjk_type_VI_link x =
|
||||
let
|
||||
x_n : Str = weaker_noun x
|
||||
@@ -153,6 +158,7 @@ resource HjkEst = open ResEst, Prelude, Predef in {
|
||||
-- TODO: think about it
|
||||
e : Str = case i of {
|
||||
"a" => "asid" ; -- pikk/pika -> pikkasid
|
||||
"e" => "i" ; -- sulg/sule -> sulgi
|
||||
_ => "e"
|
||||
}
|
||||
in
|
||||
@@ -180,11 +186,11 @@ resource HjkEst = open ResEst, Prelude, Predef in {
|
||||
in
|
||||
nForms6 x x_t (x+"t") (x_t+"sse") (x+"te") (x_t+"id") ;
|
||||
|
||||
--Identical to the above, just taking 2 arguments (nom + gen)
|
||||
--There are 67 nouns in test cases where stronger_noun gets it wrong
|
||||
--handles liige:liikme as well
|
||||
--Identical to the above, just taking 2 arguments (nom + gen)
|
||||
--There are 67 nouns in test cases where stronger_noun gets it wrong
|
||||
--handles liige:liikme as well
|
||||
hjk_type_VII_touge2 : (_,_ : Str) -> NForms ;
|
||||
hjk_type_VII_touge2 touge touke =
|
||||
hjk_type_VII_touge2 touge touke =
|
||||
let
|
||||
liikme : Str = case touke of {
|
||||
_ + "me" => touke ;
|
||||
@@ -404,6 +410,7 @@ resource HjkEst = open ResEst, Prelude, Predef in {
|
||||
<_, _ + #v + "s", _>
|
||||
=> hjk_type_Va_otsene x ;
|
||||
|
||||
-- TODO: only for adjectives?
|
||||
<_, _ + ("v"|"tav"), _>
|
||||
=> hjk_type_IVb_audit x "a" ;
|
||||
|
||||
@@ -532,7 +539,7 @@ resource HjkEst = open ResEst, Prelude, Predef in {
|
||||
#c + #v + #c + #v => S21 ;
|
||||
#c + #v + #v + #v => S22 ; -- muie, neiu, riie
|
||||
? + ? + ? + ? => S1 ;
|
||||
-- all 5-letters
|
||||
-- at least 5-letters
|
||||
_ + #c + "ia" => S2 ; -- aaria, minia, orgia, kirurgia, nostalgia
|
||||
#v + #c + #c + #v + #v => S1 ; -- armee
|
||||
#c + #v + #c + #v + #v => S1 ; -- depoo
|
||||
@@ -559,7 +566,7 @@ resource HjkEst = open ResEst, Prelude, Predef in {
|
||||
_ + ? + #v + #vv + #c => S1 ; -- -ioos, kruiis
|
||||
#c + #c + #v + #v + #v + #c => S2 ; -- flaier
|
||||
_ + ? + #c + #v + #c + #v => S3 ; -- oluline
|
||||
-- all 6-letters
|
||||
-- at least 6-letters
|
||||
#v + #c + #c + #v + #v + #c => S1 ; -- aplaus
|
||||
#v + #c + #c + #v + #c + #c => S2 ; -- astang, ellips
|
||||
#c + #vv + #c + #v + #v => S23 ; -- muumia, raadio, TODO: exclude 'vaarao'
|
||||
@@ -570,15 +577,18 @@ resource HjkEst = open ResEst, Prelude, Predef in {
|
||||
#v + #c + #v + #c + #v + #v => S1 ; -- agoraa
|
||||
#c + #v + #c + #v + #c + #c => S2 ;
|
||||
#c + #v + #c + #v + #c + #v => S3 ;
|
||||
#v + #c + #v + #c + #c + #v => S3 ; -- yheksa
|
||||
_ + #c + #v + #vv + #c + #v => S2 ; -- koaala
|
||||
_ + #c + #v + #v + #v + #c + #v => S3 ; -- saiake
|
||||
#v + #c + #v + #c + #c + #v => S3 ; -- üheksa
|
||||
#c + #v + #c + #c + #v + #c => S2 ; -- rektor
|
||||
#c + #v + #c + #v + #v + #c => S2 ; -- paleus
|
||||
#c + #v + #v + #c + #v + #c => S2 ; -- meeter, reegel
|
||||
#v + #v + #c + #c + #v + #c => S2 ; -- aastak
|
||||
#v + #c + #c + #c + #v + #c => S2 ; -- andmik
|
||||
#v + #c + #c + #v + #c + #v => S3 ;
|
||||
_ + #v + #v + #v + #c + #v + #v => S1 ; -- meierei
|
||||
_ + #v + #c + #v + #c + #v + #c => S3 ; -- alevik, elanik
|
||||
-- all 7-letters
|
||||
-- at least 7-letters
|
||||
_ + ? + ? + #c + #vv + #c => S1 ; -- double vowel in the last syllable: bensiin, benseen, bensool
|
||||
#c + #v + #v + #c + #c + #v + #c => S2 ; -- jooksik
|
||||
#c + #v + #c + #c + #c + #v + #c => S2 ; -- hurtsik
|
||||
@@ -605,6 +615,7 @@ resource HjkEst = open ResEst, Prelude, Predef in {
|
||||
_ + #v + #v + #c + #v + #c + #c + #v + #c => S3 ; -- ainestik
|
||||
_ + #c + #c + #v + #c + #c + #v + #c + #c => S3 ; -- ampersand
|
||||
_ + #c + #v + #c + #v + #c + #c => S1 ; -- dividend
|
||||
_ + #v + #vv => S1 ; -- buržuaa
|
||||
_ + #v + #c + #c + #c + #v + #v => S1 ; -- displei
|
||||
_ + #c + #v + #c + #c + #v + #v => S1 ; -- politsei
|
||||
_ + #c + #v + #c + #v + #v => S1 ; -- defilee, kompanii
|
||||
|
||||
@@ -9,7 +9,7 @@ lin
|
||||
alas_Interj = ss "paraku" ;
|
||||
answer_V2S = mkV2 (mkV "vastama" "vastata") callative ;
|
||||
apartment_N = mkN "korter" ;
|
||||
apple_N = mkN "õun" "õuna" "õuna";
|
||||
apple_N = mkN "õun" "õuna" "õuna" "õunu" ;
|
||||
art_N = mkN "kunst" ;
|
||||
ask_V2Q = mkV2 (mkV "küsima") (casePrep ablative) ;
|
||||
baby_N = mkN "beebi" ;
|
||||
@@ -22,7 +22,7 @@ lin
|
||||
big_A = mkA (mkN "suur" "suure" "suurt" "suurde" "suurte" "suuri");
|
||||
bike_N = mkN "ratas" "ratta" "ratast" ;
|
||||
bird_N = mkN "lind" "linnu" "lindu" ;
|
||||
black_A = mkA (mkN "must" "musta" "musta") ;
|
||||
black_A = mkA (mkN "must" "musta" "musta") "mustem" "musteim" ;
|
||||
blue_A = mkA "sinine" ;
|
||||
boat_N = mkN "paat" ;
|
||||
book_N = mkN "raamat" "raamatu" "raamatut" "raamatusse" "raamatute" "raamatuid" ;
|
||||
@@ -48,10 +48,10 @@ lin
|
||||
church_N = mkN "kirik" ;
|
||||
city_N = mkN "linn" "linna" "linna" "linna" "linnade" "linnu" ;
|
||||
clean_A = mkA (mkN "puhas" "puhta" "puhast" "puhtasse" "puhaste" "puhtaid");
|
||||
clever_A = mkA (mkN "tark" "targa" "tarka") ;
|
||||
clever_A = mkA (mkN "tark" "targa" "tarka") "targem" "targeim" ;
|
||||
close_V2 = mkV2 (mkV "sulgema") ;
|
||||
coat_N = mkN "mantel" ;
|
||||
cold_A = mkA (mkN "külm" "külma" "külma") ;
|
||||
cold_A = mkA (mkN "külm" "külma" "külma") "külmem" "külmim" ;
|
||||
come_V = mkV "tulema" ;
|
||||
computer_N = mkN "arvuti" ;
|
||||
country_N = mkN "maa" ;
|
||||
@@ -66,11 +66,11 @@ lin
|
||||
distance_N3 = mkN3 (mkN "kaugus") celative (casePrep terminative) ;
|
||||
doctor_N = mkN "arst" ;
|
||||
dog_N = mkN "koer" "koera" "koera" ;
|
||||
door_N = mkN "uks" "ukse" "ust" ;
|
||||
door_N = mkN "uks" "ukse" "ust" "uksesse" "uste" "uksi" ;
|
||||
drink_V2 = mkV2 (mkV "jooma") cpartitive ;
|
||||
easy_A2V = mkA2 (mkA (mkN "lihtne" "lihtsa" "lihtsat")) callative ;
|
||||
easy_A2V = mkA2 (mkA (mkN "lihtne" "lihtsa" "lihtsat" "lihtsasse" "lihtsate" "lihtsaid")) callative ;
|
||||
eat_V2 = mkV2 (mkV "sööma") cpartitive ;
|
||||
empty_A = mkA (mkN "tühi" "tühja" "tühja" "tühja" "tühjade" "tühje") ;
|
||||
empty_A = mkA (mkN "tühi" "tühja" "tühja" "tühja" "tühjade" "tühje") "tühjem" "tühjeim" ;
|
||||
enemy_N = mkN "vaenlane" ;
|
||||
factory_N = mkN "tehas" ;
|
||||
father_N2 = mkN2 (mkN "isa") ;
|
||||
@@ -81,13 +81,13 @@ lin
|
||||
forget_V2 = mkV2 (mkV "unustama") ;
|
||||
fridge_N = mkN "külm" (mkN "kapp") ;
|
||||
friend_N = mkN "sõber" "sõbra" "sõpra" "sõpra" "sõprade" "sõpru" ;
|
||||
fruit_N = mkN "puu" (mkN "vili" "vilja" "vilja") ;
|
||||
fruit_N = mkN "puu" (mkN "vili" "vilja" "vilja" "vilja" "viljade" "vilju") ;
|
||||
fun_AV = mkAV (mkA (mkN "lõbus" "lõbusa" "lõbusat")) ;
|
||||
garden_N = mkN "aed" "aia" "aeda";
|
||||
girl_N = mkN "tüdruk" "tüdruku" "tüdrukut" ;
|
||||
glove_N = mkN "kinnas" "kinda" "kinnast" ;
|
||||
gold_N = mkN "kuld" "kulla" "kulda" ;
|
||||
good_A = mkA (mkN "hea") "parem" "parim" ;
|
||||
good_A = mkA (mkN "hea" "hea" "head" "häid") "parem" "parim" ;
|
||||
go_V = vMinema ; -- irregular
|
||||
green_A = mkA "roheline" ;
|
||||
harbour_N = mkN "sadam" "sadama" "sadamat" ;
|
||||
@@ -97,24 +97,24 @@ lin
|
||||
hill_N = mkN "küngas" "künka" "küngast" "künkasse" "küngaste" "künkaid" ;
|
||||
hope_VS = mkVS (mkV "lootma") ;
|
||||
horse_N = mkN "hobune" ;
|
||||
hot_A = mkA (mkN "kuum" "kuuma" "kuuma") ;
|
||||
hot_A = mkA (mkN "kuum" "kuuma" "kuuma") "kuumem" "kuumim" ;
|
||||
house_N = mkN "maja" ;
|
||||
important_A = mkA (mkN "tähtis" "tähtsa" "tähtsat") ;
|
||||
industry_N = mkN "tööstus" ;
|
||||
iron_N = mkN "raud" "raua" "rauda" ;
|
||||
king_N = mkN "kuningas" ;
|
||||
know_VS = mkVS know_V ;
|
||||
know_VQ = mkVQ know_V ;
|
||||
know_VS = mkVS teadma ;
|
||||
know_VQ = mkVQ teadma ;
|
||||
know_V2 = mkV2 (mkV "tundma") ;
|
||||
lake_N = mkN "järv" "järve" "järve" ;
|
||||
lamp_N = mkN "lamp" ;
|
||||
learn_V2 = mkV2 (mkV "õppima") ;
|
||||
leather_N = skin_N ;
|
||||
leave_V2 = mkV2 (mkV "jätma") ;
|
||||
like_V2 = mkV2 (mkV "lugu" (mkV "pidama" "pidada" "peab" "peetakse")) celative ;
|
||||
like_V2 = mkV2 (mkV "lugu" pidama) celative ;
|
||||
listen_V2 = mkV2 (mkV "kuulama" "kuulata") partitive ;
|
||||
live_V = mkV "elama" ;
|
||||
long_A = mkA (mkN "pikk" "pika" "pikka") ;
|
||||
long_A = mkA (mkN "pikk" "pika" "pikka") "pikem" "pikim" ;
|
||||
lose_V2 = mkV2 (mkV "kaotama") ;
|
||||
love_N = mkN "armastus" ;
|
||||
love_V2 = mkV2 (mkV "armastama") partitive ;
|
||||
@@ -126,7 +126,7 @@ lin
|
||||
mother_N2 = mkN2 (mkN "ema") ;
|
||||
mountain_N = mkN "mägi" "mäe" "mäge" "mäkke" "mägede" "mägesid" ;
|
||||
music_N = mkN "muusika" ;
|
||||
narrow_A = mkA "kitsas" ;
|
||||
narrow_A = mkA (mkN "kitsas" "kitsa" "kitsast" "kitsasse" "kitsaste" "kitsaid") ;
|
||||
new_A = mkA (mkN "uus" "uue" "uut" "uude" "uute" "uusi") "uuem" "uusim" ;
|
||||
newspaper_N = mkN "aja" (mkN "leht" "lehe" "lehte") ;
|
||||
oil_N = mkN "õli" ;
|
||||
@@ -150,7 +150,7 @@ lin
|
||||
red_A = mkA "punane" ;
|
||||
religion_N = mkN "usk" "usu" "usku" ;
|
||||
restaurant_N = mkN "restoran" ;
|
||||
river_N = mkN "jõgi" "jõe" "jõge" ;
|
||||
river_N = mkN "jõgi" "jõe" "jõge" "jõkke" "jõgede" "jõgesid" ;
|
||||
rock_N = mkN "kalju" ;
|
||||
roof_N = mkN "katus" ;
|
||||
rubber_N = mkN "kumm" ;
|
||||
@@ -158,10 +158,10 @@ lin
|
||||
say_VS = mkVS (mkV "ütlema") ;
|
||||
school_N = mkN "kool" ;
|
||||
science_N = mkN "teadus" ;
|
||||
sea_N = mkN "meri" "mere" "merd" ;
|
||||
sea_N = mkN "meri" "mere" "merd" "merre" "merede" "meresid" ;
|
||||
seek_V2 = mkV2 (mkV "otsima") cpartitive ;
|
||||
see_V2 = mkV2 (mkV "nägema" "näha") ;
|
||||
sell_V3 = mkV3 (mkV "müüma") accPrep callative ;
|
||||
sell_V3 = mkV3 (mkV "müüma" "müüa" "müüb" "müüakse" "müüge" "müüs" "müünud" "müüdud") accPrep callative ;
|
||||
send_V3 = mkV3 (mkV "saatma") accPrep callative ;
|
||||
sheep_N = mkN "lammas" "lamba" "lammast" ;
|
||||
ship_N = mkN "laev" "laeva" "laeva" ;
|
||||
@@ -175,27 +175,27 @@ lin
|
||||
small_A = mkA (mkN "väike" "väikse" "väikest" "väiksesse" "väikeste" "väikseid") ;
|
||||
snake_N = mkN "uss" ;
|
||||
sock_N = mkN "sukk" "suka" "sukka" ;
|
||||
speak_V2 = mkV2 talk_V cpartitive ;
|
||||
speak_V2 = mkV2 raakima cpartitive ;
|
||||
star_N = mkN "täht" "tähe" "tähte" ;
|
||||
steel_N = mkN "teras" ;
|
||||
stone_N = mkN "kivi" ;
|
||||
stove_N = mkN "ahi" "ahju" "ahju" ;
|
||||
student_N = mkN "tudeng" ;
|
||||
stove_N = mkN "ahi" "ahju" "ahju" "ahju" "ahjude" "ahje" ;
|
||||
student_N = mkN "tudeng" "tudengi" "tudengit" "tudengisse" "tudengite" "tudengeid" ;
|
||||
stupid_A = mkA "loll" ;
|
||||
sun_N = mkN "päike" "päikse" "päikest" ;
|
||||
sun_N = mkN "päike" "päikse" "päikest" "päiksesse" "päikeste" "päikseid" ;
|
||||
switch8off_V2 = mkV2 (mkV "välja" (mkV "lülitama")) ;
|
||||
switch8on_V2 = mkV2 (mkV "sisse" (mkV "lülitama")) ;
|
||||
table_N = mkN "laud" "laua" "lauda" ;
|
||||
talk_V3 = mkV3 talk_V callative celative ;
|
||||
talk_V3 = mkV3 raakima callative celative ;
|
||||
teacher_N = mkN "õpetaja" ;
|
||||
teach_V2 = mkV2 (mkV "õpetama") ;
|
||||
television_N = mkN "televisioon" ;
|
||||
thick_A = mkA (mkN "paks" "paksu" "paksu") ;
|
||||
thick_A = mkA (mkN "paks" "paksu" "paksu") "paksem" "pakseim" ;
|
||||
thin_A = mkA "õhuke" ;
|
||||
train_N = mkN "rong" ;
|
||||
travel_V = mkV "reisima" ;
|
||||
tree_N = mkN "puu" ;
|
||||
ugly_A = mkA (mkN "kole" "koleda" "koledat") ;
|
||||
ugly_A = mkA (mkN "kole" "koleda") ;
|
||||
understand_V2 = mkV2 (mkV "aru" (mkV "saama")) celative ;
|
||||
university_N = mkN "ülikool" ;
|
||||
village_N = mkN "küla" ;
|
||||
@@ -204,16 +204,16 @@ lin
|
||||
warm_A = mkA (mkN "soe" "sooja" "sooja" "sooja" "soojade" "soojasid") "soojem" "soojim" ;
|
||||
war_N = mkN "sõda" "sõja" "sõda" ;
|
||||
watch_V2 = mkV2 (mkV "vaatama" "vaadata") cpartitive ;
|
||||
water_N = mkN "vesi" "vee" "vett" ;
|
||||
water_N = mkN "vesi" "vee" "vett" "vette" "vete" "vesi" ;
|
||||
white_A = mkA "valge" ;
|
||||
window_N = mkN "aken" "akna" "akent" ;
|
||||
window_N = mkN "aken" "akna" "akent" "aknasse" "akende" "aknaid" ;
|
||||
wine_N = mkN "vein" ;
|
||||
win_V2 = mkV2 (mkV "võitma") ;
|
||||
woman_N = mkN "naine" "naise" "naist" "naisesse" "naiste" "naisi" ;
|
||||
wonder_VQ = mkVQ (mkV "arutlema" "arutleda") ; -- TODO
|
||||
wood_N = mkN "puu" ;
|
||||
write_V2 = mkV2 (mkV "kirjutama") ;
|
||||
yellow_A = mkA "kollane" ;
|
||||
yellow_A = mkA (mkN "kollane" "kollase" "kollast" "kollasesse" "kollaste" "kollaseid") ;
|
||||
young_A = mkA (mkN "noor" "noore" "noort") ;
|
||||
|
||||
do_V2 = mkV2 (mkV "tegema" "teha") ;
|
||||
@@ -230,47 +230,47 @@ lin
|
||||
right_Ord = mkOrd1 (mkN "parem" "parema" "paremat") ;
|
||||
far_Adv = mkAdv "kaugel" ;
|
||||
correct_A = mkA (mkN "õige" "õige" "õiget" "õigesse" "õigete" "õigeid") ;
|
||||
dry_A = mkA (mkN "kuiv" "kuiva" "kuiva") ;
|
||||
dry_A = mkA (mkN "kuiv" "kuiva" "kuiva") "kuivem" "kuiveim" ;
|
||||
dull_A = mkA "igav" ;
|
||||
full_A = mkA (mkN "täis" "täie" "täit") "täiem" "täiim" Invariable ; -- 'täis' is one of the non-inflecting adjectives
|
||||
full_A = mkA (mkN "täis" "täie" "täit" "täide" "täied" "täite") "täiem" "täiim" Invariable ; -- 'täis' is one of the non-inflecting adjectives
|
||||
heavy_A = mkA "raske" ;
|
||||
near_A = mkA "lähedane" ;
|
||||
rotten_A = mkA "mäda" ;
|
||||
round_A = mkA "ümmargune" ;
|
||||
sharp_A = mkA "terav" ;
|
||||
smooth_A = mkA (mkN "sile" "sileda" "siledat" "siledasse" "siledate" "siledaid") ;
|
||||
smooth_A = mkA (mkN "sile" "sileda") ;
|
||||
straight_A = mkA "sirge" ;
|
||||
wet_A = mkA (mkN "märg" "märja" "märga") ;
|
||||
wide_A = mkA (mkN "lai" "laia" "laia") ;
|
||||
animal_N = mkN "loom" "looma" "looma" ;
|
||||
wet_A = mkA (mkN "märg" "märja" "märga") "märjem" "märjeim" ;
|
||||
wide_A = mkA (mkN "lai" "laia" "laia" "laia" "laiade" "laiu") "laiem" "laieim" ;
|
||||
animal_N = mkN "loom" "looma" "looma" "loomi" ;
|
||||
ashes_N = mkN "tuhk" "tuha" "tuhka" ;
|
||||
back_N = mkN "selg" "selja" "selga" ;
|
||||
bark_N = mkN "koor" "koore" "koort" ;
|
||||
bark_N = mkN "koor" "koore" "koort" "koorde" "koorte" "koori" ;
|
||||
belly_N = mkN "kõht" "kõhu" "kõhtu" ;
|
||||
blood_N = mkN "veri" "vere" "verd" "verre" "verede" "veresid" ;
|
||||
bone_N = mkN "luu" ;
|
||||
breast_N = mkN "rind" "rinna" "rinda" ;
|
||||
cloud_N = mkN "pilv" "pilve" "pilve" ;
|
||||
cloud_N = mkN "pilv" "pilve" "pilve" "pilvi" ;
|
||||
day_N = mkN "päev" "päeva" "päeva" ;
|
||||
dust_N = mkN "tolm" "tolmu" "tolmu" ;
|
||||
ear_N = mkN "kõrv" "kõrva" "kõrva" ;
|
||||
earth_N = mkN "maa" ;
|
||||
earth_N = mkN "maa" "maa" "maad" "maid" ;
|
||||
egg_N = mkN "muna" ;
|
||||
eye_N = mkN "silm" "silma" "silma" ;
|
||||
eye_N = mkN "silm" "silma" "silma" "silmi" ;
|
||||
fat_N = mkN "rasv" "rasva" "rasva" ;
|
||||
feather_N = mkN "sulg" "sule" "sulge" ;
|
||||
fingernail_N = mkN "küüs" "küüne" "küünt" ;
|
||||
fingernail_N = mkN "küüs" "küüne" "küünt" "küünde" "küünte" "küüsi" ;
|
||||
fire_N = mkN "tuli" "tule" "tuld" "tulle" "tulede" "tulesid" ;
|
||||
flower_N = mkN "lill" "lille" "lille" ;
|
||||
fog_N = mkN "udu" ;
|
||||
foot_N = mkN "jalg" "jala" "jalga" ;
|
||||
foot_N = mkN "jalg" "jala" "jalga" "jalgu" ;
|
||||
forest_N = mkN "mets" "metsa" "metsa" ;
|
||||
grass_N = mkN "rohi" "rohu" "rohtu" ;
|
||||
grass_N = mkN "rohi" "rohu" "rohtu" "rohtu" "rohtude" "rohtusid" ;
|
||||
guts_N = mkN "soolestik" ;
|
||||
hair_N = mkN "juuksed" "juuste" "juukseid" "juustesse" "juuste" "juukseid" ; -- TODO: plural
|
||||
hand_N = mkN "käsi" "käe" "kätt" ;
|
||||
head_N = mkN "pea" ;
|
||||
heart_N = mkN "süda" "südame" "südant" ;
|
||||
hand_N = mkN "käsi" "käe" "kätt" "kätte" "käte" "käsi" ;
|
||||
head_N = mkN "pea" "pea" "pead" "päid" ;
|
||||
heart_N = mkN "süda" "südame" "südant" "südamesse" "südamete" "südameid" ;
|
||||
horn_N = mkN "sarv" "sarve" "sarve" ;
|
||||
husband_N = man_N ;
|
||||
ice_N = mkN "jää" ;
|
||||
@@ -278,30 +278,30 @@ lin
|
||||
leaf_N = mkN "leht" "lehe" "lehte" ;
|
||||
leg_N = mkN "jalg" "jala" "jalga" ;
|
||||
liver_N = mkN "maks" "maksa" "maksa" ;
|
||||
louse_N = mkN "täi" ;
|
||||
mouth_N = mkN "suu" ;
|
||||
name_N = mkN "nimi" "nime" "nime" ;
|
||||
louse_N = mkN "täi" "täi" "täid" ;
|
||||
mouth_N = mkN "suu" "suu" "suud" "suhu" "suude" "suusid" ;
|
||||
name_N = mkN "nimi" "nime" "nime" "nimesse" "nimede" "nimesid" ;
|
||||
neck_N = mkN "kael" "kaela" "kaela" ;
|
||||
night_N = mkN "öö" ;
|
||||
nose_N = mkN "nina" ;
|
||||
person_N = mkN "inimene" ;
|
||||
person_N = mkN "inimene" "inimese" "inimest" "inimesse" "inimeste" "inimesi" ;
|
||||
rain_N = mkN "vihm" "vihma" "vihma" ;
|
||||
road_N = mkN "tee" ;
|
||||
root_N = mkN "juur" "juure" "juurt" ;
|
||||
rope_N = mkN "köis" "köie" "köit" ;
|
||||
rope_N = mkN "köis" "köie" "köit" "köiesse" "köite" "köisi" ;
|
||||
salt_N = mkN "sool" "soola" "soola" ;
|
||||
sand_N = mkN "liiv" "liiva" "liiva" ;
|
||||
seed_N = mkN "seeme" "seemne" "seemet" ;
|
||||
seed_N = mkN "seeme" "seemne" "seemet" "seemnesse" "seemnete" "seemneid" ;
|
||||
skin_N = mkN "nahk" "naha" "nahka" ;
|
||||
sky_N = mkN "taevas" "taeva" "taevast" ;
|
||||
smoke_N = mkN "suits" "suitsu" "suitsu" ;
|
||||
snow_N = mkN "lumi" "lume" "lund" ;
|
||||
smoke_N = mkN "suits" "suitsu" "suitsu" "suitsu" "suitsude" "suitse" ;
|
||||
snow_N = mkN "lumi" "lume" "lund" "lumme" "lumede" "lumesid" ;
|
||||
stick_N = mkN "kepp" ;
|
||||
tail_N = mkN "saba" ;
|
||||
tongue_N = mkN "keel" "keele" "keelt" ;
|
||||
tongue_N = mkN "keel" "keele" "keelt" "keelde" "keelte" "keeli" ;
|
||||
tooth_N = mkN "hammas" "hamba" "hammast" ;
|
||||
wife_N = mkN "naine" ;
|
||||
wind_N = mkN "tuul" "tuule" "tuult" ;
|
||||
wife_N = mkN "naine" "naise" "naist" "naisesse" "naiste" "naisi" ;
|
||||
wind_N = mkN "tuul" "tuule" "tuult" "tuulde" "tuulte" "tuuli" ;
|
||||
wing_N = mkN "tiib" "tiiva" "tiiba" ;
|
||||
worm_N = mkN "uss" ;
|
||||
year_N = mkN "aasta" ;
|
||||
@@ -321,7 +321,7 @@ lin
|
||||
give_V3 = mkV3 (mkV "andma") accPrep callative ;
|
||||
hit_V2 = mkV2 (mkV "lööma") cpartitive ;
|
||||
hold_V2 = mkV2 (mkV "hoidma") cpartitive ;
|
||||
hunt_V2 = mkV2 (mkV "jahti" (mkV "pidama")) cpartitive ;
|
||||
hunt_V2 = mkV2 (mkV "jahti" pidama) cpartitive ;
|
||||
kill_V2 = mkV2 (mkV "tapma") ;
|
||||
laugh_V = mkV "naerma" ;
|
||||
lie_V = mkV "lamama" ; -- TODO: maybe: valetama
|
||||
@@ -329,7 +329,7 @@ lin
|
||||
pull_V2 = mkV2 (mkV "tõmbama" "tõmmata") ;
|
||||
push_V2 = mkV2 (mkV "suruma") ;
|
||||
rub_V2 = mkV2 (mkV "hõõruma") cpartitive ;
|
||||
scratch_V2 = mkV2 (mkV "kraapima") cpartitive ;
|
||||
scratch_V2 = mkV2 (mkV "kraapima" "kraapida" "kraabib") cpartitive ;
|
||||
sew_V = mkV "külvama" "külvata" ;
|
||||
sing_V = mkV "laulma" "laulda" "laulab" "lauldakse" ;
|
||||
sit_V = mkV "istuma" ;
|
||||
@@ -361,7 +361,7 @@ lin
|
||||
ready_A = mkA (mkN "valmis" "valmi" "valmit" "valmisse" "valmite" "valmeid") "valmim" "valmeim" Invariable ; -- 'valmis' is one of the non-inflecting adjectives
|
||||
reason_N = mkN "põhjus" ;
|
||||
today_Adv = mkAdv "täna" ;
|
||||
uncertain_A = mkA (mkN "ebakindel" "ebakindla" "ebakindlat") ;
|
||||
uncertain_A = mkA (mkN "ebakindel" "ebakindla" "ebakindlat" "ebakindlasse" "ebakindlate" "ebakindlaid") ;
|
||||
|
||||
|
||||
oper
|
||||
@@ -371,7 +371,8 @@ lin
|
||||
ctranslative = casePrep translative ;
|
||||
celative = casePrep elative ;
|
||||
callative = casePrep allative ;
|
||||
know_V = (mkV "teadma" "teada" "teab") ;
|
||||
talk_V = mkV "rääkima" "rääkida" "räägib" ;
|
||||
teadma = mkV "teadma" "teada" "teab" ;
|
||||
raakima = mkV "rääkima" "rääkida" "räägib" ;
|
||||
pidama = mkV "pidama" "pidada" "peab" "peetakse" ;
|
||||
|
||||
} ;
|
||||
|
||||
@@ -336,53 +336,92 @@ oper
|
||||
s = \\c => oma.s ! c + tunto.s ! c ; lock_N = <>
|
||||
} ; ---- TODO: oma in possessive suffix forms
|
||||
|
||||
nForms2 : (_,_ : Str) -> NForms = \link,lingi ->
|
||||
|
||||
-- This rule uses the additional information that can be derived from the
|
||||
-- singular genitive:
|
||||
-- - stem vowel (the sg gen always ends with a vowel)
|
||||
-- - e-deletion (laager/laagri vs paber/paberi)
|
||||
-- - adjectives with different genitive ending compared to nouns
|
||||
-- vahe/vaheda -> vahedat
|
||||
-- - type VII (tõuge)
|
||||
nForms2 : (_,_ : Str) -> NForms = \link,lingi ->
|
||||
let
|
||||
i = last lingi ;
|
||||
reegl = init lingi ;
|
||||
in
|
||||
case <link,lingi> of {
|
||||
<_ + "el", _ + #c + "li"> => hjk_type_IVb_audit1 link reegl ;
|
||||
<_ + "er", _ + #c + "ri"> => hjk_type_IVb_audit1 link reegl ;
|
||||
case <link,lingi> of {
|
||||
-- e-deletion
|
||||
<_ + #c + "el", _ + #c + "li"> => hjk_type_IVb_audit1 link reegl ;
|
||||
<_ + #c + "er", _ + #c + "ri"> => hjk_type_IVb_audit1 link reegl ;
|
||||
<_ + #c + "el", _ + #c + "eli"> => hjk_type_IVb_audit link i ;
|
||||
<_ + #c + "er", _ + #c + "eri"> => hjk_type_IVb_audit link i ;
|
||||
|
||||
<_ + "be", _ + "pe"> => hjk_type_VII_touge2 link lingi ;
|
||||
<_ + "de", _ + "te"> => hjk_type_VII_touge2 link lingi ;
|
||||
<_ + "ge", _ + "ke"> => hjk_type_VII_touge2 link lingi ;
|
||||
<_ + "pe", _ + "ppe"> => hjk_type_VII_touge2 link lingi ;
|
||||
<_ + "te", _ + "tte"> => hjk_type_VII_touge2 link lingi ;
|
||||
<_ + "ke", _ + "kke"> => hjk_type_VII_touge2 link lingi ;
|
||||
<_ + "nne", _ + "nde"> => hjk_type_VII_touge2 link lingi ;
|
||||
-- This applies only to adjectives.
|
||||
-- If genitive just adds 'da' to the nominative, then construct
|
||||
-- the paradigm using IVa_aasta, giving it the genitive as the argument.
|
||||
-- We assume here that the the nominative is overriten by the calling rule.
|
||||
-- Example: vahe, vaheda, vahedaT, vahedaSSE, vahedaTE, vahedaID
|
||||
<_ + "e", _ + "eda"> => hjk_type_IVa_aasta lingi ;
|
||||
|
||||
--below 3 don't add much, could just delete
|
||||
--t6uge recognition is easy, because that doesn't introduce lot of other errors
|
||||
--but probably pointless to fill this with all cases
|
||||
<_ + "e", _ + #c + "me"> => hjk_type_VII_touge2 link lingi ;
|
||||
<_ + "se", _ + "ske"> => hjk_type_VII_touge2 link lingi ;
|
||||
<_ + "re", _ + "rde"> => hjk_type_VII_touge2 link lingi ;
|
||||
<_ + #v + "e", _+"de"> => hjk_type_VII_touge2 link lingi ; --riie:riide
|
||||
-- More specific VII rules (which work reliably)
|
||||
-- These cannot be easily integrated into 'stronger'.
|
||||
<_ + "e", _ + #c + "me"> => hjk_type_VII_touge2 link lingi ;
|
||||
<_ + "se", _ + "ske"> => hjk_type_VII_touge2 link lingi ;
|
||||
<_ + "re", _ + "rde"> => hjk_type_VII_touge2 link lingi ;
|
||||
<_ + #v + "e", _ + "de"> => hjk_type_VII_touge2 link lingi ;--riie:riide
|
||||
|
||||
--improved total count a little, but introduced new errors
|
||||
--not recommended, not stable and productive word class
|
||||
--<_ + "i", _ + "e"> => dMeri link lingi ;
|
||||
|
||||
--introduced a couple of errors, "aine" recognized as "kõne"
|
||||
-- This is not allowed in GF (not linear)
|
||||
--<stronger + "e", stronger + "e"> => hjk_type2 link i ;
|
||||
--<_ + "e", stronger + "e"> => hjk_type_VII_touge2 link lingi ;
|
||||
|
||||
-- General VII rule
|
||||
-- If both forms end with 'e' then we check if the stronger
|
||||
-- form of nominative equals the given genitive. In this case
|
||||
-- there is reason to believe that type VII applies.
|
||||
-- We additionally require that both forms are different.
|
||||
-- TODO: this is not always ortographically visible: makse -> `makse
|
||||
<_ + "e", _ + "e"> =>
|
||||
let
|
||||
stronger = stronger_noun (init link) ;
|
||||
noChange = pbool2bool (Predef.eqStr link lingi) ;
|
||||
equal = pbool2bool (Predef.eqStr stronger reegl)
|
||||
in case <noChange, equal> of {
|
||||
<False, True> => hjk_type_VII_touge2 link lingi ;
|
||||
_ => hjk_type2 link i
|
||||
} ;
|
||||
|
||||
|
||||
-- Some commented out experiments follow
|
||||
--improved total count a little, but introduced new errors
|
||||
--not recommended, not stable and productive word class
|
||||
--<_ + "i", _ + "e"> => dMeri link lingi ;
|
||||
|
||||
--introduced a couple of errors, "aine" recognized as "kõne"
|
||||
--<_ + "ne", _ + "ne"> => hjk_type_III_ratsu link ;
|
||||
|
||||
--heuristics to catch palk:palga but not maakas:maaka (for longer words, same with more ?s)
|
||||
--didn't work, don't try this
|
||||
--<? + ? + #c, ? + ? + #c + #v> => hjk_type_IVb_audit link i ;
|
||||
-- Selecting the correct vowel for IVa_audit.
|
||||
-- visin/visina, pidžin/pidžini
|
||||
-- TODO: we could cover more cases here, e.g. tudeng/tudengi
|
||||
<_ + #c + "in", _ + #c + "in" + #v> =>
|
||||
case (syl_type link) of {
|
||||
S2 => hjk_type_IVb_audit link i ;
|
||||
_ => hjk_type2 link i
|
||||
} ;
|
||||
|
||||
-- catch all calls hjk_type with the correct stem vowel
|
||||
_ => hjk_type2 link i
|
||||
} ;
|
||||
|
||||
nForms3 : (_,_,_ : Str) -> NForms = \tukk,tuku,tukku ->
|
||||
let u = last tuku ;
|
||||
in case <tukk,tuku,tukku> of {
|
||||
--cases handled reliabl(ish) by 1- and 2-arg opers
|
||||
<_+"nd",_,_> => hjk_type tukk ;
|
||||
<_+"el",_,_> => nForms2 tukk tuku ;
|
||||
<_+"er",_,_> => nForms2 tukk tuku ;
|
||||
|
||||
-- koi/koi/koid
|
||||
<_ + #v + #v, _ + #v + #v, _ + #v + #v + "d"> => hjk_type_I_koi tukk ;
|
||||
|
||||
-- ema/ema/ema
|
||||
<_ + #v, _ + #v, _ + #v> => hjk_type_II_ema tukk ;
|
||||
|
||||
--distinguish between hammas and maakas
|
||||
<_+"as",_+"a",_+"ast"> => dHammas tukk tuku ;
|
||||
@@ -393,7 +432,23 @@ oper
|
||||
<_ + "ik", _ + "iku", _ + "ikku"> => hjk_type_VI_imelik tukk ; --imelik:_:imelikku caught here
|
||||
|
||||
<_ + "ud", _ + "u", _ + "ut"> => nForms2 tukk tuku ; -- -nud/-tud participles are not like 'voolik'
|
||||
<_ + #c, _ + #v, _ + #v + "t"> => hjk_type_IVb_audit tukk u ; --voolik:_:voolikut caught here
|
||||
|
||||
-- cases handled reliabl(ish) by 1- and 2-arg opers
|
||||
<_ + ("nd"|"el"|"er"), _, _> => nForms2 tukk tuku ;
|
||||
|
||||
-- Type VI (sg gen and sg part end with a vowel)
|
||||
-- Note that we use the sg part as the argument for the constructor
|
||||
-- because it's more informative than sg nom, compare:
|
||||
-- link/lingi/linki
|
||||
-- kabinet/kabineti/kabinetti
|
||||
-- TODO: check that the genitive is actually weaker
|
||||
-- TODO: distinguish between the subtypes of VI
|
||||
-- TODO: do this also in nForms2
|
||||
<_ + #c, _ + #v, _ + #v> => hjk_type_VI_link2 (init tukku) u ;
|
||||
|
||||
-- voolik/vooliku/voolikut
|
||||
<_ + #c, _ + #v, _ + #v + "t"> => hjk_type_IVb_audit tukk u ;
|
||||
|
||||
_ => nForms2 tukk tuku
|
||||
} ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user