adjustments in Swadesh inflection

This commit is contained in:
aarne
2005-07-01 08:33:34 +00:00
parent 30b14a08bc
commit c0026af3a7
6 changed files with 73 additions and 27 deletions

View File

@@ -159,7 +159,7 @@ lin
say_VS = mkVS (regV "sanoa") ;
school_N = regN "koulu" ;
science_N = regN "tiede" ;
sea_N = reg2N "meri" "meriä" ; ---- *merea
sea_N = nMeri "meri" ;
seek_V2 = dirV2 (regV "etsiä") ;
see_V2 = dirV2 (
mkV "nähdä" "näkee" "näen" "näkevät" "nähkää" "nähdään"

View File

@@ -409,13 +409,15 @@ oper
(naurei + ("t" + a))
(naurei + "siin") ;
-- Words of the form "siitin", "avain".
-- Words of the form "siitin", "avain", "höyhen" (w or wo grade alternation).
sLiitin : Str -> CommonNoun = \liitin ->
sLiitin : Str -> Str -> CommonNoun = \liitin,liittimen ->
let
liitti = strongGrade (init liitin) ;
liittime = liitti + "me" ;
a = if_then_Str (pbool2bool (Predef.occurs "aou" liitin)) "a" "ä"
liittime = init liittimen ;
liitti = Predef.tk 2 liittime ;
m = last (init liittime) ;
liittimi = liitti + m + "i" ;
a = vowelHarmony liitin ;
in
mkSubst a
liitin
@@ -423,11 +425,11 @@ oper
liittime
(liitin + "t" + a)
(liittime + "en")
(liitti + "mi")
(liitti + "mi")
(liitti + "mien")
(liitti + "mi" + a)
(liitti + "miin") ;
(liittimi)
(liittimi)
(liittimi + "en")
(liittimi + a)
(liittimi + "in") ;
-- The following covers adjectives like "kapea", "leveä".
@@ -504,6 +506,10 @@ getHarmony : Str -> Str = \u -> case u of {
_ => "ä"
} ;
-- This function inspects the whole word.
vowelHarmony : Str -> Str = \liitin ->
if_then_Str (pbool2bool (Predef.occurs "aou" liitin)) "a" "ä" ;
-- The following function defines how grade alternation works if it is active.
-- In general, *whether there is* grade alternation must be given in the lexicon
@@ -1002,6 +1008,28 @@ caseTable : Number -> CommonNoun -> Case => Str = \n,cn ->
(palka + "tt" + u)
(palka + "t" + u + "n") ;
vPudota : Str -> Str -> Verb = \pudota, putosi ->
let
a = Predef.dp 1 pudota ;
pudo = Predef.tk 2 pudota ;
puto = Predef.tk 2 putosi ;
putoa = puto + a ;
u = case a of {"a" => "u" ; _ => "y"}
in
mkVerb
pudota
(putoa + a)
(putoa + "n")
(putoa + "v" + a + "t")
(pudo + "tk" + a + a)
(pudota + a + "n")
(puto + "si")
(puto + "sin")
(puto + a + "isi")
(pudo + "nn" + u + "t")
(pudo + "tt" + u)
(pudo + "t" + u + "n") ;
vHarkita : Str -> Verb = \harkita ->
let
a = Predef.dp 1 harkita ;

View File

@@ -163,6 +163,11 @@ oper
nNauris : (naurista : Str) -> N ;
-- Some nouns have an unexpected singular partitive, e.g. "meri", "juuri".
sgpartN : N -> Str -> N ;
nMeri : Str -> N ;
-- Separately-written compound nouns, like "sambal oelek", "Urho Kekkonen",
-- have only their last part inflected.
@@ -354,7 +359,7 @@ regN = \vesi ->
"as" | "äs" => sRae vesi (strongGrade ves + (a + "n" + a)) ;
"ar" | "är" => sRae vesi (strongGrade ves + ("ren" + a)) ;
_ => case i of {
"n" => sLiitin vesi ;
"n" => sLiitin vesi (strongGrade (init vesi) + "men") ;
"s" => sTilaus vesi (ves + ("ksen" + a)) ;
"i" => sBaari (vesi + a) ;
"e" => sRae vesi (strongGrade (ves + "e") + "en" + a) ;
@@ -396,8 +401,10 @@ reg3N = \vesi,veden,vesi
ifTok CommonNoun (Predef.dp 3 veden) "den"
(sRakkaus vesi)
(sTilaus vesi (veden + a)) ;
"as" | "äs" => sRae 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)) ;
"in" | "en" | "än" => sLiitin vesi veden ;
_ => case i of {
"a" | "o" | "u" | "y" | "ä" | "ö" => sKukko vesi veden vesiä ;
"i" => sKorpi vesi veden (init veden + "n" + a) ;
@@ -424,7 +431,17 @@ reg3N = \vesi,veden,vesi
nKulaus = \a -> nTilaus a (init a + "ksen" + getHarmony (last
(init a))) ;
nNauris = \a -> sNauris a ** {g = nonhuman ; lock_N = <>} ;
sgpartN noun part = {
s = table {
NCase Sg Part => part ;
c => noun.s ! c
} ;
g = noun.g ;
lock_N = noun.lock_N
} ;
nMeri meri =
let a = vowelHarmony meri in
sgpartN (reg2N meri (meri + a)) (init meri + "ta") ;
nComp = \s,n -> {s = \\c => s ++ n.s ! c ; g = n.g ; lock_N = <>} ;
mkN2 = \n,c -> n2n n ** {c = NPCase c ; lock_N2 = <>} ;
@@ -509,6 +526,7 @@ reg3V soutaa soudan souti =
soudat = reg2V soutaa souti ;
in case ta of {
"ll" => vJuosta soutaa soudan (juo + o+u+"t") (juo + "t"+u) ;
"ot" | "öt" => vPudota soutaa souti ;
_ => case aa of {
"aa" | "ää" => vHuoltaa soutaa soudan souti soudin ;
"da" | "dä" => vJuoda soutaa souti ;

View File

@@ -99,13 +99,13 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
-- Nouns
animal_N = regN "eläin" ; ---- *eläkimet
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" ;
bird_N = bird_N;
blood_N = reg2N "veri" "veriä" ;
blood_N = nMeri "veri" ;
bone_N = regN "luu" ;
breast_N = regN "rinta" ;
child_N = child_N ;
@@ -119,7 +119,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
eye_N = regN "silmä" ;
fat_N = regN "rasva" ;
father_N = regN "isä" ;
feather_N = regN "höyhen" ; ---- *höyhemen
feather_N = reg3N "höyhen" "höyhenen" "höyheniä" ;
fingernail_N = reg3N "kynsi" "kynnen" "kynsiä" ;
fire_N = reg2N "tuli" "tulia" ;
fish_N = fish_N ;
@@ -133,7 +133,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
hair_N = regN "hius" ;
hand_N = reg3N "käsi" "käden" "käsiä" ;
head_N = regN "pää" ;
heart_N = regN "sydän" ; --- *sytämen
heart_N = reg3N "sydän" "sydämen" "sydämiä" ;
horn_N = reg2N "sarvi" "sarvia" ;
husband_N = man_N ; --- aviomies
ice_N = regN "jää" ;
@@ -157,17 +157,17 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
rain_N = regN "sade" ;
river_N = river_N ;
road_N = regN "tie" ;
root_N = reg3N "juuri" "juuren" "juuria" ; --- juurta *juurea
root_N = reg3N "juuri" "juuren" "juuria" ;
rope_N = reg3N "köysi" "köyden" "köysiä" ;
salt_N = regN "suola" ;
sand_N = regN "hiekka" ;
sea_N = sea_N ;
seed_N = regN "siemen" ;
skin_N = regN "nahka" ;
sky_N = regN "taivas" ; --- taivaan *taipaan
sky_N = reg3N "taivas" "taivaan" "taivaita" ;
smoke_N = regN "savu" ;
snake_N = snake_N ;
snow_N = reg3N "lumi" "lumen" "lumia" ; --- lunta *lumea
snow_N = sgpartN (nMeri "lumi") "lunta" ;
star_N = star_N ;
stick_N = regN "keppi" ;
stone_N = stone_N ;
@@ -197,7 +197,7 @@ concrete SwadeshLexFin of SwadeshLex = CategoriesFin
dig_V = regV "kaivaa" ;
drink_V = UseV2 drink_V2 ;
eat_V = UseV2 eat_V2 ;
fall_V = reg3V "pudota" "putoan" "putosi" ; ---- *pudoa
fall_V = reg3V "pudota" "putoan" "putosi" ;
fear_V = reg3V "pelätä" "pelkään" "pelkäsi" ;
fight_V = regV "taistella" ;
float_V = regV "kellua" ;