forked from GitHub/gf-core
PPartNP and AdvNP.
This commit is contained in:
@@ -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'
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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") ;
|
||||
}
|
||||
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
Reference in New Issue
Block a user