1
0
forked from GitHub/gf-rgl

(Hun) Add 9-argument worst case noun constructor

This commit is contained in:
Inari Listenmaa
2020-04-28 12:32:10 +02:00
parent 851a0dedc8
commit 4eb210da05
3 changed files with 39 additions and 9 deletions

View File

@@ -41,7 +41,7 @@ lin boat_N = mkN "hajó" "hajót" "hajók" "hajója" ;
-- lin bone_N = mkN "" ; -- lin bone_N = mkN "" ;
-- lin boot_N = mkN "" ; -- lin boot_N = mkN "" ;
-- lin boss_N = mkN "" ; -- lin boss_N = mkN "" ;
lin book_N = mkN "könyv" harmE ; -- TODO Sg Sup könyvön, Sg All könyvhöz, all others in HarmE lin book_N = mkN "könyv" "könyvet" ;
lin boy_N = mkN "fiú" ; lin boy_N = mkN "fiú" ;
lin bread_N = mkN "kenyér" "kenyeret"; lin bread_N = mkN "kenyér" "kenyeret";
lin break_V2 = mkV2 "szünet" ; lin break_V2 = mkV2 "szünet" ;
@@ -132,7 +132,9 @@ lin floor_N = mkN "padló" "padlót" ;
-- lin flow_V = mkV "" ; -- lin flow_V = mkV "" ;
lin flower_N = mkN "virág" "virágot" "virágok" "virága" ; lin flower_N = mkN "virág" "virágot" "virágok" "virága" ;
lin fly_V = mkV "repül" ; lin fly_V = mkV "repül" ;
lin fog_N = mkN "köd" "ködöt"; -- TODO ködöket lin fog_N = mkN "köd" "ködöt" "ködön" "ködhöz"
"ködök" "ködöket"
"köde" "ködünk" "ködei" ;
lin foot_N = leg_N ; --same as leg, to specify "lábfej" lin foot_N = leg_N ; --same as leg, to specify "lábfej"
lin forest_N = mkN "erdő" "erdőt" ; lin forest_N = mkN "erdő" "erdőt" ;
-- lin forget_V2 = mkV2 "" ; -- lin forget_V2 = mkV2 "" ;
@@ -318,7 +320,9 @@ lin shirt_N = mkN "ing" "inget"; --shirt like t-shirt or the more formal?
lin shoe_N = mkN "cipő" "cipőt" ; lin shoe_N = mkN "cipő" "cipőt" ;
lin shop_N = mkN "üzlet" "üzletet"; lin shop_N = mkN "üzlet" "üzletet";
lin short_A = mkA "rövid" ; --in short text, if human length then "alacsony" lin short_A = mkA "rövid" ; --in short text, if human length then "alacsony"
lin silver_N = mkN "ezüst" "ezüstet"; -- TODO fix: ezüstöket lin silver_N = mkN "ezüst" "ezüstöt" "ezüstön" "ezüsthöz"
"ezüstök" "ezüstöket"
"ezüstje" "ezüstünk" "ezüstjei" ;
-- lin sing_V = mkV "" ; -- lin sing_V = mkV "" ;
-- lin sister_N = mkN "" ; -- lin sister_N = mkN "" ;
-- lin sit_V = mkV "" ; -- lin sit_V = mkV "" ;
@@ -332,7 +336,7 @@ lin smooth_A = mkA "sima" ;
lin snake_N = mkN "kígyó" "kígyót" ; lin snake_N = mkN "kígyó" "kígyót" ;
lin snow_N = mkN "hó" "havat" ; lin snow_N = mkN "hó" "havat" ;
lin sock_N = mkN "zokni" "zoknit"; lin sock_N = mkN "zokni" "zoknit";
lin song_N = mkN "dal" "dalat"; -- TODO fix: dalokat lin song_N = mkN "dal" "dalt" ;
-- lin speak_V2 = mkV2 "" ; -- lin speak_V2 = mkV2 "" ;
-- lin spit_V = mkV "" ; -- lin spit_V = mkV "" ;
-- lin split_V2 = mkV2 "" ; -- lin split_V2 = mkV2 "" ;

View File

@@ -172,7 +172,8 @@ oper
-- NB. plafon, papír with dPlafon -- NB. plafon, papír with dPlafon
False => case tolla of { False => case tolla of {
-- hegy, hegy|et -> hegy|e -- hegy, hegy|et -> hegy|e
_ + ("ty"|"gy"|"ny"|"j"|"ly"|"m"|"h") + ("e"|"a"|"ö"|"o") => init tolla ; _ + ("ty"|"gy"|"ny"|"j"|"ly"|"m"|"h")
+ ("e"|"a"|"ö"|"o") => init tolla ;
-- ház, ház|at -> ház|a -- ház, ház|at -> ház|a
_ + #c + ("a"|"e") => init tolla ; _ + #c + ("a"|"e") => init tolla ;
@@ -180,9 +181,9 @@ oper
-- orr, orr|ot -> orr|a -- orr, orr|ot -> orr|a
-- TODO fails for gyümölcs, gyümölcs|öt -> gyümölcs|e -- TODO fails for gyümölcs, gyümölcs|öt -> gyümölcs|e
-- I don't know what this list means /IL -- I don't know what this list means /IL
_ + #v + ("sz"|"z"|"s"|"zs"|"j"|"ly"|"l" _ + #v + ("sz"|"z"|"s"|"zs"|"j"|"ly"|"l"|"r"|"n"|"ny"
|"r"|"n"|"ny"|"ssz"|"zz"|"ss" |"ssz"|"zz"|"ss"|"ll"|"rr"|"nn"|"ns"|"nsz"|"nz")
|"ll"|"rr"|"nn"|"ns"|"nsz"|"nz") + ("o"|"ö") => init tolla ; + ("o"|"ö") => init tolla ;
-- nap, nap|ot -> napj|a -- nap, nap|ot -> napj|a
-- bank, bank|ot -> bankj|a -- bank, bank|ot -> bankj|a
@@ -193,7 +194,6 @@ oper
-- háború, háború|t -> háborúj|a -- háború, háború|t -> háborúj|a
_ => tolla + "j" } _ => tolla + "j" }
} ; } ;
in nTolla ** { in nTolla ** {
s = \\nc => case nc of { s = \\nc => case nc of {
-- All plural forms and Sg Acc use the "tolla" stem -- All plural forms and Sg Acc use the "tolla" stem
@@ -240,6 +240,29 @@ oper
-- https://cl.lingfil.uu.se/~bea/publ/megyesi-hungarian.pdf -- https://cl.lingfil.uu.se/~bea/publ/megyesi-hungarian.pdf
-- TODO: teher ~ terhet (consonant-crossing) -- TODO: teher ~ terhet (consonant-crossing)
-- Worst case constructor: takes all stems
worstCaseNoun : (x1,_,_,_,_,_,_,_,x10 : Str) -> Harm -> Noun =
\nomsg,accsg,supsg,allsg,nompl,accpl,possdSg_possrP3sg,possdSg_PossrPl1,possdPl,h ->
let sgstem = tk 3 allsg ; -- remove -hoz/hez/höz
sginsstem : Str = case vowFinal sgstem of {
True => sgstem + "v" ;
False => duplicateLast sgstem } ;
in {s = table {
SgNom => nomsg ;
SgSup => supsg ;
SgAll => allsg ;
SgStem => sgstem ;
SgAccStem => init accsg ; -- remove t; same stem used for other forms
SgInsStem => sginsstem ;
PlStem => nompl ;
PlAcc => accpl ;
PossdSg_PossrP3 => init possdSg_possrP3sg ; -- remove -a/e
PossdSg_PossrPl1 => tk 2 possdSg_PossrPl1 ; -- remove -nk
PossdPl => possdPl } ;
h = h ;
} ;
-- All regNoun* are /smart paradigms/: they take one or a couple of forms, -- All regNoun* are /smart paradigms/: they take one or a couple of forms,
-- and decides which (non-smart) paradigm is the most likely to match. -- and decides which (non-smart) paradigm is the most likely to match.
regNoun4 : (nomsg, accsg, nompl, possdSg_possrP3sg : Str) -> Noun = regNoun4 : (nomsg, accsg, nompl, possdSg_possrP3sg : Str) -> Noun =

View File

@@ -135,6 +135,9 @@ oper
mkN : (x1,_,_,x4 : Str) -> N = mkN : (x1,_,_,x4 : Str) -> N =
\n,a,pln,possd -> lin N (regNoun4 n a pln possd) ; \n,a,pln,possd -> lin N (regNoun4 n a pln possd) ;
mkN : (x1,_,_,_,_,_,_,_,x9 : Str) -> N =
\a,b,c,d,e,f,g,h,i -> lin N (worstCaseNoun a b c d e f g h i (getHarm a)) ;
mkN : Str -> Harmony -> N = mkN : Str -> Harmony -> N =
\s,h -> lin N (mkNounHarm h (pluralAllomorph s) s) ; \s,h -> lin N (mkNounHarm h (pluralAllomorph s) s) ;