1
0
forked from GitHub/gf-core

added some VP constructions to Pred: without/after/before/when doing, in order to do

This commit is contained in:
aarne
2014-02-15 20:17:48 +00:00
parent 3e1d19b043
commit 7831a3d8c3
9 changed files with 102 additions and 6 deletions

View File

@@ -140,8 +140,11 @@ fun
UseCN_none : Ant -> Tense -> Pol -> PrCN_none -> PrVP_none ;
UseCN_np : Ant -> Tense -> Pol -> PrCN_np -> PrVP_np ;
--< UseNP : Ant -> Tense -> Pol -> NP -> PrVP aNone ; -- she is the person
-- the following are only for aNone
UseNP_none : Ant -> Tense -> Pol -> NP -> PrVP_none ;
UseS_none : Ant -> Tense -> Pol -> PrCl_none -> PrVP_none ; -- the fact is that she sleeps
UseQ_none : Ant -> Tense -> Pol -> PrQCl_none -> PrVP_none ; -- the question is who sleeps
UseVP_none : Ant -> Tense -> Pol -> PrVPI_none -> PrVP_none ; -- the goal is to sleep
--< InfVP : (a : Arg) -> PrVP a -> PrVPI a ;
InfVP_none : PrVP_none -> PrVPI_none ;
@@ -223,6 +226,28 @@ fun
--< AgentPastPartAP : (a : Arg) -> PrV (aNP a) -> NP -> PrAP a ;
AgentPastPartAP_none : PrV_np -> NP -> PrAP_none ;
-- for aNone only
NomVPNP_none : PrVPI_none -> NP ; -- translating a document
--< ByVP : (a : Arg) -> PrVP a -> PrVPI aNone -> PrVP a ; -- by translating a document
ByVP_none : PrVP_none -> PrVPI_none -> PrVP_none ;
--< WhenVP : (a : Arg) -> PrVP a -> PrVPI aNone -> PrVP a ; -- when translating a document
WhenVP_none : PrVP_none -> PrVPI_none -> PrVP_none ;
--< BeforeVP : (a : Arg) -> PrVP a -> PrVPI aNone -> PrVP a ; -- before translating a document
BeforeVP_none : PrVP_none -> PrVPI_none -> PrVP_none ;
--< AfterVP : (a : Arg) -> PrVP a -> PrVPI aNone -> PrVP a ; -- after translating a document
AfterVP_none : PrVP_none -> PrVPI_none -> PrVP_none ;
--< InOrderVP : (a : Arg) -> PrVP a -> PrVPI aNone -> PrVP a ; -- in order to translate a document
InOrderVP_none : PrVP_none -> PrVPI_none -> PrVP_none ;
--< WithoutVP : (a : Arg) -> PrVP a -> PrVPI aNone -> PrVP a ; -- without translating a document
WithoutVP_none : PrVP_none -> PrVPI_none -> PrVP_none ;
-- PrVP coordination
--< StartVPC : (a : Arg) -> Conj -> PrVP a -> PrVP a -> VPC a ;

View File

@@ -84,6 +84,12 @@ lin
= Pred.UseAdv Pred.aNone ;
UseNP_none
= Pred.UseNP ;
UseS_none
= Pred.UseS ;
UseQ_none
= Pred.UseQ ;
UseVP_none
= Pred.UseVP ;
ComplV2_none
= Pred.ComplV2 Pred.aNone ;
@@ -177,6 +183,22 @@ lin
AgentPastPartAP_none
= Pred.AgentPastPartAP Pred.aNone ;
NomVPNP_none
= Pred.NomVPNP ;
ByVP_none
= Pred.ByVP Pred.aNone ;
WhenVP_none
= Pred.WhenVP Pred.aNone ;
BeforeVP_none
= Pred.BeforeVP Pred.aNone ;
AfterVP_none
= Pred.AfterVP Pred.aNone ;
InOrderVP_none
= Pred.InOrderVP Pred.aNone ;
WithoutVP_none
= Pred.WithoutVP Pred.aNone ;
StartVPC_none, StartVPC_np
= Pred.StartVPC Pred.aNone ;
ContVPC_none, ContVPC_np

View File

@@ -42,10 +42,13 @@ fun
InfVP : (a : Arg) -> PrVP a -> PrVPI a ; -- to love X
UseAP : (a : Arg) -> Ant -> Tense -> Pol -> PrAP a -> PrVP a ; -- she is married to X
UseAdv : (a : Arg) -> Ant -> Tense -> Pol -> PrAdv a -> PrVP a ; -- she is in X
UseCN : (a : Arg) -> Ant -> Tense -> Pol -> PrCN a -> PrVP a ; -- she is a member of X
UseNP : Ant -> Tense -> Pol -> NP -> PrVP aNone ; -- she is the person
UseAP : (a : Arg) -> Ant -> Tense -> Pol -> PrAP a -> PrVP a ; -- she is married to X
UseAdv : (a : Arg) -> Ant -> Tense -> Pol -> PrAdv a -> PrVP a ; -- she is in X
UseCN : (a : Arg) -> Ant -> Tense -> Pol -> PrCN a -> PrVP a ; -- she is a member of X
UseNP : Ant -> Tense -> Pol -> NP -> PrVP aNone ; -- she is the person
UseS : Ant -> Tense -> Pol -> PrCl aNone -> PrVP aNone ; -- the fact is that she sleeps
UseQ : Ant -> Tense -> Pol -> PrQCl aNone -> PrVP aNone ; -- the question is who sleeps
UseVP : Ant -> Tense -> Pol -> PrVPI aNone -> PrVP aNone ; -- the goal is to sleep
PredVP : (a : Arg) -> NP -> PrVP a -> PrCl a ;
@@ -87,6 +90,17 @@ fun
PastPartAP : (a : Arg) -> PrV (aNP a) -> PrAP a ;
AgentPastPartAP : (a : Arg) -> PrV (aNP a) -> NP -> PrAP a ;
-- nominalization
NomVPNP : PrVPI aNone -> NP ; -- translating a document
-- other uses of VP's
ByVP : (a : Arg) -> PrVP a -> PrVPI aNone -> PrVP a ; -- by translating a document
WhenVP : (a : Arg) -> PrVP a -> PrVPI aNone -> PrVP a ; -- when translating a document
BeforeVP : (a : Arg) -> PrVP a -> PrVPI aNone -> PrVP a ; -- before translating a document
AfterVP : (a : Arg) -> PrVP a -> PrVPI aNone -> PrVP a ; -- after translating a document
InOrderVP : (a : Arg) -> PrVP a -> PrVPI aNone -> PrVP a ; -- in order to translate a document
WithoutVP : (a : Arg) -> PrVP a -> PrVPI aNone -> PrVP a ; -- without translating a document
-- PrVP coordination
StartVPC : (a : Arg) -> Conj -> PrVP a -> PrVP a -> VPC a ;

View File

@@ -4,7 +4,7 @@ concrete PredEng of Pred =
with
(PredInterface = PredInstanceEng)
** open PredInstanceEng in {
** open PredInstanceEng, (R = ResEng) in {
lin
QuestIComp a t p icomp np =
@@ -17,4 +17,17 @@ lin
qforms = qformsCopula (a.s ++ t.s ++ p.s) t.t a.a p.p vagr ;
} ;
NomVPNP vpi = {
s = \\c => vpi.s ! R.VVPresPart ! defaultAgr ;
a = defaultAgr
} ;
ByVP x vp vpi = vp ** {adv = "by" ++ vpi.s ! R.VVPresPart ! defaultAgr} ; ---- agr
WhenVP x vp vpi = vp ** {adv = "when" ++ vpi.s ! R.VVPresPart ! defaultAgr} ; ---- agr
BeforeVP x vp vpi = vp ** {adv = "before" ++ vpi.s ! R.VVPresPart ! defaultAgr} ; ---- agr
AfterVP x vp vpi = vp ** {adv = "after" ++ vpi.s ! R.VVPresPart ! defaultAgr} ; ---- agr
InOrderVP x vp vpi = vp ** {adv = "in order" ++ vpi.s ! R.VVInf ! defaultAgr} ; ---- agr
WithoutVP x vp vpi = vp ** {adv = "without" ++ vpi.s ! R.VVPresPart ! defaultAgr} ; ---- agr
}

View File

@@ -122,6 +122,10 @@ lin
adj = \\a => np.s ! subjCase ;
} ;
UseS a t p cl = addExtVP (useCopula a t p) (that_Compl ++ declSubordCl cl) ; ---- sentence form
UseQ a t p cl = addExtVP (useCopula a t p) (questSubordCl cl) ;
UseVP a t p vp = addExtVP (useCopula a t p) (vp.s ! vvInfinitive ! defaultAgr) ;
ComplV2 x vp np = vp ** {
obj1 = <\\a => np.s ! objCase, np.a> -- np.a for object control
} ;

View File

@@ -142,6 +142,8 @@ oper
be_Aux s t a p agr ;
tenseInfCopula : Str -> Anteriority -> Polarity -> VVType -> Str = \s,a,p,vt ->
tenseInfV s a p Act be_V vt ;
tenseImpCopula : Str -> Polarity -> ImpType -> Str = \s,p,n ->
imperativeV s p n be_V ;
tenseV : Str -> STense -> Anteriority -> Polarity -> SVoice -> VAgr -> PrVerb -> Str * Str * Str =
\sta,t,a,p,o,agr,v ->

View File

@@ -161,6 +161,8 @@ oper
\s,t,a,p,_ -> tenseV s t a p CommonScand.Act UUnit (liftV be_V) ;
tenseInfCopula : Str -> Anteriority -> Polarity -> VVType -> Str =
\s,a,p,vt -> tenseInfV s a p CommonScand.Act (liftV be_V) vt ;
tenseImpCopula : Str -> Polarity -> ImpType -> Str =
\s,p,n -> imperativeV s p n (liftV be_V) ;
hava_V : Verb = P.mkV "ha" "har" "ha" "hade" "haft" "havd" ; -- havd not used
be_V : Verb = P.mkV "vara" "är" "var" "var" "varit" "varen" ; -- varen not used

View File

@@ -240,6 +240,7 @@ oper
tenseCopula : Str -> STense -> Anteriority -> Polarity -> VAgr -> Str * Str * Str ;
tenseInfCopula : Str -> Anteriority -> Polarity -> VVType -> Str ;
tenseImpCopula : Str -> Polarity -> ImpType -> Str ;
declCl : PrClause -> Str ;
declSubordCl : PrClause -> Str ;
@@ -264,6 +265,7 @@ oper
\a,t,p -> initPrVerbPhrase ** {
v = \\agr => tenseCopula (a.s ++ t.s ++ p.s) t.t a.a p.p agr ;
inf = \\vt => tenseInfCopula a.s a.a p.p vt ;
imp = \\n => tenseImpCopula p.s p.p n ;
adV = negAdV p ;
qforms = \\agr => qformsCopula (a.s ++ t.s ++ p.s) t.t a.a p.p agr ;
} ;

View File

@@ -28,4 +28,16 @@ lin
c = objCase
} ;
NomVPNP vpi = {
s = \\c => "att" ++ vpi.s ! vvInfinitive ! defaultAgr ;
a = defaultAgr ** {g = Neutr} ;
} ;
ByVP x vp vpi = vp ** {adv = "genom att" ++ vpi.s ! vvInfinitive ! defaultAgr} ; ---- agr
WhenVP x vp vpi = vp ** {adv = "vid att" ++ vpi.s ! vvInfinitive ! defaultAgr} ; ---- agr ----
BeforeVP x vp vpi = vp ** {adv = "innan att" ++ vpi.s ! vvInfinitive ! defaultAgr} ; ---- agr ----
AfterVP x vp vpi = vp ** {adv = "efter att" ++ vpi.s ! vvInfinitive ! defaultAgr} ; ---- agr
InOrderVP x vp vpi = vp ** {adv = "för att" ++ vpi.s ! vvInfinitive ! defaultAgr} ; ---- agr
WithoutVP x vp vpi = vp ** {adv = "utan att" ++ vpi.s ! vvInfinitive ! defaultAgr} ; ---- agr
}