building Finnish lexicon

This commit is contained in:
aarne
2005-06-27 09:02:45 +00:00
parent 19d635046c
commit 10d6757558
3 changed files with 114 additions and 90 deletions

View File

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

View File

@@ -373,6 +373,26 @@ oper
(naurei + ("t" + a))
(naurei + "siin") ;
-- The following covers adjectives like "kapea", "leveä".
sKapea : (_ : Str) -> CommonNoun = \kapea ->
let
a = last kapea ;
kape = init kapea ;
kapei = kape + "i"
in
mkSubst a
kapea
kapea
kapea
(kapea + a)
(kapea + a+"n")
kapei
kapei
(kapei + "den")
(kapei + ("t" + a))
(kapei + "siin") ;
-- The following two are used for adjective comparison.
sSuurempi : Str -> CommonNoun = \suurempaa ->
@@ -458,7 +478,7 @@ getHarmony : Str -> Str = \u -> case u of {
"i" => "j" ;
_ => ""
} ;
"hk" => kukk ; -- *tahko-tahon
"hk" | "tk" => kukk ; -- *tahko-tahon, *pitkä-pitkän
"sk" => kukk ; -- *lasku-lasvun
"sp" => kukk ; -- *raspi-rasvin
"st" => kukk ; -- *lastu-lasdun

View File

@@ -20,6 +20,8 @@
resource ParadigmsFin =
open (Predef=Predef), Prelude, SyntaxFin, CategoriesFin in {
flags optimize=values ;
--2 Parameters
--
-- To abstract over gender, number, and (some) case names,
@@ -324,7 +326,7 @@ reg3N = \vesi,veden,vesi
"aa" | "ee" | "ii" | "oo" | "uu" | "yy" | "ää" | "öö" => sPuu vesi ;
"ie" | "uo" | "yö" => sSuo vesi ;
"is" => sNauris (vesi + ("t" + a)) ;
"ut" | "yt" => sRae vesi (ves + ("en" + a)) ;
"ut" | "yt" | "as" | "äs" => sRae_vesi ; ---- (ves + ("en" + a)) ;
"us" | "ys" =>
ifTok CommonNoun d "s"
(sTilaus vesi (veden + a))