mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-16 08:19:31 -06:00
adjustments in Swadesh inflection
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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" ;
|
||||
|
||||
@@ -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")) ;
|
||||
|
||||
@@ -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" ;
|
||||
|
||||
Reference in New Issue
Block a user