forked from GitHub/gf-rgl
move verb specific extensions from WordNet to the RGL
This commit is contained in:
@@ -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"
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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} ;
|
||||
|
||||
Reference in New Issue
Block a user