1
0
forked from GitHub/gf-core

refinements-2010-12-16

This commit is contained in:
virk.shafqat
2010-12-16 15:58:04 +00:00
parent 0b563f1fb7
commit 75fe9c2155
20 changed files with 270 additions and 217 deletions

View File

@@ -24,8 +24,9 @@ incomplete concrete CatHindustani of Cat =
---- Question
QCl = {s : CommonHindustani.VPHTense => Polarity => QForm => Str} ;
IP = {s: Case => Str ; g : Gender ; n : Number};
IDet = {s :Gender => Str ; n : Number} ;
IQuant = {s : Number => Str} ;
IDet = {s :Gender => Case => Str ; n : Number} ;
-- IQuant = {s : Number => Str} ;
IQuant = {s : Number => Gender => Case => Str} ;
---- Relative

View File

@@ -158,12 +158,12 @@ resource CommonHindustani = ParamX ** open Prelude,Predef in {
Adjective = { s: Number => Gender => Case => Degree => Str };
regAdjective : Str -> Adjective;
regAdjective x = case x of {
acch + ("a"|"aN") => mkAdjective x ("bht" ++ x) ("sab sE" ++ x) (acch + "E") ("bht" ++ acch + "E") ("sab sE" ++ acch + "E") (acch + "E") ("bht" ++ acch + "E") ("sab sE" ++ acch + "E")
(acch + "y") ("bht" ++ acch + "y") ("sab sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sab sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sab sE" ++ acch + "y")
(acch +"E") ("bht" ++ acch + "E") ("sab sE" ++ acch + "E") (acch + "E") ("bht" ++ acch + "E") ("sab sE" ++ acch + "E") (acch + "E") ("bht" ++ acch + "E") ("sab sE" ++ acch + "E")
(acch + "y") ("bht" ++ acch + "y") ("sab sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sab sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sab sE" ++ acch + "y");
acch + ("a"|"aN") => mkAdjective x ("bht" ++ x) ("sb sE" ++ x) (acch + "E") ("bht" ++ acch + "E") ("sb sE" ++ acch + "E") (acch + "E") ("bht" ++ acch + "E") ("sb sE" ++ acch + "E")
(acch + "y") ("bht" ++ acch + "y") ("sb sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sb sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sb sE" ++ acch + "y")
(acch +"E") ("bht" ++ acch + "E") ("sb sE" ++ acch + "E") (acch + "E") ("bht" ++ acch + "E") ("sb sE" ++ acch + "E") (acch + "E") ("bht" ++ acch + "E") ("sb sE" ++ acch + "E")
(acch + "y") ("bht" ++ acch + "y") ("sb sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sb sE" ++ acch + "y") (acch + "y") ("bht" ++ acch + "y") ("sb sE" ++ acch + "y");
_ => mkAdjective x x x x x x x x x
_ => mkAdjective x x x x x x x x x
x x x x x x x x x
x x x x x x x x x
x x x x x x x x x
@@ -259,6 +259,8 @@ resource CommonHindustani = ParamX ** open Prelude,Predef in {
VPTense VPFutr (Ag g n p) => {fin = copula CFuture n p g ; inf = v.s ! VF Subj p n g } ;
VPTense VPPerf (Ag g n p) => { fin = [] ; inf = v.s ! Root ++ cka g n } ;
VPStem => {fin = [] ; inf = v.s ! Root};
VPInf => {fin = v.s ! Inf_Obl ; inf = v.s ! Root}; -- for V2V like sonE ky altja krna , check if it is being used anywhere else
VPImp => {fin = v.s ! VF Subj Pers3_Near Pl Masc ; inf = v.s ! Root};
_ => {fin = [] ; inf = v.s ! Root}
};
obj = {s = [] ; a = defaultAgr} ;

View File

@@ -19,7 +19,7 @@ incomplete concrete NounHindustani of Noun =
} ;
PPartNP np v2 = {
s = \\c => v2.s ! VF Imperf Pers1 Sg Fem ++ np.s ! c ;
s = \\c => v2.s ! VF Perf (fromAgr np.a).p (fromAgr np.a).n (fromAgr np.a).g ++ np.s ! c ;
a = np.a
} ;

View File

@@ -14,7 +14,7 @@ incomplete concrete PhraseHindustani of Phrase =
UttIP ip = {s = ip.s ! Dir} ; --- Acc also
UttIAdv iadv = iadv ;
UttNP np = {s = np.s ! NPC Dir} ;
UttVP vp = {s = infVP False vp (agrP3 Masc Sg)} ;
UttVP vp = {s = vp.ad ++ infVP False vp (agrP3 Masc Sg) ++ vp.embComp} ;
UttAdv adv = {s = adv.s ! Masc} ;
UttCN cn = {s = cn.s ! Sg ! Dir};
UttCard n = n ;

View File

@@ -19,8 +19,8 @@ incomplete concrete QuestionHindustani of Question =
qp1 = qp.s ! Dir;
qp2 = qp.s ! Obl ++ nE
in { s = \\t,p,o => case t of {
VPImpPast => qp2 ++ cl.s ! t ! p ! ODir;
_ => qp1 ++ cl.s ! t ! p ! ODir
VPImpPast => case vp.subj of {VIntrans => qp1 ++ cl.s ! t ! p ! ODir; _ => qp2 ++ cl.s ! t ! p ! ODir};
_ => qp1 ++ cl.s ! t ! p ! ODir
}
};
QuestSlash ip slash =
@@ -46,7 +46,7 @@ incomplete concrete QuestionHindustani of Question =
}
};
PrepIP p ip = {s = ip.s ! Voc ++ p.s ! ip.g} ;
PrepIP p ip = {s = ip.s ! Obl ++ p.s ! ip.g} ;
AdvIP ip adv = {
s = \\c => adv.s ! ip.g ++ ip.s ! c ;
@@ -55,19 +55,19 @@ incomplete concrete QuestionHindustani of Question =
} ;
IdetCN idet cn = {
s = \\c => idet.s ! cn.g ++ cn.s ! idet.n ! c ;
s = \\c => idet.s ! cn.g ! c ++ cn.s ! idet.n ! c ;
g = cn.g;
n = idet.n;
} ;
IdetIP idet = {
s = \\_ => idet.s ! Masc ;
s = \\c => idet.s ! Masc ! c ;
n = idet.n;
g = Masc;
} ;
IdetQuant iqant num = {
s = \\g => iqant.s ! num.n ++ num.s ;
s = \\g,c => iqant.s ! num.n ! g ! c ++ num.s ;
n = num.n
} ;

View File

@@ -35,7 +35,7 @@ incomplete concrete RelativeHindustani of Relative =
} ;
RelSlash rp slash = {
s = \\t,p,o,agr => rp.s ! (giveNumber agr) ! Dir ++ slash.c2.s ++ slash.s ! t ! p ! o ;--case t of {
s = \\t,p,o,agr => rp.s ! (giveNumber agr) ! Obl ++ slash.c2.s ++ slash.s ! t ! p ! o ;--case t of {
-- VPImpPast => rp.s ! (giveNumber agr) Obl ++ slash.c2.s ++ slash.s ! t ! p ! o ;
-- _ => rp.s ! (giveNumber agr) Dir ++ slash.c2.s ++ slash.s ! t ! p ! o
-- };

View File

@@ -267,7 +267,7 @@ param
VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
VPPerfFutCont => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n } ;
VPSubj => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "xayd" }
VPSubj => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "Xayd" }
};
@@ -337,7 +337,7 @@ param
infVV : Bool -> VPH -> Str = \isAux,vp ->
case isAux of {False => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf ; True => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin } ;
infV2V : Bool -> VPH -> Str = \isAux,vp ->
case isAux of {False => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ vp.inf ++ "ky" ; True => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin ++ "ky"};
case isAux of {False => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPInf).fin ++ "ky" ; True => vp.obj.s ++ (vp.comp ! (toAgr Sg Pers1 Masc)) ++ (vp.s ! VPImp).fin ++ "ky"};
insertObject : NP -> VPHSlash -> VPH = \np,vps -> {

View File

@@ -34,7 +34,7 @@ incomplete concrete VerbHindustani of Verb = CatHindustani ** open CommonHindust
ReflVP v = insertObjPre (\\_ => RefPron) v ;
PassV2 v = predV v ; -- need to be fixed
CompAP ap ={s = \\a => ap.s ! giveNumber a ! giveGender a ! Dir ! Posit } ;
CompNP np = {s = \\_ => np.s ! NPObj} ;
CompNP np = {s = \\_ => np.s ! NPC Dir} ;
CompAdv adv = {s = \\a => adv.s ! giveGender a} ;
CompCN cn = {s = \\a => cn.s ! giveNumber a ! Dir} ;

View File

@@ -81,7 +81,7 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
VPPerfFutCont => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n } ;
VPSubj => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "ژاید" }
VPSubj => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "شاید" }
};

View File

@@ -16,7 +16,7 @@ concrete IdiomUrd of Idiom = CatUrd ** open Prelude,Predef, ResUrd,ParamX,Common
ExistNP np =
mkSClause "وہاں" (agrP3 (fromAgr np.a).g (fromAgr np.a).n)
(insertObj (\\_ => np.s ! NPC Obl) (predAux auxBe)) ;
(insertObj (\\_ => np.s ! NPC Dir) (predAux auxBe)) ;
ExistIP ip =
let cl = mkSClause ("وہاں" ++ ip.s ! Dir) (agrP3 ip.g ip.n) (predAux auxBe);
@@ -30,9 +30,10 @@ concrete IdiomUrd of Idiom = CatUrd ** open Prelude,Predef, ResUrd,ParamX,Common
-- ProgrVP vp = insertObj (\\a => vp.obj.s ++ vp.ad ++ vp.comp ! a ++ (vp.s ! VPStem).inf ++ raha (fromAgr a).g (fromAgr a).n ) (predAux auxBe) ;
ProgrVP vp = (predProg vp) ;
ImpPl1 vp = {s = "آو" ++ infVP True vp (agrP1 Masc Pl)} ;
ImpP3 np vp = {s = np.s!NPC Dir ++ "كو" ++ (vp.s ! VPImp ).inf ++ "دو"};
-- ImpPl1 vp = {s = "آو" ++ infVP True vp (agrP1 Masc Pl)} ; -- inf form is not used e.g Aw swna instead Aw swyyN (Imp.fin)
ImpPl1 vp = {s = "آو" ++ (vp.s ! VPImp).fin} ;
-- ImpP3 np vp = {s = np.s!NPC Dir ++ "كو" ++ (vp.s ! VPImp ).inf ++ "دو"}; here VPImp form is not correct e.g jan ko sw do, rather jan ko swnE do, and swnE is stored in vp.VPInf.fin
ImpP3 np vp = {s = np.s!NPC Dir ++ "كو" ++ (vp.s ! VPInf ).fin ++ "دو"};
}

View File

@@ -17,30 +17,30 @@ concrete LexiconUrd of Lexicon = CatUrd **
ask_V2Q = mkV2 (mkV "پوچھنا") ;
baby_N = mkN "بچہ" ;
bad_A = mkA "برا" ;
bank_N = mkN "بانك" ;
bank_N = mkN "بینك" ;
beautiful_A = mkA "خوبصورت" ;
become_VA = mkV "بننا";
beer_N = mkN "بععر" ;
beer_N = mkN "بییر" ;
beg_V2V = mkV2V (compoundV "التجا" (mkV "كرنا")) "سے" "كہ" False;
big_A = mkA "بڑا" ;
bike_N = mkN "سایچل" feminine ;
bike_N = mkN "سایكل" feminine ;
bird_N = mkN "پرندہ" ;
black_A = mkA "كالا" ;
blue_A = mkA "نیلا" ;
boat_N = mkN "كشتی" ;
book_N = mkN "كتاب" feminine ;
boot_N = mkN "جوتا" ;
boss_N = mkN "صاہب" ;
boss_N = mkN "صاحب" ;
boy_N = mkN "لڑكا" ;
bread_N = mkN "روتی" ;
bread_N = mkN "روٹی" ;
break_V2 = mkV2 (mkV "توڑنا") ;
broad_A = mkA "كھلا" ;
brother_N2 = mkN2 (mkN "بھای") (mkPrep "كا" "كا") "كے" ; --not correct
brown_A = mkA "نسواری" ;
butter_N = mkN "مكھن" ;
buy_V2 = mkV2 (mkV "خریدنا");
buy_V2 = mkV2 (mkV "خریدنا") "كو";
camera_N = mkN "كیمرہ" ;
cap_N = mkN "توپی" ;
cap_N = mkN "ٹوپی" ;
car_N = mkN "گاڑی" ;
carpet_N = mkN "تپائی" ;
cat_N = mkN "بلی" ;
@@ -49,7 +49,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
cheese_N = mkN "پنیر" feminine ;
child_N = mkN "بچہ" ;
church_N = mkCmpdNoun "گرجا" (mkN "گھر") ;
city_N = mkN "شہر" ;
city_N = mkN "شہر" ;
clean_A = mkA "صاف" ;
clever_A = mkA "ہوشیار" ;
close_V2 = mkV2 (compoundV "بند" do_V2);
@@ -65,7 +65,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
distance_N3 = mkN3 (mkN "فاصلہ") (mkPrep "كا" "كا") "كے" "سے" ;
doctor_N = mkN "معالج" ;
dog_N = mkN "كتا" ;
door_N = mkN "دروزہ" ;
door_N = mkN "دروازہ" ;
drink_V2 = mkV2 (mkV "پینا");
easy_A2V = mkA "آسان" "" ;
eat_V2 = mkV2 (mkV "كھانا") "" ;
@@ -73,13 +73,13 @@ concrete LexiconUrd of Lexicon = CatUrd **
enemy_N = mkN "دشمن" ;
factory_N = mkN "كارخانہ" ;
father_N2 = mkN2 (mkN "ابا") (mkPrep "كا" "كا") "كے" ;
fear_VS = mkV "درنا";
fear_VS = mkV "ڈرنا";
find_V2 = mkV2 (mkV "پانا") ;
fish_N = mkN "مچھلی" ;
floor_N = mkN "فرش" ;
forget_V2 = mkV2 (mkV "بھولنا") ;
fridge_N = mkN "فریگ" ;
-- friend_N = mkN "دوست" masculine ;
fridge_N = mkN "فریج" ;
friend_N = mkN "دوست" masculine ;
fruit_N = mkN "پھل" ;
-- fun_AV = mkAV (regA "f?ن") ;
garden_N = mkN "باغ" ;
@@ -91,7 +91,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
green_A = mkA "سبز" ;
harbour_N = mkCmpdNoun "بندر" (mkN "گاہ") ;
hate_V2 = mkV2 (compoundV "نفرت" do_V2) ;
hat_N = mkN "توپی" ;
hat_N = mkN "ٹوپی" ;
-- have_V2 = dirV2 (mk5V "ہa?ع" "ہاس" "ہاد" "ہاد" "ہa??نگ") ;
hear_V2 = mkV2 (mkV "سننا") ;
hill_N = mkN "پہاڑی" ;
@@ -118,8 +118,8 @@ concrete LexiconUrd of Lexicon = CatUrd **
lose_V2 = mkV2 (compoundV "كھو" do_V2) ;
love_N = mkN "محبت" ;
love_V2 = mkV2 (compoundV "پیار" do_V2) "كو";
man_N = mkN "آدمی" ; -- not correct according to rules should be discussed
married_A2 = mkA "شادy?كرنا" "سے" ;
man_N = mkN "آدمی" "آدمی" "آدمی" "آدمی" "آدمیوں" "آدمیو" masculine ;
married_A2 = mkA "[شادی كرنa]" "سے" ;
meat_N = mkN "گوشت" ;
milk_N = mkN "دودھ" ;
moon_N = mkN "چاند" ;
@@ -162,10 +162,10 @@ concrete LexiconUrd of Lexicon = CatUrd **
seek_V2 = mkV2 (compoundV "تلاش" do_V2) ;
see_V2 = mkV2 (mkV "دیكھنا") ;
sell_V3 = mkV3 (mkV "بیچنا") "كو" "";
send_V3 = mkV3 (mkV "بھیجنا") "كو" "";
send_V3 = mkV3 (mkV "بھیجنا") "كو" "كو";
sheep_N = mkN "بھیڑ" feminine ;
ship_N = mkN "جہاز" ;
shirt_N = mkN "قمیض" feminine;
shirt_N = mkN "قمیص" feminine;
shoe_N = mkN "جوتا" ;
shop_N = mkN "دوكان" feminine ;
short_A = mkA "چھوٹا" ;
@@ -177,7 +177,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
sock_N = mkN "جراب" feminine ;
speak_V2 = mkV2 (mkV "بولنا") ;
star_N = mkN "ستارا" ;
steel_N = mkN "ستیل" ;
steel_N = mkN "سٹیل" ;
stone_N = mkN "پتھر" ;
stove_N = mkN "چولہا" ;
student_N = mkCmpdNoun "طالب" (mkN "علم") ;
@@ -186,10 +186,10 @@ concrete LexiconUrd of Lexicon = CatUrd **
switch8off_V2 = mkV2 (mkV "چلانا") ;
switch8on_V2 = mkV2 (compoundV "بند" do_V2) ;
table_N = mkN "میز" feminine ;
talk_V3 = mkV3 (mkV "بولنا") "سے" "كE?بارE?معں";
teacher_N = mkN "?ستاد" ;
talk_V3 = mkV3 (mkV "بولنا") "سے" "[كے بارے میN]";
teacher_N = mkN "استاد" ;
teach_V2 = mkV2 (mkV "پڑھنا") ;
television_N = mkN "تعلیویزن" ;
television_N = mkN "تیلیویژن" ;
thick_A = mkA "موٹا" ;
thin_A = mkA "پتلا" ;
train_N = mkN "گاڑی" ;
@@ -211,14 +211,14 @@ concrete LexiconUrd of Lexicon = CatUrd **
wine_N = mkN "شراب" feminine ;
win_V2 = mkV2 (mkV "جیتنا") ;
woman_N = mkN "عورت" feminine ;
wonder_VQ = compoundV "حعران" (mkV "ہونا") ;
wonder_VQ = compoundV "حیران" (mkV "ہونا") ;
wood_N = mkN "لكڑی" ;
write_V2 = mkV2 (mkV "لكھنا") ;
yellow_A = mkA "پیلا" ;
young_A = mkA "جوان" ;
do_V2 = mkV2 (mkV "كرنا") ;
now_Adv = mkAdv "اب" ;
already_Adv = mkAdv "پہلE?ہی" ;
already_Adv = mkAdv "[پہلے ہy]" ;
song_N = mkN "گانا" ;
add_V3 = mkV3 (compoundV "اضافہ" do_V2) "" "" ;
number_N = mkN "ہندسہ" ;
@@ -229,9 +229,9 @@ concrete LexiconUrd of Lexicon = CatUrd **
left_Ord = {s = "بایاں" ; n = singular};
right_Ord = {s= "دایاں" ; n = singular};
far_Adv = mkAdv "دور" ;
correct_A = mkA "صیہ" ;
correct_A = mkA "صیح" ;
dry_A = mkA "خشك" ;
dull_A = mkA "ناl?ك" ;
dull_A = mkA "نالایق" ;
full_A = mkA "مكمل" ;
heavy_A = mkA "بھاری" ;
near_A = mkA "قریب" ;
@@ -257,26 +257,26 @@ concrete LexiconUrd of Lexicon = CatUrd **
earth_N = mkN "زمین" feminine ;
egg_N = mkN "انڈہ" ;
eye_N = mkN "آنكھ" feminine ;
fat_N = mkN "موتا" ;
fat_N = mkN "موٹا" ;
feather_N = mkN "پر" ;
fingernail_N = mkN "ناخن" ;
fire_N = mkN "آگ" feminine ;
flower_N = mkN "پھول" ;
fog_N = mkN "دھند" feminine ;
foot_N = mkN "پاوں" ; -- not properly covered need to be discussed
forest_N = mkN "نجگل" ;
grass_N = mkN "گھس" feminine ;
guts_N = mkN "g?ت" ; -- FIXME: no singular
forest_N = mkN "جنگل" ;
grass_N = mkN "گھاس" feminine ;
guts_N = mkN "گٹ" ; -- FIXME: no singular
hair_N = mkN "بال" ;
hand_N = mkN "ہاتھ" ;
head_N = mkN "سر" ;
heart_N = mkN "دل" ;
horn_N = mkN "گھنتی" ;
horn_N = mkN "گھنٹی" ;
husband_N = mkN "شوہر" ;
ice_N = mkN "برف" feminine ;
knee_N = mkN "كہنی" ;
leaf_N = mkN "پتہ" ;
leg_N = mkN "تانگ" feminine ;
leg_N = mkN "ٹانگ" feminine ;
liver_N = mkN "جگر" ;
louse_N = mkN "گھر" ;
mouth_N = mkN "منہ" ;
@@ -287,7 +287,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
person_N = mkN "شخص" ;
rain_N = mkN "بارش" feminine ;
road_N = mkN "سڑك" ;
root_N = mkN "گڑ" feminine ;
root_N = mkN "جڑ" feminine ;
rope_N = mkN "رسی" ;
salt_N = mkN "نمك" feminine ;
sand_N = mkN "ریت" feminine ;
@@ -317,7 +317,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
give_V3 = mkV3 (mkV "دینا") "كو" "";
laugh_V = mkV "ہنسنا" ;
-- lie_N = mkN "جھوت" masculine ;
lie_V = compoundV "جھوت" (mkV "بولنا" );
lie_V = compoundV "جھوٹ" (mkV "بولنا" );
play_V = mkV "كھیلنا" ;
sew_V = mkV "سینا" ;
sing_V = mkV "گانا" ;
@@ -330,12 +330,12 @@ concrete LexiconUrd of Lexicon = CatUrd **
think_V = mkV "سوچنا" ;
turn_V = mkV "مڑنا";
vomit_V = compoundV "التی" (mkV "كرنا") ;
bite_V2 = mkV2 (mkV "كاتنا") ;
bite_V2 = mkV2 (mkV "كاٹنا") ;
count_V2 = mkV2 (mkV "گننا") ;
cut_V2 = mkV2 (mkV "كاتنا") ;
fear_V2 = mkV2 (mkV "ڈرنا") ;
fight_V2 = mkV2 (mkV "لڑنا") ;
hit_V2 = mkV2 (compoundV "تھوكر" (mkV "مارنا" ));
hit_V2 = mkV2 (compoundV "ٹھوكر" (mkV "مارنا" ));
hold_V2 = mkV2 (mkV "پكڑنا") ;
hunt_V2 = mkV2 (compoundV "شكار" do_V2);
kill_V2 = mkV2 (compoundV "مار" (mkV "ڈالنا" )) ;
@@ -343,7 +343,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
push_V2 = mkV2 (mkV "دھكیلنا") "كو" ;
rub_V2 = mkV2 (mkV "رگڑنا") ;
scratch_V2 = mkV2 (mkV "كھرچنا") "كو" ;
split_V2 = mkV2 (mkV "بانتا") "كو" ;
split_V2 = mkV2 (mkV "بانٹنا") "كو" ;
-- squeeze_V2 = dirV2 (regV "سq?ععزع") ;
-- stab_V2 = dirV2 (regDuplV "ستاب") ;
suck_V2 = mkV2 (mkV "چوسنا") ;

View File

@@ -170,7 +170,7 @@ oper
(bhao) (bhao) (bhao)
Masc ;
----2 Determiners
IDeterminer = {s:Gender => Str ; n : Number};
IDeterminer = {s:Gender => Case => Str ; n : Number};
makeDet : Str -> Str -> Str -> Str -> Number -> Determiner = \s1,s2,s3,s4,n -> {
s = table {
Sg => table {
@@ -188,11 +188,37 @@ oper
makeIDet : Str -> Str -> Number -> IDeterminer = \s1,s2,n -> {
s = table {
Masc => s1;
Fem => s2
Masc => table {_ =>s1};
Fem => table {_ =>s2}
};
n = n
};
};
-- IQuant
makeIQuant : Str -> {s : Number => Gender => Case => Str} = \str -> {
s = table {
Sg => table {
Masc => table {
Dir => str ++ "سا" ;
_ => str ++ "سے"
};
Fem => table {
_ => str ++ "سی"
}
};
Pl => table {
Masc => table {
_ => str ++ "سے"
};
Fem => table {
_ => str ++ "سی"
}
}
}
};
-- Proposition
@@ -379,7 +405,7 @@ oper
<Imperf,Pers2_Respect,Pl,Fem> => root+"تیں";
<Imperf,_,Sg,Masc> => root+"تا";
<Imperf,_,Sg,Fem> => root+"تی";
<Imperf,_,Pl,Masc> => root+"تع";
<Imperf,_,Pl,Masc> => root+"تے";
<Imperf,_,Pl,Fem> => root+"تیں"
}

View File

@@ -27,46 +27,42 @@ oper
--2 Nouns
mkN = overload {
mkN : Str -> N
mkN : Str -> N -- Regular nouns like lRka, gender is judged from noun ending
= \s -> regNoun s ** {lock_N = <>} ;
mkN : Str -> Gender -> N
mkN : Str -> Gender -> N -- nouns whose gender is irregular like Admy
= \s,g -> reggNoun s g ** {lock_N = <>} ;
mkN : (x1,_,_,_,_,x6 : Str) -> Gender -> N
mkN : (x1,_,_,_,_,x6 : Str) -> Gender -> N -- worst case
= \sd,so,sv,pd,po,pv,g -> mkNoun sd so sv pd po pv g ** {lock_N = <>} ;
} ;
mkN2 : N -> Prep -> Str -> N2;
mkN2 : N -> Prep -> Str -> N2; -- e.g maN ky
mkN2 = \n,p,c -> n ** {lock_N2 = <> ; c2 = p.s ! n.g ; c3 = c } ;
mkN3 : N -> Prep -> Str -> Str-> N3 ;
mkN3 : N -> Prep -> Str -> Str-> N3 ; -- e.g faSlh - sE - ka
mkN3 = \n,p,q,r -> n ** {lock_N3 = <> ; c2 = p.s ! n.g ; c3 = q ; c4 = r} ;
-- Compound Nouns
mkCmpdNoun : Str -> N -> N
mkCmpdNoun : Str -> N -> N -- e.g t-alb elm
= \s,noun -> {s =\\n,c => s ++ noun.s ! n ! c ; g = noun.g ; lock_N = <>};
-- Proper names
mkPN : Str -> PN
= \s -> let n = regNoun s in {s = n.s ! Sg ; g = n.g ; lock_PN = <>} ;
personalPN : Str -> Str -> Str -> Str -> Number -> Gender -> UPerson -> Pron --%
= \s1,s2,s3,sp,nn,g,p -> let n = mkPron s1 s2 s3 in {s = n.s ; a = toAgr nn p g ; ps = sp ; lock_Pron = <>};
demoPN : Str -> Str -> Str -> Quant --%
= \s1,s2,s3 -> let n = makeDemonPronForm s1 s2 s3 in {s = n.s ; a = defaultAgr ; lock_Quant = <>};
mkDet : Str -> Str -> Str -> Str -> Number -> Det --%
= \s1,s2,s3,s4,nb -> let dt = makeDet s1 s2 s3 s4 nb in {s = dt.s ; n = nb ; lock_Det = <>};
mkIP : (x1,x2,x3:Str) -> Number -> Gender -> IP --%
= \s1,s2,s3,n,g -> let p = mkIntPronForm s1 s2 s3 in { s = p.s ; n = n ; g = g ; lock_IP = <>};
mkPN : Str -> PN = \s -> let n = regNoun s in {s = n.s ! Sg ; g = n.g ; lock_PN = <>} ;
personalPN : Str -> Str -> Str -> Str -> Number -> Gender -> UPerson -> Pron = \s1,s2,s3,sp,nn,g,p -> let n = mkPron s1 s2 s3 in {s = n.s ; a = toAgr nn p g ; ps = sp ; lock_Pron = <>};
demoPN : Str -> Str -> Str -> Quant = \s1,s2,s3 -> let n = makeDemonPronForm s1 s2 s3 in {s = n.s ; a = defaultAgr ; lock_Quant = <>};
mkDet : Str -> Str -> Str -> Str -> Number -> Det = \s1,s2,s3,s4,nb -> let dt = makeDet s1 s2 s3 s4 nb in {s = dt.s ; n = nb ; lock_Det = <>};
mkIP : (x1,x2,x3:Str) -> Number -> Gender -> IP = \s1,s2,s3,n,g -> let p = mkIntPronForm s1 s2 s3 in { s = p.s ; n = n ; g = g ; lock_IP = <>};
-- AdN
mkAdN : Str -> AdN --%
= \s -> {s = s ; p = False ; lock_AdN = <>} ;
mkAdN : Str -> AdN = \s -> {s = s ; p = False ; lock_AdN = <>} ;
--2 Adjectives
mkA = overload {
mkA : Str-> A
mkA : Str-> A -- e.g ach'a
= \s -> regAdjective s ** {lock_A = <>} ;
mkA : Str -> Str -> A2
mkA : Str -> Str -> A2 -- e.g sE Xady krna
= \a,c -> let n = regAdjective a in {s = n.s; c2 = c} ** {lock_A2 = <>} ;
} ;
mkA2 : A -> Str -> A2 ;
@@ -74,42 +70,42 @@ oper
--2 Verbs
mkV : Str -> V
mkV : Str -> V -- regular verbs like swna
= \s -> mkVerb s ** {lock_V = <>} ;
mkV2 = overload {
mkV2 : Str -> V2
mkV2 : Str -> V2 -- e.g pyna
= \s -> mkVerb s ** {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ;
mkV2 : V -> V2
mkV2 : V -> V2 -- e.g pyna
= \v -> v ** {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ;
mkV2 : V -> Str -> V2
mkV2 : V -> Str -> V2 -- e.g bnd krna
= \v,p -> v ** {c2 = {s = p ; c = VTrans} ; lock_V2 = <>} ;
} ;
dirV2 : V -> V2 = \v -> v ** {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ; --%
dirV2 : V -> V2 = \v -> v ** {c2 = {s = [] ; c = VTrans} ; lock_V2 = <>} ;
mkV3 : V -> Str -> Str -> V3;
mkV3 : V -> Str -> Str -> V3; -- e.g bycna
mkV3 v p q = v ** { c2 = p ; c3 = q ; lock_V3 = <>} ;
mkV2V : V -> Str -> Str -> Bool -> V2V ;
mkV2V : V -> Str -> Str -> Bool -> V2V ; -- e.g eltja krna - sE - kw
mkV2V v s1 s2 b = v ** {isAux = b ; c1 = s1 ; c2 = s2 ; lock_V2V = <>} ;
dirdirV3 : V -> V3 ;
dirdirV3 v = v ** { c2 = [] ; c3 = [] ; lock_V3 = <>} ;
-- compund verbs
compoundV = overload {
compoundV : Str -> V -> V
= \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;
compoundV : Str -> V2 -> V
= \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;
compoundV : Str -> V -> V -- e.g barX hwna
= \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;
compoundV : Str -> V2 -> V -- e.g bnd krna
= \s,v -> {s = \\vf => s ++ v.s ! vf ; lock_V = <>} ;
};
----2 Adverbs
mkAdv : Str -> Adv
= \str -> {s = \\_ => str ; lock_Adv = <>};
mkAdv : Str -> Adv -- e.g yhaN
= \str -> {s = \\_ => str ; lock_Adv = <>};
----2 Prepositions
mkPrep : Str -> Str -> Prep ;
mkPrep : Str -> Str -> Prep ; -- e.g ka - ky
mkPrep s1 s2 = makePrep s1 s2 ** {lock_Prep = <>};
--3 Determiners and quantifiers
@@ -123,6 +119,8 @@ oper
-- mkQuant : Pron -> Quant = \p -> {s = \\_,_,c => p.s!c ;a = p.a ; lock_Quant = <>};
-- mkQuant : (no_sg, no_pl, none_sg, non_pl : Str) -> Quant = mkQuantifier;
-- } ;
mkIQuant : Str -> IQuant = \s -> makeIQuant s ;
--2 Conjunctions
mkConj : overload {
@@ -131,13 +129,22 @@ oper
mkConj : Str -> Str -> Conj ; -- both ... and (plural)
mkConj : Str -> Str -> Number -> Conj ; -- either ... or (agrement number given as argument)
} ;
mkConj = overload {
mkConj : Str -> Conj = \y -> mk2Conj [] y plural ;
mkConj : Str -> Number -> Conj = \y,n -> mk2Conj [] y n ;
mkConj : Str -> Str -> Conj = \x,y -> mk2Conj x y plural ;
mkConj : Str -> Str -> Number -> Conj = mk2Conj ;
} ;
mk2Conj : Str -> Str -> Number -> Conj = \x,y,n ->
lin Conj (sd2 x y ** {n = n}) ;
-- mkV0 : V -> V0 ;
mkVS : V -> VS;
mkVS : V -> VS; -- e.g drna
mkVS v = v ;
-- mkV2S : V -> Prep -> V2S ;
mkVV : V -> VV
= \v -> lin VV (v ** {isAux = False});
mkVV : V -> VV = -- e.g cahna
\v -> lin VV (v ** {isAux = False});
mkAdA : Str -> AdA ;
-- mkAdv x = lin Adv (ss x) ;
@@ -148,7 +155,7 @@ oper
-- mkV2V : V -> Prep -> Prep -> V2V ;
-- mkVA : V -> VA ;
-- mkV2A : V -> Prep -> V2A ;
mkVQ : V -> VQ ;
mkVQ : V -> VQ ; -- e.g janna
mkVQ v = v ;
-- mkV2Q : V -> Prep -> V2Q ;
--
@@ -181,18 +188,4 @@ oper
-- nominative = Nom ;
-- genitive = Gen ;
mkConj = overload {
mkConj : Str -> Conj
= \y -> mk2Conj [] y plural ;
mkConj : Str -> Number -> Conj
= \y,n -> mk2Conj [] y n ;
mkConj : Str -> Str -> Conj
= \x,y -> mk2Conj x y plural ;
mkConj : Str -> Str -> Number -> Conj
= mk2Conj ;
} ;
mk2Conj : Str -> Str -> Number -> Conj = \x,y,n ->
lin Conj (sd2 x y ** {n = n}) ;
}

View File

@@ -9,12 +9,12 @@ concrete StructuralUrd of Structural = CatUrd **
after_Prep = mkPrep ["كے بعد"] ["كے بعد"] ;
all_Predet = ss "تمام" ;
almost_AdA, almost_AdN = mkAdN "تقریبا" ;
although_Subj = ss "اگرچh-" ;
although_Subj = ss "اگرچہ" ;
always_AdV = ss "ہمیشہ" ;
and_Conj = sd2 [] "اور" ** {n = Pl} ;
because_Subj = ss "كیونكh-" ;
because_Subj = ss "كیونكہ" ;
before_Prep = mkPrep "پہلے" "پہلے" ;
behind_Prep = mkPrep "پیچh-ے" "پیچh-ے" ;
behind_Prep = mkPrep "پیچھے" "پیچھے" ;
between_Prep = mkPrep "درمیاں" "درمیاں" ;
both7and_DConj = sd2 "دونوں" "اور" ** {n = Pl} ;
but_PConj = ss "لیكن" ;
@@ -40,12 +40,12 @@ concrete StructuralUrd of Structural = CatUrd **
how8much_IAdv = ss "كتنا" ;
if_Subj = ss "اگر" ;
in8front_Prep = mkPrep ["كے سامنے"] ["كے سامنے"] ;
i_Pron = personalPN "میں" "مجh-" "" "میرا" Sg Masc Pers1;
in_Prep = mkPrep "معں" "معں" ;
it_Pron = personalPN "یہ" "یہ" "یہ" "اس كا" Sg Masc Pers3_Near;
i_Pron = personalPN "میں" "مجھ" "" "میرا" Sg Masc Pers1;
in_Prep = mkPrep "میں" "میں" ;
it_Pron = personalPN "یہ" "اس" "اس" "اس كا" Sg Masc Pers3_Near;
less_CAdv = {s = "كم" ; p = ""} ;
many_Det = mkDet "بہت زیادہ" "بہت زیادہ" "بہت زیادہ" "بہت زیادہ" Pl ;
more_CAdv = {s = "زیادh-" ; p = "" } ;
more_CAdv = {s = "زیادہ" ; p = "سے" } ;
most_Predet = ss "زیادہ تر" ;
much_Det = mkDet "بہت" "بہت" "بہت" "بہت" Sg ;
-- must_VV = {
@@ -64,20 +64,20 @@ concrete StructuralUrd of Structural = CatUrd **
no_Utt = ss "نہیں" ;
on_Prep = mkPrep "پر" "پر" ;
-- one_Quant = demoPN "ایك" "ایك" "ایك" ; -- DEPRECATED
only_Predet = ss "سرف" ;
only_Predet = ss "صرف" ;
or_Conj = sd2 [] "یا" ** {n = Sg} ;
otherwise_PConj = ss "یا پh-ر" ;
otherwise_PConj = ss "یا پھر" ;
part_Prep = mkPrep "" "" ;
please_Voc = ss "مہربانi" ;
please_Voc = ss "مہربانی" ;
possess_Prep = mkPrep "كا" "كی" ;
quite_Adv = ss "كہامoسہ" ;
quite_Adv = ss "خاموش" ;
she_Pron = personalPN "وہ" "اس" "وہ" "اس كی" Sg Fem Pers3_Distant ;
so_AdA = ss "سo" ;
so_AdA = ss "[اس لیE]" ;
somebody_NP = MassNP (UseN (ParadigmsUrd.mkN "كوی" "كوی" "كوی" "كوی" "كوی" "كوی" Masc ));
someSg_Det = mkDet "كچh-" "كچh-" "كچh-" "كچh-" Sg ;
somePl_Det = mkDet "كچh-" "كچh-" "كچh-" "كچh-" Pl ;
something_NP = MassNP (UseN (ParadigmsUrd.mkN "كوی چیز" "كوی چیز" "كوی چیز" "كh- چیزیں" "كh- چیزوں" "كh- چیزو" Masc ));
somewhere_Adv = mkAdv ["كہ پر"] ;
someSg_Det = mkDet "كچھ" "كچھ" "كچھ" "كچھ" Sg ;
somePl_Det = mkDet "كچھ" "كچھ" "كچھ" "كچھ" Pl ;
something_NP = MassNP (UseN (ParadigmsUrd.mkN "كوی چیز" "كوی چیز" "كوی چیز" "كھ چیزیں" "كھ چیزوں" "كھ چیزو" Masc ));
somewhere_Adv = mkAdv ["كہیں پر"] ;
that_Quant = demoPN "وہ" "اس" "ان" ;
that_Subj = ss "كہ";
there_Adv = mkAdv "وہاں" ;
@@ -93,24 +93,25 @@ concrete StructuralUrd of Structural = CatUrd **
very_AdA = ss "بہت" ;
want_VV = mkV "چاہنا" ** { isAux = False} ;
we_Pron = personalPN "ہم" "ہم" "ہم" "ہمارا" Pl Masc Pers1 ;
whatSg_IP = mkIP "كیا" "كiس" "كiس" Sg Masc ;
whatPl_IP = mkIP "كیا" "كiن" "كiن" Pl Masc ;
whatSg_IP = mkIP "كیا" "كس" "كس" Sg Masc ;
whatPl_IP = mkIP "كیا" "كن" "كن" Pl Masc ;
when_IAdv = ss "كب" ;
when_Subj = ss "كب" ;
when_Subj = ss "جب" ;
where_IAdv = ss "كہاں" ;
which_IQuant = {s = \\_ => "كون سی"} ;
-- which_IQuant = {s = \\_ => "كون سی"} ;
which_IQuant = mkIQuant "كون" ;
-- whichPl_IDet = makeDet "كون سا" "كون سی" "كون سے" "كون سی" ;
-- whichSg_IDet = makeDet "كون سا" "كون سی" "كون سے" "كون سی" ;
whoSg_IP = mkIP "كون" "كiس" "كiس" Sg Masc ;
whoSg_IP = mkIP "كون" "كس" "كس" Sg Masc ;
whoPl_IP = mkIP "كون" "كن" "كنہوں" Pl Masc ;
why_IAdv = ss "كیوں" ;
without_Prep = mkPrep ["كے بغیر"] ["كے بغیر"] ;
with_Prep = mkPrep ["كے ساتh-"] ["كے ساتh-"] ;
with_Prep = mkPrep ["كے ساتھ"] ["كے ساتھ"] ;
-- yes_Phr = ss "ہاں" ;
yes_Utt = ss "ہاں" ;
youSg_Pron = personalPN "تم" "تم" "تم" "تمh-ارا" Sg Masc Pers2_Casual ;
youPl_Pron = personalPN "تم" "تم" "تم" "تمh-ارا" Pl Masc Pers2_Casual ;
youPol_Pron = personalPN "آپ" "آP" "آP" "آپ كا" Sg Masc Pers2_Respect ;
youSg_Pron = personalPN "تو" "تو" "تو" "تیرا" Sg Masc Pers2_Casual ;
youPl_Pron = personalPN "تم" "تم" "تم" "تمھارا" Pl Masc Pers2_Casual ;
youPol_Pron = personalPN "آپ" "آپ" "آپ" "آپ كا" Sg Masc Pers2_Respect ;
no_Quant = demoPN " كوی نہیں" "كوی نہیں" "كوی نہیں" ;
not_Predet = {s="نہیں"} ;
if_then_Conj = sd2 "اگر" "تو" ** {n = Sg} ;
@@ -120,9 +121,9 @@ concrete StructuralUrd of Structural = CatUrd **
except_Prep = mkPrep "سواے" "سواے" ;
nobody_NP = MassNP (UseN (ParadigmsUrd.mkN "كوی نہیں" "كوی نہیں" "كوی نہیں" "كوی نہیں" "كوی نہیں" "كوی نہیں" Masc ));
as_CAdv = {s = "عتنا" ; p = "جتنا"} ;
as_CAdv = {s = "اتنا" ; p = "جتنا"} ;
have_V2 = mkV2 (mkV "راكh-نا") "" ;
have_V2 = mkV2 (mkV "راكھنا") "" ;
language_title_Utt = ss "اردو" ;

View File

@@ -81,7 +81,7 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
VPPerfFutCont => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n } ;
VPSubj => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "xayd" }
VPSubj => {fin = insertSubj p (vp.s ! VPStem).inf ; inf = "Xayd" }
};

View File

@@ -16,7 +16,7 @@ concrete IdiomUrd of Idiom = CatUrd ** open Prelude,Predef, ResUrd,ParamX,Common
ExistNP np =
mkSClause "whaN" (agrP3 (fromAgr np.a).g (fromAgr np.a).n)
(insertObj (\\_ => np.s ! NPC Obl) (predAux auxBe)) ;
(insertObj (\\_ => np.s ! NPC Dir) (predAux auxBe)) ;
ExistIP ip =
let cl = mkSClause ("whaN" ++ ip.s ! Dir) (agrP3 ip.g ip.n) (predAux auxBe);
@@ -30,9 +30,10 @@ concrete IdiomUrd of Idiom = CatUrd ** open Prelude,Predef, ResUrd,ParamX,Common
-- ProgrVP vp = insertObj (\\a => vp.obj.s ++ vp.ad ++ vp.comp ! a ++ (vp.s ! VPStem).inf ++ raha (fromAgr a).g (fromAgr a).n ) (predAux auxBe) ;
ProgrVP vp = (predProg vp) ;
ImpPl1 vp = {s = "Aw" ++ infVP True vp (agrP1 Masc Pl)} ;
ImpP3 np vp = {s = np.s!NPC Dir ++ "kw" ++ (vp.s ! VPImp ).inf ++ "dw"};
-- ImpPl1 vp = {s = "Aw" ++ infVP True vp (agrP1 Masc Pl)} ; -- inf form is not used e.g Aw swna instead Aw swyyN (Imp.fin)
ImpPl1 vp = {s = "Aw" ++ (vp.s ! VPImp).fin} ;
-- ImpP3 np vp = {s = np.s!NPC Dir ++ "kw" ++ (vp.s ! VPImp ).inf ++ "dw"}; here VPImp form is not correct e.g jan ko sw do, rather jan ko swnE do, and swnE is stored in vp.VPInf.fin
ImpP3 np vp = {s = np.s!NPC Dir ++ "kw" ++ (vp.s ! VPInf ).fin ++ "dw"};
}

View File

@@ -17,30 +17,30 @@ concrete LexiconUrd of Lexicon = CatUrd **
ask_V2Q = mkV2 (mkV "pwch'na") ;
baby_N = mkN "bch" ;
bad_A = mkA "bra" ;
bank_N = mkN "bank" ;
bank_N = mkN "bynk" ;
beautiful_A = mkA "KwbSwrt" ;
become_VA = mkV "bnna";
beer_N = mkN "beer" ;
beer_N = mkN "byyr" ;
beg_V2V = mkV2V (compoundV "altja" (mkV "krna")) "sE" "kh" False;
big_A = mkA "bRa" ;
bike_N = mkN "saycl" feminine ;
bike_N = mkN "saykl" feminine ;
bird_N = mkN "prndh" ;
black_A = mkA "kala" ;
blue_A = mkA "nyla" ;
boat_N = mkN "kXty" ;
book_N = mkN "ktab" feminine ;
boot_N = mkN "jwta" ;
boss_N = mkN "Sahb" ;
boss_N = mkN "SaHb" ;
boy_N = mkN "lRka" ;
bread_N = mkN "rwty" ;
bread_N = mkN "rwTy" ;
break_V2 = mkV2 (mkV "twRna") ;
broad_A = mkA "kh'la" ;
brother_N2 = mkN2 (mkN "bh'ay") (mkPrep "ka" "ka") "kE" ; --not correct
brown_A = mkA "nswary" ;
butter_N = mkN "mkh'n" ;
buy_V2 = mkV2 (mkV "Krydna");
buy_V2 = mkV2 (mkV "Krydna") "kw";
camera_N = mkN "kymrh" ;
cap_N = mkN "twpy" ;
cap_N = mkN "Twpy" ;
car_N = mkN "gaRy" ;
carpet_N = mkN "tpay^y" ;
cat_N = mkN "bly" ;
@@ -49,7 +49,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
cheese_N = mkN "pnyr" feminine ;
child_N = mkN "bch" ;
church_N = mkCmpdNoun "grja" (mkN "gh'r") ;
city_N = mkN "Xhr" ;
city_N = mkN "Xhr" ;
clean_A = mkA "Saf" ;
clever_A = mkA "hwXyar" ;
close_V2 = mkV2 (compoundV "bnd" do_V2);
@@ -65,7 +65,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
distance_N3 = mkN3 (mkN "faSlh") (mkPrep "ka" "ka") "kE" "sE" ;
doctor_N = mkN "mealj" ;
dog_N = mkN "kta" ;
door_N = mkN "drwzh" ;
door_N = mkN "drwazh" ;
drink_V2 = mkV2 (mkV "pyna");
easy_A2V = mkA "Asan" "" ;
eat_V2 = mkV2 (mkV "kh'ana") "" ;
@@ -73,13 +73,13 @@ concrete LexiconUrd of Lexicon = CatUrd **
enemy_N = mkN "dXmn" ;
factory_N = mkN "karKanh" ;
father_N2 = mkN2 (mkN "aba") (mkPrep "ka" "ka") "kE" ;
fear_VS = mkV "drna";
fear_VS = mkV "Drna";
find_V2 = mkV2 (mkV "pana") ;
fish_N = mkN "mch'ly" ;
floor_N = mkN "frX" ;
forget_V2 = mkV2 (mkV "bh'wlna") ;
fridge_N = mkN "fryg" ;
-- friend_N = mkN "dwst" masculine ;
fridge_N = mkN "fryj" ;
friend_N = mkN "dwst" masculine ;
fruit_N = mkN "ph'l" ;
-- fun_AV = mkAV (regA "f?n") ;
garden_N = mkN "baG" ;
@@ -91,7 +91,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
green_A = mkA "sbz" ;
harbour_N = mkCmpdNoun "bndr" (mkN "gah") ;
hate_V2 = mkV2 (compoundV "nfrt" do_V2) ;
hat_N = mkN "twpy" ;
hat_N = mkN "Twpy" ;
-- have_V2 = dirV2 (mk5V "ha?e" "has" "had" "had" "ha??ng") ;
hear_V2 = mkV2 (mkV "snna") ;
hill_N = mkN "phaRy" ;
@@ -118,8 +118,8 @@ concrete LexiconUrd of Lexicon = CatUrd **
lose_V2 = mkV2 (compoundV "kh'w" do_V2) ;
love_N = mkN "mHbt" ;
love_V2 = mkV2 (compoundV "pyar" do_V2) "kw";
man_N = mkN "Admy" ; -- not correct according to rules should be discussed
married_A2 = mkA "Xady?krna" "sE" ;
man_N = mkN "Admy" "Admy" "Admy" "Admy" "AdmywN" "Admyw" masculine ;
married_A2 = mkA "[Xady krna]" "sE" ;
meat_N = mkN "gwXt" ;
milk_N = mkN "dwdh'" ;
moon_N = mkN "cand" ;
@@ -162,10 +162,10 @@ concrete LexiconUrd of Lexicon = CatUrd **
seek_V2 = mkV2 (compoundV "tlaX" do_V2) ;
see_V2 = mkV2 (mkV "dykh'na") ;
sell_V3 = mkV3 (mkV "bycna") "kw" "";
send_V3 = mkV3 (mkV "bh'yjna") "kw" "";
send_V3 = mkV3 (mkV "bh'yjna") "kw" "kw";
sheep_N = mkN "bh'yR" feminine ;
ship_N = mkN "jhaz" ;
shirt_N = mkN "qmyZ-" feminine;
shirt_N = mkN "qmyS" feminine;
shoe_N = mkN "jwta" ;
shop_N = mkN "dwkan" feminine ;
short_A = mkA "ch'wTa" ;
@@ -177,7 +177,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
sock_N = mkN "jrab" feminine ;
speak_V2 = mkV2 (mkV "bwlna") ;
star_N = mkN "stara" ;
steel_N = mkN "styl" ;
steel_N = mkN "sTyl" ;
stone_N = mkN "pth'r" ;
stove_N = mkN "cwlha" ;
student_N = mkCmpdNoun "t-alb" (mkN "elm") ;
@@ -186,10 +186,10 @@ concrete LexiconUrd of Lexicon = CatUrd **
switch8off_V2 = mkV2 (mkV "clana") ;
switch8on_V2 = mkV2 (compoundV "bnd" do_V2) ;
table_N = mkN "myz" feminine ;
talk_V3 = mkV3 (mkV "bwlna") "sE" "kE?barE?meN";
teacher_N = mkN "?stad" ;
talk_V3 = mkV3 (mkV "bwlna") "sE" "[kE barE myN]";
teacher_N = mkN "astad" ;
teach_V2 = mkV2 (mkV "pRh'na") ;
television_N = mkN "telywyzn" ;
television_N = mkN "tylywyxn" ;
thick_A = mkA "mwTa" ;
thin_A = mkA "ptla" ;
train_N = mkN "gaRy" ;
@@ -211,14 +211,14 @@ concrete LexiconUrd of Lexicon = CatUrd **
wine_N = mkN "Xrab" feminine ;
win_V2 = mkV2 (mkV "jytna") ;
woman_N = mkN "ewrt" feminine ;
wonder_VQ = compoundV "Heran" (mkV "hwna") ;
wonder_VQ = compoundV "Hyran" (mkV "hwna") ;
wood_N = mkN "lkRy" ;
write_V2 = mkV2 (mkV "lkh'na") ;
yellow_A = mkA "pyla" ;
young_A = mkA "jwan" ;
do_V2 = mkV2 (mkV "krna") ;
now_Adv = mkAdv "ab" ;
already_Adv = mkAdv "phlE?hy" ;
already_Adv = mkAdv "[phlE hy]" ;
song_N = mkN "gana" ;
add_V3 = mkV3 (compoundV "aZ-afh" do_V2) "" "" ;
number_N = mkN "hndsh" ;
@@ -229,9 +229,9 @@ concrete LexiconUrd of Lexicon = CatUrd **
left_Ord = {s = "bayaN" ; n = singular};
right_Ord = {s= "dayaN" ; n = singular};
far_Adv = mkAdv "dwr" ;
correct_A = mkA "Syh" ;
correct_A = mkA "SyH" ;
dry_A = mkA "KXk" ;
dull_A = mkA "nal?k" ;
dull_A = mkA "nalayq" ;
full_A = mkA "mkml" ;
heavy_A = mkA "bh'ary" ;
near_A = mkA "qryb" ;
@@ -257,26 +257,26 @@ concrete LexiconUrd of Lexicon = CatUrd **
earth_N = mkN "zmyn" feminine ;
egg_N = mkN "anDh" ;
eye_N = mkN "Ankh'" feminine ;
fat_N = mkN "mwta" ;
fat_N = mkN "mwTa" ;
feather_N = mkN "pr" ;
fingernail_N = mkN "naKn" ;
fire_N = mkN "Ag" feminine ;
flower_N = mkN "ph'wl" ;
fog_N = mkN "dh'nd" feminine ;
foot_N = mkN "pawN" ; -- not properly covered need to be discussed
forest_N = mkN "njgl" ;
grass_N = mkN "gh's" feminine ;
guts_N = mkN "g?t" ; -- FIXME: no singular
forest_N = mkN "jngl" ;
grass_N = mkN "gh'as" feminine ;
guts_N = mkN "gT" ; -- FIXME: no singular
hair_N = mkN "bal" ;
hand_N = mkN "hath'" ;
head_N = mkN "sr" ;
heart_N = mkN "dl" ;
horn_N = mkN "gh'nty" ;
horn_N = mkN "gh'nTy" ;
husband_N = mkN "Xwhr" ;
ice_N = mkN "brf" feminine ;
knee_N = mkN "khny" ;
leaf_N = mkN "pth" ;
leg_N = mkN "tang" feminine ;
leg_N = mkN "Tang" feminine ;
liver_N = mkN "jgr" ;
louse_N = mkN "gh'r" ;
mouth_N = mkN "mnh" ;
@@ -287,7 +287,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
person_N = mkN "XKS" ;
rain_N = mkN "barX" feminine ;
road_N = mkN "sRk" ;
root_N = mkN "gR" feminine ;
root_N = mkN "jR" feminine ;
rope_N = mkN "rsy" ;
salt_N = mkN "nmk" feminine ;
sand_N = mkN "ryt" feminine ;
@@ -317,7 +317,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
give_V3 = mkV3 (mkV "dyna") "kw" "";
laugh_V = mkV "hnsna" ;
-- lie_N = mkN "jh'wt" masculine ;
lie_V = compoundV "jh'wt" (mkV "bwlna" );
lie_V = compoundV "jh'wT" (mkV "bwlna" );
play_V = mkV "kh'ylna" ;
sew_V = mkV "syna" ;
sing_V = mkV "gana" ;
@@ -330,12 +330,12 @@ concrete LexiconUrd of Lexicon = CatUrd **
think_V = mkV "swcna" ;
turn_V = mkV "mRna";
vomit_V = compoundV "alty" (mkV "krna") ;
bite_V2 = mkV2 (mkV "katna") ;
bite_V2 = mkV2 (mkV "kaTna") ;
count_V2 = mkV2 (mkV "gnna") ;
cut_V2 = mkV2 (mkV "katna") ;
fear_V2 = mkV2 (mkV "Drna") ;
fight_V2 = mkV2 (mkV "lRna") ;
hit_V2 = mkV2 (compoundV "th'wkr" (mkV "marna" ));
hit_V2 = mkV2 (compoundV "Th'wkr" (mkV "marna" ));
hold_V2 = mkV2 (mkV "pkRna") ;
hunt_V2 = mkV2 (compoundV "Xkar" do_V2);
kill_V2 = mkV2 (compoundV "mar" (mkV "Dalna" )) ;
@@ -343,7 +343,7 @@ concrete LexiconUrd of Lexicon = CatUrd **
push_V2 = mkV2 (mkV "dh'kylna") "kw" ;
rub_V2 = mkV2 (mkV "rgRna") ;
scratch_V2 = mkV2 (mkV "kh'rcna") "kw" ;
split_V2 = mkV2 (mkV "banta") "kw" ;
split_V2 = mkV2 (mkV "banTna") "kw" ;
-- squeeze_V2 = dirV2 (regV "sq?eeze") ;
-- stab_V2 = dirV2 (regDuplV "stab") ;
suck_V2 = mkV2 (mkV "cwsna") ;

View File

@@ -170,7 +170,7 @@ oper
(bhao) (bhao) (bhao)
Masc ;
----2 Determiners
IDeterminer = {s:Gender => Str ; n : Number};
IDeterminer = {s:Gender => Case => Str ; n : Number};
makeDet : Str -> Str -> Str -> Str -> Number -> Determiner = \s1,s2,s3,s4,n -> {
s = table {
Sg => table {
@@ -188,11 +188,37 @@ oper
makeIDet : Str -> Str -> Number -> IDeterminer = \s1,s2,n -> {
s = table {
Masc => s1;
Fem => s2
Masc => table {_ =>s1};
Fem => table {_ =>s2}
};
n = n
};
};
-- IQuant
makeIQuant : Str -> {s : Number => Gender => Case => Str} = \str -> {
s = table {
Sg => table {
Masc => table {
Dir => str ++ "sa" ;
_ => str ++ "sE"
};
Fem => table {
_ => str ++ "sy"
}
};
Pl => table {
Masc => table {
_ => str ++ "sE"
};
Fem => table {
_ => str ++ "sy"
}
}
}
};
-- Proposition
@@ -379,7 +405,7 @@ oper
<Imperf,Pers2_Respect,Pl,Fem> => root+"tyN";
<Imperf,_,Sg,Masc> => root+"ta";
<Imperf,_,Sg,Fem> => root+"ty";
<Imperf,_,Pl,Masc> => root+"te";
<Imperf,_,Pl,Masc> => root+"tE";
<Imperf,_,Pl,Fem> => root+"tyN"
}

View File

@@ -9,12 +9,12 @@ concrete StructuralUrd of Structural = CatUrd **
after_Prep = mkPrep ["kE bed"] ["kE bed"] ;
all_Predet = ss "tmam" ;
almost_AdA, almost_AdN = mkAdN "tqryba" ;
although_Subj = ss "agrch-" ;
although_Subj = ss "agrch" ;
always_AdV = ss "hmyXh" ;
and_Conj = sd2 [] "awr" ** {n = Pl} ;
because_Subj = ss "kywnkh-" ;
because_Subj = ss "kywnkh" ;
before_Prep = mkPrep "phlE" "phlE" ;
behind_Prep = mkPrep "pych-E" "pych-E" ;
behind_Prep = mkPrep "pych'E" "pych'E" ;
between_Prep = mkPrep "drmyaN" "drmyaN" ;
both7and_DConj = sd2 "dwnwN" "awr" ** {n = Pl} ;
but_PConj = ss "lykn" ;
@@ -40,12 +40,12 @@ concrete StructuralUrd of Structural = CatUrd **
how8much_IAdv = ss "ktna" ;
if_Subj = ss "agr" ;
in8front_Prep = mkPrep ["kE samnE"] ["kE samnE"] ;
i_Pron = personalPN "myN" "mjh-" "" "myra" Sg Masc Pers1;
in_Prep = mkPrep "meN" "meN" ;
it_Pron = personalPN "yh" "yh" "yh" "as ka" Sg Masc Pers3_Near;
i_Pron = personalPN "myN" "mjh'" "" "myra" Sg Masc Pers1;
in_Prep = mkPrep "myN" "myN" ;
it_Pron = personalPN "yh" "as" "as" "as ka" Sg Masc Pers3_Near;
less_CAdv = {s = "km" ; p = ""} ;
many_Det = mkDet "bht zyadh" "bht zyadh" "bht zyadh" "bht zyadh" Pl ;
more_CAdv = {s = "zyadh-" ; p = "" } ;
more_CAdv = {s = "zyadh" ; p = "sE" } ;
most_Predet = ss "zyadh tr" ;
much_Det = mkDet "bht" "bht" "bht" "bht" Sg ;
-- must_VV = {
@@ -64,20 +64,20 @@ concrete StructuralUrd of Structural = CatUrd **
no_Utt = ss "nhyN" ;
on_Prep = mkPrep "pr" "pr" ;
-- one_Quant = demoPN "ayk" "ayk" "ayk" ; -- DEPRECATED
only_Predet = ss "srf" ;
only_Predet = ss "Srf" ;
or_Conj = sd2 [] "ya" ** {n = Sg} ;
otherwise_PConj = ss "ya ph-r" ;
otherwise_PConj = ss "ya ph'r" ;
part_Prep = mkPrep "" "" ;
please_Voc = ss "mhrbani" ;
please_Voc = ss "mhrbany" ;
possess_Prep = mkPrep "ka" "ky" ;
quite_Adv = ss "khamosh" ;
quite_Adv = ss "KamwX" ;
she_Pron = personalPN "wh" "as" "wh" "as ky" Sg Fem Pers3_Distant ;
so_AdA = ss "so" ;
so_AdA = ss "[as lyE]" ;
somebody_NP = MassNP (UseN (ParadigmsUrd.mkN "kwy" "kwy" "kwy" "kwy" "kwy" "kwy" Masc ));
someSg_Det = mkDet "kch-" "kch-" "kch-" "kch-" Sg ;
somePl_Det = mkDet "kch-" "kch-" "kch-" "kch-" Pl ;
something_NP = MassNP (UseN (ParadigmsUrd.mkN "kwy cyz" "kwy cyz" "kwy cyz" "kh- cyzyN" "kh- cyzwN" "kh- cyzw" Masc ));
somewhere_Adv = mkAdv ["khin pr"] ;
someSg_Det = mkDet "kch'" "kch'" "kch'" "kch'" Sg ;
somePl_Det = mkDet "kch'" "kch'" "kch'" "kch'" Pl ;
something_NP = MassNP (UseN (ParadigmsUrd.mkN "kwy cyz" "kwy cyz" "kwy cyz" "kh' cyzyN" "kh' cyzwN" "kh' cyzw" Masc ));
somewhere_Adv = mkAdv ["khyN pr"] ;
that_Quant = demoPN "wh" "as" "an" ;
that_Subj = ss "kh";
there_Adv = mkAdv "whaN" ;
@@ -93,24 +93,25 @@ concrete StructuralUrd of Structural = CatUrd **
very_AdA = ss "bht" ;
want_VV = mkV "cahna" ** { isAux = False} ;
we_Pron = personalPN "hm" "hm" "hm" "hmara" Pl Masc Pers1 ;
whatSg_IP = mkIP "kya" "kis" "kis" Sg Masc ;
whatPl_IP = mkIP "kya" "kin" "kin" Pl Masc ;
whatSg_IP = mkIP "kya" "ks" "ks" Sg Masc ;
whatPl_IP = mkIP "kya" "kn" "kn" Pl Masc ;
when_IAdv = ss "kb" ;
when_Subj = ss "kb" ;
when_Subj = ss "jb" ;
where_IAdv = ss "khaN" ;
which_IQuant = {s = \\_ => "kwn sy"} ;
-- which_IQuant = {s = \\_ => "kwn sy"} ;
which_IQuant = mkIQuant "kwn" ;
-- whichPl_IDet = makeDet "kwn sa" "kwn sy" "kwn sE" "kwn sy" ;
-- whichSg_IDet = makeDet "kwn sa" "kwn sy" "kwn sE" "kwn sy" ;
whoSg_IP = mkIP "kwn" "kis" "kis" Sg Masc ;
whoSg_IP = mkIP "kwn" "ks" "ks" Sg Masc ;
whoPl_IP = mkIP "kwn" "kn" "knhwN" Pl Masc ;
why_IAdv = ss "kywN" ;
without_Prep = mkPrep ["kE bGyr"] ["kE bGyr"] ;
with_Prep = mkPrep ["kE sath-"] ["kE sath-"] ;
with_Prep = mkPrep ["kE sath'"] ["kE sath'"] ;
-- yes_Phr = ss "haN" ;
yes_Utt = ss "haN" ;
youSg_Pron = personalPN "tm" "tm" "tm" "tmh-ara" Sg Masc Pers2_Casual ;
youPl_Pron = personalPN "tm" "tm" "tm" "tmh-ara" Pl Masc Pers2_Casual ;
youPol_Pron = personalPN "Ap" "AP" "AP" "Ap ka" Sg Masc Pers2_Respect ;
youSg_Pron = personalPN "tw" "tw" "tw" "tyra" Sg Masc Pers2_Casual ;
youPl_Pron = personalPN "tm" "tm" "tm" "tmh'ara" Pl Masc Pers2_Casual ;
youPol_Pron = personalPN "Ap" "Ap" "Ap" "Ap ka" Sg Masc Pers2_Respect ;
no_Quant = demoPN " kwy nhyN" "kwy nhyN" "kwy nhyN" ;
not_Predet = {s="nhyN"} ;
if_then_Conj = sd2 "agr" "tw" ** {n = Sg} ;
@@ -120,9 +121,9 @@ concrete StructuralUrd of Structural = CatUrd **
except_Prep = mkPrep "swaE" "swaE" ;
nobody_NP = MassNP (UseN (ParadigmsUrd.mkN "kwy nhyN" "kwy nhyN" "kwy nhyN" "kwy nhyN" "kwy nhyN" "kwy nhyN" Masc ));
as_CAdv = {s = "etna" ; p = "jtna"} ;
as_CAdv = {s = "atna" ; p = "jtna"} ;
have_V2 = mkV2 (mkV "rakh-na") "" ;
have_V2 = mkV2 (mkV "rakh'na") "" ;
language_title_Utt = ss "ardw" ;

View File

@@ -9,3 +9,4 @@ rf -file=src/LexiconUrd.gf | ps -env=quotes -to_urdu | wf -file=LexiconUrd.gf
rf -file=src/MorphoUrd.gf | ps -env=quotes -to_urdu | wf -file=MorphoUrd.gf
rf -file=src/StructuralUrd.gf | ps -env=quotes -to_urdu | wf -file=StructuralUrd.gf