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 boot_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 bread_N = mkN "kenyér" "kenyeret";
|
||||
lin break_V2 = mkV2 "szünet" ;
|
||||
@@ -132,7 +132,9 @@ lin floor_N = mkN "padló" "padlót" ;
|
||||
-- lin flow_V = mkV "" ;
|
||||
lin flower_N = mkN "virág" "virágot" "virágok" "virága" ;
|
||||
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 forest_N = mkN "erdő" "erdőt" ;
|
||||
-- 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 shop_N = mkN "üzlet" "üzletet";
|
||||
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 sister_N = mkN "" ;
|
||||
-- lin sit_V = mkV "" ;
|
||||
@@ -332,7 +336,7 @@ lin smooth_A = mkA "sima" ;
|
||||
lin snake_N = mkN "kígyó" "kígyót" ;
|
||||
lin snow_N = mkN "hó" "havat" ;
|
||||
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 spit_V = mkV "" ;
|
||||
-- lin split_V2 = mkV2 "" ;
|
||||
|
||||
@@ -172,7 +172,8 @@ oper
|
||||
-- NB. plafon, papír with dPlafon
|
||||
False => case tolla of {
|
||||
-- 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
|
||||
_ + #c + ("a"|"e") => init tolla ;
|
||||
@@ -180,9 +181,9 @@ oper
|
||||
-- orr, orr|ot -> orr|a
|
||||
-- TODO fails for gyümölcs, gyümölcs|öt -> gyümölcs|e
|
||||
-- I don't know what this list means /IL
|
||||
_ + #v + ("sz"|"z"|"s"|"zs"|"j"|"ly"|"l"
|
||||
|"r"|"n"|"ny"|"ssz"|"zz"|"ss"
|
||||
|"ll"|"rr"|"nn"|"ns"|"nsz"|"nz") + ("o"|"ö") => init tolla ;
|
||||
_ + #v + ("sz"|"z"|"s"|"zs"|"j"|"ly"|"l"|"r"|"n"|"ny"
|
||||
|"ssz"|"zz"|"ss"|"ll"|"rr"|"nn"|"ns"|"nsz"|"nz")
|
||||
+ ("o"|"ö") => init tolla ;
|
||||
|
||||
-- nap, nap|ot -> napj|a
|
||||
-- bank, bank|ot -> bankj|a
|
||||
@@ -193,7 +194,6 @@ oper
|
||||
-- háború, háború|t -> háborúj|a
|
||||
_ => tolla + "j" }
|
||||
} ;
|
||||
|
||||
in nTolla ** {
|
||||
s = \\nc => case nc of {
|
||||
-- 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
|
||||
-- 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,
|
||||
-- and decides which (non-smart) paradigm is the most likely to match.
|
||||
regNoun4 : (nomsg, accsg, nompl, possdSg_possrP3sg : Str) -> Noun =
|
||||
|
||||
@@ -135,6 +135,9 @@ oper
|
||||
mkN : (x1,_,_,x4 : Str) -> N =
|
||||
\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 =
|
||||
\s,h -> lin N (mkNounHarm h (pluralAllomorph s) s) ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user