From 0900ea04edba92fbfa1866379af043e908f67998 Mon Sep 17 00:00:00 2001 From: aarne Date: Wed, 29 Jan 2014 08:02:44 +0000 Subject: [PATCH] restored the a.s field in infinitives in PredicationSwe, needed in linearization. --- lib/src/experimental/Predication.gf | 11 +++----- lib/src/experimental/PredicationSwe.gf | 37 ++++++++++++-------------- 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/lib/src/experimental/Predication.gf b/lib/src/experimental/Predication.gf index 31bf24849..9d3f76b61 100644 --- a/lib/src/experimental/Predication.gf +++ b/lib/src/experimental/Predication.gf @@ -8,7 +8,6 @@ cat V Arg ; VP Arg ; VPC Arg ; -- conjunction of VP - Temp ; Ant ; Tense ; Pol ; @@ -34,11 +33,9 @@ fun PPos, PNeg : Pol ; ASimul, AAnter : Ant ; - TTAnt : Tense -> Ant -> Temp ; - - UseV : Temp -> Pol -> (a : Arg) -> V a -> VP a ; - PassUseV : Temp -> Pol -> (a : Arg) -> V (aNP a) -> VP a ; - AgentPassUseV : Temp -> Pol -> (a : Arg) -> V (aNP a) -> NP -> VP a ; + UseV : Ant -> Tense -> Pol -> (a : Arg) -> V a -> VP a ; + PassUseV : Ant -> Tense -> Pol -> (a : Arg) -> V (aNP a) -> VP a ; + AgentPassUseV : Ant -> Tense -> Pol -> (a : Arg) -> V (aNP a) -> NP -> VP a ; SlashV2 : (a : Arg) -> VP (aNP a) -> NP -> VP a ; -- consuming first NP SlashV3 : (a : Arg) -> VP (aNP (aNP a)) -> NP -> VP (aNP a) ; -- consuming second NP @@ -53,7 +50,7 @@ fun SlashV2N : (a : Arg) -> VP (aNP aN) -> CN a -> VP (aNP a) ; SlashV2Q : (a : Arg) -> VP (aNP aA) -> QCl a -> VP (aNP a) ; - UseAP : Temp -> Pol -> (a : Arg) -> AP a -> VP a ; + UseAP : Ant -> Tense -> Pol -> (a : Arg) -> AP a -> VP a ; PredVP : (a : Arg) -> NP -> VP a -> Cl a ; diff --git a/lib/src/experimental/PredicationSwe.gf b/lib/src/experimental/PredicationSwe.gf index 8fd0b42f8..ad252c1de 100644 --- a/lib/src/experimental/PredicationSwe.gf +++ b/lib/src/experimental/PredicationSwe.gf @@ -77,7 +77,6 @@ lincat c3 : ComplCase ; } ; - Temp = {s : Str ; t : STense ; a : Anteriority} ; Tense = {s : Str ; t : STense} ; Ant = {s : Str ; a : Anteriority} ; Pol = {s : Str ; p : Polarity} ; @@ -108,7 +107,6 @@ lin aNone, aS, aV, aA, aQ, aN = {s = []} ; aNP a = a ; - TTAnt t a = {s = t.s ++ a.s ; t = t.t ; a = a.a} ; TPres = {s = [] ; t = Pres} ; TPast = {s = [] ; t = Past} ; TFut = {s = [] ; t = Fut} ; @@ -119,9 +117,9 @@ lin PPos = {s = [] ; p = Pos} ; PNeg = {s = [] ; p = Neg} ; - UseV t p _ v = { - v = tenseV t.s t.t t.a Act v ; - inf = tenseInfV t.s t.a Act v ; + UseV a t p _ v = { + v = tenseV (a.s ++ t.s) t.t a.a Act v ; + inf = tenseInfV a.s a.a Act v ; c1 = v.c1 ; c2 = v.c2 ; adj = noObj ; @@ -132,9 +130,9 @@ lin ext = [] ; } ; - PassUseV t p _ v = { - v = tenseV t.s t.t t.a Pass v ; - inf = tenseInfV t.s t.a Pass v ; + PassUseV a t p _ v = { + v = tenseV (a.s ++ t.s) t.t a.a Pass v ; + inf = tenseInfV a.s a.a Pass v ; c1 = v.c1 ; c2 = v.c2 ; adj = noObj ; @@ -145,9 +143,9 @@ lin ext = [] ; } ; - AgentPassUseV t p _ v np = { - v = tenseV t.s t.t t.a Pass v ; - inf = tenseInfV t.s t.a Pass v ; + AgentPassUseV a t p _ v np = { + v = tenseV (a.s ++ t.s) t.t a.a Pass v ; + inf = tenseInfV a.s a.a Pass v ; c1 = v.c1 ; c2 = v.c2 ; adj = \\a => [] ; @@ -158,9 +156,9 @@ lin ext = [] ; } ; - UseAP t p _ ap = { - v = tenseV t.s t.t t.a Act be_V ; - inf = tenseInfV t.s t.a Act be_V ; + UseAP a t p _ ap = { + v = tenseV (a.s ++ t.s) t.t a.a Act be_V ; + inf = tenseInfV a.s a.a Act be_V ; c1 = ap.c1 ; c2 = ap.c2 ; adj = \\a => ap.s ! a ; @@ -648,7 +646,7 @@ oper vp.adV ++ (vp.inf.p1 | []) ++ vp.inf.p2 ++ ---- *hon tvingar oss att sovit vp.adj ! a ++ vp.c1 ++ vp.obj1.p1 ! a ++ vp.c2 ++ vp.obj2.p1 ! a2 ++ vp.adv ++ vp.ext ; - tenseV : Str -> STense -> Anteriority -> Voice -> V -> Str * Str * Str = \sta,t,a,o,v -> case of { --- sta dummy s field of Temp + tenseV : Str -> STense -> Anteriority -> Voice -> V -> Str * Str * Str = \sta,t,a,o,v -> case of { --- sta dummy s field of Ant and Tense => ; => ; => ; @@ -659,11 +657,10 @@ oper => } ; - tenseInfV : Str -> Anteriority -> Voice -> V -> Str * Str = \sta,a,o,v -> - let tenseMark = [] ---- sta, will produce ambiguity instead of metavariable - in case a of { - Simul => <[], tenseMark ++ v.v ! TV o VInf> ; -- hon vill sova - Anter => -- hon vill (ha) sovit + tenseInfV : Str -> Anteriority -> Voice -> V -> Str * Str = \sa,a,o,v -> + case a of { + Simul => <[], sa ++ v.v ! TV o VInf> ; -- hon vill sova + Anter => -- hon vill (ha) sovit } ;