diff options
| author | aarne <aarne@chalmers.se> | 2010-04-10 08:18:03 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2010-04-10 08:18:03 +0000 |
| commit | 50a2e2ea93e7280ae6063a1cbf0e8cb29fa78a09 (patch) | |
| tree | 201d3812073143a0aa30684f9fcb0fe2a30940b5 /examples/phrasebook/WordsCat.gf | |
| parent | d505fa5b6737b6b78fb65161cea3c2ac175494ab (diff) | |
regenerated clones with complete abstract and ready-maked Lexicon-based words in Phrasebook
Diffstat (limited to 'examples/phrasebook/WordsCat.gf')
| -rw-r--r-- | examples/phrasebook/WordsCat.gf | 258 |
1 files changed, 148 insertions, 110 deletions
diff --git a/examples/phrasebook/WordsCat.gf b/examples/phrasebook/WordsCat.gf index d6f2f6e21..4a9f271d2 100644 --- a/examples/phrasebook/WordsCat.gf +++ b/examples/phrasebook/WordsCat.gf @@ -1,4 +1,4 @@ --- (c) 2009 Aarne Ranta and Olga Caprotti under LGPL +-- (c) 2010 Aarne Ranta and Olga Caprotti under LGPL concrete WordsCat of Words = SentencesCat ** open SyntaxCat, @@ -6,131 +6,169 @@ concrete WordsCat of Words = SentencesCat ** open (E = ExtraCat), (L = LexiconCat), (P = ParadigmsCat), - ParadigmsCat in { + ParadigmsCat, + Prelude in { + +lin - lin - -- kinds Apple = mkCN L.apple_N ; Beer = mkCN L.beer_N ; Bread = mkCN L.bread_N ; --- Cheese = mkCN (mkN "formaggio") ; --- Coffee = mkCN (mkN "caffè") ; +-- Cheese = mkCN (mkN "formaggio") ; +-- Chicken = mkCN (mkN "pollo") ; +-- Coffee = mkCN (mkN "caffè") ; Fish = mkCN L.fish_N ; +-- Meat = mkCN (mkN "carne" feminine) ; Milk = mkCN L.milk_N ; --- Pizza = mkCN (mkN "pizza") ; +-- Pizza = mkCN (mkN "pizza") ; Salt = mkCN L.salt_N ; --- Tea = mkCN (mkN "tè") ; +-- Tea = mkCN (mkN "tè") ; Water = mkCN L.water_N ; Wine = mkCN L.wine_N ; -- properties Bad = L.bad_A ; --- Boring = mkA "noioso" ; +-- Boring = mkA "noioso" ; +-- Cheap = let c = "a buon mercato" in mkA c c c c c ; ---- Cold = L.cold_A ; --- Delicious = mkA "delizioso" ; --- Expensive = mkA "caro" ; --- Fresh = mkA "fresco" ; +-- Delicious = mkA "delizioso" ; +-- Expensive = mkA "caro" ; +-- Fresh = mkA "fresco" ; Good = L.good_A ; Warm = L.warm_A ; --- --- -- places --- --- Airport = mkPlace (mkN "aeroporto") dative ; --- Bar = mkPlace (mkN "bar") P.in_Prep ; --- Church = mkPlace (mkN "chiesa") P.in_Prep ; --- Hospital = mkPlace (mkN "ospedale") P.in_Prep ; --- Museum = mkPlace (mkN "museo") P.in_Prep ; --- Restaurant = mkPlace (mkN "ristorante") P.in_Prep ; --- Station = mkPlace (mkN "stazione" feminine) dative ; --- Toilet = mkPlace (mkN "bagno") P.in_Prep ; --- --- -- currencies --- --- DanishCrown = mkCN (mkA "danese") (mkN "corona") ; --- Dollar = mkCN (mkN "dollar") ; --- Euro = mkCN (mkN "euro" "euro" masculine) ; --- Lei = mkCN (mkN "lei") ; ---- ? --- --- -- nationalities --- --- Belgian = mkA "belgo" ; --- Belgium = mkNP (mkPN "Belgio") ; --- English = mkNat "inglese" "Inghilterra" ; --- Finnish = mkNat "finlandese" "Finlandia" ; --- Flemish = mkNP (mkPN "fiammingo") ; --- French = mkNat "francese" "Francia" ; --- Italian = mkNat "italiano" "Italia" ; --- Romanian = mkNat "rumeno" "Romania" ; --- Swedish = mkNat "svedese" "Svezia" ; --- --- -- actions --- --- AHasName p name = mkCl p.name (mkV2 (reflV (mkV "chiamare"))) name ; --- AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "fame" feminine))) ; --- AIll p = mkCl p.name (mkA "malato") ; --- AKnow p = mkCl p.name (mkV (sapere_78 "sapere")) ; --- ALike p item = mkCl item (mkV2 (mkV (piacere_64 "piacere")) dative) p.name ; --- ALive p co = --- mkCl p.name (mkVP (mkVP (mkV "abitare")) (SyntaxCat.mkAdv P.in_Prep co)) ; --- ALove p q = mkCl p.name (mkV2 (mkV "amare")) q.name ; --- AScared p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "paura" feminine))) ; --- ASpeak p lang = mkCl p.name (mkV2 (mkV "parlare")) lang ; --- AThirsty p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "sete" feminine))) ; --- ATired p = mkCl p.name (mkA "stanco") ; --- AUnderstand p = mkCl p.name (mkV "capire") ; --- AWant p obj = mkCl p.name (mkV2 (mkV (volere_96 "volere"))) obj ; - AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; --- --- --- -- miscellaneous --- --- QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (reflV (mkV "chiamare")))) ; --- --- PropOpen p = mkCl p.name open_A ; --- PropClosed p = mkCl p.name closed_A ; --- PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; --- PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; --- PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; --- PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; --- --- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "costare"))) ; --- ItCost item price = mkCl item (mkV2 (mkV "costare")) price ; --- --- -- week days --- --- Monday = mkDay "lunedì" ; --- Tuesday = mkDay "martedì" ; --- Wednesday = mkDay "mercoledì" ; --- Thursday = mkDay "giovedì" ; --- Friday = mkDay "venerdì" ; --- Saturday = mkDay "sabato" ; --- Sunday = mkDay "domenica" ; --- --- -- auxiliaries --- --- oper --- mkNat : Str -> Str -> {lang : NP ; prop : A ; country : NP} = \nat,co -> --- {lang = mkNP (mkPN nat) ; prop = mkA nat ; country = mkNP (mkPN co)} ; --- --- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d -> --- let day = mkNP (mkPN d) in --- {name = day ; --- point, -- = ParadigmsCat.mkAdv d ; --- habitual = ParadigmsCat.mkAdv ("il" ++ d) ; ---- ? --- } ; --- --- mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep} = \p,i -> { --- name = mkCN p ; --- at = i ; --- to = dative --- } ; --- --- open_A = mkA "aperto" ; --- closed_A = mkA "chiuso" ; --- --- --- } +-- Suspect = mkA "sospetto" ; + +-- places + +-- Airport = mkPlace (mkN "aeroporto") dative ; +-- Bar = mkPlace (mkN "bar") P.in_Prep ; +-- Church = mkPlace (mkN "chiesa") P.in_Prep ; +-- Cinema = mkPlace (mkN "cinema") P.in_Prep ; +-- Hospital = mkPlace (mkN "ospedale") P.in_Prep ; +-- Hotel = mkPlace (mkN "albergo") P.in_Prep ; +-- Museum = mkPlace (mkN "museo") P.in_Prep ; +-- Park = mkPlace (mkN "parco") P.in_Prep ; +-- Restaurant = mkPlace (mkN "ristorante") P.in_Prep ; +-- School = mkPlace (mkN "scuola") P.in_Prep ; +-- Shop = mkPlace (mkN "negozio") P.in_Prep ; +-- Station = mkPlace (mkN "stazione" feminine) dative ; +-- Theatre = mkPlace (mkN "teatro") P.in_Prep ; +-- Toilet = mkPlace (mkN "bagno") P.in_Prep ; +-- University = mkPlace (mkN "università") dative ; + +-- currencies + +-- DanishCrown = mkCN (mkA "danese") (mkN "corona") | mkCN (mkN "corona") ; +-- Dollar = mkCN (mkN "dollar") ; +-- Euro = mkCN (mkN "euro" "euro" masculine) ; +-- Lei = mkCN (mkN "lei") ; ---- ? +-- SwedishCrown = mkCN (mkA "svedese") (mkN "corona") | mkCN (mkN "corona") ; + +-- nationalities + +-- Belgian = mkA "belgo" ; +-- Belgium = mkNP (mkPN "Belgio") ; +-- English = mkNat "inglese" "Inghilterra" ; +-- Finnish = mkNat "finlandese" "Finlandia" ; +-- Flemish = mkNP (mkPN "fiammingo") ; +-- French = mkNat "francese" "Francia" ; +-- Italian = mkNat "italiano" "Italia" ; +-- Romanian = mkNat "rumeno" "Romania" ; +-- Swedish = mkNat "svedese" "Svezia" ; + +-- actions + +-- AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ; + AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ; +-- AHasRoom p num = mkCl p.name have_V2 +-- (mkNP (mkNP a_Det (mkN "camera")) (SyntaxCat.mkAdv for_Prep (mkNP num (mkN "persona")))) ; +-- AHasTable p num = mkCl p.name have_V2 +-- (mkNP (mkNP a_Det (mkN "tavolo")) (SyntaxCat.mkAdv for_Prep (mkNP num (mkN "persona")))) ; +-- AHasName p name = mkCl p.name (mkV2 (reflV (mkV "chiamare"))) name ; +-- AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "fame" feminine))) ; +-- AIll p = mkCl p.name (mkA "malato") ; +-- AKnow p = mkCl p.name (mkV (sapere_78 "sapere")) ; +-- ALike p item = mkCl item (mkV2 (mkV (piacere_64 "piacere")) dative) p.name ; +-- ALive p co = +-- mkCl p.name (mkVP (mkVP (mkV "abitare")) (SyntaxCat.mkAdv P.in_Prep co)) ; +-- ALove p q = mkCl p.name (mkV2 (mkV "amare")) q.name ; +-- AMarried p = mkCl p.name (mkA "sposato") ; +-- AReady p = mkCl p.name (mkA "pronto") ; +-- AScared p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "paura" feminine))) ; +-- ASpeak p lang = mkCl p.name (mkV2 (mkV "parlare")) lang ; +-- AThirsty p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "sete" feminine))) ; +-- ATired p = mkCl p.name (mkA "stanco") ; +-- AUnderstand p = mkCl p.name (mkV "capire") ; +-- AWant p obj = mkCl p.name (mkV2 (mkV (volere_96 "volere"))) obj ; +-- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; + + +-- miscellaneous + +-- QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (reflV (mkV "chiamare")))) ; +-- QWhatAge p = mkQS (mkQCl (mkIP how8many_IDet L.year_N) p.name have_V2) ; + +-- PropOpen p = mkCl p.name open_A ; +-- PropClosed p = mkCl p.name closed_A ; +-- PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ; +-- PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ; +-- PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ; +-- PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ; + +-- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "costare"))) ; +-- ItCost item price = mkCl item (mkV2 (mkV "costare")) price ; + +-- Building phrases from strings is complicated: the solution is to use +-- mkText : Text -> Text -> Text ; + +-- PSeeYou d = mkText (lin Text (ss ("arrivederci"))) (mkPhrase (mkUtt d)) ; +-- PSeeYouPlace p d = +-- mkText (lin Text (ss ("arrivederci"))) +-- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ; + +-- Relations are expressed as "my wife" or "the wife of my son", as defined by $xOf$ +-- below. Languages with productive genitives can use an equivalent of +-- "my son's wife" for non-pronouns, as e.g. in English. + +-- Wife = xOf sing (mkN "sposa") ; +-- Husband = xOf sing (mkN "marito") ; +-- Son = xOf sing (mkN "figlio") ; +-- Daughter = xOf sing (mkN "figlia") ; +-- Children = xOf plur L.child_N ; + +-- week days + +-- Monday = mkDay "lunedì" ; +-- Tuesday = mkDay "martedì" ; +-- Wednesday = mkDay "mercoledì" ; +-- Thursday = mkDay "giovedì" ; +-- Friday = mkDay "venerdì" ; +-- Saturday = mkDay "sabato" ; +-- Sunday = mkDay "domenica" ; + +-- Tomorrow = P.mkAdv "domani" ; + +-- auxiliaries + +-- oper +-- mkNat : Str -> Str -> NPNationality = \nat,co -> +-- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ; + +-- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d -> +-- let day = mkNP (mkPN d) in +-- mkNPDay day (P.mkAdv ("il" ++ d)) (P.mkAdv ("il" ++ d)) ; ---- ? + +-- mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep} = \p,i -> +-- mkCNPlace (mkCN p) i dative ; + +-- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ; + +-- open_A = mkA "aperto" ; +-- closed_A = mkA "chiuso" ; + + +--} } |
