1
0
forked from GitHub/gf-core

Maltese RG: Irregular verbs in Dict, Lexicon. Prep, Conj and others.

This commit is contained in:
john.j.camilleri
2013-04-03 06:50:01 +00:00
parent 5dbeb4beee
commit d58d7a4ce3
12 changed files with 737 additions and 445 deletions

View File

@@ -9,4 +9,13 @@ concrete AdverbMlt of Adverb = CatMlt ** open ResMlt, Prelude in {
-- AdN
-- Adv
lin
-- Prep -> NP -> Adv
PrepNP prep np = {
s = case <np.isDefn,prep.takesDet> of {
<True,True> => prep.s ! Definite ++ np.s ! CPrep ; -- FIT-TRIQ
<True,False> => prep.s ! Definite ++ np.s ! Nom ; -- FUQ IT-TRIQ
<False,_> => prep.s ! Indefinite ++ np.s ! Nom -- FI TRIQ
}
} ;
}

View File

@@ -14,14 +14,14 @@ concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude in {
-- Tensed/Untensed
-- S = {s : Str} ;
S = {s : Str} ;
-- QS = {s : QForm => Str} ;
-- RS = {s : Agr => Str ; c : NPCase} ; -- c for it clefts
-- SSlash = {s : Str ; c2 : Str} ;
-- Sentence
Cl = {s : Tense => Anteriority => Polarity => Str} ;
Cl = {s : ResMlt.Tense => Anteriority => Polarity => Str} ;
-- ClSlash = {
-- s : ResMlt.Tense => Anteriority => Polarity => Order => Str ;
-- c2 : Str
@@ -85,7 +85,7 @@ concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude in {
n : NumForm ;
} ;
-- numeral
-- Numeral
-- Cardinal or ordinal in WORDS (not digits)
Numeral = {
@@ -100,25 +100,24 @@ concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude in {
tail : DTail
};
-- Structural
-- Conj = {s1,s2 : Str ; n : Number} ;
-- ---b Conj = {s : Str ; n : Number} ;
-- ---b DConj = {s1,s2 : Str ; n : Number} ;
Conj = {s1,s2 : Str} ;
-- Subj = {s : Str} ;
Prep = {s : Str} ;
Prep = {
s : Definiteness => Str ;
takesDet : Bool
} ;
-- Open lexical classes, e.g. Lexicon
V, VS, VQ, VA = Verb ;
V2, V2A, V2Q, V2S = Verb ; -- ** {c2 : Str} ;
V3 = Verb ; -- ** {c2, c3 : Str} ;
V2, V2A, V2Q, V2S = Verb ** {prep : Prep} ;
-- VV = {s : VVForm => Str ; typ : VVType} ;
-- V2V = Verb ** {c2,c3 : Str ; typ : VVType} ;
V3, V2V = Verb ** {prep1,prep2 : Prep} ; -- ** {typ : VVType} ;
A = Adjective ** {hasComp : Bool} ; -- Does the adjective have a comparative form (e.g. ISBAĦ)?
-- A2 = Adjective ** {c2 : Str} ;
A = Adjective ;
A2 = Adjective ;
N, N2, N3 = Noun ;
PN = ProperNoun ;

View File

@@ -1,10 +1,15 @@
--# -path=.:../prelude:../abstract:../common
-- Monolingual dictionary for Maltese
-- The 4000 root-and-pattern verbs come from M. Spagnol's work, which is
-- available here: http://mlrs.research.um.edu.mt/resources/verbalroots/
concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
flags
coding=utf8 ;
-- Root-and-pattern verbs
lin
badbad_BDBD_1_6674_V = mkV "badbad" (mkRoot "b-d-b-d") ;
tbadbad_BDBD_2_6675_V = mkV_II "tbadbad" (mkRoot "b-d-b-d") ;
@@ -339,8 +344,16 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tkaghweg_KGHWG_2_7009_V = mkV_II "tkagħweġ" (mkRoot "k-għ-w-ġ") ;
kolja_KLJJ_1_7010_V = mkV "kolja" (mkRoot "k-l-j-j") ;
kampa_KMPJ_1_7011_V = mkV "kampa" (mkRoot "k-m-p-j") ;
-- kompla_KMPLJ_1_7012_V = mkV "kompla" (mkRoot "k-m-pl-j") ;
-- tkompla_KMPLJ_2_7013_V = mkV_II "tkompla" (mkRoot "k-m-pl-j") ;
kompla_KMPLJ_1_7012_V = mkV quadWeak form1 (mkRoot "k-m-pl-j") (mkPattern "o" "a")
"komplejt" "komplejt" "kompla" "kompliet" "komplejna" "komplejtu" "komplew"
"nkompli" "tkompli" "jkompli" "tkompli" "nkomplu" "tkomplu" "jkomplu"
"kompli" "komplu"
;
tkompla_KMPLJ_2_7013_V = mkV quadWeak form2 (mkRoot "k-m-pl-j") (mkPattern "o" "a")
"tkomplejt" "tkomplejt" "tkompla" "tkompliet" "tkomplejna" "tkomplejtu" "tkomplew"
"nitkompla" "titkompla" "jitkompla" "titkompla" "nitkomplu" "titkomplu" "jitkomplu"
"tkompla" "tkomplu"
;
kamrad_KMRD_1_7014_V = mkV "kamrad" (mkRoot "k-m-r-d") ;
kanga_KNGJ_1_7015_V = mkV "kanġa" (mkRoot "k-n-ġ-j") ;
kanta_KNTJ_1_7016_V = mkV "kanta" (mkRoot "k-n-t-j") ;
@@ -414,8 +427,16 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
mander_MNDR_1_7085_V = mkV "mander" (mkRoot "m-n-d-r") ;
tmandar_MNDR_2_7086_V = mkV_II "tmandar" (mkRoot "m-n-d-r") ;
menghel_MNGHL_1_7087_V = mkV "mengħel" (mkRoot "m-n-għ-l") ;
-- mantna_MNTNJ_1_7088_V = mkV "mantna" (mkRoot "m-n-tn-j") ;
-- tmantna_MNTNJ_2_7089_V = mkV_II "tmantna" (mkRoot "m-n-tn-j") ;
mantna_MNTNJ_1_7088_V = mkV quadWeak form1 (mkRoot "m-n-tn-j") (mkPattern "a" "a")
"mantnejt" "mantnejt" "mantna" "mantniet" "mantnejna" "mantnejtu" "mantnew"
"nmantna" "tmantna" "jmantna" "tmantna" "nmantnu" "tmantnu" "jmantnu"
"mantna" "mantnu"
;
tmantna_MNTNJ_2_7089_V = mkV quadWeak form2 (mkRoot "m-n-tn-j") (mkPattern "a" "a")
"tmantnejt" "tmantnejt" "tmantna" "tmantniet" "tmantnejna" "tmantnejtu" "tmantnew"
"nitmantna" "titmantna" "jitmantna" "titmantna" "nitmantnu" "titmantnu" "jitmantnu"
"tmantna" "tmantnu"
;
mantar_MNTR_1_7090_V = mkV "mantar" (mkRoot "m-n-t-r") ;
tmantar_MNTR_2_7091_V = mkV_II "tmantar" (mkRoot "m-n-t-r") ;
manwal_MNWL_1_7092_V = mkV "manwal" (mkRoot "m-n-w-l") ;
@@ -762,8 +783,16 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
balla'_BLGH_2_7436_V = mkV_II "balla'" (mkRoot "b-l-għ") ;
tballa'_BLGH_5_7437_V = mkV_V "tballa'" (mkRoot "b-l-għ") ;
nbela'_BLGH_7_7438_V = mkV_VII "bela'" "nbela'" (mkRoot "b-l-għ") ;
-- belleh_BLHN_2_7439_V = mkV_II "belleh" (mkRoot "bl-ħ-n") ;
-- tbelleh_BLHN_5_7440_V = mkV_V "tbelleh" (mkRoot "bl-ħ-n") ;
blehhen_BLHN_1_7439_V = mkV strong form1 (mkRoot "bl-ħ-n") (mkPattern "e" "e")
"bleħħint" "bleħħint" "bleħħen" "bleħħnet" "bleħħinna" "bleħħintu" "bleħħnu"
"nbleħħen" "tbleħħen" "jibleħħen" "tbleħħen" "nbleħħnu" "tbleħħnu" "jibleħħnu"
"bleħħen" "bleħħnu"
;
tblehhen_BLHN_2_7440_V = mkV strong form2 (mkRoot "bl-ħ-n") (mkPattern "e" "e")
"tbleħħint" "tbleħħint" "tbleħħen" "tbleħħnet" "tbleħħinna" "tbleħħintu" "tbleħħnu"
"nitbleħħen" "titbleħħen" "jitbleħħen" "titbleħħen" "nitbleħħnu" "titbleħħnu" "jitbleħħnu"
"tbleħħen" "tbleħħnu"
;
bell_BLL_1_7441_V = mkV "bell" (mkRoot "b-l-l") ;
bellel_BLL_2_7442_V = mkV_II "bellel" (mkRoot "b-l-l") ;
tbell_BLL_5_7443_V = mkV_V "tbell" (mkRoot "b-l-l") ;
@@ -816,7 +845,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tberrek_BRK_5_7490_V = mkV_V "tberrek" (mkRoot "b-r-k") ;
bierek_BRK_3_7491_V = mkV_III "bierek" (mkRoot "b-r-k") ;
tbierek_BRK_6_7492_V = mkV_VI "tbierek" (mkRoot "b-r-k") ;
-- tbrekken_BRKN_5_7493_V = mkV_V "tbrekken" (mkRoot "br-k-n") ;
tbrekken_BRKN_5_7493_V = mkV strong form5 (mkRoot "br-k-n") (mkPattern "e" "e")
"tbrekkint" "tbrekkint" "tbrekken" "tbrekknet" "tbrekkinna" "tbrekkintu" "tbrekknu"
"nitbrekken" "titbrekken" "jitbrekken" "titbrekken" "nitbrekknu" "titbrekknu" "jitbrekknu"
"tbrekken" "tbrekknu"
;
baram_BRM_1_7494_V = mkV "baram" (mkRoot "b-r-m") ;
barram_BRM_2_7495_V = mkV_II "barram" (mkRoot "b-r-m") ;
tbarram_BRM_5_7496_V = mkV_V "tbarram" (mkRoot "b-r-m") ;
@@ -864,9 +897,9 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
bexxex_BXX_2_7538_V = mkV_II "bexxex" (mkRoot "b-x-x") ;
tbexxex_BXX_5_7539_V = mkV_V "tbexxex" (mkRoot "b-x-x") ;
nbexx_BXX_7_7540_V = mkV_VII "bexx" "nbexx" (mkRoot "b-x-x") ;
baza'_BZGH_1_7541_V = mkV "baża'" (mkRoot "b-ż-għ") ;
bazza'_BZGH_2_7542_V = mkV_II "bażża'" (mkRoot "b-ż-għ") ;
tbazza'_BZGH_5_7543_V = mkV_V "tbażża'" (mkRoot "b-ż-għ") ;
beza'_BZGH_1_7541_V = mkV "baża'" (mkRoot "b-ż-għ") ;
bezza'_BZGH_2_7542_V = mkV_II "bażża'" (mkRoot "b-ż-għ") ;
tbezza'_BZGH_5_7543_V = mkV_V "tbażża'" (mkRoot "b-ż-għ") ;
bizel_BZL_1_7544_V = mkV "biżel" (mkRoot "b-ż-l") ;
bizzel_BZL_2_7545_V = mkV_II "biżżel" (mkRoot "b-ż-l") ;
tbizzel_BZL_5_7546_V = mkV_V "tbiżżel" (mkRoot "b-ż-l") ;
@@ -1148,8 +1181,12 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
faggar_FGR_2_7822_V = mkV_II "faġġar" (mkRoot "f-ġ-r") ;
nfagar_FGR_7_7823_V = mkV_VII "faġar" "nfaġar" (mkRoot "f-ġ-r") ;
faghal_FGHL_1_7824_V = mkV "fagħal" (mkRoot "f-għ-l") ;
nftehem_FHM_7_7825_V = mkV_VII "ftehem" "nftehem" (mkRoot "f-h-m") ;
ftiehem_FHM_8_7826_V = mkV_VIII "ftiehem" (mkRoot "f-h-m") ;
fehem_FHM_1_10830_V = mkV "fehem" (mkRoot "f-h-m") ;
fehhem_FHM_2_10832_V = mkV_II "fehhem" (mkRoot "f-h-m") ;
fiehem_FHM_3_10831_V = mkV_III "fiehem" (mkRoot "f-h-m") ;
tfehem_FHM_6_10833_V = mkV_VI "tfehem" (mkRoot "f-h-m") ;
nfehem_FHM_7_7825_V = mkV_VII "fehem" "nfehem" (mkRoot "f-h-m") ;
ftehem_FHM_8_7826_V = mkV_VIII "ftehem" (mkRoot "f-h-m") ;
fahal_FHL_1_7827_V = mkV "faħal" (mkRoot "f-ħ-l") ;
fahhal_FHL_2_7828_V = mkV_II "faħħal" (mkRoot "f-ħ-l") ;
tfahhal_FHL_5_7829_V = mkV_V "tfaħħal" (mkRoot "f-ħ-l") ;
@@ -1446,7 +1483,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
gezz_GZZ_1_8120_V = mkV "ġeżż" (mkRoot "ġ-ż-ż") ;
gezzez_GZZ_2_8121_V = mkV_II "ġeżżeż" (mkRoot "ġ-ż-ż") ;
ngezz_GZZ_7_8122_V = mkV_VII "ġeżż" "nġeżż" (mkRoot "ġ-ż-ż") ;
-- gie_GJ'_1_8123_V = mkV "ġie" (mkRoot "ġ-j-'") ;
gie_GJ'_1_8123_V = irregularV form1 (mkRoot "ġ-j-'") (mkPattern "ie" [])
"ġejt" "ġejt" "ġie" "ġiet" "ġejna" "ġejtu" "ġew"
"niġi" "tiġi" "jiġi" "tiġi" "niġu" "tiġu" "jiġu"
"ejja" "ejjew"
;
gab_GJB_1_8124_V = mkV "ġab" (mkRoot "ġ-j-b") ;
ngab_GJB_7_8125_V = mkV_VII "ġab" "nġab" (mkRoot "ġ-j-b") ;
gejjef_GJF_2_8126_V = mkV_II "ġejjef" (mkRoot "ġ-j-f") ;
@@ -1993,7 +2034,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tkejjef_KJF_5_8669_V = mkV_V "tkejjef" (mkRoot "k-j-f") ;
kejjel_KJL_2_8670_V = mkV_II "kejjel" (mkRoot "k-j-l") ;
tkejjel_KJL_5_8671_V = mkV_V "tkejjel" (mkRoot "k-j-l") ;
kiel_KJL_1_8672_V = mkV "kiel" (mkRoot "k-j-l") ;
kiel_KJL_1_8672_V = irregularV form1 (mkRoot "k-j-l") (mkPattern "ie" [])
"kilt" "kilt" "kiel" "kielet" "kilna" "kiltu" "kielu"
"niekol" "tiekol" "jiekol" "tiekol" "nieklu" "tieklu" "jieklu"
("kul"|"iekol") ("kulu"|"ieklu")
;
wikkel_KJL_2_8673_V = mkV_II "wikkel" (mkRoot "k-j-l") ;
twikkel_KJL_5_8674_V = mkV_V "twikkel" (mkRoot "k-j-l") ;
ttiekel_KJL_7_8675_V = mkV_VII "tiekel" "ttiekel" (mkRoot "k-j-l") ;
@@ -2016,7 +2061,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
kewa_KWJ_1_8692_V = mkV "kewa" (mkRoot "k-w-j") ;
tkiewa_KWJ_6_8693_V = mkV_VI "tkiewa" (mkRoot "k-w-j") ;
nkewa_KWJ_7_8694_V = mkV_VII "kewa" "nkewa" (mkRoot "k-w-j") ;
kien_KWN_1_8695_V = mkV "kien" (mkRoot "k-w-n") ;
kien_KWN_1_8695_V = irregularV form1 (mkRoot "k-w-n") (mkPattern "ie" [])
"kont" "kont" "kien" "kienet" "konna" "kontu" "kienu"
"nkun" "tkun" "jkun" "tkun" "nkunu" "tkunu" "jkunu"
"kun" "kunu"
;
kewwen_KWN_2_8696_V = mkV_II "kewwen" (mkRoot "k-w-n") ;
tkewwen_KWN_5_8697_V = mkV_V "tkewwen" (mkRoot "k-w-n") ;
kewwes_KWS_2_8698_V = mkV_II "kewwes" (mkRoot "k-w-s") ;
@@ -2239,7 +2288,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tmiera_MRJ_6_8915_V = mkV_VI "tmiera" (mkRoot "m-r-j") ;
mewweg_MWG_2_8916_V = mkV_II "mewweġ" (mkRoot "m-w-ġ") ;
tmewweg_MWG_5_8917_V = mkV_V "tmewweġ" (mkRoot "m-w-ġ") ;
mar_MWR_1_8918_V = mkV "mar" (mkRoot "m-w-r") ;
mar_MWR_1_8918_V = irregularV form1 (mkRoot "m-w-r") (mkPattern "a" [])
"mort" "mort" "mar" "marret" "morna" "mortu" "marru"
"mmur" "tmur" "jmur" "tmur" "mmorru" "tmorru" "jmorru"
"mur" "morru"
;
mawwar_MWR_2_8919_V = mkV_II "mawwar" (mkRoot "m-w-r") ;
tmawwar_MWR_5_8920_V = mkV_V "tmawwar" (mkRoot "m-w-r") ;
mewwes_MWS_2_8921_V = mkV_II "mewwes" (mkRoot "m-w-s") ;
@@ -2652,7 +2705,7 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
nqeda_QDJ_7_9330_V = mkV_VII "qeda" "nqeda" (mkRoot "q-d-j") ;
qajjed_QJD_2_9331_V = mkV_II "qajjed" (mkRoot "q-j-d") ;
tqajjed_QJD_5_9332_V = mkV_V "tqajjed" (mkRoot "q-j-d") ;
qal_QJL_1_9333_V = mkV "qal" (mkRoot "q-j-l") ;
qal_QJL_1_9333_V = mkV "qal" (mkRoot "q-j-l") ; -- shelter (see QAJJEL)
qajjel_QJL_2_9334_V = mkV_II "qajjel" (mkRoot "q-j-l") ;
qiem_QJM_1_9335_V = mkV "qiem" (mkRoot "q-j-m") ;
qejjem_QJM_2_9336_V = mkV_II "qejjem" (mkRoot "q-j-m") ;
@@ -2676,7 +2729,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
nqara_QRJ_7_9354_V = mkV_VII "qara" "nqara" (mkRoot "q-r-j") ;
qawwa_QWJ_2_9355_V = mkV_II "qawwa" (mkRoot "q-w-j") ;
tqawwa_QWJ_5_9356_V = mkV_V "tqawwa" (mkRoot "q-w-j") ;
qal_QWL_1_9357_V = mkV "qal" (mkRoot "q-w-l") ;
qal_QWL_1_9357_V = irregularV form1 (mkRoot "q-w-l") (mkPattern "a" [])
"għedt" "għedt" "qal" "qalet" "għedna" "għedtu" "qalu"
"ngħid" "tgħid" "jgħid" "tgħid" "ngħidu" "tgħidu" "jgħidu"
"għid" "għidu"
; -- say/speak (note: GĦAD is also a separate verb)
qawwel_QWL_2_9358_V = mkV_II "qawwel" (mkRoot "q-w-l") ;
tqawel_QWL_6_9359_V = mkV_VI "tqawel" (mkRoot "q-w-l") ;
nqal_QWL_7_9360_V = mkV_VII "qal" "nqal" (mkRoot "q-w-l") ;
@@ -2832,8 +2889,16 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
razan_RZN_1_9510_V = mkV "rażan" (mkRoot "r-ż-n") ;
razzan_RZN_2_9511_V = mkV_II "rażżan" (mkRoot "r-ż-n") ;
trazzan_RZN_5_9512_V = mkV_V "trażżan" (mkRoot "r-ż-n") ;
-- ra_R'J_1_9513_V = mkV "ra" (mkRoot "r-'-j") ;
-- ntwera_R'J_7_9514_V = mkV_VII "wera" "ntwera" (mkRoot "r-'-j") ;
ra_R'J_1_9513_V = irregularV form1 (mkRoot "r-'-j") (mkPattern "a" [])
"rajt" "rajt" "ra" "rat" "rajna" "rajtu" "raw"
"nara" "tara" "jara" "tara" "naraw" "taraw" "jaraw"
"ara" "araw"
;
ntwera_R'J_7_9514_V = irregularV form7 (mkRoot "r-'-j") (mkPattern "e" "e")
"ntwerejt" "ntwerejt" "ntwera" "ntweriet" "ntwerejna" "ntwerejtu" "ntwerew"
"nintwera" "tintwera" "jintwera" "tintwera" "nintwerew" "tintwerew" "jintwerew"
"ntwera" "ntwerew"
;
rabba_RBJ_2_9515_V = mkV_II "rabba" (mkRoot "r-b-j") ;
trabba_RBJ_5_9516_V = mkV_V "trabba" (mkRoot "r-b-j") ;
riega_RGJ_3_9517_V = mkV_III "rieġa" (mkRoot "r-ġ-j") ;
@@ -3227,9 +3292,21 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
ntelaq_TLQ_7_9906_V = mkV_VII "telaq" "ntelaq" (mkRoot "t-l-q") ;
tellet_TLT_2_9907_V = mkV_II "tellet" (mkRoot "t-l-t") ;
ttellet_TLT_5_9908_V = mkV_V "ttellet" (mkRoot "t-l-t") ;
-- tamma_TM'_2_9909_V = mkV_II "tamma" (mkRoot "t-m-'") ;
-- tama_TM'_3_9910_V = mkV_III "tama" (mkRoot "t-m-'") ;
-- ttama_TM'_6_9911_V = mkV_VI "ttama" (mkRoot "t-m-'") ;
tamma_TM'_2_9909_V = mkV irregular form2 (mkRoot "t-m-'") (mkPattern "a" "a")
"tammajt" "tammajt" "tamma" "tammat" "tammajna" "tammajtu" "tammaw"
"nitamma" "titamma" "jitamma" "titamma" "nitammaw" "titammaw" "jitammaw"
"tamma" "tammaw"
;
tama_TM'_3_9910_V = mkV irregular form3 (mkRoot "t-m-'") (mkPattern "a" "a")
"tamajt" "tamajt" "tama" "tamat" "tamajna" "tamajtu" "tamaw"
"nitama" "titama" "jitama" "titama" "nitamaw" "titamaw" "jitamaw"
"tama" "tamaw"
;
ttama_TM'_6_9911_V = mkV irregular form6 (mkRoot "t-m-'") (mkPattern "a" "a")
"ttamajt" "ttamajt" "ttama" "ttamat" "ttamajna" "ttamajtu" "ttamaw"
"nittama" "tittama" "jittama" "tittama" "nittamaw" "tittamaw" "jittamaw"
"ttama" "ttamaw"
;
tama'_TMGH_1_9912_V = mkV "tama'" (mkRoot "t-m-għ") ;
tamma'_TMGH_2_9913_V = mkV_II "tamma'" (mkRoot "t-m-għ") ;
ttamma'_TMGH_5_9914_V = mkV_V "ttamma'" (mkRoot "t-m-għ") ;
@@ -3380,7 +3457,11 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
wieled_WLD_3_10059_V = mkV_III "wieled" (mkRoot "w-l-d") ;
twelled_WLD_5_10060_V = mkV_V "twelled" (mkRoot "w-l-d") ;
twieled_WLD_6_10061_V = mkV_VI "twieled" (mkRoot "w-l-d") ;
emmen_WMN_1_10062_V = mkV "emmen" (mkRoot "w-m-n") ;
emmen_WMN_1_10062_V = irregularV form1 (mkRoot "w-m-n") (mkPattern "e" "e")
"emmint" "emmint" "emmen" "emmnet" "emminna" "emmintu" "emmnu"
"nemmen" "temmen" "jemmen" "temmen" "nemmnu" "temmnu" "jemmnu"
"emmen" "emmnu"
;
wemmen_WMN_2_10063_V = mkV_II "wemmen" (mkRoot "w-m-n") ;
twemmen_WMN_5_10064_V = mkV_V "twemmen" (mkRoot "w-m-n") ;
wennes_WNS_2_10065_V = mkV_II "wennes" (mkRoot "w-n-s") ;
@@ -4085,22 +4166,82 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
tghazza_GHZW_5_10764_V = mkV_V "tgħażża" (mkRoot "għ-ż-w") ;
hassel_HSL_2_10765_V = mkV_II "ħassel" (mkRoot "ħ-s-l") ;
thassel_HSL_5_10766_V = mkV_V "tħassel" (mkRoot "ħ-s-l") ;
ta_GHTJ_1_10767_V = mkV "ta" (mkRoot "għ-t-j") ;
ta_GHTJ_1_10767_V = irregularV form1 (mkRoot "għ-t-j") (mkPattern "a" [])
"tajt" "tajt" "ta" "tat" "tajna" "tajtu" "taw"
"nagħti" "tagħti" "jagħti" "tagħti" "nagħtu" "tagħtu" "jagħtu"
"agħti" "agħtu"
;
nghata_GHTJ_7_10768_V = mkV_VII "għata" "ngħata" (mkRoot "għ-t-j") ;
-- idda_'DJ_8_10771_V = mkV_VIII "idda" (mkRoot "'-d-j") ;
-- idden_'DN_2_10772_V = mkV_II "idden" (mkRoot "'-d-n") ;
-- stieden_'DN_10_10773_V = mkV_X "stieden" (mkRoot "'-d-n") ;
-- af_''F_1_10774_V = mkV "af" (mkRoot "'-'-f") ;
-- ntaf_''F_7_10775_V = mkV_VII "af" "ntaf" (mkRoot "'-'-f") ;
-- ha_'HD_1_10776_V = mkV "ħa" (mkRoot "'-ħ-d") ;
-- ttiehed_'HD_6_10777_V = mkV_VI "ttieħed" (mkRoot "'-ħ-d") ;
-- staha_'HJ_10_10778_V = mkV_X "staħa" (mkRoot "'-ħ-j") ;
-- amar_'MR_1_10779_V = mkV "amar" (mkRoot "'-m-r") ;
-- amba_'MB_1_10780_V = mkV "amba" (mkRoot "'-m-b") ;
-- stenna_'NJ_10_10781_V = mkV_X "stenna" (mkRoot "'-n-j") ;
-- stienes_'NS_10_10782_V = mkV_X "stienes" (mkRoot "'-n-s") ;
-- izza_'ZJ_2_10783_V = mkV_II "iżża" (mkRoot "'-ż-j") ;
-- azzem_'ZM_2_10784_V = mkV_II "ażżem" (mkRoot "'-ż-m") ;
idda_'DJ_8_10771_V = irregularV form8 (mkRoot "'-d-j") (mkPattern "i" "e")
"iddejt" "iddejt" "idda" "iddiet" "iddejna" "iddejtu" "iddew"
"niddi" "tiddi" "jiddi" "tiddi" "niddu" "tiddu" "jiddu"
"iddi" "iddu"
;
idden_'DN_2_10772_V = irregularV form2 (mkRoot "'-d-n") (mkPattern "i" "e")
"iddint" "iddint" "idden" "iddnet" "iddinna" "iddinntu" "iddnu"
"nidden" "tidden" "jidden" "tidden" "niddnu" "tiddnu" "jiddnu"
"idden" "iddnu"
;
stieden_'DN_10_10773_V = irregularV form10 (mkRoot "'-d-n") (mkPattern "ie" "e")
"stedint" "stedint" "stieden" "stiednet" "stedinna" "stedintu" "stiednu"
"nistieden" "tistieden" "jistieden" "tistieden" "nistiednu" "tistiednu" "jistiednu"
"stieden" "stiednu"
;
af_''F_1_10774_V = irregularV form1 (mkRoot "'-'-f") (mkPattern "a" [])
"kont naf" "kont taf" "kien jaf" "kienet taf" "konna nafu" "kontu tafu" "kienu jafu" --- will fail for negative
"naf" "taf" "jaf" "taf" "nafu" "tafu" "jafu"
"kun af" "kunu afu"
;
ntaf_''F_7_10775_V = irregularV form2 (mkRoot "'-'-f") (mkPattern "a" [])
"ntafejt" "ntafejt" "ntaf" "ntafet" "ntafna" "ntaftu" "ntafu"
"nintaf" "tintaf" "jintaf" "tintaf" "nintafu" "tintafu" "jintafu"
"ntaf" "ntafu"
;
ha_'HD_1_10776_V = irregularV form1 (mkRoot "'-ħ-d") (mkPattern "a" [])
"ħadt" "ħadt" "ħa" "ħadet" "ħadna" "ħadtu" "ħadu"
"nieħu" "tieħu" "jieħu" "tieħu" "nieħdu" "tieħdu" "jieħdu"
"ħu" "ħudu"
;
ttiehed_'HD_6_10777_V = irregularV form6 (mkRoot "'-ħ-d") (mkPattern "ie" "e")
"ttieħedt" "ttieħedt" "ttieħed" "ttieħdet" "ttieħedna" "ttieħedtu" "ttieħdu"
"nittieħed" "tittieħed" "jittieħed" "tittieħed" "nittieħdu" "tittieħdu" "jittieħdu"
"ttieħed" "ttieħdu"
;
staha_'HJ_10_10778_V = irregularV form10 (mkRoot "'-ħ-j") (mkPattern "a" "a")
"stħajt" "stħajt" "staħa" "stħiet" "stħajna" "stħajtu" "stħew"
"nistħi" "tistħi" "jistħi" "tistħi" "nistħu" "tistħu" "jistħu"
"istħi" "istħu"
;
amar_'MR_1_10779_V = irregularV form1 (mkRoot "'-m-r") (mkPattern "a" "a") -- order, command
"amart" "amart" "amar" "amret" "amarna" "amartu" "amraw"
"namar" "tamar" "jamar" "tamar" "namraw" "tamraw" "jamraw"
"amar" "amraw"
;
amba_'MB_1_10780_V = irregularV form1 (mkRoot "'-m-b") (mkPattern "a" "a")
"ambajt" "ambajt" "amba" "ambat" "ambajna" "ambajtu" "ambaw"
"namba" "tamba" "jamba" "tamba" "nambaw" "tambaw" "jambaw"
"amba" "ambaw"
;
stenna_'NJ_10_10781_V = irregularV form10 (mkRoot "'-n-j") (mkPattern "e" "a")
"stennejt" "stennejt" "stenna" "stenniet" "stennejna" "stennejtu" "stennew"
"nistenna" "tistenna" "jistenna" "tistenna" "nistennew" "tistennew" "jistennew"
"stenna" "stennew"
;
stienes_'NS_10_10782_V = mkV irregular form10 (mkRoot "'-n-s") (mkPattern "ie" "e")
"stienist" "stienist" "stienes" "stienset" "stienisna" "stienistu" "stiensu"
"nistienes" "tistienes" "jistienes" "tistienes" "nistiensu" "tistiensu" "jistiensu"
"stienes" "stiensu"
;
izza_'ZJ_2_10783_V = irregularV form2 (mkRoot "'-ż-j") (mkPattern "i" "a")
"iżżajt" "iżżajt" "iżża" "iżżat" "iżżajna" "iżżajtu" "iżżaw"
"niżżi" "tiżżi" "jiżżi" "tiżżi" "niżżu" "tiżżu" "jiżżu"
"iżżi" "iżżu"
;
azzem_'ZM_2_10784_V = irregularV form2 (mkRoot "'-ż-m") (mkPattern "a" "e")
"ażżimt" "ażżimt" "ażżem" "ażżmet" "ażżimna" "ażżimtu" "ażżmu"
"nażżem" "tażżem" "jażżem" "tażżem" "nażżmu" "tażżmu" "jażżmu"
"ażżem" "ażżmu"
;
zanqar_ZNQR_1_10785_V = mkV "żanqar" (mkRoot "ż-n-q-r") ;
zanzan_ZNZN_1_10786_V = mkV "żanżan" (mkRoot "ż-n-ż-n") ;
zzanzan_ZNZN_2_10787_V = mkV_II "żżanżan" (mkRoot "ż-n-ż-n") ;
@@ -4131,8 +4272,16 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
pexxex_PXX_2_10812_V = mkV_II "pexxex" (mkRoot "p-x-x") ;
penpen_PNPN_1_10813_V = mkV "penpen" (mkRoot "p-n-p-n") ;
hezzez_HZZ_2_10814_V = mkV_II "heżżeż" (mkRoot "h-ż-ż") ;
-- wera_R'J_1_10815_V = mkV "wera" (mkRoot "r-'-j") ;
-- ntara_R'J_7_10816_V = mkV_VII "ara" "ntara" (mkRoot "r-'-j") ;
wera_R'J_1_10815_V = irregularV form4 (mkRoot "r-'-j") (mkPattern "e" "a")
"urejt" "urejt" "wera" "uriet" "urejna" "urejtu" "urejna"
"nuri" "turi" "juri" "turi" "nuru" "turu" "juru"
"uri" "uru"
;
ntara_R'J_7_10816_V = irregularV form7 (mkRoot "r-'-j") (mkPattern "a" "a")
"ntrajt" "ttarajt" "ntara" "ttarat" "ntrajna" "ntrajtu" "ntraw"
"nintara" "tintara" "jintara" "tintara" "nintaraw" "tintaraw" "jintaraw"
"ntara" "ntaraw"
;
qass_QSS_1_10817_V = mkV "qass" (mkRoot "q-s-s") ;
ntqass_QSS_7_10818_V = mkV_VII "qass" "ntqass" (mkRoot "q-s-s") ;
tgharref_GHRF_5_10819_V = mkV_V "tgħarref" (mkRoot "għ-r-f") ;
@@ -4144,4 +4293,12 @@ concrete DictMlt of DictMltAbs = CatMlt ** open ParadigmsMlt in {
itteka_TKW_1_10825_V = mkV "itteka" (mkRoot "t-k-w") ;
ntemm_TMM_7_10826_V = mkV_VII "temm" "ntemm" (mkRoot "t-m-m") ;
nghadda_GHDJ_7_10828_V = mkV_VII "għadda" "ngħadda" (mkRoot "għ-d-j") ;
-- Loan verbs
lin
mbotta_V = mkV "mbotta" ;
vvjagga_V = mkV "vvjaġġa" ;
ffriza_V = mkV "ffriża" ;
kkuntempla_V = mkV "kkuntempla" ;
}

View File

@@ -2,6 +2,7 @@
abstract DictMltAbs = Cat ** {
-- Root-and-pattern verbs
fun
badbad_BDBD_1_6674_V : V ;
tbadbad_BDBD_2_6675_V : V ;
@@ -759,8 +760,8 @@ abstract DictMltAbs = Cat ** {
balla'_BLGH_2_7436_V : V ;
tballa'_BLGH_5_7437_V : V ;
nbela'_BLGH_7_7438_V : V ;
belleh_BLHN_2_7439_V : V ;
tbelleh_BLHN_5_7440_V : V ;
blehhen_BLHN_1_7439_V : V ;
tblehhen_BLHN_2_7440_V : V ;
bell_BLL_1_7441_V : V ;
bellel_BLL_2_7442_V : V ;
tbell_BLL_5_7443_V : V ;
@@ -861,9 +862,9 @@ abstract DictMltAbs = Cat ** {
bexxex_BXX_2_7538_V : V ;
tbexxex_BXX_5_7539_V : V ;
nbexx_BXX_7_7540_V : V ;
baza'_BZGH_1_7541_V : V ;
bazza'_BZGH_2_7542_V : V ;
tbazza'_BZGH_5_7543_V : V ;
beza'_BZGH_1_7541_V : V ;
bezza'_BZGH_2_7542_V : V ;
tbezza'_BZGH_5_7543_V : V ;
bizel_BZL_1_7544_V : V ;
bizzel_BZL_2_7545_V : V ;
tbizzel_BZL_5_7546_V : V ;
@@ -1145,8 +1146,12 @@ abstract DictMltAbs = Cat ** {
faggar_FGR_2_7822_V : V ;
nfagar_FGR_7_7823_V : V ;
faghal_FGHL_1_7824_V : V ;
nftehem_FHM_7_7825_V : V ;
ftiehem_FHM_8_7826_V : V ;
fehem_FHM_1_10830_V : V ;
fehhem_FHM_2_10832_V : V ;
fiehem_FHM_3_10831_V : V ;
tfehem_FHM_6_10833_V : V ;
nfehem_FHM_7_7825_V : V ;
ftehem_FHM_8_7826_V : V ;
fahal_FHL_1_7827_V : V ;
fahhal_FHL_2_7828_V : V ;
tfahhal_FHL_5_7829_V : V ;
@@ -4141,4 +4146,11 @@ abstract DictMltAbs = Cat ** {
itteka_TKW_1_10825_V : V ;
ntemm_TMM_7_10826_V : V ;
nghadda_GHDJ_7_10828_V : V ;
-- Loan verbs
fun
mbotta_V : V ;
vvjagga_V : V ;
ffriza_V : V ;
kkuntempla_V : V ;
}

View File

@@ -7,39 +7,41 @@
--# -path=.:../abstract:../common:../prelude
concrete LexiconMlt of Lexicon = CatMlt **
open Prelude, ParadigmsMlt, IrregMlt in {
open Prelude, ParadigmsMlt, IrregMlt, DictMlt in {
flags
optimize=values ;
coding=utf8 ;
lin
-- add_V3
-- alas_Interj
-- already_Adv
add_V3 = mkV3 zied_ZJD_1_10424_V maP ;
airplane_N = mkN "ajruplan" ;
alas_Interj = ss "sfortunatament" ;
already_Adv = mkAdv "diġà" ;
animal_N = mkN "annimal" ;
answer_V2S = mkV_III "wieġeb" (mkRoot "w-ġ-b") ;
answer_V2S = lilV2 (wiegeb_WGB_3_10033_V) ;
apartment_N = mkN "appartament" ;
apple_N = mkNColl "tuffieħ" ;
art_N = mkNNoPlural "arti" feminine ;
-- ashes_N = mkN "rmied" ;
ask_V2Q = mkV "saqsa" (mkRoot "s-q-s-j") ;
ashes_N = mkN "rmied" "rmiet" ;
ask_V2Q = lilV2 (saqsa_SQSJ_1_7268_V) ;
baby_N = mkN "tarbija" "trabi" ;
back_N = possN (mkN "dahar" "dhur") ;
bad_A = brokenA "ħażin" "hżiena" "agħar" ;
bank_N = mkN "bank" "bankijiet" ; -- BANEK is for lotto booths!
bark_N = mkN "qoxra" "qoxriet" ;
beautiful_A = brokenA "sabiħ" "sbieħ" "isbaħ" ;
-- become_VA
become_VA = sar_SJR_1_9797_V ;
beer_N = mkN "birra" "birer" ;
-- beg_V2V
beg_V2V = mkV2V ttallab_TLB_5_9893_V ghalP minnP ;
belly_N = possN (mkN "żaqq" "żquq") ;
big_A = brokenA "kbir" "kbar" "ikbar" ;
bike_N = mkN "rota" ;
bird_N = mkN "għasfur" "għasafar" ; -- feminine: GĦASFURA
bite_V2 = mkV "gidem" (mkRoot "g-d-m") ;
bite_V2 = lilV2 (gidem_GDM_1_8009_V) ;
black_A = mkA "iswed" "sewda" "suwed" ;
blood_N = possN (mkN [] "demm" [] "dmija" []) ;
blow_V = mkV "nefaħ" (mkRoot "n-f-ħ") ;
blow_V = nefah_NFH_1_8966_V ;
blue_A = sameA "blu" ;
boat_N = mkN "dgħajsa" "dgħajjes" ;
bone_N = mkNColl "għadam" ;
@@ -48,15 +50,15 @@ concrete LexiconMlt of Lexicon = CatMlt **
boss_N = mkN "mgħallem" "mgħallmin" ;
boy_N = mkN "tifel" "tfal" ;
bread_N = mkNColl "ħobż" ;
break_V2 = mkV "kiser" (mkRoot "k-s-r") ;
break_V2 = dirV2 (kiser_KSR_1_8636_V) ;
breast_N = possN (mkN "sider" "sdur") ; -- also ISDRA
-- breathe_V
-- breathe_V -- ĦA N-NIFS
broad_A = mkA "wiesgħa" "wiesgħa" "wiesgħin" ;
brother_N2 = mkN2 (possN (mkN "ħu" "aħwa")) ;
brown_A = sameA "kannella" ;
burn_V = mkV "ħaraq" (mkRoot "ħ-r-q") ;
burn_V = haraq_HRQ_1_8367_V ;
butter_N = mkN [] "butir" [] "butirijiet" [] ;
buy_V2 = mkV_VIII "xtara" (mkRoot "x-r-j") ;
buy_V2 = dirV2 (xtara_XRJ_8_10296_V) ;
camera_N = mkN "kamera" "kameras" ;
cap_N = mkN "beritta" ;
car_N = mkN "karozza" ;
@@ -65,76 +67,77 @@ concrete LexiconMlt of Lexicon = CatMlt **
ceiling_N = mkN "saqaf" "soqfa";
chair_N = mkN "siġġu" "siġġijiet" ;
cheese_N = mkNColl "ġobon" ;
-- child_N = mkN "tfajjel" ; -- Not an easy one...
child_N = mkN "tifel" "tfal" ; -- feminine: TIFLA
church_N = mkN "knisja" "knejjes" ;
city_N = mkN "belt" "bliet" feminine ;
clean_A = brokenA "nadif" "nodfa" ;
clever_A = regA "bravu" ;
close_V2 = mkV "għalaq" (mkRoot "għ-l-q") ;
close_V2 = dirV2 (ghalaq_GHLQ_1_10530_V) ;
cloud_N = mkNColl "sħab" ;
coat_N = mkN "kowt" "kowtijiet" ;
cold_A = mkA "kiesaħ" "kiesħa" "kesħin" ;
-- come_V
come_V = gie_GJ'_1_8123_V ;
computer_N = mkN "kompjuter" "kompjuters" ;
correct_A = regA "korrett" ;
count_V2 = mkV "għadd" (mkRoot "għ-d-d") ;
count_V2 = dirV2 (ghadd_GHDD_1_10460_V) ;
country_N = possN (mkN "pajjiż") ;
cousin_N = possN (mkN "kuġin") ; -- feminine: KUĠINA
cow_N = mkN "baqra" "baqar" "baqartejn" [] [] ;
cut_V2 = mkV "qata'" (mkRoot "q-t-għ") ;
cut_V2 = dirV2 (qata'_QTGH_1_9305_V) ;
day_N = mkN "ġurnata" "ġranet" ;
dig_V = mkV "ħafer" (mkRoot "ħ-f-r") ;
die_V = miet_MWT_1_8923_V ;
dig_V = hafer_HFR_1_8233_V ;
dirty_A = regA "maħmuġ" ;
distance_N3 = mkN "distanza" ;
do_V2 = mkV "għamel" (mkRoot "għ-m-l") ;
do_V2 = dirV2 (ghamel_GHML_1_10544_V) ;
doctor_N = mkN "tabib" "tobba" ; -- feminine: TABIBA
dog_N = mkN "kelb" "klieb" ;
door_N = mkN "bieb" "bibien" ;
drink_V2 = mkV "xorob" (mkRoot "x-r-b") ;
drink_V2 = dirV2 (xorob_XRB_1_10231_V) ;
dry_A = regA "niexef" ;
dull_A = sameA "tad-dwejjaq" ;
dust_N = mkNColl "trab" ; -- not sure but sounds right
ear_N = possN (mkNDual "widna") ;
earth_N = mkN "art" "artijiet" feminine ;
-- easy_A2V
-- eat_V2
easy_A2V = sameA "faċli" ;
eat_V2 = dirV2 (kiel_KJL_1_8672_V) ;
egg_N = mkNColl "bajd" ;
empty_A = mkA "vojt" "vojta" "vojta" ;
enemy_N = mkN "għadu" "għedewwa" ;
eye_N = possN (mk5N "għajn" [] "għajnejn" "għajnejn" "għejun" feminine) ;
factory_N = mkN "fabbrika" ;
fall_V = mkV "waqa'" (mkRoot "w-q-għ") ;
-- far_Adv
fall_V = waqa'_WQGH_1_10070_V ;
far_Adv = mkAdv "il-bogħod" ; -- use glue?
fat_N = mkNColl "xaħam" ;
father_N2 = mkN2 (possN (mkN "missier" "missierijiet")) ;
-- fear_V2
-- fear_VS
fear_V2 = prepV2 (beza'_BZGH_1_7541_V) minnP ;
fear_VS = beza'_BZGH_1_7541_V;
feather_N = mkNColl "rix" ;
fight_V2 = mkV_VI "ġġieled" (mkRoot "ġ-l-d") ;
find_V2 = mkV "sab" (mkRoot "s-j-b") ;
fight_V2 = prepV2 (ggieled_GLD_6_8074_V) maP ;
find_V2 = lilV2 (sab_SJB_1_9779_V) ;
fingernail_N = possN (mkN "difer" [] "difrejn" "dwiefer" []) ;
fire_N = mkN "nar" "nirien" ;
fish_N = mkNColl "ħut" ;
-- float_V
earth_N = mkN "art" "artijiet" feminine ;
-- flow_V
floor_N = mkN "art" "artijiet" feminine ;
flower_N = mkN "fjura" ;
fly_V = mkV "tar" (mkRoot "t-j-r") ;
-- flow_V
fly_V = tar_TJR_1_9972_V ;
fog_N = mkN [] "ċpar" [] [] [] ;
foot_N = possN (mk5N "sieq" [] "saqajn" "saqajn" [] feminine) ;
forest_N = mkN "foresta" ; -- also MASĠAR
forget_V2 = mkV "nesa" (mkRoot "n-s-j") ;
-- freeze_V
forget_V2 = lilV2 (nesa_NSJ_1_9126_V) ;
freeze_V = ffriza_V ;
fridge_N = mkN "friġġ" "friġġijiet" ;
friend_N = possN (mkN "ħabib" "ħbieb") ; -- feminine: ĦABIBA
fruit_N = mkNColl "frott" ;
full_A = regA "mimli" ;
-- fun_AV
fun_AV = sameA "pjaċevoli" ;
garden_N = mkN "ġnien" "ġonna" ;
girl_N = mkN "tifla" "tfal" ;
-- give_V3
give_V3 = mkV3 ta_GHTJ_1_10767_V lilP ;
glove_N = mkN "ingwanta" ;
go_V = mkV "mar" (mkRoot "m-w-r") ;
go_V = mar_MWR_1_8918_V ;
gold_N = mkN [] "deheb" [] "dehbijiet" [] ;
good_A = mkA "tajjeb" "tajba" "tajbin" ;
grammar_N = mkN "grammatika" ;
@@ -145,62 +148,62 @@ concrete LexiconMlt of Lexicon = CatMlt **
hand_N = possN (mk5N "id" [] "idejn" "idejn" [] feminine) ;
harbour_N = mkN "port" "portijiet" ;
hat_N = mkN "kappell" "kpiepel" ;
-- hate_V2
hate_V2 = lilV2 (baghad_BGHD_1_7402_V) ;
head_N = possN (mkN "ras" "rjus" feminine) ;
hear_V2 = mkV "sema'" (mkRoot "s-m-għ") ;
hear_V2 = lilV2 (sema'_SMGH_1_9698_V) ;
heart_N = possN (mkN "qalb" "qlub" feminine) ;
heavy_A = brokenA "tqil" "tqal" "itqal" ;
hill_N = mkN "għolja" "għoljiet" ;
hit_V2 = mkV "laqat" (mkRoot "l-q-t") ;
-- hold_V2
hope_VS = mkV_VIII "xtaq" (mkRoot "x-w-q") ;
hit_V2 = lilV2 (laqat_LQT_1_8772_V) ;
hold_V2 = lilV2 (zamm_ZMM_1_10392_V) ;
hope_VS = xtaq_XWQ_8_10313_V ;
horn_N = mkN "ħorn" "ħornijiet" ;
horse_N = mkN "żiemel" "żwiemel" ;
hot_A = brokenA "sħun" "sħan" ;
hot_A = mkA "jaħraq" "taħraq" "jaħarqu" ;
house_N = mkN "dar" "djar" feminine ;
-- hunt_V2
hunt_V2 = prepV2 (kaccac_KCC_2_8571_V) ghalP ;
husband_N = mkN "raġel" "rġiel" ;
ice_N = mkN "silġ" "silġiet" ;
important_A = sameA "importanti" ;
industry_N = mkN "industrija" ;
iron_N = mk5N "ħadida" "ħadid" [] "ħadidiet" "ħdejjed" masculine ;
john_PN = mkPN "Ġanni" masculine singular ;
jump_V = mkV "qabeż" (mkRoot "q-b-ż") ;
kill_V2 = mkV "qatel" "oqtol" (mkRoot "q-t-l") ;
jump_V = qabez_QBZ_1_9182_V ;
kill_V2 = lilV2 (qatel_QTL_1_9312_V) ;
king_N = mkN "re" "rejjiet" ;
knee_N = possN (mkN "rkoppa" [] "rkopptejn" "rkoppiet" []) ; -- TODO use mkNDual
-- know_V2
-- know_VQ
-- know_VS
know_V2 = lilV2 (af_''F_1_10774_V) ;
know_VQ = af_''F_1_10774_V ;
know_VS = af_''F_1_10774_V ;
lake_N = mkN "għadira" "għadajjar" ;
lamp_N = mkN "lampa" ;
language_N = mkN "lingwa" ; -- lsien?
laugh_V = mkV "daħak" (mkRoot "d-ħ-k") ;
laugh_V = dahak_DHK_1_7688_V ;
leaf_N = mkN "werqa" "weraq" "werqtejn" "werqiet" [] ;
learn_V2 = mkV_V "tgħallem" (mkRoot "għ-l-m") ;
learn_V2 = dirV2 (tghallem_GHLM_5_10527_V) ;
leather_N = mkN "ġilda" "ġild" [] "ġildiet" "ġlud" ; -- mkNColl "ġild" ;
leave_V2 = mkV "telaq" (mkRoot "t-l-q") ;
-- left_Ord
leave_V2 = prepV2 (telaq_TLQ_1_9903_V) minnP ;
left_Ord = mkOrd "xellug" ;
leg_N = possN (mkN "riġel" [] "riġlejn" [] []) ; -- SIEQ
lie_V = mkV_VIII "mtedd" (mkRoot "m-d-d") ;
-- like_V2
listen_V2 = mkV "sema'" (mkRoot "s-m-għ") ;
live_V = mkV "għex" (mkRoot "għ-j-x") ;
lie_V = mtedd_MDD_8_8816_V ; -- lie down
like_V2 = lilV2 (ghogob_GHGB_1_10485_V) ;
listen_V2 = lilV2 (sema'_SMGH_1_9698_V) ;
live_V = ghex_GHJX_1_10711_V ;
liver_N = mkN "fwied" [] [] [] "ifdwa" ;
long_A = brokenA "twil" "twal" "itwal" ;
lose_V2 = mkV "tilef" (mkRoot "t-l-f") ;
lose_V2 = lilV2 (tilef_TLF_1_9895_V) ;
louse_N = mkN "qamla" "qamliet" ;
love_N = mkN "mħabba" "mħabbiet" ;
love_V2 = mkV "ħabb" (mkRoot "ħ-b-b") ;
love_V2 = lilV2 (habb_HBB_1_8174_V) ;
man_N = mkN "raġel" "rġiel" ;
-- married_A2
married_A2 = mkA2 (mkA "miżżewweġ" "miżżewġa") lilP ;
meat_N = mkN "laħam" [] [] "laħmiet" "laħmijiet" ;
milk_N = mkN [] "ħalib" [] "ħalibijiet" "ħlejjeb" ;
moon_N = mkN "qamar" "oqmra" ; -- QMURA
mother_N2 = mkN2 (possN (mkN "omm" "ommijiet" feminine)) ;
mountain_N = mkN "muntanja" ;
mouth_N = possN (mkN "ħalq" "ħluq") ;
music_N = mkNNoPlural "musika" ;
music_N = mkN "mużika" "mużiki" ;
name_N = possN (mkN "isem" "ismijiet") ;
narrow_A = mkA "dejjaq" "dejqa" "dojoq" "idjaq" ;
near_A = regA "viċin" ;
@@ -209,12 +212,12 @@ concrete LexiconMlt of Lexicon = CatMlt **
newspaper_N = mkN "gazzetta" ;
night_N = mkN "lejl" "ljieli" ;
nose_N = possN (mkN "mnieħer" "mniħrijiet") ;
-- now_Adv
now_Adv = mkAdv "issa" ;
number_N = mkN "numru" ;
oil_N = mkN "żejt" "żjut" ;
old_A = brokenA "qadim" "qodma" "eqdem" ;
open_V2 = mkV "fetaħ" (mkRoot "f-t-ħ") ;
-- paint_V2A
open_V2 = dirV2 (fetah_FTH_1_7932_V) ;
paint_V2A = dirV2 (pitter_PTR_2_9152_V) ;
paper_N = mkN "karta" ;
paris_PN = mkPN "Pariġi" feminine singular ;
peace_N = mkN "paċi" "paċijiet" feminine ;
@@ -222,26 +225,26 @@ concrete LexiconMlt of Lexicon = CatMlt **
person_N = mk5N [] "persuna" [] "persuni" [] masculine ;
planet_N = mkN "pjaneta" ;
plastic_N = mkNNoPlural "plastik" ;
play_V = mkV "lagħab" (mkRoot "l-għ-b") ;
play_V = mkV "lagħab" (mkRoot "l-għ-b") ;
play_V = daqq_DQQ_1_7736_V ;
play_V2 = prepV2 (laghab_LGHB_1_8724_V) maP ;
policeman_N = mkNNoPlural "pulizija" ;
priest_N = mkN "qassis" "qassisin" ;
-- probable_AS
pull_V2 = mkV "ġibed" (mkRoot "ġ-b-d") ;
-- push_V2
put_V2 = mkV_III "qiegħed" (mkRoot "q-għ-d") ;
probable_AS = mkAS (sameA "probabbli") ;
pull_V2 = lilV2 (gibed_GBD_1_8043_V) ;
push_V2 = dirV2 (mbotta_V) ; -- GĦAFAS
put_V2 = lilV2 (qieghed_QGHD_3_9212_V) ;
queen_N = mkN "reġina" "rġejjen" ;
question_N = mkN "mistoqsija" "mistoqsijiet" ; -- DOMANDA
radio_N = mkN "radju" "radjijiet" ;
rain_N = mkNNoPlural "xita" ;
-- rain_V0
read_V2 = mkV "qara" (mkRoot "q-r-j") ;
rain_V0 = xita_XTW_1_10297_V ; -- TAGĦMEL IX-XITA
read_V2 = dirV2 (qara_QRJ_1_9350_V) ;
ready_A = regA "lest" ;
reason_N = mkN "raġun" "raġunijiet" ;
red_A = mkA "aħmar" "ħamra" "ħomor" ;
religion_N = mkN "reliġjon" "reliġjonijiet" ;
restaurant_N = mkN "restorant" ;
-- right_Ord
right_Ord = mkOrd "lemin" ;
river_N = mkN "xmara" "xmajjar" ;
road_N = mk5N "triq" [] [] "triqat" "toroq" feminine ;
rock_N = mkN "blata" "blat" [] "blatiet" "blajjiet" ; -- in dictionary BLAT and BLATA are separate!
@@ -250,23 +253,23 @@ concrete LexiconMlt of Lexicon = CatMlt **
rope_N = mkN "ħabel" "ħbula" ;
rotten_A = mkA "mħassar" "mħassra" "mħassrin" ;
round_A = regA "tond" ;
-- rub_V2
rub_V2 = dirV2 (ghorok_GHRK_1_10599_V) ;
rubber_N = mkN "gomma" "gomom" ;
rule_N = mkN "regola" ;
run_V = mkV "ġera" (mkRoot "ġ-r-j") ;
run_V = gera_GRJ_1_8131_V ;
salt_N = mkN "melħ" "melħiet" ;
sand_N = mkN "ramla" "ramel" [] "ramliet" "rmiel" ;
-- say_VS
say_VS = qal_QWL_1_9357_V ;
school_N = mkN "skola" "skejjel" ;
science_N = mkN "xjenza" ;
scratch_V2 = mkV "barax" (mkRoot "b-r-x") ;
scratch_V2 = lilV2 (barax_BRX_1_7504_V) ;
sea_N = mkN "baħar" [] "baħrejn" "ibħra" [] ;
-- see_V2
see_V2 = lilV2 (ra_R'J_1_9513_V) ;
seed_N = mkN "żerriegħa" "żerrigħat" ;
seek_V2 = mkV_II "fittex" (mkRoot "f-t-x") ;
sell_V3 = mkV "biegħ" (mkRoot "b-j-għ") ;
send_V3 = mkV "bagħat" (mkRoot "b-għ-t") ;
sew_V = mkV "ħat" (mkRoot "ħ-j-t") ;
seek_V2 = lilV2 (fittex_FTX_2_7952_V) ;
sell_V3 = mkV3 biegh_BJGH_1_7565_V lilP ;
send_V3 = mkV3 baghat_BGHT_1_7412_V lilP ;
sew_V = hat_HJT_1_8508_V ;
sharp_A = mkA "jaqta'" "taqta'" "jaqtgħu" ;
sheep_N = mkN "nagħġa" "nagħaġ" [] "nagħġiet" [] ;
ship_N = mkN "vapur" ;
@@ -275,89 +278,104 @@ concrete LexiconMlt of Lexicon = CatMlt **
shop_N = mkN "ħanut" "ħwienet" ;
short_A = brokenA "qasir" "qosra" "iqsar" ;
silver_N = mkN "fidda" "fided" ;
sing_V = mkV "kanta" (mkRoot "k-n-t-j") ;
sing_V = kanta_KNTJ_1_7016_V ;
sister_N = possN (mkN "oħt" "aħwa" feminine) ;
sit_V = mkV_II "poġġa" (mkRoot "p-ġ-j") ;
sit_V = pogga_PGJ_2_9157_V ;
skin_N = mkN "ġilda" "ġildiet" ;
sky_N = mkN "sema" "smewwiet" masculine ;
sleep_V = mkV "raqad" (mkRoot "r-q-d") ;
sleep_V = raqad_RQD_1_9469_V ;
small_A = brokenA "zgħir" "zgħar" "iżgħar" ;
smell_V = mkV "xamm" (mkRoot "x-m-m") ;
smell_V = xamm_XMM_1_10207_V ;
smoke_N = mkN "duħħan" "dħaħen" ;
smooth_A = regA "lixx" ;
snake_N = mkN "serp" "sriep" ;
snow_N = mkN [] "borra" [] [] [] ;
sock_N = mkN "kalzetta" ;
song_N = mkN "kanzunetta" ;
-- speak_V2
spit_V = mkV "beżaq" (mkRoot "b-ż-q") ;
split_V2 = mkV "qasam" (mkRoot "q-s-m") ;
-- squeeze_V2
stab_V2 = mkV_II "mewwes" (mkRoot "m-w-s") ;
speak_V2 = prepV2 (kellem_KLM_2_8597_V) maP ;
spit_V = bezaq_BZQ_1_7549_V ;
split_V2 = lilV2 (qasam_QSM_1_9292_V) ;
squeeze_V2 = dirV2 (ghasar_GHSR_1_10625_V) ;
stab_V2 = lilV2 (mewwes_MWS_2_8921_V) ;
-- stand_V
star_N = mkN "stilla" "stilel" ;
steel_N = mkNNoPlural "azzar" ;
stick_N = mkN "lasta" ;
stone_N = mkN "ġebla" "ġebel" [] "ġebliet" "ġbiel" ;
stop_V = mkV "waqaf" (mkRoot "w-q-f") ;
stop_V = waqaf_WQF_1_10067_V ;
stove_N = mkN "kuker" "kukers" ; -- FUKLAR
straight_A = regA "dritt" ;
student_N = mkN "student" ;
stupid_A = mkA "iblah" "belha" "boloh" ;
suck_V2 = mkV "rada'" (mkRoot "r-d-għ") ;
suck_V2 = lilV2 (rada'_RDGH_1_9388_V) ;
sun_N = mkN "xemx" "xmux" feminine ;
swell_V = mkV_VIII "ntefaħ" (mkRoot "n-f-ħ") ;
swim_V = mkV "għam" (mkRoot "għ-w-m") ;
switch8off_V2 = mkV "tefa" (mkRoot "t-f-j") ;
switch8on_V2 = mkV "xegħel" (mkRoot "x-għ-l") ;
swell_V = ntefah_NFH_8_8970_V ;
swim_V = gham_GHWM_1_10750_V ;
switch8off_V2 = dirV2 (tefa_TFJ_1_9960_V) ;
switch8on_V2 = dirV2 (xeghel_XGHL_1_10155_V) ;
table_N = mkN "mejda" "mwejjed" ;
tail_N = possN (mkN "denb" "dnieb") ;
-- talk_V3
teach_V2 = mkV_II "għallem" (mkRoot "għ-l-m") ;
talk_V3 = mkV3 kellem_KLM_2_8597_V maP fuqP ; -- PAĊPAĊ, PARLA
teach_V2 = lilV2 (ghallem_GHLM_2_10526_V) ;
teacher_N = mkN "għalliem" "għalliema" ; -- feminine: GĦALLIEMA
television_N = mkN "televixin" "televixins" ;
thick_A = mkA "oħxon" "ħoxna" "ħoxnin" "eħxen" ;
thin_A = brokenA "rqiq" "rqaq" "rqaq" ;
think_V = mkV "ħaseb" (mkRoot "ħ-s-b") ;
throw_V2 = mkV_II "waddab" (mkRoot "w-d-b") ;
tie_V2 = mkV "qafel" (mkRoot "q-f-l") ;
-- today_Adv
think_V = haseb_HSB_1_8387_V ;
throw_V2 = dirV2 (waddab_WDB_2_10027_V) ;
tie_V2 = dirV2 (qafel_QFL_1_9206_V) ;
today_Adv = mkAdv "illum" ;
tongue_N = possN (mkN "lsien" "ilsna") ;
tooth_N = possN (mkN "sinna" [] [] "sinniet" "snien") ; -- DARSA
train_N = mkN "ferrovija" ;
-- travel_V
travel_V = vvjagga_V ;
tree_N = mkN "siġra" "siġar" [] "siġriet" [] ;
turn_V = mkV "dar" (mkRoot "d-w-r") ;
turn_V = dar_DWR_1_7803_V ;
ugly_A = mkA "ikrah" "kerha" "koroh" ;
uncertain_A = regA "inċert" ;
-- understand_V2 --- missing from dict
understand_V2 = lilV2 (fehem_FHM_1_10830_V) ;
university_N = mkN "università" "universitàjiet" ;
village_N = possN (mkN "raħal" "rħula") ; -- VILLAĠĠ
vomit_V = mkV "qala'" (mkRoot "q-l-għ") ;
-- wait_V2
walk_V = mkV "mexa" (mkRoot "m-x-j") ;
vomit_V = qala'_QLGH_1_9223_V ;
wait_V2 = lilV2 (stenna_'NJ_10_10781_V) ;
walk_V = mexa_MXJ_1_8926_V ;
war_N = mkN "gwerra" "gwerrer" ;
warm_A = hot_A ;
wash_V2 = mkV "ħasel" (mkRoot "ħ-s-l") ;
-- watch_V2
warm_A = brokenA "sħun" "sħan" ;
wash_V2 = lilV2 (hasel_HSL_1_8395_V) ;
watch_V2 = dirV2 (ra_R'J_1_9513_V) ;
water_N = mkN "ilma" "ilmijiet" masculine ;
wet_A = mkA "mxarrab" "mxarrba" "mxarrbin" ;
white_A = mkA "abjad" "bajda" "bojod" ;
wide_A = broad_A ;
wife_N = mkN "mara" "nisa" ;
win_V2 = mkV "rebaħ" (mkRoot "r-b-ħ") ;
win_V2 = dirV2 (rebah_RBH_1_9371_V) ;
wind_N = mkN "riħ" [] [] "rjieħ" "rjiħat" ;
window_N = mkN "tieqa" "twieqi" ;
wine_N = mkN [] "nbid" [] [] "nbejjed" ;
wing_N = mkN "ġewnaħ" "ġwienaħ" ;
wipe_V2 = mkV "mesaħ" (mkRoot "m-s-ħ") ;
wipe_V2 = dirV2 (mesah_MSH_1_8881_V) ;
woman_N = mkN "mara" "nisa" ;
-- wonder_VQ
wonder_VQ = kkuntempla_V ;
wood_N = mkN "injam" "injamiet" ;
worm_N = mkN "dudu" "dud" [] "dudiet" "dwied" ;
write_V2 = mkV "kiteb" (mkRoot "k-t-b") ;
write_V2 = dirV2 (kiteb_KTB_1_8641_V) ;
year_N = mkN "sena" [] "sentejn" "snin" [] ;
yellow_A = mkA "isfar" "safra" "sofor" ;
young_A = small_A ;
oper
fuqP = mkPrep "fuq" ;
ghandP = mkPrep "għand" ;
ghalP = mkPrep "għal" ;
minnP = mkPrep "minn" ;
goP = mkPrep "ġo" ;
lilP = mkPrep "lil" ;
maP = mkPrep "ma'" ;
taP = mkPrep "ta'" ;
biP = mkPrep "bi" ;
fiP = mkPrep "fi" ;
lilV2 : V -> V2 ;
lilV2 v = prepV2 v (mkPrep "lil") ;
} ;

View File

@@ -17,10 +17,11 @@ resource MorphoMlt = ResMlt ** open Prelude in {
oper
mkDeterminer : Number -> Str -> Determiner = \n,s -> {
s = \\gen => s ;
n = Num n ; -- Number -> NumForm
n = NumX n ; -- Number -> NumForm
clitic = [] ;
hasNum = False ;
isPron = False ;
isDefn = False ;
} ;
{- Pronoun -------------------------------------------------------------- -}

View File

@@ -15,22 +15,22 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
chooseNounNumForm : Det -> CN -> Str = \det,n ->
let
det' = det.s ! n.g ;
sing = n.s ! Singular Singulative ;
sing = n.s ! Singulative ;
coll = if_then_Str n.hasColl
(n.s ! Singular Collective) -- BAQAR
(n.s ! Plural Determinate) -- SNIEN
(n.s ! Collective) -- BAQAR
(n.s ! Plural) -- SNIEN
;
dual = n.s ! Dual ;
pdet = n.s ! Plural Determinate ;
pind = n.s ! Plural Indeterminate ;
plur = n.s ! Plural ;
-- pind = n.s ! Plural Indeterminate ;
in case det.n of {
Num Sg => det' ++ sing ; -- BAQRA
Num Pl => det' ++ coll ; -- BAQAR (coll) / ħafna SNIEN (pdet)
NumX Sg => det' ++ sing ; -- BAQRA
NumX Pl => det' ++ coll ; -- BAQAR (coll) / ħafna SNIEN (pdet)
Num0 => det' ++ sing ; -- L-EBDA BAQRA
Num1 => det' ++ sing ; -- BAQRA
Num2 => if_then_Str n.hasDual
dual -- BAQARTEJN
(det' ++ pdet) -- ŻEWĠ IRĠIEL
(det' ++ plur) -- ŻEWĠ IRĠIEL
;
Num3_10 => det' ++ coll ; -- TLETT BAQAR
Num11_19 => det' ++ sing ; -- ĦDAX-IL BAQRA
@@ -40,45 +40,51 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
lin
-- Det -> CN -> NP
DetCN det cn = {
s = \\c => case <det.isPron, cn.takesPron> of {
<True,True> => glue (cn.s ! numform2nounnum det.n) det.clitic ;
<True,_> => artDef ++ cn.s ! numform2nounnum det.n ++ det.s ! cn.g ;
_ => chooseNounNumForm det cn
s = table {
Nom => case <det.isPron, cn.takesPron> of {
<True,True> => glue (cn.s ! numform2nounnum det.n) det.clitic ;
<True,_> => artDef ++ cn.s ! numform2nounnum det.n ++ det.s ! cn.g ;
_ => chooseNounNumForm det cn
} ;
CPrep => cn.s ! numform2nounnum det.n
} ;
a = case (numform2nounnum det.n) of {
Singular _ => mkAgr cn.g Sg P3 ;
_ => mkAgr cn.g Pl P3
Singulative => mkAgr cn.g Sg P3 ; --- collective?
_ => mkAgr cn.g Pl P3
} ;
isPron = False ;
isDefn = det.isDefn ;
} ;
-- Quant -> Num -> Det
DetQuant quant num = {
s = \\gen =>
let gennum = case num.n of { Num Sg => GSg gen ; _ => GPl }
let gennum = case num.n of { NumX Sg => GSg gen ; _ => GPl }
in case quant.isDemo of {
True => quant.s ! gennum ++ artDef ++ num.s ! NumAdj ;
False => quant.s ! gennum ++ num.s ! NumAdj
} ;
n = num.n ;
clitic = quant.clitic ;
hasNum = num.hasCard ;
isPron = quant.isPron ;
clitic = quant.clitic ;
isDefn = quant.isDefn ;
} ;
-- Quant -> Num -> Ord -> Det
--- Almost an exact copy of DetQuant, consider factoring together
DetQuantOrd quant num ord = {
s = \\gen =>
let gennum = case num.n of { Num Sg => GSg gen ; _ => GPl }
let gennum = case num.n of { NumX Sg => GSg gen ; _ => GPl }
in case quant.isDemo of {
True => quant.s ! gennum ++ artDef ++ num.s ! NumAdj ++ ord.s ! NumAdj ;
False => quant.s ! gennum ++ num.s ! NumAdj ++ ord.s ! NumAdj
} ;
n = num.n ;
clitic = quant.clitic ;
hasNum = True ;
isPron = quant.isPron ;
clitic = quant.clitic ;
isDefn = quant.isDefn ;
} ;
-- Quant
@@ -87,12 +93,14 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
clitic = [] ;
isPron = False ;
isDemo = False ;
isDefn = True ;
} ;
IndefArt = {
s = \\_ => artIndef ;
clitic = [] ;
isPron = False ;
isDemo = False ;
isDefn = False ;
} ;
-- PN -> NP
@@ -100,6 +108,7 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
s = \\c => pn.s ;
a = pn.a ;
isPron = False ;
isDefn = False ;
} ;
-- Pron -> NP
@@ -110,6 +119,7 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
} ;
a = p.a ;
isPron = True ;
isDefn = False ;
} ;
-- Pron -> Quant
@@ -118,11 +128,12 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
clitic = p.s ! Suffixed Gen ;
isPron = True ;
isDemo = False ;
isDefn = True ;
} ;
-- Num
NumSg = {s = \\c => []; n = Num Sg ; hasCard = False} ;
NumPl = {s = \\c => []; n = Num Pl ; hasCard = False} ;
NumSg = {s = \\c => []; n = NumX Sg ; hasCard = False} ;
NumPl = {s = \\c => []; n = NumX Pl ; hasCard = False} ;
-- Card -> Num
NumCard n = n ** {hasCard = True} ;

View File

@@ -35,7 +35,29 @@ resource ParadigmsMlt = open
singular : Number = Sg ;
plural : Number = Pl ;
{- Noun paradigms ----------------------------------------------------- -}
form1 = FormI ;
form2 = FormII ;
form3 = FormIII ;
form4 = FormIV ;
form5 = FormV ;
form6 = FormVI ;
form7 = FormVII ;
form8 = FormVIII ;
form9 = FormIX ;
form10 = FormX ;
strong = Strong Regular ;
liquidMedial = Strong LiquidMedial ;
geminated = Strong Geminated ;
assimilative = Weak Assimilative ;
hollow = Weak Hollow ;
lacking = Weak Lacking ;
quad = Quad QStrong ;
quadWeak = Quad QWeak ;
loan = Loan ;
irregular = Irregular ;
{- Noun --------------------------------------------------------------- -}
-- Helper function for inferring noun plural from singulative
-- Nouns with collective & determinate forms should not use this...
@@ -216,78 +238,46 @@ resource ParadigmsMlt = open
takesPron = True ;
} ;
{-
-- Correctly abbreviate definite prepositions and join with noun
-- Params:
-- preposition (eg TAL, MAL, BĦALL)
-- noun
abbrevPrepositionDef : Str -> Str -> Str = \prep,noun ->
let
-- Remove either 1 or 2 l's
prepStem : Str = case prep of {
_ + "ll" => dropSfx 2 prep ;
_ + "l" => dropSfx 1 prep ;
_ => prep -- this should never happen, I don't think
}
in
case noun of {
("s"|#LiquidCons) + #Consonant + _ => prep + "-i" + noun ;
("għ" | #Vowel) + _ => case prep of {
("fil"|"bil") => (takePfx 1 prep) + "l-" + noun ;
_ => prep + "-" + noun
};
K@#CoronalConsonant + _ => prepStem + K + "-" + noun ;
#Consonant + _ => prep + "-" + noun ;
_ => []
} ;
-}
-- Correctly abbreviate indefinite prepositions and join with noun
-- Params:
-- preposition (eg TA', MA', BĦAL)
-- noun
abbrevPrepositionIndef : Str -> Str -> Str = \prep,noun ->
let
initPrepLetter = takePfx 1 prep ;
initNounLetter = takePfx 1 noun
in
if_then_Str (isNil noun) [] (
case prep of {
{- Preposition -------------------------------------------------------- -}
-- TA', MA', SA
_ + ("a'"|"a") =>
case noun of {
#Vowel + _ => initPrepLetter + "'" + noun ;
("għ" | "h") + #Vowel + _ => initPrepLetter + "'" + noun ;
_ => prep ++ noun
mkPrep = overload {
-- Same in all cases, e.g. FUQ
mkPrep : Str -> Prep = \fuq -> lin Prep {
s = \\defn => fuq ;
takesDet = False
} ;
-- Forms:
-- GĦAL ktieb / triq / ajruplan
-- GĦALL-ktieb / ajruplan
-- GĦAT-triq
mkPrep : Str -> Str -> Str -> Prep = \ghal,ghall,ghat -> lin Prep {
s = table {
Indefinite => ghal ;
Definite => makePreFull ghall (dropSfx 2 ghat) ghall
} ;
takesDet = True
} ;
-- FI, BI
_ + "i" =>
if_then_Str (pbool2bool (eqStr initPrepLetter initNounLetter))
(prep ++ noun)
(case noun of {
-- initPrepLetter + _ => prep ++ noun ;
#Vowel + _ => initPrepLetter + "'" + noun ;
#Consonant + #Vowel + _ => initPrepLetter + "'" + noun ;
#Consonant + "r" + #Vowel + _ => initPrepLetter + "'" + noun ;
_ => prep ++ noun
}) ;
-- Else leave untouched
_ => prep ++ noun
});
{- Prepositions ------------------------------------------------------- -}
mkPrep : Str -> Prep ; -- e.g. "in front of"
mkPrep p = lin Prep (ss p) ;
-- All forms:
-- BI ktieb/triq
-- B'ajruplan
-- BIL-ktieb
-- BIT-triq
-- BL-ajruplan
mkPrep : Str -> Str -> Str -> Str -> Str -> Prep = \bi,b',bil,bit,bl -> lin Prep {
s = table {
Indefinite => makePreVowel bi b' ;
Definite => makePreFull bil (dropSfx 2 bit) bl
} ;
takesDet = True
} ;
} ;
noPrep : Prep ; -- no preposition
noPrep = mkPrep [] ;
{- Verb paradigms ----------------------------------------------------- -}
{- Verb --------------------------------------------------------------- -}
-- Re-export ResMlt.mkRoot
mkRoot : Root = overload {
@@ -332,10 +322,6 @@ resource ParadigmsMlt = open
<_,_,_,_> => Predef.error("Cannot classify root:"++r.C1+"-"+r.C2+"-"+r.C3+"-"+r.C4)
} ;
-- Just get the non-suffixed forms of a verb, for quick testing
-- plainVerbTable : V -> (VForm => Str) = \v ->
-- \\tense => v.s ! tense ! VSuffixNone ! Pos ;
-- Smart paradigm for building a verb
mkV : V = overload {
@@ -385,7 +371,7 @@ resource ParadigmsMlt = open
Loan => loanV mamma
} ;
-- All forms! :S
-- All forms
-- mkV (Strong Regular) (FormI) (mkRoot "k-t-b") (mkPattern "i" "e") "ktibt" "ktibt" "kiteb" "kitbet" "ktibna" "ktibtu" "kitbu" "nikteb" "tikteb" "jikteb" "tikteb" "niktbu" "tiktbu" "jiktbu" "ikteb" "iktbu"
mkV : VClass -> VDerivedForm -> Root -> Pattern -> (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> V =
\class, form, root, patt,
@@ -948,7 +934,12 @@ resource ParadigmsMlt = open
i = info ;
} ;
{- ~~~ Non-semitic verbs ~~~ -}
{- ~~~ Irregular verbs ~~~ -}
-- Make an irregular verb, giving all forms (see last overload of mkV)
irregularV = mkV Irregular ;
{- ~~~ Loan verbs ~~~ -}
-- Make a loan verb, eg IPPARKJA
-- Params: mamma
@@ -966,8 +957,57 @@ resource ParadigmsMlt = open
i = info ;
} ;
{- Verb --------------------------------------------------------------- -}
{- Adjective paradigms ------------------------------------------------ -}
mkVS : V -> VS ; -- sentence-compl
mkVS v = lin VS v ;
prepV2 : V -> Prep -> V2 ;
prepV2 v p = lin V2 ( v ** { prep = p } ) ;
dirV2 : V -> V2 ;
dirV2 v = prepV2 v noPrep ;
prepPrepV3 : V -> Prep -> Prep -> V3 ;
prepPrepV3 v p t = lin V3 (v ** { prep1 = p ; prep2 = t }) ;
dirV3 : V -> Prep -> V3 ;
dirV3 v p = prepPrepV3 v noPrep p ;
dirdirV3 : V -> V3 ;
dirdirV3 v = dirV3 v noPrep ;
mkV3 : overload {
mkV3 : V -> V3 ; -- ditransitive, e.g. give,_,_
mkV3 : V -> Prep -> Prep -> V3 ; -- two prepositions, e.g. speak, with, about
mkV3 : V -> Prep -> V3 ; -- give,_,to --%
-- mkV3 : V -> Str -> V3 ; -- give,_,to --%
-- mkV3 : Str -> Str -> V3 ; -- give,_,to --%
-- mkV3 : Str -> V3 ; -- give,_,_ --%
};
mkV3 = overload {
mkV3 : V -> V3 = dirdirV3 ;
mkV3 : V -> Prep -> Prep -> V3 = prepPrepV3 ;
mkV3 : V -> Prep -> V3 = dirV3 ;
-- mkV3 : V -> Str -> V3 = \v,s -> dirV3 v (mkPrep s);
-- mkV3 : Str -> Str -> V3 = \v,s -> dirV3 (regV v) (mkPrep s);
-- mkV3 : Str -> V3 = \v -> dirdirV3 (regV v) ;
} ;
mkV2V : V -> Prep -> Prep -> V2V ; -- e.g. want (noPrep NP) (to VP)
mkV2V v p t = lin V2V (v ** { prep1 = p ; prep2 = t }) ;
{- Conjunction -------------------------------------------------------- -}
mkConj = overload {
mkConj : Str -> Conj = \y -> mk2Conj [] y ;
mkConj : Str -> Str -> Conj = \x,y -> mk2Conj x y ;
} ;
mk2Conj : Str -> Str -> Conj = \x,y ->
lin Conj (sd2 x y) ;
{- Adjective ---------------------------------------------------------- -}
-- Overloaded function for building an adjective
mkA : A = overload {
@@ -1058,8 +1098,38 @@ resource ParadigmsMlt = open
_ => (init fem) + "i" -- BRAVA
} ;
prepA2 : A -> Prep -> A2 ;
prepA2 a p = lin A2 (a ** {c2 = p.s}) ;
{- Quantitifer paradigms ---------------------------------------------- -}
mkA2 : overload {
mkA2 : A -> Prep -> A2 ;
mkA2 : A -> Str -> A2 ;
} ;
mkA2 = overload {
mkA2 : A -> Prep -> A2 = prepA2 ;
mkA2 : A -> Str -> A2 = \a,p -> prepA2 a (mkPrep p) ;
} ;
AS, A2S, AV : Type = A ;
A2V : Type = A2 ;
mkAS : A -> AS ;
mkAS a = a ;
{- Adverb ------------------------------------------------------------- -}
mkAdv : Str -> Adv ; -- post-verbal adverb, e.g. ILLUM
mkAdV : Str -> AdV ; -- preverbal adverb, e.g. DEJJEM
mkAdA : Str -> AdA ; -- adverb modifying adjective, e.g. PJUTTOST
mkAdN : Str -> AdN ; -- adverb modifying numeral, e.g. MADWAR
mkAdv x = lin Adv (ss x) ;
mkAdV x = lin AdV (ss x) ;
mkAdA x = lin AdA (ss x) ;
mkAdN x = lin AdN (ss x) ;
{- Quantifier, Ord ---------------------------------------------------- -}
mkQuant : (dak, dik, dawk : Str) -> Bool -> Quant = \dak,dik,dawk,isdemo -> lin Quant {
s = table {
@@ -1070,6 +1140,10 @@ resource ParadigmsMlt = open
clitic = [] ;
isPron = False ;
isDemo = isdemo ;
isDefn = False ;
} ;
mkOrd : Str -> Ord = \x -> lin Ord { s = \\c => x };
}

View File

@@ -22,6 +22,11 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
| GPl -- dawk
;
Definiteness =
Definite -- eg BIL-
| Indefinite -- eg BI
;
oper
-- Agreement system corrected based on comments by [AZ]
Agr : Type = { g : Gender ; n : Number ; p : Person } ;
@@ -32,38 +37,30 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
case <agr.p,agr.n> of {
<P1,num> => AgP1 num;
<P2,num> => AgP2 num;
<P3,Sg> => AgP3Sg agr.g;
<P3,Pl> => AgP3Pl
<P3,Sg> => AgP3Sg agr.g;
<P3,Pl> => AgP3Pl
} ;
toAgr : VAgr -> Agr = \vagr ->
case vagr of {
AgP1 num => mkAgr Masc num P1 ; --- sorry ladies
AgP2 num => mkAgr Masc num P2 ;
AgP1 num => mkAgr Masc num P1 ; --- sorry ladies
AgP2 num => mkAgr Masc num P2 ;
AgP3Sg gen => mkAgr gen Pl P3 ;
AgP3Pl => mkAgr Masc Pl P3
AgP3Pl => mkAgr Masc Pl P3
} ;
param
-- Agreement for verbs
VAgr =
AgP1 Number -- jiena, aħna
| AgP2 Number -- inti, intom
| AgP3Sg Gender -- huwa, hija
| AgP3Pl -- huma
AgP1 Number -- jiena, aħna
| AgP2 Number -- inti, intom
| AgP3Sg Gender -- huwa, hija
| AgP3Pl -- huma
;
param
NPCase = Nom | CPrep ; -- [AZ]
-- Animacy = Animate | Inanimate ;
-- Definiteness =
-- Definite -- eg IL-KARTA. In this context same as Determinate
-- | Indefinite -- eg KARTA
-- ;
{- Numeral -------------------------------------------------------------- -}
CardOrd = NCard | NOrd ;
@@ -80,13 +77,13 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
-- Indicate how a corresponding object should be treated
--- Overlap between Num Sg and Num1, but leaving as is for now
NumForm =
Num Number -- Sg | Pl
| Num0 -- 0 (l-edba SIEGĦA)
| Num1 -- 1, 101... (SIEGĦA, mija u SIEGĦA)
| Num2 -- 2 (SAGĦTEJN)
| Num3_10 -- 3..10, 102, 103... (tlett SIEGĦAT, għaxar SIEGĦAT, mija u żewġ SIEGĦAT, mija u tlett SIEGĦAT)
| Num11_19 -- 11..19, 111... (ħdax-il SIEGĦA, mija u dsatax-il SIEGĦA)
| Num20_99 -- 20..99, 120... (għoxrin SIEGĦA, disa' u disgħajn SIEGĦA)
NumX Number -- Sg | Pl
| Num0 -- 0 (l-edba SIEGĦA)
| Num1 -- 1, 101... (SIEGĦA, mija u SIEGĦA)
| Num2 -- 2 (SAGĦTEJN)
| Num3_10 -- 3..10, 102, 103... (tlett SIEGĦAT, għaxar SIEGĦAT, mija u żewġ SIEGĦAT, mija u tlett SIEGĦAT)
| Num11_19 -- 11..19, 111... (ħdax-il SIEGĦA, mija u dsatax-il SIEGĦA)
| Num20_99 -- 20..99, 120... (għoxrin SIEGĦA, disa' u disgħajn SIEGĦA)
;
NumCase =
@@ -102,8 +99,9 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
s : Gender => Str ;
n : NumForm ;
clitic : Str ;
hasNum : Bool ;
isPron : Bool ;
hasNum : Bool ; -- has a numeral
isPron : Bool ; -- is a pronoun
isDefn : Bool ; -- is definite
} ;
-- Determiner = {
-- s : NPCase => Gender => NumCase => Str ;
@@ -120,6 +118,7 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
clitic : Str ;
isPron : Bool ;
isDemo : Bool ; -- Demonstrative (this/that/those/these)
isDefn : Bool ; -- is definite
} ;
-- Quantifier = {
-- s : NPCase => Gender => NumForm => Str ;
@@ -149,21 +148,15 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
s : NPCase => Str ;
a : Agr ;
isPron : Bool ;
isDefn : Bool ;
} ;
param
Noun_Sg_Type =
Singulative -- eg ĦUTA
| Collective -- eg ĦUT
;
Noun_Pl_Type =
Determinate -- eg ĦUTIET
| Indeterminate -- eg ĦWIET
;
Noun_Number =
Singular Noun_Sg_Type -- eg ĦUTA / ĦUT
| Dual -- eg WIDNEJN
| Plural Noun_Pl_Type -- eg ĦUTIET / ĦWIET
Singulative -- ĦUTA
| Collective -- ĦUT
| Dual -- WIDNEJN
| Plural -- ĦUTIET
;
{- Pronoun -------------------------------------------------------------- -}
@@ -198,13 +191,13 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
VerbInfo : Type = {
class : VClass ;
form : VDerivedForm ;
root : Root ; -- radicals
patt : Pattern ; -- vowels extracted from mamma
patt2: Pattern ; -- vowel changes; default to patt (experimental)
form : VDerivedForm ;
root : Root ; -- radicals
patt : Pattern ; -- vowels extracted from mamma
patt2 : Pattern ; -- vowel changes; default to patt (experimental)
-- in particular, patt2 is used to indicate whether an IE sould be shortened
-- to an I or an E (same for entire verb)
imp : Str ; -- Imperative Sg. Gives so much information jaħasra!
imp : Str ; -- Imperative Sg. Gives so much information jaħasra!
} ;
param
@@ -212,7 +205,7 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
VForm =
VPerf VAgr -- Perfect tense in all pronoun cases
| VImpf VAgr -- Imperfect tense in all pronoun cases
| VImp Number -- Imperative is always P2, Sg & Pl
| VImp Number -- Imperative is always P2, Sg & Pl
-- | VPresPart GenNum -- Present Particible for Gender/Number
-- | VPastPart GenNum -- Past Particible for Gender/Number
-- | VVerbalNoun -- Verbal Noun
@@ -292,22 +285,22 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
copula_kien = {
s : (VForm => Str) = table {
VPerf (AgP1 Sg) => "kont" ;
VPerf (AgP2 Sg) => "kont" ;
VPerf (AgP1 Sg) => "kont" ;
VPerf (AgP2 Sg) => "kont" ;
VPerf (AgP3Sg Masc) => "kien" ;
VPerf (AgP3Sg Fem) => "kienet" ;
VPerf (AgP1 Pl) => "konna" ;
VPerf (AgP2 Pl) => "kontu" ;
VPerf (AgP3Pl) => "kienu" ;
VImpf (AgP1 Sg) => "nkun" ;
VImpf (AgP2 Sg) => "tkun" ;
VPerf (AgP3Sg Fem) => "kienet" ;
VPerf (AgP1 Pl) => "konna" ;
VPerf (AgP2 Pl) => "kontu" ;
VPerf (AgP3Pl) => "kienu" ;
VImpf (AgP1 Sg) => "nkun" ;
VImpf (AgP2 Sg) => "tkun" ;
VImpf (AgP3Sg Masc) => "jkun" ;
VImpf (AgP3Sg Fem) => "tkun" ;
VImpf (AgP1 Pl) => "nkunu" ;
VImpf (AgP2 Pl) => "tkunu" ;
VImpf (AgP3Pl) => "jkunu" ;
VImp (Pl) => "kun" ;
VImp (Sg) => "kunu"
VImpf (AgP3Sg Fem) => "tkun" ;
VImpf (AgP1 Pl) => "nkunu" ;
VImpf (AgP2 Pl) => "tkunu" ;
VImpf (AgP3Pl) => "jkunu" ;
VImp (Pl) => "kun" ;
VImp (Sg) => "kunu"
} ;
i : VerbInfo = mkVerbInfo (Irregular) (FormI) (mkRoot "k-w-n") (mkPattern "ie") ;
} ;
@@ -367,18 +360,19 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
-- a2 = [] ;
} ;
{- Adjective ------------------------------------------------------------ -}
{- Adjecive ------------------------------------------------------------ -}
oper
Adjective : Type = {
s : AForm => Str ;
hasComp : Bool ;
} ;
param
AForm =
APosit GenNum
| ACompar
| ASuperl
APosit GenNum -- Positive, e.g. SABIĦ
| ACompar -- Comparative, e.g. ISBAĦ
| ASuperl -- Superlative, e.g. L-ISBAĦ
;
{- Other ---------------------------------------------------------------- -}
@@ -387,19 +381,19 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
{- ~~~ Some character classes ~~~ -}
Letter : pattern Str = #( "a" | "b" | "ċ" | "d" | "e" | "f" | "ġ" | "g" | "għ" | "h" | "ħ" | "i" | "ie" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "ż" | "z" );
Consonant : pattern Str = #( "b" | "ċ" | "d" | "f" | "ġ" | "g" | "għ" | "h" | "ħ" | "j" | "k" | "l" | "m" | "n" | "p" | "q" | "r" | "s" | "t" | "v" | "w" | "x" | "ż" | "z" );
CoronalCons : pattern Str = #( "ċ" | "d" | "n" | "r" | "s" | "t" | "x" | "ż" | "z" ); -- "konsonanti xemxin"
LiquidCons : pattern Str = #( "l" | "m" | "n" | "r" | "għ" );
SonorantCons : pattern Str = #( "l" | "m" | "n" | "r" ); -- See {SA pg13}. Currently unused, but see DoublingConsN below
Letter : pattern Str = #( "a" | "b" | "ċ" | "d" | "e" | "f" | "ġ" | "g" | "għ" | "h" | "ħ" | "i" | "ie" | "j" | "k" | "l" | "m" | "n" | "o" | "p" | "q" | "r" | "s" | "t" | "u" | "v" | "w" | "x" | "ż" | "z" );
Consonant : pattern Str = #( "b" | "ċ" | "d" | "f" | "ġ" | "g" | "għ" | "h" | "ħ" | "j" | "k" | "l" | "m" | "n" | "p" | "q" | "r" | "s" | "t" | "v" | "w" | "x" | "ż" | "z" );
CoronalCons : pattern Str = #( "ċ" | "d" | "n" | "r" | "s" | "t" | "x" | "ż" | "z" ); -- "konsonanti xemxin"
LiquidCons : pattern Str = #( "l" | "m" | "n" | "r" | "għ" );
SonorantCons : pattern Str = #( "l" | "m" | "n" | "r" ); -- See {SA pg13}. Currently unused, but see DoublingConsN below
DoublingConsT : pattern Str = #( "ċ" | "d" | "ġ" | "s" | "x" | "ż" | "z" ); -- require doubling when prefixed with 't', eg DDUM, ĠĠORR, SSIB, TTIR, ŻŻID {GM pg68,2b} {OM pg90}
DoublingConsN : pattern Str = #( "l" | "m" | "r" ); -- require doubling when prefixed with 'n', eg LLAĦĦAQ, MMUR, RRID {OM pg90}
StrongCons : pattern Str = #( "b" | "ċ" | "d" | "f" | "ġ" | "g" | "għ" | "h" | "ħ" | "k" | "l" | "m" | "n" | "p" | "q" | "r" | "s" | "t" | "v" | "x" | "ż" | "z" );
WeakCons : pattern Str = #( "j" | "w" );
Vowel : pattern Str = #( "a" | "e" | "i" | "o" | "u" );
VowelIE : pattern Str = #( "a" | "e" | "i" | "ie" | "o" | "u" );
Digraph : pattern Str = #( "ie" );
SemiVowel : pattern Str = #( "għ" | "j" );
StrongCons : pattern Str = #( "b" | "ċ" | "d" | "f" | "ġ" | "g" | "għ" | "h" | "ħ" | "k" | "l" | "m" | "n" | "p" | "q" | "r" | "s" | "t" | "v" | "x" | "ż" | "z" );
WeakCons : pattern Str = #( "j" | "w" );
Vowel : pattern Str = #( "a" | "e" | "i" | "o" | "u" );
VowelIE : pattern Str = #( "a" | "e" | "i" | "ie" | "o" | "u" );
Digraph : pattern Str = #( "ie" );
SemiVowel : pattern Str = #( "għ" | "j" );
Vwl = Vowel ;
Cns = Consonant ;
@@ -446,13 +440,13 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
--- potentially slow
extractPattern : Str -> Pattern = \s ->
case s of {
v1@"ie" + _ + v2@#Vowel + _ => mkPattern v1 v2 ; -- IEQAF
v1@#Vowel + _ + v2@#Vowel + _ => mkPattern v1 v2 ; -- IKTEB
_ + v1@"ie" + _ + v2@#Vowel + _ => mkPattern v1 v2 ; -- RIEQED
_ + v1@"ie" + _ => mkPattern v1 ; -- ŻIED
v1@"ie" + _ + v2@#Vowel + _ => mkPattern v1 v2 ; -- IEQAF
v1@#Vowel + _ + v2@#Vowel + _ => mkPattern v1 v2 ; -- IKTEB
_ + v1@"ie" + _ + v2@#Vowel + _ => mkPattern v1 v2 ; -- RIEQED
_ + v1@"ie" + _ => mkPattern v1 ; -- ŻIED
_ + v1@#Vowel + _ + v2@#Vowel + _ => mkPattern v1 v2 ; -- ĦARBAT
_ + v1@#Vowel + _ => mkPattern v1 ; -- ĦOBB
_ => mkPattern
_ + v1@#Vowel + _ => mkPattern v1 ; -- ĦOBB
_ => mkPattern
} ;
-- Create a VerbInfo record, optionally omitting various fields
@@ -491,20 +485,19 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
numform2nounnum : NumForm -> Noun_Number = \n ->
case n of {
Num Sg => Singular Singulative ;
Num Pl => Plural Indeterminate ;
Num0 => Singular Singulative ;
Num1 => Singular Singulative ;
NumX Sg => Singulative ;
NumX Pl => Plural ;
Num0 => Singulative ;
Num1 => Singulative ;
Num2 => Dual ;
Num3_10 => Singular Collective ;
Num11_19 => Singular Singulative ;
Num20_99 => Plural Indeterminate
Num3_10 => Collective ;
Num11_19 => Singulative ;
Num20_99 => Plural
} ;
{- ~~~ Useful helper functions ~~~ -}
-- Non-existant form
--- If changed, also see: MorphoMlt.verbPolarityTable
noexist : Str = "NOEXIST" ;
-- New names for the drop/take operations
@@ -602,54 +595,52 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
_ => False
} ;
-- Add a definite preposition in front of your token
addDefinitePreposition : Str -> Str -> Str = \prep,n -> (getDefinitePreposition prep n) ++ n ;
addDefiniteArticle = addDefinitePreposition "il" ;
getDefiniteArticle = getDefinitePreposition "il" ;
-- Correctly inflect definite preposition
-- A more generic version of getDefiniteArticle
-- Params:
-- preposition (eg TAL, MAL, BĦALL)
-- noun
-- NOTE trying to call this with a runtime string will cause a world of pain. Design around it.
getDefinitePreposition : Str -> Str -> Str = \prep,noun ->
let
-- Remove either 1 or 2 l's
prepStem : Str = case prep of {
_ + "ll" => Predef.tk 2 prep ;
_ + "l" => Predef.tk 1 prep ;
_ => prep -- this should never happen, I don't think
}
in
case noun of {
("s"|#LiquidCons) + #Consonant + _ => prep + "-i" ; -- L-ISKOLA
("għ" | #Vowel) + _ => case prep of { -- L-GĦATBA...
("fil"|"bil") => (Predef.take 1 prep) + "l-" ;
"il" => "l" + "-" ;
_ => prep + "-"
};
K@#CoronalCons + _ => prepStem + K + "-" ; -- IĊ-ĊISK
#Consonant + _ => prep + "-" ; -- IL-QADDIS
_ => [] -- ?
} ;
artIndef : Str = "" ;
artDef : Str =
makePreFull
"il-" -- il-ktieb
"i" -- it-triq
"l-" -- l-ajruplan
;
-- Make a pre string which only varies for vowels
makePreVowel : Str -> Str -> Str = \cons,vowel ->
let
vowel' : Str = case vowel of {
_ + "'" => vowel ++ BIND ;
_ => vowel
} ;
in
pre {
"il- &+" ; --- ugly hack! but won't let me use ++
"l-" ++ BIND / strs { "a" ; "e" ; "i" ; "o" ; "u" ; "h" ; "għ" } ;
"iċ-" ++ BIND / strs { "ċ" } ;
"id-" ++ BIND / strs { "d" } ;
"in-" ++ BIND / strs { "n" } ;
"ir-" ++ BIND / strs { "r" } ;
"is-" ++ BIND / strs { "s" } ;
"it-" ++ BIND / strs { "t" } ;
"ix-" ++ BIND / strs { "x" } ;
"iż-" ++ BIND / strs { "ż" } ;
"iz-" ++ BIND / strs { "z" }
-- Consonant
cons ;
-- Vowel
vowel' / strs { "a" ; "e" ; "i" ; "o" ; "u" ; "h" ; "għ" }
} ;
-- Make a pre string which varies coronal consonants and vowels
makePreFull : Str -> Str -> Str -> Str = \cons,corcons,vowel ->
let
mal = cons ++ BIND ;
m' = vowel ++ BIND ;
ma = corcons ;
in
pre {
-- Regular consonant
mal ;
-- Vowel
m' / strs { "a" ; "e" ; "i" ; "o" ; "u" ; "h" ; "għ" } ;
-- Coronal consonants
ma+"ċ-" ++ BIND / strs { "ċ" } ;
ma+"d-" ++ BIND / strs { "d" } ;
ma+"n-" ++ BIND / strs { "n" } ;
ma+"r-" ++ BIND / strs { "r" } ;
ma+"s-" ++ BIND / strs { "s" } ;
ma+"t-" ++ BIND / strs { "t" } ;
ma+"x-" ++ BIND / strs { "x" } ;
ma+"ż-" ++ BIND / strs { "ż" } ;
ma+"z-" ++ BIND / strs { "z" }
} ;
{- ~~~ Worst-case functions ~~~ -}
@@ -664,11 +655,11 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
-- Gender
mkNoun : (_,_,_,_,_ : Str) -> Gender -> Noun = \sing,coll,dual,det,ind,gen -> {
s = table {
Singular Singulative => sing ;
Singular Collective => coll ;
Dual => dual ;
Plural Determinate => det ;
Plural Indeterminate => ind
Singulative => sing ;
Collective => coll ;
Dual => dual ;
Plural => if_then_Str (isNil det) ind det
-- Plural => variants {det ; ind}
} ;
g = gen ;
takesPron = False ;
@@ -687,12 +678,13 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
s = table {
APosit gn => case gn of {
GSg Masc => masc ;
GSg Fem => fem ;
GPl => plural
GSg Fem => fem ;
GPl => plural
} ;
ACompar => compar ;
ASuperl => addDefiniteArticle compar
ASuperl => artDef ++ compar
} ;
hasComp = notB (isNil compar) ;
} ;
}

View File

@@ -33,6 +33,11 @@ concrete SentenceMlt of Sentence = CatMlt ** open
} ;
} ;
-- Temp -> Polarity -> Cl -> S
UseCl t p cl = {
s = t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p
} ;
-- Cl
-- Imp
-- QS

View File

@@ -47,23 +47,48 @@ concrete StructuralMlt of Structural = CatMlt **
-- which_IQuant = {s = \\_ => "which"} ;
{- Conjunction ---------------------------------------------------------- -}
and_Conj = mkConj "u" ;
both7and_DConj = mkConj "kemm" "u";
but_PConj = ss "imma" ;
either7or_DConj = mkConj "jew" "inkella" ;
or_Conj = mkConj "jew" ;
otherwise_PConj = ss "inkella" ;
therefore_PConj = ss "allura" ;
if_then_Conj = mkConj "jekk" ;
{- Preposition ---------------------------------------------------------- -}
above_Prep = mkPrep "fuq" ;
after_Prep = mkPrep "wara" ;
before_Prep = mkPrep "qabel" ;
behind_Prep = mkPrep "wara" ;
between_Prep = mkPrep "bejn" ;
by8agent_Prep = mkPrep "minn" "mill-" "mit-" ;
by8means_Prep = mkPrep "bi" "b'" "bil-" "bit-" "bl-" ;
during_Prep = mkPrep "waqt" ;
for_Prep = mkPrep "għal" "għall-" "għat-" ;
from_Prep = mkPrep "minn" "mill-" "mit-" ;
in8front_Prep = mkPrep "quddiem" ;
in_Prep = mkPrep "fi" "f'" "fil-" "fit-" "fl-" ;
on_Prep = mkPrep "fuq" ;
part_Prep = mkPrep "ta'" "t'" "tal-" "tat-" "tal-" ;
possess_Prep = mkPrep "ta'" "t'" "tal-" "tat-" "tal-" ;
through_Prep = mkPrep "ġo" "ġol-" "ġot-" ;
to_Prep = mkPrep "lil" "lill-" "lit-" ;
under_Prep = mkPrep "taħt" ;
without_Prep = mkPrep "mingħajr" ;
with_Prep = mkPrep "ma'" "m'" "mal-" "mat-" "mal-" ;
except_Prep = mkPrep "apparti" ;
{- Others --------------------------------------------------------------- -}
-- above_Prep = mkPrep "above" ;
-- after_Prep = mkPrep "after" ;
-- almost_AdA = mkAdA "almost" ;
-- almost_AdN = mkAdN "almost" ;
-- although_Subj = ss "although" ;
-- always_AdV = mkAdV "always" ;
-- and_Conj = mkConj "and" ;
-- because_Subj = ss "because" ;
-- before_Prep = mkPrep "before" ;
-- behind_Prep = mkPrep "behind" ;
-- between_Prep = mkPrep "between" ;
-- both7and_DConj = mkConj "both" "and";
-- but_PConj = ss "but" ;
-- by8agent_Prep = mkPrep "by" ;
-- by8means_Prep = mkPrep "by" ;
-- can8know_VV, can_VV = {
-- s = table {
-- VVF VInf => ["be able to"] ;
@@ -76,13 +101,9 @@ concrete StructuralMlt of Structural = CatMlt **
-- } ;
-- typ = VVAux
-- } ;
-- during_Prep = mkPrep "during" ;
-- either7or_DConj = mkConj "either" "or" singular ;
-- everybody_NP = regNP "everybody" singular ;
-- everything_NP = regNP "everything" singular ;
-- everywhere_Adv = mkAdv "everywhere" ;
-- for_Prep = mkPrep "for" ;
-- from_Prep = mkPrep "from" ;
-- here_Adv = mkAdv "here" ;
-- here7to_Adv = mkAdv ["to here"] ;
-- here7from_Adv = mkAdv ["from here"] ;
@@ -90,8 +111,6 @@ concrete StructuralMlt of Structural = CatMlt **
-- how8much_IAdv = ss "how much" ;
-- how8many_IDet = mkDeterminer plural ["how many"] ;
-- if_Subj = ss "if" ;
-- in8front_Prep = mkPrep ["in front of"] ;
-- in_Prep = mkPrep "in" ;
-- less_CAdv = C.mkCAdv "less" "than" ;
-- more_CAdv = C.mkCAdv "more" "than" ;
-- most_Predet = ss "most" ;
@@ -108,12 +127,7 @@ concrete StructuralMlt of Structural = CatMlt **
-- typ = VVAux
-- } ;
-- no_Utt = ss "no" ;
-- on_Prep = mkPrep "on" ;
-- or_Conj = mkConj "or" singular ;
-- otherwise_PConj = ss "otherwise" ;
-- part_Prep = mkPrep "of" ;
-- please_Voc = ss "please" ;
-- possess_Prep = mkPrep "of" ;
-- quite_Adv = mkAdv "quite" ;
-- so_AdA = mkAdA "so" ;
-- somebody_NP = regNP "somebody" singular ;
@@ -122,11 +136,7 @@ concrete StructuralMlt of Structural = CatMlt **
-- there_Adv = mkAdv "there" ;
-- there7to_Adv = mkAdv "there" ;
-- there7from_Adv = mkAdv ["from there"] ;
-- therefore_PConj = ss "therefore" ;
-- through_Prep = mkPrep "through" ;
-- too_AdA = mkAdA "too" ;
-- to_Prep = mkPrep "to" ;
-- under_Prep = mkPrep "under" ;
-- very_AdA = mkAdA "very" ;
-- want_VV = mkVV (regV "want") ;
-- whatPl_IP = mkIP "what" "what" "what's" plural ;
@@ -137,22 +147,24 @@ concrete StructuralMlt of Structural = CatMlt **
-- whoPl_IP = mkIP "who" "whom" "whose" plural ;
-- whoSg_IP = mkIP "who" "whom" "whose" singular ;
-- why_IAdv = ss "why" ;
-- without_Prep = mkPrep "without" ;
-- with_Prep = mkPrep "with" ;
-- yes_Utt = ss "yes" ;
-- if_then_Conj = mkConj "if" "then" singular ;
-- nobody_NP = regNP "nobody" singular ;
-- nothing_NP = regNP "nothing" singular ;
-- at_least_AdN = mkAdN "at least" ;
-- at_most_AdN = mkAdN "at most" ;
-- except_Prep = mkPrep "except" ;
-- as_CAdv = C.mkCAdv "as" "as" ;
-- have_V2 = dirV2 (mk5V "have" "has" "had" "had" "having") ;
have_V2 = dirV2 (
irregularV form1 (ResMlt.mkRoot) (ResMlt.mkPattern)
"kelli" "kellek" "kellu" "kellha" "kellna" "kellkom" "kellhom"
"għandi" "għandek" "għandu" "għandha" "għandna" "għandkom" "għandhom"
"kollok" "kollkom"
) ;
-- that_Subj = ss "that" ;
lin language_title_Utt = ss "Malti" ;

View File

@@ -30,8 +30,10 @@ concrete VerbMlt of Verb = CatMlt ** open Prelude, ResMlt in {
_ => insertObj (\\agr => np.s ! CPrep) vp
} ;
-- Comp
-- VP
-- VPSplash
-- VP -> Adv -> VP
AdvVP vp adv = insertObj (\\_ => adv.s) vp ;
-- AdV -> VP -> VP
-- AdVVP adv vp = insertAdV adv.s vp ;
}