From ddfd57fe7d015aacf6b5ed232560e43ec5c9d472 Mon Sep 17 00:00:00 2001 From: aarne Date: Tue, 16 May 2006 22:13:12 +0000 Subject: [PATCH] PPartNP and AdvNP. --- lib/resource-1.0/abstract/Noun.gf | 8 +++++++- lib/resource-1.0/english/NounEng.gf | 10 +++++++++ lib/resource-1.0/finnish/NounFin.gf | 12 +++++++++++ lib/resource-1.0/german/IdiomGer.gf | 24 ++++++++++++++++------ lib/resource-1.0/german/NounGer.gf | 10 +++++++++ lib/resource-1.0/romance/NounRomance.gf | 12 +++++++++++ lib/resource-1.0/scandinavian/NounScand.gf | 10 +++++++++ 7 files changed, 79 insertions(+), 7 deletions(-) diff --git a/lib/resource-1.0/abstract/Noun.gf b/lib/resource-1.0/abstract/Noun.gf index 2360b691b..e0cae05b1 100644 --- a/lib/resource-1.0/abstract/Noun.gf +++ b/lib/resource-1.0/abstract/Noun.gf @@ -17,10 +17,16 @@ abstract Noun = Cat ** { -- Pronouns are defined in the module [Structural Structural.html]. --- A noun phrase already formed can be modified by a Predeterminer. +-- A noun phrase already formed can be modified by a $Predet$erminer. PredetNP : Predet -> NP -> NP; -- only the man +-- A noun phrase can also be postmodified by the past participle of a +-- verb or by an adverb. + + PPartNP : NP -> V2 -> NP ; -- the number squared + AdvNP : NP -> Adv -> NP ; -- Paris at midnight + --2 Determiners -- The determiner has a fine-grained structure, in which a 'nucleus' diff --git a/lib/resource-1.0/english/NounEng.gf b/lib/resource-1.0/english/NounEng.gf index 2977b72b5..57e74f239 100644 --- a/lib/resource-1.0/english/NounEng.gf +++ b/lib/resource-1.0/english/NounEng.gf @@ -15,6 +15,16 @@ concrete NounEng of Noun = CatEng ** open ResEng, Prelude in { a = np.a } ; + PPartNP np v2 = { + s = \\c => np.s ! c ++ v2.s ! VPPart ; + a = np.a + } ; + + AdvNP np adv = { + s = \\c => np.s ! c ++ adv.s ; + a = np.a + } ; + DetSg quant ord = { s = quant.s ++ ord.s ; n = Sg diff --git a/lib/resource-1.0/finnish/NounFin.gf b/lib/resource-1.0/finnish/NounFin.gf index 94e78e9bc..86c6e0ae1 100644 --- a/lib/resource-1.0/finnish/NounFin.gf +++ b/lib/resource-1.0/finnish/NounFin.gf @@ -48,6 +48,18 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in { isPron = np.isPron -- kaikki minun - ni } ; + PPartNP np v2 = { + s = \\c => np.s ! c ++ v2.s ! PastPartPass (AN (NCase np.a.n Ess)) ; + a = np.a ; + isPron = np.isPron -- minun täällä - ni + } ; + + AdvNP np adv = { + s = \\c => np.s ! c ++ adv.s ; + a = np.a ; + isPron = np.isPron -- minun täällä - ni + } ; + DetSg quant ord = { s1 = \\c => quant.s1 ! c ++ ord.s ! Sg ! c ; s2 = quant.s2 ; diff --git a/lib/resource-1.0/german/IdiomGer.gf b/lib/resource-1.0/german/IdiomGer.gf index 6a5ba9282..9c514f788 100644 --- a/lib/resource-1.0/german/IdiomGer.gf +++ b/lib/resource-1.0/german/IdiomGer.gf @@ -4,16 +4,28 @@ concrete IdiomGer of Idiom = CatGer ** flags optimize=all_subs ; lin - ExistNP np = - let geben = dirV2 (mkV "geben" "gibt" "gib" "gab" "gäbe" "gegeben") - in - mkClause "es" (agrP3 Sg) - (insertObj (\\_ => appPrep geben.c2 np.s) - (predV geben)) ; ImpersCl vp = mkClause "es" (agrP3 Sg) vp ; GenericCl vp = mkClause "man" (agrP3 Sg) vp ; + ExistNP np = + mkClause "es" (agrP3 Sg) + (insertObj (\\_ => appPrep geben.c2 np.s) + (predV geben)) ; + + ExistIP ip = { + s = \\t,a,p => + let + cls = (mkClause "es" (agrP3 Sg) (predV geben)).s ! t ! a ! p ; + who = ip.s ! Acc + in table { + QDir => who ++ cls ! Inv ; + QIndir => who ++ cls ! Sub + } + } ; + ProgrVP = insertAdv "eben" ; ---- + oper + geben = dirV2 (mkV "geben" "gibt" "gib" "gab" "gäbe" "gegeben") ; } diff --git a/lib/resource-1.0/german/NounGer.gf b/lib/resource-1.0/german/NounGer.gf index f4e2262b6..dfa247b91 100644 --- a/lib/resource-1.0/german/NounGer.gf +++ b/lib/resource-1.0/german/NounGer.gf @@ -21,6 +21,16 @@ concrete NounGer of Noun = CatGer ** open ResGer, Prelude in { a = np.a } ; + PPartNP np v2 = { + s = \\c => np.s ! c ++ v2.s ! VPastPart APred ; --- invar part + a = np.a + } ; + + AdvNP np adv = { + s = \\c => np.s ! c ++ adv.s ; + a = np.a + } ; + DetSg quant ord = let n = Sg ; diff --git a/lib/resource-1.0/romance/NounRomance.gf b/lib/resource-1.0/romance/NounRomance.gf index f813d1529..e9b174c0b 100644 --- a/lib/resource-1.0/romance/NounRomance.gf +++ b/lib/resource-1.0/romance/NounRomance.gf @@ -25,6 +25,18 @@ incomplete concrete NounRomance of Noun = hasClit = False } ; + PPartNP np v2 = { + s = \\c => np.s ! c ++ v2.s ! VPart np.a.g np.a.n ; + a = np.a ; + hasClit = False + } ; + + AdvNP np adv = { + s = \\c => np.s ! c ++ adv.s ; + a = np.a ; + hasClit = False + } ; + DetSg quant ord = { s = \\g,c => quant.s ! g ! c ++ ord.s ! aagr g Sg ; n = Sg diff --git a/lib/resource-1.0/scandinavian/NounScand.gf b/lib/resource-1.0/scandinavian/NounScand.gf index b532fea29..89e66e566 100644 --- a/lib/resource-1.0/scandinavian/NounScand.gf +++ b/lib/resource-1.0/scandinavian/NounScand.gf @@ -27,6 +27,16 @@ incomplete concrete NounScand of Noun = a = np.a } ; + PPartNP np v2 = { + s = \\c => np.s ! c ++ v2.s ! (VI (VPtPret (agrAdj np.a.gn DIndef) Nom)) ; + a = np.a + } ; + + AdvNP np adv = { + s = \\c => np.s ! c ++ adv.s ; + a = np.a + } ; + DetSg quant ord = { s = \\b,g => quant.s ! (orB b ord.isDet) ! g ++ ord.s ; n = Sg ;