forked from GitHub/gf-rgl
redesigned the Verb, VerbPhrase, Cl and RCL so as to check for empty tense Markers and hence correct errors with Copulative statements. The Problem with Numeral still remains
This commit is contained in:
@@ -65,6 +65,8 @@ lincat
|
|||||||
perf :Str;
|
perf :Str;
|
||||||
root : Str;
|
root : Str;
|
||||||
--morphs : Res.VFormMini => Res.VerbMorphPos =>Str;
|
--morphs : Res.VFormMini => Res.VerbMorphPos =>Str;
|
||||||
|
isPresBlank :Bool;
|
||||||
|
isPerfBlank : Bool;
|
||||||
compl : Str; -- after verb: complement, adverbs
|
compl : Str; -- after verb: complement, adverbs
|
||||||
isCompApStem : Bool;
|
isCompApStem : Bool;
|
||||||
whichRel: Res.RForm
|
whichRel: Res.RForm
|
||||||
@@ -78,6 +80,8 @@ lincat
|
|||||||
pres: Str;
|
pres: Str;
|
||||||
perf:Str;
|
perf:Str;
|
||||||
--morphs : Res.VFormMini => Res.VerbMorphPos =>Str; --; compl : Str -- after verb: complement, adverbs
|
--morphs : Res.VFormMini => Res.VerbMorphPos =>Str; --; compl : Str -- after verb: complement, adverbs
|
||||||
|
isPresBlank : Bool;
|
||||||
|
isPerfBlank : Bool;
|
||||||
ap:Str;
|
ap:Str;
|
||||||
isRegular:Bool;
|
isRegular:Bool;
|
||||||
adv:Str;
|
adv:Str;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
abstract DictEngAbs = Cat ** {
|
abstract DictCggAbs = Cat ** {
|
||||||
|
|
||||||
{- --beginning of comment
|
{- --beginning of comment
|
||||||
|
|
||||||
|
|||||||
5
src/rukiga/ExtraCatAbs.gf
Normal file
5
src/rukiga/ExtraCatAbs.gf
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
abstract ExtraCatAbs = Cat **{
|
||||||
|
cat
|
||||||
|
TenseExtra;
|
||||||
|
TempExtra;
|
||||||
|
}
|
||||||
16
src/rukiga/ExtraCggAbs.gf
Normal file
16
src/rukiga/ExtraCggAbs.gf
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
abstract ExtraCggAbs = Cat **{
|
||||||
|
|
||||||
|
-- there is a default linearization for abstract
|
||||||
|
-- categories Tense and Temp
|
||||||
|
-- these in TenseX
|
||||||
|
--
|
||||||
|
cat
|
||||||
|
AllTenses;
|
||||||
|
--TempExtra;
|
||||||
|
fun
|
||||||
|
UseClExtra : TempExtra -> Pol -> Cl -> S ; -- she had not slept
|
||||||
|
UseQClExtra : TempExtra -> Pol -> QCl -> QS ; -- who had not slept
|
||||||
|
UseRClExtra : TempExtra -> Pol -> RCl -> RS ; -- that had not slept
|
||||||
|
UseSlashExtra : TempExtra -> Pol -> ClSlash -> SSlash ; -- (that) she had not seen
|
||||||
|
|
||||||
|
}
|
||||||
14
src/rukiga/ExtraCggAbsCgg.gf
Normal file
14
src/rukiga/ExtraCggAbsCgg.gf
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
concrete ExtraCggAbsCgg of ExtraCggAbs = CatCgg
|
||||||
|
open (R=ResCgg), (P=ParamX) in {
|
||||||
|
|
||||||
|
lincat
|
||||||
|
AllTenses = {s : Str ; t : P.Tense; tExtra : R.TensesExtra } ;
|
||||||
|
TempExtra = {s : Str ; t : R.TensesExtra } ;
|
||||||
|
--TempExtraWithAspects = {s : Str ; t : P.Tense ; a : R.AspectsExtra } ;
|
||||||
|
fun
|
||||||
|
UseClExtra : TempTempExtra -> Pol -> Cl -> S ; -- she had not slept
|
||||||
|
UseQClExtra : TempTempExtra -> Pol -> QCl -> QS ; -- who had not slept
|
||||||
|
UseRClExtra : TempTempExtra -> Pol -> RCl -> RS ; -- that had not slept
|
||||||
|
UseSlashExtra : TempTempExtra -> Pol -> ClSlash -> SSlash ; -- (that) she had not seen
|
||||||
|
|
||||||
|
}
|
||||||
@@ -145,7 +145,7 @@ lin
|
|||||||
|
|
||||||
--today_Adv = mkAdv "erizooba" AgrNo;
|
--today_Adv = mkAdv "erizooba" AgrNo;
|
||||||
|
|
||||||
father_N2 = mkN2 (mkN "tata" MU_BA) (lin Prep (mkPrep [] [] True)) ;
|
father_N2 = mkN2 (mkN "tata" ZERO_BAA) (lin Prep (mkPrep [] [] True)) ;
|
||||||
|
|
||||||
distance_N3 = mkN3 (mkN "orugyendo" ZERO_BU) (lin Prep (mkPrep "kurunga" "" False)) (lin Prep (mkPrep "mpáka" "" False)); --could orugyendo work in its place?
|
distance_N3 = mkN3 (mkN "orugyendo" ZERO_BU) (lin Prep (mkPrep "kurunga" "" False)) (lin Prep (mkPrep "mpáka" "" False)); --could orugyendo work in its place?
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ concrete QuestionCgg of Question = CatCgg ** open ResCgg, Prelude in {
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
--QuestCl : Cl -> QCl ; -- does John walk
|
--QuestCl : Cl -> QCl ; -- does John walk
|
||||||
|
|
||||||
QuestCl cl = cl ** {posibleSubAgr = mkSubjCliticTable};
|
QuestCl cl = cl ** {posibleSubAgr = mkSubjCliticTable};
|
||||||
--QuestVP : IP -> VP -> QCl ; -- who walks
|
--QuestVP : IP -> VP -> QCl ; -- who walks
|
||||||
|
|
||||||
@@ -17,6 +18,8 @@ concrete QuestionCgg of Question = CatCgg ** open ResCgg, Prelude in {
|
|||||||
root = vp.s;
|
root = vp.s;
|
||||||
pres = vp.pres;
|
pres = vp.pres;
|
||||||
perf = vp.perf;
|
perf = vp.perf;
|
||||||
|
isPresBlank = vp.isPresBlank;
|
||||||
|
isPerfBlank = vp.isPerfBlank;
|
||||||
--morphs = vp.morphs;
|
--morphs = vp.morphs;
|
||||||
{-
|
{-
|
||||||
inf : Str;
|
inf : Str;
|
||||||
@@ -45,6 +48,8 @@ concrete QuestionCgg of Question = CatCgg ** open ResCgg, Prelude in {
|
|||||||
root = clSlash.s;
|
root = clSlash.s;
|
||||||
pres = clSlash.pres;
|
pres = clSlash.pres;
|
||||||
perf = clSlash.perf;
|
perf = clSlash.perf;
|
||||||
|
isPresBlank = clSlash.isPresBlank;
|
||||||
|
isPerfBlank = clSlash.isPerfBlank;
|
||||||
--morphs = clSlash.morphs;
|
--morphs = clSlash.morphs;
|
||||||
{-
|
{-
|
||||||
inf : Str;
|
inf : Str;
|
||||||
@@ -66,6 +71,8 @@ concrete QuestionCgg of Question = CatCgg ** open ResCgg, Prelude in {
|
|||||||
pres = cl.pres;
|
pres = cl.pres;
|
||||||
perf = cl.perf;
|
perf = cl.perf;
|
||||||
--morphs = cl.morphs;
|
--morphs = cl.morphs;
|
||||||
|
isPresBlank = cl.isPresBlank;
|
||||||
|
isPerfBlank = cl.isPerfBlank;
|
||||||
{-
|
{-
|
||||||
inf : Str;
|
inf : Str;
|
||||||
pres : Str;
|
pres : Str;
|
||||||
@@ -90,6 +97,8 @@ concrete QuestionCgg of Question = CatCgg ** open ResCgg, Prelude in {
|
|||||||
pres = be_Copula.pres;
|
pres = be_Copula.pres;
|
||||||
perf = be_Copula.perf;
|
perf = be_Copula.perf;
|
||||||
--morphs = be_Copula.morphs;
|
--morphs = be_Copula.morphs;
|
||||||
|
isPresBlank = be_Copula.isPresBlank;
|
||||||
|
isPerfBlank = be_Copula.isPerfBlank;
|
||||||
{-
|
{-
|
||||||
inf : Str;
|
inf : Str;
|
||||||
pres : Str;
|
pres : Str;
|
||||||
@@ -108,6 +117,8 @@ concrete QuestionCgg of Question = CatCgg ** open ResCgg, Prelude in {
|
|||||||
pres = be_Copula.pres;
|
pres = be_Copula.pres;
|
||||||
perf = be_Copula.perf;
|
perf = be_Copula.perf;
|
||||||
--morphs = be_Copula.morphs;
|
--morphs = be_Copula.morphs;
|
||||||
|
isPresBlank = be_Copula.isPresBlank;
|
||||||
|
isPerfBlank = be_Copula.isPerfBlank;
|
||||||
{-
|
{-
|
||||||
inf : Str;
|
inf : Str;
|
||||||
pres : Str;
|
pres : Str;
|
||||||
@@ -126,6 +137,8 @@ concrete QuestionCgg of Question = CatCgg ** open ResCgg, Prelude in {
|
|||||||
pres = be_Copula.pres;
|
pres = be_Copula.pres;
|
||||||
perf = be_Copula.perf;
|
perf = be_Copula.perf;
|
||||||
--morphs = be_Copula.morphs;
|
--morphs = be_Copula.morphs;
|
||||||
|
isPresBlank = be_Copula.isPresBlank;
|
||||||
|
isPerfBlank = be_Copula.isPerfBlank;
|
||||||
{-
|
{-
|
||||||
inf : Str;
|
inf : Str;
|
||||||
pres : Str;
|
pres : Str;
|
||||||
|
|||||||
@@ -32,6 +32,8 @@ lin
|
|||||||
perf =cl.perf;
|
perf =cl.perf;
|
||||||
root = cl.root;
|
root = cl.root;
|
||||||
--morphs = cl.morphs;
|
--morphs = cl.morphs;
|
||||||
|
isPresBlank = cl.isPresBlank;
|
||||||
|
isPerfBlank = cl.isPerfBlank;
|
||||||
compl =cl.compl;
|
compl =cl.compl;
|
||||||
isCompApStem = False;
|
isCompApStem = False;
|
||||||
whichRel = Such_That;
|
whichRel = Such_That;
|
||||||
@@ -52,6 +54,8 @@ lin
|
|||||||
perf =vp.perf;
|
perf =vp.perf;
|
||||||
root = vp.s;
|
root = vp.s;
|
||||||
--morphs = vp.morphs;
|
--morphs = vp.morphs;
|
||||||
|
isPresBlank = vp.isPresBlank;
|
||||||
|
isPerfBlank = vp.isPerfBlank;
|
||||||
compl =vp.comp;
|
compl =vp.comp;
|
||||||
isCompApStem = vp.isCompApStem;
|
isCompApStem = vp.isCompApStem;
|
||||||
whichRel = RF RSubj;
|
whichRel = RF RSubj;
|
||||||
@@ -79,6 +83,8 @@ lin
|
|||||||
perf = clSlash.perf;
|
perf = clSlash.perf;
|
||||||
root = clSlash.root;
|
root = clSlash.root;
|
||||||
--morphs = clSlash.morphs;
|
--morphs = clSlash.morphs;
|
||||||
|
isPresBlank = clSlash.isPresBlank;
|
||||||
|
isPerfBlank = clSlash.isPerfBlank;
|
||||||
compl = comp;
|
compl = comp;
|
||||||
isCompApStem = isCompApStem;
|
isCompApStem = isCompApStem;
|
||||||
whichRel = RF RObj;
|
whichRel = RF RObj;
|
||||||
|
|||||||
@@ -62,6 +62,13 @@ param
|
|||||||
-- may not need it
|
-- may not need it
|
||||||
NounCat = ComNoun | PropNoun; --prepositions agree with nouns to form adverbial Phrases
|
NounCat = ComNoun | PropNoun; --prepositions agree with nouns to form adverbial Phrases
|
||||||
PrepForm = Form1 | Form2; -- omu and omuri, aha, ahari
|
PrepForm = Form1 | Form2; -- omu and omuri, aha, ahari
|
||||||
|
-- for Extra Tenses not implemented
|
||||||
|
-- would be better if I had alliases
|
||||||
|
TensesExtra = RemotePast | ImmediatePast | RemoteFuture;
|
||||||
|
|
||||||
|
-- for Extra Aspects not implemented
|
||||||
|
-- would be better if I had alliases
|
||||||
|
Aspect = Performative | Perfect | Resultative | Retrospective | Habitual | Progressive | Persitive;
|
||||||
{-
|
{-
|
||||||
Complete = Nouns with IV,
|
Complete = Nouns with IV,
|
||||||
Incomplete = Nouns without IV: important for use with pre-determiners
|
Incomplete = Nouns without IV: important for use with pre-determiners
|
||||||
@@ -100,6 +107,8 @@ oper
|
|||||||
s = rad;
|
s = rad;
|
||||||
pres = end1;
|
pres = end1;
|
||||||
perf = end2;
|
perf = end2;
|
||||||
|
isPresBlank = False;
|
||||||
|
isPerfBlank = False;
|
||||||
--morphs = mkVerbMorphs;
|
--morphs = mkVerbMorphs;
|
||||||
isRegular = False;
|
isRegular = False;
|
||||||
};
|
};
|
||||||
@@ -109,6 +118,8 @@ oper
|
|||||||
pres = "a";
|
pres = "a";
|
||||||
perf = "ire";
|
perf = "ire";
|
||||||
--morphs = mkVerbMorphs;
|
--morphs = mkVerbMorphs;
|
||||||
|
isPresBlank = False;
|
||||||
|
isPerfBlank = False;
|
||||||
isRegular = True;
|
isRegular = True;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1105,6 +1116,8 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
pres:Str;
|
pres:Str;
|
||||||
perf:Str;
|
perf:Str;
|
||||||
--morphs: VFormMini => VerbMorphPos=> Str;
|
--morphs: VFormMini => VerbMorphPos=> Str;
|
||||||
|
isPresBlank : Bool;
|
||||||
|
isPerfBlank : Bool;
|
||||||
isRegular:Bool
|
isRegular:Bool
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1140,6 +1153,8 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
pres:Str;
|
pres:Str;
|
||||||
perf:Str;
|
perf:Str;
|
||||||
--morphs: VMorphs ;
|
--morphs: VMorphs ;
|
||||||
|
isPresBlank : Bool;
|
||||||
|
isPerfBlank : Bool;
|
||||||
isRegular:Bool;
|
isRegular:Bool;
|
||||||
comp:Str ;
|
comp:Str ;
|
||||||
comp2:Str;
|
comp2:Str;
|
||||||
@@ -1178,12 +1193,16 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
pres=[];
|
pres=[];
|
||||||
perf=[];
|
perf=[];
|
||||||
--morphs= mkVerbMorphs;
|
--morphs= mkVerbMorphs;
|
||||||
|
isPresBlank = True;
|
||||||
|
isPerfBlank = True;
|
||||||
isRegular=False
|
isRegular=False
|
||||||
};
|
};
|
||||||
mkBecome : Verb ={
|
mkBecome : Verb ={
|
||||||
s = "b" ;
|
s = "b" ;
|
||||||
pres="a";
|
pres="a";
|
||||||
perf="ire";
|
perf="ire";
|
||||||
|
isPresBlank = False;
|
||||||
|
isPerfBlank = False;
|
||||||
--morphs= mkVerbMorphs;
|
--morphs= mkVerbMorphs;
|
||||||
isRegular=False
|
isRegular=False
|
||||||
};
|
};
|
||||||
@@ -1340,6 +1359,8 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
pres:Str;
|
pres:Str;
|
||||||
perf:Str;
|
perf:Str;
|
||||||
--morphs: VMorphs;
|
--morphs: VMorphs;
|
||||||
|
isPresBlank : Bool;
|
||||||
|
isPerfBlank : Bool;
|
||||||
comp: Str;
|
comp: Str;
|
||||||
comp2:Str;
|
comp2:Str;
|
||||||
ap:Str;
|
ap:Str;
|
||||||
@@ -1362,6 +1383,8 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
root : Str;
|
root : Str;
|
||||||
pres: Str;
|
pres: Str;
|
||||||
perf: Str;
|
perf: Str;
|
||||||
|
isPresBlank : Bool;
|
||||||
|
isPerfBlank : Bool;
|
||||||
--morphs : VFormMini => VerbMorphPos =>Str;
|
--morphs : VFormMini => VerbMorphPos =>Str;
|
||||||
{-
|
{-
|
||||||
inf : Str;
|
inf : Str;
|
||||||
@@ -1373,7 +1396,10 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
-}
|
-}
|
||||||
compl : Str -- after verb: complement, adverbs
|
compl : Str -- after verb: complement, adverbs
|
||||||
} ;
|
} ;
|
||||||
Comp : Type = {s:Str};
|
param
|
||||||
|
CompSource = NounP | ADverb | AdjP | CommonNoun;
|
||||||
|
oper
|
||||||
|
Comp : Type = {s:Str; source : CompSource };
|
||||||
|
|
||||||
|
|
||||||
--Conjunctions
|
--Conjunctions
|
||||||
|
|||||||
@@ -24,54 +24,110 @@ lin
|
|||||||
compl = cl.compl
|
compl = cl.compl
|
||||||
in
|
in
|
||||||
case <temp.t,temp.a, pol.p> of {
|
case <temp.t,temp.a, pol.p> of {
|
||||||
<Pres,Simul, Pos> => {s = subj ++ clitic ++ --Predef.BIND ++
|
<Pres,Simul, Pos> => case cl.isPresBlank of {
|
||||||
root ++ Predef.BIND ++ presRestOfVerb ++ compl};
|
True => {s = subj ++ clitic ++ root ++ compl};
|
||||||
|
False => {s = subj ++ clitic ++ root ++ Predef.BIND ++ 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-}
|
||||||
<Pres,Simul, Neg> => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ --Predef.BIND ++
|
<Pres,Simul, Neg> => case cl.isPresBlank of {
|
||||||
root ++ presRestOfVerb ++ compl};
|
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ root ++ compl};
|
||||||
<Pres,Anter, Pos> => {s = subj ++ clitic ++ --Predef.BIND ++
|
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++
|
||||||
vMorphs!VFPresAnt!TAMarker ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
|
root ++ Predef.BIND ++ presRestOfVerb ++ compl}
|
||||||
<Pres,Anter, Neg> =>{s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ --Predef.BIND ++
|
};
|
||||||
vMorphs!VFPresAnt!TAMarker ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
|
<Pres,Anter, Pos> => case cl.isPerfBlank of {
|
||||||
|
True => {s = subj ++ clitic ++ root ++ compl};
|
||||||
|
False => {s = subj ++ clitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
||||||
|
};
|
||||||
|
<Pres,Anter, Neg> => case cl.isPerfBlank of {
|
||||||
|
True => {s = subj ++ clitic ++ root ++ compl};
|
||||||
|
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++
|
||||||
|
root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
<Past,Simul, Pos> => {s = subj ++ clitic ++ --Predef.BIND ++
|
<Past,Simul, Pos> => case cl.isPerfBlank of {
|
||||||
root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
|
True => {s = subj ++ clitic ++ "ka" ++ Predef.BIND ++ root ++ compl};
|
||||||
|
False => {s = subj ++ clitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ 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-}
|
||||||
<Past,Simul, Neg> => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ --Predef.BIND ++
|
<Past,Simul, Neg> => case cl.isPerfBlank of {
|
||||||
root ++ pastRestOfVerb ++ compl};
|
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ root ++ compl};
|
||||||
<Past,Anter, Pos> => {s = subj ++ clitic ++ "bire" ++ clitic ++ --Predef.BIND ++
|
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++
|
||||||
vMorphs!VFPastAnt!TAMarker ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
|
root ++ pastRestOfVerb ++ compl}
|
||||||
<Past,Anter, Neg> =>{s = subj ++ clitic ++ "bire" ++ clitic ++ "ta"--Predef.BIND ++ ant!TAMarker
|
};
|
||||||
++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
|
|
||||||
|
<Past,Anter, Pos> => case cl.isPerfBlank of {
|
||||||
|
True => {s = subj ++ clitic ++ "kaba" ++Predef.BIND ++ clitic ++
|
||||||
|
root ++ compl};
|
||||||
|
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "a" ++ Predef.BIND ++
|
||||||
|
root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
||||||
|
};
|
||||||
|
<Past,Anter, Neg> =>case cl.isPerfBlank of {
|
||||||
|
True => {s = subj ++ clitic ++ "ka" ++Predef.BIND ++ clitic ++
|
||||||
|
root ++ compl};
|
||||||
|
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "taa" ++ Predef.BIND ++
|
||||||
|
root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
||||||
|
};
|
||||||
|
|
||||||
|
<Fut,Simul, Pos> => case cl.isPresBlank of {
|
||||||
|
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za ku" ++ Predef.BIND ++ --choice of za over ija
|
||||||
|
root ++ compl};
|
||||||
|
False => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za ku" ++ Predef.BIND ++ --choice of za over ija
|
||||||
|
root ++ Predef.BIND ++ presRestOfVerb ++ 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-}
|
{-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 ++
|
<Fut,Simul, Neg> => case cl.isPresBlank of {
|
||||||
root ++ presRestOfVerb ++ compl};
|
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "kuza ku" ++ Predef.BIND ++
|
||||||
<Fut,Anter, Pos> => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za kuba" ++ Predef.BIND ++ --choice of za over ija
|
root ++ compl};
|
||||||
root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
|
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "kuza ku" ++ Predef.BIND ++
|
||||||
<Fut,Anter, Neg> =>{s = subj ++ "ni" ++ Predef.BIND ++ clitic ++ "za kuba" ++ clitic ++ "taka" ++ Predef.BIND ++
|
root ++ BIND ++ presRestOfVerb ++ compl}
|
||||||
root ++ pastRestOfVerb ++ compl};
|
};
|
||||||
|
<Fut,Anter, Pos> => case cl.isPerfBlank of {
|
||||||
|
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za kuba" ++ Predef.BIND ++ clitic ++ --choice of za over ija
|
||||||
|
root ++ Predef.BIND ++ "ire" ++ compl};
|
||||||
|
False => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za kuba" ++ Predef.BIND ++ clitic ++ --choice of za over ija
|
||||||
|
root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
||||||
|
};
|
||||||
|
|
||||||
|
<Fut,Anter, Neg> => case cl.isPerfBlank of {
|
||||||
<Cond,Simul, Pos> => {s = subj ++ clitic ++ "kaa" ++Predef.BIND ++
|
True => {s = subj ++ "ni" ++ Predef.BIND ++ clitic ++ "za kuba" ++ clitic ++ Predef.BIND ++
|
||||||
root ++ Predef.BIND ++ presRestOfVerb ++ compl};
|
root ++ "ire" ++ compl};
|
||||||
|
False => {s = subj ++ "ni" ++ Predef.BIND ++ clitic ++ "za kuba" ++ clitic ++ "taka" ++ Predef.BIND ++
|
||||||
|
root ++ pastRestOfVerb ++ compl}
|
||||||
|
};
|
||||||
|
<Cond,Simul, Pos> => case cl.isPresBlank of {
|
||||||
|
True => {s = subj ++ clitic ++ "kaa" ++Predef.BIND ++ root ++ compl};
|
||||||
|
False => {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-}
|
{-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 ++
|
<Cond,Simul, Neg> =>case cl.isPresBlank of {
|
||||||
root ++ presRestOfVerb ++ compl};
|
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "kaa" ++ Predef.BIND ++
|
||||||
<Cond,Anter, Pos> => {s = subj ++ clitic ++ "kaa"--Predef.BIND ++
|
root ++ "ire" ++ compl};
|
||||||
++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl};
|
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "kaa" ++ Predef.BIND ++
|
||||||
<Cond,Anter, Neg> =>{s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "kaa" ++Predef.BIND
|
root ++ presRestOfVerb ++ compl}
|
||||||
|
};
|
||||||
|
|
||||||
|
<Cond,Anter, Pos> => case cl.isPerfBlank of {
|
||||||
|
True => {s = subj ++ clitic ++ "kaa" ++ root ++ compl};
|
||||||
|
False => {s = subj ++ clitic ++ "kaa" ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
||||||
|
};
|
||||||
|
|
||||||
|
<Cond,Anter, Neg> =>case cl.isPerfBlank of {
|
||||||
|
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "kaa" ++Predef.BIND
|
||||||
|
++ root ++ Predef.BIND ++ "ire" ++ compl};
|
||||||
|
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "kaa" ++Predef.BIND
|
||||||
++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
++ 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
|
-- These are the 2 x 4 x 4 = 16 forms generated by different
|
||||||
-- combinations of tense, polarity, and
|
-- combinations of tense, polarity, and
|
||||||
-- anteriority, which are defined in [``Common`` Common.html].
|
-- 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
|
|
||||||
|
|
||||||
--UseRCl : Temp -> Pol -> RCl -> RS ; -- that had not slept
|
--UseRCl : Temp -> Pol -> RCl -> RS ; -- that had not slept
|
||||||
UseRCl temp pol rcl = let
|
UseRCl temp pol rcl = let
|
||||||
@@ -231,6 +287,8 @@ lin
|
|||||||
perf = vp.perf;
|
perf = vp.perf;
|
||||||
root = vp.s;
|
root = vp.s;
|
||||||
--morphs = vp.morphs;
|
--morphs = vp.morphs;
|
||||||
|
isPresBlank = vp.isPresBlank;
|
||||||
|
isPerfBlank = vp.isPerfBlank;
|
||||||
{-
|
{-
|
||||||
inf = mkVerbInrf vp.root;
|
inf = mkVerbInrf vp.root;
|
||||||
pres = mkVerbPres vp.root;
|
pres = mkVerbPres vp.root;
|
||||||
@@ -248,6 +306,8 @@ lin
|
|||||||
perf = vp.perf;
|
perf = vp.perf;
|
||||||
root = vp.s;
|
root = vp.s;
|
||||||
--morphs = vp.morphs;
|
--morphs = vp.morphs;
|
||||||
|
isPresBlank = vp.isPresBlank;
|
||||||
|
isPerfBlank = vp.isPerfBlank;
|
||||||
{-
|
{-
|
||||||
inf = mkVerbInrf vp.root;
|
inf = mkVerbInrf vp.root;
|
||||||
pres = mkVerbPres vp.root;
|
pres = mkVerbPres vp.root;
|
||||||
@@ -256,7 +316,7 @@ lin
|
|||||||
pastPart = mkVerbPastPart vp.root; -- subject
|
pastPart = mkVerbPastPart vp.root; -- subject
|
||||||
-}
|
-}
|
||||||
--root = vp.root ;
|
--root = vp.root ;
|
||||||
compl = mkSubjClitic np.agr ++ Predef.BIND ++ vp.comp --mkSubjClitic np.agr ++ Predef.BIND ++ vp.comp
|
compl = mkSubjClitic np.agr ++ vp.comp --mkSubjClitic np.agr ++ Predef.BIND ++ vp.comp
|
||||||
}
|
}
|
||||||
};--: NP -> VP -> Cl ; -- John walks / John does not walk
|
};--: NP -> VP -> Cl ; -- John walks / John does not walk
|
||||||
|
|
||||||
@@ -309,6 +369,8 @@ lin
|
|||||||
pres = vpslash.pres;
|
pres = vpslash.pres;
|
||||||
perf = vpslash.perf;
|
perf = vpslash.perf;
|
||||||
--morphs = vpslash.morphs;
|
--morphs = vpslash.morphs;
|
||||||
|
isPresBlank = vpslash.isPresBlank;
|
||||||
|
isPerfBlank = vpslash.isPerfBlank;
|
||||||
ap = vpslash.ap;
|
ap = vpslash.ap;
|
||||||
isRegular = vpslash.isRegular;
|
isRegular = vpslash.isRegular;
|
||||||
adv = vpslash.adv;
|
adv = vpslash.adv;
|
||||||
|
|||||||
33
src/rukiga/SentenceCggAbsCgg.gf
Normal file
33
src/rukiga/SentenceCggAbsCgg.gf
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
concrete SentenceCggAbsCgg of SentenceCggAbs = CatCgg
|
||||||
|
open (R=ResCgg) in {
|
||||||
|
|
||||||
|
lincat
|
||||||
|
ExtTense = {s : Str ; t : R.TensesExtra } ;
|
||||||
|
TempExtra = {s : Str ; t : R.TensesExtra a : R.Aspects} ;
|
||||||
|
Aspect = {s : Str ; a : R.AspectsExtra } ;
|
||||||
|
lin
|
||||||
|
--TAspect -> ExtTense ->Ant -> TempExtra ;
|
||||||
|
TAspect extT a ={s = extT.s ++ a.s; t = exT.t; a = a.a};
|
||||||
|
--TRPast : ExtTense ; -- bakagyenda [Remote past]
|
||||||
|
TRPast = {s = [] ; t = R.Remotepast };
|
||||||
|
--TIPast : ExtTense ; -- baagyenda [Immediate Past or Memorial ]
|
||||||
|
TIPast = {s =[] ; t = R.ImmediatePast};
|
||||||
|
--TRFut : ExtTense ; -- I sleep/slept [simultaneous, not compound]
|
||||||
|
TRFut = {s = [] ; t = R.RemoteFut};
|
||||||
|
|
||||||
|
--APerformative : Aspect ; -- I slept [past, "imperfect"] --# notpresent
|
||||||
|
APerformative = {s = []; a = R.Performative };
|
||||||
|
APerfect = {s = []; a = R.Perfect }; -- I will sleep [future] --# notpresent
|
||||||
|
ARes = {s = []; a = R.Resultative }; -- I would sleep [conditional] --# notpresent
|
||||||
|
ARetr = {s = []; a = R.Retrospective }; -- I have slept/had slept [anterior, "compound", "perfect"] --# notpresent
|
||||||
|
AHab = {s = []; a = R.Habitual };
|
||||||
|
AProg = {s = []; a = R.Progrssive };
|
||||||
|
APer = {s = []; a = R.Persitive };
|
||||||
|
UseClExtra : TempExtra -> Pol -> Cl -> S ; -- she had not slept
|
||||||
|
|
||||||
|
|
||||||
|
--UseQClExtra : TempExtra -> Pol -> QCl -> QS ; -- who had not slept
|
||||||
|
--UseRClExtra : TempExtra -> Pol -> RCl -> RS ; -- that had not slept
|
||||||
|
--UseSlashExtra : TempExtra -> Pol -> ClSlash -> SSlash ; -- (that) she had not seen
|
||||||
|
|
||||||
|
}
|
||||||
3
src/rukiga/SentenceCggExtra.gf
Normal file
3
src/rukiga/SentenceCggExtra.gf
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
abstract SentenceCggExtra = Cat **{
|
||||||
|
|
||||||
|
}
|
||||||
25
src/rukiga/SentenceCggExtraAbs.gf
Normal file
25
src/rukiga/SentenceCggExtraAbs.gf
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
abstract SentenceCggExtraAbs = Cat **{
|
||||||
|
|
||||||
|
cat
|
||||||
|
ExtTense;
|
||||||
|
TempExtra;
|
||||||
|
Aspect;
|
||||||
|
fun
|
||||||
|
TAspect -> ExtTense ->Ant -> TempExtra ;
|
||||||
|
TRPast : ExtTense ; -- bakagyenda [Remote past]
|
||||||
|
TIPast : ExtTense ; -- baagyenda [Immediate Past or Memorial ]
|
||||||
|
TRFut : ExtTense ; -- I sleep/slept [simultaneous, not compound]
|
||||||
|
APerformative : Aspect ; -- I slept [past, "imperfect"] --# notpresent
|
||||||
|
APerfect : Aspect ; -- I will sleep [future] --# notpresent
|
||||||
|
ARes : Aspect ; -- I would sleep [conditional] --# notpresent
|
||||||
|
ARetr : Aspect ; -- I have slept/had slept [anterior, "compound", "perfect"] --# notpresent
|
||||||
|
AHab : Aspect ;
|
||||||
|
AProg : Aspect ;
|
||||||
|
APer : Aspect ;
|
||||||
|
|
||||||
|
|
||||||
|
UseClExtra : TempExtra -> Pol -> Cl -> S ; -- she had not slept
|
||||||
|
UseQClExtra : TempExtra -> Pol -> QCl -> QS ; -- who had not slept
|
||||||
|
UseRClExtra : TempExtra -> Pol -> RCl -> RS ; -- that had not slept
|
||||||
|
UseSlashExtra : TempExtra -> Pol -> ClSlash -> SSlash ; -- (that) she had not seen
|
||||||
|
}
|
||||||
@@ -97,7 +97,8 @@ lin
|
|||||||
n = Sg
|
n = Sg
|
||||||
};
|
};
|
||||||
|
|
||||||
have_V2 ={s= "ine"; pres=[]; perf =[]; morphs = mkVerbMorphs; comp = []; isRegular=False}; --: V2 ;
|
have_V2 ={s= "ine"; pres=[]; perf =[]; isPresBlank = False;
|
||||||
|
isPerfBlank = False; morphs = mkVerbMorphs; comp = []; isRegular=False}; --: V2 ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
All Predeterminers are given here.
|
All Predeterminers are given here.
|
||||||
@@ -203,12 +204,16 @@ lin
|
|||||||
doesAgree = True
|
doesAgree = True
|
||||||
};--: Det ;
|
};--: Det ;
|
||||||
|
|
||||||
want_VV = {s = "yend"; pres="da"; perf = "zire"; morphs=mkVerbMorphs; isRegular=True; inf=[]; whenUsed = VVBoth};
|
want_VV = {s = "yend"; pres="da"; perf = "zire"; isPresBlank = False;
|
||||||
can8know_VV = {s = "baas"; pres="a"; perf = "ize"; morphs=mkVerbMorphs; isRegular=True; inf=[]; whenUsed = VVBoth};--: VV ; -- can (capacity)
|
isPerfBlank = False; morphs=mkVerbMorphs; isRegular=True; inf=[]; whenUsed = VVBoth};
|
||||||
can_VV = {s = "baas"; pres="a"; perf = "ize"; morphs=mkVerbMorphs; isRegular=True; inf=[]; whenUsed = VVBoth};--: VV ; -- can (possibility)
|
can8know_VV = {s = "baas"; pres="a"; perf = "ize"; isPresBlank = False;
|
||||||
|
isPerfBlank = False; morphs=mkVerbMorphs; isRegular=True; inf=[]; whenUsed = VVBoth};--: VV ; -- can (capacity)
|
||||||
|
can_VV = {s = "baas"; pres="a"; perf = "ize"; isPresBlank = False;
|
||||||
|
isPerfBlank = False; morphs=mkVerbMorphs; isRegular=True; inf=[]; whenUsed = VVBoth};--: VV ; -- can (possibility)
|
||||||
-- must_VV used especially in the perfective mood: see dictionary entry shemerera on Pg 501 of Mpairwe
|
-- must_VV used especially in the perfective mood: see dictionary entry shemerera on Pg 501 of Mpairwe
|
||||||
-- must has no passive form
|
-- must has no passive form
|
||||||
must_VV = {s = "shemere"; pres="ra"; perf = "ire"; morphs=mkVerbMorphs; isRegular=False; inf=[]; whenUsed = VVPerf}; --VV
|
must_VV = {s = "shemere"; pres="ra"; perf = "ire"; isPresBlank = False;
|
||||||
|
isPerfBlank = False; morphs=mkVerbMorphs; isRegular=False; inf=[]; whenUsed = VVPerf}; --VV
|
||||||
--somebody_NP = {}; --: NP ;
|
--somebody_NP = {}; --: NP ;
|
||||||
--something_NP : NP ;
|
--something_NP : NP ;
|
||||||
--somewhere_Adv : Adv ;
|
--somewhere_Adv : Adv ;
|
||||||
|
|||||||
@@ -9,6 +9,8 @@ lin
|
|||||||
pres =v.pres;
|
pres =v.pres;
|
||||||
perf = v.perf;
|
perf = v.perf;
|
||||||
--morphs = v.morphs;
|
--morphs = v.morphs;
|
||||||
|
isPresBlank = v.isPresBlank;
|
||||||
|
isPerfBlank = v.isPerfBlank;
|
||||||
comp =[];
|
comp =[];
|
||||||
comp2 = [];
|
comp2 = [];
|
||||||
ap =[];
|
ap =[];
|
||||||
@@ -23,14 +25,35 @@ lin
|
|||||||
|
|
||||||
-- UseComp : Comp -> VP ; -- be warm means complement of a copula especially adjectival Phrase
|
-- UseComp : Comp -> VP ; -- be warm means complement of a copula especially adjectival Phrase
|
||||||
--AdjectivalPhrase : Type = {s : Str ; post : Str; isPre : Bool; isProper : Bool; isPrep: Bool};
|
--AdjectivalPhrase : Type = {s : Str ; post : Str; isPre : Bool; isProper : Bool; isPrep: Bool};
|
||||||
UseComp comp = let auxBe = mkBecome
|
UseComp comp =
|
||||||
|
--let auxBe = mkBecome
|
||||||
in
|
--in
|
||||||
{
|
case comp.source of{
|
||||||
s = auxBe.s ++ BIND ++auxBe.pres++ comp.s; --Assuming there is no AP which is prepositional
|
AdjP => {
|
||||||
|
s = mkBecome.s ++ BIND ++ mkBecome.pres; --Assuming there is no AP which is prepositional
|
||||||
|
pres =[];
|
||||||
|
perf = [];
|
||||||
|
isPresBlank = True;
|
||||||
|
isPerfBlank = True;
|
||||||
|
--morphs=\\form,morphs=>[];
|
||||||
|
comp = comp.s;
|
||||||
|
comp2 = [];
|
||||||
|
ap = [];
|
||||||
|
isCompApStem = True;
|
||||||
|
agr = AgrNo;
|
||||||
|
isRegular = False;
|
||||||
|
adv = [];
|
||||||
|
containsAdv =False;
|
||||||
|
adV =[];
|
||||||
|
containsAdV = False
|
||||||
|
};
|
||||||
|
_ => {
|
||||||
|
s = mkBecome.s ++ BIND ++mkBecome.pres++ comp.s; --Assuming there is no AP which is prepositional
|
||||||
pres =[];
|
pres =[];
|
||||||
perf = [];
|
perf = [];
|
||||||
--morphs=\\form,morphs=>[];
|
--morphs=\\form,morphs=>[];
|
||||||
|
isPresBlank = True;
|
||||||
|
isPerfBlank = True;
|
||||||
comp = [];
|
comp = [];
|
||||||
comp2 = [];
|
comp2 = [];
|
||||||
ap = [];
|
ap = [];
|
||||||
@@ -41,27 +64,32 @@ lin
|
|||||||
containsAdv =False;
|
containsAdv =False;
|
||||||
adV =[];
|
adV =[];
|
||||||
containsAdV = False
|
containsAdV = False
|
||||||
|
}
|
||||||
}; --its not generating any sentence
|
}; --its not generating any sentence
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- CompAP : AP -> Comp; -- (be) small
|
-- CompAP : AP -> Comp; -- (be) small
|
||||||
CompAP ap = {s=ap.s! AgP3 Sg KI_BI}; -- used a hack.
|
CompAP ap = {s=ap.s! AgP3 Sg KI_BI; source = AdjP}; -- used a hack.
|
||||||
|
|
||||||
-- CompNP : NP -> Comp ; -- (be) the man
|
-- CompNP : NP -> Comp ; -- (be) the man
|
||||||
CompNP np = {s= np.s ! Acc}; --{s =[] ; post =np.s; isPre = False; isProper = Bool; isPrep: Bool};
|
CompNP np = {s= np.s ! Acc; source = NounP}; --{s =[] ; post =np.s; isPre = False; isProper = Bool; isPrep: Bool};
|
||||||
|
|
||||||
-- CompAdv : Adv -> Comp ; -- (be) here
|
-- CompAdv : Adv -> Comp ; -- (be) here
|
||||||
CompAdv adv =adv;
|
CompAdv adv ={ s= adv.s; source = ADverb};
|
||||||
{-
|
{-
|
||||||
This has been a hack to simply pick the sigular and complete noun.
|
This has been a hack to simply pick the sigular and complete noun.
|
||||||
-}
|
-}
|
||||||
--CompCN : CN -> Comp ; -- (be) a man/men
|
--CompCN : CN -> Comp ; -- (be) a man/men
|
||||||
CompCN cn = {s =cn.s ! Sg ! Complete} ; -- (be) a man/men
|
CompCN cn = {s =cn.s ! Sg ! Complete; source = CommonNoun} ; -- (be) a man/men
|
||||||
-- SlashV2a : V2 -> VPSlash ; -- love (it)
|
-- SlashV2a : V2 -> VPSlash ; -- love (it)
|
||||||
SlashV2a v2 ={
|
SlashV2a v2 ={
|
||||||
s =v2.s;
|
s =v2.s;
|
||||||
pres =v2.pres;
|
pres =v2.pres;
|
||||||
perf = v2.perf;
|
perf = v2.perf;
|
||||||
--morphs = v2.morphs;
|
--morphs = v2.morphs;
|
||||||
|
isPresBlank = v2.isPresBlank;
|
||||||
|
isPerfBlank = v2.isPerfBlank;
|
||||||
comp = [];
|
comp = [];
|
||||||
comp2 =[];
|
comp2 =[];
|
||||||
ap =[];
|
ap =[];
|
||||||
@@ -77,6 +105,8 @@ lin
|
|||||||
pres =v3.pres;
|
pres =v3.pres;
|
||||||
perf = v3.perf;
|
perf = v3.perf;
|
||||||
--morphs = v3.morphs;
|
--morphs = v3.morphs;
|
||||||
|
isPresBlank = v3.isPresBlank;
|
||||||
|
isPerfBlank = v3.isPerfBlank;
|
||||||
comp = np.s ! Acc;
|
comp = np.s ! Acc;
|
||||||
comp2 =[];
|
comp2 =[];
|
||||||
ap =[];
|
ap =[];
|
||||||
@@ -93,6 +123,8 @@ lin
|
|||||||
pres =v3.pres;
|
pres =v3.pres;
|
||||||
perf = v3.perf;
|
perf = v3.perf;
|
||||||
--morphs = v3.morphs;
|
--morphs = v3.morphs;
|
||||||
|
isPresBlank = v3.isPresBlank;
|
||||||
|
isPerfBlank = v3.isPerfBlank;
|
||||||
comp = np.s ! Acc;
|
comp = np.s ! Acc;
|
||||||
comp2 = np.s ! Acc; -- what is the meaning of this function?
|
comp2 = np.s ! Acc; -- what is the meaning of this function?
|
||||||
ap = [];
|
ap = [];
|
||||||
@@ -108,7 +140,12 @@ lin
|
|||||||
pres =vv.pres;
|
pres =vv.pres;
|
||||||
perf = vv.perf;
|
perf = vv.perf;
|
||||||
--morphs = vv.morphs;
|
--morphs = vv.morphs;
|
||||||
comp = vpslash.s ++ BIND ++ vpslash.pres;
|
isPresBlank = vv.isPresBlank;
|
||||||
|
isPerfBlank = vv.isPerfBlank;
|
||||||
|
comp = case vv.isPresBlank of {
|
||||||
|
False => vpslash.s ++ BIND ++ vpslash.pres;
|
||||||
|
_ => vpslash.s
|
||||||
|
};
|
||||||
comp2 = [];
|
comp2 = [];
|
||||||
ap = [];
|
ap = [];
|
||||||
isRegular = vv.isRegular;
|
isRegular = vv.isRegular;
|
||||||
@@ -128,6 +165,8 @@ lin
|
|||||||
pres =vpslash.pres;
|
pres =vpslash.pres;
|
||||||
perf = vpslash.perf;
|
perf = vpslash.perf;
|
||||||
--morphs = vpslash.morphs;
|
--morphs = vpslash.morphs;
|
||||||
|
isPresBlank = vpslash.isPresBlank;
|
||||||
|
isPerfBlank = vpslash.isPerfBlank;
|
||||||
comp = vpslash.comp ++ np.s ! Acc;
|
comp = vpslash.comp ++ np.s ! Acc;
|
||||||
comp2 =vpslash.comp2; --should be empty
|
comp2 =vpslash.comp2; --should be empty
|
||||||
ap = [];
|
ap = [];
|
||||||
@@ -147,6 +186,8 @@ lin
|
|||||||
pres =vp.pres;
|
pres =vp.pres;
|
||||||
perf = vp.perf;
|
perf = vp.perf;
|
||||||
--morphs = vp.morphs;
|
--morphs = vp.morphs;
|
||||||
|
isPresBlank = vp.isPresBlank;
|
||||||
|
isPerfBlank = vp.isPerfBlank;
|
||||||
comp = adv.s;
|
comp = adv.s;
|
||||||
comp2 = [];
|
comp2 = [];
|
||||||
ap =[];
|
ap =[];
|
||||||
@@ -165,8 +206,10 @@ lin
|
|||||||
pres =vp.pres;
|
pres =vp.pres;
|
||||||
perf = vp.perf;
|
perf = vp.perf;
|
||||||
--morphs = vp.morphs;
|
--morphs = vp.morphs;
|
||||||
|
isPresBlank = vp.isPresBlank;
|
||||||
|
isPerfBlank = vp.isPerfBlank;
|
||||||
comp = vp.comp;
|
comp = vp.comp;
|
||||||
comp2 =vp.comp;
|
comp2 =vp.comp2;
|
||||||
ap = [];
|
ap = [];
|
||||||
isCompApStem = False;
|
isCompApStem = False;
|
||||||
agr = AgrNo;
|
agr = AgrNo;
|
||||||
@@ -188,6 +231,8 @@ lin
|
|||||||
pres =vpslash.pres;
|
pres =vpslash.pres;
|
||||||
perf = vpslash.perf;
|
perf = vpslash.perf;
|
||||||
--morphs = vpslash.morphs;
|
--morphs = vpslash.morphs;
|
||||||
|
isPresBlank = vpslash.isPresBlank;
|
||||||
|
isPerfBlank = vpslash.isPerfBlank;
|
||||||
comp = vpslash.comp;
|
comp = vpslash.comp;
|
||||||
comp2 = vpslash.comp2;
|
comp2 = vpslash.comp2;
|
||||||
ap = [];
|
ap = [];
|
||||||
@@ -208,6 +253,8 @@ lin
|
|||||||
pres =vpslash.pres;
|
pres =vpslash.pres;
|
||||||
perf = vpslash.perf;
|
perf = vpslash.perf;
|
||||||
--morphs = vpslash.morphs;
|
--morphs = vpslash.morphs;
|
||||||
|
isPresBlank = vpslash.isPresBlank;
|
||||||
|
isPerfBlank = vpslash.isPerfBlank;
|
||||||
comp = vpslash.comp;
|
comp = vpslash.comp;
|
||||||
comp2 = vpslash.comp2;
|
comp2 = vpslash.comp2;
|
||||||
ap = [];
|
ap = [];
|
||||||
@@ -232,6 +279,8 @@ lin
|
|||||||
pres = [];--vv.pres;
|
pres = [];--vv.pres;
|
||||||
perf= []; -- vv.perf;
|
perf= []; -- vv.perf;
|
||||||
--morphs = vv.morphs;
|
--morphs = vv.morphs;
|
||||||
|
isPresBlank = True;
|
||||||
|
isPerfBlank = True;
|
||||||
comp=vp.comp ;
|
comp=vp.comp ;
|
||||||
comp2 = vp.comp2;
|
comp2 = vp.comp2;
|
||||||
ap = [];
|
ap = [];
|
||||||
@@ -247,6 +296,8 @@ lin
|
|||||||
pres = [];--vv.pres;
|
pres = [];--vv.pres;
|
||||||
perf= [];--vv.perf;
|
perf= [];--vv.perf;
|
||||||
--morphs = vv.morphs;
|
--morphs = vv.morphs;
|
||||||
|
isPresBlank = True;
|
||||||
|
isPerfBlank = True;
|
||||||
comp=vp.comp ;
|
comp=vp.comp ;
|
||||||
comp2 = vp.comp2;
|
comp2 = vp.comp2;
|
||||||
ap = [];
|
ap = [];
|
||||||
@@ -266,6 +317,8 @@ lin
|
|||||||
pres =vs.pres;
|
pres =vs.pres;
|
||||||
perf=vs.perf;
|
perf=vs.perf;
|
||||||
--morphs = vs.morphs;
|
--morphs = vs.morphs;
|
||||||
|
isPresBlank = vs.isPresBlank;
|
||||||
|
isPerfBlank = vs.isPerfBlank;
|
||||||
comp=s.s ;
|
comp=s.s ;
|
||||||
comp2 = [];
|
comp2 = [];
|
||||||
ap = [];
|
ap = [];
|
||||||
@@ -287,6 +340,8 @@ lin
|
|||||||
pres =vq.pres;
|
pres =vq.pres;
|
||||||
perf=vq.perf;
|
perf=vq.perf;
|
||||||
--morphs = vq.morphs;
|
--morphs = vq.morphs;
|
||||||
|
isPresBlank = vq.isPresBlank;
|
||||||
|
isPerfBlank = vq.isPerfBlank;
|
||||||
comp=qs.s ;
|
comp=qs.s ;
|
||||||
comp2 = [];
|
comp2 = [];
|
||||||
ap = [];
|
ap = [];
|
||||||
@@ -313,6 +368,8 @@ lin
|
|||||||
pres =va.pres;
|
pres =va.pres;
|
||||||
perf=va.perf;
|
perf=va.perf;
|
||||||
--morphs = va.morphs;
|
--morphs = va.morphs;
|
||||||
|
isPresBlank = va.isPresBlank;
|
||||||
|
isPerfBlank = va.isPerfBlank;
|
||||||
comp=[] ;
|
comp=[] ;
|
||||||
comp2 = [];
|
comp2 = [];
|
||||||
ap = ap.s! AgP3 Sg KI_BI;
|
ap = ap.s! AgP3 Sg KI_BI;
|
||||||
@@ -327,7 +384,7 @@ lin
|
|||||||
|
|
||||||
-- Copula alone
|
-- Copula alone
|
||||||
--UseCopula : VP ; -- be
|
--UseCopula : VP ; -- be
|
||||||
UseCopula = mkBecome ** {
|
UseCopula = be_Copula ** {
|
||||||
comp=[];
|
comp=[];
|
||||||
comp2 = [];
|
comp2 = [];
|
||||||
ap = [];
|
ap = [];
|
||||||
|
|||||||
Reference in New Issue
Block a user