mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
(Hun) Add 9-argument worst case noun constructor
This commit is contained in:
@@ -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 "" ;
|
||||||
|
|||||||
@@ -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 =
|
||||||
|
|||||||
@@ -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) ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user