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].
|
-- 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
|
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
|
--2 Determiners
|
||||||
|
|
||||||
-- The determiner has a fine-grained structure, in which a 'nucleus'
|
-- 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
|
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 = {
|
DetSg quant ord = {
|
||||||
s = quant.s ++ ord.s ;
|
s = quant.s ++ ord.s ;
|
||||||
n = Sg
|
n = Sg
|
||||||
|
|||||||
@@ -48,6 +48,18 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
|
|||||||
isPron = np.isPron -- kaikki minun - ni
|
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 = {
|
DetSg quant ord = {
|
||||||
s1 = \\c => quant.s1 ! c ++ ord.s ! Sg ! c ;
|
s1 = \\c => quant.s1 ! c ++ ord.s ! Sg ! c ;
|
||||||
s2 = quant.s2 ;
|
s2 = quant.s2 ;
|
||||||
|
|||||||
@@ -4,16 +4,28 @@ concrete IdiomGer of Idiom = CatGer **
|
|||||||
flags optimize=all_subs ;
|
flags optimize=all_subs ;
|
||||||
|
|
||||||
lin
|
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 ;
|
ImpersCl vp = mkClause "es" (agrP3 Sg) vp ;
|
||||||
GenericCl vp = mkClause "man" (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" ; ----
|
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
|
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 =
|
DetSg quant ord =
|
||||||
let
|
let
|
||||||
n = Sg ;
|
n = Sg ;
|
||||||
|
|||||||
@@ -25,6 +25,18 @@ incomplete concrete NounRomance of Noun =
|
|||||||
hasClit = False
|
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 = {
|
DetSg quant ord = {
|
||||||
s = \\g,c => quant.s ! g ! c ++ ord.s ! aagr g Sg ;
|
s = \\g,c => quant.s ! g ! c ++ ord.s ! aagr g Sg ;
|
||||||
n = Sg
|
n = Sg
|
||||||
|
|||||||
@@ -27,6 +27,16 @@ incomplete concrete NounScand of Noun =
|
|||||||
a = np.a
|
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 = {
|
DetSg quant ord = {
|
||||||
s = \\b,g => quant.s ! (orB b ord.isDet) ! g ++ ord.s ;
|
s = \\b,g => quant.s ! (orB b ord.isDet) ! g ++ ord.s ;
|
||||||
n = Sg ;
|
n = Sg ;
|
||||||
|
|||||||
Reference in New Issue
Block a user