From fa121a62d994bfa2cb4b7dd6bb1286ad03e6fdaa Mon Sep 17 00:00:00 2001 From: aarne Date: Mon, 3 May 2010 09:31:42 +0000 Subject: [PATCH] fixed encoding of WOrdsFre; added HowFar constructs --- examples/phrasebook/Makefile | 4 +- examples/phrasebook/WordsFre.gf | 88 +++++++++++++++++---------------- examples/phrasebook/missing.txt | 9 ++-- 3 files changed, 53 insertions(+), 48 deletions(-) diff --git a/examples/phrasebook/Makefile b/examples/phrasebook/Makefile index 056b6b114..6e1d01433 100644 --- a/examples/phrasebook/Makefile +++ b/examples/phrasebook/Makefile @@ -5,10 +5,10 @@ all: fin demo missing demo: compdemo linkdemo compdemo: - $(compile) Bul Eng Fre Ger Ita Ron Swe DisambPhrasebookEng + $(compile) Bul Dut Eng Fre Ger Ita Ron Swe DisambPhrasebookEng linkdemo: - $(compile) -link Bul Eng Fin Fre Ger Ita Ron Swe DisambPhrasebookEng + $(compile) -link Bul Dut Eng Fin Fre Ger Ita Ron Swe DisambPhrasebookEng #separate, because slow... fin: diff --git a/examples/phrasebook/WordsFre.gf b/examples/phrasebook/WordsFre.gf index acf4a6207..7dda7db9c 100644 --- a/examples/phrasebook/WordsFre.gf +++ b/examples/phrasebook/WordsFre.gf @@ -25,7 +25,7 @@ lin Milk = mkCN L.milk_N ; Pizza = mkCN (mkN "pizza" feminine) ; Salt = mkCN L.salt_N ; - Tea = mkCN (mkN "thé") ; + Tea = mkCN (mkN "thé") ; Water = mkCN L.water_N ; Wine = mkCN L.wine_N ; @@ -33,42 +33,42 @@ lin Bad = L.bad_A ; Boring = mkA "ennuyeux" ; - Cheap = let bm = "bon marché" in mkA bm bm bm bm ; + Cheap = let bm = "bon marché" in mkA bm bm bm bm ; Cold = L.cold_A ; - Delicious = mkA "délicieux" ; + Delicious = mkA "délicieux" ; Expensive = mkA "cher" ; - Fresh = mkA "frais" "fraîche" "frais" "fraîchement" ; + Fresh = mkA "frais" "fraîche" "frais" "fraîchement" ; Good = L.good_A ; Suspect = mkA "suspect" ; Warm = L.warm_A ; -- places - Airport = mkPlace (mkN "aéroport") dative ; + Airport = mkPlace (mkN "aéroport") dative ; AmusementPark = mkPlace (compN (mkN "parc") ["d'attractions"]) in_Prep ; Bank = mkPlace (mkN "banque") in_Prep ; Bar = mkPlace (mkN "bar") in_Prep ; - Cafeteria = mkPlace (mkN "cafétéria") in_Prep ; + Cafeteria = mkPlace (mkN "cafétéria") in_Prep ; Center = mkPlace (mkN "centre") in_Prep ; - Church = mkPlace (mkN "église") in_Prep ; - Cinema = mkPlace (mkN "cinéma" masculine) in_Prep ; - Disco = mkPlace (mkN "discothèque" feminine) dative ; - Hospital = mkPlace (mkN "hôpital") dative ; - Hotel = mkPlace (mkN "hôtel") dative ; - Museum = mkPlace (mkN "musée" masculine) in_Prep ; + Church = mkPlace (mkN "église") in_Prep ; + Cinema = mkPlace (mkN "cinéma" masculine) in_Prep ; + Disco = mkPlace (mkN "discothèque" feminine) dative ; + Hospital = mkPlace (mkN "hôpital") dative ; + Hotel = mkPlace (mkN "hôtel") dative ; + Museum = mkPlace (mkN "musée" masculine) in_Prep ; Park = mkPlace (mkN "parc") in_Prep ; Parking = mkPlace (mkN "parking" masculine) in_Prep ; Pharmacy = mkPlace (mkN "pharmacie" feminine) in_Prep ; PostOffice = mkPlace (mkN "poste" feminine) dative ; Pub = mkPlace (mkN "pub" masculine) dative ; Restaurant = mkPlace (mkN "restaurant") in_Prep ; - School = mkPlace (mkN "école") dative ; + School = mkPlace (mkN "école") dative ; Shop = mkPlace (mkN "magasin") in_Prep ; Station = mkPlace (mkN "gare") dative ; - Supermarket = mkPlace (mkN "supermarché" masculine) in_Prep ; - Theatre = mkPlace (mkN "théâtre" masculine) in_Prep ; + Supermarket = mkPlace (mkN "supermarché" masculine) in_Prep ; + Theatre = mkPlace (mkN "théâtre" masculine) in_Prep ; Toilet = mkPlace (mkN "toilette") in_Prep ; - University = mkPlace (mkN "université" feminine) dative ; + University = mkPlace (mkN "université" feminine) dative ; Zoo = mkPlace (mkN "zoo" masculine) dative ; CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant")) in_Prep to_Prep ; @@ -80,11 +80,11 @@ lin Euro = mkCN (mkN "euro") ; Lei = mkCN (mkN "leu" "lei" masculine) ; Leva = mkCN (mkN "lev" "leva" masculine); - NorwegianCrown = mkCN (mkA "norvégien") (mkN "couronne") | mkCN (mkN "couronne") ; + NorwegianCrown = mkCN (mkA "norvégien") (mkN "couronne") | mkCN (mkN "couronne") ; Pound = mkCN (compN (mkN "livre") ["sterling"]); Rouble = mkCN (mkN "rouble" "rouble" masculine) ; - SwedishCrown = mkCN (mkA "suédois") (mkN "couronne") | mkCN (mkN "couronne") ; - Zloty = mkCN (mkN "zÅ‚oty" "zÅ‚otych" masculine) ; + SwedishCrown = mkCN (mkA "suédois") (mkN "couronne") | mkCN (mkN "couronne") ; + Zloty = mkCN (mkN "zloty" "zlotych" masculine) ; -- nationalities @@ -97,15 +97,15 @@ lin English = mkNat "anglais" "Angleterre" ; Finnish = mkNat "finlandais" "Finlande" ; Flemish = mkNP (mkPN "flamand") ; - French = mkNat "français" "France" ; + French = mkNat "français" "France" ; German = mkNat "allemand" "Allemagne" ; Italian = mkNat "italien" "Italie" ; - Norwegian = mkNat "norvégien" "Norvège" ; + Norwegian = mkNat "norvégien" "Norvège" ; Polish = mkNat "polonais" "Pologne" ; Romanian = mkNat "roumain" "Roumanie" ; Russian = mkNat "russe" "Russie" ; Spanish = mkNat "espagnol" "Espagne" ; - Swedish = mkNat "suédois" "Suède" ; + Swedish = mkNat "suédois" "Suède" ; -- means of transportation @@ -114,12 +114,12 @@ lin Car = mkTransport L.car_N ; Ferry = mkTransport (mkN "ferry-boat") ; Plane = mkTransport L.airplane_N ; - Subway = mkTransport (mkN "metro") ; + Subway = mkTransport (mkN "métro") ; Taxi = mkTransport (mkN "taxi") ; Train = mkTransport (mkN "train") ; Tram = mkTransport (mkN "tram") ; - ByFoot = P.mkAdv "à pied" ; + ByFoot = P.mkAdv "à pied" ; -- actions @@ -132,15 +132,15 @@ lin AHasTable p num = mkCl p.name have_V2 (mkNP (mkNP a_Det (mkN "table")) (SyntaxFre.mkAdv for_Prep (mkNP num (mkN "personne")))) ; - AMarried p = mkCl p.name (mkA "marié") ; + AMarried p = mkCl p.name (mkA "marié") ; AWant p obj = mkCl p.name vouloir_V2 obj ; ALike p item = mkCl item plaire_V2 p.name ; ASpeak p lang = mkCl p.name (mkV2 (mkV "parler")) lang ; ALove p q = mkCl p.name (mkV2 (mkV "aimer")) q.name ; AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "faim" feminine))) ; - AReady p = mkCl p.name (mkA "prêt") ; + AReady p = mkCl p.name (mkA "prêt") ; AThirsty p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "soif" feminine))) ; - ATired p = mkCl p.name (mkA "fatigué") ; + ATired p = mkCl p.name (mkA "fatigué") ; AScared p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "peur" feminine))) ; AIll p = mkCl p.name (mkA "malade") ; AUnderstand p = mkCl p.name (mkV IrregFre.comprendre_V2) ; @@ -152,7 +152,7 @@ lin -- miscellaneous QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (reflV (mkV "appeler")))) ; - QWhatAge p = mkQS (mkQCl (mkIP whichSg_IDet (mkN "âge" masculine)) p.name have_V2) ; + QWhatAge p = mkQS (mkQCl (mkIP whichSg_IDet (mkN "âge" masculine)) p.name have_V2) ; PropOpen p = mkCl p.name open_A ; PropClosed p = mkCl p.name closed_A ; @@ -161,8 +161,8 @@ lin 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 "coûter"))) ; - ItCost item price = mkCl item (mkV2 (mkV "coûter")) price ; + HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "coûter"))) ; + ItCost item price = mkCl item (mkV2 (mkV "coûter")) price ; -- Building phrases from strings is complicated: the solution is to use -- mkText : Text -> Text -> Text ; @@ -201,7 +201,7 @@ lin TheBest = mkSuperl L.good_A ; TheClosest = mkSuperl L.near_A ; - TheCheapest = mkSuperl (compADeg {s = \\_ => (M.mkAdj "bon marché" "bon marché" "bon marché" "bon marché").s ; isPre = False ; lock_A = <>}) ; + TheCheapest = mkSuperl (compADeg {s = \\_ => (M.mkAdj "bon marché" "bon marché" "bon marché" "bon marché").s ; isPre = False ; lock_A = <>}) ; TheMostExpensive = mkSuperl (mkA "cher") ; TheMostPopular = mkSuperl (mkA "populair") ; TheWorst = mkSuperl L.bad_A ; @@ -210,14 +210,17 @@ lin -- transports -{- - HowFar place = mkQS (mkQCl which_IQuant (mkNP the_Det (mkN "distance" feminine))) ; -- (mkNP ()place.name) ; - HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP y.name (SyntaxFre.mkAdv from_Prep x.name))) ; - HowFarFromBy x y t = - mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxFre.mkAdv from_Prep x.name)) t)) ; - HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP y.name t)) ; --} + HowFar place = mkQS (mkQCl (E.CompIQuant which_IQuant) (mkNP distance_NP place.to)) ; + HowFarFrom place x = + mkQS (mkQCl (E.CompIQuant which_IQuant) + (mkNP (mkNP distance_NP (SyntaxFre.mkAdv from_Prep x.name)) place.to)) ; + HowFarFromBy place x t = + mkQS (mkQCl (E.CompIQuant which_IQuant) + (mkNP (mkNP (mkNP distance_NP (SyntaxFre.mkAdv from_Prep x.name)) place.to) t)) ; + HowFarBy place t = + mkQS (mkQCl (E.CompIQuant which_IQuant) (mkNP (mkNP distance_NP place.to) t)) ; + WhichTranspPlace trans place = mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ; @@ -225,8 +228,6 @@ lin mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ; - - oper mkNat : Str -> Str -> NPNationality = \nat,co -> mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ; @@ -239,17 +240,20 @@ lin mkCNPlace (mkCN p) i dative ; open_A = P.mkA "ouvert" ; - closed_A = P.mkA "fermé" ; + closed_A = P.mkA "fermé" ; xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ; mkTransport : N -> {name : CN ; by : Adv} = \n -> { name = mkCN n ; - by = SyntaxFre.mkAdv by8means_Prep (mkNP n) + by = SyntaxFre.mkAdv by8means_Prep (mkNP the_Det n) --- par le bus } ; mkSuperl : A -> Det = \a -> SyntaxFre.mkDet the_Art (SyntaxFre.mkOrd a) ; far_IAdv = ss "loin" ; + distance_NP : NP = mkNP the_Det (mkN "distance" feminine) ; + + } diff --git a/examples/phrasebook/missing.txt b/examples/phrasebook/missing.txt index bbafbd214..2eaf89d96 100644 --- a/examples/phrasebook/missing.txt +++ b/examples/phrasebook/missing.txt @@ -1,9 +1,10 @@ DisambPhrasebookEng : -PhrasebookBul : AHasName AHasRoom AHasTable AHungry AIll AKnow ALike ALive ALove AMarried AReady AScared ASpeak AThirsty ATired AUnderstand AWant AWantGo Belgium Children Daughter English Finnish Flemish French Friday HowMuchCost Husband ItCost Italian Monday PSeeYou PSeeYouPlace PropClosed PropClosedDate PropClosedDay PropOpen PropOpenDate PropOpenDay QWhatAge QWhatName Romanian Saturday Son Sunday Swedish Thursday Tomorrow Tuesday Wednesday Wife +PhrasebookBul : AHasName AHasRoom AHasTable AHungry AIll AKnow ALike ALive ALove AMarried AReady AScared ASpeak AThirsty ATired AUnderstand AWant AWantGo AmusementPark Bank Belgium Bike Bulgarian Bus ByFoot Cafeteria Car Catalan Center Children CitRestaurant Danish Daughter Disco Dutch English Ferry Finnish Flemish French Friday German HowFar HowFarBy HowFarFrom HowFarFromBy HowMuchCost Husband IsTranspPlace ItCost Italian Leva Monday Norwegian NorwegianCrown PSeeYouDate PSeeYouPlace PSeeYouPlaceDate Parking Pharmacy Plane Polish PostOffice Pound PropClosed PropClosedDate PropClosedDay PropOpen PropOpenDate PropOpenDay Pub QWhatAge QWhatName Romanian Rouble Russian Saturday Son Spanish Subway Sunday SuperlPlace Supermarket Swedish Taxi TheBest TheCheapest TheClosest TheMostExpensive TheMostPopular TheWorst Thursday Tomorrow Train Tram Tuesday Wednesday WhichTranspPlace Wife Zloty Zoo +PhrasebookDut : PhrasebookEng : PhrasebookFin : -PhrasebookFre : -PhrasebookGer : Bar Chicken Cinema Coffee Dollar GNiceToMeetYou Hotel Lei Meat Museum PSeeYou PSeeYouPlace Park School Shop Suspect Tea Theatre Toilet -PhrasebookIta : +PhrasebookFre : HowFar HowFarBy HowFarFrom HowFarFromBy +PhrasebookGer : AmusementPark Bank Bar Bike Bulgarian Bus ByFoot Cafeteria Car Catalan Center Chicken Cinema CitRestaurant Coffee Danish Disco Dollar Dutch Ferry GNiceToMeetYou German Hotel HowFar HowFarBy HowFarFrom HowFarFromBy IsTranspPlace Lei Leva Meat Museum Norwegian NorwegianCrown PSeeYouDate PSeeYouPlace PSeeYouPlaceDate Park Parking Pharmacy Plane Polish PostOffice Pound Pub Rouble Russian School Shop Spanish Subway SuperlPlace Supermarket Suspect Taxi Tea TheBest TheCheapest TheClosest TheMostExpensive TheMostPopular TheWorst Theatre Toilet Train Tram WhichTranspPlace Zloty Zoo +PhrasebookIta : AmusementPark Bank Bike Bulgarian Bus ByFoot Cafeteria Car Catalan Center CitRestaurant Danish Disco Dutch Ferry German HowFar HowFarBy HowFarFrom HowFarFromBy IsTranspPlace Leva Norwegian NorwegianCrown Parking Pharmacy Plane Polish PostOffice Pound Pub Rouble Russian Spanish Subway SuperlPlace Supermarket Taxi TheBest TheCheapest TheClosest TheMostExpensive TheMostPopular TheWorst Train Tram WhichTranspPlace Zloty Zoo PhrasebookRon : GExcusePol GPleaseGivePol GSorryPol PhrasebookSwe :