added Human/NonHuman gender to select the right relative pronoun

This commit is contained in:
Krasimir Angelov
2026-05-07 08:39:07 +02:00
parent 9265270a0c
commit 44ea945c8c
13 changed files with 82 additions and 65 deletions

View File

@@ -7,7 +7,7 @@ concrete AdjectiveHun of Adjective = CatHun ** open ResHun, Prelude in {
-- : A -> AP ; -- : A -> AP ;
PositA a = emptyAP ** { PositA a = emptyAP ** {
s = \\n,c => s = \\n,c =>
let adj : Noun = (a ** {s = a.s ! Posit}) in let adj : Noun = (a ** {s = a.s ! Posit; g = NonHuman}) in
caseFromStem glue adj c n ; caseFromStem glue adj c n ;
} ; } ;
@@ -35,7 +35,7 @@ concrete AdjectiveHun of Adjective = CatHun ** open ResHun, Prelude in {
-- : A -> AP ; -- warmer -- : A -> AP ; -- warmer
UseComparA a = emptyAP ** { UseComparA a = emptyAP ** {
s = \\n,c => s = \\n,c =>
let adj : Noun = (a ** {s = a.s ! Compar}) in let adj : Noun = (a ** {s = a.s ! Compar; g = NonHuman}) in
caseFromStem glue adj c n ; caseFromStem glue adj c n ;
} ; } ;

View File

@@ -52,12 +52,12 @@ lin
in np ** {s = linTable} ; in np ** {s = linTable} ;
-- Relative sentences -- Relative sentences
lincat lincat
[RS] = {s1,s2 : Number => Case => Str} ; [RS] = {s1,s2 : Gender => Number => Case => Str} ;
lin lin
BaseRS = twoTable2 Number Case ; BaseRS = twoTable3 Gender Number Case ;
ConsRS = consrTable2 Number Case comma ; ConsRS = consrTable3 Gender Number Case comma ;
ConjRS = conjunctDistrTable2 Number Case ; ConjRS = conjunctDistrTable3 Gender Number Case ;
{- {-
lincat lincat

View File

@@ -173,7 +173,7 @@ oper
\noun,n,c -> caseFromStem glue noun c n ; \noun,n,c -> caseFromStem glue noun c n ;
adjCase : Adjective -> Degree -> Number -> Case -> Str = adjCase : Adjective -> Degree -> Number -> Case -> Str =
\adj,d,n,c -> caseFromStem glue {s = adj.s ! d ; h = adj.h} c n ; \adj,d,n,c -> caseFromStem glue {s = adj.s ! d ; h = adj.h ; g = NonHuman} c n ;
possForm : Noun -> Number -> Person -> Number -> Str = possForm : Noun -> Number -> Person -> Number -> Str =
\noun,possd,person,possr -> \noun,possd,person,possr ->

View File

@@ -11,4 +11,8 @@ lin
CompoundN n1 n2 = CompoundN n1 n2 =
n2 ** {s = \\nc => n1.s ! SgNom ++ BIND ++ n2.s ! nc} ; n2 ** {s = \\nc => n1.s ! SgNom ++ BIND ++ n2.s ! nc} ;
UseDAP = DetNP ;
UseDAPMasc,
UseDAPFem = \dap -> DetNP dap ** {g = Human} ;
} ; } ;

View File

@@ -19,7 +19,7 @@ lin art_N = mkN "művészet" "művészetet" ;
---- ----
-- B -- B
lin baby_N = mkN "bébi" "bébit" ; lin baby_N = humanN (mkN "bébi" "bébit") ;
-- lin back_N = mkN "" ; -- lin back_N = mkN "" ;
lin bad_A = mkA "rossz" ; lin bad_A = mkA "rossz" ;
lin bank_N = mkN "bank" "bankot" ; lin bank_N = mkN "bank" "bankot" ;
@@ -65,7 +65,7 @@ lin cat_N = mkN "macska" "macskát";
lin ceiling_N = roof_N ; lin ceiling_N = roof_N ;
lin chair_N = mkN "szék" "széket"; lin chair_N = mkN "szék" "széket";
lin cheese_N = mkN "sajt" "sajtot" ; lin cheese_N = mkN "sajt" "sajtot" ;
lin child_N = mkN "gyerek" "gyereket" ; lin child_N = humanN (mkN "gyerek" "gyereket") ;
lin church_N = mkN "templom" "templomot" ; lin church_N = mkN "templom" "templomot" ;
lin city_N = mkN "város" "várost" ; lin city_N = mkN "város" "várost" ;
lin clean_A = mkA "tiszta" ; lin clean_A = mkA "tiszta" ;
@@ -92,7 +92,7 @@ lin day_N = mkN "nap" "napot" ;
-- lin dirty_A = mkA "" ; -- lin dirty_A = mkA "" ;
-- lin distance_N3 = mkN "" ; -- lin distance_N3 = mkN "" ;
-- lin do_V2 = mkV2 do_V ; -- lin do_V2 = mkV2 do_V ;
lin doctor_N = mkN "orvos" "orvost"; lin doctor_N = humanN (mkN "orvos" "orvost");
lin dog_N = mkN "kutya" "kutyát"; lin dog_N = mkN "kutya" "kutyát";
lin door_N = mkN "ajtó" "ajtót" ; lin door_N = mkN "ajtó" "ajtót" ;
-- lin drink_V2 = mkV2 "" ; -- lin drink_V2 = mkV2 "" ;
@@ -139,7 +139,7 @@ lin forest_N = mkN "erdő" "erdőt" ;
-- lin forget_V2 = mkV2 "" ; -- lin forget_V2 = mkV2 "" ;
-- lin freeze_V = mkV "" ; -- lin freeze_V = mkV "" ;
lin fridge_N = mkN "hűtő" "hűtőt" ; lin fridge_N = mkN "hűtő" "hűtőt" ;
lin friend_N = mkN "barát" "barátot" ; lin friend_N = humanN (mkN "barát" "barátot") ;
lin fruit_N = mkN "gyümölcs" "gyümölcsöt" "gyümölcsök" "gyümölcse" ; --TODO: plural PossPl2 fails "gyümölcseitek" instead of "gyümölcseitök", wovel harmony changing? lin fruit_N = mkN "gyümölcs" "gyümölcsöt" "gyümölcsök" "gyümölcse" ; --TODO: plural PossPl2 fails "gyümölcseitek" instead of "gyümölcseitök", wovel harmony changing?
lin full_A = mkA "tele" ; lin full_A = mkA "tele" ;
-- --lin fun_AV -- --lin fun_AV
@@ -148,7 +148,7 @@ lin full_A = mkA "tele" ;
-- G -- G
lin garden_N = mkN "kert" "kertet" ; lin garden_N = mkN "kert" "kertet" ;
lin girl_N = mkN "lány" "lányt"; lin girl_N = humanN (mkN "lány" "lányt");
-- lin give_V3 = mkV3 "" ; -- lin give_V3 = mkV3 "" ;
lin glove_N = mkN "kesztyű" "kesztyűt" ; lin glove_N = mkN "kesztyű" "kesztyűt" ;
-- lin go_V = mkV "" ; -- lin go_V = mkV "" ;
@@ -179,7 +179,7 @@ lin horse_N = mkN "ló" "lovat";
lin hot_A = mkA "forró" ; lin hot_A = mkA "forró" ;
lin house_N = mkN "ház" "házat" ; lin house_N = mkN "ház" "házat" ;
-- lin hunt_V2 = mkV2 "" ; -- lin hunt_V2 = mkV2 "" ;
lin husband_N = mkN "férj" "férjet"; lin husband_N = humanN (mkN "férj" "férjet");
-------- --------
-- I - K -- I - K
@@ -190,7 +190,7 @@ lin iron_N = mkN "vas" "vasat" ;
-- lin john_PN = mkPN "" ; -- lin john_PN = mkPN "" ;
-- lin jump_V = mkV "" ; -- lin jump_V = mkV "" ;
-- lin kill_V2 = mkV2 "" ; -- lin kill_V2 = mkV2 "" ;
lin king_N = mkN "király" "királyt" ; lin king_N = humanN (mkN "király" "királyt") ;
lin knee_N = mkN "térd" "térdet"; lin knee_N = mkN "térd" "térdet";
-- lin know_V2 = mkV2 "" ; -- lin know_V2 = mkV2 "" ;
-- lin know_VQ = mkVQ "" ; -- lin know_VQ = mkVQ "" ;
@@ -223,12 +223,12 @@ lin love_N = mkN "szerelem" "szerelmet";
---- ----
-- M -- M
lin man_N = mkN "férfi" "ak" harmA ; -- force plural allomorph and a-harmony lin man_N = humanN (mkN "férfi" "ak" harmA) ; -- force plural allomorph and a-harmony
lin married_A2 = mkA2 "házas" Ins ; lin married_A2 = mkA2 "házas" Ins ;
lin meat_N = mkN "hús" "húst"; lin meat_N = mkN "hús" "húst";
lin milk_N = mkN "tej" "tejet" ; lin milk_N = mkN "tej" "tejet" ;
lin moon_N = mkN "hold" "holdat" ; lin moon_N = mkN "hold" "holdat" ;
lin mother_N2 = mkN2 (mkN "anya" "anyát") ; lin mother_N2 = mkN2 (humanN (mkN "anya" "anyát")) ;
lin mountain_N = mkN "hegy" "hegyet"; lin mountain_N = mkN "hegy" "hegyet";
lin mouth_N = mkN "száj" "szájat" ; lin mouth_N = mkN "száj" "szájat" ;
lin music_N = mkN "zene" "zenét"; lin music_N = mkN "zene" "zenét";
@@ -259,12 +259,12 @@ lin paper_N = mkN "papír" "papírt" "papírok" "papírja" ;
-- lin paris_PN = mkPN "Paris" ; -- lin paris_PN = mkPN "Paris" ;
lin peace_N = mkN "béke" "békét"; lin peace_N = mkN "béke" "békét";
lin pen_N = mkN "toll" "tollat" ; lin pen_N = mkN "toll" "tollat" ;
lin person_N = mkN "ember" "embert"; lin person_N = humanN (mkN "ember" "embert");
lin planet_N = mkN "bolygó" "bolygót" ; lin planet_N = mkN "bolygó" "bolygót" ;
lin plastic_N = mkN "műanyag" "műanyagot" "műanyagok" "műanyaga" ; lin plastic_N = mkN "műanyag" "műanyagot" "műanyagok" "műanyaga" ;
-- lin play_V = mkV "" ; -- lin play_V = mkV "" ;
lin policeman_N = mkN "rendőr" "rendőrt"; --the police "rendőrség" lin policeman_N = humanN (mkN "rendőr" "rendőrt"); --the police "rendőrség"
lin priest_N = mkN "pap" "papot" "papok" "papja" ; lin priest_N = humanN (mkN "pap" "papot" "papok" "papja") ;
-- lin pull_V2 = mkV2 "" ; -- lin pull_V2 = mkV2 "" ;
-- lin push_V2 = mkV2 "" ; -- lin push_V2 = mkV2 "" ;
-- lin put_V2 = mkV2 "" ; -- lin put_V2 = mkV2 "" ;
@@ -272,7 +272,7 @@ lin priest_N = mkN "pap" "papot" "papok" "papja" ;
-- -------- -- --------
-- -- Q - R -- -- Q - R
-- --
lin queen_N = mkN "kírálynő" "kírálynőt" ; lin queen_N = humanN (mkN "kírálynő" "kírálynőt") ;
lin question_N = mkN "kérdés" "kérdést" ; lin question_N = mkN "kérdés" "kérdést" ;
lin radio_N = mkN "rádió" "rádiót" ; lin radio_N = mkN "rádió" "rádiót" ;
lin rain_N = mkN "eső" "esőt" ; lin rain_N = mkN "eső" "esőt" ;
@@ -363,7 +363,7 @@ lin table_N = mkN "asztal" "asztalt";
lin tail_N = mkN "farok" "farkot"; lin tail_N = mkN "farok" "farkot";
lin talk_V3 = mkV3 "beszél" ; lin talk_V3 = mkV3 "beszél" ;
-- lin teach_V2 = mkV2 "" ; -- lin teach_V2 = mkV2 "" ;
lin teacher_N = mkN "tanár" "tanárt" ; lin teacher_N = humanN (mkN "tanár" "tanárt") ;
lin television_N = mkN "tévé" "tévét" ; --also "televízió" but not used lin television_N = mkN "tévé" "tévét" ; --also "televízió" but not used
lin thick_A = mkA "vastag" ; lin thick_A = mkA "vastag" ;
lin thin_A = mkA "vekony" ; lin thin_A = mkA "vekony" ;
@@ -401,14 +401,14 @@ lin water_N = mkN "víz" "vizet" ;
lin wet_A = mkA "nedves" ; lin wet_A = mkA "nedves" ;
lin white_A = mkA "fehér" ; lin white_A = mkA "fehér" ;
lin wide_A = mkA "széles" ; lin wide_A = mkA "széles" ;
lin wife_N = mkN "feleség" "feleséget" ; lin wife_N = humanN (mkN "feleség" "feleséget") ;
-- lin win_V2 = mkV2 "" ; -- lin win_V2 = mkV2 "" ;
lin wind_N = mkN "szél" "szelet" ; lin wind_N = mkN "szél" "szelet" ;
lin window_N = mkN "ablak" "ablakot" "ablakok" "ablaka" ; lin window_N = mkN "ablak" "ablakot" "ablakok" "ablaka" ;
lin wine_N = mkN "bor" "bort"; lin wine_N = mkN "bor" "bort";
lin wing_N = mkN "szárny" "szárnyat"; lin wing_N = mkN "szárny" "szárnyat";
-- lin wipe_V2 = mkV2 "" ; -- lin wipe_V2 = mkV2 "" ;
lin woman_N = mkN "nő" "nőt" ; lin woman_N = humanN (mkN "nő" "nőt") ;
-- lin wonder_VQ = mkVQ "" ; -- lin wonder_VQ = mkVQ "" ;
lin wood_N = mkN "fa" "fát"; --same as tree lin wood_N = mkN "fa" "fát"; --same as tree
lin worm_N = mkN "féreg" "férget"; --also "kukac" lin worm_N = mkN "féreg" "férget"; --also "kukac"

View File

@@ -65,7 +65,7 @@ concrete NounHun of Noun = CatHun ** open
-- : NP -> RS -> NP ; -- Paris, which is here -- : NP -> RS -> NP ; -- Paris, which is here
RelNP np rs = np ** { RelNP np rs = np ** {
s = \\p,c => np.s ! p ! c ++ bindComma ++ rs.s ! np.agr.p2 ! c ; s = \\p,c => np.s ! p ! c ++ bindComma ++ rs.s ! np.g ! np.agr.p2 ! c ;
} ; } ;
-- Determiners can form noun phrases directly. -- Determiners can form noun phrases directly.
@@ -159,7 +159,7 @@ concrete NounHun of Noun = CatHun ** open
-- : A -> Ord ; -- : A -> Ord ;
OrdSuperl a = { OrdSuperl a = {
s = \\n,c => s = \\n,c =>
let adj : Noun = (a ** {s = a.s ! Superl}) in let adj : Noun = (a ** {s = a.s ! Superl; g=NonHuman}) in
caseFromStem glue adj c n ; caseFromStem glue adj c n ;
n = Sg -- ?? is this meaningful? n = Sg -- ?? is this meaningful?
} ; } ;
@@ -220,7 +220,7 @@ concrete NounHun of Noun = CatHun ** open
-- : CN -> RS -> CN ; -- : CN -> RS -> CN ;
RelCN cn rs = cn ** { RelCN cn rs = cn ** {
compl = \\n,c => cn.compl ! n ! c ++ rs.s ! n ! c compl = \\n,c => cn.compl ! n ! c ++ rs.s ! cn.g ! n ! c
} ; } ;
-- : CN -> Adv -> CN ; -- : CN -> Adv -> CN ;
@@ -248,29 +248,20 @@ concrete NounHun of Noun = CatHun ** open
--2 Possessive and partitive constructs --2 Possessive and partitive constructs
-- : PossNP : CN -> NP -> CN ; -- : PossNP : CN -> NP -> CN ;
-- PossNP cn np = cn ** { PossNP cn np = cn ** {
-- compl = \\n,c => cn.compl ! n ! c ++ np.s ! Poss P3 n ! c -- TODO check compl = \\n,c => cn.compl ! n ! c ++ np.s ! NoPoss ! Dat ++ np.postmod
-- } ; } ;
-- : CN -> NP -> CN ; -- glass of wine / two kilos of red apples -- : CN -> NP -> CN ; -- glass of wine / two kilos of red apples
-- PartNP cn np = cn ** { -- PartNP cn np = cn ** {
-- } ; -- } ;
{-
-- This is different from the partitive, as shown by many languages.
-- : Det -> NP -> NP ;
CountNP det np = np **
{ } ; -- Nonsense for DefArt or IndefArt
--3 Conjoinable determiners and ones with adjectives --3 Conjoinable determiners and ones with adjectives
-- : DAP -> AP -> DAP ; -- the large (one) -- : DAP -> AP -> DAP ; -- the large (one)
AdjDAP dap ap = dap ** { } ; AdjDAP dap ap = dap ;
-- : Det -> DAP ; -- this (or that) -- : Det -> DAP ; -- this (or that)
DetDAP det = det ; DetDAP det = det ;
-}
} }

View File

@@ -1,7 +1,7 @@
resource NounMorphoHun = ParamHun ** open Prelude, Predef in { resource NounMorphoHun = ParamHun ** open Prelude, Predef in {
oper oper
Noun = {s : NumCaseStem => Str ; h : Harm} ; Noun = {s : NumCaseStem => Str ; h : Harm ; g : Gender} ;
-- Paradigm functions -- Paradigm functions
-- http://www.cse.chalmers.se/~aarne/articles/smart-preprint.pdf -- http://www.cse.chalmers.se/~aarne/articles/smart-preprint.pdf
@@ -275,6 +275,7 @@ oper
PossdSg_PossrSg1P2 => init possdSg_PossrSg1P2 ; PossdSg_PossrSg1P2 => init possdSg_PossrSg1P2 ;
PossdPl => possdPl } ; PossdPl => possdPl } ;
h = h ; h = h ;
g = NonHuman
} ; } ;
@@ -593,7 +594,7 @@ oper
-- All other singular forms and stems -- All other singular forms and stems
c => w + endCaseSg c ! h } ; c => w + endCaseSg c ! h } ;
g = NonHuman
} ; } ;

View File

@@ -25,6 +25,8 @@ oper
mkN : (unoka : Str) -> (testvér : N) -> N ; -- Compound noun. Use: `mkN "unoka" (mkN "testvér")` (would give wrong harmony with `mkN "unokatestvér"`) mkN : (unoka : Str) -> (testvér : N) -> N ; -- Compound noun. Use: `mkN "unoka" (mkN "testvér")` (would give wrong harmony with `mkN "unokatestvér"`)
} ; } ;
humanN : N -> N = \n -> n ** {g = Human} ;
mkPN : overload { mkPN : overload {
mkPN : Str -> PN ; -- Singular PN out of a string mkPN : Str -> PN ; -- Singular PN out of a string
mkPN : Str -> Number -> PN -- PN with a given number mkPN : Str -> Number -> PN -- PN with a given number

View File

@@ -56,6 +56,7 @@ oper
-- Nouns -- Nouns
param param
Gender = Human | NonHuman ;
NumCaseStem = NumCaseStem =
SgNom | SgAccStem | SgSup -- These may use 2-3 different stems SgNom | SgAccStem | SgSup -- These may use 2-3 different stems

View File

@@ -13,16 +13,30 @@ lin
-- : RP ; -- : RP ;
IdRP = {s = IdRP = {s =
table {Sg => caseTable "ami" "amit" "aminek" -- nom, acc, dat table {
"amibe" "amiben" "amiből" -- ill, ine, ela Human =>
"amihez" "aminél" "amitől" -- all, ade, abl table {Sg => caseTable "aki" "akit" "akinek" -- nom, acc, dat
"amire" "amin" "amiről" -- sub, sup, del "akibe" "akiben" "akiből" -- ill, ine, ela
"amiért" "amivel" "amivé" ; -- cau, ins, tra "akihez" "akinél" "akitől" -- all, ade, abl
Pl => caseTable "amik" "amiket" "amiknek" -- nom, acc, dat "akire" "akin" "akiről" -- sub, sup, del
"amikbe" "amikben" "amikből" -- ill, ine, ela "akiért" "akivel" "akivé" ; -- cau, ins, tra
"amikhez" "amiknél" "amiktől" -- all, ade, abl Pl => caseTable "akik" "akiket" "akiknek" -- nom, acc, dat
"amikre" "amiken" "amikről" -- sub, sup, del "akikbe" "akikben" "akikből" -- ill, ine, ela
"amikért" "amikkel" "amikké"}; -- cau, ins, tra "akikhez" "akikl" "akiktől" -- all, ade, abl
"akikre" "akiken" "akikről" -- sub, sup, del
"akikért" "akikkel" "akikké"} ; -- cau, ins, tra
NonHuman =>
table {Sg => caseTable "ami" "amit" "aminek" -- nom, acc, dat
"amibe" "amiben" "amiből" -- ill, ine, ela
"amihez" "aminél" "amitől" -- all, ade, abl
"amire" "amin" "amiről" -- sub, sup, del
"amiért" "amivel" "amivé" ; -- cau, ins, tra
Pl => caseTable "amik" "amiket" "amiknek" -- nom, acc, dat
"amikbe" "amikben" "amikből" -- ill, ine, ela
"amikhez" "amiknél" "amiktől" -- all, ade, abl
"amikre" "amiken" "amikről" -- sub, sup, del
"amikért" "amikkel" "amikké"} -- cau, ins, tra
} ;
} ; } ;
-- : Prep -> NP -> RP -> RP ; -- the mother of whom -- : Prep -> NP -> RP -> RP ; -- the mother of whom

View File

@@ -16,6 +16,7 @@ oper
CNoun : Type = Noun ** { CNoun : Type = Noun ** {
compl : Number => Case => Str ; compl : Number => Case => Str ;
postmod : Str ; postmod : Str ;
g : Gender
} ; } ;
mkCaseNoun : Str -> Number => Case => Str = \s -> mkCaseNoun : Str -> Number => Case => Str = \s ->
@@ -75,6 +76,7 @@ oper
agr : Person*Number ; agr : Person*Number ;
objdef : ObjDef ; objdef : ObjDef ;
empty : Str ; -- standard trick for pro-drop empty : Str ; -- standard trick for pro-drop
g : Gender ;
} ; } ;
NounPhrase : Type = BaseNP ** { NounPhrase : Type = BaseNP ** {
@@ -86,6 +88,7 @@ oper
s = \\_,_ => [] ; s = \\_,_ => [] ;
agr = <P3,Sg> ; agr = <P3,Sg> ;
objdef = Indef ; objdef = Indef ;
g = NonHuman ;
postmod, empty = [] ; postmod, empty = [] ;
} ; } ;
@@ -604,16 +607,16 @@ oper
-- Relative -- Relative
RP : Type = {s : Number => Case => Str} ; RP : Type = {s : Gender => Number => Case => Str} ;
RClause : Type = {s : Tense => Anteriority => Polarity => Number => Case => Str} ; RClause : Type = {s : Tense => Anteriority => Polarity => Gender => Number => Case => Str} ;
relVP : RP -> VerbPhrase -> RClause = \rp -> relVP' (rp ** {agr=<P3,Sg>}) ; relVP : RP -> VerbPhrase -> RClause = \rp -> relVP' (rp ** {agr=<P3,Sg>}) ;
relVP' : RP ** {agr : Person*Number} -> VerbPhrase -> RClause = \rp,vp -> { relVP' : RP ** {agr : Person*Number} -> VerbPhrase -> RClause = \rp,vp -> {
s = \\t,a,p,n,c => let subjcase : Case = case vp.sc of { s = \\t,a,p,g,n,c => let subjcase : Case = case vp.sc of {
SCNom => Nom ; SCNom => Nom ;
SCDat => Dat } SCDat => Dat }
in rp.s ! n ! subjcase in rp.s ! g ! n ! subjcase
++ if_then_Pol p [] "nem" ++ if_then_Pol p [] "nem"
++ vp.obj -- ! <rp.agr.p1,n> ++ vp.obj -- ! <rp.agr.p1,n>
++ vp.adv ++ vp.adv
@@ -625,10 +628,11 @@ oper
} ; } ;
relSlash : RP -> ClSlash -> RClause = \rp,cls -> { relSlash : RP -> ClSlash -> RClause = \rp,cls -> {
s = \\t,a,p,n,c => let objcase : Case = case cls.c2 of { s = \\t,a,p,g,n,c => let objcase : Case = case cls.c2 of {
Acc => c ; Acc => c ;
_ => cls.c2 } _ => cls.c2
in rp.s ! n ! objcase }
in rp.s ! g ! n ! objcase
++ cls.s ! t ! a ! p ++ cls.s ! t ! a ! p
} ; } ;
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------

View File

@@ -56,7 +56,7 @@ lin
UseQCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p} ; UseQCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p} ;
-- : Temp -> Pol -> RCl -> RS ; -- : Temp -> Pol -> RCl -> RS ;
UseRCl t p cl = {s = \\n,c => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! n ! c} ; UseRCl t p cl = {s = \\g,n,c => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! g ! n ! c} ;
-- AdvS : Adv -> S -> S ; -- then I will go home -- AdvS : Adv -> S -> S ; -- then I will go home
AdvS = advS "" ; AdvS = advS "" ;

View File

@@ -121,14 +121,14 @@ lin under_Prep = nomAdp "alatt" ;
-- Pron -- Pron
-- Pronouns are closed class, no constructor in ParadigmsHun. -- Pronouns are closed class, no constructor in ParadigmsHun.
i_Pron = pronTable ! <P1,Sg> ; i_Pron = pronTable ! <P1,Sg> ** {g = Human} ;
youPol_Pron, youPol_Pron,
youSg_Pron = pronTable ! <P2,Sg> ; youSg_Pron = pronTable ! <P2,Sg> ** {g = Human} ;
he_Pron, he_Pron,
she_Pron, she_Pron = pronTable ! <P3,Sg> ** {g = Human} ;
it_Pron = pronTable ! <P3,Sg> ; it_Pron = pronTable ! <P3,Sg> ;
we_Pron = pronTable ! <P1,Pl> ; we_Pron = pronTable ! <P1,Pl> ** {g = Human} ;
youPl_Pron = pronTable ! <P2,Pl> ; youPl_Pron = pronTable ! <P2,Pl> ** {g = Human} ;
they_Pron = pronTable ! <P3,Pl> ; they_Pron = pronTable ! <P3,Pl> ;
--lin whatPl_IP = ; --lin whatPl_IP = ;