1
0
forked from GitHub/gf-core

work on Finnish

This commit is contained in:
aarne
2005-06-30 07:35:01 +00:00
parent 6b83de3263
commit 5c5dd161d0
7 changed files with 203 additions and 76 deletions

View File

@@ -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 = ;

View File

@@ -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ä" ;

View File

@@ -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".

View File

@@ -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} ;
} ;

View File

@@ -42,7 +42,7 @@ lin
DefNumNP = nounPhraseNum True ;
DetNP = detNounPhrase ;
---- NDetNP = numDetNounPhrase ;
NDetNP = numDetNounPhrase ;
---- NDetNum = justNumDetNounPhrase ;
MassNP = partNounPhrase singular ;

View File

@@ -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" ;

View File

@@ -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
} ;