1
0
forked from GitHub/gf-core

PPartNP and AdvNP.

This commit is contained in:
aarne
2006-05-16 22:13:12 +00:00
parent 39f6049f2d
commit ddfd57fe7d
7 changed files with 79 additions and 7 deletions

View File

@@ -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'

View File

@@ -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

View File

@@ -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 ;

View File

@@ -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") ;
}

View File

@@ -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 ;

View File

@@ -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

View File

@@ -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 ;