Maltese RG: work on numerals, quants, dets, and enclitic pronouns with nouns

This commit is contained in:
john.j.camilleri
2013-02-13 16:18:09 +00:00
parent ffb17bd26a
commit 02169db183
28 changed files with 822 additions and 713 deletions

View File

@@ -1,7 +1,7 @@
-- AdjectiveMlt.gf: adjectives -- AdjectiveMlt.gf: adjectives
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
concrete AdjectiveMlt of Adjective = CatMlt ** open ResMlt, Prelude in { concrete AdjectiveMlt of Adjective = CatMlt ** open ResMlt, Prelude in {

View File

@@ -1,7 +1,7 @@
-- AdverbMlt.gf: adverbial phrases -- AdverbMlt.gf: adverbial phrases
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
concrete AdverbMlt of Adverb = CatMlt ** open ResMlt, Prelude in { concrete AdverbMlt of Adverb = CatMlt ** open ResMlt, Prelude in {

View File

@@ -1,7 +1,7 @@
-- AllMlt.gf: common grammar plus language-dependent extensions -- AllMlt.gf: common grammar plus language-dependent extensions
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
--# -path=.:prelude:../abstract:../common --# -path=.:prelude:../abstract:../common

View File

@@ -1,7 +1,7 @@
-- AllMlt.gf: common grammar plus language-dependent extensions -- AllMlt.gf: common grammar plus language-dependent extensions
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
--# -path=.:prelude:../abstract:../common --# -path=.:prelude:../abstract:../common

View File

@@ -1,14 +1,10 @@
-- CatMlt.gf: the common type system -- CatMlt.gf: the common type system
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Angelo Zammit 2012
-- Licensed under LGPL -- 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 { concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude in {
flags flags
@@ -56,7 +52,6 @@ concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude in {
-- Adjective -- Adjective
-- AP = {s : Agr => Str ; isPre : Bool} ;
AP = {s : GenNum => Str ; isPre : Bool} ; AP = {s : GenNum => Str ; isPre : Bool} ;
-- Noun -- Noun
@@ -64,28 +59,44 @@ concrete CatMlt of Cat = CommonX ** open ResMlt, Prelude in {
CN = Noun ; CN = Noun ;
NP = NounPhrase ; NP = NounPhrase ;
Pron = Pronoun ; Pron = Pronoun ;
-- Pron = {s : NPCase => Str ; sp : Case => Str ; a : Agr} ;
Det = {s : Str ; n : Num_Number ; hasNum : Bool} ; Det = Determiner ;
-- Det = {s : Str ; sp : NPCase => Str ; n : Number ; hasNum : Bool} ;
-- Predet = {s : Str} ; -- Predet = {s : Str} ;
-- Ord = { s : Case => Str } ; Quant = Quantifier ;
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} ;
-- 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 = { Numeral = {
s : CardOrd => Num_Case => Str ; s : CardOrd => NumCase => Str ;
n : Num_Number 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 = { Digits = {
s : Str ; -- No need for CardOrd, i.e. no 1st, 2nd etc in Maltese s : NumCase => Str ; -- No need for CardOrd, i.e. no 1st, 2nd etc in Maltese
n : Num_Number ; n : NumForm ;
tail : DTail tail : DTail
}; };

View File

@@ -1,10 +1,11 @@
-- ConjunctionMlt.gf: co-ordination -- ConjunctionMlt.gf: co-ordination
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
concrete ConjunctionMlt of Conjunction = CatMlt ** open ResMlt, Coordination, Prelude in { concrete ConjunctionMlt of Conjunction =
CatMlt ** open ResMlt, Coordination, Prelude in {
-- Adv -- Adv
-- AP -- AP

View File

@@ -1,7 +1,7 @@
-- ExtraMlt.gf: extra stuff -- ExtraMlt.gf: extra stuff
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
concrete ExtraMlt of ExtraMltAbs = CatMlt ** concrete ExtraMlt of ExtraMltAbs = CatMlt **
@@ -9,9 +9,4 @@ concrete ExtraMlt of ExtraMltAbs = CatMlt **
flags coding=utf8 ; flags coding=utf8 ;
-- lin
-- thigh_N = mkNounDual "koxxa" ;
-- sailor_N = mkNoun "baħri" ;
} }

View File

@@ -1,13 +1,9 @@
-- ExtraMltAbs.gf: abstract grammar for extra stuff -- ExtraMltAbs.gf: abstract grammar for extra stuff
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
abstract ExtraMltAbs = Cat ** { abstract ExtraMltAbs = Cat ** {
-- fun
-- thigh_N : N ;
-- sailor_N : N ;
} }

View File

@@ -1,7 +1,7 @@
-- GrammarMlt.gf: common syntax -- GrammarMlt.gf: common syntax
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
--# -path=.:../abstract:../common:../prelude --# -path=.:../abstract:../common:../prelude

View File

@@ -1,7 +1,7 @@
-- IdiomMlt.gf: idiomatic expressions -- IdiomMlt.gf: idiomatic expressions
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in { concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in {

View File

@@ -1,7 +1,7 @@
-- IrregMlt.gf: irregularly inflected words (mostly verbs) -- IrregMlt.gf: irregularly inflected words (mostly verbs)
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
--# -path=.:prelude:../abstract:../common --# -path=.:prelude:../abstract:../common

View File

@@ -1,19 +1,11 @@
-- IrregMltAbs.gf: abstract grammar for irregularly inflected words (mostly verbs) -- IrregMltAbs.gf: abstract grammar for irregularly inflected words (mostly verbs)
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
--# -path=.:prelude:../abstract:../common --# -path=.:prelude:../abstract:../common
abstract IrregMltAbs = Cat ** { abstract IrregMltAbs = Cat ** {
{-
fun
awake_V : V ;
bear_V : V ;
beat_V : V ;
-}
} }

View File

@@ -1,7 +1,7 @@
-- LangMlt.gf: common syntax and lexicon -- LangMlt.gf: common syntax and lexicon
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
--# -path=.:../abstract:../common:../prelude --# -path=.:../abstract:../common:../prelude
@@ -11,6 +11,10 @@ concrete LangMlt of Lang =
LexiconMlt LexiconMlt
** { ** {
flags startcat = Phr ; unlexer = text ; lexer = text ; coding = utf8 ; flags
coding = utf8 ;
startcat = Phr ;
unlexer = text ;
lexer = text ;
} }

View File

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

View File

@@ -1,7 +1,7 @@
-- MorphoMlt.gf: scary morphology operations which need their own elbow space -- MorphoMlt.gf: scary morphology operations which need their own elbow space
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri 2009 -- 2013 -- John J. Camilleri 2011 -- 2013
-- Angelo Zammit 2012 -- Angelo Zammit 2012
-- Licensed under LGPL -- Licensed under LGPL
@@ -12,6 +12,17 @@ resource MorphoMlt = ResMlt ** open Prelude in {
coding=utf8 ; coding=utf8 ;
{- Determiners ---------------------------------------------------------- -}
oper
mkDeterminer : Number -> Str -> Determiner = \n,s -> {
s = \\gen => s ;
n = Num n ; -- Number -> NumForm
clitic = [] ;
hasNum = False ;
isPron = False ;
} ;
{- Pronoun -------------------------------------------------------------- -} {- Pronoun -------------------------------------------------------------- -}
oper oper
@@ -19,14 +30,14 @@ resource MorphoMlt = ResMlt ** open Prelude in {
mkPron = overload { mkPron = overload {
-- jiena, inti, huwa -- jiena, inti, huwa
mkPron : (_,_,_,_,_,_ : Str) -> Number -> Person -> Gender -> Pronoun = mkPron : (_,_,_,_ : Str) -> Number -> Person -> Gender -> Pronoun =
\jien, _i, _ja, _ek, _k, _li, num, pers, gen -> { \jien, _i, _ni, _li, num, pers, gen -> {
s = table { s = table {
Personal => {c1 = jien ; c2 = []} ; Personal => jien ; -- jien
Possessive => {c1 = "tiegħ" + _i ; c2 = []} ; Possessive => "tiegħ" + _i ; -- tiegħi
Suffixed Acc => {c1 = _ek ; c2 = _k} ; -- rajtek, rak Suffixed Acc => _ni ; -- rajtni
Suffixed Dat => {c1 = _li ; c2 = []} ; -- rajtli Suffixed Dat => _li ; -- rajtli
Suffixed Gen => {c1 = _i ; c2 = _ja} -- qalbi, idejja Suffixed Gen => _i -- qalbi, idejja
} ; } ;
a = mkAgr gen num pers ; a = mkAgr gen num pers ;
} ; } ;
@@ -35,11 +46,11 @@ resource MorphoMlt = ResMlt ** open Prelude in {
mkPron : (_,_ : Str) -> Number -> Person -> Gender -> Pronoun = mkPron : (_,_ : Str) -> Number -> Person -> Gender -> Pronoun =
\hi, _ha, num, pers, gen -> { \hi, _ha, num, pers, gen -> {
s = table { s = table {
Personal => {c1 = hi ; c2 = []} ; Personal => hi ; -- hi
Possessive => {c1 = "tagħ" + _ha ; c2 = []} ; Possessive => "tagħ" + _ha ; -- tagħha
Suffixed Acc => {c1 = _ha ; c2 = []} ; Suffixed Acc => _ha ; -- rajtha
Suffixed Dat => {c1 = "l"+_ha ; c2 = []} ; Suffixed Dat => "l"+_ha ; -- rajtilha
Suffixed Gen => {c1 = _ha ; c2 = []} Suffixed Gen => _ha -- qalbha
} ; } ;
a = mkAgr gen num pers ; a = mkAgr gen num pers ;
} ; } ;

View File

@@ -1,7 +1,8 @@
-- NounMlt.gf: noun phrases and nouns -- NounMlt.gf: noun phrases and nouns
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Angelo Zammit 2012
-- Licensed under LGPL -- Licensed under LGPL
concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in { concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
@@ -9,30 +10,89 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
flags flags
optimize=noexpand ; 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 lin
-- Det -> CN -> NP -- Det -> CN -> NP
DetCN det cn = { DetCN det cn = {
s = \\c => det.s ++ cn.s ! numnum2nounnum det.n ; s = \\c => case <det.isPron, cn.takesPron> of {
a = case (numnum2nounnum det.n) 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
} ;
a = case (numform2nounnum det.n) of {
Singular _ => mkAgr cn.g Sg P3 ; Singular _ => mkAgr cn.g Sg P3 ;
_ => mkAgr cn.g Pl P3 _ => mkAgr cn.g Pl P3
} ; } ;
isPron = False ; isPron = False ;
} ; } ;
-- Quant -> Num -> Det -- Quant -> Num -> Det
DetQuant quant num = { DetQuant quant num = {
s = quant.s ! num.hasCard ! num.n ++ num.s ! NumNominative; s = \\gen =>
n = num.n ; let gennum = case num.n of { Num Sg => GSg gen ; _ => GPl }
hasNum = num.hasCard 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 -- Quant
DefArt = { DefArt = {
s = \\hasCard,n => artDef ; s = \\_ => artDef ;
clitic = [] ;
isPron = False ;
isDemo = False ;
} ; } ;
IndefArt = { IndefArt = {
s = \\hasCard,n => artIndef ; s = \\_ => artIndef ;
clitic = [] ;
isPron = False ;
isDemo = False ;
} ; } ;
-- PN -> NP -- PN -> NP
@@ -44,18 +104,40 @@ concrete NounMlt of Noun = CatMlt ** open ResMlt, Prelude in {
-- Pron -> NP -- Pron -> NP
UsePron p = { UsePron p = {
-- s = \\npcase => (p.s ! Personal).c1 ;
s = table { s = table {
Nom => (p.s ! Personal).c1 ; Nom => p.s ! Personal ;
CPrep => (p.s ! Suffixed Acc).c1 CPrep => p.s ! Suffixed Acc
} ; } ;
a = p.a ; a = p.a ;
isPron = True ; isPron = True ;
} ; } ;
-- Pron -> Quant
PossPron p = {
s = \\_ => p.s ! Possessive ;
clitic = p.s ! Suffixed Gen ;
isPron = True ;
isDemo = False ;
} ;
-- Num -- Num
NumSg = {s = \\c => []; n = Num_Sg ; hasCard = False} ; NumSg = {s = \\c => []; n = Num Sg ; hasCard = False} ;
NumPl = {s = \\c => []; n = Num_Pl ; 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 -- N -> CN
UseN n = n ; UseN n = n ;

View File

@@ -1,7 +1,7 @@
-- NumeralMlt.gf: cardinals and ordinals -- NumeralMlt.gf: cardinals and ordinals
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt in { 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 -- 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 -- Numerals from 1 to 999999 in decimal notation
cat cat
Numeral ; -- 0.. Numeral ; -- 0..
@@ -46,18 +41,18 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
pot3 : Sub1000 -> Sub1000000 ; -- m * 1000 pot3 : Sub1000 -> Sub1000000 ; -- m * 1000
pot3plus : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n pot3plus : Sub1000 -> Sub1000 -> Sub1000000 ; -- m * 1000 + n
-} -}
oper oper
--- I have a strong suspicion that these can be better factored, esp wrt thou
Form1 = { Form1 = {
s : DForm => CardOrd => Num_Case => Str ; s : DForm => CardOrd => NumCase => Str ;
--thou : CardOrd => Str ;
thou : { s : Str ; treatAs : DForm } ; thou : { s : Str ; treatAs : DForm } ;
n : Num_Number ; n : NumForm ;
} ; } ;
Form2 = { Form2 = {
s : CardOrd => Num_Case => Str ; s : CardOrd => NumCase => Str ;
--thou : CardOrd => Str ;
thou : { s : Str ; treatAs : DForm } ; thou : { s : Str ; treatAs : DForm } ;
n : Num_Number ; n : NumForm ;
f : DForm ; f : DForm ;
} ; } ;
@@ -72,75 +67,74 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
oper oper
-- Make a "number" (in this case a Form1) -- Make a "number" (in this case a Form1)
-- Should be moved to ResMlt ?
-- Params: -- Params:
-- unit, eg TNEJN -- unit, eg TNEJN
-- ordinal unit (without article), eg TIENI -- ordinal unit (without article), eg TIENI
-- adjectival, eg ŻEWĠ -- adjectival, eg ŻEWĠ
-- teen, eg TNAX -- teen, eg TNAX
-- ten, eg GĦOXRIN -- ten, eg GĦOXRIN
-- number, eg Num_Dl -- number, eg Num2
--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 -> NumForm -> Form1 = \unit,ordunit,adjectival,teen,ten,num ->
mkNum : Str -> Str -> Str -> Str -> Str -> Num_Number -> Form1 = \unit,ordunit,adjectival,teen,ten,num ->
let let
hundred = case num of { hundred = case num of {
Num_Sg => "mija" ; Num1 => "mija" ;
Num_Dl => "mitejn" ; Num2 => "mitejn" ;
_ => adjectival _ => adjectival
} ; } ;
thousand = case num of { thousand = case num of {
Num_Sg => "wieħed" ; Num1 => "wieħed" ;
Num_Dl => "elfejn" ; Num2 => "elfejn" ;
_ => case adjectival of { _ => case adjectival of {
_ + "'" => (init adjectival) + "t" ; -- eg SEBA' -> SEBAT _ + "'" => (init adjectival) + "t" ; -- SEBA' -> SEBAT
_ + "t" => adjectival ; -- eg SITT -> SITT _ + "t" => adjectival ; -- SITT -> SITT
_ => adjectival + "t" -- eg ĦAMES -> ĦAMEST _ => adjectival + "t" -- ĦAMES -> ĦAMEST
} }
} }
in { in {
s = table { s = table {
Unit => table { Unit => table {
NCard => table { NCard => table {
NumNominative => unit ; -- eg TNEJN NumNom => unit ; -- TNEJN
NumAdjectival => adjectival -- eg ŻEWĠ NumAdj => case num of {
Num1 => "" ; -- [] baqra
_ => adjectival -- ŻEWĠ baqar
}
} ; } ;
NOrd => \\numcase => artDef ++ ordunit -- eg IT-TIENI NOrd => \\numcase => ordunit -- TIENI
} ; } ;
Teen => table { Teen => table {
NCard => table { NCard => table {
NumNominative => teen ; -- eg TNAX NumNom => teen ; -- TNAX
NumAdjectival => teen + "-il" -- eg TNAX-IL NumAdj => glue teen "-il" -- TNAX-IL
} ; } ;
NOrd => table { NOrd => table {
NumNominative => artDef ++ teen ; -- eg IT-TNAX NumNom => teen ; -- TNAX
NumAdjectival => artDef ++ (teen + "-il") -- eg IT-TNAX-IL NumAdj => glue teen "-il" -- TNAX-IL
} }
} ; } ;
Ten => table { Ten => \\cardord,numcase => ten ; -- TLETIN
NCard => \\numcase => ten ; -- eg TLETIN -- Hund, Thou
NOrd => \\numcase => artDef ++ ten -- eg IT-TLETIN _ => table {
} ;
Hund => table {
NCard => case num of { NCard => case num of {
Num_Sg => table { Num1 => table {
NumNominative => "mija" ; -- ie MIJA NumNom => "mija" ; -- MIJA
NumAdjectival => "mitt" -- ie MITT suldat NumAdj => "mitt" -- MITT suldat
} ; } ;
Num_Dl => \\numcase => hundred ; -- ie MITEJN Num2 => \\numcase => hundred ; -- MITEJN
_ => table { _ => table {
NumNominative => hundred ++ "mija" ; -- eg MIJA, SEBA' MIJA NumNom => hundred ++ "mija" ; -- MIJA, SEBA' MIJA
NumAdjectival => hundred ++ "mitt" -- eg MITT, SEBA' MITT suldat NumAdj => hundred ++ "mitt" -- MITT, SEBA' MITT suldat
} }
} ; } ;
NOrd => case num of { NOrd => case num of {
Num_Sg => table { Num1 => table {
NumNominative => artDef ++ "mija" ; -- ie IL-MIJA NumNom => "mija" ; -- MIJA
NumAdjectival => artDef ++ "mitt" -- ie IL-MITT suldat NumAdj => "mitt" -- MITT suldat
} ; } ;
Num_Dl => \\numcase => artDef ++ hundred ; -- ie IL-MITEJN, IL-MITEJN suldat Num2 => \\numcase => hundred ; -- MITEJN, MITEJN suldat
_ => table { _ => table {
NumNominative => artDef ++ hundred ++ "mija" ; -- eg IS-SEBA' MIJA NumNom => hundred ++ "mija" ; -- SEBA' MIJA
NumAdjectival => artDef ++ hundred ++ "mitt" -- eg IS-SEBA' MITT suldat NumAdj => hundred ++ "mitt" -- SEBA' MITT suldat
} }
} }
} }
@@ -152,62 +146,59 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
lin lin
-- Unit Ord.Unit Adjectival Teen Ten Number -- Unit Ord.Unit Adjectival Teen Ten Number
n2 = mkNum "tnejn" "tieni" "żewġ" "tnax" "għoxrin" Num_Dl ; n2 = mkNum "tnejn" "tieni" "żewġ" "tnax" "għoxrin" Num2 ;
n3 = mkNum "tlieta" "tielet" "tlett" "tlettax" "tletin" Num_Pl ; -- TODO tlett / tliet ? n3 = mkNum "tlieta" "tielet" "tlett" "tlettax" "tletin" Num3_10 ; --- TODO tlett / tliet ?
n4 = mkNum "erbgħa" "raba'" "erba'" "erbatax" "erbgħin" Num_Pl ; n4 = mkNum "erbgħa" "raba'" "erba'" "erbatax" "erbgħin" Num3_10 ;
n5 = mkNum "ħamsa" "ħames" "ħames" "ħmistax" "ħamsin" Num_Pl ; n5 = mkNum "ħamsa" "ħames" "ħames" "ħmistax" "ħamsin" Num3_10 ;
n6 = mkNum "sitta" "sitt" "sitt" "sittax" "sittin" Num_Pl ; n6 = mkNum "sitta" "sitt" "sitt" "sittax" "sittin" Num3_10 ;
n7 = mkNum "sebgħa" "seba'" "seba'" "sbatax" "sebgħin" Num_Pl ; n7 = mkNum "sebgħa" "seba'" "seba'" "sbatax" "sebgħin" Num3_10 ;
n8 = mkNum "tmienja" "tmin" "tmin" "tmintax" "tmenin" Num_Pl ; n8 = mkNum "tmienja" "tmin" "tmin" "tmintax" "tmenin" Num3_10 ;
n9 = mkNum "disgħa" "disa'" "disa'" "dsatax" "disgħin" Num_Pl ; n9 = mkNum "disgħa" "disa'" "disa'" "dsatax" "disgħin" Num3_10 ;
oper oper
-- Helper functions for below -- Helper functions for below
mkForm2 : Form2 = overload { mkForm2 : Form2 = overload {
-- Infer adjectival, thousands -- Infer adjectival, thousands
mkForm2 : Str -> Str -> DForm -> Form2 = \card,ord,form -> { mkForm2 : Str -> Str -> DForm -> NumForm -> Form2 = \card,ord,dform,numform -> {
s = table { s = table {
NCard => \\numcase => card ; NCard => \\numcase => card ;
NOrd => \\numcase => ord NOrd => \\numcase => ord
} ; } ;
--thou = card ; thou = { s = card ; treatAs = dform } ;
thou = { s = card ; treatAs = form } ; n = numform ;
n = Num_Pl ; f = dform ;
f = form ;
} ; } ;
-- Explicit everything -- 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 { s = table {
NCard => table { NCard => table {
NumNominative => card ; NumNom => card ;
NumAdjectival => adj NumAdj => adj
} ; } ;
--NOrd => \\numcase => addDefiniteArticle ord
NOrd => table { NOrd => table {
NumNominative => artDef ++ ord ; NumNom => ord ;
NumAdjectival => artDef ++ adj NumAdj => adj
} }
} ; } ;
--thou = thousand ; thou = { s = thousand ; treatAs = dform } ;
thou = { s = thousand ; treatAs = form } ; n = numform ;
n = Num_Pl ; f = dform ;
f = form ;
} ; } ;
-- Given an existing table -- 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 ; s = tab ;
thou = { thou = {
s = case form of { s = case dform of {
Teen => tab ! NCard ! NumAdjectival ; Teen => tab ! NCard ! NumAdj ;
_ => tab ! NCard ! NumNominative _ => tab ! NCard ! NumNom
} ; } ;
treatAs = form ; treatAs = dform ;
} ; } ;
n = Num_Pl ; n = numform ;
f = form ; f = dform ;
} ; } ;
}; -- end of mkForm2 overload }; -- end of mkForm2 overload
@@ -219,39 +210,18 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
-- Sub10 ; 1 -- Sub10 ; 1
-- Unit Ord.Unit Adjectival Teen Ten Number -- 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 -- 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 -- Sub100 ; 10, 11
-- Cardinal Ordinal Adjectival Thousand Form -- Cardinal Ordinal Adjectival Thousand Form
pot110 = mkForm2 "għaxra" "għaxar" "għaxar" "għaxart" Unit ; pot110 = mkForm2 "għaxra" "għaxar" "għaxar" "għaxart" Unit Num3_10 ;
pot111 = mkForm2 "ħdax" "ħdax" "ħdax-il" "ħdax-il" Teen ; pot111 = mkForm2 "ħdax" "ħdax" (glue "ħdax" "-il") (glue "ħdax" "-il") Teen Num11_19 ;
{-
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 ;
} ;
-}
-- Digit -> Sub100 ; 10 + d -- Digit -> Sub100 ; 10 + d
pot1to19 d = pot1to19 d = mkForm2 (d.s ! Teen) Teen Num11_19 ;
mkForm2
(d.s ! Teen)
Teen
;
-- Sub10 -> Sub100 ; coercion of 1..9 -- Sub10 -> Sub100 ; coercion of 1..9
pot0as1 d = { pot0as1 d = {
@@ -263,18 +233,27 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
-- Digit -> Sub100 ; d * 10 -- Digit -> Sub100 ; d * 10
pot1 d = pot1 d =
mkForm2 let
(d.s ! Ten) numform : NumForm = case d.n of {
Ten Num1 => Num3_10 ;
; _ => Num20_99
}
in mkForm2 (d.s ! Ten) Ten numform ;
-- Digit -> Sub10 -> Sub100 ; d * 10 + n -- Digit -> Sub10 -> Sub100 ; d * 10 + n
pot1plus d 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 mkForm2
(unit ++ "u" ++ (d.s ! Ten ! NCard ! NumNominative)) (unit ++ "u" ++ (d.s ! Ten ! NCard ! NumNom))
(artDef ++ unit ++ "u" ++ (d.s ! Ten ! NCard ! NumNominative)) (unit ++ "u" ++ (d.s ! Ten ! NCard ! NumNom))
Ten Ten
numform
; ;
-- Sub100 -> Sub1000 ; coercion of 1..99 -- Sub100 -> Sub1000 ; coercion of 1..99
@@ -285,39 +264,33 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
s = m.s ! Hund ; s = m.s ! Hund ;
thou = { thou = {
s = case m.n of { s = case m.n of {
Num_Sg => "mitt" ; -- Special case for "mitt elf" Num1 => "mitt" ; -- Special case for "mitt elf"
Num_Dl => "mitejn" ; -- Special case for "mitejn elf" Num2 => "mitejn" ; -- Special case for "mitejn elf"
_ => m.thou.s _ => m.thou.s
} ; } ;
treatAs = Hund ; treatAs = Hund ;
} ; } ;
n = Num_Pl ; n = Num0 ;
f = Hund ; f = Hund ;
} ; } ;
-- Sub10 -> Sub100 -> Sub1000 ; m * 100 + n -- Sub10 -> Sub100 -> Sub1000 ; m * 100 + n
pot2plus m n = pot2plus m n =
let let
hund : Str = m.s ! Hund ! NCard ! NumNominative hund : Str = m.s ! Hund ! NCard ! NumNom ;
in { in {
s = table { s = \\cardord,numcase => case n.n of {
NCard => table { Num1 => hund ++ "u" ;
NumNominative => hund ++ "u" ++ n.s ! NCard ! NumNominative ; _ => hund ++ "u" ++ n.s ! NCard ! numcase
NumAdjectival => hund ++ "u" ++ n.s ! NCard ! NumAdjectival
} ; } ;
NOrd => table {
NumNominative => artDef ++ hund ++ "u" ++ n.s ! NCard ! NumNominative ;
NumAdjectival => artDef ++ hund ++ "u" ++ n.s ! NCard ! NumAdjectival
}
} ;
thou = { thou = {
s = hund ++ "u" ++ n.thou.s ; s = hund ++ "u" ++ n.thou.s ;
treatAs = case n.n of { treatAs = case n.n of {
Num_Sg => Ten ; -- specific case for mija u wiehed elf Num1 => Ten ; -- specific case for mija u wiehed elf
_ => n.f -- eg So that "106,000" is treated as "6,000" _ => 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 ; f = Hund ;
} ; } ;
@@ -328,27 +301,17 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
pot3 m = { pot3 m = {
s = s =
case <m.n, m.thou.treatAs> of { case <m.n, m.thou.treatAs> of {
<Num_Sg ,_> => numTable "elf" ; -- 1 * 1000 <Num1,_> => numTable "elf" ; -- 1 * 1000
<Num_Dl,_> => numTable "elfejn" ; -- 2 * 2000 <Num2,_> => numTable "elfejn" ; -- 2 * 1000
<Num_Pl ,Unit> => numTable m.thou.s "elef" ; -- 3-10 * 1000 <_,Unit> => numTable m.thou.s "elef" ; -- 3-10 * 1000
<Num_Pl ,_> => numTable m.thou.s "elf" -- 11+ * 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 = { thou = {
s = m.thou.s ; s = m.thou.s ;
treatAs = m.f ; treatAs = m.f ;
} ; } ;
n = Num_Pl ; n = Num0 ;
f = Hund ; -- NOT IMPORTANT f = Thou ; -- NOT IMPORTANT
} ; } ;
-- Sub1000 -> Sub1000 -> Sub1000000 ; m * 1000 + n -- Sub1000 -> Sub1000 -> Sub1000000 ; m * 1000 + n
@@ -356,70 +319,37 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
s = s =
let let
ukemm = table { ukemm = table {
NumNominative => "u" ++ (n.s ! NCard ! NumNominative) ; NumNom => "u" ++ (n.s ! NCard ! NumNom) ;
NumAdjectival => "u" ++ (n.s ! NCard ! NumAdjectival) NumAdj => "u" ++ (n.s ! NCard ! NumAdj)
} }
in in
case <m.n, m.thou.treatAs> of { case <m.n, m.thou.treatAs> of {
<Num_Sg ,_> => numTable "elf" ukemm ; <Num1,_> => numTable "elf" ukemm ;
<Num_Dl,_> => numTable "elfejn" ukemm ; <Num2,_> => numTable "elfejn" ukemm ;
<Num_Pl ,Unit> => numTable (m.thou.s ++ "elef") ukemm ; <_,Unit> => numTable (m.thou.s ++ "elef") ukemm ;
<Num_Pl ,_> => numTable (m.thou.s ++ "elf") 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 = { thou = {
s = m.thou.s ; s = m.thou.s ;
treatAs = m.f ; treatAs = m.f ;
} ; } ;
n = Num_Pl ; n = case n.n of { Num2 => Num3_10 ; _ => n.n } ;
f = Hund ; -- NOT IMPORTANT f = Hund ; -- NOT IMPORTANT
} ; } ;
oper oper
-- Build "x thousand" table -- Build "x thousand" table
numTable : (CardOrd => Num_Case => Str) = overload { numTable : (CardOrd => NumCase => Str) = overload {
numTable : Str -> (CardOrd => Num_Case => Str) = \thou -> table { numTable : Str -> (CardOrd => NumCase => Str) = \thou ->
NCard => \\numcase => thou ; \\cardord,numcase => thou ;
NOrd => \\numcase => artDef ++ thou
} ;
numTable : Str -> Str -> (CardOrd => Num_Case => Str) = \thou,attach -> table { numTable : Str -> Str -> (CardOrd => NumCase => Str) = \thou,attach ->
NCard => \\numcase => thou ++ attach ; \\cardord,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 -> (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 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 lincat
Dig = { Dig = {
s : Str ; s : NumCase => Str ;
n : Num_Number n : NumForm ;
-- i : Int ; -- internal counter
} ; } ;
oper oper
-- Helper for making a Dig object. Specifying no number inplies plural. -- Helper for making a Dig object.
mkDig : Dig = overload { mkDig : Str -> NumForm -> Dig = \digit,num -> lin Dig {
mkDig : Str -> Dig = \digit -> lin Dig { s = \\numcase => digit ;
s = digit ; n = num
n = Num_Pl
} ; } ;
mkDig : Str -> Num_Number -> Dig = \digit,num -> lin Dig {
s = digit ;
n = num
} ;
} ;
-- For correct comma placement in Digits -- For correct comma placement in Digits
commaIf : DTail -> Str = \t -> case t of { commaIf : DTail -> Str = \t -> case t of {
@@ -467,25 +392,46 @@ concrete NumeralMlt of Numeral = CatMlt [Numeral,Digits] ** open Prelude,ResMlt
} ; } ;
lin lin
D_0 = mkDig "0" ; -- Dig
D_1 = mkDig "1" Num_Sg ; D_0 = mkDig "0" Num0 ;
D_2 = mkDig "2" Num_Dl ; D_1 = mkDig "1" Num1 ;
D_3 = mkDig "3" ; D_2 = mkDig "2" Num2 ;
D_4 = mkDig "4" ; D_3 = mkDig "3" Num3_10 ;
D_5 = mkDig "5" ; D_4 = mkDig "4" Num3_10 ;
D_6 = mkDig "6" ; D_5 = mkDig "5" Num3_10 ;
D_7 = mkDig "7" ; D_6 = mkDig "6" Num3_10 ;
D_8 = mkDig "8" ; D_7 = mkDig "7" Num3_10 ;
D_9 = mkDig "9" ; D_8 = mkDig "8" Num3_10 ;
D_9 = mkDig "9" Num3_10 ;
-- Create Digits from a Dig -- Create Digits from a Dig
-- Dig -> Digits
IDig d = d ** {tail = T1} ; IDig d = d ** {tail = T1} ;
-- Create Digits from combining Dig with Digits -- Create Digits from combining Dig with Digits
IIDig d i = { -- Dig -> Digits -> Digits
s = d.s ++ (commaIf i.tail) ++ i.s ; IIDig d i =
n = Num_Pl ; let
tail = inc i.tail digits = d.s ! NumNom ++ (commaIf i.tail) ++ i.s ! NumNom;
} ; numform = case <d.n,i.n> of {
<Num0,num> => num ; -- 0 x
<Num1,Num0> => Num3_10 ; -- 1 0
<Num1,_> => Num11_19 ; -- 1 1
<Num2,_> => Num20_99 ; -- 2 x
<Num3_10,_> => Num20_99 ; -- [3-9] x
<Num20_99,_> => 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
} ;
} }

View File

@@ -1,7 +1,8 @@
-- ParadigmsMlt.gf: morphological paradigms -- ParadigmsMlt.gf: morphological paradigms
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Angelo Zammit 2012
-- Licensed under LGPL -- Licensed under LGPL
--# -path=.:../abstract:../../prelude:../common --# -path=.:../abstract:../../prelude:../common
@@ -110,7 +111,6 @@ resource ParadigmsMlt = open
mkN : Str -> Str -> Gender -> N = \sing,plural,gender -> mkN : Str -> Str -> Gender -> N = \sing,plural,gender ->
mk5N sing [] [] plural [] gender ; mk5N sing [] [] plural [] gender ;
-- Takes all 5 forms, inferring gender -- Takes all 5 forms, inferring gender
-- Params: -- Params:
-- Singulative, eg KOXXA -- Singulative, eg KOXXA
@@ -184,14 +184,38 @@ resource ParadigmsMlt = open
-- Build a noun using 5 forms, and a gender -- Build a noun using 5 forms, and a gender
mk5N : (_,_,_,_,_ : Str) -> Gender -> N ; 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 -> { mkPN : Str -> Gender -> Number -> ProperNoun = \name,g,n -> {
s = name ; s = name ;
a = mkAgr g n P3 ; 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 -- Correctly abbreviate definite prepositions and join with noun
-- Params: -- Params:
@@ -254,21 +278,12 @@ resource ParadigmsMlt = open
}); });
mkN2 = overload { {- Prepositions ------------------------------------------------------- -}
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}) ;
mkPrep : Str -> Prep ; -- e.g. "in front of" mkPrep : Str -> Prep ; -- e.g. "in front of"
noPrep : Prep ; -- no preposition
mkPrep p = lin Prep (ss p) ; mkPrep p = lin Prep (ss p) ;
noPrep : Prep ; -- no preposition
noPrep = mkPrep [] ; noPrep = mkPrep [] ;
@@ -1043,4 +1058,18 @@ resource ParadigmsMlt = open
_ => (init fem) + "i" -- BRAVA _ => (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 ;
} ;
} }

View File

@@ -1,8 +0,0 @@
-- Maltese Resource Grammar Library
-- John J. Camilleri, 2012
-- Licensed under LGPL
resource PatternsMlt = {
flags coding=utf8 ;
}

View File

@@ -1,7 +1,7 @@
-- PhraseMlt.gf: suprasentential phrases -- PhraseMlt.gf: suprasentential phrases
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
concrete PhraseMlt of Phrase = CatMlt ** open ParamX, Prelude, ResMlt in { concrete PhraseMlt of Phrase = CatMlt ** open ParamX, Prelude, ResMlt in {

View File

@@ -1,7 +1,7 @@
-- QuestionMlt.gf: questions and interrogatives -- QuestionMlt.gf: questions and interrogatives
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
concrete QuestionMlt of Question = CatMlt ** open ResMlt, ParamX, Prelude in { concrete QuestionMlt of Question = CatMlt ** open ResMlt, ParamX, Prelude in {

View File

@@ -1,7 +1,7 @@
-- RelativeMlt.gf: relational clauses and pronouns -- RelativeMlt.gf: relational clauses and pronouns
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
concrete RelativeMlt of Relative = CatMlt ** open ResMlt in { concrete RelativeMlt of Relative = CatMlt ** open ResMlt in {

View File

@@ -1,7 +1,7 @@
-- ResMlt.gf: Language-specific parameter types, morphology, VP formation -- ResMlt.gf: Language-specific parameter types, morphology, VP formation
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri 2009 -- 2013 -- John J. Camilleri 2011 -- 2013
-- Angelo Zammit 2012 -- Angelo Zammit 2012
-- Licensed under LGPL -- Licensed under LGPL
@@ -68,26 +68,65 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
CardOrd = NCard | NOrd ; CardOrd = NCard | NOrd ;
-- Order of magnitude
DForm = DForm =
Unit -- 0..10 Unit -- 0..10
| Teen -- 11-19 | Teen -- 11..19
--| TeenIl -- 11-19 | Ten -- 20..99
| Ten -- 20-99 | Hund -- 100..999
| Hund -- 100..999 | Thou -- 1000+
--| Thou -- 1000+
; ;
Num_Number = -- Indicate how a corresponding object should be treated
Num_Sg --- Overlap between Num Sg and Num1, but leaving as is for now
| Num_Dl NumForm =
| Num_Pl 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 = NumCase =
NumNominative -- TNEJN, ĦAMSA, TNAX, MIJA NumNom -- "Type B" in {MDG, 133}, e.g. TNEJN, ĦAMSA, TNAX, MIJA
| NumAdjectival -- ŻEWĠ, ĦAMES, TNAX-IL, MITT | 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 ---------------------------------------------------------------- -} {- Nouns ---------------------------------------------------------------- -}
@@ -95,6 +134,9 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
Noun : Type = { Noun : Type = {
s : Noun_Number => Str ; s : Noun_Number => Str ;
g : Gender ; 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 -- anim : Animacy ; -- is the noun animate? e.g. TABIB
} ; } ;
@@ -127,9 +169,9 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
{- Pronoun -------------------------------------------------------------- -} {- Pronoun -------------------------------------------------------------- -}
oper oper
-- [AZ]
Pronoun = { 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 ; a : Agr ;
} ; } ;
@@ -447,13 +489,18 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
{- ~~~ Conversions ~~~ -} {- ~~~ Conversions ~~~ -}
numnum2nounnum : Num_Number -> Noun_Number = \n -> numform2nounnum : NumForm -> Noun_Number = \n ->
case n of { case n of {
Num_Sg => Singular Singulative ; Num Sg => Singular Singulative ;
_ => Plural Determinate 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 ~~~ -} {- ~~~ Useful helper functions ~~~ -}
-- Non-existant form -- Non-existant form
@@ -588,24 +635,11 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
_ => [] -- ? _ => [] -- ?
} ; } ;
artIndef : Str = 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" }
} ;
artDef : Str = artDef : Str =
pre { pre {
"il-" ; "il- &+" ; --- ugly hack! but won't let me use ++
"l-" ++ BIND / strs { "a" ; "e" ; "i" ; "o" ; "u" ; "h" ; "għ" } ; "l-" ++ BIND / strs { "a" ; "e" ; "i" ; "o" ; "u" ; "h" ; "għ" } ;
"iċ-" ++ BIND / strs { "ċ" } ; "iċ-" ++ BIND / strs { "ċ" } ;
"id-" ++ BIND / strs { "d" } ; "id-" ++ BIND / strs { "d" } ;
@@ -637,6 +671,9 @@ resource ResMlt = ParamX ** open Prelude, Predef in {
Plural Indeterminate => ind Plural Indeterminate => ind
} ; } ;
g = gen ; g = gen ;
takesPron = False ;
hasDual = notB (isNil dual) ;
hasColl = notB (isNil coll) ;
-- anim = Inanimate ; -- anim = Inanimate ;
} ; } ;

View File

@@ -1,7 +1,8 @@
-- SentenceMlt.gf: clauses and sentences -- SentenceMlt.gf: clauses and sentences
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Angelo Zammit 2012
-- Licensed under LGPL -- Licensed under LGPL
--# -path=.:abstract:common:prelude --# -path=.:abstract:common:prelude

View File

@@ -1,7 +1,7 @@
-- StructuralMlt.gf: lexicon of structural words -- StructuralMlt.gf: lexicon of structural words
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri 2009 -- 2013 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
concrete StructuralMlt of Structural = CatMlt ** concrete StructuralMlt of Structural = CatMlt **
@@ -15,21 +15,42 @@ concrete StructuralMlt of Structural = CatMlt **
{- Pronoun -------------------------------------------------------------- -} {- Pronoun -------------------------------------------------------------- -}
he_Pron = mkPron "hu" "u" "h" "u" "h" "lu" singular P3 masculine ; --- also HUWA i_Pron = mkPron "jien" "i" "ni" "li" singular P1 masculine ; --- also JIENA
i_Pron = mkPron "jien" "i" "ja" "ni" [] "li" singular P1 masculine ; --- also JIENA youSg_Pron = mkPron "int" "ek" "ek" "lek" singular P2 masculine ; --- also INTI
-- it_Pron = mkPron "it" "it" "its" "its" singular P3 nonhuman ; he_Pron = mkPron "hu" "u" "u" "lu" singular P3 masculine ; --- also HUWA
she_Pron = mkPron "hi" "ha" singular P3 feminine ; --- also HIJA 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 ;
we_Pron = mkPron "aħna" "na" plural P1 masculine ; youPl_Pron = mkPron "intom" "kom" plural P2 masculine ;
youSg_Pron = mkPron "int" "ek" "ok" "ek" "k" "lek" singular P2 masculine ; -- also INTI they_Pron = mkPron "huma" "hom" plural P3 masculine ;
youPl_Pron = mkPron "intom" "kom" plural P2 masculine ;
youPol_Pron = youSg_Pron ; 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 --------------------------------------------------------------- -} {- Others --------------------------------------------------------------- -}
-- above_Prep = mkPrep "above" ; -- above_Prep = mkPrep "above" ;
-- after_Prep = mkPrep "after" ; -- after_Prep = mkPrep "after" ;
-- all_Predet = ss "all" ;
-- almost_AdA = mkAdA "almost" ; -- almost_AdA = mkAdA "almost" ;
-- almost_AdN = mkAdN "almost" ; -- almost_AdN = mkAdN "almost" ;
-- although_Subj = ss "although" ; -- although_Subj = ss "although" ;
@@ -58,10 +79,8 @@ concrete StructuralMlt of Structural = CatMlt **
-- during_Prep = mkPrep "during" ; -- during_Prep = mkPrep "during" ;
-- either7or_DConj = mkConj "either" "or" singular ; -- either7or_DConj = mkConj "either" "or" singular ;
-- everybody_NP = regNP "everybody" singular ; -- everybody_NP = regNP "everybody" singular ;
-- every_Det = mkDeterminerSpec singular "every" "everyone" False ;
-- everything_NP = regNP "everything" singular ; -- everything_NP = regNP "everything" singular ;
-- everywhere_Adv = mkAdv "everywhere" ; -- everywhere_Adv = mkAdv "everywhere" ;
-- few_Det = mkDeterminer plural "few" ;
-- for_Prep = mkPrep "for" ; -- for_Prep = mkPrep "for" ;
-- from_Prep = mkPrep "from" ; -- from_Prep = mkPrep "from" ;
-- here_Adv = mkAdv "here" ; -- here_Adv = mkAdv "here" ;
@@ -74,10 +93,8 @@ concrete StructuralMlt of Structural = CatMlt **
-- in8front_Prep = mkPrep ["in front of"] ; -- in8front_Prep = mkPrep ["in front of"] ;
-- in_Prep = mkPrep "in" ; -- in_Prep = mkPrep "in" ;
-- less_CAdv = C.mkCAdv "less" "than" ; -- less_CAdv = C.mkCAdv "less" "than" ;
-- many_Det = mkDeterminer plural "many" ;
-- more_CAdv = C.mkCAdv "more" "than" ; -- more_CAdv = C.mkCAdv "more" "than" ;
-- most_Predet = ss "most" ; -- most_Predet = ss "most" ;
-- much_Det = mkDeterminer singular "much" ;
-- must_VV = { -- must_VV = {
-- s = table { -- s = table {
-- VVF VInf => ["have to"] ; -- VVF VInf => ["have to"] ;
@@ -92,7 +109,6 @@ concrete StructuralMlt of Structural = CatMlt **
-- } ; -- } ;
-- no_Utt = ss "no" ; -- no_Utt = ss "no" ;
-- on_Prep = mkPrep "on" ; -- on_Prep = mkPrep "on" ;
-- only_Predet = ss "only" ;
-- or_Conj = mkConj "or" singular ; -- or_Conj = mkConj "or" singular ;
-- otherwise_PConj = ss "otherwise" ; -- otherwise_PConj = ss "otherwise" ;
-- part_Prep = mkPrep "of" ; -- part_Prep = mkPrep "of" ;
@@ -101,16 +117,12 @@ concrete StructuralMlt of Structural = CatMlt **
-- quite_Adv = mkAdv "quite" ; -- quite_Adv = mkAdv "quite" ;
-- so_AdA = mkAdA "so" ; -- so_AdA = mkAdA "so" ;
-- somebody_NP = regNP "somebody" singular ; -- somebody_NP = regNP "somebody" singular ;
-- someSg_Det = mkDeterminer singular "some" ;
-- somePl_Det = mkDeterminer plural "some" ;
-- something_NP = regNP "something" singular ; -- something_NP = regNP "something" singular ;
-- somewhere_Adv = mkAdv "somewhere" ; -- somewhere_Adv = mkAdv "somewhere" ;
-- that_Quant = mkQuant "that" "those" ;
-- there_Adv = mkAdv "there" ; -- there_Adv = mkAdv "there" ;
-- there7to_Adv = mkAdv "there" ; -- there7to_Adv = mkAdv "there" ;
-- there7from_Adv = mkAdv ["from there"] ; -- there7from_Adv = mkAdv ["from there"] ;
-- therefore_PConj = ss "therefore" ; -- therefore_PConj = ss "therefore" ;
-- this_Quant = mkQuant "this" "these" ;
-- through_Prep = mkPrep "through" ; -- through_Prep = mkPrep "through" ;
-- too_AdA = mkAdA "too" ; -- too_AdA = mkAdA "too" ;
-- to_Prep = mkPrep "to" ; -- to_Prep = mkPrep "to" ;
@@ -122,7 +134,6 @@ concrete StructuralMlt of Structural = CatMlt **
-- when_IAdv = ss "when" ; -- when_IAdv = ss "when" ;
-- when_Subj = ss "when" ; -- when_Subj = ss "when" ;
-- where_IAdv = ss "where" ; -- where_IAdv = ss "where" ;
-- which_IQuant = {s = \\_ => "which"} ;
-- whoPl_IP = mkIP "who" "whom" "whose" plural ; -- whoPl_IP = mkIP "who" "whom" "whose" plural ;
-- whoSg_IP = mkIP "who" "whom" "whose" singular ; -- whoSg_IP = mkIP "who" "whom" "whose" singular ;
-- why_IAdv = ss "why" ; -- why_IAdv = ss "why" ;
@@ -130,8 +141,6 @@ concrete StructuralMlt of Structural = CatMlt **
-- with_Prep = mkPrep "with" ; -- with_Prep = mkPrep "with" ;
-- yes_Utt = ss "yes" ; -- yes_Utt = ss "yes" ;
-- not_predet = {s = "not" ; lock_Predet = <>} ;
-- no_Quant = mkQuant "no" "no" "none" "none" ;
-- if_then_Conj = mkConj "if" "then" singular ; -- if_then_Conj = mkConj "if" "then" singular ;
-- nobody_NP = regNP "nobody" singular ; -- nobody_NP = regNP "nobody" singular ;
-- nothing_NP = regNP "nothing" singular ; -- nothing_NP = regNP "nothing" singular ;

View File

@@ -1,5 +1,7 @@
-- Maltese Resource Grammar Library -- SymbolMlt.gf
-- John J. Camilleri, 2012 --
-- Maltese GF Resource Grammar
-- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
--# -path=.:../abstract:../common --# -path=.:../abstract:../common

View File

@@ -1,7 +1,7 @@
-- TextMlt.gf: many-phrase texts -- TextMlt.gf: many-phrase texts
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Licensed under LGPL -- Licensed under LGPL
concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in { concrete IdiomMlt of Idiom = CatMlt ** open Prelude, ResMlt in {

View File

@@ -1,7 +1,8 @@
-- VerbMlt.gf: verb phrases -- VerbMlt.gf: verb phrases
-- --
-- Maltese Resource Grammar Library -- Maltese GF Resource Grammar
-- John J. Camilleri, 2012 -- John J. Camilleri 2011 -- 2013
-- Angelo Zammit 2012
-- Licensed under LGPL -- Licensed under LGPL
concrete VerbMlt of Verb = CatMlt ** open Prelude, ResMlt in { concrete VerbMlt of Verb = CatMlt ** open Prelude, ResMlt in {