1
0
forked from GitHub/gf-core

nominalization in Extra Dut and Eng (from Ramona)

This commit is contained in:
aarne
2012-06-06 09:48:05 +00:00
parent 694564d275
commit 1838781123
6 changed files with 51 additions and 3 deletions

View File

@@ -74,4 +74,8 @@ abstract Extra = Cat ** {
PassVPSlash : VPSlash -> VP ; -- be forced to sleep
-- publishing of the document
NominalizeVPSlashNP : VPSlash -> NP -> NP ;
}

View File

@@ -1,5 +1,5 @@
concrete ExtraDut of ExtraDutAbs = CatDut **
open ResDut, Coordination, Prelude, IrregDut in
open ResDut, MorphoDut, Coordination, Prelude, IrregDut in
{
--{
--
@@ -113,4 +113,14 @@ lin
ConjVPS = conjunctDistrTable2 Order Agr ;
lin
NominalizeVPSlashNP vpslash np =
let vp : ResDut.VP = insertObjNP np.isPron (\\_ => appPrep vpslash.c2 np.s) vpslash ;
agrDef : Agr = agrP3 Sg ;
compl : Str = vp.n0 ! agrDef ++ vp.a1 ! Pos ++ vp.n2 ! agrDef ++ vp.s.prefix ;
inf : Str = vp.inf.p1 ;
extra : Str = vp.ext
in
lin NP (MorphoDut.mkNP (vp.s.s ! VInf ++ "van" ++ compl ++ inf ++ extra ) Utr Sg) ;
}

View File

@@ -2,8 +2,10 @@ abstract ExtraDutAbs = Extra [
VPI,ListVPI,BaseVPI,ConsVPI,MkVPI,ComplVPIVV,ConjVPI,
VPS,ListVPS,BaseVPS,ConsVPS,ConjVPS,MkVPS,PredVPS,
Temp,Pol,S,NP,
VV,VP,Conj,IComp,ICompAP,IAdvAdv,Adv,AP,IAdv] **
VV,VP,Conj,IComp,ICompAP,IAdvAdv,Adv,AP,IAdv,
VPSlash, NominalizeVPSlashNP] **
{
--{
--
-- fun
@@ -14,4 +16,6 @@ abstract ExtraDutAbs = Extra [
--
--}
}

View File

@@ -40,7 +40,8 @@ oper
de : Gender ; -- non-neutrum
het : Gender ; -- neutrum
nominative : Case ; -- nominative of nouns
genitive : Case ; -- genitive of nouns
--2 Nouns
@@ -48,6 +49,8 @@ oper
mkN : (muis : Str) -> N ; -- de muis-muisen, with some predictable exceptions
mkN : (bit : Str) -> Gender -> N ; -- if gender is not predictable
mkN : (gat,gaten : Str) -> Gender -> N ; -- worst-case for nouns
mkN : (huis, boot : N) -> N ; -- compound huisboot
mkN : (station, hal : N) -> Case -> N ; -- compound stationshal
} ;
-- Relational nouns need a preposition. The most common is "van".
@@ -195,6 +198,10 @@ oper
= \a,b -> lin N (regNounG a b) ;
mkN : (gat,gaten : Str) -> Gender -> N
= \a,b,c -> lin N (mkNoun a b c) ;
mkN : (huis,boot : N) -> N
= \huis,boot -> lin N {s = \\n => huis.s ! NF Sg Nom + boot.s ! n ; g = boot.g} ;
mkN : (huis,boot : N) -> Case -> N
= \huis,boot,c -> lin N {s = \\n => huis.s ! NF Sg c + boot.s ! n ; g = boot.g} ;
} ;
mkN2 = overload {
@@ -213,6 +220,8 @@ oper
feminine = Utr ;
het,neuter = Neutr ;
de,utrum = Utr ;
nominative = Nom ;
genitive = Gen ;
mkA = overload {
mkA : (vers : Str) -> A = \a -> lin A (regAdjective a) ;

View File

@@ -112,6 +112,24 @@ concrete ExtraEng of ExtraEngAbs = CatEng **
typ = VVAux
} ;
may_VV = lin VV {
s = table {
VVF VInf => ["be allowed to"] ;
VVF VPres => "may" ;
VVF VPPart => ["been allowed to"] ;
VVF VPresPart => ["being allowed to"] ;
VVF VPast => "might" ;
VVPastNeg => "mightn't" ;
VVPresNeg => "may not"
} ;
typ = VVAux
} ;
NominalizeVPSlashNP vpslash np =
let vp : ResEng.VP = insertObjPre (\\_ => vpslash.c2 ++ np.s ! NPAcc) vpslash
in
lin NP {s=\\_=>vp.ad ++ vp.prp ++ vp.s2! (AgP3Sg Neutr); a=AgP3Sg Neutr } ;
lin
UncNeg = {s = [] ; p = CNeg False} ;

View File

@@ -21,7 +21,9 @@ abstract ExtraEngAbs = Extra - [ProDrop] ** {
do_VV : VV ;
may_VV : VV ;
---------------------
--- these are obsolete: use UncNeg : Pol instead
fun
@@ -33,4 +35,5 @@ abstract ExtraEngAbs = Extra - [ProDrop] ** {
UncNegImpPl : Pol -> Imp -> Utt; -- do not help yourselves
}