1
0
forked from GitHub/gf-rgl

=ReImplemented UseCl to cater for all 3 Tense and 1 Coditional mood Form

This commit is contained in:
David Bamutura
2019-05-20 16:48:00 +02:00
parent 143a9e9686
commit 366d6cd38e
2 changed files with 50 additions and 12 deletions

View File

@@ -1223,10 +1223,10 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
}; };
VFPresPart => table{ VFPresPart => table{
PreVerb => []; PreVerb => [];
PriNegM => "ti"; PriNegM => [];
--ObjRel => []; --ObjRel => [];
--SubjMarker =[]; --SubjMarker =[];
SecNegM => []; SecNegM => "ta";
TAMarker => "riku"; TAMarker => "riku";
PersistiveMarker => []; PersistiveMarker => [];
--DObjM => []; --DObjM => [];

View File

@@ -10,32 +10,71 @@ lin
-- } ; -- } ;
--2 Sentences --2 Sentences
--UseCl : Temp -> Pol -> Cl -> S ; -- she had not slept --UseCl : Temp -> Pol -> Cl -> S ; -- she had not slept
--Temp = {s : Str ; t : R.Tense ; a : R.Anteriority} ;
UseCl temp pol cl = let UseCl temp pol cl = let
subj = cl.s; subj = cl.s;
clitic = mkSubjClitic cl.subjAgr; clitic = mkSubjClitic cl.subjAgr;
simul = cl.pres; --morphs ! VFPres; --this is not delivering the string presSimul = cl.morphs ! VFPres; --this is not delivering the string
ant = cl.morphs ! VFPastPart; --this is not delivering the string presAnt = cl.morphs ! VFPastPart; --this is not delivering the string
root = cl.root; root = cl.root;
presRestOfVerb = cl.morphs ! VFPres ! RestOfVerb; presRestOfVerb = cl.morphs ! VFPres ! RestOfVerb;
pastRestOfVerb = cl.perf; --morphs ! VFPastPart ! RestOfVerb; pastRestOfVerb = cl.perf; --morphs ! VFPastPart ! RestOfVerb;
compl = cl.compl compl = cl.compl
in in
case <temp.a, pol.p> of { case <temp.t,temp.a, pol.p> of {
<Simul, Pos> => {s = subj ++ clitic ++ --Predef.BIND ++ <Pres,Simul, Pos> => {s = subj ++ clitic ++ --Predef.BIND ++
root ++ Predef.BIND ++ presRestOfVerb ++ compl}; root ++ Predef.BIND ++ presRestOfVerb ++ compl};
{-Note: when I use pol.s instead of ti, the word alignment instead becomes worse-} {-Note: when I use pol.s instead of ti, the word alignment instead becomes worse-}
<Simul, Neg> => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ --Predef.BIND ++ <Pres,Simul, Neg> => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ --Predef.BIND ++
root ++ presRestOfVerb ++ compl}; root ++ presRestOfVerb ++ compl};
<Anter, Pos> => {s = subj ++ clitic ++ --Predef.BIND ++ <Pres,Anter, Pos> => {s = subj ++ clitic ++ --Predef.BIND ++
ant!TAMarker ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}; cl.morphs!VFPresAnt!TAMarker ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
<Anter, Neg> =>{s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ --Predef.BIND ++ <Pres,Anter, Neg> =>{s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ --Predef.BIND ++
ant!TAMarker ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl} cl.morphs!VFPresAnt!TAMarker ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
<Past,Simul, Pos> => {s = subj ++ clitic ++ --Predef.BIND ++
root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
{-Note: when I use pol.s instead of ti, the word alignment instead becomes worse-}
<Past,Simul, Neg> => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ --Predef.BIND ++
root ++ pastRestOfVerb ++ compl};
<Past,Anter, Pos> => {s = subj ++ clitic ++ "bire" ++ clitic ++ --Predef.BIND ++
cl.morphs!VFPastAnt!TAMarker ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
<Past,Anter, Neg> =>{s = subj ++ clitic ++ "bire" ++ clitic ++ "ta"--Predef.BIND ++ ant!TAMarker
++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
<Fut,Simul, Pos> => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za ku" ++ Predef.BIND ++ --choice of za over ija
root ++ Predef.BIND ++ presRestOfVerb ++ compl};
{-Note: when I use pol.s instead of ti, the word alignment instead becomes worse-}
<Fut,Simul, Neg> => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "kuza ku" ++ Predef.BIND ++
root ++ presRestOfVerb ++ compl};
<Fut,Anter, Pos> => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za kuba" ++ Predef.BIND ++ --choice of za over ija
root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
<Fut,Anter, Neg> =>{s = subj ++ "ni" ++ Predef.BIND ++ clitic ++ "za kuba" ++ clitic ++ "taka" ++ Predef.BIND ++
root ++ pastRestOfVerb ++ compl};
<Cond,Simul, Pos> => {s = subj ++ clitic ++ "kaa" ++Predef.BIND ++
root ++ Predef.BIND ++ presRestOfVerb ++ compl};
{-Note: when I use pol.s instead of ti, the word alignment instead becomes worse-}
<Cond,Simul, Neg> => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "kaa" ++ Predef.BIND ++
root ++ presRestOfVerb ++ compl};
<Cond,Anter, Pos> => {s = subj ++ clitic ++ "kaa"--Predef.BIND ++
++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
<Cond,Anter, Neg> =>{s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "kaa" ++Predef.BIND
++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
}; --: Temp -> Pol -> QCl -> QS ; -- has John walked }; --: Temp -> Pol -> QCl -> QS ; -- has John walked
-- These are the 2 x 4 x 4 = 16 forms generated by different
-- combinations of tense, polarity, and
-- anteriority, which are defined in [``Common`` Common.html].
UseQCl = UseCl; -- : Temp -> Pol -> Cl -> S ; -- John has not walked UseQCl = UseCl; -- : Temp -> Pol -> Cl -> S ; -- John has not walked
QuestCl qcl = qcl; --: Cl -> QCl ; -- does John (not) walk QuestCl qcl = qcl; --: Cl -> QCl ; -- does John (not) walk
--UseRCl : Temp -> Pol -> RCl -> RS ; -- that had not slept
--UseRCl temp pol rcl =
PredVP np vp = case vp.isCompApStem of{ PredVP np vp = case vp.isCompApStem of{
False => { False => {
s = np.s ! Nom; --: NP -> VP -> Cl ; -- John walks / John does not walk s = np.s ! Nom; --: NP -> VP -> Cl ; -- John walks / John does not walk
@@ -122,7 +161,6 @@ lin
adV = vpslash.adV; adV = vpslash.adV;
containsAdV = vpslash.containsAdV containsAdV = vpslash.containsAdV
}; };
--SlashVP np vpslash =
--AdvSlash : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today --AdvSlash : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today
--SlashPrep : Cl -> Prep -> ClSlash ; -- (with whom) he walks --SlashPrep : Cl -> Prep -> ClSlash ; -- (with whom) he walks