mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
=made changes to UseCl by correcting tense linearization. Added some extras. Peparing to extend GF
This commit is contained in:
@@ -15,6 +15,11 @@ lin
|
|||||||
|
|
||||||
{-Assumed that a PrepNP is always Acc-}
|
{-Assumed that a PrepNP is always Acc-}
|
||||||
PrepNP prep np = {s = prep.s ++ np.s ! Acc; agr = AgrNo}; -- aha meza
|
PrepNP prep np = {s = prep.s ++ np.s ! Acc; agr = AgrNo}; -- aha meza
|
||||||
|
|
||||||
|
-- Subordinate clauses can function as adverbs.
|
||||||
|
|
||||||
|
--SubjS : Subj -> S -> Adv ; -- when she sleeps
|
||||||
|
SubjS subjunctive sent = {s=subjunctive.s ++ sent.s; agr=AgrNo};
|
||||||
|
|
||||||
--PositAdvAdj : A -> Adv ; -- warmly
|
--PositAdvAdj : A -> Adv ; -- warmly
|
||||||
--"Impossible to implement because each is lexically different word."
|
--"Impossible to implement because each is lexically different word."
|
||||||
|
|||||||
@@ -20,6 +20,9 @@ lincat
|
|||||||
[CN] = {s1,s2 : Number => Case => Str};
|
[CN] = {s1,s2 : Number => Case => Str};
|
||||||
[DAP] = {s1,s2 : Str ; n : Number};
|
[DAP] = {s1,s2 : Str ; n : Number};
|
||||||
-}
|
-}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
--1 Conjunction: Coordination
|
--1 Conjunction: Coordination
|
||||||
|
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ lin
|
|||||||
bread_N = mkN "omugati" MU_MI;
|
bread_N = mkN "omugati" MU_MI;
|
||||||
car_N = mkN "emootoka" N_N ;
|
car_N = mkN "emootoka" N_N ;
|
||||||
cat_N = mkN "enjangu" N_N ;
|
cat_N = mkN "enjangu" N_N ;
|
||||||
--chair_N = mkN "entebbe" N_N ;
|
chair_N = mkN "entebbe" N_N ;
|
||||||
child_N = mkN "omwana" MU_BA ;
|
child_N = mkN "omwana" MU_BA ;
|
||||||
city_N = mkN "ekibúga" KI_BI; --orurêmbo pl endêmbo
|
city_N = mkN "ekibúga" KI_BI; --orurêmbo pl endêmbo
|
||||||
cloud_N = mkN "ekikyu" KI_BI ;
|
cloud_N = mkN "ekikyu" KI_BI ;
|
||||||
@@ -25,6 +25,7 @@ lin
|
|||||||
cow_N = mkN "ente" N_N ;
|
cow_N = mkN "ente" N_N ;
|
||||||
dog_N = mkN "embwa" N_N ;
|
dog_N = mkN "embwa" N_N ;
|
||||||
--person_N = mkN "omuntu" "abantu" MU_BA ;
|
--person_N = mkN "omuntu" "abantu" MU_BA ;
|
||||||
|
eye_N = mkN "eriisho" RI_MA;
|
||||||
fire_N = mkN "omuriro" MU_MI ;
|
fire_N = mkN "omuriro" MU_MI ;
|
||||||
fish_N = mkN "eky'ényanja" KI_BI ;
|
fish_N = mkN "eky'ényanja" KI_BI ;
|
||||||
flower_N = mkN "ekimuri" KI_BI ;
|
flower_N = mkN "ekimuri" KI_BI ;
|
||||||
@@ -44,9 +45,11 @@ lin
|
|||||||
horse_N = mkN "embaráàsi" N_N ;
|
horse_N = mkN "embaráàsi" N_N ;
|
||||||
house_N = mkN "enju" N_N ;
|
house_N = mkN "enju" N_N ;
|
||||||
language_N = mkN "orurími" "endími" RU_N ;
|
language_N = mkN "orurími" "endími" RU_N ;
|
||||||
|
meat_N = mkN "enyama" N_N;
|
||||||
man_N = mkN "omushaija" MU_BA ;
|
man_N = mkN "omushaija" MU_BA ;
|
||||||
milk_N = mkN "amate" ZERO_MA ;
|
milk_N = mkN "amate" ZERO_MA ;
|
||||||
music_N = mkN "music" ZERO_ZERO ; -- I have not found the translation
|
music_N = mkN "music" ZERO_ZERO ; -- I have not found the translation
|
||||||
|
rule_N = mkN "akiragiro" KI_BI;
|
||||||
river_N = mkN "omugyera" MU_MI ; --omurîndi,
|
river_N = mkN "omugyera" MU_MI ; --omurîndi,
|
||||||
sea_N = mkN "enyanja" N_N ;
|
sea_N = mkN "enyanja" N_N ;
|
||||||
ship_N = mkN "ekyombo" KI_BI ; -- eméèri [NC_n_n]
|
ship_N = mkN "ekyombo" KI_BI ; -- eméèri [NC_n_n]
|
||||||
@@ -56,7 +59,9 @@ lin
|
|||||||
water_N = mkN "amáìzi" ZERO_MA ;
|
water_N = mkN "amáìzi" ZERO_MA ;
|
||||||
wine_N = mkN "víìnyo" ZERO_ZERO ;
|
wine_N = mkN "víìnyo" ZERO_ZERO ;
|
||||||
woman_N = mkN "omwishiki" MU_BA ;
|
woman_N = mkN "omwishiki" MU_BA ;
|
||||||
|
reason_N = mkN "enshoonga" N_N;
|
||||||
|
sheep_N = mkN "entaama" N_N;
|
||||||
|
hat_N = mkN "enkofira" N_N;
|
||||||
--Proper Nouns
|
--Proper Nouns
|
||||||
john_PN = mkPN "Yohana" (AgP3 Sg MU_BA) False;
|
john_PN = mkPN "Yohana" (AgP3 Sg MU_BA) False;
|
||||||
paris_PN = mkPN "Paris" (AgP3 Sg N_N) True; --Noun class for places???
|
paris_PN = mkPN "Paris" (AgP3 Sg N_N) True; --Noun class for places???
|
||||||
@@ -68,20 +73,22 @@ lin
|
|||||||
black_A = mkAdjective "kwirangura" Post False False;
|
black_A = mkAdjective "kwirangura" Post False False;
|
||||||
blue_A = mkAdjective "buuru" Post True True ;
|
blue_A = mkAdjective "buuru" Post True True ;
|
||||||
clean_A = mkAdjective "yonjo" Post False False; --: A ;
|
clean_A = mkAdjective "yonjo" Post False False; --: A ;
|
||||||
cold_A = mkAdjective "rikufuka" Post False False; --: A ;
|
cold_A = mkAdjective "kufuka" Post False False; --: A ;
|
||||||
|
correct_A = mkAdjective "hikire" Post False False; --: A ;
|
||||||
good_A =mkAdjective "rungi" Post False False; --: A ;
|
good_A =mkAdjective "rungi" Post False False; --: A ;
|
||||||
heavy_A = mkAdjective "rikuremeera" Post False False; --: A ; --notice ri as a verb is
|
heavy_A = mkAdjective "kuremeera" Post False False; --: A ; --notice ri as a verb is
|
||||||
hot_A = mkAdjective "rikwotsya" Post False False; -- rikutagata -- problematic words like hot we need a new set of clitics
|
hot_A = mkAdjective "kwosya" Post False False; -- rikutagata -- problematic words like hot we need a new set of clitics
|
||||||
new_A = mkAdjective "sya" Post False False; --: A ;
|
new_A = mkAdjective "sya" Post False False; --: A ;
|
||||||
old_A = mkAdjective "kúru" Post False False; --: A ;
|
old_A = mkAdjective "kúru" Post False False; --: A ;
|
||||||
ready_A = mkAdjective "eteekateekire" Post False False; --: A ;
|
ready_A = mkAdjective "eteekateekire" Post False False; --: A ;
|
||||||
red_A = mkAdjective "ríkutukura" Post False False; --: A ;
|
red_A = mkAdjective "kutukura" Post False False; --: A ;
|
||||||
small_A = mkAdjective "kye" Post False False;
|
small_A = mkAdjective "kye" Post False False;
|
||||||
warm_A = mkAdjective "rikutagata" Post False False;--: A ;
|
warm_A = mkAdjective "kutagata" Post False False;--: A ;
|
||||||
white_A = mkAdjective "rikwera" Post False False;--: A ;
|
white_A = mkAdjective "rikwera" Post False False;--: A ;
|
||||||
yellow_A = mkAdjective "kinekye" Post True True;--: A ; or yero, or kyenju
|
yellow_A = mkAdjective "kinekye" Post True True;--: A ; or yero, or kyenju
|
||||||
young_A = mkAdjective "to" Post False False;--: A ;
|
young_A = mkAdjective "to" Post False False;--: A ;
|
||||||
green_A =mkAdjective "kijubwe" Post False True;
|
green_A =mkAdjective "kijubwe" Post False True;
|
||||||
|
thin_A = mkAdjective "kye" Post False False;
|
||||||
|
|
||||||
--ditransitive verbs
|
--ditransitive verbs
|
||||||
bite_V2 = mkV2 "rum";
|
bite_V2 = mkV2 "rum";
|
||||||
@@ -96,13 +103,13 @@ lin
|
|||||||
fear_V2 = mkV2 "tiin";
|
fear_V2 = mkV2 "tiin";
|
||||||
find_V2 = mkV2 "bon" ; --: V2 ; -- many words; kureeba, kubóna,kushanga, kumamya,kujumbura
|
find_V2 = mkV2 "bon" ; --: V2 ; -- many words; kureeba, kubóna,kushanga, kumamya,kujumbura
|
||||||
kill_V2 = mkV2 "it"; --: V2 ;
|
kill_V2 = mkV2 "it"; --: V2 ;
|
||||||
love_V2 = mkV2 "kûnd"; --: V2 ;
|
love_V2 = mkV2 "kûnd" "da" "zire"; --: V2 ;
|
||||||
read_V2 = mkV2 "shom";--: V2 ;
|
read_V2 = mkV2 "shom";--: V2 ;
|
||||||
see_V2 = mkV2 "reeb"; --: V2 ;
|
see_V2 = mkV2 "reeb"; --: V2 ;
|
||||||
teach_V2 = mkV2 "shomes" ; --: V2 ; or kwegyesa
|
teach_V2 = mkV2 "shomes" ; --: V2 ; or kwegyesa
|
||||||
understand_V2 = mkV2 "étegyerez"; --: V2 ;
|
understand_V2 = mkV2 "étegyerez"; --: V2 ;
|
||||||
wait_V2 = mkV2 "tegyerez"; --: V2 ;
|
wait_V2 = mkV2 "tegyerez"; --: V2 ;
|
||||||
|
|
||||||
-- ditransitive verbs
|
-- ditransitive verbs
|
||||||
add_V3 = mkV3 "gáìt";
|
add_V3 = mkV3 "gáìt";
|
||||||
give_V3 = mkV3 "héére" "za" "ize";
|
give_V3 = mkV3 "héére" "za" "ize";
|
||||||
@@ -113,12 +120,13 @@ lin
|
|||||||
|
|
||||||
-- Intransitive verbs
|
-- Intransitive verbs
|
||||||
come_V = mkV "ij";
|
come_V = mkV "ij";
|
||||||
go_V = mkV "gyend"; --: V ; -- Many words: kuza, kuraba,kutoora, kugyenda=go away, kushuma=go down
|
die_V = mkV "f";
|
||||||
|
go_V = mkV "gyen" "da" "zire"; --: V ; -- Many words: kuza, kuraba,kutoora, kugyenda=go away, kushuma=go down
|
||||||
jump_V = mkV "guruk" ;
|
jump_V = mkV "guruk" ;
|
||||||
play_V = mkV "záàn"; --: 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 "gwejegyer" ; --: V ;--Kugwejegyera, kubyama
|
||||||
swim_V = mkV "og"; --: V ;
|
swim_V = mkV "og"; --: V ;
|
||||||
travel_V = mkV "gyen" "da" "zire" ;--: V ;
|
travel_V = mkV "gyen" "da" "zire" ;--: V ;
|
||||||
walk_V = mkV "ribá" "ta" "si"; --: V ; or kuribata Runynakore it is different
|
walk_V = mkV "ribá" "ta" "si"; --: V ; or kuribata Runynakore it is different
|
||||||
@@ -143,7 +151,7 @@ lin
|
|||||||
now_Adv = mkAdv "hati" AgrNo;
|
now_Adv = mkAdv "hati" AgrNo;
|
||||||
--far_Adv = mkAdv "hare";
|
--far_Adv = mkAdv "hare";
|
||||||
|
|
||||||
--today_Adv = mkAdv "erizooba" AgrNo;
|
today_Adv = mkAdv "erizooba" AgrNo;
|
||||||
|
|
||||||
father_N2 = mkN2 (mkN "tata" ZERO_BAA) (lin Prep (mkPrep [] [] True)) ;
|
father_N2 = mkN2 (mkN "tata" ZERO_BAA) (lin Prep (mkPrep [] [] True)) ;
|
||||||
|
|
||||||
@@ -151,6 +159,247 @@ lin
|
|||||||
|
|
||||||
alas_Interj ={s="ryakareeba"; }; --: Interj ;
|
alas_Interj ={s="ryakareeba"; }; --: Interj ;
|
||||||
|
|
||||||
|
|
||||||
|
-- New Lexicon
|
||||||
|
switch8off_V2 = mkV2 "raza" "za" "riize";
|
||||||
|
television_N = mkN "TV" N_N;
|
||||||
|
doctor_N = mkN "omushaho" MU_BA;
|
||||||
|
clever_A =mkAdjective "amagyezi" Post False True;
|
||||||
|
laugh_V = mkV "sheka";
|
||||||
|
|
||||||
|
airplane_N = mkN "endegye" N_N;
|
||||||
|
{--
|
||||||
|
answer_V2S
|
||||||
|
apartment_N
|
||||||
|
art_N
|
||||||
|
ashes_N
|
||||||
|
ask_V2Q
|
||||||
|
back_N
|
||||||
|
bank_N
|
||||||
|
bark_N
|
||||||
|
beautiful_A
|
||||||
|
beg_V2V
|
||||||
|
belly_N
|
||||||
|
blow_V
|
||||||
|
bone_N
|
||||||
|
boot_N
|
||||||
|
boss_N
|
||||||
|
breast_N
|
||||||
|
breathe_V
|
||||||
|
broad_A
|
||||||
|
brother_N2
|
||||||
|
brown_A
|
||||||
|
burn_V
|
||||||
|
butter_N
|
||||||
|
camera_N
|
||||||
|
cap_N
|
||||||
|
carpet_N
|
||||||
|
ceiling_N
|
||||||
|
cheese_N
|
||||||
|
church_N
|
||||||
|
coat_N
|
||||||
|
country_N
|
||||||
|
cousin_N
|
||||||
|
day_N
|
||||||
|
dig_V
|
||||||
|
dirty_A
|
||||||
|
doctor_N
|
||||||
|
door_N
|
||||||
|
dry_A
|
||||||
|
dull_A
|
||||||
|
dust_N
|
||||||
|
ear_N
|
||||||
|
earth_N
|
||||||
|
easy_A2V
|
||||||
|
egg_N
|
||||||
|
empty_A
|
||||||
|
enemy_N
|
||||||
|
factory_N
|
||||||
|
fall_V
|
||||||
|
far_Adv
|
||||||
|
fat_N
|
||||||
|
feather_N
|
||||||
|
fight_V2
|
||||||
|
fingernail_N
|
||||||
|
float_V
|
||||||
|
floor_N
|
||||||
|
flow_V
|
||||||
|
fly_V
|
||||||
|
fog_N
|
||||||
|
foot_N
|
||||||
|
forest_N
|
||||||
|
forget_V2
|
||||||
|
freeze_V
|
||||||
|
fridge_N
|
||||||
|
fruit_N
|
||||||
|
full_A
|
||||||
|
fun_AV
|
||||||
|
garden_N
|
||||||
|
glove_N
|
||||||
|
gold_N
|
||||||
|
grass_N
|
||||||
|
guts_N
|
||||||
|
hair_N
|
||||||
|
hand_N
|
||||||
|
harbour_N
|
||||||
|
hat_N
|
||||||
|
hate_V2
|
||||||
|
head_N
|
||||||
|
hear_V2
|
||||||
|
heart_N
|
||||||
|
hill_N
|
||||||
|
hit_V2
|
||||||
|
hold_V2
|
||||||
|
horn_N
|
||||||
|
hunt_V2
|
||||||
|
husband_N
|
||||||
|
ice_N
|
||||||
|
important_A
|
||||||
|
industry_N
|
||||||
|
iron_N
|
||||||
|
king_N
|
||||||
|
knee_N
|
||||||
|
know_V2
|
||||||
|
lake_N
|
||||||
|
lamp_N
|
||||||
|
leaf_N
|
||||||
|
learn_V2
|
||||||
|
leather_N
|
||||||
|
leave_V2
|
||||||
|
left_Ord
|
||||||
|
leg_N
|
||||||
|
lie_V
|
||||||
|
like_V2
|
||||||
|
listen_V2
|
||||||
|
liver_N
|
||||||
|
long_A
|
||||||
|
lose_V2
|
||||||
|
louse_N
|
||||||
|
love_N
|
||||||
|
married_A2
|
||||||
|
moon_N
|
||||||
|
mother_N2
|
||||||
|
mountain_N
|
||||||
|
mouth_N
|
||||||
|
name_N
|
||||||
|
narrow_A
|
||||||
|
near_A
|
||||||
|
neck_N
|
||||||
|
newspaper_N
|
||||||
|
night_N
|
||||||
|
nose_N
|
||||||
|
number_N
|
||||||
|
oil_N
|
||||||
|
open_V2
|
||||||
|
paint_V2A
|
||||||
|
paper_N
|
||||||
|
peace_N
|
||||||
|
pen_N
|
||||||
|
person_N
|
||||||
|
planet_N
|
||||||
|
plastic_N
|
||||||
|
play_V2
|
||||||
|
policeman_N
|
||||||
|
priest_N
|
||||||
|
probable_AS
|
||||||
|
pull_V2
|
||||||
|
push_V2
|
||||||
|
put_V2
|
||||||
|
queen_N
|
||||||
|
question_N
|
||||||
|
radio_N
|
||||||
|
rain_N
|
||||||
|
rain_V0
|
||||||
|
religion_N
|
||||||
|
restaurant_N
|
||||||
|
right_Ord
|
||||||
|
road_N
|
||||||
|
rock_N
|
||||||
|
roof_N
|
||||||
|
root_N
|
||||||
|
rope_N
|
||||||
|
rotten_A
|
||||||
|
round_A
|
||||||
|
rub_V2
|
||||||
|
rubber_N
|
||||||
|
salt_N
|
||||||
|
sand_N
|
||||||
|
school_N
|
||||||
|
science_N
|
||||||
|
scratch_V2
|
||||||
|
seed_N
|
||||||
|
seek_V2
|
||||||
|
sew_V
|
||||||
|
sharp_A
|
||||||
|
shirt_N
|
||||||
|
shoe_N
|
||||||
|
shop_N
|
||||||
|
short_A
|
||||||
|
silver_N
|
||||||
|
sing_V
|
||||||
|
sister_N
|
||||||
|
sit_V
|
||||||
|
skin_N
|
||||||
|
sky_N
|
||||||
|
smell_V
|
||||||
|
smoke_N
|
||||||
|
smooth_A
|
||||||
|
snake_N
|
||||||
|
snow_N
|
||||||
|
sock_N
|
||||||
|
song_N
|
||||||
|
speak_V2
|
||||||
|
spit_V
|
||||||
|
split_V2
|
||||||
|
squeeze_V2
|
||||||
|
stab_V2
|
||||||
|
stand_V
|
||||||
|
steel_N
|
||||||
|
stick_N
|
||||||
|
stone_N
|
||||||
|
stop_V
|
||||||
|
stove_N
|
||||||
|
straight_A
|
||||||
|
student_N
|
||||||
|
stupid_A
|
||||||
|
suck_V2
|
||||||
|
sun_N
|
||||||
|
swell_V
|
||||||
|
switch8on_V2
|
||||||
|
table_N
|
||||||
|
tail_N
|
||||||
|
teacher_N
|
||||||
|
thick_A
|
||||||
|
think_V
|
||||||
|
throw_V2
|
||||||
|
tie_V2
|
||||||
|
tongue_N
|
||||||
|
tooth_N
|
||||||
|
turn_V
|
||||||
|
ugly_A
|
||||||
|
uncertain_A
|
||||||
|
university_N
|
||||||
|
village_N
|
||||||
|
vomit_V
|
||||||
|
war_N
|
||||||
|
wash_V2
|
||||||
|
watch_V2
|
||||||
|
wet_A
|
||||||
|
wide_A
|
||||||
|
wife_N
|
||||||
|
win_V2
|
||||||
|
wind_N
|
||||||
|
window_N
|
||||||
|
wing_N
|
||||||
|
wipe_V2
|
||||||
|
wonder_VQ
|
||||||
|
wood_N
|
||||||
|
worm_N
|
||||||
|
write_V2
|
||||||
|
|
||||||
|
--}
|
||||||
|
year_N = mkN "omwaka" "emyaka" MU_MI;
|
||||||
|
-- End of New Lexicon
|
||||||
oper
|
oper
|
||||||
aboutP = mkPrep "about" ;
|
aboutP = mkPrep "about" ;
|
||||||
atP = mkPrep "at" ;
|
atP = mkPrep "at" ;
|
||||||
|
|||||||
@@ -18,20 +18,14 @@ 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 ! Sg ! Complete; agr = AgP3 Sg cn.gender; nounCat = ComNoun}; --: CN -> NP ; -- milk
|
MassNP cn = {s = \\_ =>cn.s ! Sg ! Complete; agr = AgP3 Sg cn.gender; nounCat = ComNoun}; --: CN -> NP ; -- milk
|
||||||
--DetCN det cn = mkDeterminer det cn; --Should be nemed mkDetCN
|
--DetCN det cn = mkDeterminer det cn; --Should be named mkDetCN
|
||||||
DetCN det cn = mkDetCN det cn; -- the man
|
DetCN det cn = mkDetCN det cn; -- the man
|
||||||
{-
|
|
||||||
case det.pos of{
|
|
||||||
PreDeterminer =>{s = det.s ++ cn.s!det.ntype!det.num} ;
|
|
||||||
PostDeterminer=>{s = cn.s!det.ntype!det.num ++ mkNCParticles!SubjM!AgP3 det.num cn.nc + det.s}
|
|
||||||
}; --use a function because code is becoming long
|
|
||||||
-}
|
|
||||||
UseN noun = noun ;
|
UseN noun = noun ;
|
||||||
|
|
||||||
--Noun = {s : NounType=>Number => Str ; nc : NClass} ;
|
--Noun = {s : NounType=>Number => Str ; nc : NClass} ;
|
||||||
--AdjCN ap cn = {s=\\ntype, num=>cn.s!ntype!num ++ ap.s!AgP3 num cn.nc; nc=cn.nc};
|
--AdjCN ap cn = {s=\\ntype, num=>cn.s!ntype!num ++ ap.s!AgP3 num cn.nc; nc=cn.nc};
|
||||||
--AdjCN : AP -> CN -> CN ; -- big house
|
--AdjCN : AP -> CN -> CN ; -- big house
|
||||||
AdjCN ap cn =
|
AdjCN ap cn =
|
||||||
case <ap.position, ap.isProper, > of {
|
case <ap.position, ap.isProper, > of {
|
||||||
<Pre, True> => {
|
<Pre, True> => {
|
||||||
s = \\ num, ns =>ap.s ! AgP3 num cn.gender ++ cn.s ! num ! ns ;
|
s = \\ num, ns =>ap.s ! AgP3 num cn.gender ++ cn.s ! num ! ns ;
|
||||||
@@ -39,7 +33,7 @@ lin
|
|||||||
};
|
};
|
||||||
<Post, False> => case ap.isPrep of {
|
<Post, False> => case ap.isPrep of {
|
||||||
False => {
|
False => {
|
||||||
s = \\ num, ns => cn.s ! num ! ns ++ mkAdjPronIVClitic (AgP3 num cn.gender)
|
s = \\ num, ns => cn.s ! num ! ns ++ mkAdjClitic ! (AgP3 num cn.gender)
|
||||||
++ ap.s ! AgP3 Sg KI_BI;
|
++ ap.s ! AgP3 Sg KI_BI;
|
||||||
gender = cn.gender; nounCat = cn.nounCat
|
gender = cn.gender; nounCat = cn.nounCat
|
||||||
};
|
};
|
||||||
@@ -62,7 +56,8 @@ lin
|
|||||||
}; -- big house
|
}; -- big house
|
||||||
|
|
||||||
--RelCN : CN -> RS -> CN ; -- house that John bought
|
--RelCN : CN -> RS -> CN ; -- house that John bought
|
||||||
RelCN cn rs = {s=\\n,ns => cn.s !n ! ns ++ rs.s! (RF RObj); gender = cn.gender; nounCat = cn.nounCat};
|
--RelCN cn rs = {s=\\n,ns => cn.s !n ! ns ++ rs.s! (RF RObj); gender = cn.gender; nounCat = cn.nounCat};
|
||||||
|
RelCN cn rs = {s=\\n,ns => cn.s !n ! ns ++ mkRPsNoClitic !RObj ! (AgP3 n cn.gender) ++ rs.s! (RF RObj); gender = cn.gender; nounCat = cn.nounCat};
|
||||||
|
|
||||||
{-
|
{-
|
||||||
A predeterminer is any word that modifies a noun Phrase.
|
A predeterminer is any word that modifies a noun Phrase.
|
||||||
@@ -95,8 +90,8 @@ lin
|
|||||||
-- quantifier and an optional numeral can be discerned.
|
-- quantifier and an optional numeral can be discerned.
|
||||||
--DetQuant : Quant -> Num -> Det ; -- these five
|
--DetQuant : Quant -> Num -> Det ; -- these five
|
||||||
DetQuant quant num = case quant.isPron of {
|
DetQuant quant num = case quant.isPron of {
|
||||||
True => {s=[]; s2 = quant.s2; ntype = Incomplete; num = num.n; pos=Pre; doesAgree = quant.doesAgree};
|
False => {s=[]; s2 = quant.s2; ntype = Incomplete; num = num.n; pos=Pre; doesAgree = quant.doesAgree; numeralS = num.s; numeralExists=num.numeralExists;};
|
||||||
False => {s= quant.s.s ! Nom; s2 =\\_ =>[]; ntype = Complete; num = num.n; pos=Pre; doesAgree = quant.doesAgree} --
|
True => {s= quant.s.s ! Nom; s2 =\\_ =>[]; ntype = Complete; num = num.n; pos=Pre; doesAgree = quant.doesAgree; numeralS = num.s; numeralExists=num.numeralExists;} --
|
||||||
};
|
};
|
||||||
|
|
||||||
--DetQuantOrd : Quant -> Num -> Ord -> Det ; -- these five best
|
--DetQuantOrd : Quant -> Num -> Ord -> Det ; -- these five best
|
||||||
@@ -106,13 +101,15 @@ lin
|
|||||||
ntype = Complete;
|
ntype = Complete;
|
||||||
num = num.n;
|
num = num.n;
|
||||||
pos = Pre;
|
pos = Pre;
|
||||||
doesAgree = True
|
doesAgree = True;
|
||||||
|
numeralS = num.s;
|
||||||
|
numeralExists = num.numeralExists
|
||||||
};
|
};
|
||||||
|
|
||||||
NumSg = {s=\\_=>[]; n=Sg}; --Num
|
NumSg = {s=\\_=>[]; n=Sg; numeralExists=False}; --Num
|
||||||
NumPl = {s=\\_=>[]; n=Pl}; --Num
|
NumPl = {s=\\_=>[]; n=Pl; numeralExists=False}; --Num
|
||||||
--NumCard : Card -> Num ; -- one/five [explicit numeral]
|
--NumCard : Card -> Num ; -- one/five [explicit numeral]
|
||||||
NumCard card = {s =\\agr =>card.s ! agr; n=card.n };
|
NumCard card = {s =\\agr =>card.s ! agr; n=card.n; numeralExists=True; };
|
||||||
--Quant = {s : Res.Pronoun; s2 :Res.Agreement => Str; doesAgree : Bool; isPron: Bool} ;
|
--Quant = {s : Res.Pronoun; s2 :Res.Agreement => Str; doesAgree : Bool; isPron: Bool} ;
|
||||||
IndefArt = {s={s=\\_=>[]; third = \\_,_=>[];agr = AgrNo }; s2 = \\_=>[]; doesAgree = False; isPron=False};
|
IndefArt = {s={s=\\_=>[]; third = \\_,_=>[];agr = AgrNo }; s2 = \\_=>[]; doesAgree = False; isPron=False};
|
||||||
DefArt = {s={s =\\_=>[]; third = \\_,_=>[]; agr = AgrNo }; s2 = \\_=>[]; doesAgree = False; isPron = False}; -- noun with initial vowel
|
DefArt = {s={s =\\_=>[]; third = \\_,_=>[]; agr = AgrNo }; s2 = \\_=>[]; doesAgree = False; isPron = False}; -- noun with initial vowel
|
||||||
@@ -151,7 +148,9 @@ lin
|
|||||||
ntype = dap.ntype ;
|
ntype = dap.ntype ;
|
||||||
num = dap.num ;
|
num = dap.num ;
|
||||||
pos = dap.pos;
|
pos = dap.pos;
|
||||||
doesAgree= True
|
doesAgree= True;
|
||||||
|
numeralS = dap.numeralS;
|
||||||
|
numeralExists=dap.numeralExists;
|
||||||
};
|
};
|
||||||
|
|
||||||
--DetDAP : Det -> DAP ; -- this (or that)
|
--DetDAP : Det -> DAP ; -- this (or that)
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ oper
|
|||||||
mkV3 = overload {
|
mkV3 = overload {
|
||||||
mkV3 : Str -> Verb3 = \root ->mkV2 root ** {comp2 =[]};
|
mkV3 : Str -> Verb3 = \root ->mkV2 root ** {comp2 =[]};
|
||||||
mkV3 : Str -> Str ->Str -> Verb3 = \root ,s1,s2 ->mkV2 root s1 s2 ** {comp2 =[]};
|
mkV3 : Str -> Str ->Str -> Verb3 = \root ,s1,s2 ->mkV2 root s1 s2 ** {comp2 =[]};
|
||||||
|
--mkV3 : Str -> Str ->Str ->Str ->Verb3 =\root, s1, s2, prep
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -62,6 +62,7 @@ lin
|
|||||||
--UttAP : AP -> Utt ; -- fine
|
--UttAP : AP -> Utt ; -- fine
|
||||||
--UttInterj : Interj -> Utt ; -- alas
|
--UttInterj : Interj -> Utt ; -- alas
|
||||||
UttInterj interj = let agr = AgMUBAP2 Pl in {s= mkObjClitic agr ++ interj.s};
|
UttInterj interj = let agr = AgMUBAP2 Pl in {s= mkObjClitic agr ++ interj.s};
|
||||||
|
|
||||||
{-
|
{-
|
||||||
--1 Phrase: Phrases and Utterances
|
--1 Phrase: Phrases and Utterances
|
||||||
|
|
||||||
|
|||||||
@@ -61,34 +61,34 @@ lin
|
|||||||
whichRel = RF RSubj;
|
whichRel = RF RSubj;
|
||||||
};
|
};
|
||||||
|
|
||||||
--RelSlash : RP -> ClSlash -> RCl ; -- whom John loves
|
--RelSlash : RP -> ClSlash -> RCl ; -- whom John loves
|
||||||
RelSlash rp clSlash =
|
RelSlash rp clSlash =
|
||||||
let comp = case clSlash.complType of{
|
let comp = case clSlash.complType of{
|
||||||
Ap => clSlash.ap;
|
Ap => clSlash.ap;
|
||||||
Adverbial => clSlash.adv;
|
Adverbial => clSlash.adv;
|
||||||
AdverbialVerb => clSlash.adV;
|
AdverbialVerb => clSlash.adV;
|
||||||
_ => []
|
_ => []
|
||||||
};
|
};
|
||||||
isCompApStem = case clSlash.complType of{
|
isCompApStem = case clSlash.complType of{
|
||||||
Adverbial => True;
|
Adverbial => True;
|
||||||
_ => False
|
_ => False
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
s = clSlash.s;
|
s = clSlash.s;
|
||||||
agr = AgrYes clSlash.subjAgr;
|
agr = AgrYes clSlash.subjAgr;
|
||||||
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;
|
isPresBlank = clSlash.isPresBlank;
|
||||||
isPerfBlank = clSlash.isPerfBlank;
|
isPerfBlank = clSlash.isPerfBlank;
|
||||||
compl = comp;
|
compl = comp;
|
||||||
isCompApStem = isCompApStem;
|
isCompApStem = isCompApStem;
|
||||||
whichRel = RF RObj;
|
whichRel = RF RObj;
|
||||||
};
|
};
|
||||||
|
|
||||||
{-
|
{-
|
||||||
--1 Relative clauses and pronouns
|
--1 Relative clauses and pronouns
|
||||||
|
|||||||
@@ -64,11 +64,13 @@ param
|
|||||||
PrepForm = Form1 | Form2; -- omu and omuri, aha, ahari
|
PrepForm = Form1 | Form2; -- omu and omuri, aha, ahari
|
||||||
-- for Extra Tenses not implemented
|
-- for Extra Tenses not implemented
|
||||||
-- would be better if I had alliases
|
-- would be better if I had alliases
|
||||||
TensesExtra = RemotePast | ImmediatePast | RemoteFuture;
|
Tenses = RemotePast|NearPast | ImmediatePast |ExPres|NearFut |RemoteFut;
|
||||||
|
|
||||||
-- for Extra Aspects not implemented
|
-- for Extra Aspects not implemented
|
||||||
-- would be better if I had alliases
|
-- would be better if I had alliases
|
||||||
Aspect = Performative | Perfect | Resultative | Retrospective | Habitual | Progressive | Persitive;
|
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
|
||||||
@@ -525,7 +527,7 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
--Adjective : Type = {s : Str ; post : Str; isPre : Bool; isProper : Bool; isPrep: Bool};
|
--Adjective : Type = {s : Str ; post : Str; isPre : Bool; isProper : Bool; isPrep: Bool};
|
||||||
Adjective : Type = {s : Str ; position : Position; isProper : Bool; isPrep: Bool};
|
Adjective : Type = {s : Str ; position : Position; isProper : Bool; isPrep: Bool};
|
||||||
mkAdjective: Str -> Position -> Bool -> Bool -> Adjective = \ a , pos, isProper, isPrep ->
|
mkAdjective: Str -> Position -> Bool -> Bool -> Adjective = \ a , pos, isProper, isPrep ->
|
||||||
{ s = a ; position = pos ; isPre = True; isProper = isProper; isPrep = isPrep};
|
{ s = a ; position = pos ; isPre = False; isProper = isProper; isPrep = isPrep};
|
||||||
|
|
||||||
{-
|
{-
|
||||||
TO DO:
|
TO DO:
|
||||||
@@ -642,6 +644,7 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
AgP3 Pl (KA_BU | RU_BU) => mkClitic "obu" ;
|
AgP3 Pl (KA_BU | RU_BU) => mkClitic "obu" ;
|
||||||
AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "ebi" ;
|
AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "ebi" ;
|
||||||
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "aga";
|
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "aga";
|
||||||
|
AgP3 Sg ZERO_MA => mkClitic "aga";
|
||||||
AgP3 ( Pl) HA => mkClitic "aha" ; -- of place HA
|
AgP3 ( Pl) HA => mkClitic "aha" ; -- of place HA
|
||||||
AgP3 ( Pl) MU => mkClitic "omu" ; -- of place MU
|
AgP3 ( Pl) MU => mkClitic "omu" ; -- of place MU
|
||||||
AgP3 ( Pl) KU => mkClitic "oku" ; -- of place KU
|
AgP3 ( Pl) KU => mkClitic "oku" ; -- of place KU
|
||||||
@@ -661,6 +664,76 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
_ => mkClitic "XXXThisThese" -- error checking for any case not catered for
|
_ => mkClitic "XXXThisThese" -- error checking for any case not catered for
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
-- TThis is for demonstrative pronouns which can also be use as Quantifiers
|
||||||
|
-- These are self-standing
|
||||||
|
-- How can it be done without code repeation?
|
||||||
|
mkThisNoClitic = table{
|
||||||
|
AgMUBAP1 Sg => "ogu";
|
||||||
|
AgMUBAP1 Pl => "aba" ;
|
||||||
|
AgMUBAP2 Sg => "ogu"; --probably an error check your grammar book
|
||||||
|
AgMUBAP2 Pl => "aba" ;
|
||||||
|
AgP3 Sg MU_BA => "ogu";
|
||||||
|
AgP3 Pl MU_BA => "aba" ;
|
||||||
|
AgP3 Pl ZERO_BU => "obu" ;
|
||||||
|
AgP3 Sg BU_MA => "obu" ;
|
||||||
|
AgP3 Pl (KA_BU | RU_BU) => "obu" ;
|
||||||
|
AgP3 Pl (KI_BI | ZERO_BI) => "ebi" ;
|
||||||
|
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => "aga";
|
||||||
|
AgP3 Sg ZERO_MA => "aga";
|
||||||
|
AgP3 ( Pl) HA => "aha" ; -- of place HA
|
||||||
|
AgP3 ( Pl) MU => "omu" ; -- of place MU
|
||||||
|
AgP3 ( Pl) KU => "oku" ; -- of place KU
|
||||||
|
AgP3 Sg (I_ZERO | I_MA | RI_MA) => "eri" ;
|
||||||
|
AgP3 Sg (KA_ZERO | KA_BU) => "aka" ;
|
||||||
|
AgP3 Sg KI_BI => "eki" ;
|
||||||
|
AgP3 Sg (KU_ZERO | KU_MA) => "oku" ;
|
||||||
|
AgP3 Sg (MU_MI | MU_ZERO) => "ogu" ;
|
||||||
|
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => "oru" ;
|
||||||
|
AgP3 Pl (ZERO_TU | KA_TU) => "otu" ;
|
||||||
|
AgP3 Sg (ZERO_ZERO | N_N) => "egi" ;
|
||||||
|
AgP3 Pl ZERO_MI => "egi" ;
|
||||||
|
AgP3 Pl MU_MI => "egi";
|
||||||
|
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) => "ezi" ;
|
||||||
|
AgP3 Sg GU_GA => "ogu" ;
|
||||||
|
AgP3 Pl GU_GA => "aga" ;
|
||||||
|
_ => "XXXThisThese" -- error checking for any case not catered for
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
mkAdjClitic = table{
|
||||||
|
AgMUBAP1 Sg => "ogu";
|
||||||
|
AgMUBAP1 Pl => "aba" ;
|
||||||
|
AgMUBAP2 Sg => "ogu"; --probably an error check your grammar book
|
||||||
|
AgMUBAP2 Pl => "aba" ;
|
||||||
|
AgP3 Sg MU_BA => "ogu";
|
||||||
|
AgP3 Pl MU_BA => "aba" ;
|
||||||
|
AgP3 Pl ZERO_BU => "obu" ;
|
||||||
|
AgP3 Sg BU_MA => "obu" ;
|
||||||
|
AgP3 Pl (KA_BU | RU_BU) => "obu" ;
|
||||||
|
AgP3 Pl (KI_BI | ZERO_BI) => "ebi" ;
|
||||||
|
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => "aga";
|
||||||
|
AgP3 Sg ZERO_MA => "aga";
|
||||||
|
AgP3 ( Pl) HA => "aha" ; -- of place HA
|
||||||
|
AgP3 ( Pl) MU => "omu" ; -- of place MU
|
||||||
|
AgP3 ( Pl) KU => "oku" ; -- of place KU
|
||||||
|
AgP3 Sg (I_ZERO | I_MA | RI_MA) => "eri" ;
|
||||||
|
AgP3 Sg (KA_ZERO | KA_BU) => "aka" ;
|
||||||
|
AgP3 Sg KI_BI => "eki" ;
|
||||||
|
AgP3 Sg (KU_ZERO | KU_MA) => "oku" ;
|
||||||
|
AgP3 Sg (MU_MI | MU_ZERO) => "ogu" ;
|
||||||
|
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => "oru" ;
|
||||||
|
AgP3 Pl (ZERO_TU | KA_TU) => "otu" ;
|
||||||
|
AgP3 Sg (ZERO_ZERO | N_N) => "en" ;
|
||||||
|
AgP3 Pl ZERO_MI => "egi" ;
|
||||||
|
AgP3 Pl MU_MI => "egi";
|
||||||
|
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) => "ezi" ;
|
||||||
|
AgP3 Sg GU_GA => "ogu" ;
|
||||||
|
AgP3 Pl GU_GA => "aga" ;
|
||||||
|
_ => "XXXThisThese" -- 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?
|
||||||
@@ -744,6 +817,7 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
--AgP3 Pl (KA_BU | RU_BU) => mkClitic "obu" ;
|
--AgP3 Pl (KA_BU | RU_BU) => mkClitic "obu" ;
|
||||||
--AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "ebi" ;
|
--AgP3 Pl (KI_BI | ZERO_BI) => mkClitic "ebi" ;
|
||||||
--AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "aga";
|
--AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => mkClitic "aga";
|
||||||
|
AgP3 Sg ZERO_MA => mkClitic "agwo";
|
||||||
AgP3 (Sg ) HA => mkClitic "aho" ; -- of place HA
|
AgP3 (Sg ) HA => mkClitic "aho" ; -- of place HA
|
||||||
AgP3 (Sg ) MU => mkClitic "omwo" ; -- of place MU
|
AgP3 (Sg ) MU => mkClitic "omwo" ; -- of place MU
|
||||||
AgP3 (Sg ) KU => mkClitic "okwo" ; -- of place KU
|
AgP3 (Sg ) KU => mkClitic "okwo" ; -- of place KU
|
||||||
@@ -960,6 +1034,71 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mkRPsNoClitic : RCase => Agreement =>Str = table{
|
||||||
|
RSubj => table {
|
||||||
|
AgMUBAP1 Sg => "o";
|
||||||
|
AgMUBAP1 Pl => "aba" ;
|
||||||
|
AgMUBAP2 Sg => "o";
|
||||||
|
AgMUBAP2 Pl => "aba" ;
|
||||||
|
AgP3 Sg MU_BA => "o";
|
||||||
|
AgP3 Pl MU_BA => "aba" ;
|
||||||
|
AgP3 Pl ZERO_BU => "obu" ;
|
||||||
|
AgP3 Sg BU_MA => "obu" ;
|
||||||
|
AgP3 Pl (KA_BU | RU_BU) => "obu" ;
|
||||||
|
AgP3 Pl (KI_BI | ZERO_BI) => "ebi" ;
|
||||||
|
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => "aga";
|
||||||
|
AgP3 (Sg ) HA => "aha" ; -- of place HA
|
||||||
|
AgP3 (Sg ) MU => "aha" ; -- of place MU
|
||||||
|
AgP3 (Sg ) KU => "e" ; -- of place KU
|
||||||
|
AgP3 Sg (I_ZERO | I_MA | RI_MA) => "eri" ;
|
||||||
|
AgP3 Sg (KA_ZERO | KA_BU) => "aka" ;
|
||||||
|
AgP3 Sg KI_BI => "eki" ;
|
||||||
|
AgP3 Sg (KU_ZERO | KU_MA) => "oku" ;
|
||||||
|
AgP3 Sg (MU_MI | MU_ZERO) => "ogu" ;
|
||||||
|
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => "oru" ;
|
||||||
|
AgP3 Pl (ZERO_TU | KA_TU) => "otu" ;
|
||||||
|
AgP3 Sg (ZERO_ZERO | N_N) => "e" ;
|
||||||
|
AgP3 Pl ZERO_MI => "e" ;
|
||||||
|
AgP3 Pl MU_MI => "e";
|
||||||
|
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) => "ezi" ;
|
||||||
|
AgP3 Sg GU_GA => "ogu" ;
|
||||||
|
AgP3 Pl GU_GA => "aga" ;
|
||||||
|
_ => "XXXThat" -- error checking for any case not catered for
|
||||||
|
|
||||||
|
};
|
||||||
|
_ => table {
|
||||||
|
AgMUBAP1 Sg => "ou";
|
||||||
|
AgMUBAP1 Pl => "abu" ; --note: abu or abi is used. GF does not allow free variation. However, abu is more natural
|
||||||
|
AgMUBAP2 Sg => "ou"; --probably an error check your grammar book
|
||||||
|
AgMUBAP2 Pl => "abu" ;
|
||||||
|
AgP3 Sg MU_BA => "o";
|
||||||
|
AgP3 Pl MU_BA => "abu" ;
|
||||||
|
AgP3 Pl ZERO_BU => "obu" ;
|
||||||
|
AgP3 Sg BU_MA => "obu" ;
|
||||||
|
AgP3 Pl (KA_BU | RU_BU) => "obu" ;
|
||||||
|
AgP3 Pl (KI_BI | ZERO_BI) => "ebi" ;
|
||||||
|
AgP3 Pl (ZERO_MA | KU_MA | RI_MA | I_MA | BU_MA) => "agu";
|
||||||
|
AgP3 (Sg ) HA => "ahu" ; -- of place HA
|
||||||
|
AgP3 (Sg ) MU => "ahu" ; -- of place MU
|
||||||
|
AgP3 (Sg ) KU => "ei" ; -- of place KU
|
||||||
|
AgP3 Sg (I_ZERO | I_MA | RI_MA) => "eri" ;
|
||||||
|
AgP3 Sg (KA_ZERO | KA_BU) => "aku" ;
|
||||||
|
AgP3 Sg KI_BI => "eki" ;
|
||||||
|
AgP3 Sg (KU_ZERO | KU_MA) => "oku" ;
|
||||||
|
AgP3 Sg (MU_MI | MU_ZERO) => "ogu" ;
|
||||||
|
AgP3 Sg (RU_ZERO | RU_BU | RU_MA| RU_N) => "oru" ;
|
||||||
|
AgP3 Pl (ZERO_TU | KA_TU) => "otu" ;
|
||||||
|
AgP3 Sg (ZERO_ZERO | N_N) => "ei" ;
|
||||||
|
AgP3 Pl ZERO_MI => "ei" ;
|
||||||
|
AgP3 Pl MU_MI => "ei";
|
||||||
|
AgP3 Pl (ZERO_ZERO | ZERO_N | N_N | RU_N) => "ezi" ;
|
||||||
|
AgP3 Sg GU_GA => "ogu" ;
|
||||||
|
AgP3 Pl GU_GA => "agu" ;
|
||||||
|
_ => mkClitic "XXXThat" -- error checking for any case not catered for
|
||||||
|
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
mkIPPref : Agreement =>Str = table{
|
mkIPPref : Agreement =>Str = table{
|
||||||
AgMUBAP1 Sg => mkClitic "o";
|
AgMUBAP1 Sg => mkClitic "o";
|
||||||
AgMUBAP1 Pl => mkClitic "ba" ;
|
AgMUBAP1 Pl => mkClitic "ba" ;
|
||||||
@@ -1034,7 +1173,7 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
4. Cardinal numbers
|
4. Cardinal numbers
|
||||||
6. Ordinal numbers
|
6. Ordinal numbers
|
||||||
-}
|
-}
|
||||||
Determiner : Type = {s : Str ; s2: Agreement=>Str; ntype : NounState ; num : Number ; pos : Position; doesAgree: Bool};
|
Determiner : Type = {s : Str ; s2: Agreement=>Str; ntype : NounState ; num : Number ; pos : Position; doesAgree: Bool; numeralS:Agreement=>Str; numeralExists : Bool};
|
||||||
mkDet : Str -> NounState -> Number -> Position -> Determiner
|
mkDet : Str -> NounState -> Number -> Position -> Determiner
|
||||||
= \ det, ns, num,pos ->
|
= \ det, ns, num,pos ->
|
||||||
{
|
{
|
||||||
@@ -1043,7 +1182,9 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
ntype = ns;
|
ntype = ns;
|
||||||
num = num;
|
num = num;
|
||||||
pos = pos;
|
pos = pos;
|
||||||
doesAgree = False
|
doesAgree = False;
|
||||||
|
numeralS = \\_ => []; -- A true determiner is not a quantifier
|
||||||
|
numeralExists = False;
|
||||||
};
|
};
|
||||||
|
|
||||||
-- Pronouns must have agreement because they are used
|
-- Pronouns must have agreement because they are used
|
||||||
@@ -1096,13 +1237,16 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
mkDetCN : Determiner -> Noun -> NounPhrase = \ det, cn ->
|
mkDetCN : Determiner -> Noun -> NounPhrase = \ det, cn ->
|
||||||
let subjClitic = mkSubjClitic (AgP3 det.num cn.gender)
|
let subjClitic = mkSubjClitic (AgP3 det.num cn.gender)
|
||||||
in
|
in
|
||||||
case <det.pos, det.num> of {
|
case <det.pos, det.num> of {
|
||||||
<Post, Pl> => {s = \\_=> subjClitic ++ cn.s!det.num! det.ntype ++ subjClitic ++ det.s; agr = AgP3 det.num cn.gender; nounCat = cn.nounCat};
|
<Post, Pl> => {s = \\_=> subjClitic ++ cn.s!det.num! det.ntype ++ subjClitic ++ det.s2 !AgP3 det.num cn.gender; agr = AgP3 det.num cn.gender; nounCat = cn.nounCat};
|
||||||
<Post, Sg> => {s = \\_=>cn.s!det.num! det.ntype ++ subjClitic ++ det.s; agr = AgP3 det.num cn.gender; nounCat = cn.nounCat};
|
<Post, Sg> => {s = \\_=>cn.s!det.num! det.ntype ++ subjClitic ++ det.s2 ! AgP3 det.num cn.gender; agr = AgP3 det.num cn.gender; nounCat = cn.nounCat};
|
||||||
<Pre, n> => { s =\\_ => det.s ++ cn.s !n ! det.ntype; agr = AgP3 det.num cn.gender; nounCat = cn.nounCat} --;
|
<Pre, n> => case det.numeralExists of {
|
||||||
|
False => { s =\\_ => det.s2 !(AgP3 det.num cn.gender) ++ cn.s !n ! Complete; agr = AgP3 det.num cn.gender; nounCat = cn.nounCat};
|
||||||
|
True => { s =\\_ => cn.s !n ! Complete ++ det.numeralS ! (AgP3 n cn.gender); agr = AgP3 det.num cn.gender; nounCat = cn.nounCat}
|
||||||
|
}
|
||||||
--<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 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -1351,7 +1495,7 @@ mkSubjPrefix : Agreement -> Str =\a ->case a of {
|
|||||||
glueGen: Agreement ->Str = \ a -> mkGenPrepNoIVClitic a ++ BIND ++ mkGenAdjSuffix a;
|
glueGen: Agreement ->Str = \ a -> mkGenPrepNoIVClitic a ++ BIND ++ mkGenAdjSuffix a;
|
||||||
|
|
||||||
--Number determining element
|
--Number determining element
|
||||||
Numer : Type = { s: Agreement => Str ; n : Number};
|
Numer : Type = { s: Agreement => Str ; n : Number; numeralExists:Bool};
|
||||||
|
|
||||||
--VPSlash : Type = VerbPhrase ** { c : Str };
|
--VPSlash : Type = VerbPhrase ** { c : Str };
|
||||||
VPSlash : Type = {
|
VPSlash : Type = {
|
||||||
|
|||||||
@@ -26,7 +26,7 @@ lin
|
|||||||
case <temp.t,temp.a, pol.p> of {
|
case <temp.t,temp.a, pol.p> of {
|
||||||
<Pres,Simul, Pos> => case cl.isPresBlank of {
|
<Pres,Simul, Pos> => case cl.isPresBlank of {
|
||||||
True => {s = subj ++ clitic ++ root ++ compl};
|
True => {s = subj ++ clitic ++ root ++ compl};
|
||||||
False => {s = subj ++ clitic ++ root ++ Predef.BIND ++ compl}
|
False => {s = subj ++ clitic ++ 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-}
|
||||||
<Pres,Simul, Neg> => case cl.isPresBlank of {
|
<Pres,Simul, Neg> => case cl.isPresBlank of {
|
||||||
@@ -46,32 +46,33 @@ lin
|
|||||||
|
|
||||||
|
|
||||||
<Past,Simul, Pos> => case cl.isPerfBlank of {
|
<Past,Simul, Pos> => case cl.isPerfBlank of {
|
||||||
True => {s = subj ++ clitic ++ "ka" ++ Predef.BIND ++ root ++ compl};
|
_ => {s = subj ++ clitic ++ "ka" ++ Predef.BIND ++ root ++ Predef.BIND ++ presRestOfVerb ++ compl}--;
|
||||||
False => {s = subj ++ clitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
--False => {s = subj ++ clitic ++ "ka" ++ 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> => case cl.isPerfBlank of {
|
<Past,Simul, Neg> => case cl.isPerfBlank of {
|
||||||
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ root ++ compl};
|
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ Predef.BIND ++ "ra" ++
|
||||||
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++
|
Predef.BIND ++ root ++ Predef.BIND ++ "ire" ++ compl};
|
||||||
root ++ pastRestOfVerb ++ compl}
|
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "ra" ++ Predef.BIND ++
|
||||||
|
root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
||||||
};
|
};
|
||||||
|
|
||||||
<Past,Anter, Pos> => case cl.isPerfBlank of {
|
<Past,Anter, Pos> => case cl.isPerfBlank of {
|
||||||
True => {s = subj ++ clitic ++ "kaba" ++Predef.BIND ++ clitic ++
|
True => {s = subj ++ clitic ++ "kaba" ++Predef.BIND ++ clitic ++
|
||||||
root ++ compl};
|
root ++ Predef.BIND ++ "ire"++ compl};
|
||||||
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "a" ++ Predef.BIND ++
|
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++
|
||||||
root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
||||||
};
|
};
|
||||||
<Past,Anter, Neg> =>case cl.isPerfBlank of {
|
<Past,Anter, Neg> =>case cl.isPerfBlank of {
|
||||||
True => {s = subj ++ clitic ++ "ka" ++Predef.BIND ++ clitic ++
|
True => {s = subj ++ clitic ++ "ka" ++Predef.BIND ++ clitic ++
|
||||||
root ++ compl};
|
root ++ Predef.BIND ++ "ire"++ compl};
|
||||||
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "taa" ++ Predef.BIND ++
|
False => {s = subj ++ clitic ++ "kaba" ++ clitic ++ "ta" ++ Predef.BIND ++
|
||||||
root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
||||||
};
|
};
|
||||||
|
|
||||||
<Fut,Simul, Pos> => case cl.isPresBlank of {
|
<Fut,Simul, Pos> => case cl.isPresBlank of {
|
||||||
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za ku" ++ Predef.BIND ++ --choice of za over ija
|
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za ku" ++ Predef.BIND ++ --choice of za over ija
|
||||||
root ++ compl};
|
root ++ "a" ++ compl};
|
||||||
False => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za ku" ++ Predef.BIND ++ --choice of za over ija
|
False => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za ku" ++ Predef.BIND ++ --choice of za over ija
|
||||||
root ++ Predef.BIND ++ presRestOfVerb ++ compl}
|
root ++ Predef.BIND ++ presRestOfVerb ++ compl}
|
||||||
};
|
};
|
||||||
@@ -79,23 +80,23 @@ lin
|
|||||||
|
|
||||||
{-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> => case cl.isPresBlank of {
|
<Fut,Simul, Neg> => case cl.isPresBlank of {
|
||||||
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "kuza ku" ++ Predef.BIND ++
|
True => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "raaza ku" ++ Predef.BIND ++
|
||||||
root ++ compl};
|
root ++ compl};
|
||||||
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "kuza ku" ++ Predef.BIND ++
|
False => {s = subj ++ "ti" ++ Predef.BIND ++ clitic ++ "raaza ku" ++ Predef.BIND ++
|
||||||
root ++ BIND ++ presRestOfVerb ++ compl}
|
root ++ BIND ++ presRestOfVerb ++ compl}
|
||||||
};
|
};
|
||||||
<Fut,Anter, Pos> => case cl.isPerfBlank of {
|
<Fut,Anter, Pos> => case cl.isPerfBlank of {
|
||||||
True => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za kuba" ++ Predef.BIND ++ clitic ++ --choice of za over ija
|
True => {s = subj ++ Predef.BIND ++clitic ++ "raaba" ++ clitic ++ --choice of za over ija
|
||||||
root ++ Predef.BIND ++ "ire" ++ compl};
|
root ++ Predef.BIND ++ "ire" ++ compl};
|
||||||
False => {s = subj ++ "ni" ++ Predef.BIND ++clitic ++ "za kuba" ++ Predef.BIND ++ clitic ++ --choice of za over ija
|
False => {s = subj ++ Predef.BIND ++clitic ++ "raaba" ++ clitic ++ --choice of za over ija
|
||||||
root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
||||||
};
|
};
|
||||||
|
|
||||||
<Fut,Anter, Neg> => case cl.isPerfBlank of {
|
<Fut,Anter, Neg> => case cl.isPerfBlank of {
|
||||||
True => {s = subj ++ "ni" ++ Predef.BIND ++ clitic ++ "za kuba" ++ clitic ++ Predef.BIND ++
|
True => {s = subj ++ Predef.BIND ++ clitic ++ "raaba " ++ clitic ++ "ta"++ Predef.BIND ++
|
||||||
root ++ "ire" ++ compl};
|
root ++ "ire" ++ compl};
|
||||||
False => {s = subj ++ "ni" ++ Predef.BIND ++ clitic ++ "za kuba" ++ clitic ++ "taka" ++ Predef.BIND ++
|
False => {s = subj ++ Predef.BIND ++ clitic ++ "raaba " ++ clitic ++ "ta" ++ Predef.BIND ++
|
||||||
root ++ pastRestOfVerb ++ compl}
|
root ++ Predef.BIND ++ pastRestOfVerb ++ compl}
|
||||||
};
|
};
|
||||||
<Cond,Simul, Pos> => case cl.isPresBlank of {
|
<Cond,Simul, Pos> => case cl.isPresBlank of {
|
||||||
True => {s = subj ++ clitic ++ "kaa" ++Predef.BIND ++ root ++ compl};
|
True => {s = subj ++ clitic ++ "kaa" ++Predef.BIND ++ root ++ compl};
|
||||||
@@ -142,8 +143,8 @@ lin
|
|||||||
_ => mkRPs!RSubj! AgP3 Sg MU_BA
|
_ => mkRPs!RSubj! AgP3 Sg MU_BA
|
||||||
};
|
};
|
||||||
robjClitic = case rcl.agr of {
|
robjClitic = case rcl.agr of {
|
||||||
AgrYes a => mkRPs!RObj! a;
|
AgrYes a => mkRPsNoClitic!RObj! a;
|
||||||
_ => mkRPs!RObj! AgP3 Sg MU_BA
|
_ => mkRPsNoClitic!RObj! AgP3 Sg MU_BA
|
||||||
};
|
};
|
||||||
presSimul = vMorphs ! VFPres; --this is not delivering the string
|
presSimul = vMorphs ! VFPres; --this is not delivering the string
|
||||||
presAnt = vMorphs ! VFPastPart; --this is not delivering the string
|
presAnt = vMorphs ! VFPastPart; --this is not delivering the string
|
||||||
@@ -186,7 +187,7 @@ lin
|
|||||||
<Past,Simul, Pos> => {
|
<Past,Simul, Pos> => {
|
||||||
s = table {
|
s = table {
|
||||||
RF RSubj => subj ++ rsubjClitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl;
|
RF RSubj => subj ++ rsubjClitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl;
|
||||||
RF RObj => subj ++ robjClitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl;
|
RF RObj => robjClitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl;
|
||||||
Such_That => "kugira ngu" ++ subjClitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl
|
Such_That => "kugira ngu" ++ subjClitic ++ root ++ Predef.BIND ++ pastRestOfVerb ++ compl
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -279,8 +280,9 @@ lin
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
PredVP np vp = case vp.isCompApStem of{
|
|
||||||
False => {
|
PredVP np vp = case <vp.isCompApStem, vp.containsAdV> of {
|
||||||
|
<False,True> => {
|
||||||
s = np.s ! Nom; --: NP -> VP -> Cl ; -- John walks / John does not walk
|
s = np.s ! Nom; --: NP -> VP -> Cl ; -- John walks / John does not walk
|
||||||
subjAgr = np.agr;
|
subjAgr = np.agr;
|
||||||
pres = vp.pres;
|
pres = vp.pres;
|
||||||
@@ -297,9 +299,10 @@ lin
|
|||||||
pastPart = mkVerbPastPart vp.root; -- subject
|
pastPart = mkVerbPastPart vp.root; -- subject
|
||||||
-}
|
-}
|
||||||
--root = vp.root ;
|
--root = vp.root ;
|
||||||
compl = vp.comp
|
compl = vp.adV
|
||||||
};
|
};
|
||||||
True => {
|
|
||||||
|
<_, _> => {
|
||||||
s = np.s ! Nom; --: NP -> VP -> Cl ; -- John walks / John does not walk
|
s = np.s ! Nom; --: NP -> VP -> Cl ; -- John walks / John does not walk
|
||||||
subjAgr = np.agr;
|
subjAgr = np.agr;
|
||||||
pres = vp.pres;
|
pres = vp.pres;
|
||||||
@@ -319,8 +322,6 @@ lin
|
|||||||
compl = mkSubjClitic np.agr ++ 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
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
Note: It seems mkSubjClitic comes with a Predef.BIND already
|
Note: It seems mkSubjClitic comes with a Predef.BIND already
|
||||||
@@ -382,9 +383,25 @@ lin
|
|||||||
--AdvSlash : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today
|
--AdvSlash : ClSlash -> Adv -> ClSlash ; -- (whom) he sees today
|
||||||
--SlashPrep : Cl -> Prep -> ClSlash ; -- (with whom) he walks
|
--SlashPrep : Cl -> Prep -> ClSlash ; -- (with whom) he walks
|
||||||
--SlashVS : NP -> VS -> SSlash -> ClSlash ; -- (whom) she says that he loves
|
--SlashVS : NP -> VS -> SSlash -> ClSlash ; -- (whom) she says that he loves
|
||||||
|
--2 Embedded sentences
|
||||||
|
|
||||||
|
-- Sentences, questions, and infinitival phrases can be used as
|
||||||
|
-- subjects and (adverbial) complements.
|
||||||
|
|
||||||
|
--EmbedS : S -> SC ; -- that she goes
|
||||||
|
--EmbedQS : QS -> SC ; -- who goes
|
||||||
|
--EmbedVP : VP -> SC ; -- to go
|
||||||
|
EmbedVP vp = case vp.isPresBlank of {
|
||||||
|
TRUE => {s= "oku" ++ Predef.BIND ++ vp.s ++ BIND ++ "a"};
|
||||||
|
_ => {s= "oku" ++ Predef.BIND ++ vp.s ++ BIND ++ vp.pres}
|
||||||
|
};
|
||||||
|
|
||||||
|
-- An adverb can be added to the beginning of a sentence, either with comma ("externally")
|
||||||
|
-- or without:
|
||||||
|
|
||||||
|
--AdvS : Adv -> S -> S ; -- then I will go home
|
||||||
|
--ExtAdvS : Adv -> S -> S ; -- next week, I will go home
|
||||||
|
ExtAdvS adv s = {s=adv.s ++ "," ++ s.s};
|
||||||
|
|
||||||
|
|
||||||
{-
|
{-
|
||||||
|
|||||||
@@ -15,19 +15,20 @@ concrete StructuralCgg of Structural = CatCgg **
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
--Determiner : Type = {s : Str ; s2: Agreement=>Str; ntype : NounState ; num : Number ; pos : Position; doesAgree: Bool };
|
--Determiner : Type = {s : Str ; s2: Agreement=>Str; ntype : NounState ; num : Number ; pos : Position; doesAgree: Bool };
|
||||||
a_Det = {s =[] ; s2 = \\_ => []; ntype = Complete; num = Sg; pos = Pre; doesAgree = False}; --: Det ; indefinite singular ---s
|
a_Det = {s =[] ; s2 = \\_ => []; ntype = Complete; num = Sg; pos = Pre; doesAgree = False; numeralS=\\_=>[]; numeralExists = False}; --: Det ; indefinite singular ---s
|
||||||
aPl_Det = {s =[]; s2= \\_ => []; ntype = Complete; num = Pl; pos = Pre; doesAgree = False}; -- : Det ;indefinite plural ---s
|
aPl_Det = {s =[]; s2= \\_ => []; ntype = Complete; num = Pl; pos = Pre; doesAgree = False; numeralS=\\_=>[]; numeralExists = False}; -- : Det ;indefinite plural ---s
|
||||||
the_Det = {s =[]; s2= \\_ => []; ntype = Complete; num = Sg; pos = Pre; doesAgree = False}; --: Det ; -- definite singular ---s thePl_Det = {s =[]; ntype = Complete; num = Pl; pos = PreDeterminer}; --: Det ;definite plural ---s
|
the_Det = {s =[]; s2= \\_ => []; ntype = Complete; num = Sg; pos = Pre; doesAgree = False; numeralS=\\_=>[]; numeralExists = False}; --: Det ; -- definite singular ---s thePl_Det = {s =[]; ntype = Complete; num = Pl; pos = PreDeterminer}; --: Det ;definite plural ---s
|
||||||
|
|
||||||
every_Det = {s ="buri"; s2 = \\_ => []; ntype=Incomplete; num=Sg; pos=Pre; doesAgree = False} ;
|
every_Det = {s ="buri"; s2 = \\_ => []; ntype=Incomplete; num=Sg; pos=Pre; doesAgree = False; numeralS=\\_=>[]; numeralExists = False} ;
|
||||||
few_Det = {s="kye"; s2 = \\_ => []; ntype =Complete; num=Pl; pos=Post; doesAgree = False} ;
|
few_Det = {s="kye"; s2 = \\_ => []; ntype =Complete; num=Pl; pos=Post; doesAgree = False; numeralS=\\_=>[]; numeralExists = False} ;
|
||||||
many_Det ={s="ingi"; s2 = \\_ => []; ntype =Complete; num=Pl; pos=Post; doesAgree = False} ;
|
many_Det ={s="ingi"; s2 = \\_ => []; ntype =Complete; num=Pl; pos=Post; doesAgree = False; numeralS=\\_=>[]; numeralExists = False} ;
|
||||||
|
|
||||||
i_Pron = {s = table{Gen => glueGen (AgMUBAP1 Sg); _=> mkSStand (AgMUBAP1 Sg)}; third = \\_,_=>[]; agr = AgrYes (AgMUBAP1 Sg)};--mkPron "nyowe" "nyowe" (AgMUBAP1 Sg);
|
i_Pron = {s = table{Gen => glueGen (AgMUBAP1 Sg); _=> mkSStand (AgMUBAP1 Sg)}; third = \\_,_=>[]; agr = AgrYes (AgMUBAP1 Sg)};--mkPron "nyowe" "nyowe" (AgMUBAP1 Sg);
|
||||||
youSg_Pron = {s = table{Gen => glueGen (AgMUBAP2 Sg); _=>mkSStand (AgMUBAP2 Sg)}; third = \\_,_=>[]; agr = AgrYes(AgMUBAP2 Sg)};--mkPron "iwe" "we" (AgMUBAP2 Sg);
|
youSg_Pron = {s = table{Gen => glueGen (AgMUBAP2 Sg); _=>mkSStand (AgMUBAP2 Sg)}; third = \\_,_=>[]; agr = AgrYes(AgMUBAP2 Sg)};--mkPron "iwe" "we" (AgMUBAP2 Sg);
|
||||||
he_Pron, she_Pron = {s = table{Gen => glueGen (AgP3 Sg MU_BA); _=>mkSStand (AgP3 Sg MU_BA)}; third = \\_,_=>[]; agr = AgrYes(AgP3 Sg MU_BA)};--mkPron "uwe" "uwe" (AgP3 Sg MU_BA);
|
he_Pron, she_Pron = {s = table{Gen => glueGen (AgP3 Sg MU_BA); _=>mkSStand (AgP3 Sg MU_BA)}; third = \\_,_=>[]; agr = AgrYes(AgP3 Sg MU_BA)};--mkPron "uwe" "uwe" (AgP3 Sg MU_BA);
|
||||||
we_Pron = {s = table{Gen => glueGen (AgMUBAP1 Pl); _=>mkSStand (AgMUBAP1 Pl)}; third = \\_,_=>[]; agr = AgrYes (AgMUBAP1 Pl)}; --mkPron "itwe" "itwe" (AgMUBAP1 Pl);
|
we_Pron = {s = table{Gen => glueGen (AgMUBAP1 Pl); _=>mkSStand (AgMUBAP1 Pl)}; third = \\_,_=>[]; agr = AgrYes (AgMUBAP1 Pl)}; --mkPron "itwe" "itwe" (AgMUBAP1 Pl);
|
||||||
youPl_Pron = {s = table{Gen => glueGen (AgMUBAP2 Pl); _=>mkSStand (AgMUBAP2 Pl)}; third = \\_,_=>[]; agr =AgrYes (AgMUBAP2 Pl)};--mkPron "imwe" "imwe" (AgMUBAP2 Pl); they_Pron = {s = table{Gen => glueGen AgP3 Pl MU_BA; _=>mkSStand (AgP3 Pl MU_BA)}; third = \\_,_=>[]; itP3Required=False};--mkPron "bo" "bo" (AgP3 Pl MU_BA);
|
youPl_Pron = {s = table{Gen => glueGen (AgMUBAP2 Pl); _=>mkSStand (AgMUBAP2 Pl)}; third = \\_,_=>[]; agr =AgrYes (AgMUBAP2 Pl)};--mkPron "imwe" "imwe" (AgMUBAP2 Pl); they_Pron = {s = table{Gen => glueGen AgP3 Pl MU_BA; _=>mkSStand (AgP3 Pl MU_BA)}; third = \\_,_=>[]; itP3Required=False};--mkPron "bo" "bo" (AgP3 Pl MU_BA);
|
||||||
|
they_Pron = {s = table{Gen => glueGen (AgP3 Pl MU_BA); _=>mkSStand (AgP3 Pl MU_BA)}; third = \\_,_=>[]; agr =AgrYes (AgP3 Pl MU_BA)};--mkPron "bo" "bo" (AgP3 Pl MU_BA);
|
||||||
-- default implementation Using KI_BI. Use mkmkGenPrepNoIVClitic and
|
-- default implementation Using KI_BI. Use mkmkGenPrepNoIVClitic and
|
||||||
it_Pron = {
|
it_Pron = {
|
||||||
s = \\_=>[];
|
s = \\_=>[];
|
||||||
@@ -97,7 +98,7 @@ lin
|
|||||||
n = Sg
|
n = Sg
|
||||||
};
|
};
|
||||||
|
|
||||||
have_V2 ={s= "ine"; pres=[]; perf =[]; isPresBlank = False;
|
have_V2 ={s= "in"; pres="e"; perf ="e"; isPresBlank = False;
|
||||||
isPerfBlank = False; morphs = mkVerbMorphs; comp = []; isRegular=False}; --: V2 ;
|
isPerfBlank = False; morphs = mkVerbMorphs; comp = []; isRegular=False}; --: V2 ;
|
||||||
|
|
||||||
{-
|
{-
|
||||||
@@ -145,7 +146,7 @@ lin
|
|||||||
that_Quant = {s={s = \\_=>[]; third =\\_,_=>[]; agr = AgrNo}; s2 = mkThat; doesAgree = True; isPron = False}; --: Quant ;
|
that_Quant = {s={s = \\_=>[]; third =\\_,_=>[]; agr = AgrNo}; s2 = mkThat; doesAgree = True; isPron = False}; --: Quant ;
|
||||||
this_Quant = {s={s = \\_=>[]; third =\\_,_=>[]; agr = AgrNo}; s2 = mkThis; doesAgree = True; isPron = False}; --: Quant ;
|
this_Quant = {s={s = \\_=>[]; third =\\_,_=>[]; agr = AgrNo}; s2 = mkThis; doesAgree = True; isPron = False}; --: Quant ;
|
||||||
|
|
||||||
no_Quant = {s ={s=\\_=>"tihariho";third =\\_,_=>[]; agr=AgrNo}; s2 =\\_=> []; doesAgree = False; isPron = False};--: Quant ;
|
no_Quant = {s ={s=\\_=>"tihariho";third =\\_,_=>[]; agr=AgrNo}; s2 =\\_=> "tihariho"; doesAgree = False; isPron = False};--: Quant ;
|
||||||
{-End of Quantifiers-}
|
{-End of Quantifiers-}
|
||||||
|
|
||||||
|
|
||||||
@@ -165,7 +166,7 @@ lin
|
|||||||
whatPl_IP = { s= "ki"; n = IPl; isVerbSuffix = True; requiresIPPrefix = False; aux=[]; endOfSentence = True} ; -- what (plural)
|
whatPl_IP = { s= "ki"; n = IPl; isVerbSuffix = True; requiresIPPrefix = False; aux=[]; endOfSentence = True} ; -- what (plural)
|
||||||
whatSg_IP = { s= "ki"; n = ISg; isVerbSuffix = True; requiresIPPrefix = False; aux=[]; endOfSentence = True}; --: IP ; -- what (singular)
|
whatSg_IP = { s= "ki"; n = ISg; isVerbSuffix = True; requiresIPPrefix = False; aux=[]; endOfSentence = True}; --: IP ; -- what (singular)
|
||||||
whoPl_IP = { s= "ha"; n = IPl; isVerbSuffix = True; requiresIPPrefix = False; aux="ni"; endOfSentence = True} ;--: IP ; -- who (plural)
|
whoPl_IP = { s= "ha"; n = IPl; isVerbSuffix = True; requiresIPPrefix = False; aux="ni"; endOfSentence = True} ;--: IP ; -- who (plural)
|
||||||
whoSg_IP = { s= "ha"; n = ISg; isVerbSuffix = True; requiresIPPrefix = False; aux=[]; endOfSentence = True}; --: IP ; -- who (singular)
|
whoSg_IP = { s= "ha"; n = ISg; isVerbSuffix = True; requiresIPPrefix = False; aux="ni"; 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; endOfSentence =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 ;
|
||||||
@@ -192,7 +193,9 @@ lin
|
|||||||
ntype = Complete;
|
ntype = Complete;
|
||||||
num = Sg;
|
num = Sg;
|
||||||
pos = Pre;
|
pos = Pre;
|
||||||
doesAgree = True
|
doesAgree = True;
|
||||||
|
numeralS=\\_=>[];
|
||||||
|
numeralExists = False
|
||||||
};
|
};
|
||||||
somePl_Det =
|
somePl_Det =
|
||||||
{
|
{
|
||||||
@@ -201,7 +204,9 @@ lin
|
|||||||
ntype = Complete;
|
ntype = Complete;
|
||||||
num = Pl;
|
num = Pl;
|
||||||
pos = Pre;
|
pos = Pre;
|
||||||
doesAgree = True
|
doesAgree = True;
|
||||||
|
numeralS=\\_=>[];
|
||||||
|
numeralExists = False
|
||||||
};--: Det ;
|
};--: Det ;
|
||||||
|
|
||||||
want_VV = {s = "yend"; pres="da"; perf = "zire"; isPresBlank = False;
|
want_VV = {s = "yend"; pres="da"; perf = "zire"; isPresBlank = False;
|
||||||
@@ -219,6 +224,8 @@ lin
|
|||||||
--somewhere_Adv : Adv ;
|
--somewhere_Adv : Adv ;
|
||||||
|
|
||||||
that_Subj = ss "ngu" ;
|
that_Subj = ss "ngu" ;
|
||||||
|
when_Subj = ss "obu";
|
||||||
|
because_Subj = ss "ahabwokuba";
|
||||||
|
|
||||||
--Adjective modifying Adverbs
|
--Adjective modifying Adverbs
|
||||||
almost_AdA = {s="haihi"; position=Pre}; --: AdA ;
|
almost_AdA = {s="haihi"; position=Pre}; --: AdA ;
|
||||||
|
|||||||
@@ -194,7 +194,7 @@ lin
|
|||||||
isCompApStem = False;
|
isCompApStem = False;
|
||||||
agr = AgrNo;
|
agr = AgrNo;
|
||||||
isRegular = vp.isRegular;
|
isRegular = vp.isRegular;
|
||||||
adv = [];
|
adv = adv.s;
|
||||||
containsAdv =True;
|
containsAdv =True;
|
||||||
adV =[];
|
adV =[];
|
||||||
containsAdV = False
|
containsAdV = False
|
||||||
|
|||||||
Reference in New Issue
Block a user