diff --git a/lib/src/chunk/ChunkGer.gf b/lib/src/chunk/ChunkGer.gf index cc13619f4..38e083ed5 100644 --- a/lib/src/chunk/ChunkGer.gf +++ b/lib/src/chunk/ChunkGer.gf @@ -8,8 +8,8 @@ oper emptyNP = mkNP (P.mkPN []) ; lin - NP_Acc_Chunk np = ss (np.s ! NPC Acc) ; - NP_Gen_Chunk np = ss (np.s ! NPC Gen) ; + NP_Acc_Chunk np = ss (np.s ! NPC Acc ++ bigNP np) ; + NP_Gen_Chunk np = ss (np.s ! NPC Gen ++ bigNP np) ; VPI_Chunk vpi = {s = vpi.s ! (True | False)} ; diff --git a/lib/src/german/ExtraGer.gf b/lib/src/german/ExtraGer.gf index a76e56c0e..09f5f86c1 100644 --- a/lib/src/german/ExtraGer.gf +++ b/lib/src/german/ExtraGer.gf @@ -102,7 +102,7 @@ concrete ExtraGer of ExtraGerAbs = CatGer ** PredVPS np vpi = let - subj = np.s ! NPC Nom ; + subj = np.s ! NPC Nom ++ bigNP np ; agr = np.a ; in { s = \\o => diff --git a/lib/src/german/IdiomGer.gf b/lib/src/german/IdiomGer.gf index fd2a6d2ce..75bba5fcd 100644 --- a/lib/src/german/IdiomGer.gf +++ b/lib/src/german/IdiomGer.gf @@ -59,17 +59,15 @@ concrete IdiomGer of Idiom = CatGer ** } ; ImpP3 np vp = { - s = (mkClause (np.s ! NPC Nom) np.a vp).s ! + s = (mkClause ((mkSubj np vp.subjc).p1) np.a vp).s ! MConjunct ! Pres ! Simul ! Pos ! Inv } ; SelfAdvVP vp = insertAdv "selbst" vp ; SelfAdVVP vp = insertAdv "selbst" vp ; - SelfNP np = { + SelfNP np = np ** { s = \\c => np.s ! c ++ "selbst" ; - a = np.a ; isPron = False ; - adv, rc, ext = [] } ; oper diff --git a/lib/src/german/NounGer.gf b/lib/src/german/NounGer.gf index 993f77f73..6a63ba34e 100644 --- a/lib/src/german/NounGer.gf +++ b/lib/src/german/NounGer.gf @@ -206,5 +206,5 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in { s = \\a,n,c => cn.s ! a ! n ! c ++ np.s ! NPC c ++ bigNP np } ; PossNP cn np = cn ** { - s = \\a,n,c => cn.s ! a ! n ! c ++ np.s ! NPP CVonDat } ; + s = \\a,n,c => cn.s ! a ! n ! c ++ np.s ! NPP CVonDat ++ bigNP np } ; } diff --git a/lib/src/german/PhraseGer.gf b/lib/src/german/PhraseGer.gf index 52bbe84ea..84091d0df 100644 --- a/lib/src/german/PhraseGer.gf +++ b/lib/src/german/PhraseGer.gf @@ -13,7 +13,7 @@ concrete PhraseGer of Phrase = CatGer ** open Prelude, ResGer in { UttIP ip = {s = ip.s ! Nom} ; --- Acc also UttIAdv iadv = iadv ; - UttNP np = {s = np.s ! NPC Nom} ; + UttNP np = {s = np.s ! NPC Nom ++ bigNP np} ; UttVP vp = {s = useInfVP True vp} ; -- without zu UttAdv adv = adv ; UttCN n = {s = n.s ! Strong ! Sg ! Nom} ; @@ -25,6 +25,6 @@ concrete PhraseGer of Phrase = CatGer ** open Prelude, ResGer in { PConjConj conj = ss (conj.s2) ; NoVoc = {s = []} ; - VocNP np = {s = "," ++ np.s ! NPC Nom} ; + VocNP np = {s = "," ++ np.s ! NPC Nom ++ bigNP np} ; } diff --git a/lib/src/german/QuestionGer.gf b/lib/src/german/QuestionGer.gf index deb2ee2d5..b6b97fd0b 100644 --- a/lib/src/german/QuestionGer.gf +++ b/lib/src/german/QuestionGer.gf @@ -50,7 +50,8 @@ concrete QuestionGer of Question = CatGer ** open ResGer in { s = \\m,t,a,p => let vp = predV sein_V ** {ext = icomp.ext}; - cls = (mkClause (np.s ! NPC Nom) np.a vp).s ! m ! t ! a ! p ; + subj = mkSubj np vp.subjc ; + cls = (mkClause subj.p1 subj.p2 vp).s ! m ! t ! a ! p ; why = icomp.s ! np.a in table { QDir => why ++ cls ! Inv ;