diff --git a/lib/src/maltese/AdjectiveMlt.gf b/lib/src/maltese/AdjectiveMlt.gf index 12df75a4a..b655510cf 100644 --- a/lib/src/maltese/AdjectiveMlt.gf +++ b/lib/src/maltese/AdjectiveMlt.gf @@ -1,7 +1,7 @@ -- AdjectiveMlt.gf: adjectives -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL concrete AdjectiveMlt of Adjective = CatMlt ** open ResMlt, Prelude in { diff --git a/lib/src/maltese/AdverbMlt.gf b/lib/src/maltese/AdverbMlt.gf index 8e60951b1..9ec33970a 100644 --- a/lib/src/maltese/AdverbMlt.gf +++ b/lib/src/maltese/AdverbMlt.gf @@ -1,7 +1,7 @@ -- AdverbMlt.gf: adverbial phrases -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL concrete AdverbMlt of Adverb = CatMlt ** open ResMlt, Prelude in { diff --git a/lib/src/maltese/AllMlt.gf b/lib/src/maltese/AllMlt.gf index 41a90e8e6..d5e6b8d94 100644 --- a/lib/src/maltese/AllMlt.gf +++ b/lib/src/maltese/AllMlt.gf @@ -1,7 +1,7 @@ -- AllMlt.gf: common grammar plus language-dependent extensions -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL --# -path=.:prelude:../abstract:../common diff --git a/lib/src/maltese/AllMltAbs.gf b/lib/src/maltese/AllMltAbs.gf index 7294a7680..ca42e8c0f 100644 --- a/lib/src/maltese/AllMltAbs.gf +++ b/lib/src/maltese/AllMltAbs.gf @@ -1,7 +1,7 @@ -- AllMlt.gf: common grammar plus language-dependent extensions -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL --# -path=.:prelude:../abstract:../common diff --git a/lib/src/maltese/CatMlt.gf b/lib/src/maltese/CatMlt.gf index 92456400a..14988da4d 100644 --- a/lib/src/maltese/CatMlt.gf +++ b/lib/src/maltese/CatMlt.gf @@ -1,14 +1,10 @@ -- CatMlt.gf: the common type system -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 +-- Angelo Zammit 2012 -- Licensed under LGPL -{- -All code in comments was copied from CatEng.gf and may need to be corrected for Maltese. -The same overall structure should be maintained. --} - concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude in { flags @@ -56,7 +52,6 @@ concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude in { -- Adjective --- AP = {s : Agr => Str ; isPre : Bool} ; AP = {s : GenNum => Str ; isPre : Bool} ; -- Noun @@ -64,28 +59,44 @@ concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude in { CN = Noun ; NP = NounPhrase ; Pron = Pronoun ; - -- Pron = {s : NPCase => Str ; sp : Case => Str ; a : Agr} ; - Det = {s : Str ; n : Num_Number ; hasNum : Bool} ; - -- Det = {s : Str ; sp : NPCase => Str ; n : Number ; hasNum : Bool} ; + + Det = Determiner ; -- Predet = {s : Str} ; - -- Ord = { s : Case => Str } ; - Num = {s : Num_Case => Str ; n : Num_Number ; hasCard : Bool} ; - -- Card = {s : Case => Str ; n : Number} ; - -- Quant = {s : Bool => Number => Str ; sp : Bool => Number => NPCase => Str} ; - Quant = {s : Bool => Num_Number => Str} ; + Quant = Quantifier ; --- Numeral + -- [AZ] + Num = { + s : NumCase => Str ; + n : NumForm ; + hasCard : Bool ; + -- isNum : Bool ; + } ; - -- Cardinal or ordinal in WORDS (not digits) [JJC] + -- [AZ] + Ord = { + s : NumCase => Str ; + -- s : NPCase => GenNum => Str ; + -- hasBSuperl : Bool + } ; + + -- [AZ] + Card = { + s : NumCase => Str ; + n : NumForm ; + } ; + +-- numeral + + -- Cardinal or ordinal in WORDS (not digits) Numeral = { - s : CardOrd => Num_Case => Str ; - n : Num_Number + s : CardOrd => NumCase => Str ; + n : NumForm -- number to be "treated as", e.g. 103 has n=Num3_10 } ; - -- Cardinal or ordinal in DIGITS (not words) [JJC] + -- Cardinal or ordinal in DIGITS (not words) Digits = { - s : Str ; -- No need for CardOrd, i.e. no 1st, 2nd etc in Maltese - n : Num_Number ; + s : NumCase => Str ; -- No need for CardOrd, i.e. no 1st, 2nd etc in Maltese + n : NumForm ; tail : DTail }; diff --git a/lib/src/maltese/ConjunctionMlt.gf b/lib/src/maltese/ConjunctionMlt.gf index 8929fab47..b18ec936f 100644 --- a/lib/src/maltese/ConjunctionMlt.gf +++ b/lib/src/maltese/ConjunctionMlt.gf @@ -1,10 +1,11 @@ -- ConjunctionMlt.gf: co-ordination -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL -concrete ConjunctionMlt of Conjunction = CatMlt ** open ResMlt, Coordination, Prelude in { +concrete ConjunctionMlt of Conjunction = + CatMlt ** open ResMlt, Coordination, Prelude in { -- Adv -- AP diff --git a/lib/src/maltese/ExtraMlt.gf b/lib/src/maltese/ExtraMlt.gf index 8015dfb37..86e44b17e 100644 --- a/lib/src/maltese/ExtraMlt.gf +++ b/lib/src/maltese/ExtraMlt.gf @@ -1,7 +1,7 @@ -- ExtraMlt.gf: extra stuff -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL concrete ExtraMlt of ExtraMltAbs = CatMlt ** @@ -9,9 +9,4 @@ concrete ExtraMlt of ExtraMltAbs = CatMlt ** flags coding=utf8 ; - --- lin --- thigh_N = mkNounDual "koxxa" ; --- sailor_N = mkNoun "baħri" ; - } diff --git a/lib/src/maltese/ExtraMltAbs.gf b/lib/src/maltese/ExtraMltAbs.gf index 30bce3b42..e05947e2e 100644 --- a/lib/src/maltese/ExtraMltAbs.gf +++ b/lib/src/maltese/ExtraMltAbs.gf @@ -1,13 +1,9 @@ -- ExtraMltAbs.gf: abstract grammar for extra stuff -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL abstract ExtraMltAbs = Cat ** { --- fun --- thigh_N : N ; --- sailor_N : N ; - } diff --git a/lib/src/maltese/GrammarMlt.gf b/lib/src/maltese/GrammarMlt.gf index ce832197d..21ce6dd6f 100644 --- a/lib/src/maltese/GrammarMlt.gf +++ b/lib/src/maltese/GrammarMlt.gf @@ -1,7 +1,7 @@ -- GrammarMlt.gf: common syntax -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL --# -path=.:../abstract:../common:../prelude diff --git a/lib/src/maltese/IdiomMlt.gf b/lib/src/maltese/IdiomMlt.gf index cea14275d..c73618c60 100644 --- a/lib/src/maltese/IdiomMlt.gf +++ b/lib/src/maltese/IdiomMlt.gf @@ -1,7 +1,7 @@ -- IdiomMlt.gf: idiomatic expressions -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in { diff --git a/lib/src/maltese/IrregMlt.gf b/lib/src/maltese/IrregMlt.gf index 7132a98e6..2390a9161 100644 --- a/lib/src/maltese/IrregMlt.gf +++ b/lib/src/maltese/IrregMlt.gf @@ -1,7 +1,7 @@ -- IrregMlt.gf: irregularly inflected words (mostly verbs) -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL --# -path=.:prelude:../abstract:../common diff --git a/lib/src/maltese/IrregMltAbs.gf b/lib/src/maltese/IrregMltAbs.gf index b82b115f5..9ecf748b1 100644 --- a/lib/src/maltese/IrregMltAbs.gf +++ b/lib/src/maltese/IrregMltAbs.gf @@ -1,19 +1,11 @@ -- IrregMltAbs.gf: abstract grammar for irregularly inflected words (mostly verbs) -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL --# -path=.:prelude:../abstract:../common abstract IrregMltAbs = Cat ** { -{- -fun - - awake_V : V ; - bear_V : V ; - beat_V : V ; --} - } diff --git a/lib/src/maltese/LangMlt.gf b/lib/src/maltese/LangMlt.gf index 4caa97bda..6d22be0d7 100644 --- a/lib/src/maltese/LangMlt.gf +++ b/lib/src/maltese/LangMlt.gf @@ -1,7 +1,7 @@ -- LangMlt.gf: common syntax and lexicon -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL --# -path=.:../abstract:../common:../prelude @@ -11,6 +11,10 @@ concrete LangMlt of Lang = LexiconMlt ** { - flags startcat = Phr ; unlexer = text ; lexer = text ; coding = utf8 ; + flags + coding = utf8 ; + startcat = Phr ; + unlexer = text ; + lexer = text ; } diff --git a/lib/src/maltese/LexiconMlt.gf b/lib/src/maltese/LexiconMlt.gf index f38f0b8b0..fc6f39b60 100644 --- a/lib/src/maltese/LexiconMlt.gf +++ b/lib/src/maltese/LexiconMlt.gf @@ -1,13 +1,13 @@ -- LexiconMlt.gf: test lexicon of 300 content words -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL --# -path=.:../abstract:../common:../prelude concrete LexiconMlt of Lexicon = CatMlt ** - open Prelude, ParadigmsMlt, IrregMlt, DictMlt in { + open Prelude, ParadigmsMlt, IrregMlt in { flags optimize=values ; @@ -17,347 +17,347 @@ concrete LexiconMlt of Lexicon = CatMlt ** -- add_V3 -- alas_Interj -- already_Adv - animal_N = mkN "annimal" ; - answer_V2S = wiegeb_WGB_3_10033_V ; - apartment_N = mkN "appartament" ; - art_N = mkNNoPlural "arti" feminine ; --- ashes_N = mkN "rmied" ; - ask_V2Q = saqsa_SQSJ_1_7268_V ; - baby_N = mkN "tarbija" "trabi" ; - back_N = mkN "dahar" "dhur" ; -- pronSuffix - 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ħ" ; + animal_N = mkN "annimal" ; + answer_V2S = mkV_III "wieġeb" (mkRoot "w-ġ-b") ; + apartment_N = mkN "appartament" ; + art_N = mkNNoPlural "arti" feminine ; +-- ashes_N = mkN "rmied" ; + ask_V2Q = mkV "saqsa" (mkRoot "s-q-s-j") ; + 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 - beer_N = mkN "birra" "birer" ; + beer_N = mkN "birra" "birer" ; -- beg_V2V - belly_N = mkN "żaqq" "żquq" ; -- pronSuffix - big_A = brokenA "kbir" "kbar" "ikbar" ; - bike_N = mkN "rota" ; - bird_N = mkN "għasfur" "għasafar" ; -- what about GĦASFURA? - bite_V2 = gidem_GDM_1_8009_V ; - black_A = mkA "iswed" "sewda" "suwed" ; - blood_N = mkN [] "demm" [] "dmija" [] ; -- pronSuffix - blow_V = nefah_NFH_1_8966_V ; - blue_A = sameA "blu" ; - boat_N = mkN "dgħajsa" "dgħajjes" ; - bone_N = mkNColl "għadam" ; - book_N = mkN "ktieb" "kotba" ; - boot_N = mkN "żarbun" "żraben" ; -- what about ŻARBUNA? - boss_N = mkN "mgħallem" "mgħallmin" ; - boy_N = mkN "tifel" "tfal" ; - bread_N = mkNColl "ħobż" ; - break_V2 = kiser_KSR_1_8636_V ; - breast_N = mkN "sider" "sdur" ; -- also ISDRA -- pronSuffix + 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") ; + black_A = mkA "iswed" "sewda" "suwed" ; + blood_N = possN (mkN [] "demm" [] "dmija" []) ; + blow_V = mkV "nefaħ" (mkRoot "n-f-ħ") ; + blue_A = sameA "blu" ; + boat_N = mkN "dgħajsa" "dgħajjes" ; + bone_N = mkNColl "għadam" ; + book_N = mkN "ktieb" "kotba" ; + boot_N = mkN "żarbuna" "żarbun" [] "żraben" [] ; + boss_N = mkN "mgħallem" "mgħallmin" ; + boy_N = mkN "tifel" "tfal" ; + bread_N = mkNColl "ħobż" ; + break_V2 = mkV "kiser" (mkRoot "k-s-r") ; + breast_N = possN (mkN "sider" "sdur") ; -- also ISDRA -- breathe_V - broad_A = mkA "wiesgħa" "wiesgħa" "wiesgħin" ; - brother_N2 = mkN2 (mkN "ħu" "aħwa") ; -- pronSuffix - brown_A = sameA "kannella" ; - burn_V = haraq_HRQ_1_8367_V ; - butter_N = mkN [] "butir" [] "butirijiet" [] ; - buy_V2 = xtara_XRJ_8_10296_V ; - camera_N = mkN "kamera" "kameras" ; - cap_N = mkN "beritta" ; - car_N = mkN "karozza" ; - carpet_N = mkN "tapit" ; -- TAPITI or TWAPET ? - cat_N = mkN "qattus" "qtates" ; -- what about QATTUSA ? - ceiling_N = mkN "saqaf" "soqfa"; - chair_N = mkN "siġġu" "siġġijiet" ; - cheese_N = mkNColl "ġobon" ; --- child_N = mkN "tfajjel" ; -- Not an easy one... - church_N = mkN "knisja" "knejjes" ; - city_N = mkN "belt" "bliet" feminine ; -- pronSuffix - clean_A = brokenA "nadif" "nodfa" ; - clever_A = regA "bravu" ; - close_V2 = ghalaq_GHLQ_1_10530_V ; - cloud_N = mkNColl "sħab" ; - coat_N = mkN "kowt" "kowtijiet" ; - cold_A = mkA "kiesaħ" "kiesħa" "kesħin" ; + 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") ; + butter_N = mkN [] "butir" [] "butirijiet" [] ; + buy_V2 = mkV_VIII "xtara" (mkRoot "x-r-j") ; + camera_N = mkN "kamera" "kameras" ; + cap_N = mkN "beritta" ; + car_N = mkN "karozza" ; + carpet_N = mkN "tapit" "twapet" ; -- TAPITI + cat_N = mkN "qattus" "qtates" ; -- feminine: QATTUSA + ceiling_N = mkN "saqaf" "soqfa"; + chair_N = mkN "siġġu" "siġġijiet" ; + cheese_N = mkNColl "ġobon" ; +-- child_N = mkN "tfajjel" ; -- Not an easy one... + 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") ; + cloud_N = mkNColl "sħab" ; + coat_N = mkN "kowt" "kowtijiet" ; + cold_A = mkA "kiesaħ" "kiesħa" "kesħin" ; -- come_V - computer_N = mkN "kompjuter" "kompjuters" ; - correct_A = regA "korrett" ; - count_V2 = ghadd_GHDD_1_10460_V ; - country_N = mkN "pajjiż" ; -- pronSuffix - cousin_N = mkN "kuġin" ; -- pronSuffix - cow_N = mkN "baqra" "baqar" "baqartejn" [] [] ; - cut_V2 = qata'_QTGH_1_9305_V ; - day_N = mkN "ġurnata" "ġranet" ; - dig_V = hafer_HFR_1_8233_V ; - dirty_A = regA "maħmuġ" ; - distance_N3 = mkN "distanza" ; - do_V2 = ghamel_GHML_1_10544_V ; - doctor_N = mkN "tabib" "tobba" ; -- what about TABIBA ? - dog_N = mkN "kelb" "klieb" ; - door_N = mkN "bieb" "bibien" ; -- what about BIEBA ? - drink_V2 = 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 = mkNDual "widna" ; -- pronSuffix - earth_N = mkN "art" "artijiet" feminine ; + computer_N = mkN "kompjuter" "kompjuters" ; + correct_A = regA "korrett" ; + count_V2 = mkV "għadd" (mkRoot "għ-d-d") ; + 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ħ") ; + day_N = mkN "ġurnata" "ġranet" ; + dig_V = mkV "ħafer" (mkRoot "ħ-f-r") ; + dirty_A = regA "maħmuġ" ; + distance_N3 = mkN "distanza" ; + do_V2 = mkV "għamel" (mkRoot "għ-m-l") ; + 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") ; + 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 - egg_N = mkNColl "bajd" ; - empty_A = mkA "vojt" "vojta" "vojta" ; - enemy_N = mkN "għadu" "għedewwa" ; - eye_N = mk5N "għajn" [] "għajnejn" "għajnejn" "għejun" feminine ; -- pronSuffix - factory_N = mkN "fabbrika" ; - fall_V = waqa'_WQGH_1_10070_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 - fat_N = mkNColl "xaħam" ; - father_N2 = mkN2 (mkN "missier" "missierijiet") ; -- pronSuffix + fat_N = mkNColl "xaħam" ; + father_N2 = mkN2 (possN (mkN "missier" "missierijiet")) ; -- fear_V2 -- fear_VS - feather_N = mkNColl "rix" ; - fight_V2 = ggieled_GLD_6_8074_V ; - find_V2 = sab_SJB_1_9779_V ; - fingernail_N = mkN "difer" [] "difrejn" "dwiefer" [] ; -- pronSuffix - fire_N = mkN "nar" "nirien" ; - fish_N = mkNColl "ħut" ; + feather_N = mkNColl "rix" ; + fight_V2 = mkV_VI "ġġieled" (mkRoot "ġ-l-d") ; + find_V2 = mkV "sab" (mkRoot "s-j-b") ; + fingernail_N = possN (mkN "difer" [] "difrejn" "dwiefer" []) ; + fire_N = mkN "nar" "nirien" ; + fish_N = mkNColl "ħut" ; -- float_V - earth_N = mkN "art" "artijiet" feminine ; + earth_N = mkN "art" "artijiet" feminine ; -- flow_V - flower_N = mkN "fjura" ; - fly_V = tar_TJR_1_9972_V ; - fog_N = mkN [] "ċpar" [] [] [] ; - foot_N = mk5N "sieq" [] "saqajn" "saqajn" [] feminine ; -- pronSuffix - forest_N = mkN "foresta" ; -- also MASĠAR - forget_V2 = nesa_NSJ_1_9126_V ; + flower_N = mkN "fjura" ; + fly_V = mkV "tar" (mkRoot "t-j-r") ; + 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 - fridge_N = mkN "friġġ" "friġġijiet" ; - friend_N = mkN "ħabib" "ħbieb" ; -- pronSuffix - fruit_N = mkNColl "frott" ; - full_A = regA "mimli" ; + fridge_N = mkN "friġġ" "friġġijiet" ; + friend_N = possN (mkN "ħabib" "ħbieb") ; -- feminine: ĦABIBA + fruit_N = mkNColl "frott" ; + full_A = regA "mimli" ; -- fun_AV - garden_N = mkN "ġnien" "ġonna" ; - girl_N = mkN "tifla" "tfal" ; + garden_N = mkN "ġnien" "ġonna" ; + girl_N = mkN "tifla" "tfal" ; -- give_V3 - glove_N = mkN "ingwanta" ; - go_V = mar_MWR_1_8918_V ; - gold_N = mkN [] "deheb" [] "dehbijiet" [] ; - good_A = mkA "tajjeb" "tajba" "tajbin" ; - grammar_N = mkN "grammatika" ; - grass_N = mk5N "ħaxixa" "ħaxix" [] [] "ħxejjex" masculine ; -- Dict says ĦAXIX = n.koll.m.s., f. -a, pl.ind. ĦXEJJEX - green_A = mkA "aħdar" "ħadra" "ħodor" ; - guts_N = mkN "musrana" [] [] "musraniet" "msaren" ; -- pronSuffix - hair_N = mkN "xagħar" [] [] "xagħariet" "xgħur" ; -- pronSuffix - hand_N = mk5N "id" [] "idejn" "idejn" [] feminine ; -- pronSuffix - harbour_N = mkN "port" "portijiet" ; - hat_N = mkN "kappell" "kpiepel" ; + glove_N = mkN "ingwanta" ; + go_V = mkV "mar" (mkRoot "m-w-r") ; + gold_N = mkN [] "deheb" [] "dehbijiet" [] ; + good_A = mkA "tajjeb" "tajba" "tajbin" ; + grammar_N = mkN "grammatika" ; + grass_N = mk5N "ħaxixa" "ħaxix" [] [] "ħxejjex" masculine ; -- Dict says ĦAXIX = n.koll.m.s., f. -a, pl.ind. ĦXEJJEX + green_A = mkA "aħdar" "ħadra" "ħodor" ; + guts_N = possN (mkN "musrana" [] [] "musraniet" "msaren") ; + hair_N = possN (mkN "xagħar" [] [] "xagħariet" "xgħur") ; + hand_N = possN (mk5N "id" [] "idejn" "idejn" [] feminine) ; + harbour_N = mkN "port" "portijiet" ; + hat_N = mkN "kappell" "kpiepel" ; -- hate_V2 - head_N = mkN "ras" "rjus" feminine ; -- pronSuffix - hear_V2 = sema'_SMGH_1_9698_V ; - heart_N = mkN "qalb" "qlub" feminine ; -- pronSuffix - heavy_A = brokenA "tqil" "tqal" "itqal" ; - hill_N = mkN "għolja" "għoljiet" ; - hit_V2 = laqat_LQT_1_8772_V ; + head_N = possN (mkN "ras" "rjus" feminine) ; + hear_V2 = mkV "sema'" (mkRoot "s-m-għ") ; + 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 = xtaq_XWQ_8_10313_V ; - horn_N = mkN "ħorn" "ħornijiet" ; - horse_N = mkN "żiemel" "żwiemel" ; - hot_A = brokenA "sħun" "sħan" ; - house_N = mkN "dar" "djar" feminine ; + hope_VS = mkV_VIII "xtaq" (mkRoot "x-w-q") ; + horn_N = mkN "ħorn" "ħornijiet" ; + horse_N = mkN "żiemel" "żwiemel" ; + hot_A = brokenA "sħun" "sħan" ; + house_N = mkN "dar" "djar" feminine ; -- hunt_V2 - husband_N = mkN "raġel" "rġiel" ; -- pronSuffix ŻEWĠI - 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 = qabez_QBZ_1_9182_V ; - kill_V2 = qatel_QTL_1_9312_V ; - king_N = mkN "re" "rejjiet" ; - knee_N = mkN "rkoppa" [] "rkopptejn" "rkoppiet" [] ; -- TODO use mkNDual -- pronSuffix + 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") ; + king_N = mkN "re" "rejjiet" ; + knee_N = possN (mkN "rkoppa" [] "rkopptejn" "rkoppiet" []) ; -- TODO use mkNDual -- know_V2 -- know_VQ -- know_VS - lake_N = mkN "għadira" "għadajjar" ; - lamp_N = mkN "lampa" ; - language_N = mkN "lingwa" ; -- lsien? - laugh_V = dahak_DHK_1_7688_V ; - leaf_N = mkN "werqa" "weraq" "werqtejn" "werqiet" [] ; - learn_V2 = tghallem_GHLM_5_10527_V ; - leather_N = mkN "ġilda" "ġild" [] "ġildiet" "ġlud" ; -- mkNColl "ġild" ; - leave_V2 = telaq_TLQ_1_9903_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") ; + leaf_N = mkN "werqa" "weraq" "werqtejn" "werqiet" [] ; + learn_V2 = mkV_V "tgħallem" (mkRoot "għ-l-m") ; + leather_N = mkN "ġilda" "ġild" [] "ġildiet" "ġlud" ; -- mkNColl "ġild" ; + leave_V2 = mkV "telaq" (mkRoot "t-l-q") ; -- left_Ord - leg_N = mkN "riġel" [] "riġlejn" [] [] ; -- sieq? -- pronSuffix - lie_V = mtedd_MDD_8_8816_V ; + leg_N = possN (mkN "riġel" [] "riġlejn" [] []) ; -- SIEQ + lie_V = mkV_VIII "mtedd" (mkRoot "m-d-d") ; -- like_V2 - listen_V2 = sema'_SMGH_1_9698_V ; - live_V = ghex_GHJX_1_10711_V ; - liver_N = mkN "fwied" [] [] [] "ifdwa" ; -- pronSuffix - long_A = brokenA "twil" "twal" "itwal" ; - lose_V2 = tilef_TLF_1_9895_V ; - louse_N = mkN "qamla" "qamliet" ; - love_N = mkN "mħabba" "mħabbiet" ; -- hmmm - love_V2 = habb_HBB_1_8174_V ; - man_N = mkN "raġel" "rġiel" ; + listen_V2 = mkV "sema'" (mkRoot "s-m-għ") ; + live_V = mkV "għex" (mkRoot "għ-j-x") ; + liver_N = mkN "fwied" [] [] [] "ifdwa" ; + long_A = brokenA "twil" "twal" "itwal" ; + lose_V2 = mkV "tilef" (mkRoot "t-l-f") ; + louse_N = mkN "qamla" "qamliet" ; + love_N = mkN "mħabba" "mħabbiet" ; + love_V2 = mkV "ħabb" (mkRoot "ħ-b-b") ; + man_N = mkN "raġel" "rġiel" ; -- married_A2 - meat_N = mkN "laħam" [] [] "laħmiet" "laħmijiet" ; - milk_N = mkN [] "ħalib" [] "ħalibijiet" "ħlejjeb" ; - moon_N = mkN "qamar" "oqmra" ; -- qmura? - mother_N2 = mkN2 (mkN "omm" "ommijiet" feminine) ; -- pronSuffix - mountain_N = mkN "muntanja" ; - mouth_N = mkN "ħalq" "ħluq" ; -- pronSuffix - music_N = mkN "musika" ; -- plural? - name_N = mkN "isem" "ismijiet" ; -- pronSuffix - narrow_A = mkA "dejjaq" "dejqa" "dojoq" "idjaq" ; - near_A = regA "viċin" ; - neck_N = mkN "għonq" "għenuq" ; -- pronSuffix - new_A = brokenA "ġdid" "ġodda" ; - newspaper_N = mkN "gazzetta" ; - night_N = mkN "lejl" "ljieli" ; - nose_N = mkN "mnieħer" "mniħrijiet" ; -- pronSuffix + 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" ; + name_N = possN (mkN "isem" "ismijiet") ; + narrow_A = mkA "dejjaq" "dejqa" "dojoq" "idjaq" ; + near_A = regA "viċin" ; + neck_N = possN (mkN "għonq" "għenuq") ; + new_A = brokenA "ġdid" "ġodda" ; + newspaper_N = mkN "gazzetta" ; + night_N = mkN "lejl" "ljieli" ; + nose_N = possN (mkN "mnieħer" "mniħrijiet") ; -- now_Adv - number_N = mkN "numru" ; - oil_N = mkN "żejt" "żjut" ; - old_A = brokenA "qadim" "qodma" "eqdem" ; - open_V2 = fetah_FTH_1_7932_V ; + number_N = mkN "numru" ; + oil_N = mkN "żejt" "żjut" ; + old_A = brokenA "qadim" "qodma" "eqdem" ; + open_V2 = mkV "fetaħ" (mkRoot "f-t-ħ") ; -- paint_V2A - paper_N = mkN "karta" ; --- paris_PN - peace_N = mkN "paċi" "paċijiet" feminine ; - pen_N = mkN "pinna" "pinen" ; - person_N = mk5N [] "persuna" [] "persuni" [] masculine ; - planet_N = mkN "pjaneta" ; - plastic_N = mkNNoPlural "plastik" ; - play_V = laghab_LGHB_1_8724_V ; - play_V2 = daqq_DQQ_1_7736_V ; - policeman_N = mkNNoPlural "pulizija" ; - priest_N = mkN "qassis" "qassisin" ; + paper_N = mkN "karta" ; + paris_PN = mkPN "Pariġi" feminine singular ; + peace_N = mkN "paċi" "paċijiet" feminine ; + pen_N = mkN "pinna" "pinen" ; + 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") ; + policeman_N = mkNNoPlural "pulizija" ; + priest_N = mkN "qassis" "qassisin" ; -- probable_AS - pull_V2 = gibed_GBD_1_8043_V ; + pull_V2 = mkV "ġibed" (mkRoot "ġ-b-d") ; -- push_V2 - put_V2 = 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" ; + put_V2 = mkV_III "qiegħed" (mkRoot "q-għ-d") ; + 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 = 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" ; + read_V2 = mkV "qara" (mkRoot "q-r-j") ; + 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 - 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! - roof_N = mkN "saqaf" "soqfa" ; - root_N = mkN "qħerq" "qħeruq" ; - rope_N = mkN "ħabel" "ħbula" ; - rotten_A = mkA "mħassar" "mħassra" "mħassrin" ; - round_A = regA "tond" ; + 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! + roof_N = mkN "saqaf" "soqfa" ; + root_N = mkN "qħerq" "qħeruq" ; + rope_N = mkN "ħabel" "ħbula" ; + rotten_A = mkA "mħassar" "mħassra" "mħassrin" ; + round_A = regA "tond" ; -- rub_V2 - rubber_N = mkN "gomma" "gomom" ; - rule_N = mkN "regola" ; - run_V = gera_GRJ_1_8131_V ; - salt_N = mkN "melħ" "melħiet" ; - sand_N = mkN "ramla" "ramel" [] "ramliet" "rmiel" ; + rubber_N = mkN "gomma" "gomom" ; + rule_N = mkN "regola" ; + run_V = mkV "ġera" (mkRoot "ġ-r-j") ; + salt_N = mkN "melħ" "melħiet" ; + sand_N = mkN "ramla" "ramel" [] "ramliet" "rmiel" ; -- say_VS - school_N = mkN "skola" "skejjel" ; - science_N = mkN "xjenza" ; - scratch_V2 = barax_BRX_1_7504_V ; - sea_N = mkN "baħar" [] "baħrejn" "ibħra" [] ; + school_N = mkN "skola" "skejjel" ; + science_N = mkN "xjenza" ; + scratch_V2 = mkV "barax" (mkRoot "b-r-x") ; + sea_N = mkN "baħar" [] "baħrejn" "ibħra" [] ; -- see_V2 - seed_N = mkN "żerriegħa" "żerrigħat" ; - seek_V2 = fittex_FTX_2_7952_V ; - sell_V3 = biegh_BJGH_1_7565_V ; - send_V3 = baghat_BGHT_1_7412_V ; - sew_V = hat_HJT_1_8508_V ; - sharp_A = mkA "jaqta" "taqta" "jaqtgħu" ; -- TODO: apostrophe? - sheep_N = mkN "nagħġa" "nagħaġ" [] "nagħġiet" [] ; - ship_N = mkN "vapur" ; - shirt_N = mkN "qmis" "qomos" feminine ; - shoe_N = mkN "żarbun" "żraben" ; - shop_N = mkN "ħanut" "ħwienet" ; - short_A = brokenA "qasir" "qosra" "iqsar" ; - silver_N = mkN "fidda" "fided" ; - sing_V = kanta_KNTJ_1_7016_V ; - sister_N = mkN "oħt" "aħwa" feminine ; -- pronSuffix - 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") ; - small_A = brokenA "zgħir" "zgħar" "iżgħar" ; - 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" ; + 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") ; + sharp_A = mkA "jaqta'" "taqta'" "jaqtgħu" ; + sheep_N = mkN "nagħġa" "nagħaġ" [] "nagħġiet" [] ; + ship_N = mkN "vapur" ; + shirt_N = mkN "qmis" "qomos" feminine ; + shoe_N = mkN "żarbun" "żraben" ; + 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") ; + sister_N = possN (mkN "oħt" "aħwa" feminine) ; + sit_V = mkV_II "poġġa" (mkRoot "p-ġ-j") ; + skin_N = mkN "ġilda" "ġildiet" ; + sky_N = mkN "sema" "smewwiet" masculine ; + sleep_V = mkV "raqad" (mkRoot "r-q-d") ; + small_A = brokenA "zgħir" "zgħar" "iżgħar" ; + smell_V = mkV "xamm" (mkRoot "x-m-m") ; + 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 = bezaq_BZQ_1_7549_V ; - split_V2 = qasam_QSM_1_9292_V ; + spit_V = mkV "beżaq" (mkRoot "b-ż-q") ; + split_V2 = mkV "qasam" (mkRoot "q-s-m") ; -- squeeze_V2 - stab_V2 = mewwes_MWS_2_8921_V ; + stab_V2 = mkV_II "mewwes" (mkRoot "m-w-s") ; -- stand_V - star_N = mkN "stilla" "stilel" ; - steel_N = mkNNoPlural "azzar" ; - stick_N = mkN "lasta" ; - stone_N = mkN "ġebla" "ġebel" [] "ġebliet" "ġbiel" ; - 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" ; -- these are really nouns... - suck_V2 = rada'_RDGH_1_9388_V ; - sun_N = mkN "xemx" "xmux" feminine ; - swell_V = ntefah_NFH_8_8970_V ; - swim_V = gham_GHWM_1_10750_V ; - switch8off_V2 = tefa_TFJ_1_9960_V ; - switch8on_V2 = xeghel_XGHL_1_10155_V ; - table_N = mkN "mejda" "mwejjed" ; - tail_N = mkN "denb" "dnieb" ; -- pronSuffix + 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") ; + 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ħ") ; + 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") ; + table_N = mkN "mejda" "mwejjed" ; + tail_N = possN (mkN "denb" "dnieb") ; -- talk_V3 - teach_V2 = ghallem_GHLM_2_10526_V ; - teacher_N = mkN "għalliem" "għalliema" ; -- għalliema ? - television_N = mkN "televixin" "televixins" ; - thick_A = mkA "oħxon" "ħoxna" "ħoxnin" "eħxen" ; - thin_A = brokenA "rqiq" "rqaq" "rqaq" ; - think_V = haseb_HSB_1_8387_V ; - throw_V2 = waddab_WDB_2_10027_V ; - tie_V2 = qafel_QFL_1_9206_V ; + teach_V2 = mkV_II "għallem" (mkRoot "għ-l-m") ; + 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 - tongue_N = mkN "lsien" "ilsna" ; -- pronSuffix - tooth_N = mkN "sinna" [] [] "sinniet" "snien" ; -- darsa? -- pronSuffix - train_N = mkN "ferrovija" ; + tongue_N = possN (mkN "lsien" "ilsna") ; + tooth_N = possN (mkN "sinna" [] [] "sinniet" "snien") ; -- DARSA + train_N = mkN "ferrovija" ; -- travel_V - tree_N = mkN "siġra" "siġar" [] "siġriet" [] ; - turn_V = dar_DWR_1_7803_V ; - ugly_A = mkA "ikrah" "kerha" "koroh" ; -- ikreh? - uncertain_A = regA "inċert" ; + tree_N = mkN "siġra" "siġar" [] "siġriet" [] ; + turn_V = mkV "dar" (mkRoot "d-w-r") ; + ugly_A = mkA "ikrah" "kerha" "koroh" ; + uncertain_A = regA "inċert" ; -- understand_V2 --- missing from dict - university_N = mkN "università" "universitàjiet" ; - village_N = mkN "raħal" "rħula" ; -- villaġġ ? -- pronSuffix - vomit_V = qala'_QLGH_1_9223_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 = mexa_MXJ_1_8926_V ; - war_N = mkN "gwerra" "gwerrer" ; - warm_A = hot_A ; - wash_V2 = hasel_HSL_1_8395_V ; + walk_V = mkV "mexa" (mkRoot "m-x-j") ; + war_N = mkN "gwerra" "gwerrer" ; + warm_A = hot_A ; + wash_V2 = mkV "ħasel" (mkRoot "ħ-s-l") ; -- watch_V2 - 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" ; -- pronSuffix MARTI - win_V2 = 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 = mesah_MSH_1_8881_V ; - woman_N = mkN "mara" "nisa" ; + 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-ħ") ; + 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-ħ") ; + woman_N = mkN "mara" "nisa" ; -- wonder_VQ - wood_N = mkN "injam" "injamiet" ; - worm_N = mkN "dudu" "dud" [] "dudiet" "dwied" ; -- duda - write_V2 = kiteb_KTB_1_8641_V ; - year_N = mkN "sena" [] "sentejn" "snin" [] ; -- pronSuffix SNINI (only plural though!) - yellow_A = mkA "isfar" "safra" "sofor" ; - young_A = small_A ; + wood_N = mkN "injam" "injamiet" ; + worm_N = mkN "dudu" "dud" [] "dudiet" "dwied" ; + write_V2 = mkV "kiteb" (mkRoot "k-t-b") ; + year_N = mkN "sena" [] "sentejn" "snin" [] ; + yellow_A = mkA "isfar" "safra" "sofor" ; + young_A = small_A ; } ; diff --git a/lib/src/maltese/MorphoMlt.gf b/lib/src/maltese/MorphoMlt.gf index 893608b31..75652b68b 100644 --- a/lib/src/maltese/MorphoMlt.gf +++ b/lib/src/maltese/MorphoMlt.gf @@ -1,7 +1,7 @@ -- MorphoMlt.gf: scary morphology operations which need their own elbow space -- --- Maltese Resource Grammar Library --- John J. Camilleri 2009 -- 2013 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Angelo Zammit 2012 -- Licensed under LGPL @@ -12,6 +12,17 @@ resource MorphoMlt = ResMlt ** open Prelude in { coding=utf8 ; + {- Determiners ---------------------------------------------------------- -} + + oper + mkDeterminer : Number -> Str -> Determiner = \n,s -> { + s = \\gen => s ; + n = Num n ; -- Number -> NumForm + clitic = [] ; + hasNum = False ; + isPron = False ; + } ; + {- Pronoun -------------------------------------------------------------- -} oper @@ -19,14 +30,14 @@ resource MorphoMlt = ResMlt ** open Prelude in { mkPron = overload { -- jiena, inti, huwa - mkPron : (_,_,_,_,_,_ : Str) -> Number -> Person -> Gender -> Pronoun = - \jien, _i, _ja, _ek, _k, _li, num, pers, gen -> { + mkPron : (_,_,_,_ : Str) -> Number -> Person -> Gender -> Pronoun = + \jien, _i, _ni, _li, num, pers, gen -> { s = table { - Personal => {c1 = jien ; c2 = []} ; - Possessive => {c1 = "tiegħ" + _i ; c2 = []} ; - Suffixed Acc => {c1 = _ek ; c2 = _k} ; -- rajtek, rak - Suffixed Dat => {c1 = _li ; c2 = []} ; -- rajtli - Suffixed Gen => {c1 = _i ; c2 = _ja} -- qalbi, idejja + Personal => jien ; -- jien + Possessive => "tiegħ" + _i ; -- tiegħi + Suffixed Acc => _ni ; -- rajtni + Suffixed Dat => _li ; -- rajtli + Suffixed Gen => _i -- qalbi, idejja } ; a = mkAgr gen num pers ; } ; @@ -35,11 +46,11 @@ resource MorphoMlt = ResMlt ** open Prelude in { mkPron : (_,_ : Str) -> Number -> Person -> Gender -> Pronoun = \hi, _ha, num, pers, gen -> { s = table { - Personal => {c1 = hi ; c2 = []} ; - Possessive => {c1 = "tagħ" + _ha ; c2 = []} ; - Suffixed Acc => {c1 = _ha ; c2 = []} ; - Suffixed Dat => {c1 = "l"+_ha ; c2 = []} ; - Suffixed Gen => {c1 = _ha ; c2 = []} + Personal => hi ; -- hi + Possessive => "tagħ" + _ha ; -- tagħha + Suffixed Acc => _ha ; -- rajtha + Suffixed Dat => "l"+_ha ; -- rajtilha + Suffixed Gen => _ha -- qalbha } ; a = mkAgr gen num pers ; } ; diff --git a/lib/src/maltese/NounMlt.gf b/lib/src/maltese/NounMlt.gf index cdb3d56e9..68c372add 100644 --- a/lib/src/maltese/NounMlt.gf +++ b/lib/src/maltese/NounMlt.gf @@ -1,7 +1,8 @@ -- NounMlt.gf: noun phrases and nouns -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 +-- Angelo Zammit 2012 -- Licensed under LGPL concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in { @@ -9,30 +10,89 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in { flags optimize=noexpand ; + oper + -- Used in DetCN below + chooseNounNumForm : Det -> CN -> Str = \det,n -> + let + det' = det.s ! n.g ; + sing = n.s ! Singular Singulative ; + coll = if_then_Str n.hasColl + (n.s ! Singular Collective) -- BAQAR + (n.s ! Plural Determinate) -- SNIEN + ; + dual = n.s ! Dual ; + pdet = n.s ! Plural Determinate ; + pind = n.s ! Plural Indeterminate ; + in case det.n of { + Num Sg => det' ++ sing ; -- BAQRA + Num 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 + ; + Num3_10 => det' ++ coll ; -- TLETT BAQAR + Num11_19 => det' ++ sing ; -- ĦDAX-IL BAQRA + Num20_99 => det' ++ sing -- GĦOXRIN BAQRA + } ; + lin -- Det -> CN -> NP DetCN det cn = { - s = \\c => det.s ++ cn.s ! numnum2nounnum det.n ; - a = case (numnum2nounnum det.n) of { + s = \\c => case of { + => glue (cn.s ! numform2nounnum det.n) det.clitic ; + => artDef ++ cn.s ! numform2nounnum det.n ++ det.s ! cn.g ; + _ => chooseNounNumForm det cn + } ; + a = case (numform2nounnum det.n) of { Singular _ => mkAgr cn.g Sg P3 ; - _ => mkAgr cn.g Pl P3 + _ => mkAgr cn.g Pl P3 } ; isPron = False ; } ; -- Quant -> Num -> Det DetQuant quant num = { - s = quant.s ! num.hasCard ! num.n ++ num.s ! NumNominative; - n = num.n ; - hasNum = num.hasCard + s = \\gen => + let gennum = case num.n of { Num 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 ; + hasNum = num.hasCard ; + isPron = quant.isPron ; + clitic = quant.clitic ; } ; + -- 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 } + 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 ; + hasNum = True ; + isPron = quant.isPron ; + clitic = quant.clitic ; + } ; + -- Quant DefArt = { - s = \\hasCard,n => artDef ; + s = \\_ => artDef ; + clitic = [] ; + isPron = False ; + isDemo = False ; } ; IndefArt = { - s = \\hasCard,n => artIndef ; + s = \\_ => artIndef ; + clitic = [] ; + isPron = False ; + isDemo = False ; } ; -- PN -> NP @@ -44,18 +104,40 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in { -- Pron -> NP UsePron p = { - -- s = \\npcase => (p.s ! Personal).c1 ; s = table { - Nom => (p.s ! Personal).c1 ; - CPrep => (p.s ! Suffixed Acc).c1 + Nom => p.s ! Personal ; + CPrep => p.s ! Suffixed Acc } ; a = p.a ; isPron = True ; } ; + -- Pron -> Quant + PossPron p = { + s = \\_ => p.s ! Possessive ; + clitic = p.s ! Suffixed Gen ; + isPron = True ; + isDemo = False ; + } ; + -- Num - NumSg = {s = \\c => []; n = Num_Sg ; hasCard = False} ; - NumPl = {s = \\c => []; n = Num_Pl ; hasCard = False} ; + NumSg = {s = \\c => []; n = Num Sg ; hasCard = False} ; + NumPl = {s = \\c => []; n = Num Pl ; hasCard = False} ; + + -- Card -> Num + NumCard n = n ** {hasCard = True} ; + + -- Digits -> Card + NumDigits d = {s = d.s ; n = d.n} ; + + -- Digits -> Ord + OrdDigits d = {s = d.s} ; + + -- Numeral -> Card + NumNumeral numeral = {s = numeral.s ! NCard; n = numeral.n} ; + + -- Numeral -> Ord + OrdNumeral numeral = {s = numeral.s ! NOrd} ; -- N -> CN UseN n = n ; diff --git a/lib/src/maltese/NumeralMlt.gf b/lib/src/maltese/NumeralMlt.gf index ad163bdba..a90459618 100644 --- a/lib/src/maltese/NumeralMlt.gf +++ b/lib/src/maltese/NumeralMlt.gf @@ -1,7 +1,7 @@ -- NumeralMlt.gf: cardinals and ordinals -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt in { @@ -12,11 +12,6 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt -- Dig, Digits {- - -- This code taken from examples/numerals/maltese.sty in GF darcs repository, July 2011. - -- Original author unknown - - -- ABSTRACT definitions copied from lib/src/abstract/Numeral.gf - -- Numerals from 1 to 999999 in decimal notation cat Numeral ; -- 0.. @@ -46,18 +41,18 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt pot3 : Sub1000 -> Sub1000000 ; -- m * 1000 pot3plus : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n -} + oper + --- I have a strong suspicion that these can be better factored, esp wrt thou Form1 = { - s : DForm => CardOrd => Num_Case => Str ; - --thou : CardOrd => Str ; + s : DForm => CardOrd => NumCase => Str ; thou : { s : Str ; treatAs : DForm } ; - n : Num_Number ; + n : NumForm ; } ; Form2 = { - s : CardOrd => Num_Case => Str ; - --thou : CardOrd => Str ; + s : CardOrd => NumCase => Str ; thou : { s : Str ; treatAs : DForm } ; - n : Num_Number ; + n : NumForm ; f : DForm ; } ; @@ -72,75 +67,74 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt oper -- Make a "number" (in this case a Form1) - -- Should be moved to ResMlt ? -- Params: -- unit, eg TNEJN -- ordinal unit (without article), eg TIENI -- adjectival, eg ŻEWĠ -- teen, eg TNAX -- ten, eg GĦOXRIN - -- number, eg Num_Dl - --mkNum : Str -> Str -> Str -> Str -> Str -> Str -> Str -> Num_Number -> Form1 = \unit,ordunit,adjectival,teen,ten,hundred,thousand,num -> { - mkNum : Str -> Str -> Str -> Str -> Str -> Num_Number -> Form1 = \unit,ordunit,adjectival,teen,ten,num -> + -- number, eg Num2 + mkNum : Str -> Str -> Str -> Str -> Str -> NumForm -> Form1 = \unit,ordunit,adjectival,teen,ten,num -> let hundred = case num of { - Num_Sg => "mija" ; - Num_Dl => "mitejn" ; + Num1 => "mija" ; + Num2 => "mitejn" ; _ => adjectival } ; thousand = case num of { - Num_Sg => "wieħed" ; - Num_Dl => "elfejn" ; + Num1 => "wieħed" ; + Num2 => "elfejn" ; _ => case adjectival of { - _ + "'" => (init adjectival) + "t" ; -- eg SEBA' -> SEBAT - _ + "t" => adjectival ; -- eg SITT -> SITT - _ => adjectival + "t" -- eg ĦAMES -> ĦAMEST + _ + "'" => (init adjectival) + "t" ; -- SEBA' -> SEBAT + _ + "t" => adjectival ; -- SITT -> SITT + _ => adjectival + "t" -- ĦAMES -> ĦAMEST } } in { s = table { Unit => table { NCard => table { - NumNominative => unit ; -- eg TNEJN - NumAdjectival => adjectival -- eg ŻEWĠ + NumNom => unit ; -- TNEJN + NumAdj => case num of { + Num1 => "" ; -- [] baqra + _ => adjectival -- ŻEWĠ baqar + } } ; - NOrd => \\numcase => artDef ++ ordunit -- eg IT-TIENI + NOrd => \\numcase => ordunit -- TIENI } ; Teen => table { NCard => table { - NumNominative => teen ; -- eg TNAX - NumAdjectival => teen + "-il" -- eg TNAX-IL + NumNom => teen ; -- TNAX + NumAdj => glue teen "-il" -- TNAX-IL } ; NOrd => table { - NumNominative => artDef ++ teen ; -- eg IT-TNAX - NumAdjectival => artDef ++ (teen + "-il") -- eg IT-TNAX-IL + NumNom => teen ; -- TNAX + NumAdj => glue teen "-il" -- TNAX-IL } } ; - Ten => table { - NCard => \\numcase => ten ; -- eg TLETIN - NOrd => \\numcase => artDef ++ ten -- eg IT-TLETIN - } ; - Hund => table { + Ten => \\cardord,numcase => ten ; -- TLETIN + -- Hund, Thou + _ => table { NCard => case num of { - Num_Sg => table { - NumNominative => "mija" ; -- ie MIJA - NumAdjectival => "mitt" -- ie MITT suldat + Num1 => table { + NumNom => "mija" ; -- MIJA + NumAdj => "mitt" -- MITT suldat } ; - Num_Dl => \\numcase => hundred ; -- ie MITEJN + Num2 => \\numcase => hundred ; -- MITEJN _ => table { - NumNominative => hundred ++ "mija" ; -- eg MIJA, SEBA' MIJA - NumAdjectival => hundred ++ "mitt" -- eg MITT, SEBA' MITT suldat + NumNom => hundred ++ "mija" ; -- MIJA, SEBA' MIJA + NumAdj => hundred ++ "mitt" -- MITT, SEBA' MITT suldat } } ; NOrd => case num of { - Num_Sg => table { - NumNominative => artDef ++ "mija" ; -- ie IL-MIJA - NumAdjectival => artDef ++ "mitt" -- ie IL-MITT suldat + Num1 => table { + NumNom => "mija" ; -- MIJA + NumAdj => "mitt" -- MITT suldat } ; - Num_Dl => \\numcase => artDef ++ hundred ; -- ie IL-MITEJN, IL-MITEJN suldat + Num2 => \\numcase => hundred ; -- MITEJN, MITEJN suldat _ => table { - NumNominative => artDef ++ hundred ++ "mija" ; -- eg IS-SEBA' MIJA - NumAdjectival => artDef ++ hundred ++ "mitt" -- eg IS-SEBA' MITT suldat + NumNom => hundred ++ "mija" ; -- SEBA' MIJA + NumAdj => hundred ++ "mitt" -- SEBA' MITT suldat } } } @@ -152,62 +146,59 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt lin -- Unit Ord.Unit Adjectival Teen Ten Number - n2 = mkNum "tnejn" "tieni" "żewġ" "tnax" "għoxrin" Num_Dl ; - n3 = mkNum "tlieta" "tielet" "tlett" "tlettax" "tletin" Num_Pl ; -- TODO tlett / tliet ? - n4 = mkNum "erbgħa" "raba'" "erba'" "erbatax" "erbgħin" Num_Pl ; - n5 = mkNum "ħamsa" "ħames" "ħames" "ħmistax" "ħamsin" Num_Pl ; - n6 = mkNum "sitta" "sitt" "sitt" "sittax" "sittin" Num_Pl ; - n7 = mkNum "sebgħa" "seba'" "seba'" "sbatax" "sebgħin" Num_Pl ; - n8 = mkNum "tmienja" "tmin" "tmin" "tmintax" "tmenin" Num_Pl ; - n9 = mkNum "disgħa" "disa'" "disa'" "dsatax" "disgħin" Num_Pl ; + n2 = mkNum "tnejn" "tieni" "żewġ" "tnax" "għoxrin" Num2 ; + n3 = mkNum "tlieta" "tielet" "tlett" "tlettax" "tletin" Num3_10 ; --- TODO tlett / tliet ? + n4 = mkNum "erbgħa" "raba'" "erba'" "erbatax" "erbgħin" Num3_10 ; + n5 = mkNum "ħamsa" "ħames" "ħames" "ħmistax" "ħamsin" Num3_10 ; + n6 = mkNum "sitta" "sitt" "sitt" "sittax" "sittin" Num3_10 ; + n7 = mkNum "sebgħa" "seba'" "seba'" "sbatax" "sebgħin" Num3_10 ; + n8 = mkNum "tmienja" "tmin" "tmin" "tmintax" "tmenin" Num3_10 ; + n9 = mkNum "disgħa" "disa'" "disa'" "dsatax" "disgħin" Num3_10 ; oper -- Helper functions for below mkForm2 : Form2 = overload { -- Infer adjectival, thousands - mkForm2 : Str -> Str -> DForm -> Form2 = \card,ord,form -> { + mkForm2 : Str -> Str -> DForm -> NumForm -> Form2 = \card,ord,dform,numform -> { s = table { NCard => \\numcase => card ; NOrd => \\numcase => ord } ; - --thou = card ; - thou = { s = card ; treatAs = form } ; - n = Num_Pl ; - f = form ; + thou = { s = card ; treatAs = dform } ; + n = numform ; + f = dform ; } ; -- Explicit everything - mkForm2 : Str -> Str -> Str -> Str -> DForm -> Form2 = \card,ord,adj,thousand,form -> { + mkForm2 : Str -> Str -> Str -> Str -> DForm -> NumForm -> Form2 = \card,ord,adj,thousand,dform,numform -> { s = table { NCard => table { - NumNominative => card ; - NumAdjectival => adj + NumNom => card ; + NumAdj => adj } ; - --NOrd => \\numcase => addDefiniteArticle ord NOrd => table { - NumNominative => artDef ++ ord ; - NumAdjectival => artDef ++ adj + NumNom => ord ; + NumAdj => adj } } ; - --thou = thousand ; - thou = { s = thousand ; treatAs = form } ; - n = Num_Pl ; - f = form ; + thou = { s = thousand ; treatAs = dform } ; + n = numform ; + f = dform ; } ; -- Given an existing table - mkForm2 : (CardOrd => Num_Case => Str) -> DForm -> Form2 = \tab,form -> { + mkForm2 : (CardOrd => NumCase => Str) -> DForm -> NumForm -> Form2 = \tab,dform,numform -> { s = tab ; thou = { - s = case form of { - Teen => tab ! NCard ! NumAdjectival ; - _ => tab ! NCard ! NumNominative + s = case dform of { + Teen => tab ! NCard ! NumAdj ; + _ => tab ! NCard ! NumNom } ; - treatAs = form ; + treatAs = dform ; } ; - n = Num_Pl ; - f = form ; + n = numform ; + f = dform ; } ; }; -- end of mkForm2 overload @@ -219,39 +210,18 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt -- Sub10 ; 1 -- Unit Ord.Unit Adjectival Teen Ten Number - pot01 = mkNum "wieħed" "ewwel" "wieħed" [] [] Num_Sg ; + pot01 = mkNum "wieħed" "ewwel" "wieħed" [] [] Num1 ; -- Digit -> Sub10 ; d * 1 - pot0 d = d ** {n = case d.n of { Num_Dl => Num_Dl ; _ => Num_Pl } } ; + pot0 d = d ** {n = case d.n of { Num2 => Num2 ; _ => Num3_10 }} ; -- Sub100 ; 10, 11 -- Cardinal Ordinal Adjectival Thousand Form - pot110 = mkForm2 "għaxra" "għaxar" "għaxar" "għaxart" Unit ; - pot111 = mkForm2 "ħdax" "ħdax" "ħdax-il" "ħdax-il" Teen ; -{- - pot110 = { - s = table { - NCard => table { - NumNominative => "għaxra" ; - NumAdjectival => "għaxar" - } ; - NOrd => \\numcase => addDefiniteArticle "għaxar" - } ; - thou = table { - NCard => "għaxart" ; - NOrd => addDefiniteArticle "għaxart" - } ; - n = Num_Pl ; - f = Ten ; - } ; --} + pot110 = mkForm2 "għaxra" "għaxar" "għaxar" "għaxart" Unit Num3_10 ; + pot111 = mkForm2 "ħdax" "ħdax" (glue "ħdax" "-il") (glue "ħdax" "-il") Teen Num11_19 ; -- Digit -> Sub100 ; 10 + d - pot1to19 d = - mkForm2 - (d.s ! Teen) - Teen - ; + pot1to19 d = mkForm2 (d.s ! Teen) Teen Num11_19 ; -- Sub10 -> Sub100 ; coercion of 1..9 pot0as1 d = { @@ -263,18 +233,27 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt -- Digit -> Sub100 ; d * 10 pot1 d = - mkForm2 - (d.s ! Ten) - Ten - ; + let + numform : NumForm = case d.n of { + Num1 => Num3_10 ; + _ => Num20_99 + } + in mkForm2 (d.s ! Ten) Ten numform ; -- Digit -> Sub10 -> Sub100 ; d * 10 + n pot1plus d n = - let unit = (n.s ! Unit ! NCard ! NumNominative) in + let + unit = (n.s ! Unit ! NCard ! NumNom) ; + numform : NumForm = case d.n of { + Num1 => Num11_19 ; + _ => Num20_99 + } + in mkForm2 - (unit ++ "u" ++ (d.s ! Ten ! NCard ! NumNominative)) - (artDef ++ unit ++ "u" ++ (d.s ! Ten ! NCard ! NumNominative)) + (unit ++ "u" ++ (d.s ! Ten ! NCard ! NumNom)) + (unit ++ "u" ++ (d.s ! Ten ! NCard ! NumNom)) Ten + numform ; -- Sub100 -> Sub1000 ; coercion of 1..99 @@ -285,39 +264,33 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt s = m.s ! Hund ; thou = { s = case m.n of { - Num_Sg => "mitt" ; -- Special case for "mitt elf" - Num_Dl => "mitejn" ; -- Special case for "mitejn elf" + Num1 => "mitt" ; -- Special case for "mitt elf" + Num2 => "mitejn" ; -- Special case for "mitejn elf" _ => m.thou.s } ; treatAs = Hund ; } ; - n = Num_Pl ; + n = Num0 ; f = Hund ; } ; -- Sub10 -> Sub100 -> Sub1000 ; m * 100 + n pot2plus m n = let - hund : Str = m.s ! Hund ! NCard ! NumNominative + hund : Str = m.s ! Hund ! NCard ! NumNom ; in { - s = table { - NCard => table { - NumNominative => hund ++ "u" ++ n.s ! NCard ! NumNominative ; - NumAdjectival => hund ++ "u" ++ n.s ! NCard ! NumAdjectival + s = \\cardord,numcase => case n.n of { + Num1 => hund ++ "u" ; + _ => hund ++ "u" ++ n.s ! NCard ! numcase } ; - NOrd => table { - NumNominative => artDef ++ hund ++ "u" ++ n.s ! NCard ! NumNominative ; - NumAdjectival => artDef ++ hund ++ "u" ++ n.s ! NCard ! NumAdjectival - } - } ; thou = { s = hund ++ "u" ++ n.thou.s ; treatAs = case n.n of { - Num_Sg => Ten ; -- specific case for mija u wiehed elf - _ => n.f -- eg So that "106,000" is treated as "6,000" + Num1 => Ten ; -- specific case for mija u wiehed elf + _ => n.f -- So that "106,000" is treated as "6,000" } ; } ; - n = Num_Pl ; + n = case n.n of { Num2 => Num3_10 ; _ => n.n } ; f = Hund ; } ; @@ -328,27 +301,17 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt pot3 m = { s = case of { - => numTable "elf" ; -- 1 * 1000 - => numTable "elfejn" ; -- 2 * 2000 - => numTable m.thou.s "elef" ; -- 3-10 * 1000 - => numTable m.thou.s "elf" -- 11+ * 1000 + => numTable "elf" ; -- 1 * 1000 + => numTable "elfejn" ; -- 2 * 1000 + <_,Unit> => numTable m.thou.s "elef" ; -- 3-10 * 1000 + <_,_> => numTable m.thou.s "elf" -- 11+ * 1000 } ; -{- - case m.f of { - Unit => numTable m.thou "elef" ; -- - _ => case m.n of { - Num_Sg => numTable "elf" ; -- - Num_Dl => numTable "elfejn" ; -- - Num_Pl => numTable m.thou "elf" -- - } - } ; --} thou = { s = m.thou.s ; treatAs = m.f ; } ; - n = Num_Pl ; - f = Hund ; -- NOT IMPORTANT + n = Num0 ; + f = Thou ; -- NOT IMPORTANT } ; -- Sub1000 -> Sub1000 -> Sub1000000 ; m * 1000 + n @@ -356,70 +319,37 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt s = let ukemm = table { - NumNominative => "u" ++ (n.s ! NCard ! NumNominative) ; - NumAdjectival => "u" ++ (n.s ! NCard ! NumAdjectival) + NumNom => "u" ++ (n.s ! NCard ! NumNom) ; + NumAdj => "u" ++ (n.s ! NCard ! NumAdj) } in case of { - => numTable "elf" ukemm ; - => numTable "elfejn" ukemm ; - => numTable (m.thou.s ++ "elef") ukemm ; - => numTable (m.thou.s ++ "elf") ukemm + => numTable "elf" ukemm ; + => numTable "elfejn" ukemm ; + <_,Unit> => numTable (m.thou.s ++ "elef") ukemm ; + <_,_> => numTable (m.thou.s ++ "elf") ukemm } ; -{- - Num_Sg => elf2 "elf" ukemm ; - Num_Dl => elf2 "elfejn" ukemm ; - Num_Pl => case m.f of { - Unit => elf2 m.thou ("elef" ++ ukemm) ; - _ => elf2 m.thou ("elf" ++ ukemm) - } --} thou = { s = m.thou.s ; treatAs = m.f ; } ; - n = Num_Pl ; + n = case n.n of { Num2 => Num3_10 ; _ => n.n } ; f = Hund ; -- NOT IMPORTANT } ; oper -- Build "x thousand" table - numTable : (CardOrd => Num_Case => Str) = overload { + numTable : (CardOrd => NumCase => Str) = overload { - numTable : Str -> (CardOrd => Num_Case => Str) = \thou -> table { - NCard => \\numcase => thou ; - NOrd => \\numcase => artDef ++ thou - } ; + numTable : Str -> (CardOrd => NumCase => Str) = \thou -> + \\cardord,numcase => thou ; - numTable : Str -> Str -> (CardOrd => Num_Case => Str) = \thou,attach -> table { - NCard => \\numcase => thou ++ attach ; - NOrd => \\numcase => artDef ++ thou ++ attach - } ; - - numTable : Str -> (Num_Case => Str) -> (CardOrd => Num_Case => Str) = \thou,attach -> table { - NCard => table { - NumNominative => thou ++ (attach ! NumNominative) ; - NumAdjectival => thou ++ (attach ! NumAdjectival) - } ; - NOrd => table { - NumNominative => artDef ++ thou ++ (attach ! NumNominative) ; - NumAdjectival => artDef ++ thou ++ (attach ! NumAdjectival) - } - } ; + numTable : Str -> Str -> (CardOrd => NumCase => Str) = \thou,attach -> + \\cardord,numcase => thou ++ attach ; + numTable : Str -> (NumCase => Str) -> (CardOrd => NumCase => Str) = \thou,attach -> + \\cardord,numcase => thou ++ (attach ! numcase) ; } ; -{- --- elf : (CardOrd => Str) = overload { - elf : Str -> (CardOrd => Num_Case => Str) = \m -> table { - NCard => \\numcase => m ; - NOrd => \\numcase => addDefiniteArticle m - } ; - elf2 : Str -> Str -> (CardOrd => Num_Case => Str) = \m,n -> table { - NCard => \\numcase => m ++ n ; - NOrd => \\numcase => (addDefiniteArticle m) ++ n - } ; --} --- } ; {- Numerals as sequences of digits have a separate, simpler grammar @@ -438,22 +368,17 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt lincat Dig = { - s : Str ; - n : Num_Number + s : NumCase => Str ; + n : NumForm ; + -- i : Int ; -- internal counter } ; oper - -- Helper for making a Dig object. Specifying no number inplies plural. - mkDig : Dig = overload { - mkDig : Str -> Dig = \digit -> lin Dig { - s = digit ; - n = Num_Pl + -- Helper for making a Dig object. + mkDig : Str -> NumForm -> Dig = \digit,num -> lin Dig { + s = \\numcase => digit ; + n = num } ; - mkDig : Str -> Num_Number -> Dig = \digit,num -> lin Dig { - s = digit ; - n = num - } ; - } ; -- For correct comma placement in Digits commaIf : DTail -> Str = \t -> case t of { @@ -467,25 +392,46 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt } ; lin - D_0 = mkDig "0" ; - D_1 = mkDig "1" Num_Sg ; - D_2 = mkDig "2" Num_Dl ; - D_3 = mkDig "3" ; - D_4 = mkDig "4" ; - D_5 = mkDig "5" ; - D_6 = mkDig "6" ; - D_7 = mkDig "7" ; - D_8 = mkDig "8" ; - D_9 = mkDig "9" ; + -- Dig + D_0 = mkDig "0" Num0 ; + D_1 = mkDig "1" Num1 ; + D_2 = mkDig "2" Num2 ; + D_3 = mkDig "3" Num3_10 ; + D_4 = mkDig "4" Num3_10 ; + D_5 = mkDig "5" Num3_10 ; + D_6 = mkDig "6" Num3_10 ; + D_7 = mkDig "7" Num3_10 ; + D_8 = mkDig "8" Num3_10 ; + D_9 = mkDig "9" Num3_10 ; -- Create Digits from a Dig + -- Dig -> Digits IDig d = d ** {tail = T1} ; -- Create Digits from combining Dig with Digits - IIDig d i = { - s = d.s ++ (commaIf i.tail) ++ i.s ; - n = Num_Pl ; - tail = inc i.tail - } ; + -- Dig -> Digits -> Digits + IIDig d i = + let + digits = d.s ! NumNom ++ (commaIf i.tail) ++ i.s ! NumNom; + numform = case of { + => num ; -- 0 x + => Num3_10 ; -- 1 0 + => Num11_19 ; -- 1 1 + => Num20_99 ; -- 2 x + => Num20_99 ; -- [3-9] x + => Num20_99 ; + <_,_> => Num20_99 --- how to handle overwrap? see i:Int in lincat Dig above + } ; + in { + s = table { + NumNom => digits ; + NumAdj => case numform of { + Num11_19 => glue digits "-il" ; + _ => digits + } + } ; + n = numform ; + tail = inc i.tail + } ; } diff --git a/lib/src/maltese/ParadigmsMlt.gf b/lib/src/maltese/ParadigmsMlt.gf index 48d7a7ce3..5460fdc6f 100644 --- a/lib/src/maltese/ParadigmsMlt.gf +++ b/lib/src/maltese/ParadigmsMlt.gf @@ -1,7 +1,8 @@ -- ParadigmsMlt.gf: morphological paradigms -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 +-- Angelo Zammit 2012 -- Licensed under LGPL --# -path=.:../abstract:../../prelude:../common @@ -110,7 +111,6 @@ resource ParadigmsMlt = open mkN : Str -> Str -> Gender -> N = \sing,plural,gender -> mk5N sing [] [] plural [] gender ; - -- Takes all 5 forms, inferring gender -- Params: -- Singulative, eg KOXXA @@ -184,14 +184,38 @@ resource ParadigmsMlt = open -- Build a noun using 5 forms, and a gender mk5N : (_,_,_,_,_ : Str) -> Gender -> N ; - mk5N = \sing,coll,dual,det,ind,gen -> lin N (mkNoun sing coll dual det ind gen) ; + mk5N = \sing,coll,dual,det,ind,gen -> lin N ( + mkNoun sing coll dual det ind gen + ) ; - -- Make a proper noun + -- Proper noun mkPN : Str -> Gender -> Number -> ProperNoun = \name,g,n -> { s = name ; a = mkAgr g n P3 ; } ; + mkN2 = overload { + mkN2 : N -> Prep -> N2 = prepN2 ; + mkN2 : N -> Str -> N2 = \n,s -> prepN2 n (mkPrep s); +-- mkN2 : Str -> Str -> N2 = \n,s -> prepN2 (regN n) (mkPrep s); + mkN2 : N -> N2 = \n -> prepN2 n (mkPrep "ta'") ; +-- mkN2 : Str -> N2 = \s -> prepN2 (regN s) (mkPrep "ta'") + } ; + + prepN2 : N -> Prep -> N2 ; + prepN2 = \n,p -> lin N2 (n ** {c2 = p.s}) ; + + -- Mark a noun as taking possessive enclitic pronouns + possN : N -> N ; + -- possN = \n -> n ** { takesPron = True } ; + possN = \n -> lin N { + s = n.s ; + g = n.g ; + hasColl = n.hasColl ; + hasDual = n.hasDual ; + takesPron = True ; + } ; + {- -- Correctly abbreviate definite prepositions and join with noun -- Params: @@ -254,21 +278,12 @@ resource ParadigmsMlt = open }); - mkN2 = overload { - mkN2 : N -> Prep -> N2 = prepN2 ; - mkN2 : N -> Str -> N2 = \n,s -> prepN2 n (mkPrep s); --- mkN2 : Str -> Str -> N2 = \n,s -> prepN2 (regN n) (mkPrep s); - mkN2 : N -> N2 = \n -> prepN2 n (mkPrep "ta'") ; --- mkN2 : Str -> N2 = \s -> prepN2 (regN s) (mkPrep "ta'") - } ; - - prepN2 : N -> Prep -> N2 ; - prepN2 = \n,p -> lin N2 (n ** {c2 = p.s}) ; + {- Prepositions ------------------------------------------------------- -} mkPrep : Str -> Prep ; -- e.g. "in front of" - noPrep : Prep ; -- no preposition - mkPrep p = lin Prep (ss p) ; + + noPrep : Prep ; -- no preposition noPrep = mkPrep [] ; @@ -1043,4 +1058,18 @@ resource ParadigmsMlt = open _ => (init fem) + "i" -- BRAVA } ; + + {- Quantitifer paradigms ---------------------------------------------- -} + + mkQuant : (dak, dik, dawk : Str) -> Bool -> Quant = \dak,dik,dawk,isdemo -> lin Quant { + s = table { + GSg Masc => dak ; + GSg Fem => dik ; + GPl => dawk + } ; + clitic = [] ; + isPron = False ; + isDemo = isdemo ; + } ; + } diff --git a/lib/src/maltese/PatternsMlt.gf b/lib/src/maltese/PatternsMlt.gf deleted file mode 100644 index 445c48928..000000000 --- a/lib/src/maltese/PatternsMlt.gf +++ /dev/null @@ -1,8 +0,0 @@ --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 --- Licensed under LGPL - -resource PatternsMlt = { - flags coding=utf8 ; - -} diff --git a/lib/src/maltese/PhraseMlt.gf b/lib/src/maltese/PhraseMlt.gf index 61b0b6316..b9b384b33 100644 --- a/lib/src/maltese/PhraseMlt.gf +++ b/lib/src/maltese/PhraseMlt.gf @@ -1,7 +1,7 @@ -- PhraseMlt.gf: suprasentential phrases -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL concrete PhraseMlt of Phrase = CatMlt ** open ParamX, Prelude, ResMlt in { diff --git a/lib/src/maltese/QuestionMlt.gf b/lib/src/maltese/QuestionMlt.gf index a966b3bee..ccbb4e04f 100644 --- a/lib/src/maltese/QuestionMlt.gf +++ b/lib/src/maltese/QuestionMlt.gf @@ -1,7 +1,7 @@ -- QuestionMlt.gf: questions and interrogatives -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL concrete QuestionMlt of Question = CatMlt ** open ResMlt, ParamX, Prelude in { diff --git a/lib/src/maltese/RelativeMlt.gf b/lib/src/maltese/RelativeMlt.gf index 82ce74ac8..5e9e1c1b7 100644 --- a/lib/src/maltese/RelativeMlt.gf +++ b/lib/src/maltese/RelativeMlt.gf @@ -1,7 +1,7 @@ -- RelativeMlt.gf: relational clauses and pronouns -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL concrete RelativeMlt of Relative = CatMlt ** open ResMlt in { diff --git a/lib/src/maltese/ResMlt.gf b/lib/src/maltese/ResMlt.gf index e42b83296..4c52720c4 100644 --- a/lib/src/maltese/ResMlt.gf +++ b/lib/src/maltese/ResMlt.gf @@ -1,7 +1,7 @@ -- ResMlt.gf: Language-specific parameter types, morphology, VP formation -- --- Maltese Resource Grammar Library --- John J. Camilleri 2009 -- 2013 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Angelo Zammit 2012 -- Licensed under LGPL @@ -68,26 +68,65 @@ resource ResMlt = ParamX ** open Prelude, Predef in { CardOrd = NCard | NOrd ; + -- Order of magnitude DForm = - Unit -- 0..10 - | Teen -- 11-19 - --| TeenIl -- 11-19 - | Ten -- 20-99 - | Hund -- 100..999 - --| Thou -- 1000+ + Unit -- 0..10 + | Teen -- 11..19 + | Ten -- 20..99 + | Hund -- 100..999 + | Thou -- 1000+ ; - Num_Number = - Num_Sg - | Num_Dl - | Num_Pl + -- 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) ; - Num_Case = - NumNominative -- TNEJN, ĦAMSA, TNAX, MIJA - | NumAdjectival -- ŻEWĠ, ĦAMES, TNAX-IL, MITT + NumCase = + NumNom -- "Type B" in {MDG, 133}, e.g. TNEJN, ĦAMSA, TNAX, MIJA + | NumAdj -- "Type A" in {MDG, 133}, e.g. ŻEWĠ, ĦAMES, TNAX-IL, MITT ; + {- Determiners etc. ----------------------------------------------------- -} + + oper + -- [AZ] + Determiner : Type = { + s : Gender => Str ; + n : NumForm ; + clitic : Str ; + hasNum : Bool ; + isPron : Bool ; + } ; + -- Determiner = { + -- s : NPCase => Gender => NumCase => Str ; + -- s2 : NPCase => Gender => Str ; -- tieghi (possessive pronoun) + -- -- size : Num_Size ; -- One (agreement feature for noun) + -- isNum : Bool ; -- True (a numeral is present) + -- isDemo : Bool ; -- True (is a demostrative) + -- isDefn : Bool ;-- True (is definite) + -- } ; + + -- [AZ] + Quantifier : Type = { + s : GenNum => Str ; + clitic : Str ; + isPron : Bool ; + isDemo : Bool ; -- Demonstrative (this/that/those/these) + } ; + -- Quantifier = { + -- s : NPCase => Gender => NumForm => Str ; + -- s2 : NPCase => Gender => NumForm => Str ; + -- isDemo : Bool ; -- Demonstrative (this/that/those/these) + -- isDefn : Bool ; + -- } ; {- Nouns ---------------------------------------------------------------- -} @@ -95,6 +134,9 @@ resource ResMlt = ParamX ** open Prelude, Predef in { Noun : Type = { s : Noun_Number => Str ; g : Gender ; + hasColl : Bool ; -- has a collective form? e.g. BAQAR + hasDual : Bool ; -- has a dual form? e.g. SAGĦTEJN + takesPron : Bool ; -- takes enclitic pronon? e.g. MISSIERI -- anim : Animacy ; -- is the noun animate? e.g. TABIB } ; @@ -127,9 +169,9 @@ resource ResMlt = ParamX ** open Prelude, Predef in { {- Pronoun -------------------------------------------------------------- -} oper - -- [AZ] Pronoun = { - s : PronForm => {c1, c2: Str} ; + -- s : PronForm => {c1, c2: Str} ; + s : PronForm => Str ; -- cases like omm-i / hi-ja are handled elsewhere a : Agr ; } ; @@ -447,13 +489,18 @@ resource ResMlt = ParamX ** open Prelude, Predef in { {- ~~~ Conversions ~~~ -} - numnum2nounnum : Num_Number -> Noun_Number = \n -> + numform2nounnum : NumForm -> Noun_Number = \n -> case n of { - Num_Sg => Singular Singulative ; - _ => Plural Determinate + Num Sg => Singular Singulative ; + Num Pl => Plural Indeterminate ; + Num0 => Singular Singulative ; + Num1 => Singular Singulative ; + Num2 => Dual ; + Num3_10 => Singular Collective ; + Num11_19 => Singular Singulative ; + Num20_99 => Plural Indeterminate } ; - {- ~~~ Useful helper functions ~~~ -} -- Non-existant form @@ -588,24 +635,11 @@ resource ResMlt = ParamX ** open Prelude, Predef in { _ => [] -- ? } ; - artIndef : Str = - pre { - "lill-" ; - "lil" / strs { "a" ; "e" ; "i" ; "o" ; "u" ; "h" ; "għ" } ; - "liċ-" ++ BIND / strs { "ċ" } ; - "lid-" ++ BIND / strs { "d" } ; - "lin-" ++ BIND / strs { "n" } ; - "lir-" ++ BIND / strs { "r" } ; - "lis-" ++ BIND / strs { "s" } ; - "lit-" ++ BIND / strs { "t" } ; - "lix-" ++ BIND / strs { "x" } ; - "liż-" ++ BIND / strs { "ż" } ; - "liz-" ++ BIND / strs { "z" } - } ; + artIndef : Str = "" ; artDef : Str = pre { - "il-" ; + "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" } ; @@ -637,6 +671,9 @@ resource ResMlt = ParamX ** open Prelude, Predef in { Plural Indeterminate => ind } ; g = gen ; + takesPron = False ; + hasDual = notB (isNil dual) ; + hasColl = notB (isNil coll) ; -- anim = Inanimate ; } ; diff --git a/lib/src/maltese/SentenceMlt.gf b/lib/src/maltese/SentenceMlt.gf index e95beae6f..d53e1a35e 100644 --- a/lib/src/maltese/SentenceMlt.gf +++ b/lib/src/maltese/SentenceMlt.gf @@ -1,7 +1,8 @@ -- SentenceMlt.gf: clauses and sentences -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 +-- Angelo Zammit 2012 -- Licensed under LGPL --# -path=.:abstract:common:prelude diff --git a/lib/src/maltese/StructuralMlt.gf b/lib/src/maltese/StructuralMlt.gf index 4f75eda6e..65c20d763 100644 --- a/lib/src/maltese/StructuralMlt.gf +++ b/lib/src/maltese/StructuralMlt.gf @@ -1,7 +1,7 @@ -- StructuralMlt.gf: lexicon of structural words -- --- Maltese Resource Grammar Library --- John J. Camilleri 2009 -- 2013 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL concrete StructuralMlt of Structural = CatMlt ** @@ -15,21 +15,42 @@ concrete StructuralMlt of Structural = CatMlt ** {- Pronoun -------------------------------------------------------------- -} - he_Pron = mkPron "hu" "u" "h" "u" "h" "lu" singular P3 masculine ; --- also HUWA - i_Pron = mkPron "jien" "i" "ja" "ni" [] "li" singular P1 masculine ; --- also JIENA - -- it_Pron = mkPron "it" "it" "its" "its" singular P3 nonhuman ; - she_Pron = mkPron "hi" "ha" singular P3 feminine ; --- also HIJA - they_Pron = mkPron "huma" "hom" plural P3 masculine ; - we_Pron = mkPron "aħna" "na" plural P1 masculine ; - youSg_Pron = mkPron "int" "ek" "ok" "ek" "k" "lek" singular P2 masculine ; -- also INTI - youPl_Pron = mkPron "intom" "kom" plural P2 masculine ; + i_Pron = mkPron "jien" "i" "ni" "li" singular P1 masculine ; --- also JIENA + youSg_Pron = mkPron "int" "ek" "ek" "lek" singular P2 masculine ; --- also INTI + he_Pron = mkPron "hu" "u" "u" "lu" singular P3 masculine ; --- also HUWA + she_Pron = mkPron "hi" "ha" singular P3 feminine ; --- also HIJA + we_Pron = mkPron "aħna" "na" plural P1 masculine ; + youPl_Pron = mkPron "intom" "kom" plural P2 masculine ; + they_Pron = mkPron "huma" "hom" plural P3 masculine ; youPol_Pron = youSg_Pron ; + -- it_Pron = mkPron "it" "it" "its" "its" singular P3 nonhuman ; + + {- Determiner ----------------------------------------------------------- -} + + all_Predet = ss "kollha" ; + -- every_Det = mkDeterminerSpec singular "every" "everyone" False ; + few_Det = mkDeterminer plural "ftit" ; + many_Det = mkDeterminer plural "ħafna" ; -- bosta + -- most_Predet = ss "most" ; + -- much_Det = mkDeterminer singular "much" ; + only_Predet = ss "biss" ; + someSg_Det = mkDeterminer singular "xi" ; + somePl_Det = mkDeterminer plural "xi" ; + -- not_predet = {s = "not" ; lock_Predet = <>} ; + + {- Quantifier ----------------------------------------------------------- -} + + that_Quant = mkQuant "dak" "dik" "dawk" True ; + this_Quant = mkQuant "dan" "din" "dawn" True ; + no_Quant = let l_ebda = artDef ++ "ebda" in + mkQuant l_ebda l_ebda l_ebda False ; + + -- which_IQuant = {s = \\_ => "which"} ; {- Others --------------------------------------------------------------- -} -- above_Prep = mkPrep "above" ; -- after_Prep = mkPrep "after" ; - -- all_Predet = ss "all" ; -- almost_AdA = mkAdA "almost" ; -- almost_AdN = mkAdN "almost" ; -- although_Subj = ss "although" ; @@ -58,10 +79,8 @@ concrete StructuralMlt of Structural = CatMlt ** -- during_Prep = mkPrep "during" ; -- either7or_DConj = mkConj "either" "or" singular ; -- everybody_NP = regNP "everybody" singular ; - -- every_Det = mkDeterminerSpec singular "every" "everyone" False ; -- everything_NP = regNP "everything" singular ; -- everywhere_Adv = mkAdv "everywhere" ; - -- few_Det = mkDeterminer plural "few" ; -- for_Prep = mkPrep "for" ; -- from_Prep = mkPrep "from" ; -- here_Adv = mkAdv "here" ; @@ -74,10 +93,8 @@ concrete StructuralMlt of Structural = CatMlt ** -- in8front_Prep = mkPrep ["in front of"] ; -- in_Prep = mkPrep "in" ; -- less_CAdv = C.mkCAdv "less" "than" ; - -- many_Det = mkDeterminer plural "many" ; -- more_CAdv = C.mkCAdv "more" "than" ; -- most_Predet = ss "most" ; - -- much_Det = mkDeterminer singular "much" ; -- must_VV = { -- s = table { -- VVF VInf => ["have to"] ; @@ -92,7 +109,6 @@ concrete StructuralMlt of Structural = CatMlt ** -- } ; -- no_Utt = ss "no" ; -- on_Prep = mkPrep "on" ; - -- only_Predet = ss "only" ; -- or_Conj = mkConj "or" singular ; -- otherwise_PConj = ss "otherwise" ; -- part_Prep = mkPrep "of" ; @@ -101,16 +117,12 @@ concrete StructuralMlt of Structural = CatMlt ** -- quite_Adv = mkAdv "quite" ; -- so_AdA = mkAdA "so" ; -- somebody_NP = regNP "somebody" singular ; - -- someSg_Det = mkDeterminer singular "some" ; - -- somePl_Det = mkDeterminer plural "some" ; -- something_NP = regNP "something" singular ; -- somewhere_Adv = mkAdv "somewhere" ; - -- that_Quant = mkQuant "that" "those" ; -- there_Adv = mkAdv "there" ; -- there7to_Adv = mkAdv "there" ; -- there7from_Adv = mkAdv ["from there"] ; -- therefore_PConj = ss "therefore" ; - -- this_Quant = mkQuant "this" "these" ; -- through_Prep = mkPrep "through" ; -- too_AdA = mkAdA "too" ; -- to_Prep = mkPrep "to" ; @@ -122,7 +134,6 @@ concrete StructuralMlt of Structural = CatMlt ** -- when_IAdv = ss "when" ; -- when_Subj = ss "when" ; -- where_IAdv = ss "where" ; - -- which_IQuant = {s = \\_ => "which"} ; -- whoPl_IP = mkIP "who" "whom" "whose" plural ; -- whoSg_IP = mkIP "who" "whom" "whose" singular ; -- why_IAdv = ss "why" ; @@ -130,8 +141,6 @@ concrete StructuralMlt of Structural = CatMlt ** -- with_Prep = mkPrep "with" ; -- yes_Utt = ss "yes" ; - -- not_predet = {s = "not" ; lock_Predet = <>} ; - -- no_Quant = mkQuant "no" "no" "none" "none" ; -- if_then_Conj = mkConj "if" "then" singular ; -- nobody_NP = regNP "nobody" singular ; -- nothing_NP = regNP "nothing" singular ; diff --git a/lib/src/maltese/SymbolMlt.gf b/lib/src/maltese/SymbolMlt.gf index ed43bcb99..c727840ef 100644 --- a/lib/src/maltese/SymbolMlt.gf +++ b/lib/src/maltese/SymbolMlt.gf @@ -1,5 +1,7 @@ --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- SymbolMlt.gf +-- +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL --# -path=.:../abstract:../common diff --git a/lib/src/maltese/TextMlt.gf b/lib/src/maltese/TextMlt.gf index d0d2f1bf9..d094ee571 100644 --- a/lib/src/maltese/TextMlt.gf +++ b/lib/src/maltese/TextMlt.gf @@ -1,7 +1,7 @@ -- TextMlt.gf: many-phrase texts -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 -- Licensed under LGPL concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in { diff --git a/lib/src/maltese/VerbMlt.gf b/lib/src/maltese/VerbMlt.gf index 4392ef782..7df609354 100644 --- a/lib/src/maltese/VerbMlt.gf +++ b/lib/src/maltese/VerbMlt.gf @@ -1,7 +1,8 @@ -- VerbMlt.gf: verb phrases -- --- Maltese Resource Grammar Library --- John J. Camilleri, 2012 +-- Maltese GF Resource Grammar +-- John J. Camilleri 2011 -- 2013 +-- Angelo Zammit 2012 -- Licensed under LGPL concrete VerbMlt of Verb = CatMlt ** open Prelude, ResMlt in {