forked from GitHub/gf-rgl
Merge pull request #299 from bamutra/master
redesigned the Verb, VerbPhrase, Cl and RCL so as to check for empty …
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;
|
||||||
@@ -76,9 +80,11 @@ lin
|
|||||||
rp = rp.s;
|
rp = rp.s;
|
||||||
--rObjVariant2 = rp.rObjVariant2;
|
--rObjVariant2 = rp.rObjVariant2;
|
||||||
pres = clSlash.pres;
|
pres = clSlash.pres;
|
||||||
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
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1139,7 +1152,9 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
s:Str;
|
s:Str;
|
||||||
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;
|
||||||
@@ -1177,13 +1192,17 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
s = "ri" ;
|
s = "ri" ;
|
||||||
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
|
||||||
};
|
};
|
||||||
@@ -1339,7 +1358,9 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
s:Str;
|
s:Str;
|
||||||
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;
|
||||||
@@ -1371,9 +1394,12 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
pastPart : Str; -- subject
|
pastPart : Str; -- subject
|
||||||
--root : Str ; -- dep. on Pol,Temp, e.g. "does","sleep"
|
--root : Str ; -- dep. on Pol,Temp, e.g. "does","sleep"
|
||||||
-}
|
-}
|
||||||
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};
|
|
||||||
|
|
||||||
<Fut,Simul, Pos> => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za ku" ++ Predef.BIND ++ --choice of za over ija
|
<Past,Anter, Pos> => case cl.isPerfBlank of {
|
||||||
root ++ Predef.BIND ++ presRestOfVerb ++ compl};
|
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}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
{-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
|
||||||
<Cond,Simul, Pos> => {s = subj ++ clitic ++ "kaa" ++Predef.BIND ++
|
root ++ Predef.BIND ++ "ire" ++ compl};
|
||||||
root ++ Predef.BIND ++ presRestOfVerb ++ 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 {
|
||||||
|
True => {s = subj ++ "ni" ++ Predef.BIND ++ clitic ++ "za kuba" ++ clitic ++ Predef.BIND ++
|
||||||
|
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 ;
|
||||||
|
|||||||
@@ -8,7 +8,9 @@ lin
|
|||||||
s = v.s ;
|
s = v.s ;
|
||||||
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 =[];
|
||||||
@@ -76,7 +104,9 @@ lin
|
|||||||
s =v3.s;
|
s =v3.s;
|
||||||
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 = [];
|
||||||
@@ -107,8 +139,13 @@ lin
|
|||||||
s =vv.s;
|
s =vv.s;
|
||||||
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;
|
||||||
@@ -127,7 +164,9 @@ lin
|
|||||||
s =vpslash.s;
|
s =vpslash.s;
|
||||||
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 = [];
|
||||||
@@ -146,7 +185,9 @@ lin
|
|||||||
s=vp.s;
|
s=vp.s;
|
||||||
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 =[];
|
||||||
@@ -164,9 +205,11 @@ lin
|
|||||||
s=vp.s;
|
s=vp.s;
|
||||||
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;
|
||||||
@@ -187,7 +230,9 @@ lin
|
|||||||
s =vpslash.s;
|
s =vpslash.s;
|
||||||
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 = [];
|
||||||
@@ -207,7 +252,9 @@ lin
|
|||||||
s =vpslash.s;
|
s =vpslash.s;
|
||||||
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 = [];
|
||||||
@@ -231,7 +278,9 @@ lin
|
|||||||
s= vv.s ++ BIND ++ vv.perf ++ vpPres;
|
s= vv.s ++ BIND ++ vv.perf ++ vpPres;
|
||||||
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 = [];
|
||||||
@@ -246,7 +295,9 @@ lin
|
|||||||
s= vv.s ++ BIND ++ vv.pres ++ vpPres;
|
s= vv.s ++ BIND ++ vv.pres ++ vpPres;
|
||||||
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 = [];
|
||||||
@@ -265,7 +316,9 @@ lin
|
|||||||
s= vs.s;
|
s= vs.s;
|
||||||
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 = [];
|
||||||
@@ -286,7 +339,9 @@ lin
|
|||||||
s= vq.s;
|
s= vq.s;
|
||||||
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 = [];
|
||||||
@@ -312,7 +367,9 @@ lin
|
|||||||
s= va.s;
|
s= va.s;
|
||||||
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