diff --git a/examples/attempto/Attempto.gf b/examples/attempto/Attempto.gf index c52ad2c29..546e525eb 100644 --- a/examples/attempto/Attempto.gf +++ b/examples/attempto/Attempto.gf @@ -24,6 +24,7 @@ cat IP ; cat IAdv ; cat QS ; cat Text ; +cat RP ; fun aNP : CN -> NP ; fun theNP : CN -> NP ; @@ -81,12 +82,12 @@ fun they_NP : NP ; -- reflexive pronouns: itself, himself, herself, himself/herself, themselves -fun someone_NP : NP ; +--fun someone_NP : NP ; fun somebody_NP : NP ; fun something_NP : NP ; -fun noone_NP : NP ; +--fun noone_NP : NP ; fun nothing_NP : NP ; -fun not_everyoneNP : NP ; +--fun not_everyoneNP : NP ; fun not_everybodyNP : NP ; fun not_everythingNP : NP ; @@ -127,13 +128,14 @@ fun relCN : CN -> RS -> CN ; fun relNP : NP -> RS -> NP ; fun andRS : RS -> RS -> RS ; fun orRS : RS -> RS -> RS ; -fun eachRS : RS -> RS ; -- each of who fun suchCN : CN -> S -> CN ; -fun predRS : VP -> RS ; -fun slashRS : NP -> V2 -> RS ; +fun predRS : RP -> VP -> RS ; +fun slashRS : RP -> NP -> V2 -> RS ; +fun which_RP : RP ; +fun eachRP : RP ; -- 2.2.4 @@ -191,8 +193,8 @@ fun coordS : Conj -> S -> S -> S ; fun and_Conj : Conj ; fun or_Conj : Conj ; -fun comma_and_Conj : Conj ; -- lower precedence -fun comma_or_Conj : Conj ; +fun commaAnd_Conj : Conj ; -- lower precedence +fun commaOr_Conj : Conj ; -- 3.4.3 diff --git a/examples/attempto/AttemptoI.gf b/examples/attempto/AttemptoI.gf index 6f7ae91ff..1841cd197 100644 --- a/examples/attempto/AttemptoI.gf +++ b/examples/attempto/AttemptoI.gf @@ -27,6 +27,7 @@ lincat IAdv = Syntax.IAdv ; lincat QS = Syntax.QS ; lincat Text = Syntax.Text ; lincat ACEText = Syntax.Text ; +lincat RP = Syntax.RP ; lincat MCN = Syntax.CN ; lincat PP = Adv ; @@ -67,6 +68,7 @@ lin floatNP = symb ; lin it_NP = mkNP it_Pron ; lin he_NP = mkNP he_Pron ; lin she_NP = mkNP she_Pron ; +lin he_she_NP = mkNP slash_Conj (mkNP he_Pron) (mkNP she_Pron) ; lin they_NP = mkNP they_Pron ; lin conjNP = mkNP and_Conj ; @@ -89,10 +91,10 @@ lin not_at_mostNP ca cn = mkNP not_Predet (mkNP (mkCard at_most_AdN ca) cn) ; lin more_thanNP ca = mkNP (mkCard (mkAdN more_CAdv) ca) ; lin not_more_thanNP ca cn = mkNP not_Predet (mkNP (mkCard (mkAdN more_CAdv) ca) cn) ; -lin nothing_butNP cn = mkNP nothing_but_Predet (mkNP a_Art plNum cn) ; -lin nothing_butMassNP cn = mkNP nothing_but_Predet (mkNP cn) ; ---lin nobody_butNP : PN -> NP ; -- nobody but John ---lin no_butNP : CN -> PN -> NP ; -- no man but John +lin nothing_butNP cn = mkNP nothing_NP (mkAdv except_Prep (mkNP a_Art plNum cn)) ; +lin nothing_butMassNP cn = mkNP nothing_NP (mkAdv except_Prep (mkNP cn)) ; +lin nobody_butNP pn = mkNP nobody_NP (mkAdv except_Prep (mkNP pn)) ; +lin no_butNP cn pn = mkNP (mkNP no_Quant plNum cn) (mkAdv except_Prep (mkNP pn)) ; lincat Unit = CN ; @@ -118,16 +120,16 @@ lin superlAP a = mkAP (mkOrd a) ; lin relCN = mkCN ; --lin relNP = mkNP ; -{- -lin andRS : RS -> RS -> RS ; -lin orRS : RS -> RS -> RS ; -lin eachRS : RS -> RS ; -- each of who --} + +lin andRS = mkRS and_Conj ; +lin orRS = mkRS or_Conj ; +lin eachRP = mkRP part_Prep (mkNP each_Det) Syntax.which_RP ; lin suchCN cn s = mkCN (mkAP (mkAP such_A) s) cn ; -lin predRS vp = mkRS (mkRCl which_RP vp) ; -lin slashRS np v2 = mkRS (mkRCl which_RP np v2) ; +lin predRS rp vp = mkRS (mkRCl rp vp) ; +lin slashRS rp np v2 = mkRS (mkRCl rp np v2) ; +lin which_RP = Syntax.which_RP ; -- 2.2.4 @@ -140,8 +142,7 @@ lin genOwnNP np cn = genitiveNP np (mkCN own_A cn) ; lin vpS np vp = mkS (mkCl np vp) ; lin neg_vpS np vp = mkS negativePol (mkCl np vp) ; - ---lin not_provably_vpS : NP -> VP -> S ; +lin not_provably_vpS np vp = mkS negativePol (mkCl np (mkVP vp provably_Adv)) ; lin vVP = mkVP ; lin v2VP = mkVP ; @@ -194,15 +195,17 @@ lin coordS = mkS ; lin and_Conj = Syntax.and_Conj ; lin or_Conj = Syntax.or_Conj ; ---lin comma_and_Conj : Conj ; -- lower precedence ---lin comma_or_Conj : Conj ; +lin commaAnd_Conj = comma_and_Conj ; +lin commaOr_Conj = comma_or_Conj ; -- 3.4.3 lin for_everyS cn = mkS (mkAdv for_Prep (mkNP every_Det cn)) ; lin for_eachS cn = mkS (mkAdv for_Prep (mkNP each_Det cn)) ; ---lin for_each_ofS : Card -> CN -> S -> S ; -- for each of 3 men ---lin for_allMassS : MCN -> S -> S ; -- for all water +lin for_each_ofS card cn = + mkS (mkAdv for_Prep (mkNP (mkNP each_Det) (mkAdv part_Prep (mkNP card cn)))) ; +lin for_allMassS cn = + mkS (mkAdv for_Prep (mkNP all_Predet (mkNP cn))) ; -- 3.4.4 @@ -219,7 +222,7 @@ lin necessaryS s = mkS (adj_thatCl necessary_A s) ; lin not_necessaryS s = mkS negativePol (adj_thatCl necessary_A s) ; ---lin thatS s t = mkS ; +--lin thatS s t = mkS s (mkAdv that_Subj t) ; -- 3.5 diff --git a/examples/attempto/LexAttempto.gf b/examples/attempto/LexAttempto.gf index 5b2ce5d9f..7bfa593d3 100644 --- a/examples/attempto/LexAttempto.gf +++ b/examples/attempto/LexAttempto.gf @@ -17,5 +17,9 @@ oper -- kg_Unit : Unit ; each_Det : Det ; + that_Subj : Subj ; + + comma_and_Conj : Conj ; + comma_or_Conj : Conj ; } diff --git a/examples/attempto/LexAttemptoEng.gf b/examples/attempto/LexAttemptoEng.gf index c1ea27b4c..65ed0aa28 100644 --- a/examples/attempto/LexAttemptoEng.gf +++ b/examples/attempto/LexAttemptoEng.gf @@ -4,6 +4,7 @@ instance LexAttemptoEng of LexAttempto = SyntaxEng, ParadigmsEng, ConstructX, + MakeStructuralEng, IrregEng in { oper @@ -22,4 +23,11 @@ oper each_Det = ExtraEng.each_Det ; + that_Subj = mkSubj "that" ; + + comma_and_Conj = mkConj [] ", and" plural ; + comma_or_Conj = mkConj [] ", or" singular ; + slash_Conj = mkConj [] "/" singular ; + + } diff --git a/examples/attempto/LexAttemptoFre.gf b/examples/attempto/LexAttemptoFre.gf index 91ebc32c4..91cd2eadf 100644 --- a/examples/attempto/LexAttemptoFre.gf +++ b/examples/attempto/LexAttemptoFre.gf @@ -1,5 +1,7 @@ instance LexAttemptoFre of LexAttempto = - open ExtraFre, SyntaxFre, ParadigmsFre, ConstructX, IrregFre in { + open ExtraFre, SyntaxFre, ParadigmsFre, ConstructX, + MakeStructuralFre, + IrregFre in { oper possible_A = mkA "possible" ; @@ -15,4 +17,11 @@ oper each_Det = every_Det ; ---- + that_Subj = mkSubj "que" ; ---- qu' + + comma_and_Conj = mkConj [] ", et" plural ; + comma_or_Conj = mkConj [] ", ou" singular ; + slash_Conj = mkConj [] "/" singular ; + + } diff --git a/examples/attempto/LexAttemptoGer.gf b/examples/attempto/LexAttemptoGer.gf index 9274d80f3..38bc4935d 100644 --- a/examples/attempto/LexAttemptoGer.gf +++ b/examples/attempto/LexAttemptoGer.gf @@ -1,5 +1,7 @@ instance LexAttemptoGer of LexAttempto = - open ExtraGer, SyntaxGer, ParadigmsGer, ConstructX, IrregGer in { + open ExtraGer, SyntaxGer, ParadigmsGer, ConstructX, + MakeStructuralGer, + IrregGer in { oper possible_A = mkA "möglich" ; @@ -15,4 +17,11 @@ oper each_Det = every_Det ; + that_Subj = mkSubj "daß" ; + + comma_and_Conj = mkConj [] ", und" plural ; + comma_or_Conj = mkConj [] ", oder" singular ; + slash_Conj = mkConj [] "/" singular ; + + } diff --git a/examples/attempto/LexAttemptoSwe.gf b/examples/attempto/LexAttemptoSwe.gf index 04cf4398c..31d145f19 100644 --- a/examples/attempto/LexAttemptoSwe.gf +++ b/examples/attempto/LexAttemptoSwe.gf @@ -1,5 +1,6 @@ instance LexAttemptoSwe of LexAttempto = - open ExtraSwe, SyntaxSwe, ParadigmsSwe, ConstructX, IrregSwe in { + open ExtraSwe, SyntaxSwe, ParadigmsSwe, ConstructX, + MakeStructuralSwe, IrregSwe in { oper possible_A = mkA "möjlig" ; @@ -14,4 +15,12 @@ oper genitiveNP np = mkNP (GenNP np) ; each_Det = every_Det ; ---- + + that_Subj = mkSubj "att" ; + + comma_and_Conj = mkConj [] ", och" plural ; + comma_or_Conj = mkConj [] ", eller" singular ; + slash_Conj = mkConj [] "/" singular ; + + }