forked from GitHub/gf-core
work on Finnish
This commit is contained in:
@@ -79,7 +79,7 @@ lin
|
||||
Swell = PresV swell_V ;
|
||||
Burn = PresV burn_V ;
|
||||
|
||||
Give = PresV3 (dirV3 give_V "to") ;
|
||||
---- Give = PresV3 (dirV3 give_V "to") ;
|
||||
|
||||
-- Say = ;
|
||||
|
||||
|
||||
@@ -10,18 +10,18 @@ flags
|
||||
lin
|
||||
|
||||
airplane_N = regN "lentokone" ;
|
||||
---- answer_V2S = mkV2S (regV "answer") "to" ;
|
||||
answer_V2S = mkV2S (regV "vastata") allative [] [] ;
|
||||
apartment_N = regN "asunto" ;
|
||||
apple_N = regN "omena" ; --- omenia, not omenoita
|
||||
art_N = regN "taide" ;
|
||||
---- ask_V2Q = mkV2Q (regV "ask") [] ;
|
||||
ask_V2Q = mkV2Q (regV "kysyä") ablative [] [] ;
|
||||
baby_N = regN "vauva" ;
|
||||
bad_ADeg = mkADeg (regN "paha") "pahempi" "pahin" ;
|
||||
bank_N = regN "pankki" ;
|
||||
beautiful_ADeg = mkADeg (regN "kaunis") "kauniimpi" "kaunein" ;
|
||||
---- become_VA = mkVA (irregV "become" "became" "become") ;
|
||||
become_VA = mkVA (regV "tulla") translative ;
|
||||
beer_N = regN "olut" ;
|
||||
---- beg_V2V = mkV2V (regDuplV "beg") [] "to" ;
|
||||
beg_V2V = mkV2V (reg2V "pyytää" "pyysi") partitive inf_illative ;
|
||||
big_ADeg = mkADeg (reg2N "suuri" "suuria") "suurempi" "suurin" ;
|
||||
bike_N = nLukko "polkupyörä" ; --- for correct vowel harmony
|
||||
bird_N = regN "lintu" ;
|
||||
@@ -37,7 +37,7 @@ lin
|
||||
broad_ADeg = mkADeg (regN "leveä") "leveämpi" "levein" ;
|
||||
brother_N2 = genN2 (reg3N "veli" "veljen" "veljiä") ; ---- errors in Pl
|
||||
brown_ADeg = mkADeg (regN "ruskea") "ruskeampi" "ruskein" ;
|
||||
--3 butter_N = reg3N "voi" "voin" "voita" ;
|
||||
butter_N = reg3N "voi" "voin" "voita" ; ---- errors in Part
|
||||
buy_V2 = dirV2 (regV "ostaa") ;
|
||||
camera_N = regN "kamera" ;
|
||||
cap_N = regN "lakki" ;
|
||||
@@ -63,18 +63,18 @@ lin
|
||||
cow_N = regN "lehmä" ;
|
||||
die_V = regV "kuolla" ;
|
||||
dirty_ADeg = mkADeg (regN "likainen") "likaisempi" "likaisin" ;
|
||||
---- distance_N3 = mkN3 (regN "distance") "from" "to" ;
|
||||
--3 doctor_N = reg3N "tohtori" "tohtorin" "tohtoreita" ;
|
||||
distance_N3 = mkN3 (regN "etäisyys") elative illative ;
|
||||
doctor_N = reg2N "tohtori" "tohtoreita" ;
|
||||
dog_N = regN "koira" ;
|
||||
door_N = reg2N "ovi" "ovia" ;
|
||||
drink_V2 = dirV2 (regV "juoda") ;
|
||||
---- easy_A2V = mkA2V (regA "easy") "for" ;
|
||||
easy_A2V = mkA2V (regN (mkA "helppo")) allative ;
|
||||
eat_V2 = dirV2 (regV "syödä") ;
|
||||
empty_ADeg = mkADeg (regN "tyhjä") "tyhjempi" "tyhjin" ;
|
||||
enemy_N = regN "vihollinen" ;
|
||||
factory_N = regN "tehdas" ;
|
||||
father_N2 = genN2 (regN "isä") ;
|
||||
---- fear_VS = mkVS (reg2V "pelätä" "pelkäsi") ;
|
||||
fear_VS = mkVS (reg2V "pelätä" "pelkäsi") ;
|
||||
find_V2 = dirV2 (reg2V "löytää" "löysi") ;
|
||||
fish_N = regN "kala" ;
|
||||
floor_N = reg2N "lattia" "lattioita" ;
|
||||
@@ -82,7 +82,7 @@ lin
|
||||
fridge_N = regN "jääkaappi" ;
|
||||
friend_N = regN "ystävä" ;
|
||||
fruit_N = regN "hedelmä" ;
|
||||
---- fun_AV = mkAV (regA "fun") ;
|
||||
fun_AV = mkAV (mkA (regN "hauska")) ;
|
||||
garden_N = regN "puutarha" ;
|
||||
girl_N = regN "tyttö" ;
|
||||
glove_N = regN "käsine" ;
|
||||
@@ -96,7 +96,7 @@ lin
|
||||
have_V2 = dirV2 (regV "omistaa") ; ---- olla
|
||||
hear_V2 = dirV2 (regV "kuulla") ;
|
||||
hill_N = regN "kukkula" ;
|
||||
---- hope_VS = mkVS (regV "toivoa") ;
|
||||
hope_VS = mkVS (regV "toivoa") ;
|
||||
horse_N = regN "hevonen" ;
|
||||
hot_ADeg = mkADeg (regN "kuuma") "kuumempi" "kuumin" ;
|
||||
house_N = regN "talo" ;
|
||||
@@ -134,8 +134,8 @@ lin
|
||||
oil_N = regN "öljy" ;
|
||||
old_ADeg = mkADeg (regN "vanha") "vanhempi" "vanhin" ;
|
||||
open_V2 = dirV2 (regV "avata") ;
|
||||
---- paint_V2A = mkV2A (regV "maalata") [] ;
|
||||
--3 paper_N = reg3N "paperi" "paperin" "papereita" ;
|
||||
paint_V2A = mkV2A (regV "maalata") translative ;
|
||||
paper_N = reg2N "paperi" "papereita" ;
|
||||
peace_N = regN "rauha" ;
|
||||
pen_N = regN "kynä" ;
|
||||
planet_N = regN "planeetta" ;
|
||||
@@ -143,29 +143,29 @@ lin
|
||||
play_V2 = dirV2 (regV "pelata") ; --- leikkiä, soittaa
|
||||
policeman_N = regN "poliisi" ;
|
||||
priest_N = regN "pappi" ;
|
||||
---- probable_AS = mkAS (mkA (nNainen "todennäköistä")) ; --- for vowel harmony
|
||||
---- queen_N = regN "kuningatar" ;
|
||||
--3 radio_N = reg3N "radio" "radion" "radioita" ;
|
||||
---- rain_V0 = mkV0 (vHuoltaa "sataa" "sadan" "satoi" "sadoin") ;
|
||||
probable_AS = mkAS (mkA (nNainen "todennäköistä")) ; --- for vowel harmony
|
||||
queen_N = regN "kuningatar" ;
|
||||
radio_N = reg3N "radio" "radioita" ;
|
||||
rain_V0 = mkV0 (vHuoltaa "sataa" "sadan" "satoi" "sadoin") ;
|
||||
read_V2 = dirV2 (regV "lukea") ;
|
||||
red_ADeg = regADeg "punainen" ;
|
||||
religion_N = regN "uskonto" ;
|
||||
restaurant_N = regN "ravintola" ;
|
||||
river_N = nArpi "joki" ;
|
||||
---- rock_N = regN "kallio" ;
|
||||
rock_N = regN "kallio" "kallioita" ;
|
||||
roof_N = regN "katto" ;
|
||||
rubber_N = regN "kumi" ;
|
||||
run_V = reg2V "juosta" "juoksi" ;
|
||||
---- say_VS = mkVS (regV "sanoa") ;
|
||||
say_VS = mkVS (regV "sanoa") ;
|
||||
school_N = regN "koulu" ;
|
||||
science_N = regN "tiede" ;
|
||||
sea_N = reg2N "meri" "meriä" ;
|
||||
sea_N = reg2N "meri" "meriä" ; ---- *merea
|
||||
seek_V2 = dirV2 (regV "etsiä") ;
|
||||
see_V2 = dirV2 (
|
||||
mkV "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 ;
|
||||
sell_V3 = dirV3 (regV "myydä") allative ;
|
||||
send_V3 = dirV3 (regV "lähettää") allative ;
|
||||
sheep_N = regN "lammas" ;
|
||||
ship_N = regN "laiva" ;
|
||||
shirt_N = regN "paita" ;
|
||||
@@ -189,10 +189,10 @@ lin
|
||||
switch8off_V2 = dirV2 (regV "sammuttaa") ; ---
|
||||
switch8on_V2 = dirV2 (regV "sytyttää") ; ---
|
||||
table_N = regN "pöytä" ;
|
||||
---- talk_V3 = mkV3 (regV "puhua") allative elative ;
|
||||
talk_V3 = mkV3 (regV "puhua") allative elative ;
|
||||
teacher_N = regN "opettaja" ;
|
||||
teach_V2 = dirV2 (regV "opettaa") ;
|
||||
--3 television_N = reg2N "televisio" "telievisioita" ;
|
||||
television_N = reg2N "televisio" "telievisioita" ;
|
||||
thick_ADeg = regADeg "paksu" ;
|
||||
thin_ADeg = regADeg "ohut" ;
|
||||
train_N = regN "juna" ;
|
||||
@@ -218,7 +218,7 @@ lin
|
||||
wine_N = regN "viini" ;
|
||||
win_V2 = dirV2 (regV "voittaa") ;
|
||||
woman_N = regN "nainen" ;
|
||||
--3 wonder_VQ = mkVQ (regV "ihmetellä") ;
|
||||
wonder_VQ = mkVQ (regV "ihmetellä") ;
|
||||
wood_N = regN "puu" ;
|
||||
write_V2 = dirV2 (regV "kirjoittaa") ;
|
||||
yellow_ADeg = regADeg "keltainen" ;
|
||||
@@ -231,7 +231,7 @@ lin
|
||||
now_Adv = mkAdv "nyt" ;
|
||||
already_Adv = mkAdv "jo" ;
|
||||
song_N = regN "laulu" ;
|
||||
---- add_V3 = dirV3 (regV "lisätä") illative ;
|
||||
add_V3 = dirV3 (regV "lisätä") illative ;
|
||||
number_N = reg2N "numero" "numeroita" ;
|
||||
put_V2 = dirV2 (regV "panna") ;
|
||||
stop_V = regV "pysähtyä" ;
|
||||
|
||||
@@ -196,6 +196,42 @@ oper
|
||||
(perunoi + ("t" + a))
|
||||
(perunoi + "hin") ;
|
||||
|
||||
sTohtori : Str -> CommonNoun = \tohtoria ->
|
||||
let
|
||||
a = last tohtoria ;
|
||||
tohtori = init tohtoria ;
|
||||
tohtorei = init tohtori + "ei" ;
|
||||
in
|
||||
mkSubst a
|
||||
tohtori
|
||||
tohtori
|
||||
tohtori
|
||||
tohtoria
|
||||
(tohtori + "in")
|
||||
tohtorei
|
||||
tohtorei
|
||||
(tohtorei + "den")
|
||||
(tohtorei + "t" + a)
|
||||
(tohtorei + "hin") ;
|
||||
|
||||
sRadio : Str -> CommonNoun = \radio ->
|
||||
let
|
||||
o = last radio ;
|
||||
a = getHarmony o ;
|
||||
radioi = radio + "i" ;
|
||||
in
|
||||
mkSubst a
|
||||
radio
|
||||
radio
|
||||
radio
|
||||
(radio + "t" + a)
|
||||
(radio + o + "n")
|
||||
radioi
|
||||
radioi
|
||||
(radioi + "den")
|
||||
(radioi + "t" + a)
|
||||
(radioi + "hin") ;
|
||||
|
||||
-- Surpraisingly, making the test for the partitive, this not only covers
|
||||
-- "rae", "perhe", "savuke", but also "rengas", "lyhyt" (except $Sg Illat$), etc.
|
||||
|
||||
@@ -220,21 +256,21 @@ oper
|
||||
(rakei + "siin") ;
|
||||
|
||||
sSusi : (_,_,_ : Str) -> CommonNoun = \susi,suden,sutena ->
|
||||
let {
|
||||
let
|
||||
a = Predef.dp 1 sutena ;
|
||||
sude = Predef.tk 1 suden ;
|
||||
sute = Predef.tk 2 sutena
|
||||
}
|
||||
sute = Predef.tk 2 sutena ;
|
||||
sutt = Predef.tk 1 sute + "t"
|
||||
in
|
||||
mkSubst a
|
||||
susi
|
||||
sude
|
||||
sute
|
||||
(Predef.tk 1 sute + ("t" + a))
|
||||
(sutt + a)
|
||||
(sute + "en")
|
||||
susi
|
||||
susi
|
||||
(susi + "en")
|
||||
(sutt + "en") --- var susi + "en" bad with suuri
|
||||
(susi + a)
|
||||
(susi + "in") ;
|
||||
|
||||
@@ -898,6 +934,7 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
||||
vHuoltaa : (_,_,_,_ : Str) -> Verb = \ottaa,otan,otti,otin ->
|
||||
let {
|
||||
a = Predef.dp 1 ottaa ;
|
||||
aa = a + a ;
|
||||
u = case a of {"a" => "u" ; _ => "y"} ;
|
||||
ota = Predef.tk 1 otan ;
|
||||
otta = Predef.tk 1 ottaa ;
|
||||
@@ -907,9 +944,9 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
||||
ottaa
|
||||
ottaa
|
||||
otan
|
||||
(otta + (("v" + a) + "t"))
|
||||
(otta + (("k" + a) + a))
|
||||
(ote + ((("t" + a) + a) + "n"))
|
||||
(otta + "v" + a + "t")
|
||||
(otta + "k" + aa)
|
||||
(ote + "t" + aa + "n")
|
||||
otti
|
||||
otin
|
||||
(otta + "isi")
|
||||
@@ -967,9 +1004,11 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
||||
vJuosta : (_,_,_,_ : Str) -> Verb = \juosta,juoksen,juossut,juostu ->
|
||||
let
|
||||
a = Predef.dp 1 juosta ;
|
||||
t = last (init juosta) ;
|
||||
juokse = Predef.tk 1 juoksen ;
|
||||
juoksi = Predef.tk 2 juoksen + "i" ;
|
||||
juos = Predef.tk 2 juosta
|
||||
juos = Predef.tk 2 juosta ;
|
||||
juostun = ifTok Str t "t" (juostu + "n") (init juossut + "n") ;
|
||||
in
|
||||
mkVerb
|
||||
juosta
|
||||
@@ -983,7 +1022,7 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
|
||||
(juoksi + "si")
|
||||
juossut
|
||||
juostu
|
||||
(init juossut + "n") ;
|
||||
juostun ;
|
||||
|
||||
-- For "juoda", "syödä", "viedä", "naida", "saada".
|
||||
|
||||
|
||||
@@ -50,6 +50,10 @@ oper
|
||||
ablative : Case ;
|
||||
allative : Case ;
|
||||
|
||||
PPosition : Type ;
|
||||
PPrep : Case -> Str -> PPosition ;
|
||||
PPostp : Case -> Str -> PPosition ;
|
||||
|
||||
--2 Nouns
|
||||
|
||||
-- Worst case: give ten forms and the semantic gender.
|
||||
@@ -65,8 +69,9 @@ oper
|
||||
|
||||
regN : (talo : Str) -> N ;
|
||||
|
||||
-- The almost-regular heuristic analyses three forms.
|
||||
-- The almost-regular heuristics analyse two or three forms.
|
||||
|
||||
reg2N : (savi,savia : Str) -> N ;
|
||||
reg3N : (vesi,veden,vesiä : Str) -> N ;
|
||||
|
||||
-- Nouns with partitive "a"/"ä" are a large group.
|
||||
@@ -195,13 +200,13 @@ oper
|
||||
--2 Verbs
|
||||
--
|
||||
-- The fragment only has present tense so far, but in all persons.
|
||||
-- The worst case needs five forms, as shown in the following.
|
||||
-- The worst case needs twelve forms, as shown in the following.
|
||||
|
||||
mkV : (tulla,tulee,tulen,tulevat,tulkaa,tullaan,
|
||||
tuli,tulin,tulisi,tullut,tultu,tullun : Str) -> V ;
|
||||
regV : (soutaa : Str) -> V ;
|
||||
reg3V : (soutaa,soudan,soudin : Str) -> V ;
|
||||
|
||||
reg2V : (soutaa,souti : Str) -> V ;
|
||||
reg3V : (soutaa,soudan,souti : Str) -> V ;
|
||||
|
||||
-- A simple special case is the one with just one stem and no grade alternation.
|
||||
-- It covers e.g. "sanoa", "valua", "kysyä".
|
||||
@@ -235,7 +240,7 @@ oper
|
||||
-- Two-place verbs need a case, and can have a pre- or postposition.
|
||||
-- At least one of the latter is empty, $[]$.
|
||||
|
||||
mkV2 : V -> Case -> (prep,postp : Str) -> V2 ;
|
||||
mkV2 : V -> PPostp -> V2 ;
|
||||
|
||||
-- If both are empty, the following special function can be used.
|
||||
|
||||
@@ -246,6 +251,36 @@ oper
|
||||
|
||||
dirV2 : V -> V2 ;
|
||||
|
||||
--3 Three-place verbs
|
||||
--
|
||||
-- Three-place (ditransitive) verbs need two prepositions, of which
|
||||
-- the first one or both can be absent.
|
||||
|
||||
mkV3 : V -> PPosition -> PPosition -> V3 ; -- speak, with, about
|
||||
dirV3 : V -> PPosition -> V3 ; -- give,_,to
|
||||
dirdirV3 : V -> V3 ; -- acc, allat
|
||||
|
||||
--3 Other complement patterns
|
||||
--
|
||||
-- Verbs and adjectives can take complements such as sentences,
|
||||
-- questions, verb phrases, and adjectives.
|
||||
|
||||
mkV0 : V -> V0 ;
|
||||
mkVS : V -> VS ;
|
||||
mkV2S : V2 -> V2S ;
|
||||
mkVV : V -> VV ;
|
||||
mkV2V : V2 -> V2V ;
|
||||
mkVA : V -> Case -> VA ;
|
||||
mkV2A : V2 -> Case -> V2A ;
|
||||
mkVQ : V -> VQ ;
|
||||
mkV2Q : V2 -> V2Q ;
|
||||
|
||||
mkAS : A -> AS ;
|
||||
mkA2S : A -> Str -> A2S ;
|
||||
mkAV : A -> AV ;
|
||||
mkA2V : A -> Str -> A2V ;
|
||||
|
||||
|
||||
-- The definitions should not bother the user of the API. So they are
|
||||
-- hidden from the document.
|
||||
--.
|
||||
@@ -269,6 +304,12 @@ oper
|
||||
ablative = Ablat ;
|
||||
allative = Allat ;
|
||||
|
||||
PPosition : Type = {c : Case ; s1,s2 : Str} ;
|
||||
PPrep : Case -> Str -> PPosition =
|
||||
\c,p -> {c = c ; s1 = p ; s2 = []} ;
|
||||
PPostp : Case -> Str -> PPosition =
|
||||
\c,p -> {c = c ; s1 = [] ; s2 = p} ;
|
||||
|
||||
mkN = \a,b,c,d,e,f,g,h,i,j,k ->
|
||||
mkNoun a b c d e f g h i j ** {g = k ; lock_N = <>} ;
|
||||
|
||||
@@ -314,12 +355,17 @@ reg2N : (savi,savia : Str) -> N = \savi,savia ->
|
||||
savit = regN savi ;
|
||||
ia = Predef.dp 2 savia ;
|
||||
i = init ia ;
|
||||
a = last ia
|
||||
a = last ia ;
|
||||
o = last savi ;
|
||||
savin = weakGrade savi + "n" ;
|
||||
in
|
||||
case ia of {
|
||||
"ia" => sArpi savi ;
|
||||
"iä" => sSylki savi ;
|
||||
"ta" | "tä" => sPeruna savi ;
|
||||
case <o,ia> of {
|
||||
<"i","ia"> => sArpi savi ;
|
||||
<"i","iä"> => sSylki savi ;
|
||||
<"i","ta"> | <"i","tä"> => sTohtori (savi + a) ;
|
||||
<"o","ta"> | <"ö","tä"> => sRadio savi ;
|
||||
<"a","ta"> | <"ä","tä"> => sPeruna savi ;
|
||||
<"a","ia"> | <"a","ja"> => sKukko savi savin savia ;
|
||||
_ => savit
|
||||
} ** {g = NonHuman ; lock_N = <>} ;
|
||||
|
||||
@@ -336,6 +382,7 @@ reg3N = \vesi,veden,vesi
|
||||
ifTok CommonNoun (Predef.dp 3 veden) "den"
|
||||
(sRakkaus vesi)
|
||||
(sTilaus vesi (veden + a)) ;
|
||||
"li" | "ni" | "ri" => sSusi vesi veden (Predef.tk 1 vesi + ("en" + a)) ;
|
||||
"si" => sSusi vesi veden (Predef.tk 2 vesi + ("ten" + a)) ;
|
||||
_ => case i of {
|
||||
"a" | "o" | "u" | "y" | "ä" | "ö" => sKukko vesi veden vesiä ;
|
||||
@@ -419,14 +466,17 @@ reg2V : (soutaa,souti : Str) -> V = \soutaa,souti ->
|
||||
juo = Predef.tk 2 soutaa ;
|
||||
o = Predef.dp 1 juo ;
|
||||
u = ifTok Str (last soutaa) "a" "u" "y" ;
|
||||
taa = Predef.dp 3 soutaa
|
||||
aa = Predef.dp 2 soutaa ;
|
||||
taa = Predef.dp 3 soutaa ;
|
||||
ta = Predef.tk 1 taa ;
|
||||
in
|
||||
case taa of {
|
||||
"taa" | "tää" => vHuoltaa soutaa soudan souti soudin ;
|
||||
"ata" | "ätä" => vPalkata soutaa souti ;
|
||||
"sta" | "stä" => vJuosta soutaa souden (juo + o+u+"t") (juo + "t"+u) ;
|
||||
case aa of {
|
||||
"aa" | "ää" => vHuoltaa soutaa soudan souti soudin ;
|
||||
_ => case ta of {
|
||||
"at" | "ät" => vPalkata soutaa souti ;
|
||||
"st" => vJuosta soutaa souden (juo + o+u+"t") (juo + "t"+u) ;
|
||||
_ => soudat
|
||||
} ** {lock_V = <>} ;
|
||||
}} ** {lock_V = <>} ;
|
||||
|
||||
reg3V soutaa soudan souti =
|
||||
let
|
||||
@@ -458,10 +508,41 @@ reg3V soutaa soudan souti =
|
||||
|
||||
vHuoltaa : (_,_,_,_ : Str) -> Verb = \ottaa,otan,otti,otin ->
|
||||
SyntaxFin.vHuoltaa ottaa otan otti otin ** {lock_V = <>} ;
|
||||
mkV2 = \v,c,p,o -> v ** {s3 = p ; s4 = o ; c = CCase c ; lock_V2 = <>} ;
|
||||
caseV2 = \v,c -> mkV2 v c [] [] ;
|
||||
-- mkV2 = \v,c,p,o -> v ** {s3 = p ; s4 = o ; c = CCase c ; lock_V2 = <>} ;
|
||||
-- caseV2 = \v,c -> mkV2 v c [] [] ;
|
||||
dirV2 v = mkTransVerbDir v ** {lock_V2 = <>} ;
|
||||
|
||||
mkAdv : Str -> Adv = \s -> {s = s ; lock_Adv = <>} ;
|
||||
|
||||
|
||||
-- mkV3 : V -> PPosition -> PPosition -> V3 ; -- speak, with, about
|
||||
-- dirV3 : V -> PPosition -> V3 ; -- give,_,to
|
||||
-- dirdirV3 : V -> -> V3 ; -- acc, allat
|
||||
|
||||
mkV0 v = v ** {lock_V0 = <>} ;
|
||||
mkVS v = v ** {lock_VS = <>} ;
|
||||
mkV2S v = v ** {lock_V2S = <>} ;
|
||||
-- mkVV v = v ** {lock_VV = <>} ;
|
||||
mkV2V v = v ** {lock_V2V = <>} ;
|
||||
-- mkVA v c = v ** {c = c ; lock_V0 = <>} ;
|
||||
-- mkV2A v c = v ** {c2 = c ; lock_V0 = <>} ;
|
||||
mkVQ v = v ** {lock_VQ = <>} ;
|
||||
mkV2Q v = v ** {lock_V2Q = <>} ;
|
||||
|
||||
mkAS v = v ** {lock_AS = <>} ;
|
||||
-- mkA2S v c = v ** {c = c ; lock_AS = <>} ;
|
||||
mkAV v = v ** {lock_AV = <>} ;
|
||||
-- mkA2V v c = v ** {c = c ; lock_AS = <>} ;
|
||||
|
||||
-- inf_illative
|
||||
-- infinitive
|
||||
|
||||
|
||||
-- V3 = TransVerb ** {s5, s6 : Str ; c2 : ComplCase} ;
|
||||
-- Verb ** {s3, s4 : Str ; c : ComplCase} ;
|
||||
-- mkN3 n c1 c2
|
||||
-- {c : NPForm} ;
|
||||
-- N3 = Function ** {c2 : NPForm} ;
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ lin
|
||||
DefNumNP = nounPhraseNum True ;
|
||||
|
||||
DetNP = detNounPhrase ;
|
||||
---- NDetNP = numDetNounPhrase ;
|
||||
NDetNP = numDetNounPhrase ;
|
||||
---- NDetNum = justNumDetNounPhrase ;
|
||||
MassNP = partNounPhrase singular ;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
|
||||
|
||||
this_Det = this_Det ;
|
||||
that_Det = that_Det ;
|
||||
all_NDet = all_NDet ;
|
||||
all_NDet = ResourceFin.all_NDet ;
|
||||
many_Det = many_Det ;
|
||||
some_Det = some_Det ;
|
||||
few_Det = mkDeterminer Pl (\\c => (sTalo "muutama").s ! NCase Pl c) ;
|
||||
@@ -99,7 +99,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
|
||||
|
||||
-- Nouns
|
||||
|
||||
animal_N = regN "eläin" ;
|
||||
animal_N = regN "eläin" ; ---- *eläkimet
|
||||
ashes_N = regN "tuhka" ;
|
||||
back_N = regN "selkä" ;
|
||||
bark_N = regN "kaarna" ;
|
||||
@@ -118,8 +118,8 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
|
||||
egg_N = regN "muna" ;
|
||||
eye_N = regN "silmä" ;
|
||||
fat_N = regN "rasva" ;
|
||||
father_N = UseN2 father_N2 ;
|
||||
feather_N = reg3N "höyhen" "höyhenen" "höyheniä" ; -----
|
||||
father_N = regN "isä" ;
|
||||
feather_N = regN "höyhen" ; ---- *höyhemen
|
||||
fingernail_N = reg3N "kynsi" "kynnen" "kynsiä" ;
|
||||
fire_N = reg2N "tuli" "tulia" ;
|
||||
fish_N = fish_N ;
|
||||
@@ -146,7 +146,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
|
||||
man_N = man_N ;
|
||||
meat_N = meat_N ;
|
||||
moon_N = moon_N ;
|
||||
mother_N = UseN2 mother_N2 ;
|
||||
mother_N = regN "äiti" ;
|
||||
mountain_N = mountain_N ;
|
||||
mouth_N = regN "suu" ;
|
||||
name_N = reg2N "nimi" "nimiä" ;
|
||||
@@ -162,9 +162,9 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
|
||||
salt_N = regN "suola" ;
|
||||
sand_N = regN "hiekka" ;
|
||||
sea_N = sea_N ;
|
||||
seed_N = regN "seed" ;
|
||||
skin_N = regN "skin" ;
|
||||
sky_N = regN "sky" ; --- taivaan *taipaan
|
||||
seed_N = regN "siemen" ;
|
||||
skin_N = regN "nahka" ;
|
||||
sky_N = regN "taivas" ; --- taivaan *taipaan
|
||||
smoke_N = regN "savu" ;
|
||||
snake_N = snake_N ;
|
||||
snow_N = reg3N "lumi" "lumen" "lumia" ; --- lunta *lumea
|
||||
@@ -173,7 +173,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
|
||||
stone_N = stone_N ;
|
||||
sun_N = sun_N ;
|
||||
tail_N = regN "häntä" ;
|
||||
tongue_N = regN "kieli" ;
|
||||
tongue_N = reg2N "kieli" "kieliä" ;
|
||||
tooth_N = regN "hammas" ;
|
||||
tree_N = tree_N ;
|
||||
water_N = water_N ;
|
||||
@@ -182,7 +182,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
|
||||
wing_N = reg2N "siipi" "siipiä" ;
|
||||
woman_N = woman_N ;
|
||||
worm_N = regN "mato" ;
|
||||
year_N = reg2N "vuosi" "vuosia" ;
|
||||
year_N = reg3N "vuosi" "vuoden" "vuosia" ;
|
||||
|
||||
-- Verbs
|
||||
|
||||
@@ -192,16 +192,16 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
|
||||
burn_V = regV "palaa" ;
|
||||
come_V = BasicFin.come_V ;
|
||||
count_V = regV "laskea" ;
|
||||
cut_V = regV "leikata" ;
|
||||
cut_V = reg3V "leikata" "leikkaan" "leikkasi" ;
|
||||
die_V = regV "kuolla";
|
||||
dig_V = regV "kaivata" ;
|
||||
dig_V = regV "kaivaa" ;
|
||||
drink_V = UseV2 drink_V2 ;
|
||||
eat_V = UseV2 eat_V2 ;
|
||||
fall_V = regV "pudota" ;
|
||||
fear_V = regV "fear" ;
|
||||
fall_V = reg3V "pudota" "putoan" "putosi" ; ---- *pudoa
|
||||
fear_V = reg3V "pelätä" "pelkään" "pelkäsi" ;
|
||||
fight_V = regV "taistella" ;
|
||||
float_V = regV "kellua" ;
|
||||
flow_V = regV "virrata" ;
|
||||
flow_V = reg3V "virrata" "virtaan" "virtasi" ;
|
||||
fly_V = regV "lentää" ;
|
||||
freeze_V = regV "jäätyä" ;
|
||||
give_V = regV "antaa" ;
|
||||
@@ -212,7 +212,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
|
||||
kill_V = regV "tappaa" ;
|
||||
know_V =reg2V "tietää" "tiesin" ;
|
||||
laugh_V = reg3V "nauraa" "nauran" "nauroi" ;
|
||||
lie_V = regV "maata" ;
|
||||
lie_V = reg3V "maata" "makaan" "makasi" ;
|
||||
live_V = live_V ;
|
||||
play_V = UseV2 play_V2 ;
|
||||
pull_V = regV "vetää" ;
|
||||
@@ -225,7 +225,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
|
||||
sing_V = regV "laulaa" ;
|
||||
sit_V = regV "istua" ;
|
||||
sleep_V = sleep_V ;
|
||||
smell_V = regV "haista" ;
|
||||
smell_V = reg2V "haistaa" "haistoi" ;
|
||||
spit_V = regV "sylkeä" ;
|
||||
split_V = reg2V "halkaista" "halkaisi" ;
|
||||
squeeze_V = regV "puristaa" ;
|
||||
|
||||
@@ -221,10 +221,17 @@ oper
|
||||
\isDef,n,mies ->
|
||||
case n.isNum of {
|
||||
True => {
|
||||
s = table {
|
||||
NPCase Nom => n.s ! NPCase Nom ++ mies.s ! False ! Sg ! Part ;
|
||||
c => n.s ! c ++ mies.s ! False ! Sg ! npForm2Case Sg c
|
||||
s = case n.n of {
|
||||
Sg => table {
|
||||
NPCase Nom => n.s ! NPCase Nom ++ mies.s ! False ! Sg ! Nom ;
|
||||
c => n.s ! c ++ mies.s ! False ! Sg ! npForm2Case Sg c
|
||||
} ;
|
||||
_ => table {
|
||||
NPAccGen => n.s ! NPCase Nom ++ mies.s ! False ! Sg ! Part ;
|
||||
NPCase Nom => n.s ! NPCase Nom ++ mies.s ! False ! Sg ! Part ;
|
||||
c => n.s ! c ++ mies.s ! False ! Sg ! npForm2Case Sg c
|
||||
}
|
||||
} ;
|
||||
n = if_then_else Number isDef Pl Sg ;
|
||||
p = NP3
|
||||
} ;
|
||||
|
||||
Reference in New Issue
Block a user