mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-21 02:39:31 -06:00
factorUrdandAddDictGer
This commit is contained in:
@@ -1342,7 +1342,7 @@ lin anonymity_N = variants {};
|
||||
lin anonymous_A = mk3A "anonym" "anonymer" "anonymste";
|
||||
lin anopheles_N = variants {};
|
||||
lin anorak_N = reg2N "Anorak" "Anoraks" masculine;
|
||||
lin another_Quant = variants {};
|
||||
--lin another_Quant = variants {};
|
||||
lin anshan_PN = variants {};
|
||||
lin answer_N = reg2N "Antwort" "Antworten" feminine;
|
||||
lin answer_V = variants {};
|
||||
@@ -1837,7 +1837,7 @@ lin arum_N = variants {};
|
||||
lin aryan_A = variants {};
|
||||
lin aryan_N = variants {};
|
||||
lin as_Prep = mkPrep "wie" accusative;
|
||||
lin as_Subj = variants {};
|
||||
--lin as_Subj = variants {};
|
||||
lin as_well_Adv = variants {};
|
||||
lin asap_PN = variants {};
|
||||
lin asbestos_N = reg2N "Asbest" "Asbeste" masculine;
|
||||
@@ -3280,7 +3280,7 @@ lin betty_PN = variants {};
|
||||
lin between_Adv = variants {};
|
||||
lin between_Prep = mkPrep "zwischen" dative;
|
||||
lin betwixt_Prep = variants {};
|
||||
lin bevel_N = variants {};
|
||||
--lin bevel_N = variants {};
|
||||
lin bevel_V2 = variants {};
|
||||
lin beverage_N = reg2N "Getränk" "Getränke" neuter;
|
||||
lin beverley_PN = variants {};
|
||||
@@ -5677,7 +5677,7 @@ lin certify_V = regV "zertifizieren";
|
||||
lin certify_V2 = dirV2 (regV "zertifizieren");
|
||||
lin certitude_N = variants {};
|
||||
lin cerulean_A = variants {};
|
||||
lin cervical_A = variants {};
|
||||
--lin cervical_A = variants {};
|
||||
lin cervix_N = variants {};
|
||||
lin cesarean_A = variants {};
|
||||
lin cessation_N = variants {};
|
||||
@@ -6304,7 +6304,7 @@ lin clacton_PN = variants {};
|
||||
lin clad_V = variants {};
|
||||
lin clad_V2 = variants {};
|
||||
lin claim_N = reg2N "Anspruch" "Ansprüche" masculine;
|
||||
lin claim_V = variants {};
|
||||
--lin claim_V = variants {};
|
||||
lin claim_V2 = variants {};
|
||||
lin claim_VV = variants {};
|
||||
lin claim_VS = variants {};
|
||||
@@ -6626,7 +6626,7 @@ lin clwyd_PN = variants {};
|
||||
lin clydach_PN = variants {};
|
||||
lin clydebank_PN = variants {};
|
||||
lin cm_N = variants {};
|
||||
lin co_N = variants {};
|
||||
--lin co_N = variants {};
|
||||
lin co_author_V2 = variants {};
|
||||
lin co_ed_N = variants {};
|
||||
lin co_edit_V2 = variants {};
|
||||
@@ -10694,7 +10694,7 @@ lin djinn_N = variants {};
|
||||
lin djs_N = variants {};
|
||||
lin dlitt_N = variants {};
|
||||
lin dm_N = variants {};
|
||||
lin dna_N = variants {};
|
||||
--lin dna_N = variants {};
|
||||
lin dnepropetrovsk_PN = variants {};
|
||||
lin do_N = variants {};
|
||||
lin do_V = variants {};
|
||||
@@ -11253,7 +11253,7 @@ lin dude_N = reg2N "Alter" "Alter" neuter;
|
||||
lin dudgeon_N = variants {};
|
||||
lin dudley_PN = variants {};
|
||||
lin due_A = regA "fällig";
|
||||
lin due_Adv = variants {};
|
||||
--lin due_Adv = variants {};
|
||||
lin due_N = variants {};
|
||||
lin duel_N = reg2N "Duell" "Duelle" neuter;
|
||||
lin duel_V = variants {};
|
||||
@@ -14219,7 +14219,7 @@ lin forli_PN = variants {};
|
||||
lin forlorn_A = variants {};
|
||||
lin forlornness_N = variants {};
|
||||
lin form_N = reg2N "Form" "Formen" feminine;
|
||||
lin form_V = variants {};
|
||||
--lin form_V = variants {};
|
||||
lin form_V2 = dirV2 (regV "formen");
|
||||
lin formal_A = mk3A "formal" "formaler" "formalste";
|
||||
lin formaldehyde_N = variants {};
|
||||
@@ -17536,7 +17536,7 @@ lin hum_N = variants {};
|
||||
lin hum_V = variants {};
|
||||
lin hum_V2 = variants {};
|
||||
lin human_A = mk3A "menschlich" "menschlicher" "menschlichste";
|
||||
lin human_N = variants {};
|
||||
--lin human_N = variants {};
|
||||
lin humane_A = mk3A "menschlich" "menschlicher" "menschlichste";
|
||||
lin humanism_N = variants {};
|
||||
lin humanist_N = variants {};
|
||||
@@ -18375,7 +18375,7 @@ lin indenture_N = variants {};
|
||||
lin indenture_V2 = variants {};
|
||||
lin independence_N = reg2N "Unabhängigkeit" "Unabhängigkeiten" feminine;
|
||||
lin independent_A = mk3A "unabhängig" "unabhängiger" "unabhängigste";
|
||||
lin independent_N = variants {};
|
||||
--lin independent_N = variants {};
|
||||
lin indescribable_A = variants {};
|
||||
lin indestructibility_N = variants {};
|
||||
lin indestructible_A = variants {};
|
||||
@@ -21471,7 +21471,7 @@ lin lobster_N = variants {};
|
||||
lin lobster_pot_N = variants {};
|
||||
lin loc_cit_PN = variants {};
|
||||
lin local_A = regA "lokal";
|
||||
lin local_N = variants {};
|
||||
--lin local_N = variants {};
|
||||
lin locale_N = variants {};
|
||||
lin localism_N = variants {};
|
||||
lin locality_N = variants {};
|
||||
@@ -22956,7 +22956,7 @@ lin mezzanine_N = variants {};
|
||||
lin mezzo_Adv = variants {};
|
||||
lin mezzo_soprano_N = variants {};
|
||||
lin mezzotint_N = variants {};
|
||||
lin mg_N = variants {};
|
||||
--lin mg_N = variants {};
|
||||
lin mgr_PN = variants {};
|
||||
lin mi5_PN = variants {};
|
||||
lin mi6_PN = variants {};
|
||||
@@ -22987,7 +22987,7 @@ lin microfiche_N = variants {};
|
||||
lin microfilm_N = variants {};
|
||||
lin microfilm_V2 = variants {};
|
||||
lin micrometer_N = reg2N "Mikrometer" "Mikrometer" masculine;
|
||||
lin micron_N = variants {};
|
||||
--lin micron_N = variants {};
|
||||
lin microphone_N = reg2N "Mikrofon" "Mikrofone" neuter;
|
||||
lin microscope_N = reg2N "Mikroskop" "Mikroskope" neuter;
|
||||
lin microscopic_A = regA "mikroskopisch";
|
||||
@@ -23417,7 +23417,7 @@ lin mizzen_mast_N = variants {};
|
||||
lin mizzle_V = variants {};
|
||||
lin ml_N = mk6N "ml" "ml" "ml" "ml" "ml" "ml" masculine;
|
||||
lin mlle_PN = variants {};
|
||||
lin mm_N = variants {};
|
||||
--lin mm_N = variants {};
|
||||
lin mme_PN = variants {};
|
||||
lin mnemonic_A = variants {};
|
||||
lin mnemonics_N = variants {};
|
||||
@@ -24453,7 +24453,7 @@ lin neuter_A = regA "geschlechtslos";
|
||||
lin neuter_N = variants {};
|
||||
lin neuter_V2 = variants {};
|
||||
lin neutral_A = mk3A "neutral" "neutraler" "neutralste";
|
||||
lin neutral_N = variants {};
|
||||
--lin neutral_N = variants {};
|
||||
lin neutrality_N = reg2N "Neutralität" "Neutralitäten" feminine;
|
||||
lin neutralization_N = variants {};
|
||||
lin neutralize_V2 = variants {};
|
||||
@@ -25468,7 +25468,7 @@ lin or_Conj = {s1 = [] ; s2 = "oder" ; n = R.Sg};
|
||||
lin oracle_N = variants {};
|
||||
lin oracular_A = variants {};
|
||||
lin oral_A = regA "mündlich";
|
||||
lin oral_N = variants {};
|
||||
--lin oral_N = variants {};
|
||||
lin orang_outan_N = variants {};
|
||||
lin orang_outang_N = variants {};
|
||||
lin orang_utan_N = variants {};
|
||||
@@ -26426,7 +26426,7 @@ lin parsley_N = variants {};
|
||||
lin parsnip_N = variants {};
|
||||
lin parson_N = variants {};
|
||||
lin parsonage_N = variants {};
|
||||
lin part_Adv = variants {};
|
||||
--lin part_Adv = variants {};
|
||||
lin part_N = reg2N "Rolle" "Rollen" feminine;
|
||||
lin part_V = variants {};
|
||||
lin part_V2 = variants {};
|
||||
@@ -33370,7 +33370,7 @@ lin sepal_N = variants {};
|
||||
lin separability_N = variants {};
|
||||
lin separable_A = variants {};
|
||||
lin separate_A = regA "einzeln";
|
||||
lin separate_N = variants {};
|
||||
--lin separate_N = variants {};
|
||||
lin separate_V = variants {};
|
||||
lin separate_V2 = dirV2 (regV "trennen");
|
||||
lin separation_N = mkN "Trennung";
|
||||
@@ -35068,7 +35068,7 @@ lin solicitor_general_N = variants {};
|
||||
lin solicitous_A = variants {};
|
||||
lin solicitude_N = variants {};
|
||||
lin solid_A = mk3A "bündig" "bündiger" "bündigste";
|
||||
lin solid_N = variants {};
|
||||
--lin solid_N = variants {};
|
||||
lin solid_state_A = variants {};
|
||||
lin solidarity_N = reg2N "Solidarität" "Solidaritäten" feminine;
|
||||
lin solidification_N = variants {};
|
||||
@@ -35105,7 +35105,7 @@ lin somatic_A = variants {};
|
||||
lin sombre_A = variants {};
|
||||
lin sombreness_N = variants {};
|
||||
lin sombrero_N = variants {};
|
||||
lin some_Quant = variants {};
|
||||
--lin some_Quant = variants {};
|
||||
lin somebody_NP = M.nameNounPhrase {s = R.caselist "jemand" "jemanden" "jemandem" "jemands"};
|
||||
lin someday_Adv = variants {};
|
||||
lin somehow_Adv = variants {};
|
||||
@@ -35351,7 +35351,7 @@ lin spasm_N = reg2N "Krampf" "Krämpfe" masculine;
|
||||
lin spasmodic_A = variants {};
|
||||
lin spasmodically_Adv = variants {};
|
||||
lin spastic_A = regA "spastisch";
|
||||
lin spastic_N = variants {};
|
||||
--lin spastic_N = variants {};
|
||||
lin spat_N = variants {};
|
||||
lin spat_V = variants {};
|
||||
lin spat_V2 = variants {};
|
||||
@@ -40919,7 +40919,7 @@ lin urgent_A = mk3A "dringend" "dringender" "dringendste";
|
||||
lin urging_N = variants {};
|
||||
lin uric_A = variants {};
|
||||
lin urinal_N = reg2N "Urinal" "Urinale" neuter;
|
||||
lin urinary_A = variants {};
|
||||
--lin urinary_A = variants {};
|
||||
lin urinate_V = regV "urinieren";
|
||||
lin urine_N = reg2N "Harn" "Harne" masculine;
|
||||
lin urn_N = reg2N "Urne" "Urnen" feminine;
|
||||
@@ -40934,7 +40934,7 @@ lin usable_A = regA "nutzbar";
|
||||
lin usaf_N = variants {};
|
||||
lin usage_N = reg2N "Gebrauch" "Gebräuche" masculine;
|
||||
lin use_N = mkN "Verwendung";
|
||||
lin use_V = variants {};
|
||||
--lin use_V = variants {};
|
||||
lin use_V2 = dirV2 (irregV "verwenden" "verwendet" "verwendete" "verwendete" "verwendet");
|
||||
lin use_V2V = variants {};
|
||||
lin use_VV = variants {};
|
||||
@@ -41079,7 +41079,7 @@ lin vapour_bath_N = variants {};
|
||||
lin varanasi_PN = variants {};
|
||||
lin variability_N = variants {};
|
||||
lin variable_A = mk3A "variabel" "variabler" "variabelste";
|
||||
lin variable_N = variants {};
|
||||
--lin variable_N = variants {};
|
||||
lin variableness_N = variants {};
|
||||
lin variance_N = variants {};
|
||||
lin variant_A = regA "variant";
|
||||
@@ -43130,4 +43130,167 @@ lin zoot_suit_N = variants {};
|
||||
lin zucchini_N = variants {};
|
||||
lin zurich_PN = variants {};
|
||||
|
||||
|
||||
-- added during Patents experiments:shafqat
|
||||
|
||||
lin Botulinum_PN = mkPN "Botulinum";
|
||||
lin COPD_PN = mkPN "COPD";
|
||||
lin Claim_PN = mkPN "Anspruch";
|
||||
lin EGF_PN = mkPN "EGF";
|
||||
lin IGFBP_PN = mkPN "IGFBP";
|
||||
lin Neisserial_A = mkA "neisserial";
|
||||
lin PDGF_PN = mkPN "PDGF";
|
||||
lin RNA_PN = mkPN "RNA";
|
||||
lin RS_PN = mkPN "RS";
|
||||
|
||||
lin alkylcellulose_N = mkN "Alkylzellulose" ; -- 0.5000000
|
||||
lin antifolate_N = mkN "Antifolat" ; -- 1.0000000 ----M
|
||||
lin antigen_N = mkN "Antigene" ; -- 0.0168634
|
||||
lin antihyperplastic_A = mkA "antihyperplastisch";
|
||||
lin antineoplastic_A = mkA "antineoplatisch" ;
|
||||
lin aquaculture_N = mkN "Aquakultur" ; -- 0.5555556
|
||||
lin arginine_N = mkN "Arginin" ; -- 0.9940828
|
||||
lin as_Subj = ss "wie" ; -- 0.5281126
|
||||
lin atopical_A = mkA "atopisch" ;
|
||||
lin bevel_N = mkN "Kegelradverzahnung" ; -- 0.2500000 ---M
|
||||
lin biosynthesis_N = mkN "Biosynthese" ; -- 0.9661017
|
||||
lin botulinum_N = mkN "Botulinum" ; -- 0.8461538
|
||||
lin caboxylic_A = mkA "karboxylisch" ;
|
||||
lin cerebrovascular_A = mkA "zerebrovaskulär" ;
|
||||
lin cervical_A = mkA "zervikal" ;
|
||||
lin chemotherapeutic_A = mkA "cheomtherapeutisch" ;
|
||||
lin chloro_N = mkN "Clor" ; -- 1.0000000 ---M ??
|
||||
lin chorionic_A = mkA "chorionisch" ;
|
||||
lin chymotrypsin_N = mkN "Chymotrypsin" ; -- 0.8292683 ---M
|
||||
lin claim_V = mkV "an" IrregGer.sprechen_V ;
|
||||
|
||||
lin co_N = mkN "Co" ; -- 0.6933333 ---M ??
|
||||
lin coumadin_N = mkN "Coumadin" ; -- 1.0000000 ---M
|
||||
|
||||
lin cytostatic_N = mkN "Zytostatisch" ; -- 0.2962963
|
||||
|
||||
lin cytotoxic_A = mkA "zytotoxisch" ; -- 0.8695652
|
||||
|
||||
lin dendritic_A = mkA "dendritisch" ;
|
||||
lin dexamethasone_N = mkN "Dexamethason" ; -- 0.9506173 ---M
|
||||
|
||||
lin dihydrate_N = mkN "Dihydrat" ; -- 0.7812500 ---M
|
||||
|
||||
lin dna_N = mkN "DNA" ; ---M ??
|
||||
|
||||
lin due_Adv = mkAdv "zurückzuführende" ; -- 0.5714286 ---?
|
||||
|
||||
lin dystonia_N = mkN "Dystonie" ; -- 1.0000000
|
||||
lin ectoparasitic_A = mkA "ektoparasitär" ;
|
||||
lin embolism_N = mkN "Embolie" ; -- 0.9230769
|
||||
lin estradiol_N = mkN "Östradiol" ; ---M
|
||||
lin estrogen_N = mkN "Östrogen" ; ---M
|
||||
|
||||
lin ethylcellulose_N = mkN "Ethylcellulose" ; -- 0.3655914
|
||||
lin eukaryotic_A = mkA "eukaryotisch" ; -- 0.5882353
|
||||
|
||||
lin form_V = mkV "bilden" ; -- 0.4275899
|
||||
|
||||
lin gonadotropin_N = mkN "Gonadotropin" ; -- 0.7142857
|
||||
-- lin guage_N = mkN ")" ; -- 0.0000291
|
||||
|
||||
lin helminth_A = mkA "helminthisch" ; -- 1.0000000
|
||||
lin hemitartrate_N = mkN "Zolpidem-hemitartrat" ; -- 0.6181818 ---M
|
||||
|
||||
lin heparin_N = mkN "Heparin" ;
|
||||
lin human_N = mkN "Mensch" "Menschen" masculine ;
|
||||
|
||||
lin hyaluronidase_N = mkN "Hyaluronidase" ; -- 0.9523810
|
||||
|
||||
lin hydrochlorothiazide_N = mkN "Hydrochlorthiazid" ; -- 1.0000000
|
||||
lin hypertrophied_A = mkA "hypertrophiert" ;
|
||||
|
||||
lin immunogen_N = mkN "Immunogen" ; -- 0.6845238
|
||||
lin immunogenic_A = mkA "immunologisch" ;
|
||||
|
||||
-- lin in_N = mkN ""second" ; -- 0.3333333
|
||||
|
||||
lin independent_N = mkN "Unabhängig" ; -- 0.0075557
|
||||
lin irbesartan_N = mkN "Irbesartan" ; -- 1.0000000 ---M
|
||||
|
||||
lin local_N = mkN "Lokale" ; -- 0.7398374
|
||||
lin losartan_N = mkN "Losartan" ; -- 1.0000000 ---M
|
||||
|
||||
lin luteinizing_N = mkN "Luteinisierend" ;
|
||||
|
||||
lin methanesulfonate_N = mkN "Methansulfonat" ; -- 0.5000000 ---M
|
||||
|
||||
-- lin methylmercaptopurine_N = mkN "";
|
||||
|
||||
|
||||
|
||||
lin mg_N = mkN "Mg" ; -- 0.8686005 ---M
|
||||
|
||||
lin micron_N = mkN "Mikron" ; -- 0.0547945 ---M
|
||||
lin microorganism_N = mkN "Wirtsmikroorganismus" ; -- 0.4428571 ---M
|
||||
lin mm_N = mkN "Mm" ; -- 0.8349146
|
||||
lin monoclonal_A = mkA "monoklonal" ;
|
||||
lin monohydrate_N = mkN "Monohydrat" ; -- 0.8484848 ---M
|
||||
lin neurotoxic_A = mkA "neurotoxisch" ;
|
||||
lin neurotoxin_N = mkN "Neurotoxin" ; -- 0.8888889
|
||||
lin neutral_N = mkN "Neutral" ;
|
||||
lin oligomer_N = mkN "Oligomer" ; -- 0.6339869
|
||||
lin oral_N = mkN "Mündhöhle" ; -- 0.5000000 ---??
|
||||
lin ovarian_A = mkA "ovariell" ;
|
||||
lin oxycodone_N = mkN "Oxykodon" ; -- 1.0000000 ---M
|
||||
lin parathyroid_N = mkN "Parathyroid" ; ---M
|
||||
lin part_Adv = mkAdv "teils" ; -- 0.2752613
|
||||
lin phosphatidylethanolamine_N = mkN "Phosphatidyläthanolamin" ; -- 1.0000000 ---M
|
||||
lin polymer_N = mkN "Polymer" ;
|
||||
|
||||
|
||||
|
||||
lin polynucleotide_N = mkN "Polyonukleotid" ; -- 1.0000000 ---M
|
||||
lin polypeptide_N = mkN "Polypetid" ; -- 0.7272727 ---M
|
||||
|
||||
-- lin present_N = mkN "(+)-norcisapride" ; -- 0.0192308
|
||||
|
||||
lin proinflammatory_A = mkA "proinflammatorisch" ;
|
||||
|
||||
lin prokaryotic_A = mkA "prokaryotisch" ; -- 0.8181818
|
||||
lin protozoan_N = mkN "Protozoon" ; -- 0.3750000 ---M
|
||||
|
||||
lin purine_N = mkN "Purin" ; ---M
|
||||
|
||||
lin racemic_A = mkA "razemisch" ; -- 1.0000000
|
||||
|
||||
lin ramipril_N = mkN "Ramipril" ; -- 1.0000000 ---M
|
||||
|
||||
lin reboxetine_N = mkN "Reboxetin" ; -- 1.0000000 ---M
|
||||
|
||||
lin recombinant_A = mkA "rekombinant" ; -- 0.1744186
|
||||
|
||||
lin reovirus_N = mkN "Reovirus" ; -- 0.9661017 ---M
|
||||
lin riboside_N = mkN "Ribosid" ; -- 1.0000000 ---M
|
||||
lin separate_N = mkN "Separate" ; -- 0.7536232 ---??
|
||||
|
||||
lin serotype_N = mkN "Serotyp" ; -- 0.9938650 ---M
|
||||
|
||||
lin solid_N = mkN "Festkörper" ; -- 0.2500000 ---M
|
||||
lin spastic_N = mkN "Spastisch" ;
|
||||
lin sphincter_N = mkN "Sphincter" ; -- 0.5000000 ---M
|
||||
lin taxoid_N = mkN "Taxoid" ; -- 0.7272727 ---M
|
||||
lin telmisartan_N = mkN "Telmisartan" ; -- 0.8571429 ---M
|
||||
|
||||
|
||||
|
||||
|
||||
lin tetrahydrate_N = mkN "Tetrahydrat" ; ---M
|
||||
lin thrombotic_A = mkA "thrombotisch" ;
|
||||
lin trihydrate_N = mkN "Trihydrat" ; -- 0.9090909 ---M
|
||||
|
||||
-- lin trimetrexate_N = mkN "";
|
||||
lin urinary_A = mkA "urinär" ;
|
||||
-- lin use_V = fixprefixV "ver" IrregGer.wenden_V ; ---??
|
||||
lin valsartan_N = mkN "Valsartan" ; -- 0.6285714 ---M
|
||||
lin variable_N = mkN "Variable" ; -- 0.9767442
|
||||
lin warfarin_N = mkN "Warfarin" ; -- 1.0000000 ---M
|
||||
lin zolpidem_N = mkN "Zolpidem" ; -- 1.0000000 ---M
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -2,114 +2,8 @@ instance DiffHin of DiffHindustani = open CommonHindustani, ResHindustani,Prelud
|
||||
--instance DiffHin of DiffHindustani = CommonHindustani ** open Prelude in {
|
||||
flags coding = utf8;
|
||||
oper
|
||||
Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
|
||||
mkClause : NP -> VPH -> Clause = \np,vp -> {
|
||||
s = \\vt,b,ord =>
|
||||
let
|
||||
subjagr : NPCase * Agr = case vt of {
|
||||
VPImpPast => case vp.subj of {
|
||||
VTrans => <NPErg, vp.obj.a> ;
|
||||
VTransPost => <NPErg, defaultAgr> ;
|
||||
_ => <NPC Dir, np.a>
|
||||
} ;
|
||||
_ => <NPC Dir, np.a>
|
||||
} ;
|
||||
subj = subjagr.p1 ;
|
||||
agr = subjagr.p2 ;
|
||||
n = (fromAgr agr).n;
|
||||
p = (fromAgr agr).p;
|
||||
g = (fromAgr agr).g;
|
||||
vps = case vt of {
|
||||
|
||||
VPGenPres => vp.s ! VPTense VPPres agr ;
|
||||
VPImpPast => vp.s ! VPTense VPPast agr ;
|
||||
VPFut => case vp.prog of { True => {fin = [] ;inf = Prelude.glue ((vp.s ! VPTense VPFutr agr).inf ++ hw p n) ((vp.s ! VPTense VPFutr agr).fin) } ;
|
||||
_ => {fin = [] ; inf = Prelude.glue (vp.s ! VPTense VPFutr agr).inf (vp.s ! VPTense VPFutr agr).fin }} ;
|
||||
VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContFut => {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;
|
||||
VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;
|
||||
VPPerfFut => {fin = [] ; inf = Prelude.glue ((vp.s ! VPTense VPPerf agr).inf ++ hw p n) (copula CFuture n p g) } ;
|
||||
VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;
|
||||
VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;
|
||||
VPPerfFutCont => {fin = [] ; inf = Prelude.glue ((vp.s ! VPTense VPPres agr).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
-- VPSubj => case vp.prog of { True => {fin = (vp.s ! VPTense VPFutr agr).inf ++ hw p n ; inf = "शायद" } ;
|
||||
VPSubj => case vp.prog of { True => {fin = Prelude.glue ((vp.s ! VPTense VPFutr agr).inf ++ hw p n) (copula CFuture n p g) ; inf =[] } ;
|
||||
_ => {fin = Prelude.glue (vp.s ! VPTense VPFutr agr).inf (copula CFuture n p g); inf = [] } }
|
||||
|
||||
};
|
||||
|
||||
|
||||
quest =
|
||||
case ord of
|
||||
{ ODir => [];
|
||||
OQuest => "क्या" };
|
||||
na =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "न" };
|
||||
nahim =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "नहीं" };
|
||||
in
|
||||
case vt of {
|
||||
VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a ++ vp.cvp ++ na ++ vps.inf ++ vps.fin ++ vp.embComp ;
|
||||
_ => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a ++ vp.cvp ++ nahim ++ vps.inf ++ vps.fin ++ vp.embComp};
|
||||
|
||||
} ;
|
||||
|
||||
mkSClause : Str -> Agr -> VPH -> Clause =
|
||||
\subj,agr,vp -> {
|
||||
s = \\t,b,ord =>
|
||||
let
|
||||
n = (fromAgr agr).n;
|
||||
p = (fromAgr agr).p;
|
||||
g = (fromAgr agr).g;
|
||||
vps = case t of {
|
||||
VPGenPres => vp.s ! VPTense VPPres agr ;
|
||||
VPImpPast => vp.s ! VPTense VPPast agr ;
|
||||
VPFut => {fin = [] ; inf = Prelude.glue (vp.s ! VPTense VPFutr agr).inf ((vp.s ! VPTense VPFutr agr).fin) } ;
|
||||
VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContFut => {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
|
||||
VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
|
||||
VPPerfFut => {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ cka g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
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 = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
VPSubj => {fin = Prelude.glue (insertSubj p (vp.s ! VPStem).inf) (copula CFuture n p g ); inf = [] }
|
||||
|
||||
};
|
||||
|
||||
quest =
|
||||
case ord of
|
||||
{ ODir => [];
|
||||
OQuest => "क्या" };
|
||||
na =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "न" };
|
||||
nahim =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "नहीं" };
|
||||
in
|
||||
case t of {
|
||||
VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr ++ vp.cvp ++ na ++ vps.inf ++ vps.fin ++ vp.embComp;
|
||||
_ => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr ++ vp.cvp ++ nahim ++ vps.inf ++ vps.fin ++ vp.embComp};
|
||||
} ;
|
||||
|
||||
np2pronCase ppf npc a = case npc of {
|
||||
NPC c => ppf ! c;
|
||||
NPObj => ppf ! Obl ;
|
||||
NPErg =>case (fromAgr a).p of {
|
||||
(Pers3_Near|Pers3_Distant) => Prelude.glue (ppf ! Obl) "ने" ; -- in hindi in case of pronouns nE is tagged to pron rather than a separate word
|
||||
_ => Prelude.glue (ppf ! Dir) "ने"
|
||||
}
|
||||
} ;
|
||||
|
||||
addErgative s1 s2 = Prelude.glue s1 s2 ;
|
||||
conjThat = "कि" ;
|
||||
insertSubj : UPerson -> Str -> Str = \p,s ->
|
||||
case p of { Pers1 => s ++ "वाँ" ; _ => Prelude.glue s "ए"}; -- check with prasad for vn~
|
||||
@@ -130,7 +24,11 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
|
||||
comma = "," ;
|
||||
indfArt = "" ; -- removed
|
||||
kwd = "ख़ुद" ; -- check with prasad
|
||||
|
||||
na = "न" ;
|
||||
nahen = "नहीं" ;
|
||||
xayad = "शायद" ;
|
||||
kya = "क्या" ;
|
||||
|
||||
oper
|
||||
copula : CTense -> Number -> UPerson -> Gender -> Str = \t,n,p,g ->
|
||||
case <t,n,p,g> of {
|
||||
|
||||
@@ -2,114 +2,8 @@ instance DiffHin of DiffHindustani = open CommonHindustani, ResHindustani,Prelud
|
||||
--instance DiffHin of DiffHindustani = CommonHindustani ** open Prelude in {
|
||||
flags coding = utf8;
|
||||
oper
|
||||
Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
|
||||
mkClause : NP -> VPH -> Clause = \np,vp -> {
|
||||
s = \\vt,b,ord =>
|
||||
let
|
||||
subjagr : NPCase * Agr = case vt of {
|
||||
VPImpPast => case vp.subj of {
|
||||
VTrans => <NPErg, vp.obj.a> ;
|
||||
VTransPost => <NPErg, defaultAgr> ;
|
||||
_ => <NPC Dir, np.a>
|
||||
} ;
|
||||
_ => <NPC Dir, np.a>
|
||||
} ;
|
||||
subj = subjagr.p1 ;
|
||||
agr = subjagr.p2 ;
|
||||
n = (fromAgr agr).n;
|
||||
p = (fromAgr agr).p;
|
||||
g = (fromAgr agr).g;
|
||||
vps = case vt of {
|
||||
|
||||
VPGenPres => vp.s ! VPTense VPPres agr ;
|
||||
VPImpPast => vp.s ! VPTense VPPast agr ;
|
||||
VPFut => case vp.prog of { True => {fin = [] ;inf = Prelude.glue ((vp.s ! VPTense VPFutr agr).inf ++ hw p n) ((vp.s ! VPTense VPFutr agr).fin) } ;
|
||||
_ => {fin = [] ; inf = Prelude.glue (vp.s ! VPTense VPFutr agr).inf (vp.s ! VPTense VPFutr agr).fin }} ;
|
||||
VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContFut => {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;
|
||||
VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;
|
||||
VPPerfFut => {fin = [] ; inf = Prelude.glue ((vp.s ! VPTense VPPerf agr).inf ++ hw p n) (copula CFuture n p g) } ;
|
||||
VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;
|
||||
VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;
|
||||
VPPerfFutCont => {fin = [] ; inf = Prelude.glue ((vp.s ! VPTense VPPres agr).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
-- VPSubj => case vp.prog of { True => {fin = (vp.s ! VPTense VPFutr agr).inf ++ hw p n ; inf = "s*a:yd" } ;
|
||||
VPSubj => case vp.prog of { True => {fin = Prelude.glue ((vp.s ! VPTense VPFutr agr).inf ++ hw p n) (copula CFuture n p g) ; inf =[] } ;
|
||||
_ => {fin = Prelude.glue (vp.s ! VPTense VPFutr agr).inf (copula CFuture n p g); inf = [] } }
|
||||
|
||||
};
|
||||
|
||||
|
||||
quest =
|
||||
case ord of
|
||||
{ ODir => [];
|
||||
OQuest => "kX,ya:" };
|
||||
na =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "na" };
|
||||
nahim =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "nahi:m." };
|
||||
in
|
||||
case vt of {
|
||||
VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a ++ vp.cvp ++ na ++ vps.inf ++ vps.fin ++ vp.embComp ;
|
||||
_ => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a ++ vp.cvp ++ nahim ++ vps.inf ++ vps.fin ++ vp.embComp};
|
||||
|
||||
} ;
|
||||
|
||||
mkSClause : Str -> Agr -> VPH -> Clause =
|
||||
\subj,agr,vp -> {
|
||||
s = \\t,b,ord =>
|
||||
let
|
||||
n = (fromAgr agr).n;
|
||||
p = (fromAgr agr).p;
|
||||
g = (fromAgr agr).g;
|
||||
vps = case t of {
|
||||
VPGenPres => vp.s ! VPTense VPPres agr ;
|
||||
VPImpPast => vp.s ! VPTense VPPast agr ;
|
||||
VPFut => {fin = [] ; inf = Prelude.glue (vp.s ! VPTense VPFutr agr).inf ((vp.s ! VPTense VPFutr agr).fin) } ;
|
||||
VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContFut => {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
|
||||
VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
|
||||
VPPerfFut => {fin = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ cka g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
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 = [] ; inf = Prelude.glue ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
VPSubj => {fin = Prelude.glue (insertSubj p (vp.s ! VPStem).inf) (copula CFuture n p g ); inf = [] }
|
||||
|
||||
};
|
||||
|
||||
quest =
|
||||
case ord of
|
||||
{ ODir => [];
|
||||
OQuest => "kX,ya:" };
|
||||
na =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "na" };
|
||||
nahim =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "nahi:m." };
|
||||
in
|
||||
case t of {
|
||||
VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr ++ vp.cvp ++ na ++ vps.inf ++ vps.fin ++ vp.embComp;
|
||||
_ => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr ++ vp.cvp ++ nahim ++ vps.inf ++ vps.fin ++ vp.embComp};
|
||||
} ;
|
||||
|
||||
np2pronCase ppf npc a = case npc of {
|
||||
NPC c => ppf ! c;
|
||||
NPObj => ppf ! Obl ;
|
||||
NPErg =>case (fromAgr a).p of {
|
||||
(Pers3_Near|Pers3_Distant) => Prelude.glue (ppf ! Obl) "ne:" ; -- in hindi in case of pronouns nE is tagged to pron rather than a separate word
|
||||
_ => Prelude.glue (ppf ! Dir) "ne:"
|
||||
}
|
||||
} ;
|
||||
|
||||
addErgative s1 s2 = Prelude.glue s1 s2 ;
|
||||
conjThat = "ki" ;
|
||||
insertSubj : UPerson -> Str -> Str = \p,s ->
|
||||
case p of { Pers1 => s ++ "va:n~" ; _ => Prelude.glue s "E:"}; -- check with prasad for vn~
|
||||
@@ -130,7 +24,11 @@ Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
|
||||
comma = "," ;
|
||||
indfArt = "" ; -- removed
|
||||
kwd = "xud" ; -- check with prasad
|
||||
|
||||
na = "na" ;
|
||||
nahen = "nahi:m." ;
|
||||
xayad = "s*a:yd" ;
|
||||
kya = "kX,ya:" ;
|
||||
|
||||
oper
|
||||
copula : CTense -> Number -> UPerson -> Gender -> Str = \t,n,p,g ->
|
||||
case <t,n,p,g> of {
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
interface DiffHindustani = open Prelude in {
|
||||
oper
|
||||
addErgative : Str -> Str -> Str ;
|
||||
-- mkClause : NP -> VPH -> Clause ;
|
||||
-- mkSClause : Str -> Agr -> VPH -> Clause ;
|
||||
|
||||
mkClause : NP -> VPH -> Clause ;
|
||||
mkSClause : Str -> Agr -> VPH -> Clause ;
|
||||
|
||||
np2pronCase : (Case => Str) -> NPCase -> Agr -> Str ;
|
||||
-- np2pronCase : (Case => Str) -> NPCase -> Agr -> Str ;
|
||||
conjThat : Str ; -- = "kh" ;
|
||||
insertSubj : UPerson -> Str -> Str ;
|
||||
|
||||
@@ -25,6 +25,11 @@ interface DiffHindustani = open Prelude in {
|
||||
indfArt : Str ;
|
||||
nE : Str ;
|
||||
hE : Str ;
|
||||
|
||||
na : Str ;
|
||||
nahen : Str ;
|
||||
xayad : Str ;
|
||||
kya : Str ;
|
||||
|
||||
copula : CTense -> Number -> UPerson -> Gender -> Str ;
|
||||
raha : Gender -> Number -> Str ;
|
||||
|
||||
@@ -184,7 +184,116 @@ param
|
||||
comp = verb.comp ;
|
||||
cvp = verb.cvp
|
||||
} ;
|
||||
|
||||
|
||||
Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
|
||||
mkClause : NP -> VPH -> Clause = \np,vp -> {
|
||||
s = \\vt,b,ord =>
|
||||
let
|
||||
subjagr : NPCase * Agr = case vt of {
|
||||
VPImpPast => case vp.subj of {
|
||||
VTrans => <NPErg, vp.obj.a> ;
|
||||
VTransPost => <NPErg, defaultAgr> ;
|
||||
_ => <NPC Dir, np.a>
|
||||
} ;
|
||||
_ => <NPC Dir, np.a>
|
||||
} ;
|
||||
subj = subjagr.p1 ;
|
||||
agr = subjagr.p2 ;
|
||||
n = (fromAgr agr).n;
|
||||
p = (fromAgr agr).p;
|
||||
g = (fromAgr agr).g;
|
||||
vps = case vt of {
|
||||
|
||||
VPGenPres => vp.s ! VPTense VPPres agr ;
|
||||
VPImpPast => vp.s ! VPTense VPPast agr ;
|
||||
VPFut => case vp.prog of { True => {fin = [] ;inf = addErgative ((vp.s ! VPTense VPFutr agr).inf ++ hw p n) ((vp.s ! VPTense VPFutr agr).fin) } ;
|
||||
_ => {fin = [] ; inf = addErgative (vp.s ! VPTense VPFutr agr).inf (vp.s ! VPTense VPFutr agr).fin }} ;
|
||||
VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContFut => {fin = [] ; inf = addErgative ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;
|
||||
VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;
|
||||
VPPerfFut => {fin = [] ; inf = addErgative ((vp.s ! VPTense VPPerf agr).inf ++ hw p n) (copula CFuture n p g) } ;
|
||||
VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;
|
||||
VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;
|
||||
VPPerfFutCont => {fin = [] ; inf = addErgative ((vp.s ! VPTense VPPres agr).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
-- VPSubj => case vp.prog of { True => {fin = (vp.s ! VPTense VPFutr agr).inf ++ hw p n ; inf = xayad } ;
|
||||
VPSubj => case vp.prog of { True => {fin = addErgative ((vp.s ! VPTense VPFutr agr).inf ++ hw p n) (copula CFuture n p g) ; inf =[] } ;
|
||||
_ => {fin = addErgative (vp.s ! VPTense VPFutr agr).inf (copula CFuture n p g); inf = [] } }
|
||||
|
||||
};
|
||||
|
||||
|
||||
quest =
|
||||
case ord of
|
||||
{ ODir => [];
|
||||
OQuest => kya };
|
||||
na =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => na };
|
||||
nahim =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => nahen };
|
||||
in
|
||||
case vt of {
|
||||
VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a ++ vp.cvp ++ na ++ vps.inf ++ vps.fin ++ vp.embComp ;
|
||||
_ => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a ++ vp.cvp ++ nahim ++ vps.inf ++ vps.fin ++ vp.embComp};
|
||||
|
||||
} ;
|
||||
|
||||
mkSClause : Str -> Agr -> VPH -> Clause =
|
||||
\subj,agr,vp -> {
|
||||
s = \\t,b,ord =>
|
||||
let
|
||||
n = (fromAgr agr).n;
|
||||
p = (fromAgr agr).p;
|
||||
g = (fromAgr agr).g;
|
||||
vps = case t of {
|
||||
VPGenPres => vp.s ! VPTense VPPres agr ;
|
||||
VPImpPast => vp.s ! VPTense VPPast agr ;
|
||||
VPFut => {fin = [] ; inf = addErgative (vp.s ! VPTense VPFutr agr).inf ((vp.s ! VPTense VPFutr agr).fin) } ;
|
||||
VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContFut => {fin = [] ; inf = addErgative ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
|
||||
VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
|
||||
VPPerfFut => {fin = [] ; inf = addErgative ((vp.s ! VPStem).inf ++ cka g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
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 = [] ; inf = addErgative ((vp.s ! VPStem).inf ++ raha g n ++ hw p n) (copula CFuture n p g) } ;
|
||||
VPSubj => {fin = addErgative (insertSubj p (vp.s ! VPStem).inf) (copula CFuture n p g ); inf = [] }
|
||||
|
||||
};
|
||||
|
||||
quest =
|
||||
case ord of
|
||||
{ ODir => [];
|
||||
OQuest => kya };
|
||||
na =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => na };
|
||||
nahim =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => nahen };
|
||||
in
|
||||
case t of {
|
||||
VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr ++ vp.cvp ++ na ++ vps.inf ++ vps.fin ++ vp.embComp;
|
||||
_ => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr ++ vp.cvp ++ nahim ++ vps.inf ++ vps.fin ++ vp.embComp};
|
||||
} ;
|
||||
|
||||
np2pronCase : (Case => Str) -> NPCase -> Agr -> Str ;
|
||||
np2pronCase ppf npc a = case npc of {
|
||||
NPC c => ppf ! c;
|
||||
NPObj => ppf ! Obl ;
|
||||
NPErg =>case (fromAgr a).p of {
|
||||
(Pers3_Near|Pers3_Distant) => addErgative (ppf ! Obl) nE; -- in hindi in case of pronouns nE is tagged to pron rather than a separate word
|
||||
_ => addErgative (ppf ! Dir) nE
|
||||
}
|
||||
} ;
|
||||
|
||||
insertObj : (Agr => Str) -> VPH -> VPH = \obj1,vp -> {
|
||||
s = vp.s ;
|
||||
|
||||
@@ -4,116 +4,7 @@ flags coding = utf8 ;
|
||||
|
||||
oper
|
||||
|
||||
Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
|
||||
mkClause : NP -> VPH -> Clause = \np,vp -> {
|
||||
s = \\vt,b,ord =>
|
||||
let
|
||||
subjagr : NPCase * Agr = case vt of {
|
||||
VPImpPast => case vp.subj of {
|
||||
VTrans => <NPErg, vp.obj.a> ;
|
||||
VTransPost => <NPErg, defaultAgr> ;
|
||||
_ => <NPC Dir, np.a>
|
||||
} ;
|
||||
_ => <NPC Dir, np.a>
|
||||
} ;
|
||||
subj = subjagr.p1 ;
|
||||
agr = subjagr.p2 ;
|
||||
n = (fromAgr agr).n;
|
||||
p = (fromAgr agr).p;
|
||||
g = (fromAgr agr).g;
|
||||
vps = case vt of {
|
||||
|
||||
VPGenPres => vp.s ! VPTense VPPres agr ;
|
||||
VPImpPast => vp.s ! VPTense VPPast agr ;
|
||||
VPFut => case vp.prog of { True => {fin = (vp.s ! VPTense VPFutr agr).fin ; inf = (vp.s ! VPTense VPFutr agr).inf ++ hw p n} ;
|
||||
_ => vp.s ! VPTense VPFutr agr } ;
|
||||
VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContFut => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n} ;
|
||||
VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;
|
||||
VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;
|
||||
VPPerfFut => {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPerf agr).inf ++ hw p n } ;
|
||||
VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;
|
||||
VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;
|
||||
VPPerfFutCont => {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n ++ hw p n } ;
|
||||
VPSubj => case vp.prog of { True => {fin = (vp.s ! VPTense VPFutr agr).inf ++ hw p n ; inf = "شاید" } ;
|
||||
_ => {fin = (vp.s ! VPTense VPFutr agr).inf ; inf = "شاید" } }
|
||||
|
||||
};
|
||||
|
||||
|
||||
quest =
|
||||
case ord of
|
||||
{ ODir => [];
|
||||
OQuest => "کیا" };
|
||||
na =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "نا" };
|
||||
nahim =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "نہیں" };
|
||||
in
|
||||
case vt of {
|
||||
VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a ++ vp.cvp ++ na ++ vps.inf ++ vps.fin ++ vp.embComp ;
|
||||
_ => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a ++ vp.cvp ++ nahim ++ vps.inf ++ vps.fin ++ vp.embComp};
|
||||
|
||||
} ;
|
||||
|
||||
mkSClause : Str -> Agr -> VPH -> Clause =
|
||||
\subj,agr,vp -> {
|
||||
s = \\t,b,ord =>
|
||||
let
|
||||
n = (fromAgr agr).n;
|
||||
p = (fromAgr agr).p;
|
||||
g = (fromAgr agr).g;
|
||||
vps = case t of {
|
||||
VPGenPres => vp.s ! VPTense VPPres agr ;
|
||||
VPImpPast => vp.s ! VPTense VPPast agr ;
|
||||
VPFut => vp.s ! VPTense VPFutr agr ;
|
||||
VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContFut => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n } ;
|
||||
VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
|
||||
VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
|
||||
VPPerfFut => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ cka g n ++ hw p n } ;
|
||||
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 = "شاید" }
|
||||
|
||||
};
|
||||
|
||||
quest =
|
||||
case ord of
|
||||
{ ODir => [];
|
||||
OQuest => "کیا" };
|
||||
na =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "نا" };
|
||||
nahim =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "نہیں" };
|
||||
in
|
||||
case t of {
|
||||
VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr ++ vp.cvp ++ na ++ vps.inf ++ vps.fin ++ vp.embComp;
|
||||
_ => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr ++ vp.cvp ++ nahim ++ vps.inf ++ vps.fin ++ vp.embComp};
|
||||
} ;
|
||||
|
||||
|
||||
np2pronCase ppf npc a = case npc of {
|
||||
NPC c => ppf ! c;
|
||||
NPObj => ppf ! Obl ;
|
||||
NPErg => case (fromAgr a).p of {
|
||||
(Pers3_Near|Pers3_Distant) => ppf ! Obl ++ "نے" ;
|
||||
_ => ppf ! Dir ++ "نے"
|
||||
}
|
||||
} ;
|
||||
|
||||
|
||||
addErgative s1 s2 = s1 ++ s2 ;
|
||||
conjThat = "کہ" ;
|
||||
insertSubj : UPerson -> Str -> Str = \p,s ->
|
||||
case p of { Pers1 => s ++ "واں" ; _ => s ++ "ے"}; -- check with prasad for vn~
|
||||
@@ -133,7 +24,13 @@ conjThat = "کہ" ;
|
||||
hE = "ہے" ;
|
||||
comma = "," ;
|
||||
indfArt = "" ;
|
||||
kwd = "خود" ;
|
||||
kwd = "خود" ;
|
||||
|
||||
na = "نا" ;
|
||||
nahen = "نہیں" ;
|
||||
xayad = "شاید" ;
|
||||
kya = "کیا" ;
|
||||
|
||||
|
||||
copula : CTense -> Number -> UPerson -> Gender -> Str = \t,n,p,g ->
|
||||
case <t,n,p,g> of {
|
||||
|
||||
@@ -4,116 +4,7 @@ flags coding = utf8 ;
|
||||
|
||||
oper
|
||||
|
||||
Clause : Type = {s : VPHTense => Polarity => Order => Str} ;
|
||||
mkClause : NP -> VPH -> Clause = \np,vp -> {
|
||||
s = \\vt,b,ord =>
|
||||
let
|
||||
subjagr : NPCase * Agr = case vt of {
|
||||
VPImpPast => case vp.subj of {
|
||||
VTrans => <NPErg, vp.obj.a> ;
|
||||
VTransPost => <NPErg, defaultAgr> ;
|
||||
_ => <NPC Dir, np.a>
|
||||
} ;
|
||||
_ => <NPC Dir, np.a>
|
||||
} ;
|
||||
subj = subjagr.p1 ;
|
||||
agr = subjagr.p2 ;
|
||||
n = (fromAgr agr).n;
|
||||
p = (fromAgr agr).p;
|
||||
g = (fromAgr agr).g;
|
||||
vps = case vt of {
|
||||
|
||||
VPGenPres => vp.s ! VPTense VPPres agr ;
|
||||
VPImpPast => vp.s ! VPTense VPPast agr ;
|
||||
VPFut => case vp.prog of { True => {fin = (vp.s ! VPTense VPFutr agr).fin ; inf = (vp.s ! VPTense VPFutr agr).inf ++ hw p n} ;
|
||||
_ => vp.s ! VPTense VPFutr agr } ;
|
||||
VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContFut => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n} ;
|
||||
VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;
|
||||
VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPerf agr).inf } ;
|
||||
VPPerfFut => {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPerf agr).inf ++ hw p n } ;
|
||||
VPPerfPresCont => {fin = copula CPresent n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;
|
||||
VPPerfPastCont => {fin = copula CPast n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n } ;
|
||||
VPPerfFutCont => {fin = copula CFuture n p g ; inf = (vp.s ! VPTense VPPres agr).inf ++ raha g n ++ hw p n } ;
|
||||
VPSubj => case vp.prog of { True => {fin = (vp.s ! VPTense VPFutr agr).inf ++ hw p n ; inf = "Xayd" } ;
|
||||
_ => {fin = (vp.s ! VPTense VPFutr agr).inf ; inf = "Xayd" } }
|
||||
|
||||
};
|
||||
|
||||
|
||||
quest =
|
||||
case ord of
|
||||
{ ODir => [];
|
||||
OQuest => "kya" };
|
||||
na =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "na" };
|
||||
nahim =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "nhyN" };
|
||||
in
|
||||
case vt of {
|
||||
VPSubj => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a ++ vp.cvp ++ na ++ vps.inf ++ vps.fin ++ vp.embComp ;
|
||||
_ => quest ++ np.s ! subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! np.a ++ vp.cvp ++ nahim ++ vps.inf ++ vps.fin ++ vp.embComp};
|
||||
|
||||
} ;
|
||||
|
||||
mkSClause : Str -> Agr -> VPH -> Clause =
|
||||
\subj,agr,vp -> {
|
||||
s = \\t,b,ord =>
|
||||
let
|
||||
n = (fromAgr agr).n;
|
||||
p = (fromAgr agr).p;
|
||||
g = (fromAgr agr).g;
|
||||
vps = case t of {
|
||||
VPGenPres => vp.s ! VPTense VPPres agr ;
|
||||
VPImpPast => vp.s ! VPTense VPPast agr ;
|
||||
VPFut => vp.s ! VPTense VPFutr agr ;
|
||||
VPContPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ raha g n } ;
|
||||
VPContFut => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ raha g n ++ hw p n } ;
|
||||
VPPerfPres => {fin = copula CPresent n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
|
||||
VPPerfPast => {fin = copula CPast n p g ; inf = (vp.s ! VPStem).inf ++ cka g n } ;
|
||||
VPPerfFut => {fin = copula CFuture n p g ; inf = (vp.s ! VPStem).inf ++ cka g n ++ hw p n } ;
|
||||
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" }
|
||||
|
||||
};
|
||||
|
||||
quest =
|
||||
case ord of
|
||||
{ ODir => [];
|
||||
OQuest => "kya" };
|
||||
na =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "na" };
|
||||
nahim =
|
||||
case b of
|
||||
{ Pos => [];
|
||||
Neg => "nhyN" };
|
||||
in
|
||||
case t of {
|
||||
VPSubj => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr ++ vp.cvp ++ na ++ vps.inf ++ vps.fin ++ vp.embComp;
|
||||
_ => quest ++ subj ++ vp.obj.s ++ vp.ad ++ vp.comp ! agr ++ vp.cvp ++ nahim ++ vps.inf ++ vps.fin ++ vp.embComp};
|
||||
} ;
|
||||
|
||||
|
||||
np2pronCase ppf npc a = case npc of {
|
||||
NPC c => ppf ! c;
|
||||
NPObj => ppf ! Obl ;
|
||||
NPErg => case (fromAgr a).p of {
|
||||
(Pers3_Near|Pers3_Distant) => ppf ! Obl ++ "nE" ;
|
||||
_ => ppf ! Dir ++ "nE"
|
||||
}
|
||||
} ;
|
||||
|
||||
|
||||
addErgative s1 s2 = s1 ++ s2 ;
|
||||
conjThat = "kh" ;
|
||||
insertSubj : UPerson -> Str -> Str = \p,s ->
|
||||
case p of { Pers1 => s ++ "waN" ; _ => s ++ "E"}; -- check with prasad for vn~
|
||||
@@ -133,7 +24,13 @@ conjThat = "kh" ;
|
||||
hE = "hE" ;
|
||||
comma = "," ;
|
||||
indfArt = "" ;
|
||||
kwd = "Kwd" ;
|
||||
kwd = "Kwd" ;
|
||||
|
||||
na = "na" ;
|
||||
nahen = "nhyN" ;
|
||||
xayad = "Xayd" ;
|
||||
kya = "kya" ;
|
||||
|
||||
|
||||
copula : CTense -> Number -> UPerson -> Gender -> Str = \t,n,p,g ->
|
||||
case <t,n,p,g> of {
|
||||
|
||||
Reference in New Issue
Block a user