summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
Diffstat (limited to 'examples')
-rw-r--r--examples/phrasebook/WordsCat.gf200
1 files changed, 108 insertions, 92 deletions
diff --git a/examples/phrasebook/WordsCat.gf b/examples/phrasebook/WordsCat.gf
index 80a8d2b6f..6c36ef427 100644
--- a/examples/phrasebook/WordsCat.gf
+++ b/examples/phrasebook/WordsCat.gf
@@ -44,131 +44,147 @@ lin
-- places
Airport = mkPlace (mkN "aeroport") 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 ;
+ Bar = mkPlace (mkN "bar") dative ;
+ Church = mkPlace (mkN "església") dative ;
+ Cinema = mkPlace (mkN "cinema" masculine) dative ;
+ Hospital = mkPlace (mkN "hospital") dative ;
+ Hotel = mkPlace (mkN "alberg") dative ;
+ Museum = mkPlace (mkN "museu") dative ;
+ Park = mkPlace (mkN "parc") dative ;
+ Restaurant = mkPlace (mkN "restaurant") dative ;
+ School = mkPlace (mkN "escola") dative ;
+ Shop = mkPlace (mkN "tenda") dative ;
+ Station = mkPlace (mkN "estació" feminine) dative ;
+ Theatre = mkPlace (mkN "teatre") dative ;
+ Toilet = mkPlace (mkN "lavabo") dative ;
+ University = mkPlace (mkN "universitat" feminine) 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") ;
+oper
+ Corona : A -> CN = \adj ->
+ let corona = (mkN "corona")
+ in mkCN adj corona | mkCN corona ;
+lin
+ DanishCrown = Corona (mkA "danès" "danesa" "danesos" "daneses" "a la danesa") ;
+ Dollar = mkCN (mkN "dollar") ;
+ Euro = mkCN (mkN "euro" "euro" masculine) ;
+ Lei = mkCN (mkN "leu" "lei" masculine) ;
+ SwedishCrown = Corona (mkA "suec" "sueca" "suecs" "sueques" "a la sueca") ;
-- 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" ;
+ Belgian = mkA "belga" ;
+ Belgium = mkNP (mkPN "Bèlgica") ;
+ English = mkNat "anglès" "Anglaterra" ;
+ Finnish = mkNat "finès" "Finlàndia" ;
+ Flemish = mkNP (mkPN "flamenc") ;
+ French = mkNat "francès" "França" ;
+ Italian = mkNat "italià" "Itàlia" ;
+ Romanian = mkNat "romanès" "Romania" ;
+ Swedish = mkNat "suec" "Suècia" ;
-- actions
--- AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
+ 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) ;
+ AHasRoom p num = mkCl p.name have_V2
+ (mkNP (mkNP a_Det (mkN "habitació" feminine)) (SyntaxCat.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
+ AHasTable p num = mkCl p.name have_V2
+ (mkNP (mkNP a_Det (mkN "taula")) (SyntaxCat.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
+ AHasName p name =
+ let dir = mkV (dir_41 "dir")
+ in mkCl p.name (mkV2 (reflV dir)) name ;
+ AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "gana" feminine))) ;
+ AIll p = mkCl p.name (mkA "malalt") ;
+ AKnow p =
+ let saber = mkV (saber_99 "saber")
+ in mkCl p.name saber ;
+ ALike p item = mkCl item (mkV2 (mkV "agradar") dative) p.name ;
+ ALive p co =
+ let viure = mkV (viure_119 "viure")
+ in mkCl p.name (mkVP (mkVP viure) (SyntaxCat.mkAdv in_Prep co)) ;
+ ALove p q = mkCl p.name (mkV2 (mkV "estimar")) q.name ;
+ AMarried p = mkCl p.name (mkA "casat") ;
+ AReady p =
+ let ap = "a punt"
+ in mkCl p.name (mkA ap ap ap ap ap) ;
+ AScared p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "por" feminine))) ;
+ ASpeak p lang = mkCl p.name (mkV2 (mkV "parlar")) lang ;
+ AThirsty p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "set" feminine))) ;
+ ATired p = mkCl p.name (mkA "cansat") ;
+ AUnderstand p = mkCl p.name (mkV "entendre") ;
+ AWant p obj =
+ let voler = mkV (voler_120 "voler")
+ in mkCl p.name (mkV2 voler) 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 ;
+ QWhatName p =
+ let dir = mkV (dir_41 "dir")
+ in mkQS (mkQCl how_IAdv (mkCl p.name (reflV dir))) ;
+ 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 =
+ let valer = mkV (valer_114 "valer")
+ in mkQS (mkQCl how8much_IAdv (mkCl item valer)) ;
+ ItCost item price =
+ let valer = mkV (valer_114 "valer")
+ in mkCl item (mkV2 valer) price ;
-- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
+-- 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))) ;
+ PSeeYou d = mkText (lin Text (ss ("fins aviat"))) (mkPhrase (mkUtt d)) ;
+ PSeeYouPlace p = mkText (lin Text (ss ("fins aviat"))) (mkPhrase (mkUtt p.at)) ;
+ PSeeYouPlaceDate p d =
+ mkText (lin Text (ss ("a reveure")))
+ (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ;
-- 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 ;
+ Wife = xOf sing (mkN "dona") ;
+ Husband = xOf sing (mkN "home") ;
+ Son = xOf sing (mkN "fill") ;
+ Daughter = xOf sing (mkN "filla") ;
+ 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" ;
+ Monday = mkDay "dilluns" ;
+ Tuesday = mkDay "dimarts" ;
+ Wednesday = mkDay "dimecres" ;
+ Thursday = mkDay "dijous" ;
+ Friday = mkDay "divendres" ;
+ Saturday = mkDay "dissabte" ;
+ Sunday = mkDay "diumenge" ;
--- Tomorrow = P.mkAdv "domani" ;
+ Tomorrow = P.mkAdv "demà" ;
-- auxiliaries
oper
--- mkNat : Str -> Str -> NPNationality = \nat,co ->
--- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
+ 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)) ; ---- ?
+ mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
+ let day = mkNP (mkPN d)
+ in mkNPDay day (P.mkAdv ("el" ++ d)) (P.mkAdv ("el" ++ 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" ;
-
+ xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ;
---}
+ open_A = mkA "obert" ;
+ closed_A = mkA "tancat" ;
}