1
0
forked from GitHub/gf-rgl

move verb specific extensions from WordNet to the RGL

This commit is contained in:
krangelov
2021-03-12 18:52:47 +01:00
parent 4b171129a1
commit 9d0555f8b8
10 changed files with 95 additions and 2 deletions

View File

@@ -74,6 +74,14 @@ abstract Extend = Cat ** {
ConjVPI2 : Conj -> [VPI2] -> VPI2 ; -- to love and hate
ComplVPI2 : VPI2 -> NP -> VPI ; -- to love and hate that person
-- Conjunction of copula complements
cat [Comp]{2} ;
fun ConjComp : Conj -> ListComp -> Comp ;
-- Conjunction of imperatives
cat [Imp] {2} ;
fun ConjImp : Conj -> ListImp -> Imp ;
fun
ProDrop : Pron -> Pron ; -- unstressed subject pronoun becomes empty: "am tired"

View File

@@ -40,6 +40,7 @@ abstract Sentence = Cat ** {
-- To fix these parameters, see [Phrase Phrase.html].
ImpVP : VP -> Imp ; -- love yourselves
AdvImp : Adv -> Imp -> Imp ; -- please love yourselves
--2 Embedded sentences

View File

@@ -96,6 +96,10 @@ lin
lin
PassVPSlash vp = insertObj (\\a => vp.ad.s ++ vp.s ! Perf ! VPassive (aform a.gn Indef (RObj Acc)) ++
vp.compl1 ! a ++ vp.compl2 ! a) Pos (predV verbBe) ;
ProgrVPSlash vp = vp ** {
s = \\_ => vp.s ! Imperf ;
isSimple = False
} ;
PassAgentVPSlash vp np =
insertObj (\\_ => "от" ++ np.s ! RObj CPrep) Pos
@@ -155,6 +159,25 @@ lin
s = \\a => linCoord []!conj.sep ++ vps.s!a!conj.sep ++ conj.s ++ vps.s!a!4
} ;
lincat [Comp] = {s : Agr => Ints 4 => Str} ;
lin BaseComp x y =
{s = \\agr=>table {4 => y.s!agr; _ => x.s!agr}} ;
ConsComp x xs =
{s = \\agr=>table {4 => xs.s!agr!4; t => x.s!agr++linCoord bindComma!t++xs.s!agr!t}} ;
ConjComp conj ss = {
s = \\agr => linCoord [] ! conj.sep ++ ss.s!agr!conj.sep ++ conj.s ++ ss.s!agr!4 ;
p = Pos
} ;
lincat ListImp = {s : Polarity => GenNum => Ints 4 => Str} ;
lin BaseImp x y =
{s = \\p,gn=>table {4 => y.s!p!gn; _ => x.s!p!gn}} ;
ConsImp x xs =
{s = \\p,gn=>table {4 => xs.s!p!gn!4; t => x.s!p!gn++linCoord bindComma!t++xs.s!p!gn!t}} ;
ConjImp conj ss = {
s = \\p,gn => linCoord [] ! conj.sep ++ ss.s!p!gn!conj.sep ++ conj.s ++ ss.s!p!gn!4
} ;
lin
ComplBareVS = ComplVS ;
ComplSlashPartLast = ComplSlash ;

View File

@@ -31,6 +31,10 @@ concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
} ++ compl ;
} ;
AdvImp adv imp = {
s = \\pol,gennum => adv.s ++ imp.s ! pol ! gennum
} ;
SlashVP np slash = {
s = \\agr => (mkClause (np.s ! RSubj) np.gn np.p {s = slash.s ;
ad = slash.ad ;

View File

@@ -138,6 +138,20 @@ concrete ExtendEng of Extend =
}
} ;
-- Conjunction of copula complements
lincat [Comp] = {s1,s2 : Agr => Str} ;
lin BaseComp x y = twoTable Agr x y ;
ConsComp xs x = consrTable Agr comma xs x ;
ConjComp conj ss = conjunctDistrTable Agr conj ss ;
-- Conjunction of imperatives
lincat ListImp = {s1,s2 : CPolarity => ImpForm => Str} ;
lin BaseImp = twoTable2 CPolarity ImpForm ;
ConsImp = consrTable2 CPolarity ImpForm comma ;
ConjImp conj ss = conjunctDistrTable2 CPolarity ImpForm conj ss ;
-----
lin

View File

@@ -22,6 +22,10 @@ concrete SentenceEng of Sentence = CatEng ** open Prelude, ResEng in {
dont ++ verb
} ;
AdvImp adv imp = {
s = \\pol,impform => adv.s ++ imp.s ! pol ! impform
} ;
SlashVP np vp =
mkClause (np.s ! npNom) np.a vp ** {c2 = vp.c2} ;

View File

@@ -28,9 +28,10 @@ concrete ExtendPor of Extend = CatPor ** ExtendRomanceFunctor -
Prelude,
ParadigmsPor,
(L = LexiconPor),
(S = StructuralPor) in {
(S = StructuralPor),
(P = ParamX) in {
lin
lin
ExistsNP np =
mkClause [] True False np.a
(insertComplement (\\_ => (np.s ! Nom).ton)
@@ -88,6 +89,21 @@ concrete ExtendPor of Extend = CatPor ** ExtendRomanceFunctor -
s = "a fim de" ++ infStr vp
} ;
lincat ListComp = {s1,s2 : Agr => Str ; cop : CopulaType} ;
lin
-- should one allow different copulas?
BaseComp x y = twoTable Agr x y ** {cop = x.cop } ;
ConsComp xs x = consrTable Agr comma xs x ** xs ;
ConjComp conj cs = conjunctDistrTable Agr conj cs ** {cop = cs.cop} ;
lincat ListImp = {s1,s2 : RPolarity => P.ImpForm => Gender => Str} ;
lin
BaseImp = twoTable3 RPolarity P.ImpForm Gender ;
ConsImp = consrTable3 RPolarity P.ImpForm Gender comma ;
ConjImp conj is = conjunctDistrTable3 RPolarity P.ImpForm Gender conj is ;
lin
iFem_Pron = pronAgr S.i_Pron Fem Sg P1 ;
weFem_Pron = pronAgr S.we_Pron Fem Pl P1 ;

View File

@@ -15,6 +15,10 @@ incomplete concrete SentenceRomance of Sentence =
}
} ;
AdvImp adv imp = {
s = \\pol,impform,g => imp.s ! pol ! impform ! g ++ adv.s
} ;
{-
SlashVP np vps =
-- agreement decided afterwards: la fille qu'il a trouvée

View File

@@ -19,6 +19,10 @@ incomplete concrete SentenceScand of Sentence =
verb.fin ++ neg.p1 ++ verb.inf ++ pron ++ neg.p2 ++ vp.n2 ! agr ++ vp.a2 ++ vp.ext
} ;
AdvImp adv imp = {
s = \\p,n => adv.s ++ imp.s ! p ! n
} ;
SlashVP np vp =
mkClause
(np.s ! nominative) np.a

View File

@@ -69,6 +69,11 @@ in {
insertObj (\\a => vps.c2.s ++ vps.n3 ! a) (passiveVP vps) ;
PassAgentVPSlash vps np =
insertObjPost (\\a => vps.c2.s ++ vps.n3 ! a) (insertObj (\\_ => (PrepNP by8agent_Prep np).s) (passiveVP vps)) ;
ProgrVPSlash vp =
insertObj (\\a => "att" ++ infVP vp a) (predV (P.partV I.hålla_V "på")) **
{ n3 = vp.n3 ;
c2 = vp.c2
} ;
lin UttVPShort vp = {s = infVP vp (agrP3 Utr Sg)} ;
@@ -172,6 +177,16 @@ in {
s = \\t,a => vpi2.s ! t ! a ++ vpi2.c2.s ++ np.s ! NPAcc
} ;
lincat [Comp] = {s1,s2 : Agr => Str} ;
lin BaseComp x y = twoTable Agr x y ;
ConsComp xs x = consrTable Agr comma xs x ;
ConjComp conj ss = conjunctDistrTable Agr conj ss ;
lincat ListImp = {s1,s2 : Polarity => Number => Str} ;
lin BaseImp = twoTable2 Polarity Number ;
ConsImp = consrTable2 Polarity Number comma ;
ConjImp conj ss = conjunctDistrTable2 Polarity Number conj ss ;
-----------
ICompAP ap = {s = \\a => hur_IAdv.s ++ ap.s ! a} ;