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

View File

@@ -37,7 +37,7 @@ lin
break_V2 = dirV2 (special_ppV (regV "romper") "roto") ;
broad_ADeg = regADeg "ancho" ;
brother_N2 = deN2 (regN "hermano") ;
brown_ADeg = regADeg "marrón" ;
brown_ADeg = regADeg "marrón" ; --- *
butter_N = regN "manteca" ;
buy_V2 = dirV2 (regV "comprar") ;
camera_N = regN "cámara" ; -- ["máquina fotográfica"]
@@ -146,7 +146,7 @@ lin
rain_V0 = mkV0 (verboV (llover_89 "llover")) ;
read_V2 = dirV2 (verboV (creer_26 "leer")) ;
red_ADeg = regADeg "rojo" ;
religion_N = femN (regN "religión") ;
religion_N = mkN "religión" "religiones" feminine ;
restaurant_N = regN "restaurante" ; -- restorán, restaurán, masc
river_N = regN "río" ;
rock_N = regN "roca" ;
@@ -187,7 +187,7 @@ lin
talk_V3 = mkV3 (regV "hablar") dative genitive ;
teacher_N = regN "maestro" ; -- maestra
teach_V2 = dirV2 (regV "enseñar") ;
television_N = femN (regN "televisión") ; -- fem, televisor masc
television_N = mkN "televisión" "televisiones" feminine ; -- televisor masc
thick_ADeg = regADeg "grueso" ;
thin_ADeg = regADeg "fino" ; -- delgado
train_N = regN "tren" ;
@@ -218,7 +218,7 @@ lin
do_V2 = dirV2 (verboV (hacer_44 "hacer")) ;
now_Adv = mkAdv "ahora" ;
already_Adv = mkAdv "ya" ;
song_N = femN (regN "canción") ;
song_N = mkN "canción" "canciones" feminine ;
add_V3 = dirV3 (regV "sumar") dative ;
number_N = regN "número" ;
put_V2 = dirV2 (verboV (poner_60 "poner")) ;

View File

@@ -136,7 +136,7 @@ concrete SwadeshLexSpa of SwadeshLex = CategoriesSpa
hair_N = regN "cabello" ; -- pelo
hand_N = femN (regN "mano") ;
head_N = regN "cabeza" ;
heart_N = regN "corazón" ;
heart_N = mkN "corazón" "corazones" masculine ;
horn_N = regN "cuerno" ;
husband_N = regN "marido" ; -- esposo
ice_N = regN "hielo" ;
@@ -172,7 +172,7 @@ concrete SwadeshLexSpa of SwadeshLex = CategoriesSpa
snake_N = snake_N ;
snow_N = femN (regN "nieve") ; -- fem
star_N = star_N ;
stick_N = regN "bastón" ; -- palo
stick_N = mkN "bastón" "bastones" masculine ; -- palo
stone_N = stone_N ;
sun_N = sun_N ;
tail_N = regN "cola" ;