worked on the Relative Pronoun (RP) found produced by the function IdRP

This commit is contained in:
David Bamutura
2019-05-05 16:01:46 +02:00
parent b18ffa9d0b
commit 7d49c87d1e
5 changed files with 288 additions and 57 deletions

View File

@@ -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

View File

@@ -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?

View File

@@ -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

View File

@@ -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;
@@ -444,35 +444,137 @@ oper
-- 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 { mkThese = 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 ( Pl) HA => mkClitic "aha" ; -- of place HA
AgP3 (Sg | Pl) MU => mkClitic "mwo" ; -- of place MU AgP3 ( Pl) MU => mkClitic "omu" ; -- of place MU
AgP3 (Sg | Pl) KU => mkClitic "yo" ; -- of place KU AgP3 ( Pl) 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 "XXXThese" -- 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?
mkThis = 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 (Sg ) HA => mkClitic "aha" ; -- of place HA
AgP3 (Sg ) MU => mkClitic "omu" ; -- of place MU
AgP3 (Sg ) 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 "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
@@ -746,7 +945,7 @@ oper
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";

View File

@@ -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
-- --