forked from GitHub/gf-rgl
=Made some grammatical corrections based on tes grammar and worked on most functions in QustionCgg.gf
This commit is contained in:
@@ -14,7 +14,13 @@ lincat
|
|||||||
|
|
||||||
S = SS ; -- declarative sentence e.g. "she lived here"
|
S = SS ; -- declarative sentence e.g. "she lived here"
|
||||||
Cl = Res.Clause ; -- declarative clause, with all tenses e.g. "she looks at this"
|
Cl = Res.Clause ; -- declarative clause, with all tenses e.g. "she looks at this"
|
||||||
|
--Questions
|
||||||
QCl = Res.Clause ** {posibleSubAgr: Res.Agreement =>Str} ;
|
QCl = Res.Clause ** {posibleSubAgr: Res.Agreement =>Str} ;
|
||||||
|
IComp = {s : Str; other:Str; n : Res.INumber; requiresSubjPrefix: Bool;endOfSentence : Bool} ;
|
||||||
|
IP = {s :Str ; other:Str; n : Res.INumber; isVerbSuffix: Bool; requiresIPPrefix: Bool; aux:Str; endOfSentence:Bool}; -- other holds the Idet without a prefix
|
||||||
|
IAdv = {s : Str ; requiresSubjPrefix: Bool; endOfSentence:Bool};
|
||||||
|
IDet = {s : Str ; n : Res.Number; requiresSubjPrefix: Bool};
|
||||||
|
IQuant = {s : Res.Number =>Str ; requiresSubjPrefix: Bool};
|
||||||
RS = {s :Res.RForm => Str} ; -- relative e.g. "in which she lived"
|
RS = {s :Res.RForm => Str} ; -- relative e.g. "in which she lived"
|
||||||
V,VS, VQ, VA = Res.Verb ; --change to {verb : Str ; comp = []} -- one-place verb e.g. "sleep"
|
V,VS, VQ, VA = Res.Verb ; --change to {verb : Str ; comp = []} -- one-place verb e.g. "sleep"
|
||||||
V2,V2Q, V2S = Res.Verb2;
|
V2,V2Q, V2S = Res.Verb2;
|
||||||
@@ -73,10 +79,7 @@ lincat
|
|||||||
Digits = {s : Res.CardOrd => Res.Agreement=>Str ; n : Res.Number ; tail : Px.DTail} ;
|
Digits = {s : Res.CardOrd => Res.Agreement=>Str ; n : Res.Number ; tail : Px.DTail} ;
|
||||||
Ord = {s :Res.Agreement=>Str; position1:Res.Position1} ;
|
Ord = {s :Res.Agreement=>Str; position1:Res.Position1} ;
|
||||||
Card = {s :Res.Agreement=>Str; n : Res.Number} ;
|
Card = {s :Res.Agreement=>Str; n : Res.Number} ;
|
||||||
IP = {s :Str ; other:Str; n : Res.Number; isVerbSuffix: Bool; requiresIPPrefix: Bool; aux:Str; endOfSentence:Bool}; -- other holds the Idet without a prefix
|
|
||||||
IAdv = {s : Str ; requiresSubjPrefix: Bool};
|
|
||||||
IDet = {s : Str ; n : Res.Number; requiresSubjPrefix: Bool};
|
|
||||||
IQuant = {s : Res.Number =>Str ; requiresSubjPrefix: Bool};
|
|
||||||
DAP = Res.Determiner ;
|
DAP = Res.Determiner ;
|
||||||
N2 = Res.Noun ** {c2 : Res.Agreement =>Str}; -- relational noun e.g. "son"
|
N2 = Res.Noun ** {c2 : Res.Agreement =>Str}; -- relational noun e.g. "son"
|
||||||
Prep = Res.Preposition; -- preposition, or just case e.g. "in"
|
Prep = Res.Preposition; -- preposition, or just case e.g. "in"
|
||||||
@@ -85,9 +88,9 @@ lincat
|
|||||||
AdA = {s:Str; position1:Res.Position1};
|
AdA = {s:Str; position1:Res.Position1};
|
||||||
linref
|
linref
|
||||||
|
|
||||||
Cl =\cl -> cl.s ++ Res.mkSubjClitic cl.subjAgr ++ cl.root ++ BIND ++ cl.pres;
|
Cl =\cl -> cl.s ++ Res.mkSubjClitic cl.subjAgr ++ cl.root ++ BIND ++ cl.pres ++ cl.compl;
|
||||||
QCl =\qcl -> qcl.s ++ qcl.posibleSubAgr ! (Res.mkAgreement Res.MU_BA Res.P3 Res.Sg) ++ qcl.root ++ BIND ++ qcl.pres;
|
QCl =\qcl -> qcl.s ++ qcl.posibleSubAgr ! (Res.mkAgreement Res.MU_BA Res.P3 Res.Sg) ++ qcl.root ++ BIND ++ qcl.pres;
|
||||||
--VP =\vp -> vp.adv ++ vp.s ++ BIND ++ vp.pres ++ vp.comp ++vp.comp2 ++ vp.ap;
|
VP =\vp -> vp.adv ++ vp.s ++ BIND ++ vp.pres ++ vp.comp ++vp.comp2 ++ vp.ap;
|
||||||
VPSlash =\vpslash -> vpslash.s ++ BIND ++ vpslash.pres;
|
VPSlash =\vpslash -> vpslash.s ++ BIND ++ vpslash.pres;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -115,7 +115,7 @@ lin
|
|||||||
come_V = mkV "ij";
|
come_V = mkV "ij";
|
||||||
go_V = mkV "gyend"; --: V ; -- Many words: kuza, kuraba,kutoora, kugyenda=go away, kushuma=go down
|
go_V = mkV "gyend"; --: V ; -- Many words: kuza, kuraba,kutoora, kugyenda=go away, kushuma=go down
|
||||||
jump_V = mkV "guruk" ;
|
jump_V = mkV "guruk" ;
|
||||||
play_V = mkV "zaan"; --: V ;
|
play_V = mkV "záàn"; --: V ;
|
||||||
live_V = mkV "tuur" ; --manyF: kutuura i.e. live somewhere, stay = kuráàra
|
live_V = mkV "tuur" ; --manyF: kutuura i.e. live somewhere, stay = kuráàra
|
||||||
run_V = mkV "íruk"; -- : V ;
|
run_V = mkV "íruk"; -- : V ;
|
||||||
sleep_V = mkV "nyama" ; --: V ;--Kugwejegyera, kubyama
|
sleep_V = mkV "nyama" ; --: V ;--Kugwejegyera, kubyama
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ lin
|
|||||||
--UsePN : PN -> NP ; -- John
|
--UsePN : PN -> NP ; -- John
|
||||||
UsePN pn = {s = \\ _ => pn.s; agr = pn.a}; -- John
|
UsePN pn = {s = \\ _ => pn.s; agr = pn.a}; -- John
|
||||||
|
|
||||||
|
{need use of a pre}
|
||||||
UsePron pron =
|
UsePron pron =
|
||||||
let default3PAgr = (AgP3 Sg KI_BI)
|
let default3PAgr = (AgP3 Sg KI_BI)
|
||||||
in case <pron.agr> of {
|
in case <pron.agr> of {
|
||||||
@@ -16,7 +17,7 @@ lin
|
|||||||
};
|
};
|
||||||
--UsePron pron = pron; -- the result of use pron is a NounPhrase
|
--UsePron pron = pron; -- the result of use pron is a NounPhrase
|
||||||
--MassNP : CN -> NP ; -- (beer)
|
--MassNP : CN -> NP ; -- (beer)
|
||||||
MassNP cn = {s = \\_ =>cn.s ! Pl ! Complete; agr = AgP3 Pl cn.gender}; --: CN -> NP ; -- milk
|
MassNP cn = {s = \\_ =>cn.s ! Sg ! Complete; agr = AgP3 Sg cn.gender}; --: CN -> NP ; -- milk
|
||||||
--DetCN det cn = mkDeterminer det cn; --Should be nemed mkDetCN
|
--DetCN det cn = mkDeterminer det cn; --Should be nemed mkDetCN
|
||||||
DetCN det cn = mkDetCN det cn; -- the man
|
DetCN det cn = mkDetCN det cn; -- the man
|
||||||
{-
|
{-
|
||||||
@@ -179,7 +180,7 @@ lin
|
|||||||
|
|
||||||
--CountNP : Det -> NP -> NP ; -- three of them, some of the boys
|
--CountNP : Det -> NP -> NP ; -- three of them, some of the boys
|
||||||
CountNP det np = case det.doesAgree of {
|
CountNP det np = case det.doesAgree of {
|
||||||
True => {s=\\c=> np.s!c ++ det.s2 ! np.agr; agr = np.agr};
|
True => {s=\\c=> np.s!c ++ "emye ahari" ++ det.s2 ! np.agr; agr = np.agr};
|
||||||
False => {s=\\c=> np.s!c ++ det.s; agr = np.agr}
|
False => {s=\\c=> np.s!c ++ det.s; agr = np.agr}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -27,24 +27,118 @@ concrete QuestionCgg of Question = CatCgg ** open ResCgg, Prelude in {
|
|||||||
--root : Str ; -- dep. on Pol,Temp, e.g. "does","sleep"
|
--root : Str ; -- dep. on Pol,Temp, e.g. "does","sleep"
|
||||||
-}
|
-}
|
||||||
compl = vp.comp -- after verb: complement, adverbs
|
compl = vp.comp -- after verb: complement, adverbs
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
--QuestSlash : IP -> ClSlash -> QCl ; -- whom does John love
|
--QuestSlash : IP -> ClSlash -> QCl ; -- whom does John love
|
||||||
|
QuestSlash ip clSlash =
|
||||||
|
let comp = case clSlash.complType of{
|
||||||
|
Ap => clSlash.ap;
|
||||||
|
Adverbial => clSlash.adv;
|
||||||
|
AdverbialVerb => clSlash.adV;
|
||||||
|
_ => []
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
s = ip.s;
|
||||||
|
subjAgr = NONE; -- no option but to just pick one
|
||||||
|
posibleSubAgr = mkSubjCliticTable;
|
||||||
|
root = clSlash.s;
|
||||||
|
pres = clSlash.pres;
|
||||||
|
perf = clSlash.perf;
|
||||||
|
morphs = clSlash.morphs;
|
||||||
|
{-
|
||||||
|
inf : Str;
|
||||||
|
pres : Str;
|
||||||
|
past : Str;
|
||||||
|
presPart : Str;
|
||||||
|
pastPart : Str; -- subject
|
||||||
|
--root : Str ; -- dep. on Pol,Temp, e.g. "does","sleep"
|
||||||
|
-}
|
||||||
|
compl = comp -- after verb: complement, adverbs
|
||||||
|
} ;
|
||||||
--QuestIAdv : IAdv -> Cl -> QCl ; -- why does John walk
|
--QuestIAdv : IAdv -> Cl -> QCl ; -- why does John walk
|
||||||
|
QuestIAdv iadv cl =
|
||||||
|
{
|
||||||
|
s = iadv.s ++ cl.s;
|
||||||
|
subjAgr = cl.subjAgr; -- no option but to just pick one
|
||||||
|
posibleSubAgr = mkSubjCliticTable;
|
||||||
|
root = cl.s;
|
||||||
|
pres = cl.pres;
|
||||||
|
perf = cl.perf;
|
||||||
|
morphs = cl.morphs;
|
||||||
|
{-
|
||||||
|
inf : Str;
|
||||||
|
pres : Str;
|
||||||
|
past : Str;
|
||||||
|
presPart : Str;
|
||||||
|
pastPart : Str; -- subject
|
||||||
|
--root : Str ; -- dep. on Pol,Temp, e.g. "does","sleep"
|
||||||
|
-}
|
||||||
|
compl = cl.compl -- after verb: complement, adverbs
|
||||||
|
} ;
|
||||||
--QuestIComp : IComp -> NP -> QCl ; -- where is John
|
--QuestIComp : IComp -> NP -> QCl ; -- where is John
|
||||||
|
--QuestIComp icomp
|
||||||
--IdetCN : IDet -> CN -> IP ; -- which five songs
|
--IdetCN : IDet -> CN -> IP ; -- which five songs
|
||||||
|
|
||||||
IdetCN idet cn = case idet.requiresSubjPrefix of {
|
IdetCN idet cn = let num = case idet.n of{
|
||||||
True => {s = cn.s!idet.n!Complete ++ mkSubjPrefix (mkAgreement cn.gender P3 idet.n) ++ idet.s; other =[]; n = idet.n; isVerbSuffix=False; requiresIPPrefix=True; aux= "ni"; endOfSentence = True};
|
Sg => ISg;
|
||||||
False => { s = cn.s!idet.n!Complete ++ idet.s; isVerbSuffix=False; other =[]; n=idet.n; requiresIPPrefix=True; aux= "ni"; endOfSentence = True}
|
Pl => IPl
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
|
||||||
|
case idet.requiresSubjPrefix of {
|
||||||
|
True => {s = cn.s!idet.n!Complete ++ mkSubjPrefix (mkAgreement cn.gender P3 idet.n) ++ idet.s; other =[]; n = num; isVerbSuffix=False; requiresIPPrefix=True; aux= "ni"; endOfSentence = True};
|
||||||
|
False => { s = cn.s!idet.n!Complete ++ idet.s; isVerbSuffix=False; other =[]; n=num; requiresIPPrefix=True; aux= "ni"; endOfSentence = True}
|
||||||
};
|
};
|
||||||
--IdetIP : IDet -> IP ; -- which five
|
--IdetIP : IDet -> IP ; -- which five
|
||||||
--Noun Class has been ignored
|
--Noun Class has been ignored
|
||||||
IdetIP idet = { s = idet.s ; other = idet.s; isVerbSuffix=False; n=idet.n; requiresIPPrefix=True; aux= "ni"; endOfSentence = True};
|
IdetIP idet = let num = case idet.n of{
|
||||||
|
Sg => ISg;
|
||||||
|
Pl => IPl
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
s = idet.s ;
|
||||||
|
other = idet.s;
|
||||||
|
isVerbSuffix=False;
|
||||||
|
n=num; requiresIPPrefix=True;
|
||||||
|
aux= "ni";
|
||||||
|
endOfSentence = True
|
||||||
|
};
|
||||||
--IdetQuant : IQuant -> Num -> IDet ; -- which (five)
|
--IdetQuant : IQuant -> Num -> IDet ; -- which (five)
|
||||||
--IdetQuant iquant num = { s = iquant.s ! num.n ; requiresSubjPrefix=True};
|
--IdetQuant iquant num = { s = iquant.s ! num.n ; requiresSubjPrefix=True};
|
||||||
|
|
||||||
|
-- Interrogative complements to copulas can be both adverbs and
|
||||||
|
-- pronouns.
|
||||||
|
|
||||||
|
--CompIAdv : IAdv -> IComp ; -- where (is it)
|
||||||
|
CompIAdv iadv =
|
||||||
|
{
|
||||||
|
s =iadv.s ;
|
||||||
|
other = [];
|
||||||
|
n = INeut;
|
||||||
|
isVerbSuffix=False;
|
||||||
|
requiresSubjPrefix =False;
|
||||||
|
requiresIPPrefix=False;
|
||||||
|
aux=[];
|
||||||
|
endOfSentence=iadv.endOfSentence
|
||||||
|
};
|
||||||
|
--CompIP : IP -> IComp ; -- who (is it)
|
||||||
|
CompIP ip =
|
||||||
|
{
|
||||||
|
s = ip.s;
|
||||||
|
other =ip.other;
|
||||||
|
n = ip.n;
|
||||||
|
isVerbSuffix = ip.isisVerbSuffix;
|
||||||
|
requiresSubjPrefix = False;
|
||||||
|
requiresIPPrefix = ip.requiresIPPrefix;
|
||||||
|
aux=ip.aux;
|
||||||
|
endOfSentence= ip.endOfSentence;
|
||||||
|
|
||||||
|
};
|
||||||
{-
|
{-
|
||||||
--1 Question: Questions and Interrogative Pronouns
|
--1 Question: Questions and Interrogative Pronouns
|
||||||
|
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ param
|
|||||||
SStandPron ; --Self-standing pronouns
|
SStandPron ; --Self-standing pronouns
|
||||||
|
|
||||||
ImpPol = ImpPos | ImpNeg;
|
ImpPol = ImpPos | ImpNeg;
|
||||||
|
INumber = ISg | IPl | INeut;
|
||||||
{-
|
{-
|
||||||
--there are several and i.e.
|
--there are several and i.e.
|
||||||
-- na (two nouns, 2 Noun Phrases, 2 Pronouns, 2 relative subject clauses, )
|
-- na (two nouns, 2 Noun Phrases, 2 Pronouns, 2 relative subject clauses, )
|
||||||
@@ -104,8 +105,8 @@ oper
|
|||||||
--These are regular verbs with {a-ire} entry in the dictionary
|
--These are regular verbs with {a-ire} entry in the dictionary
|
||||||
smartVerb : Str ->Verb = \rad ->{
|
smartVerb : Str ->Verb = \rad ->{
|
||||||
s = rad;
|
s = rad;
|
||||||
pres = [];
|
pres = "a";
|
||||||
perf = [];
|
perf = "ire";
|
||||||
morphs = mkVerbMorphs;
|
morphs = mkVerbMorphs;
|
||||||
isRegular = True;
|
isRegular = True;
|
||||||
};
|
};
|
||||||
@@ -550,34 +551,35 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
};
|
};
|
||||||
|
|
||||||
mkSStand :Agreement -> Str = \a -> case a of {
|
mkSStand :Agreement -> Str = \a -> case a of {
|
||||||
AgMUBAP1 n => mkClitics "nyowe" "itwe" n;
|
AgMUBAP1 Sg => "nyowe";
|
||||||
--AgMUBAP1 Pl => "aba" ;
|
AgMUBAP1 Pl => "itwe";
|
||||||
AgMUBAP2 n => mkClitics "iwe" "imwe" n; --probably an error check your grammar book
|
AgMUBAP1 Pl => "aba" ;
|
||||||
--AgMUBAP2 Pl => "aba" ;
|
AgMUBAP2 Sg => "iwe" ; --probably an error check your grammar book
|
||||||
AgP3 n MU_BA => mkClitics "uwe" "bo" n;
|
AgMUBAP2 Pl => "imwe" ;
|
||||||
--AgP3 Pl MU_BA => "aba" ;
|
AgP3 Sg MU_BA => "uwe" ;
|
||||||
AgP3 Pl ZERO_BU => mkClitic "bwo" ;
|
AgP3 Pl MU_BA => "bo" ;
|
||||||
AgP3 Sg BU_MA => mkClitic "bwo" ;
|
AgP3 Pl ZERO_BU => "bwo" ;
|
||||||
AgP3 Pl (KA_BU | RU_BU) => mkClitic "bwo" ;
|
AgP3 Sg BU_MA => "bwo" ;
|
||||||
AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "byo" ;
|
AgP3 Pl (KA_BU | RU_BU) => "bwo" ;
|
||||||
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "go";
|
AgP3 Pl (KI_BI | ZERO_BI) => "byo" ;
|
||||||
AgP3 (Sg | Pl) HA => mkClitic "ho" ; -- of place HA
|
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => "go";
|
||||||
AgP3 (Sg | Pl) MU => mkClitic "mwo" ; -- of place MU
|
AgP3 (Sg | Pl) HA => "ho" ; -- of place HA
|
||||||
AgP3 (Sg | Pl) KU => mkClitic "yo" ; -- of place KU
|
AgP3 (Sg | Pl) MU => "mwo" ; -- of place MU
|
||||||
AgP3 Sg (I_ZERO | I_MA | RI_MA) =>mkClitic "ryo" ;
|
AgP3 (Sg | Pl) KU => "yo" ; -- of place KU
|
||||||
AgP3 Sg (KA_ZERO | KA_BU) =>mkClitic "ko" ;
|
AgP3 Sg (I_ZERO | I_MA | RI_MA) => "ryo" ;
|
||||||
AgP3 Sg KI_BI => mkClitic "kyo" ;
|
AgP3 Sg (KA_ZERO | KA_BU) => "ko" ;
|
||||||
AgP3 Sg (KU_ZERO | KU_MA) => mkClitic "kwo" ;
|
AgP3 Sg KI_BI => "kyo" ;
|
||||||
AgP3 Sg (MU_MI | MU_ZERO) => mkClitic "gwo" ;
|
AgP3 Sg (KU_ZERO | KU_MA) => "kwo" ;
|
||||||
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => mkClitic "rwo" ;
|
AgP3 Sg (MU_MI | MU_ZERO) => "gwo" ;
|
||||||
AgP3 Pl (ZERO_TU | KA_TU) =>mkClitic "two" ;
|
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => "rwo" ;
|
||||||
AgP3 Sg (ZERO_ZERO | N_N) =>mkClitic "yo" ;
|
AgP3 Pl (ZERO_TU | KA_TU) =>"two" ;
|
||||||
AgP3 Pl ZERO_MI =>mkClitic "yo" ;
|
AgP3 Sg (ZERO_ZERO | N_N) => "yo" ;
|
||||||
AgP3 Pl MU_MI => mkClitic "yo";
|
AgP3 Pl ZERO_MI => "yo" ;
|
||||||
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) =>mkClitic "zo" ;
|
AgP3 Pl MU_MI => "yo";
|
||||||
AgP3 Sg GU_GA => mkClitic "gwo" ;
|
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) => "zo" ;
|
||||||
AgP3 Pl GU_GA => mkClitic "go" ;
|
AgP3 Sg GU_GA => "gwo" ;
|
||||||
_ => mkClitic "XXX" -- error checking for any case not catered for
|
AgP3 Pl GU_GA => "go" ;
|
||||||
|
_ => "XXX-Failed SStand" -- error checking for any case not catered for
|
||||||
|
|
||||||
};
|
};
|
||||||
-- This involved only change of the personal pronouns as for selfstanding pronouns.
|
-- This involved only change of the personal pronouns as for selfstanding pronouns.
|
||||||
@@ -1072,12 +1074,12 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
|
|
||||||
-}
|
-}
|
||||||
mkDetCN : Determiner -> Noun -> NounPhrase = \ det, cn ->
|
mkDetCN : Determiner -> Noun -> NounPhrase = \ det, cn ->
|
||||||
case <det.pos> of {
|
let subjClitic = mkSubjClitic (AgP3 det.num cn.gender)
|
||||||
<PostDeterminer> => {s = \\_=>
|
in
|
||||||
let
|
case <det.pos, det.num> of {
|
||||||
subjClitic = mkSubjClitic (AgP3 det.num cn.gender)
|
<PostDeterminer, Pl> => {s = \\_=> subjClitic ++ cn.s!det.num! det.ntype ++ subjClitic ++ det.s; agr = AgP3 det.num cn.gender};
|
||||||
in cn.s!det.num! det.ntype ++ subjClitic ++ det.s; agr = AgP3 det.num cn.gender};
|
<PostDeterminer, Sg> => {s = \\_=>cn.s!det.num! det.ntype ++ subjClitic ++ det.s; agr = AgP3 det.num cn.gender};
|
||||||
<PreDeterminer> => { s =\\_ => det.s ++ cn.s !det.num ! det.ntype; agr = AgP3 det.num cn.gender} --;
|
<PreDeterminer, n> => { s =\\_ => det.s ++ cn.s !n ! det.ntype; agr = AgP3 det.num cn.gender} --;
|
||||||
--<PostDeterminer, PFalse> => {s = \\_=> cn.s!det.ntype!det.num; agr = AgP3 det.num cn.gender }
|
--<PostDeterminer, PFalse> => {s = \\_=> cn.s!det.ntype!det.num; agr = AgP3 det.num cn.gender }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -158,17 +158,17 @@ lin
|
|||||||
|
|
||||||
{-Beggining of Interrogative Pronoun-}
|
{-Beggining of Interrogative Pronoun-}
|
||||||
|
|
||||||
whatPl_IP = { s= "ki"; other =[]; n = Pl; isVerbSuffix = True; requiresIPPrefix = False; aux=[]; endOfSentence = True} ; -- what (plural)
|
whatPl_IP = { s= "ki"; other =[]; n = IPl; isVerbSuffix = True; requiresIPPrefix = False; aux=[]; endOfSentence = True} ; -- what (plural)
|
||||||
whatSg_IP = { s= "ki"; other =[]; n = Sg; isVerbSuffix = True; requiresIPPrefix = False; aux=[]; endOfSentence = True}; --: IP ; -- what (singular)
|
whatSg_IP = { s= "ki"; other =[]; n = ISg; isVerbSuffix = True; requiresIPPrefix = False; aux=[]; endOfSentence = True}; --: IP ; -- what (singular)
|
||||||
whoPl_IP = { s= "ha"; other =[]; n = Pl; isVerbSuffix = True; requiresIPPrefix = False; aux="ni"; endOfSentence = True} ;--: IP ; -- who (plural)
|
whoPl_IP = { s= "ha"; other =[]; n = IPl; isVerbSuffix = True; requiresIPPrefix = False; aux="ni"; endOfSentence = True} ;--: IP ; -- who (plural)
|
||||||
whoSg_IP = { s= "ha"; other =[]; n = Sg; isVerbSuffix = True; requiresIPPrefix = False; aux=[]; endOfSentence = True}; --: IP ; -- who (singular)
|
whoSg_IP = { s= "ha"; other =[]; n = ISg; isVerbSuffix = True; requiresIPPrefix = False; aux=[]; endOfSentence = True}; --: IP ; -- who (singular)
|
||||||
--You may need to use booleans to indicate that you need these tables rather than carrying them.
|
--You may need to use booleans to indicate that you need these tables rather than carrying them.
|
||||||
how_IAdv = {s ="ta"; requiresSubjPrefix = True}; --: IAdv ;
|
how_IAdv = {s ="ta"; requiresSubjPrefix = True; endOfSentence =True}; --: IAdv ;
|
||||||
--how8much_IAdv = {s ="kwiga"; s2requireSubjPrefix = True};--: IAdv ;
|
--how8much_IAdv = {s ="kwiga"; s2requireSubjPrefix = True};--: IAdv ;
|
||||||
|
|
||||||
when_IAdv = {s ="ryari"; requiresSubjPrefix = False}; --: IAdv ;
|
when_IAdv = {s ="ryari"; requiresSubjPrefix = False; endOfSentence =True}; --: IAdv ;
|
||||||
where_IAdv = {s ="nkahe"; requiresSubjPrefix = False}; --: IAdv ;
|
where_IAdv = {s ="nkahe"; requiresSubjPrefix = False; endOfSentence =True}; --: IAdv ;
|
||||||
why_IAdv = {s ="ahabweki"; requiresSubjPrefix = False};--: IAdv ;
|
why_IAdv = {s ="ahabweki"; requiresSubjPrefix = False; endOfSentence =False};--: IAdv ;
|
||||||
|
|
||||||
how8many_IDet ={s ="ngahe"; other =[]; n =Pl; requiresSubjPrefix = False; endOfSentence = True};--: IDet ;
|
how8many_IDet ={s ="ngahe"; other =[]; n =Pl; requiresSubjPrefix = False; endOfSentence = True};--: IDet ;
|
||||||
|
|
||||||
@@ -184,7 +184,7 @@ lin
|
|||||||
someSg_Det =
|
someSg_Det =
|
||||||
{
|
{
|
||||||
s =[];
|
s =[];
|
||||||
s2 =\\agr => mkSubjCliticTableSg ! agr ++ "mwe";
|
s2 =\\agr => mkSubjCliticTableSg ! agr ++ BIND++ "mwe";
|
||||||
ntype = Complete;
|
ntype = Complete;
|
||||||
num = Sg;
|
num = Sg;
|
||||||
pos = PreDeterminer;
|
pos = PreDeterminer;
|
||||||
@@ -193,7 +193,7 @@ lin
|
|||||||
somePl_Det =
|
somePl_Det =
|
||||||
{
|
{
|
||||||
s =[];
|
s =[];
|
||||||
s2 =\\agr => mkSubjCliticTablePl ! agr ++ "mwe";
|
s2 =\\agr => mkSubjCliticTablePl ! agr ++ BIND++ "mwe";
|
||||||
ntype = Complete;
|
ntype = Complete;
|
||||||
num = Pl;
|
num = Pl;
|
||||||
pos = PreDeterminer;
|
pos = PreDeterminer;
|
||||||
|
|||||||
@@ -23,8 +23,11 @@ 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 = {
|
UseComp comp = let auxBe = mkBecome
|
||||||
s = comp.s; --Assuming there is no AP which is prepositional
|
|
||||||
|
in
|
||||||
|
{
|
||||||
|
s = auxBe.s ++ BIND ++auxBe.pres++ comp.s; --Assuming there is no AP which is prepositional
|
||||||
pres =[];
|
pres =[];
|
||||||
perf = [];
|
perf = [];
|
||||||
morphs=\\form,morphs=>[];
|
morphs=\\form,morphs=>[];
|
||||||
@@ -225,8 +228,9 @@ lin
|
|||||||
ComplVV vv vp = let vpPres = "ku" ++ BIND ++ vp.s ++ BIND ++ vp.pres;
|
ComplVV vv vp = let vpPres = "ku" ++ BIND ++ vp.s ++ BIND ++ vp.pres;
|
||||||
in case vv.whenUsed of {
|
in case vv.whenUsed of {
|
||||||
VVPerf => {
|
VVPerf => {
|
||||||
s= vv.s ++ BIND ++ vv.perf;
|
s= vv.s ++ BIND ++ vv.perf ++ vpPres;
|
||||||
pres =vv.pres; perf=vv.perf;
|
pres = [];--vv.pres;
|
||||||
|
perf= []; -- vv.perf;
|
||||||
morphs = vv.morphs;
|
morphs = vv.morphs;
|
||||||
comp=vp.comp ;
|
comp=vp.comp ;
|
||||||
comp2 = vp.comp2;
|
comp2 = vp.comp2;
|
||||||
@@ -240,8 +244,8 @@ 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;
|
||||||
comp=vp.comp ;
|
comp=vp.comp ;
|
||||||
comp2 = vp.comp2;
|
comp2 = vp.comp2;
|
||||||
|
|||||||
Reference in New Issue
Block a user