1
0
forked from GitHub/gf-core

fixed the problem found by Hans Leiss with Ger passives leaving out arguments and producing metavariables in parsing

This commit is contained in:
aarne
2015-02-27 14:02:38 +00:00
parent d809c5db1e
commit 6819d67943
3 changed files with 26 additions and 5 deletions

View File

@@ -78,6 +78,11 @@ abstract Extra = Cat ** {
PassAgentVPSlash : VPSlash -> NP -> VP ; -- be begged by her to go
-- In many languages, the passives use past participles.
PastPartAP : VPSlash -> AP ; -- lost (opportunity) ; (opportunity) lost in space
PastPartAgentAP : VPSlash -> NP -> AP ; -- (opportunity) lost by the company
-- publishing of the document
NominalizeVPSlashNP : VPSlash -> NP -> NP ;

View File

@@ -57,10 +57,26 @@ concrete ExtraGer of ExtraGerAbs = CatGer **
c = (prepC slash.c2.c).c
} ;
PassVPSlash vps =
insertInf (vps.s.s ! VPastPart APred) (predV werdenPass) ;
PassAgentVPSlash vps np = ---- "von" here, "durch" in StructuralGer
insertAdv (appPrep P.von_Prep np.s) (insertInf (vps.s.s ! VPastPart APred) (predV werdenPass)) ;
PassVPSlash vp = insertObj (\\_ => (PastPartAP (lin VPSlash vp)).s ! APred) (predV werdenPass) ;
PassAgentVPSlash vp np = ---- "von" here, "durch" in StructuralGer
insertObj (\\_ => (PastPartAgentAP (lin VPSlash vp) (lin NP np)).s ! APred) (predV werdenPass) ;
PastPartAP vp = {
s = \\af => (vp.nn ! agrP3 Sg).p1 ++ (vp.nn ! agrP3 Sg).p2 ++ vp.a2 ++ vp.inf ++
vp.c2.s ++ --- junk if not TV
vp.ext ++ vp.infExt ++ vp.s.s ! VPastPart af ;
isPre = True
} ;
PastPartAgentAP vp np =
let agent = appPrep P.von_Prep np.s
in {
s = \\af => (vp.nn ! agrP3 Sg).p1 ++ (vp.nn ! agrP3 Sg).p2 ++ vp.a2 ++ agent ++ vp.inf ++
vp.c2.s ++ --- junk if not TV
vp.ext ++ vp.infExt ++ vp.s.s ! VPastPart af ;
isPre = True
} ;
lincat
VPS = {s : Order => Agr => Str} ;

View File

@@ -1,7 +1,7 @@
abstract ExtraGerAbs = Extra [
VPI,ListVPI,BaseVPI,ConsVPI,MkVPI,ComplVPIVV,ConjVPI,ClSlash,RCl,
VPS,ListVPS,BaseVPS,ConsVPS,ConjVPS,MkVPS,PredVPS,EmptyRelSlash,
VPSlash, PassVPSlash, PassAgentVPSlash, CompIQuant,
VPSlash, PassVPSlash, PassAgentVPSlash, CompIQuant, PastPartAP, PastPartAgentAP,
Temp,Tense,Pol,S,NP,VV,VP,Conj,IAdv,IQuant,IComp,ICompAP,IAdvAdv,Adv,AP] ** {
flags coding=utf8;
fun