forked from GitHub/gf-rgl
worked on the Relative Pronoun (RP) found produced by the function IdRP
This commit is contained in:
@@ -29,7 +29,7 @@ lincat
|
|||||||
NP = Res.NounPhrase; -- noun phrase (subject or object) e.g. "the red house"
|
NP = Res.NounPhrase; -- noun phrase (subject or object) e.g. "the red house"
|
||||||
Pron = Res.Pronoun ; -- personal pronoun e.g. "she"
|
Pron = Res.Pronoun ; -- personal pronoun e.g. "she"
|
||||||
Det = Res.Determiner ; -- determiner phrase e.g. "those seven"
|
Det = Res.Determiner ; -- determiner phrase e.g. "those seven"
|
||||||
Quant = SS ; -- quantifier ('nucleus' of Det) e.g. "this/these"
|
Quant = {s : Str ; s2 :Res.Agreement => Str; doesAgree : Bool} ; -- quantifier ('nucleus' of Det) e.g. "this/these"
|
||||||
Num = Res.Numer ; -- number determining element e.g. "seven"
|
Num = Res.Numer ; -- number determining element e.g. "seven"
|
||||||
AP = {s : Str ; post : Str; isPre : Bool; isProper : Bool; isPrep: Bool} ;--Res.AdjectivalPhrase;
|
AP = {s : Str ; post : Str; isPre : Bool; isProper : Bool; isPrep: Bool} ;--Res.AdjectivalPhrase;
|
||||||
A = Res.Adjective;
|
A = Res.Adjective;
|
||||||
@@ -41,6 +41,8 @@ lincat
|
|||||||
Conj = Res.Conjunction; -- Conjunction: Type = {s : AgrConj =>Str ;s2 : Str ; n : Number} ; -- conjunction e.g. "and"
|
Conj = Res.Conjunction; -- Conjunction: Type = {s : AgrConj =>Str ;s2 : Str ; n : Number} ; -- conjunction e.g. "and"
|
||||||
-- see Structural for explanation of this structure
|
-- see Structural for explanation of this structure
|
||||||
Predet = {s : Str ; s2 : Str; isMWE : Bool; isInflected : Bool}; -- predeterminer (prefixed Quant) e.g. "all"
|
Predet = {s : Str ; s2 : Str; isMWE : Bool; isInflected : Bool}; -- predeterminer (prefixed Quant) e.g. "all"
|
||||||
|
RP = {s : Res.RCase => Res.Agreement => Str ; rObjVariant2: Res.Agreement => Str} ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
--1 Cat: the Category System
|
--1 Cat: the Category System
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,8 @@ lin
|
|||||||
--AdvNP : NP -> Adv -> NP ; -- Paris today
|
--AdvNP : NP -> Adv -> NP ; -- Paris today
|
||||||
AdvNP np adv = {s= \\c => np.s ! c ++ adv.s; agr = np.agr };
|
AdvNP np adv = {s= \\c => np.s ! c ++ adv.s; agr = np.agr };
|
||||||
--PPartNP : NP -> V2 -> NP ; -- the man seen use the Passive form of the verb see. abantu abarebirwe
|
--PPartNP : NP -> V2 -> NP ; -- the man seen use the Passive form of the verb see. abantu abarebirwe
|
||||||
|
PPartNP np v2 =
|
||||||
|
{s= \\c => np.s!c ++ mkSubjClitic np.agr ++ v2.s ++ Predef.BIND ++ v2.morphs!VFPastPart!RestOfVerb; agr = np.agr};
|
||||||
|
|
||||||
{-What the hell does this mean?-}
|
{-What the hell does this mean?-}
|
||||||
ExtAdvNP np adv = {s= \\c => np.s ! c ++ embedInCommas adv.s; agr = np.agr}; -- how do I do the adverbial clause?
|
ExtAdvNP np adv = {s= \\c => np.s ! c ++ embedInCommas adv.s; agr = np.agr}; -- how do I do the adverbial clause?
|
||||||
|
|||||||
@@ -2,6 +2,26 @@
|
|||||||
|
|
||||||
concrete RelativeCgg of Relative = CatCgg ** open ResCgg in {
|
concrete RelativeCgg of Relative = CatCgg ** open ResCgg in {
|
||||||
|
|
||||||
|
{-
|
||||||
|
--IdRP : RP ; -- which
|
||||||
|
|
||||||
|
Apparently IdRP means Identity Relative Pronoun i.e. the most atomic part
|
||||||
|
of a relative pronoun. The abstract syntax seems to alude that more
|
||||||
|
Relative pronouns can be formed when such a relative subject or object marker is affixed to
|
||||||
|
a prepositional Phrase.
|
||||||
|
In Runynakore and Rukiga, relative pronouns depend on
|
||||||
|
Noun Class , Gender and the case of the noun they
|
||||||
|
refer to.
|
||||||
|
|
||||||
|
Since this involves a table of two tables, we use ResCgg to prepare all possibilities
|
||||||
|
|
||||||
|
|
||||||
|
-}
|
||||||
|
|
||||||
|
IdRP = {s = mkmkRPs; rObjVariant2 = mkRObjV2}; --: RP ; -- which
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
--1 Relative clauses and pronouns
|
--1 Relative clauses and pronouns
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ param
|
|||||||
RI_ZERO | KU_ZERO | MU_ZERO | RU_ZERO |
|
RI_ZERO | KU_ZERO | MU_ZERO | RU_ZERO |
|
||||||
KA_ZERO |ZERO_BAA | N_ZERO;
|
KA_ZERO |ZERO_BAA | N_ZERO;
|
||||||
Case = Acc | Nom ; -- we need to include Gen because we shall need it with Gen Pronouns
|
Case = Acc | Nom ; -- we need to include Gen because we shall need it with Gen Pronouns
|
||||||
|
RCase = RSuj | RObj |RGen;
|
||||||
PersonalPronounType = SubjM | Obj | RelSubj | RelObj |
|
PersonalPronounType = SubjM | Obj | RelSubj | RelObj |
|
||||||
AdjPron2 | -- aAdjectival Prefixes with initial vowel with the semantics of "the" e.g. -- omuntu o-mu-rungi
|
AdjPron2 | -- aAdjectival Prefixes with initial vowel with the semantics of "the" e.g. -- omuntu o-mu-rungi
|
||||||
AdjPron | -- without initial vowel i.e. -- omuntu mu-rungi
|
AdjPron | -- without initial vowel i.e. -- omuntu mu-rungi
|
||||||
@@ -46,7 +46,7 @@ param
|
|||||||
Agreement = AgP3 Number Gender | AgMUBAP1 Number |AgMUBAP2 Number ;
|
Agreement = AgP3 Number Gender | AgMUBAP1 Number |AgMUBAP2 Number ;
|
||||||
AgrExist = AgrNo | AgrYes Agreement;
|
AgrExist = AgrNo | AgrYes Agreement;
|
||||||
Position = PostDeterminer | PreDeterminer ;
|
Position = PostDeterminer | PreDeterminer ;
|
||||||
|
Variants = V1|V2;
|
||||||
--Functional forms of the regular verb
|
--Functional forms of the regular verb
|
||||||
Mood = Infinitive | Imperative | Subjunctive | Perfective;
|
Mood = Infinitive | Imperative | Subjunctive | Perfective;
|
||||||
VerbCat = Simple | Prepositional | Causative;
|
VerbCat = Simple | Prepositional | Causative;
|
||||||
@@ -441,38 +441,140 @@ oper
|
|||||||
_ => mkClitic "XXXPredPref" -- error checking for any case not catered for
|
_ => mkClitic "XXXPredPref" -- error checking for any case not catered for
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
-- TThis is for demonstrative pronouns which can also be use as Quantifiers
|
||||||
|
-- How can it be done without code repeation?
|
||||||
|
mkThese = table{
|
||||||
|
--AgMUBAP1 Sg => mkClitic "ogu";
|
||||||
|
AgMUBAP1 Pl => mkClitic "aba" ;
|
||||||
|
--AgMUBAP2 Sg => mkClitic "ogu"; --probably an error check your grammar book
|
||||||
|
AgMUBAP2 Pl => mkClitic "aba" ;
|
||||||
|
--AgP3 Sg MU_BA => mkClitic "ogu";
|
||||||
|
AgP3 Pl MU_BA => mkClitic "aba" ;
|
||||||
|
AgP3 Pl ZERO_BU => mkClitic "obu" ;
|
||||||
|
--AgP3 Sg BU_MA => mkClitic "obu" ;
|
||||||
|
AgP3 Pl (KA_BU | RU_BU) => mkClitic "obu" ;
|
||||||
|
AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "ebi" ;
|
||||||
|
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "aga";
|
||||||
|
AgP3 ( Pl) HA => mkClitic "aha" ; -- of place HA
|
||||||
|
AgP3 ( Pl) MU => mkClitic "omu" ; -- of place MU
|
||||||
|
AgP3 ( Pl) KU => mkClitic "oku" ; -- of place KU
|
||||||
|
--AgP3 Sg (I_ZERO | I_MA | RI_MA) =>mkClitic "eri" ;
|
||||||
|
--AgP3 Sg (KA_ZERO | KA_BU) =>mkClitic "aka" ;
|
||||||
|
--AgP3 Sg KI_BI => mkClitic "eki" ;
|
||||||
|
--AgP3 Sg (KU_ZERO | KU_MA) => mkClitic "oku" ;
|
||||||
|
--AgP3 Sg (MU_MI | MU_ZERO) => mkClitic "ogu" ;
|
||||||
|
--AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => mkClitic "oru" ;
|
||||||
|
AgP3 Pl (ZERO_TU | KA_TU) =>mkClitic "otu" ;
|
||||||
|
--AgP3 Sg (ZERO_ZERO | N_N) =>mkClitic "egi" ;
|
||||||
|
AgP3 Pl ZERO_MI =>mkClitic "egi" ;
|
||||||
|
AgP3 Pl MU_MI => mkClitic "egi";
|
||||||
|
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) =>mkClitic "ezi" ;
|
||||||
|
--AgP3 Sg GU_GA => mkClitic "ogu" ;
|
||||||
|
AgP3 Pl GU_GA => mkClitic "aga" ;
|
||||||
|
_ => mkClitic "XXXThese" -- error checking for any case not catered for
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
-- TThis is for demonstrative pronouns which can also be use as Quantifiers
|
-- TThis is for demonstrative pronouns which can also be use as Quantifiers
|
||||||
-- How can it be done without code repeation?
|
-- How can it be done without code repeation?
|
||||||
mkThisTheseQuantorDem :Agreement -> Str = \a -> case a of {
|
mkThis = table{
|
||||||
AgMUBAP1 n => mkClitics "ogu" "aba" n;
|
AgMUBAP1 Sg => mkClitic "ogu";
|
||||||
--AgMUBAP1 Pl => "aba" ;
|
--AgMUBAP1 Pl => mkClitic "aba" ;
|
||||||
AgMUBAP2 n => mkClitics "ogu" "aba" n; --probably an error check your grammar book
|
AgMUBAP2 Sg => mkClitic "ogu"; --probably an error check your grammar book
|
||||||
--AgMUBAP2 Pl => "aba" ;
|
--AgMUBAP2 Pl => mkClitic "aba" ;
|
||||||
AgP3 n MU_BA => mkClitics "ogu" "aba" n;
|
AgP3 Sg MU_BA => mkClitic "ogu";
|
||||||
--AgP3 Pl MU_BA => "aba" ;
|
--AgP3 Pl MU_BA => mkClitic "aba" ;
|
||||||
AgP3 Pl ZERO_BU => mkClitic "obu" ;
|
--AgP3 Pl ZERO_BU => mkClitic "obu" ;
|
||||||
AgP3 Sg BU_MA => mkClitic "bwo" ;
|
AgP3 Sg BU_MA => mkClitic "obu" ;
|
||||||
AgP3 Pl (KA_BU | RU_BU) => mkClitic "bwo" ;
|
--AgP3 Pl (KA_BU | RU_BU) => mkClitic "obu" ;
|
||||||
AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "byo" ;
|
--AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "ebi" ;
|
||||||
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "go";
|
--AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "aga";
|
||||||
AgP3 (Sg | Pl) HA => mkClitic "ho" ; -- of place HA
|
AgP3 (Sg ) HA => mkClitic "aha" ; -- of place HA
|
||||||
AgP3 (Sg | Pl) MU => mkClitic "mwo" ; -- of place MU
|
AgP3 (Sg ) MU => mkClitic "omu" ; -- of place MU
|
||||||
AgP3 (Sg | Pl) KU => mkClitic "yo" ; -- of place KU
|
AgP3 (Sg ) KU => mkClitic "oku" ; -- of place KU
|
||||||
AgP3 Sg (I_ZERO | I_MA | RI_MA) =>mkClitic "ryo" ;
|
AgP3 Sg (I_ZERO | I_MA | RI_MA) =>mkClitic "eri" ;
|
||||||
AgP3 Sg (KA_ZERO | KA_BU) =>mkClitic "ko" ;
|
AgP3 Sg (KA_ZERO | KA_BU) =>mkClitic "aka" ;
|
||||||
AgP3 Sg KI_BI => mkClitic "kyo" ;
|
AgP3 Sg KI_BI => mkClitic "eki" ;
|
||||||
AgP3 Sg (KU_ZERO | KU_MA) => mkClitic "kwo" ;
|
AgP3 Sg (KU_ZERO | KU_MA) => mkClitic "oku" ;
|
||||||
AgP3 Sg (MU_MI | MU_ZERO) => mkClitic "gwo" ;
|
AgP3 Sg (MU_MI | MU_ZERO) => mkClitic "ogu" ;
|
||||||
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => mkClitic "rwo" ;
|
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => mkClitic "oru" ;
|
||||||
AgP3 Pl (ZERO_TU | KA_TU) =>mkClitic "two" ;
|
--AgP3 Pl (ZERO_TU | KA_TU) =>mkClitic "otu" ;
|
||||||
AgP3 Sg (ZERO_ZERO | N_N) =>mkClitic "yo" ;
|
AgP3 Sg (ZERO_ZERO | N_N) =>mkClitic "egi" ;
|
||||||
AgP3 Pl ZERO_MI =>mkClitic "yo" ;
|
--AgP3 Pl ZERO_MI =>mkClitic "egi" ;
|
||||||
AgP3 Pl MU_MI => mkClitic "yo";
|
--AgP3 Pl MU_MI => mkClitic "egi";
|
||||||
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) =>mkClitic "zo" ;
|
--AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) =>mkClitic "ezi" ;
|
||||||
AgP3 Sg GU_GA => mkClitic "gwo" ;
|
AgP3 Sg GU_GA => mkClitic "ogu" ;
|
||||||
AgP3 Pl GU_GA => mkClitic "go" ;
|
--AgP3 Pl GU_GA => mkClitic "aga" ;
|
||||||
_ => mkClitic "XXXThis_That" -- error checking for any case not catered for
|
_ => mkClitic "XXXThis" -- error checking for any case not catered for
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
-- TThis is for demonstrative pronouns which can also be use as Quantifiers
|
||||||
|
-- How can it be done without code repeation?
|
||||||
|
mkThose = table{
|
||||||
|
--AgMUBAP1 Sg => mkClitic "ogu";
|
||||||
|
AgMUBAP1 Pl => mkClitic "abo" ;
|
||||||
|
--AgMUBAP2 Sg => mkClitic "ogu"; --probably an error check your grammar book
|
||||||
|
AgMUBAP2 Pl => mkClitic "abo" ;
|
||||||
|
--AgP3 Sg MU_BA => mkClitic "ogu";
|
||||||
|
AgP3 Pl MU_BA => mkClitic "abo" ;
|
||||||
|
AgP3 Pl ZERO_BU => mkClitic "obwo" ;
|
||||||
|
--AgP3 Sg BU_MA => mkClitic "obu" ;
|
||||||
|
AgP3 Pl (KA_BU | RU_BU) => mkClitic "obwo" ;
|
||||||
|
AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "ebyo" ;
|
||||||
|
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "ago";
|
||||||
|
AgP3 ( Pl) HA => mkClitic "aho" ; -- of place HA
|
||||||
|
AgP3 ( Pl) MU => mkClitic "omwo" ; -- of place MU
|
||||||
|
AgP3 ( Pl) KU => mkClitic "okwo" ; -- of place KU
|
||||||
|
--AgP3 Sg (I_ZERO | I_MA | RI_MA) =>mkClitic "eri" ;
|
||||||
|
--AgP3 Sg (KA_ZERO | KA_BU) =>mkClitic "aka" ;
|
||||||
|
--AgP3 Sg KI_BI => mkClitic "eki" ;
|
||||||
|
--AgP3 Sg (KU_ZERO | KU_MA) => mkClitic "oku" ;
|
||||||
|
--AgP3 Sg (MU_MI | MU_ZERO) => mkClitic "ogu" ;
|
||||||
|
--AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => mkClitic "oru" ;
|
||||||
|
AgP3 Pl (ZERO_TU | KA_TU) =>mkClitic "otwo" ;
|
||||||
|
--AgP3 Sg (ZERO_ZERO | N_N) =>mkClitic "egi" ;
|
||||||
|
AgP3 Pl ZERO_MI =>mkClitic "egyo" ;
|
||||||
|
AgP3 Pl MU_MI => mkClitic "egyo";
|
||||||
|
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) =>mkClitic "ezo" ;
|
||||||
|
--AgP3 Sg GU_GA => mkClitic "ogu" ;
|
||||||
|
AgP3 Pl GU_GA => mkClitic "ago" ;
|
||||||
|
_ => mkClitic "XXXThose" -- error checking for any case not catered for
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
-- TThis is for demonstrative pronouns which can also be use as Quantifiers
|
||||||
|
-- How can it be done without code repeation?
|
||||||
|
mkThat = table {
|
||||||
|
AgMUBAP1 Sg => mkClitic "ogwo";
|
||||||
|
--AgMUBAP1 Pl => mkClitic "aba" ;
|
||||||
|
AgMUBAP2 Sg => mkClitic "ogu"; --probably an error check your grammar book
|
||||||
|
--AgMUBAP2 Pl => mkClitic "aba" ;
|
||||||
|
AgP3 Sg MU_BA => mkClitic "ogu";
|
||||||
|
--AgP3 Pl MU_BA => mkClitic "aba" ;
|
||||||
|
--AgP3 Pl ZERO_BU => mkClitic "obu" ;
|
||||||
|
AgP3 Sg BU_MA => mkClitic "obwo" ;
|
||||||
|
--AgP3 Pl (KA_BU | RU_BU) => mkClitic "obu" ;
|
||||||
|
--AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "ebi" ;
|
||||||
|
--AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "aga";
|
||||||
|
AgP3 (Sg ) HA => mkClitic "aho" ; -- of place HA
|
||||||
|
AgP3 (Sg ) MU => mkClitic "omwo" ; -- of place MU
|
||||||
|
AgP3 (Sg ) KU => mkClitic "okwo" ; -- of place KU
|
||||||
|
AgP3 Sg (I_ZERO | I_MA | RI_MA) =>mkClitic "eryo" ;
|
||||||
|
AgP3 Sg (KA_ZERO | KA_BU) =>mkClitic "ako" ;
|
||||||
|
AgP3 Sg KI_BI => mkClitic "ekyo" ;
|
||||||
|
AgP3 Sg (KU_ZERO | KU_MA) => mkClitic "okwo" ;
|
||||||
|
AgP3 Sg (MU_MI | MU_ZERO) => mkClitic "ogwo" ;
|
||||||
|
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => mkClitic "orwo" ;
|
||||||
|
--AgP3 Pl (ZERO_TU | KA_TU) =>mkClitic "otu" ;
|
||||||
|
AgP3 Sg (ZERO_ZERO | N_N) =>mkClitic "egyo" ;
|
||||||
|
--AgP3 Pl ZERO_MI =>mkClitic "egi" ;
|
||||||
|
--AgP3 Pl MU_MI => mkClitic "egi";
|
||||||
|
--AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) =>mkClitic "ezi" ;
|
||||||
|
AgP3 Sg GU_GA => mkClitic "ogwo" ;
|
||||||
|
--AgP3 Pl GU_GA => mkClitic "aga" ;
|
||||||
|
_ => mkClitic "XXXThat" -- error checking for any case not catered for
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -540,6 +642,103 @@ oper
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mkRPs : RCase => Agreement =>Str = table{
|
||||||
|
RSubj => table {
|
||||||
|
AgMUBAP1 Sg => mkClitic "o";
|
||||||
|
AgMUBAP1 Pl => mkClitic "aba" ;
|
||||||
|
AgMUBAP2 Sg => mkClitic "o";
|
||||||
|
AgMUBAP2 Pl => mkClitic "aba" ;
|
||||||
|
AgP3 Sg MU_BA => mkClitic "o";
|
||||||
|
AgP3 Pl MU_BA => mkClitic "aba" ;
|
||||||
|
AgP3 Pl ZERO_BU => mkClitic "obu" ;
|
||||||
|
AgP3 Sg BU_MA => mkClitic "obu" ;
|
||||||
|
AgP3 Pl (KA_BU | RU_BU) => mkClitic "obu" ;
|
||||||
|
AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "ebi" ;
|
||||||
|
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "aga";
|
||||||
|
AgP3 (Sg ) HA => mkClitic "aha" ; -- of place HA
|
||||||
|
AgP3 (Sg ) MU => mkClitic "aha" ; -- of place MU
|
||||||
|
AgP3 (Sg ) KU => mkClitic "e" ; -- of place KU
|
||||||
|
AgP3 Sg (I_ZERO | I_MA | RI_MA) =>mkClitic "eri" ;
|
||||||
|
AgP3 Sg (KA_ZERO | KA_BU) =>mkClitic "aka" ;
|
||||||
|
AgP3 Sg KI_BI => mkClitic "eki" ;
|
||||||
|
AgP3 Sg (KU_ZERO | KU_MA) => mkClitic "oku" ;
|
||||||
|
AgP3 Sg (MU_MI | MU_ZERO) => mkClitic "ogu" ;
|
||||||
|
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => mkClitic "oru" ;
|
||||||
|
AgP3 Pl (ZERO_TU | KA_TU) =>mkClitic "otu" ;
|
||||||
|
AgP3 Sg (ZERO_ZERO | N_N) =>mkClitic "e" ;
|
||||||
|
AgP3 Pl ZERO_MI =>mkClitic "e" ;
|
||||||
|
AgP3 Pl MU_MI => mkClitic "e";
|
||||||
|
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) =>mkClitic "ezi" ;
|
||||||
|
AgP3 Sg GU_GA => mkClitic "ogu" ;
|
||||||
|
AgP3 Pl GU_GA => mkClitic "aga" ;
|
||||||
|
_ => mkClitic "XXXThat" -- error checking for any case not catered for
|
||||||
|
|
||||||
|
};
|
||||||
|
RObj => table {
|
||||||
|
AgMUBAP1 Sg => mkClitic "ou";
|
||||||
|
AgMUBAP1 Pl => mkClitic "abu" ; --note: abu or abi is used. GF does not allow free variation. However, abu is more natural
|
||||||
|
AgMUBAP2 Sg => mkClitic "ou"; --probably an error check your grammar book
|
||||||
|
AgMUBAP2 Pl => mkClitic "abu" ;
|
||||||
|
AgP3 Sg MU_BA => mkClitic "o";
|
||||||
|
AgP3 Pl MU_BA => mkClitic "abu" ;
|
||||||
|
AgP3 Pl ZERO_BU => mkClitic "obu" ;
|
||||||
|
AgP3 Sg BU_MA => mkClitic "obu" ;
|
||||||
|
AgP3 Pl (KA_BU | RU_BU) => mkClitic "obu" ;
|
||||||
|
AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "ebi" ;
|
||||||
|
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "agu";
|
||||||
|
AgP3 (Sg ) HA => mkClitic "ahu" ; -- of place HA
|
||||||
|
AgP3 (Sg ) MU => mkClitic "ahu" ; -- of place MU
|
||||||
|
AgP3 (Sg ) KU => mkClitic "ei" ; -- of place KU
|
||||||
|
AgP3 Sg (I_ZERO | I_MA | RI_MA) =>mkClitic "eri" ;
|
||||||
|
AgP3 Sg (KA_ZERO | KA_BU) =>mkClitic "aku" ;
|
||||||
|
AgP3 Sg KI_BI => mkClitic "eki" ;
|
||||||
|
AgP3 Sg (KU_ZERO | KU_MA) => mkClitic "oku" ;
|
||||||
|
AgP3 Sg (MU_MI | MU_ZERO) => mkClitic "ogu" ;
|
||||||
|
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => mkClitic "oru" ;
|
||||||
|
AgP3 Pl (ZERO_TU | KA_TU) =>mkClitic "otu" ;
|
||||||
|
AgP3 Sg (ZERO_ZERO | N_N) =>mkClitic "ei" ;
|
||||||
|
AgP3 Pl ZERO_MI =>mkClitic "ei" ;
|
||||||
|
AgP3 Pl MU_MI => mkClitic "ei";
|
||||||
|
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) =>mkClitic "ezi" ;
|
||||||
|
AgP3 Sg GU_GA => mkClitic "ogu" ;
|
||||||
|
AgP3 Pl GU_GA => mkClitic "agu" ;
|
||||||
|
_ => mkClitic "XXXThat" -- error checking for any case not catered for
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
mkRObjV2 : Agreement=> Str =table {
|
||||||
|
AgMUBAP1 Sg => mkClitic "ou";
|
||||||
|
AgMUBAP1 Pl => mkClitic "abi" ; --note: abu or abi is used. GF does not allow free variation. However, abu is more natural
|
||||||
|
AgMUBAP2 Sg => mkClitic "ou"; --probably an error check your grammar book
|
||||||
|
AgMUBAP2 Pl => mkClitic "abi" ;
|
||||||
|
AgP3 Sg MU_BA => mkClitic "ou";
|
||||||
|
AgP3 Pl MU_BA => mkClitic "abi" ;
|
||||||
|
AgP3 Pl ZERO_BU => mkClitic "obu" ;
|
||||||
|
AgP3 Sg BU_MA => mkClitic "obu" ;
|
||||||
|
AgP3 Pl (KA_BU | RU_BU) => mkClitic "obu" ;
|
||||||
|
AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "ebi" ;
|
||||||
|
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "agi";
|
||||||
|
AgP3 (Sg ) HA => mkClitic "ahi" ; -- of place HA
|
||||||
|
AgP3 (Sg ) MU => mkClitic "ahu" ; -- of place MU
|
||||||
|
AgP3 (Sg ) KU => mkClitic "ei" ; -- of place KU
|
||||||
|
AgP3 Sg (I_ZERO | I_MA | RI_MA) =>mkClitic "eri" ;
|
||||||
|
AgP3 Sg (KA_ZERO | KA_BU) =>mkClitic "aki" ;
|
||||||
|
AgP3 Sg KI_BI => mkClitic "eki" ;
|
||||||
|
AgP3 Sg (KU_ZERO | KU_MA) => mkClitic "oku" ;
|
||||||
|
AgP3 Sg (MU_MI | MU_ZERO) => mkClitic "ogu" ;
|
||||||
|
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => mkClitic "oru" ;
|
||||||
|
AgP3 Pl (ZERO_TU | KA_TU) =>mkClitic "otu" ;
|
||||||
|
AgP3 Sg (ZERO_ZERO | N_N) =>mkClitic "ei" ;
|
||||||
|
AgP3 Pl ZERO_MI =>mkClitic "ei" ;
|
||||||
|
AgP3 Pl MU_MI => mkClitic "ei";
|
||||||
|
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) =>mkClitic "ezi" ;
|
||||||
|
AgP3 Sg GU_GA => mkClitic "ogu" ;
|
||||||
|
AgP3 Pl GU_GA => mkClitic "agi" ;
|
||||||
|
_ => mkClitic "XXXThat" -- error checking for any case not catered for
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
-- type for Determier necessary for catCgg.gf
|
-- type for Determier necessary for catCgg.gf
|
||||||
Determiner : Type = {s : Str ; ntype : NounState ; num : Number ; pos : Position };
|
Determiner : Type = {s : Str ; ntype : NounState ; num : Number ; pos : Position };
|
||||||
mkDet : Str -> NounState -> Number -> Position -> Determiner
|
mkDet : Str -> NounState -> Number -> Position -> Determiner
|
||||||
@@ -736,18 +935,18 @@ oper
|
|||||||
--IDobjM => [];
|
--IDobjM => [];
|
||||||
RestOfVerb =>"a"
|
RestOfVerb =>"a"
|
||||||
};
|
};
|
||||||
VFPastPart => table{
|
VFPastPart => table{
|
||||||
PreVerb => [];
|
PreVerb => [];
|
||||||
PriNegM => [];
|
PriNegM => [];
|
||||||
--ObjRel => [];
|
--ObjRel => [];
|
||||||
--SubjMarker =[];
|
--SubjMarker =[];
|
||||||
SecNegM => "ta";
|
SecNegM => "ta";
|
||||||
TAMarker => "ku";
|
TAMarker => "ku";
|
||||||
PersistiveMarker => [];
|
PersistiveMarker => [];
|
||||||
--DObjM => [];
|
--DObjM => [];
|
||||||
--IDobjM => [];
|
--IDobjM => [];
|
||||||
RestOfVerb =>"a"
|
RestOfVerb =>"irwe"
|
||||||
};
|
};
|
||||||
|
|
||||||
--mkVerbPast:Str -> Str =\root -> Predef.BIND ++"ti" ++ Predef.BIND ++ "PriNegM" ++ Predef.BIND ++ "TM1" ++ Predef.BIND ++ "Empy" ++ Predef.BIND ++ "TM2" ++ Predef.BIND ++ "Empty" ++ Predef.BIND ++ "stem" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire";
|
--mkVerbPast:Str -> Str =\root -> Predef.BIND ++"ti" ++ Predef.BIND ++ "PriNegM" ++ Predef.BIND ++ "TM1" ++ Predef.BIND ++ "Empy" ++ Predef.BIND ++ "TM2" ++ Predef.BIND ++ "Empty" ++ Predef.BIND ++ "stem" ++ Predef.BIND ++ root ++ Predef.BIND ++ "ire";
|
||||||
VFPast => table{
|
VFPast => table{
|
||||||
|
|||||||
@@ -3,6 +3,16 @@
|
|||||||
concrete StructuralCgg of Structural = CatCgg **
|
concrete StructuralCgg of Structural = CatCgg **
|
||||||
open ResCgg, ParadigmsCgg, (C = ConstructX), Prelude in {
|
open ResCgg, ParadigmsCgg, (C = ConstructX), Prelude in {
|
||||||
|
|
||||||
|
|
||||||
|
{-variants
|
||||||
|
NOTE: Please add them to the abstract syntax, ask aarne
|
||||||
|
or creat you own abstract Lexicon which inherits from the
|
||||||
|
standard one. See how english does it. i.e. use DictCggAbs.gf for the funs.
|
||||||
|
and DictCgg.gf for the lins.
|
||||||
|
|
||||||
|
Actually use and extend module for Structural
|
||||||
|
-}
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
a_Det = {s =[] ; ntype = Complete; num = Sg; pos = PreDeterminer}; --: Det ; indefinite singular ---s
|
a_Det = {s =[] ; ntype = Complete; num = Sg; pos = PreDeterminer}; --: Det ; indefinite singular ---s
|
||||||
@@ -119,22 +129,20 @@ here_Adv = {s = "hanu"; agr = AgrNo};
|
|||||||
{-End of Adverbs Adverbs-}
|
{-End of Adverbs Adverbs-}
|
||||||
|
|
||||||
{-Begining of Quantifiers-}
|
{-Begining of Quantifiers-}
|
||||||
|
|
||||||
{-End of Quantifiers-}
|
|
||||||
|
|
||||||
{-variants
|
|
||||||
NOTE: Please add them to the abstract syntax, ask aarne
|
|
||||||
or creat you own abstract Lexicon which inherits from the
|
|
||||||
standard one. See how english does it. i.e. use DictCggAbs.gf for the funs.
|
|
||||||
and DictCgg.gf for the lins.
|
|
||||||
|
|
||||||
Actually use and extend module for Structural
|
|
||||||
-}
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
For DetQuant function to work, we need sample quatitifiers in Runynakore. Roximal, Medial, Distant
|
For DetQuant function to work, we need sample quatitifiers in Runynakore. Proximal, Medial, Distant
|
||||||
We need a table to provide all of these.
|
We need a table to provide all of these.
|
||||||
-}
|
-}
|
||||||
|
that_Quant = {s =[]; s2 = mkThat; doesAgree = True}; --: Quant ;
|
||||||
|
this_Quant = {s =[]; s2 = mkThis; doesAgree = True}; --: Quant ;
|
||||||
|
these_Quant = {s =[]; s2 = mkThese; doesAgree = True};
|
||||||
|
those_Quant = {s =[]; s2 = mkThose; doesAgree = True};
|
||||||
|
no_Quant = {s ="tihariho"; s2 =\\_=> []; doesAgree = False};--: Quant ;
|
||||||
|
{-End of Quantifiers-}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
--1 Structural: Structural Words
|
--1 Structural: Structural Words
|
||||||
--
|
--
|
||||||
|
|||||||
Reference in New Issue
Block a user