Merge branch 'GrammaticalFramework:master' into master

This commit is contained in:
Meowyam
2023-02-23 15:35:29 +08:00
committed by GitHub
7 changed files with 102 additions and 6 deletions

View File

@@ -267,6 +267,7 @@ abstract Extend = Cat ** {
weFem_Pron : Pron ; -- we (Fem)
youPlFem_Pron : Pron ; -- you plural (Fem)
theyFem_Pron : Pron ; -- they (Fem)
theyNeutr_Pron : Pron ; -- they (Neutr)
youPolFem_Pron : Pron ; -- you polite (Fem)
youPolPl_Pron : Pron ; -- you polite plural (Masc)
youPolPlFem_Pron : Pron ; -- you polite plural (Fem)
@@ -298,4 +299,7 @@ fun
PlSurname : SN -> PN ;
FullName : GN -> SN -> PN ;
fun
AnaphPron : NP -> Pron ;
}

View File

@@ -321,5 +321,17 @@ lin FullName gn sn = {
gn = GSg (sex2gender gn.g)
} ;
lin AnaphPron np =
case <np.gn, np.p> of {
<GSg _, PronP1> => i_Pron ;
<GSg _, PronP2> => youSg_Pron ;
<GSg Masc, _> => he_Pron ;
<GSg Fem, _> => she_Pron ;
<GSg Neutr, _> => it_Pron ;
<GPl, PronP1> => we_Pron ;
<GPl, PronP2> => youPl_Pron ;
<GPl, _> => they_Pron
} ;
}

View File

@@ -89,4 +89,5 @@ concrete CatChi of Cat = CommonX - [Tense, Temp, Ant, Adv] ** open ResChi, Prelu
linref
S = linS ;
Prep = linPrep ;
}

View File

@@ -1,10 +1,69 @@
--# -path=alltenses:../common:../abstract
concrete ExtendChi of Extend = CatChi **
ExtendFunctor - [ProDrop,ComplDirectVS, ComplDirectVQ]
with (Grammar=GrammarChi) ** open Prelude, ResChi in {
ExtendFunctor - [
VPS, ListVPS, VPI, ListVPI
, MkVPS, BaseVPS, ConsVPS, ConjVPS
, PredVPS, SQuestVPS, RelVPS --, QuestVPS -- TODO
, MkVPI, BaseVPI, ConsVPI, ConjVPI --, ComplVPIVV -- TODO
, VPS2, ListVPS2, VPI2, ListVPI2
, MkVPS2, BaseVPS2, ConsVPS2, ConjVPS2, ComplVPS2, ReflVPS2
, MkVPI2, BaseVPI2, ConsVPI2, ConjVPI2, ComplVPI2
, ProDrop, ComplDirectVS, ComplDirectVQ
, PassVPSlash, PassAgentVPSlash ]
with (Grammar=GrammarChi) ** open
Prelude
, Coordination
, ResChi
, (S=StructuralChi)
in {
lincat
VPS, VPI = SS ;
[VPS], [VPI] = ListX ;
VPS2, VPI2 = SS ** {c2 : Preposition ; isPre : Bool} ; -- whether the missing arg is before verb
[VPS2], [VPI2] = ListX ** {c2 : Preposition ; isPre : Bool} ;
lin
PassVPSlash vps = insertAdv (mkNP passive_s) vps ;
PassAgentVPSlash vps np = insertAdv (ss (appPrep S.by8agent_Prep np.s)) (insertAdv (mkNP passive_s) vps) ;
MkVPS t p vp = {s = t.s ++ p.s ++ (mkClause [] vp).s ! p.p ! t.t} ;
ConjVPS c = conjunctDistrSS (c.s ! CSent) ;
BaseVPS = twoSS ;
ConsVPS = consrSS duncomma ;
-- : NP -> VPS -> S ; -- she [has walked and won't sleep]
PredVPS np vps = {preJiu = np.s ; postJiu = vps.s} ;
-- : NP -> VPS -> QS ; -- has she walked
SQuestVPS np vps = {s = \\_ => np.s ++ vps.s ++ question_s} ;
-- : IP -> VPS -> QS ; -- who has walked
-- QuestVPS ip vps = -- TODO: probably need to change structure of VPS
-- : RP -> VPS -> RS ; -- which won't sleep
RelVPS rp vps = {s = rp.s ! True ++ vps.s} ;
MkVPI vp = {s = (mkClause [] vp).s ! Pos ! APlain} ;
ConjVPI c = conjunctDistrSS (c.s ! CSent) ;
BaseVPI = twoSS ;
ConsVPI = consrSS duncomma ;
MkVPS2 t p vps = {s = t.s ++ p.s ++ (mkClause [] <vps : ResChi.VP>).s ! p.p ! t.t} ** vps ;
ConjVPS2 c vs = conjunctDistrSS (c.s ! CSent) vs ** vs ;
BaseVPS2 v w = twoSS v w ** w ;
ConsVPS2 v vs = consrSS duncomma v vs ** vs ;
MkVPI2 vps = {s = (mkClause [] <vps : ResChi.VP>).s ! Pos ! APlain} ** vps ;
ConjVPI2 c vs = conjunctDistrSS (c.s ! CSent) vs ** vs ;
BaseVPI2 v w = twoSS v w ** w ;
ConsVPI2 v vs = consrSS duncomma v vs ** vs ;
GenNP np = {s,pl = np.s ++ possessive_s ; detType = DTPoss} ;
GenRP nu cn = {s = \\_ => cn.s ++ relative_s} ;
ProDrop pron = pron ** {s = []} ;
ComplDirectVS vs utt =
AdvVP (UseV <lin V vs : V>)
@@ -14,12 +73,12 @@ concrete ExtendChi of Extend = CatChi **
(mkAdv (":" ++ quoted utt.s)) ; -- DEFAULT complement added as Adv in quotes
oper
mkAdv : Str -> Adv ;
mkAdv : Str -> CatChi.Adv ;
mkAdv str = lin Adv {s = str ; advType = ATManner ; hasDe = False} ;
lin GivenName, MaleSurname, FemaleSurname, PlSurname = \n -> n ;
lin FullName gn sn = {
s = gn.s ++ sn.s
} ;
};

View File

@@ -290,6 +290,8 @@ oper
hasDe = advTypeHasDe at ;
} ;
linPrep : Preposition -> Str = \p -> p.prepPre ++ p.prepPost ;
advTypeHasDe : AdvType -> Bool = \at -> case at of {
ATPoss => True ;
_ => False

View File

@@ -114,6 +114,7 @@ lin
weFem_Pron = we_Pron ; -- DEFAULT we (masc)
youPlFem_Pron = youPl_Pron ; -- DEFAULT you plural (masc)
theyFem_Pron = they_Pron ; -- DEFAULT they (masc)
theyNeutr_Pron = they_Pron ; -- DEFAULT they (masc)
youPolFem_Pron = youPol_Pron ; -- DEFAULT you polite (masc)
youPolPl_Pron = youPl_Pron ; -- DEFAULT you plural (masc)
youPolPlFem_Pron = youPl_Pron ; -- DEFAULT you plural (masc)

View File

@@ -18,7 +18,7 @@ concrete ExtendEng of Extend =
PassAgentVPSlash, PassVPSlash, ProgrVPSlash, PastPartAP, PastPartAgentAP, PositAdVAdj, PredVPSVV, PredetRNP, PrepCN,
EmbedSSlash, PredIAdvVP, PresPartAP, PurposeVP, ReflPoss, ReflPron, ReflRNP, SlashBareV2S, SlashV2V, StrandQuestSlash, StrandRelSlash,
UncontractedNeg, UttAccIP, UttAccNP, UttAdV, UttDatIP, UttDatNP, UttVPShort, WithoutVP, A2VPSlash, N2VPSlash,
CardCNCard, ProDrop
CardCNCard, ProDrop, theyFem_Pron, theyNeutr_Pron
]
with
(Grammar = GrammarEng) **
@@ -471,6 +471,9 @@ lin UseDAPFem dap = {
lin CardCNCard card cn =
{s,sp = \\d,c => card.s ! d ! Nom ++ cn.s ! card.n ! c ; n = Pl} ;
lin theyFem_Pron = mkPron "they" "them" "their" "theirs" plural P3 feminine ;
lin theyNeutr_Pron = mkPron "they" "them" "their" "theirs" plural P3 nonhuman ;
lin GivenName gn = gn ;
lin MaleSurname, FemaleSurname = \sn -> sn ;
lin FullName gn sn = {
@@ -478,4 +481,18 @@ lin FullName gn sn = {
g = gn.g
} ;
lin AnaphPron np =
case np.a of {
AgP1 Sg => i_Pron ;
AgP1 Pl => we_Pron ;
AgP2 Sg => youSg_Pron ;
AgP2 Pl => youPl_Pron ;
AgP3Sg Masc => he_Pron ;
AgP3Sg Fem => she_Pron ;
AgP3Sg Neutr => it_Pron ;
AgP3Pl Masc => they_Pron ;
AgP3Pl Fem => theyFem_Pron ;
AgP3Pl Neutr => theyNeutr_Pron
} ;
}