diff --git a/examples/phrasebook/Clone.hs b/examples/phrasebook/Clone.hs index 8d7e2eeeb..2959b5fc1 100644 --- a/examples/phrasebook/Clone.hs +++ b/examples/phrasebook/Clone.hs @@ -51,4 +51,4 @@ commentBody ss = header ++ map comment body ++ ["}"] where isJment ws = case ws of k:_ | elem k ["flags","lin","lincat","oper","param"] -> True _ -> False - comment l = "-- " ++ l + comment l = if take 2 l == "--" then l else "-- " ++ l diff --git a/examples/phrasebook/Greetings.gf b/examples/phrasebook/Greetings.gf index da12e956b..ba3499f2a 100644 --- a/examples/phrasebook/Greetings.gf +++ b/examples/phrasebook/Greetings.gf @@ -4,26 +4,24 @@ cat Greeting ; -- idiomatic phrase, not inflected, e.g. "hello" fun - GHello : Greeting ; - GThanks : Greeting ; - GHowAreYou : Greeting ; - GPleaseGive, GPleaseGivePol : Greeting ; - GExcuse, GExcusePol : Greeting ; - GSorry, GSorryPol : Greeting ; - GGoodbye : Greeting ; GBye : Greeting ; - GNiceToMeetYou : Greeting ; - GSeeYouSoon : Greeting ; - GHelp : Greeting ; - GLookOut : Greeting ; - GGoodMorning : Greeting ; + GCheers : Greeting ; + GDamn : Greeting ; + GExcuse, GExcusePol : Greeting ; GGoodDay : Greeting ; GGoodEvening : Greeting ; + GGoodMorning : Greeting ; GGoodNight : Greeting ; + GGoodbye : Greeting ; + GHello : Greeting ; + GHelp : Greeting ; + GHowAreYou : Greeting ; + GLookOut : Greeting ; + GNiceToMeetYou : Greeting ; + GPleaseGive, GPleaseGivePol : Greeting ; + GSeeYouSoon : Greeting ; + GSorry, GSorryPol : Greeting ; + GThanks : Greeting ; GTheCheck : Greeting ; - GCheers : Greeting ; - - GYes : Greeting ; - GNo : Greeting ; } diff --git a/examples/phrasebook/GreetingsBul.gf b/examples/phrasebook/GreetingsBul.gf new file mode 100644 index 000000000..3f3d6faf4 --- /dev/null +++ b/examples/phrasebook/GreetingsBul.gf @@ -0,0 +1,28 @@ +concrete GreetingsBul of Greetings = open Prelude in { + +-- lincat +-- Greeting = SS ; +-- +-- lin +-- GBye = ss "hej då" ; +-- GCheers = ss "skål" ; +-- GDamn = ss "fan" ; +-- GExcuse, GExcusePol = ss "ursäkta" ; +-- GGoodDay = ss "god dag" ; +-- GGoodEvening = ss "god afton" ; +-- GGoodMorning = ss "god morgon" ; +-- GGoodNight = ss "god natt" ; +-- GGoodbye = ss "hej då" ; +-- GHello = ss "hej" ; +-- GHelp = ss "hjälp" ; +-- GHowAreYou = ss "hur står det till" ; +-- GLookOut = ss "se upp" ; +-- GNiceToMeetYou = ss "trevligt att träffas" ; +-- GPleaseGive, GPleaseGivePol = ss "var så god" ; +-- GSeeYouSoon = ss "vi ses snart" ; +-- GSorry, GSorryPol = ss "förlåt" ; +-- GThanks = ss "tack" ; +-- GTheCheck = ss "notan" ; +-- +-- } +} diff --git a/examples/phrasebook/GreetingsCat.gf b/examples/phrasebook/GreetingsCat.gf new file mode 100644 index 000000000..00c46f718 --- /dev/null +++ b/examples/phrasebook/GreetingsCat.gf @@ -0,0 +1,30 @@ +concrete GreetingsCat of Greetings = open Prelude in { + +-- lincat +-- Greeting = SS ; +-- +-- lin +-- GBye = ss "ciao" ; +-- GCheers = ss "cincin" ; +-- GDamn = ss "maledizione" ; +-- GExcuse = ss "scusa" ; +-- GExcusePol = ss "scusi" ; +-- GGoodDay = ss "buongiorno" ; +-- GGoodEvening = ss "buona sera" ; +-- GGoodMorning = ss "buongiorno" ; +-- GGoodNight = ss "buona notte" ; +-- GGoodbye = ss "arrivederci" ; +-- GHello = ss "ciao" ; +-- GHelp = ss "aiuto" ; +-- GHowAreYou = ss "come sta" ; +-- GLookOut = ss "attenzione" ; +-- -- GNiceToMeetYou = ss "piacevole" ; ---- +-- GPleaseGive, GPleaseGivePol = ss "per favore" ; +-- GSeeYouSoon = ss "a presto" ; ---- +-- GSorry = ss "scusami" ; ---- +-- GSorryPol = ss "scusimi" ; ---- +-- GThanks = ss "grazie" ; +-- GTheCheck = ss "il conto" ; +-- +-- } +} diff --git a/examples/phrasebook/GreetingsEng.gf b/examples/phrasebook/GreetingsEng.gf index 304e34c3b..08d2bd184 100644 --- a/examples/phrasebook/GreetingsEng.gf +++ b/examples/phrasebook/GreetingsEng.gf @@ -4,27 +4,24 @@ lincat Greeting = SS ; lin - GHello = ss "hello" ; - GThanks = ss "thank you" ; - GHowAreYou = ss "how are you" ; - GPleaseGive, GPleaseGivePol = ss "please" ; - GExcuse, GExcusePol = ss "excuse me" ; - GSorry, GSorryPol = ss "sorry" ; - GGoodbye = ss "goodbye" ; GBye = ss "bye" ; - GNiceToMeetYou = ss "nice to meet you" ; - GSeeYouSoon = ss "see you soon" ; - GHelp = ss "help" ; - GLookOut = ss "look out" ; - GGoodMorning = ss "good morning" ; + GCheers = ss "cheers" ; + GDamn = ss "damn" ; + GExcuse, GExcusePol = ss "excuse me" ; GGoodDay = ss "good afternoon" ; ---- GGoodEvening = ss "good evening" ; + GGoodMorning = ss "good morning" ; GGoodNight = ss "good night" ; + GGoodbye = ss "goodbye" ; + GHello = ss "hello" ; + GHelp = ss "help" ; + GHowAreYou = ss "how are you" ; + GLookOut = ss "look out" ; + GNiceToMeetYou = ss "nice to meet you" ; + GPleaseGive, GPleaseGivePol = ss "please" ; + GSeeYouSoon = ss "see you soon" ; + GSorry, GSorryPol = ss "sorry" ; + GThanks = ss "thank you" ; GTheCheck = ss "the bill" ; - GCheers = ss "cheers" ; - - GYes = ss "yes" ; - GNo = ss "no" ; - } diff --git a/examples/phrasebook/GreetingsFin.gf b/examples/phrasebook/GreetingsFin.gf index ff8cfd474..9a30bb5d7 100644 --- a/examples/phrasebook/GreetingsFin.gf +++ b/examples/phrasebook/GreetingsFin.gf @@ -1,33 +1,27 @@ concrete GreetingsFin of Greetings = open Prelude in { -flags coding=utf8 ; - lincat Greeting, Politeness = SS ; lin - GHello = ss "hei" ; - GThanks = ss "kiitos" ; - GHowAreYou = ss "mitä kuuluu" ; - GPleaseGive = ss "ole hyvä" ; - GPleaseGivePol = ss "olkaa hyvä" ; - GExcuse, GExcusePol = ss "anteeksi" ; - GSorry, GSorryPol = ss "anteeksi" ; - GGoodbye = ss "näkemiin" ; GBye = ss "hei hei" ; - GNiceToMeetYou = ss "hauska tutustua" ; - GSeeYouSoon = ss "nähdään pian" ; - GHelp = ss "apua" ; - GLookOut = ss "varo" ; - GGoodMorning = ss "hyvää huomenta" ; - GGoodDay = ss "hyvää päivää" ; - GGoodEvening = ss "hyvää iltaa" ; - GGoodNight = ss "hyvää yötä" ; - GTheCheck = ss "lasku" ; GCheers = ss "terveydeksi" ; - - GYes = ss "kyllä" ; - GNo = ss "ei" ; - - + GDamn = ss "hitto" ; + GExcuse, GExcusePol = ss "anteeksi" ; + GGoodDay = ss "hyvää päivää" ; + GGoodEvening = ss "hyvää iltaa" ; + GGoodMorning = ss "hyvää huomenta" ; + GGoodNight = ss "hyvää yötä" ; + GGoodbye = ss "näkemiin" ; + GHello = ss "hei" ; + GHelp = ss "apua" ; + GHowAreYou = ss "mitä kuuluu" ; + GLookOut = ss "varo" ; + GNiceToMeetYou = ss "hauska tutustua" ; + GPleaseGive = ss "ole hyvä" ; + GPleaseGivePol = ss "olkaa hyvä" ; + GSeeYouSoon = ss "nähdään pian" ; + GSorry, GSorryPol = ss "anteeksi" ; + GThanks = ss "kiitos" ; + GTheCheck = ss "lasku" ; } diff --git a/examples/phrasebook/GreetingsFre.gf b/examples/phrasebook/GreetingsFre.gf index 81e11cdc6..76656b62c 100644 --- a/examples/phrasebook/GreetingsFre.gf +++ b/examples/phrasebook/GreetingsFre.gf @@ -1,34 +1,29 @@ concrete GreetingsFre of Greetings = open Prelude in { -flags coding = utf8 ; - lincat Greeting = SS ; lin - GHello = ss "salut" ; - GThanks = ss "merci" ; - GHowAreYou = ss "comment ça va" ; - GPleaseGive = ss "s'il te plaît" ; - GPleaseGivePol = ss "s'il vous plaît" ; + GBye = ss "au revoir" ; + GCheers = ss "santé" ; + GDamn = ss "maudit" ; GExcuse = ss "excuse-moi" ; GExcusePol = ss "excusez-moi" ; - GSorry, GSorryPol = ss "pardon" ; - GGoodbye = ss "au revoir" ; - GBye = ss "au revoir" ; - GNiceToMeetYou = ss "enchanté" ; - GSeeYouSoon = ss "à bientôt" ; - GHelp = ss "au secours" ; - GLookOut = ss "attention" ; - GGoodMorning = ss "bonjour" ; GGoodDay = ss "bonjour" ; GGoodEvening = ss "bon soir" ; + GGoodMorning = ss "bonjour" ; GGoodNight = ss "bonne nuit" ; + GGoodbye = ss "au revoir" ; + GHello = ss "salut" ; + GHelp = ss "au secours" ; + GHowAreYou = ss "comment ça va" ; + GLookOut = ss "attention" ; + GNiceToMeetYou = ss "enchanté" ; + GPleaseGive = ss "s'il te plaît" ; + GPleaseGivePol = ss "s'il vous plaît" ; + GSeeYouSoon = ss "à bientôt" ; + GSorry, GSorryPol = ss "pardon" ; + GThanks = ss "merci" ; GTheCheck = ss "l'addition" ; - GCheers = ss "santé" ; - - GYes = ss "oui" ; ---- si - GNo = ss "non" ; - } diff --git a/examples/phrasebook/GreetingsGer.gf b/examples/phrasebook/GreetingsGer.gf new file mode 100644 index 000000000..f8d5931ff --- /dev/null +++ b/examples/phrasebook/GreetingsGer.gf @@ -0,0 +1,28 @@ +concrete GreetingsGer of Greetings = open Prelude in { + +-- lincat +-- Greeting = SS ; +-- +-- lin +-- GBye = ss "hej då" ; +-- GCheers = ss "skål" ; +-- GDamn = ss "fan" ; +-- GExcuse, GExcusePol = ss "ursäkta" ; +-- GGoodDay = ss "god dag" ; +-- GGoodEvening = ss "god afton" ; +-- GGoodMorning = ss "god morgon" ; +-- GGoodNight = ss "god natt" ; +-- GGoodbye = ss "hej då" ; +-- GHello = ss "hej" ; +-- GHelp = ss "hjälp" ; +-- GHowAreYou = ss "hur står det till" ; +-- GLookOut = ss "se upp" ; +-- GNiceToMeetYou = ss "trevligt att träffas" ; +-- GPleaseGive, GPleaseGivePol = ss "var så god" ; +-- GSeeYouSoon = ss "vi ses snart" ; +-- GSorry, GSorryPol = ss "förlåt" ; +-- GThanks = ss "tack" ; +-- GTheCheck = ss "notan" ; +-- +-- } +} diff --git a/examples/phrasebook/GreetingsIta.gf b/examples/phrasebook/GreetingsIta.gf index 77b840ad7..ac2219303 100644 --- a/examples/phrasebook/GreetingsIta.gf +++ b/examples/phrasebook/GreetingsIta.gf @@ -4,29 +4,26 @@ lincat Greeting = SS ; lin - GHello = ss "ciao" ; - GThanks = ss "grazie" ; - GHowAreYou = ss "come sta" ; - GPleaseGive, GPleaseGivePol = ss "per favore" ; + GBye = ss "ciao" ; + GCheers = ss "cincin" ; + GDamn = ss "maledizione" ; GExcuse = ss "scusa" ; GExcusePol = ss "scusi" ; - GSorry = ss "scusami" ; ---- - GSorryPol = ss "scusimi" ; ---- - GGoodbye = ss "arrivederci" ; - GBye = ss "ciao" ; --- GNiceToMeetYou = ss "piacevole" ; ---- --- GSeeYouSoon = ss "a poco tempo" ; ---- - GHelp = ss "aiuto" ; - GLookOut = ss "attenzione" ; - GGoodMorning = ss "buongiorno" ; GGoodDay = ss "buongiorno" ; GGoodEvening = ss "buona sera" ; + GGoodMorning = ss "buongiorno" ; GGoodNight = ss "buona notte" ; - GCheers = ss "cincin" ; + GGoodbye = ss "arrivederci" ; + GHello = ss "ciao" ; + GHelp = ss "aiuto" ; + GHowAreYou = ss "come sta" ; + GLookOut = ss "attenzione" ; +-- GNiceToMeetYou = ss "piacevole" ; ---- + GPleaseGive, GPleaseGivePol = ss "per favore" ; + GSeeYouSoon = ss "a presto" ; ---- + GSorry = ss "scusami" ; ---- + GSorryPol = ss "scusimi" ; ---- + GThanks = ss "grazie" ; GTheCheck = ss "il conto" ; - GYes = ss "sì" ; - GNo = ss "no" ; - - } diff --git a/examples/phrasebook/GreetingsRon.gf b/examples/phrasebook/GreetingsRon.gf index e49974b5d..b568a6e49 100644 --- a/examples/phrasebook/GreetingsRon.gf +++ b/examples/phrasebook/GreetingsRon.gf @@ -6,27 +6,24 @@ lincat Greeting, Politeness = SS ; lin - GHello = ss "salut" ; - GThanks = ss "mulÅ£umesc" ; - GHowAreYou = ss "ce faci" ; - GPleaseGive = ss "vă rog" ; - GExcuse = ss "pardon" ; - GSorry = ss "îmi pare rău" ; - GGoodbye = ss "la revedere" ; GBye = ss "pa" ; - GNiceToMeetYou = ss "încântat" ; - GSeeYouSoon = ss "pe curând" ; - GHelp = ss "ajutor" ; - GLookOut = ss "atenÅ£ie" ; - GGoodMorning = ss "bună dimineaÅ£a" ; + GCheers = ss "noroc" ; + GDamn = ss "ptiu" ; + GExcuse = ss "pardon" ; GGoodDay = ss "bună ziua" ; GGoodEvening = ss "bună seara" ; + GGoodMorning = ss "bună dimineaÅ£a" ; GGoodNight = ss "noapte bună" ; - GCheers = ss "noroc" ; + GGoodbye = ss "la revedere" ; + GHello = ss "salut" ; + GHelp = ss "ajutor" ; + GHowAreYou = ss "ce faci" ; + GLookOut = ss "atenÅ£ie" ; + GNiceToMeetYou = ss "încântat" ; + GPleaseGive = ss "vă rog" ; + GSeeYouSoon = ss "pe curând" ; + GSorry = ss "îmi pare rău" ; + GThanks = ss "mulÅ£umesc" ; GTheCheck = ss "nota de plată" ; - GYes = ss "da" ; - GNo = ss "nu" ; - - } diff --git a/examples/phrasebook/GreetingsSpa.gf b/examples/phrasebook/GreetingsSpa.gf new file mode 100644 index 000000000..48db27470 --- /dev/null +++ b/examples/phrasebook/GreetingsSpa.gf @@ -0,0 +1,30 @@ +concrete GreetingsSpa of Greetings = open Prelude in { + +-- lincat +-- Greeting = SS ; +-- +-- lin +-- GBye = ss "ciao" ; +-- GCheers = ss "cincin" ; +-- GDamn = ss "maledizione" ; +-- GExcuse = ss "scusa" ; +-- GExcusePol = ss "scusi" ; +-- GGoodDay = ss "buongiorno" ; +-- GGoodEvening = ss "buona sera" ; +-- GGoodMorning = ss "buongiorno" ; +-- GGoodNight = ss "buona notte" ; +-- GGoodbye = ss "arrivederci" ; +-- GHello = ss "ciao" ; +-- GHelp = ss "aiuto" ; +-- GHowAreYou = ss "come sta" ; +-- GLookOut = ss "attenzione" ; +-- -- GNiceToMeetYou = ss "piacevole" ; ---- +-- GPleaseGive, GPleaseGivePol = ss "per favore" ; +-- GSeeYouSoon = ss "a presto" ; ---- +-- GSorry = ss "scusami" ; ---- +-- GSorryPol = ss "scusimi" ; ---- +-- GThanks = ss "grazie" ; +-- GTheCheck = ss "il conto" ; +-- +-- } +} diff --git a/examples/phrasebook/GreetingsSwe.gf b/examples/phrasebook/GreetingsSwe.gf index 4636fa65a..2d80d28c7 100644 --- a/examples/phrasebook/GreetingsSwe.gf +++ b/examples/phrasebook/GreetingsSwe.gf @@ -4,27 +4,24 @@ lincat Greeting = SS ; lin - GHello = ss "hej" ; - GThanks = ss "tack" ; - GHowAreYou = ss "hur står det till" ; - GPleaseGive, GPleaseGivePol = ss "var så god" ; - GExcuse, GExcusePol = ss "ursäkta" ; - GSorry, GSorryPol = ss "förlåt" ; - GGoodbye = ss "hej då" ; GBye = ss "hej då" ; - GNiceToMeetYou = ss "trevligt att träffas" ; - GSeeYouSoon = ss "vi ses snart" ; - GHelp = ss "hjälp" ; - GLookOut = ss "se upp" ; - GGoodMorning = ss "god morgon" ; + GCheers = ss "skål" ; + GDamn = ss "fan" ; + GExcuse, GExcusePol = ss "ursäkta" ; GGoodDay = ss "god dag" ; GGoodEvening = ss "god afton" ; + GGoodMorning = ss "god morgon" ; GGoodNight = ss "god natt" ; - GCheers = ss "skål" ; + GGoodbye = ss "hej då" ; + GHello = ss "hej" ; + GHelp = ss "hjälp" ; + GHowAreYou = ss "hur står det till" ; + GLookOut = ss "se upp" ; + GNiceToMeetYou = ss "trevligt att träffas" ; + GPleaseGive, GPleaseGivePol = ss "var så god" ; + GSeeYouSoon = ss "vi ses snart" ; + GSorry, GSorryPol = ss "förlåt" ; + GThanks = ss "tack" ; GTheCheck = ss "notan" ; - GYes = ss "ja" ; - GNo = ss "nej" ; - - } diff --git a/examples/phrasebook/PhrasebookBul.gf b/examples/phrasebook/PhrasebookBul.gf new file mode 100644 index 000000000..fbdcb3ea8 --- /dev/null +++ b/examples/phrasebook/PhrasebookBul.gf @@ -0,0 +1,12 @@ +--# -path=.:present + +concrete PhrasebookBul of Phrasebook = + GreetingsBul, + WordsBul ** open + SyntaxBul, + Prelude in { + +lin + PGreeting g = lin Text (ss g.s) ; + +} diff --git a/examples/phrasebook/PhrasebookCat.gf b/examples/phrasebook/PhrasebookCat.gf new file mode 100644 index 000000000..cb8db7a0b --- /dev/null +++ b/examples/phrasebook/PhrasebookCat.gf @@ -0,0 +1,14 @@ +--# -path=.:present + +concrete PhrasebookCat of Phrasebook = + GreetingsCat, + WordsIta + ** open + SyntaxCat, + Prelude in { + +lin + PGreeting g = lin Text (ss g.s) ; + +} + diff --git a/examples/phrasebook/PhrasebookGer.gf b/examples/phrasebook/PhrasebookGer.gf new file mode 100644 index 000000000..f134e57b7 --- /dev/null +++ b/examples/phrasebook/PhrasebookGer.gf @@ -0,0 +1,12 @@ +--# -path=.:present + +concrete PhrasebookGer of Phrasebook = + GreetingsGer, + WordsGer ** open + SyntaxGer, + Prelude in { + +lin + PGreeting g = lin Text (ss g.s) ; + +} diff --git a/examples/phrasebook/PhrasebookSpa.gf b/examples/phrasebook/PhrasebookSpa.gf new file mode 100644 index 000000000..60d02eabb --- /dev/null +++ b/examples/phrasebook/PhrasebookSpa.gf @@ -0,0 +1,14 @@ +--# -path=.:present + +concrete PhrasebookSpa of Phrasebook = + GreetingsSpa, + WordsIta + ** open + SyntaxSpa, + Prelude in { + +lin + PGreeting g = lin Text (ss g.s) ; + +} + diff --git a/examples/phrasebook/Sentences.gf b/examples/phrasebook/Sentences.gf index 18bf88144..c4f70dcaa 100644 --- a/examples/phrasebook/Sentences.gf +++ b/examples/phrasebook/Sentences.gf @@ -53,6 +53,8 @@ abstract Sentences = Numeral ** { PCountry : Country -> Phrase ; PDay : Day -> Phrase ; + PYes, PNo : Phrase ; + -- This is the way to build propositions about inanimate items. Is : Item -> Quality -> Proposition ; -- this pizza is good diff --git a/examples/phrasebook/SentencesBul.gf b/examples/phrasebook/SentencesBul.gf new file mode 100644 index 000000000..53ea87228 --- /dev/null +++ b/examples/phrasebook/SentencesBul.gf @@ -0,0 +1,4 @@ +concrete SentencesBul of Sentences = NumeralBul ** SentencesI with + (Syntax = SyntaxBul), + (Symbolic = SymbolicBul), + (Lexicon = LexiconBul) ; diff --git a/examples/phrasebook/SentencesCat.gf b/examples/phrasebook/SentencesCat.gf new file mode 100644 index 000000000..07d806ba1 --- /dev/null +++ b/examples/phrasebook/SentencesCat.gf @@ -0,0 +1,20 @@ +concrete SentencesCat of Sentences = NumeralCat ** SentencesI - [ + IFemale, YouFamFemale, YouPolFemale + ] + with + (Syntax = SyntaxCat), + (Symbolic = SymbolicCat), + (Lexicon = LexiconCat) ** + open SyntaxCat, ExtraCat, Prelude in { + + lin + IFemale = + {name = mkNP i8fem_Pron ; isPron = True ; poss = mkDet i_Pron} ; + YouFamFemale = + {name = mkNP youSg8fem_Pron ; isPron = True ; poss = mkDet youSg_Pron} ; + YouPolFemale = + {name = mkNP youPol8fem_Pron ; isPron = True ; poss = mkDet youPol_Pron}; + +} + + diff --git a/examples/phrasebook/SentencesFin.gf b/examples/phrasebook/SentencesFin.gf index 72eacca5f..bc911643c 100644 --- a/examples/phrasebook/SentencesFin.gf +++ b/examples/phrasebook/SentencesFin.gf @@ -1,4 +1,8 @@ -concrete SentencesFin of Sentences = NumeralFin ** SentencesI with +concrete SentencesFin of Sentences = NumeralFin ** SentencesI - [Is] with (Syntax = SyntaxFin), (Symbolic = SymbolicFin), - (Lexicon = LexiconFin) ; + (Lexicon = LexiconFin) ** open SyntaxFin, ExtraFin, (V = VerbFin) in { + + lin Is item prop = mkCl item (V.UseComp (CompPartAP prop)) ; -- pizza on herkullista + + } ; diff --git a/examples/phrasebook/SentencesGer.gf b/examples/phrasebook/SentencesGer.gf new file mode 100644 index 000000000..2bb7f51d4 --- /dev/null +++ b/examples/phrasebook/SentencesGer.gf @@ -0,0 +1,4 @@ +concrete SentencesGer of Sentences = NumeralGer ** SentencesI with + (Syntax = SyntaxGer), + (Symbolic = SymbolicGer), + (Lexicon = LexiconGer) ; diff --git a/examples/phrasebook/SentencesI.gf b/examples/phrasebook/SentencesI.gf index 1dbaf7861..584c5cfbd 100644 --- a/examples/phrasebook/SentencesI.gf +++ b/examples/phrasebook/SentencesI.gf @@ -45,6 +45,9 @@ incomplete concrete SentencesI of Sentences = Numeral ** PCitizenship x = mkPhrase (mkUtt (mkAP x)) ; PDay d = mkPhrase (mkUtt d.name) ; + PYes = mkPhrase yes_Utt ; + PNo = mkPhrase no_Utt ; + Is = mkCl ; SProp = mkS ; diff --git a/examples/phrasebook/SentencesSpa.gf b/examples/phrasebook/SentencesSpa.gf new file mode 100644 index 000000000..b9880e8fb --- /dev/null +++ b/examples/phrasebook/SentencesSpa.gf @@ -0,0 +1,20 @@ +concrete SentencesSpa of Sentences = NumeralSpa ** SentencesI - [ + IFemale, YouFamFemale, YouPolFemale + ] + with + (Syntax = SyntaxSpa), + (Symbolic = SymbolicSpa), + (Lexicon = LexiconSpa) ** + open SyntaxSpa, ExtraSpa, Prelude in { + + lin + IFemale = + {name = mkNP i8fem_Pron ; isPron = True ; poss = mkDet i_Pron} ; + YouFamFemale = + {name = mkNP youSg8fem_Pron ; isPron = True ; poss = mkDet youSg_Pron} ; + YouPolFemale = + {name = mkNP youPol8fem_Pron ; isPron = True ; poss = mkDet youPol_Pron}; + +} + + diff --git a/examples/phrasebook/WordsBul.gf b/examples/phrasebook/WordsBul.gf new file mode 100644 index 000000000..f580af610 --- /dev/null +++ b/examples/phrasebook/WordsBul.gf @@ -0,0 +1,134 @@ +-- (c) 2009 Aarne Ranta under LGPL + +concrete WordsBul of Words = SentencesBul ** + open SyntaxBul, ParadigmsBul, (L = LexiconBul), Prelude in { + + lin + +-- kinds of food +-- + Apple = mkCN L.apple_N ; + Beer = mkCN L.beer_N ; + Bread = mkCN L.bread_N ; +-- Cheese = mkCN (mkN "ost") ; +-- Coffee = mkCN (mkN "kaffe" neutrum) ; + Fish = mkCN L.fish_N ; + Milk = mkCN L.milk_N ; +-- Pizza = mkCN (mkN "pizza") ; + Salt = mkCN L.salt_N ; +-- Tea = mkCN (mkN "te" neutrum) ; + Water = mkCN L.water_N ; + Wine = mkCN L.wine_N ; + +-- properties + + Bad = L.bad_A ; +-- Boring = mkA "tråkig" ; + Cold = L.cold_A ; +-- Delicious = mkA "läcker" ; +-- Expensive = mkA "dyr" ; +-- Fresh = mkA "färsk" ; + Good = L.good_A ; + Warm = L.warm_A ; +-- +-- places +-- +-- Airport = mkPlace (mkN "flygplats" "flygplatser") "på" ; +-- Bar = mkPlace (mkN "bar" "barer") "i" ; +-- Church = mkPlace (mkN "kyrka") "i" ; +-- Hospital = mkPlace (mkN "sjukhus" "sjukhus") "på" ; +-- Museum = mkPlace (mkN "museum" "museet" "museer" "museerna") "på" ; +-- Restaurant = mkPlace (mkN "restaurang" "restauranger") "på" ; +-- Station = mkPlace (mkN "station" "stationer") "på" ; +-- Toilet = mkPlace (mkN "toalett" "toaletter") "på" ; +-- +-- currencies +-- +-- DanishCrown = mkCN (mkA "dansk") (mkN "krona") ; +-- Dollar = mkCN (mkN "dollar" "dollar") ; +-- Euro = mkCN (mkN "euro" "euro") ; +-- Lei = mkCN (mkN "lei" "lei") ; +-- SwedishCrown = mkCN (mkA "svensk") (mkN "krona") ; +-- +-- nationalities +-- +-- Belgian = mkA "belgisk" ; +-- Belgium = mkNP (mkPN "Belgien") ; +-- English = mkNat "engelsk" "England" ; +-- Finnish = mkNat "finsk" "Finland" ; +-- Flemish = mkNP (mkPN "flamländska") ; +-- French = mkNat "fransk" "Frankrike" ; +-- Italian = mkNat "italiensk" "Italien" ; +-- Romanian = mkNat "rumänsk" "Rumänien" ; +-- Swedish = mkNat "svensk" "Sverige" ; +-- +-- actions +-- +-- AHasName p name = mkCl (nameOf p) name ; +-- AHungry p = mkCl p.name (mkA "hungrig") ; +-- AIll p = mkCl p.name (mkA "sjuk") ; +-- AKnow p = mkCl p.name (mkV "veta" "vet" "vet" "visste" "vetat" "visst") ; +-- ALike p item = mkCl p.name (mkV2 (mkV "tycker") (mkPrep "om")) item ; +-- ALive p co = mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxBul.mkAdv in_Prep co)) ; +-- ALove p q = mkCl p.name (mkV2 (mkV "älska")) q.name ; +-- AScared p = mkCl p.name (mkA "rädd") ; +-- ASpeak p lang = mkCl p.name (mkV2 (mkV "tala")) lang ; +-- AThirsty p = mkCl p.name (mkA "törstig") ; +-- ATired p = mkCl p.name (mkA "trött") ; +-- AUnderstand p = mkCl p.name (mkV "förstå" "förstod" "förstått") ; +-- AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ; + AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; +-- +-- miscellaneous +-- +-- QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ; +-- +-- 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 "kosta"))) ; +-- ItCost item price = mkCl item (mkV2 (mkV "kosta")) price ; +-- +-- week days +-- +-- Monday = mkDay "måndag" ; +-- Tuesday = mkDay "tisdag" ; +-- Wednesday = mkDay "onsdag" ; +-- Thursday = mkDay "torsdag" ; +-- Friday = mkDay "fredag" ; +-- Saturday = mkDay "lördag" ; +-- Sunday = mkDay "söndag" ; +-- +-- oper +-- mkNat : Str -> Str -> {lang : NP ; prop : A ; country : NP} = \nat,co -> +-- {lang = mkNP (mkPN (nat + "a")) ; +-- 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 = SyntaxBul.mkAdv on_Prep day ; +-- habitual = SyntaxBul.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d))) +-- } ; +-- +-- mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> { +-- name = mkCN p ; +-- at = mkPrep i ; +-- to = to_Prep +-- } ; +-- +-- open_A = mkA "öppen" "öppet" ; +-- closed_A = mkA "stängd" "stängt" ; +-- +-- nameOf : {name : NP ; isPron : Bool ; poss : Det} -> NP = \p -> +-- case p.isPron of { +-- True => mkNP p.poss (mkN "namn" "namn") ; +-- _ => mkNP (mkNP the_Det (mkN "namn" "namn")) +-- (SyntaxBul.mkAdv possess_Prep p.name) +-- } ; +-- } +} diff --git a/examples/phrasebook/WordsCat.gf b/examples/phrasebook/WordsCat.gf new file mode 100644 index 000000000..d6f2f6e21 --- /dev/null +++ b/examples/phrasebook/WordsCat.gf @@ -0,0 +1,136 @@ +-- (c) 2009 Aarne Ranta and Olga Caprotti under LGPL + +concrete WordsCat of Words = SentencesCat ** open + SyntaxCat, + BeschCat, + (E = ExtraCat), + (L = LexiconCat), + (P = ParadigmsCat), + ParadigmsCat in { + + 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è") ; + Fish = mkCN L.fish_N ; + Milk = mkCN L.milk_N ; +-- Pizza = mkCN (mkN "pizza") ; + Salt = mkCN L.salt_N ; +-- Tea = mkCN (mkN "tè") ; + Water = mkCN L.water_N ; + Wine = mkCN L.wine_N ; + +-- properties + + Bad = L.bad_A ; +-- Boring = mkA "noioso" ; + Cold = L.cold_A ; +-- 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" ; +-- +-- +-- } +} diff --git a/examples/phrasebook/WordsEng.gf b/examples/phrasebook/WordsEng.gf index 8bc647264..1080f15fd 100644 --- a/examples/phrasebook/WordsEng.gf +++ b/examples/phrasebook/WordsEng.gf @@ -5,42 +5,38 @@ concrete WordsEng of Words = SentencesEng ** SyntaxEng, ParadigmsEng, (L = LexiconEng), (P = ParadigmsEng), IrregEng, Prelude in { lin + +-- kinds + Apple = mkCN L.apple_N ; Beer = mkCN L.beer_N ; Bread = mkCN L.bread_N ; - Milk = mkCN L.milk_N ; - Salt = mkCN L.salt_N ; - Water = mkCN L.water_N ; - Wine = mkCN L.wine_N ; - Coffee = mkCN (mkN "coffee") ; - Tea = mkCN (mkN "tea") ; - Pizza = mkCN (mkN "pizza") ; Cheese = mkCN (mkN "cheese") ; Chicken = mkCN (mkN "chicken") ; - Meat = mkCN (mkN "meat") ; + Coffee = mkCN (mkN "coffee") ; Fish = mkCN L.fish_N ; + Meat = mkCN (mkN "meat") ; + Milk = mkCN L.milk_N ; + Pizza = mkCN (mkN "pizza") ; + Salt = mkCN L.salt_N ; + Tea = mkCN (mkN "tea") ; + Water = mkCN L.water_N ; + Wine = mkCN L.wine_N ; - Fresh = mkA "fresh" ; - Warm = L.warm_A ; - Expensive = mkA "expensive" ; - Delicious = mkA "delicious" ; - Boring = mkA "boring" ; - Good = L.good_A ; - Bad = L.bad_A ; - Cold = L.cold_A ; - Cheap = mkA "cheap" ; - Suspect = mkA "suspect" ; +-- properties - Fresh = mkA "fresh" ; - Warm = L.warm_A ; - Expensive = mkA "expensive" ; - Delicious = mkA "delicious" ; - Boring = mkA "boring" ; - Good = L.good_A ; Bad = L.bad_A ; - Cold = L.cold_A ; + Boring = mkA "boring" ; Cheap = mkA "cheap" ; + Cold = L.cold_A ; + Delicious = mkA "delicious" ; + Expensive = mkA "expensive" ; + Fresh = mkA "fresh" ; + Good = L.good_A ; Suspect = mkA "suspect" ; + Warm = L.warm_A ; + +-- places Airport = mkPlace "airport" "at" ; Bar = mkPlace "bar" "in" ; @@ -58,12 +54,16 @@ concrete WordsEng of Words = SentencesEng ** Toilet = mkPlace "toilet" "in" ; University = mkPlace "university" "at" ; +-- currencies + DanishCrown = mkCN (mkA "Danish") (mkN "crown") ; Dollar = mkCN (mkN "dollar") ; Euro = mkCN (mkN "euro" "euros") ; -- to prevent euroes Lei = mkCN (mkN "leu" "lei") ; SwedishCrown = mkCN (mkA "Swedish") (mkN "crown") ; +-- nationalities + Belgian = mkA "Belgian" ; Belgium = mkNP (mkPN "Belgium") ; English = mkNat "English" "England" ; @@ -74,6 +74,8 @@ concrete WordsEng of Words = SentencesEng ** Romanian = mkNat "Romanian" "Romania" ; Swedish = mkNat "Swedish" "Sweden" ; +-- actions + AHasName p name = mkCl (nameOf p) name ; AHungry p = mkCl p.name (mkA "hungry") ; AIll p = mkCl p.name (mkA "ill") ; @@ -89,6 +91,8 @@ concrete WordsEng of Words = SentencesEng ** AWant p obj = mkCl p.name (mkV2 (mkV "want")) obj ; AWantGo p place = mkCl p.name want_VV (mkVP (mkVP IrregEng.go_V) place.to) ; +-- miscellaneous + QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ; PropOpen p = mkCl p.name open_Adv ; @@ -101,6 +105,8 @@ concrete WordsEng of Words = SentencesEng ** HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item IrregEng.cost_V)) ; ItCost item price = mkCl item (mkV2 IrregEng.cost_V) price ; +-- week days + Monday = mkDay "Monday" ; Tuesday = mkDay "Tuesday" ; Wednesday = mkDay "Wednesday" ; @@ -109,6 +115,8 @@ concrete WordsEng of Words = SentencesEng ** Saturday = mkDay "Saturday" ; Sunday = mkDay "Sunday" ; +-- auxiliaries + oper mkNat : Str -> Str -> {lang : NP ; prop : A ; country : NP} = \nat,co -> {lang = mkNP (mkPN nat) ; prop = mkA nat ; country = mkNP (mkPN co)} ; diff --git a/examples/phrasebook/WordsFin.gf b/examples/phrasebook/WordsFin.gf index f37b9b45b..056874443 100644 --- a/examples/phrasebook/WordsFin.gf +++ b/examples/phrasebook/WordsFin.gf @@ -2,80 +2,97 @@ concrete WordsFin of Words = SentencesFin ** open - SyntaxFin, ParadigmsFin, (L = LangFin), + SyntaxFin, ParadigmsFin, (L = LexiconFin), Prelude, (E = ExtraFin) in { + lin - Wine = mkCN (mkN "viini") ; - Beer = mkCN (mkN "olut" "oluita") ; - Water = mkCN (mkN "vesi" "veden" "vesiä") ; - Coffee = mkCN (mkN "kahvi") ; - Tea = mkCN (mkN "tee") ; - Pizza = mkCN (mkN "pizza") ; +-- kinds + + Apple = mkCN L.apple_N ; + Beer = mkCN L.beer_N ; + Bread = mkCN L.bread_N ; Cheese = mkCN (mkN "juusto") ; - Fish = mkCN (mkN "kala") ; + Chicken = mkCN (mkN "kana") ; + Coffee = mkCN (mkN "kahvi") ; + Fish = mkCN L.fish_N ; + Meat = mkCN (mkN "liha") ; + Milk = mkCN L.milk_N ; + Pizza = mkCN (mkN "pizza") ; + Salt = mkCN L.salt_N ; + Tea = mkCN (mkN "tee") ; + Water = mkCN L.water_N ; + Wine = mkCN L.wine_N ; - Fresh = mkA "tuore" ; - Warm = mkA - (mkN "lämmin" "lämpimän" "lämmintä" "lämpimänä" "lämpimään" - "lämpiminä" "lämpimiä" "lämpimien" "lämpimissä" "lämpimiin" - ) - "lämpimämpi" "lämpimin" ; - Expensive = mkA "kallis" ; - Delicious = mkA "herkullinen" ; +-- qualities + + Bad = L.bad_A ; Boring = mkA "tylsä" ; - Good = mkA (mkN "hyvä") "parempi" "paras" ; ---- comparisons? + Cheap = mkA "halpa" ; + Cold = L.cold_A ; + Delicious = mkA "herkullinen" ; + Expensive = mkA "kallis" ; + Fresh = mkA "tuore" ; + Good = L.good_A ; + Suspect = mkA "epäilyttävä" ; + Warm = L.warm_A ; - Restaurant = mkPlace (mkN "ravintola") False ; - Bar = mkPlace (mkN "baari") False ; - Toilet = mkPlace (mkN "vessa") False ; - Museum = mkPlace (mkN "museo") False ; - Airport = mkPlace (mkN "lento" (mkN "kenttä")) True ; - Station = mkPlace (mkN "asema") True ; - Hospital = mkPlace (mkN "sairaala") False ; - Church = mkPlace (mkN "kirkko") False ; +-- places + + Restaurant = mkPlace (mkN "ravintola") ssa ; + Bar = mkPlace (mkN "baari") ssa ; + Toilet = mkPlace (mkN "vessa") ssa ; + Museum = mkPlace (mkN "museo") ssa ; + Airport = mkPlace (mkN "lento" (mkN "kenttä")) lla ; + Station = mkPlace (mkN "asema") lla ; + Hospital = mkPlace (mkN "sairaala") ssa ; + Church = mkPlace (mkN "kirkko") ssa ; + Shop = mkPlace (mkN "kauppa") ssa ; + Park = mkPlace (mkN "puisto") ssa ; + Hotel = mkPlace (mkN "hotelli") ssa ; + University = mkPlace (mkN "yliopisto") lla ; + School = mkPlace (mkN "koulu") lla ; + +-- currencies - Euro = mkCN (mkN "euro") ; Dollar = mkCN (mkN "dollari") ; + Euro = mkCN (mkN "euro") ; Lei = mkCN (mkN "lei") ; - ---- it would be nice to have a capitalization Predef function +-- nationalities + + Belgian = mkA "belgialainen" ; + Belgium = mkNP (mkPN "Belgia") ; English = mkNat (mkPN "englanti") (mkPN "Englanti") (mkA "englantilainen") ; Finnish = mkNat (mkPN (mkN "suomi" "suomia")) (mkPN (mkN "Suomi" "Suomia")) (mkA "suomalainen") ; + Flemish = mkNP (mkPN "flaami") ; French = mkNat (mkPN "ranska") (mkPN "Ranska") (mkA "ranskalainen") ; Italian = mkNat (mkPN "italia") (mkPN "Italia") (mkA "italialainen") ; Romanian = mkNat (mkPN "romania") (mkPN "Romania") (mkA "romanialainen") ; Swedish = mkNat (mkPN "ruotsi") (mkPN "Ruotsi") (mkA "ruotsalainen") ; - Belgian = mkA "belgialainen" ; - Flemish = mkNP (mkPN "flaami") ; - Belgium = mkNP (mkPN "Belgia") ; + ---- it would be nice to have a capitalization Predef function - Monday = let d = "maanantai" in mkDay (mkPN d) (d + "sin") ; - Tuesday = let d = "tiistai" in mkDay (mkPN d) (d + "sin") ; - Wednesday = let d = "keskiviikko" in mkDay (mkPN d) (d + "isin") ; - Thursday = let d = "torstai" in mkDay (mkPN d) (d + "sin") ; - Friday = let d = "perjantai" in mkDay (mkPN d) (d + "sin") ; - Saturday = let d = "lauantai" in mkDay (mkPN d) (d + "sin") ; - Sunday = let d = "sunnuntai" in mkDay (mkPN d) (d + "sin") ; +-- actions - AWant p obj = mkCl p.name (mkV2 "haluta") obj ; - ALike p item = mkCl p.name L.like_V2 item ; - ASpeak p lang = mkCl p.name (mkV2 (mkV "puhua") partitive) lang ; - ALove p q = mkCl p.name (mkV2 (mkV "rakastaa") partitive) q.name ; + AHasName p name = mkCl (nameOf p) name ; AHungry p = mkCl p.name have_V2 (mkNP (mkN "nälkä")) ; + AIll p = mkCl p.name (mkA "sairas") ; + AKnow p = mkCl p.name (mkV "tietää") ; + ALike p item = mkCl p.name L.like_V2 item ; + ALive p co = mkCl p.name (mkVP (mkVP (mkV "asua")) (SyntaxFin.mkAdv in_Prep co)) ; + ALove p q = mkCl p.name (mkV2 (mkV "rakastaa") partitive) q.name ; + AScared p = mkCl p.name (caseV partitive (mkV "pelottaa")) ; + ASpeak p lang = mkCl p.name (mkV2 (mkV "puhua") partitive) lang ; AThirsty p = mkCl p.name have_V2 (mkNP (mkN "jano")) ; ATired p = mkCl p.name (caseV partitive (mkV "väsyttää")) ; - AScared p = mkCl p.name (caseV partitive (mkV "pelottaa")) ; - AIll p = mkCl p.name (mkA "sairas") ; AUnderstand p = mkCl p.name (mkV "ymmärtää") ; - AKnow p = mkCl p.name (mkV "tietää") ; + AWant p obj = mkCl p.name (mkV2 "haluta") obj ; AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; - AHasName p name = mkCl (nameOf p) name ; - ALive p co = - mkCl p.name (mkVP (mkVP (mkV "asua")) (SyntaxFin.mkAdv in_Prep co)) ; + +-- miscellaneous QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ; @@ -89,6 +106,16 @@ concrete WordsFin of Words = SentencesFin ** HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "maksaa"))) ; ItCost item price = mkCl item (mkV2 (mkV "maksaa")) price ; +-- week days + + Monday = let d = "maanantai" in mkDay (mkPN d) (d + "sin") ; + Tuesday = let d = "tiistai" in mkDay (mkPN d) (d + "sin") ; + Wednesday = let d = "keskiviikko" in mkDay (mkPN d) (d + "isin") ; + Thursday = let d = "torstai" in mkDay (mkPN d) (d + "sin") ; + Friday = let d = "perjantai" in mkDay (mkPN d) (d + "sin") ; + Saturday = let d = "lauantai" in mkDay (mkPN d) (d + "sin") ; + Sunday = let d = "sunnuntai" in mkDay (mkPN d) (d + "sin") ; + oper mkNat : PN -> PN -> A -> {lang : NP ; prop : A ; country : NP} = \nat,co,pro -> @@ -110,6 +137,8 @@ concrete WordsFin of Words = SentencesFin ** at = casePrep (if_then_else Case e adessive inessive) ; -- True: external to = casePrep (if_then_else Case e allative illative) ; } ; + ssa = False ; + lla = True ; open_Adv = ParadigmsFin.mkAdv "avoinna" ; closed_Adv = ParadigmsFin.mkAdv "kiinni" ; diff --git a/examples/phrasebook/WordsFre.gf b/examples/phrasebook/WordsFre.gf index 6f0e7f152..0a93e611a 100644 --- a/examples/phrasebook/WordsFre.gf +++ b/examples/phrasebook/WordsFre.gf @@ -4,59 +4,72 @@ concrete WordsFre of Words = SentencesFre ** open SyntaxFre, IrregFre, (E = ExtraFre), + (L = LexiconFre), ParadigmsFre, (P = ParadigmsFre) in { lin -Wine = mkCN (mkN "vin") ; - Beer = mkCN (mkN "bière") ; - Water = mkCN (mkN "eau" feminine) ; +-- kinds + + Apple = mkCN L.apple_N ; + Beer = mkCN L.beer_N ; + Bread = mkCN L.bread_N ; + Cheese = mkCN (mkN "fromage" masculine) ; + Chicken = mkCN (mkN "poulet") ; Coffee = mkCN (mkN "café") ; + Fish = mkCN L.fish_N ; + Meat = mkCN (mkN "viande") ; + Milk = mkCN L.milk_N ; + Pizza = mkCN (mkN "pizza" feminine) ; + Salt = mkCN L.salt_N ; Tea = mkCN (mkN "thé") ; + Water = mkCN L.water_N ; + Wine = mkCN L.wine_N ; -Cheese = mkCN (mkN "fromage" masculine) ; -Fish = mkCN (mkN "poisson" masculine) ; -Pizza = mkCN (mkN "pizza" feminine) ; +-- properties -Fresh = mkA "frais" "fraîche" "frais" "fraîchement" ; -Warm = mkA "chaud" ; -Expensive = mkA "cher" ; -Delicious = mkA "délicieux" ; -Boring = mkA "ennuyeux" ; -Good = prefixA (mkA "bon" "bonne" "bons" "bien") ; + Bad = L.bad_A ; + Boring = mkA "ennuyeux" ; + Cold = L.cold_A ; + Delicious = mkA "délicieux" ; + Expensive = mkA "cher" ; + Fresh = mkA "frais" "fraîche" "frais" "fraîchement" ; + Good = L.good_A ; + Warm = L.warm_A ; + +-- places - Restaurant = mkPlace (mkN "restaurant") in_Prep ; - Bar = mkPlace (mkN "bar") in_Prep ; - Toilet = mkPlace (mkN "toilette") in_Prep ; - Museum = mkPlace (mkN "musée" masculine) in_Prep ; Airport = mkPlace (mkN "aéroport") dative ; - Station = mkPlace (mkN "gare") dative ; - Hospital = mkPlace (mkN "hôpital") dative ; + Bar = mkPlace (mkN "bar") in_Prep ; Church = mkPlace (mkN "église") in_Prep ; + Hospital = mkPlace (mkN "hôpital") dative ; + Museum = mkPlace (mkN "musée" masculine) in_Prep ; + Restaurant = mkPlace (mkN "restaurant") in_Prep ; + Station = mkPlace (mkN "gare") dative ; + Toilet = mkPlace (mkN "toilette") in_Prep ; - Euro = mkCN (mkN "euro") ; +-- currencies + + DanishCrown = mkCN (mkA "danois") (mkN "couronne") ; Dollar = mkCN (mkN "dollar") ; + Euro = mkCN (mkN "euro") ; Lei = mkCN (mkN "leu" "lei" masculine) ; + SwedishCrown = mkCN (mkA "suédois") (mkN "couronne") ; +-- nationalities + + Belgian = mkA "belge" ; + Belgium = mkNP (mkPN "Belgique") ; English = mkNat "anglais" "Angleterre" ; Finnish = mkNat "finlandais" "Finlande" ; + Flemish = mkNP (mkPN "flamand") ; French = mkNat "français" "France" ; Italian = mkNat "italien" "Italie" ; Romanian = mkNat "roumain" "Roumanie" ; Swedish = mkNat "suédois" "Suède" ; - Belgian = mkA "belge" ; - Flemish = mkNP (mkPN "flamand") ; - Belgium = mkNP (mkPN "Belgique") ; - - Monday = mkDay "lundi" ; - Tuesday = mkDay "mardi" ; - Wednesday = mkDay "mercredi" ; - Thursday = mkDay "jeudi" ; - Friday = mkDay "vendredi" ; - Saturday = mkDay "samedi" ; - Sunday = mkDay "dimanche" ; +-- actions AWant p obj = mkCl p.name vouloir_V2 obj ; ALike p item = mkCl item plaire_V2 p.name ; @@ -69,12 +82,11 @@ Good = prefixA (mkA "bon" "bonne" "bons" "bien") ; AIll p = mkCl p.name (mkA "malade") ; AUnderstand p = mkCl p.name (mkV IrregFre.comprendre_V2) ; AKnow p = mkCl p.name (mkV IrregFre.savoir_V2) ; - AWantGo p place = - mkCl p.name want_VV (mkVP (mkVP IrregFre.aller_V) place.to) ; + AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; AHasName p name = mkCl p.name (mkV2 (reflV (mkV "appeler"))) name ; - ALive p co = - mkCl p.name (mkVP (mkVP (mkV "habiter")) - (SyntaxFre.mkAdv (mkPrep "en") co)) ; + ALive p co = mkCl p.name (mkVP (mkVP (mkV "habiter")) (SyntaxFre.mkAdv (mkPrep "en") co)) ; + +-- miscellaneous QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (reflV (mkV "appeler")))) ; @@ -88,6 +100,17 @@ Good = prefixA (mkA "bon" "bonne" "bons" "bien") ; HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "coûter"))) ; ItCost item price = mkCl item (mkV2 (mkV "coûter")) price ; +-- week days + + Monday = mkDay "lundi" ; + Tuesday = mkDay "mardi" ; + Wednesday = mkDay "mercredi" ; + Thursday = mkDay "jeudi" ; + Friday = mkDay "vendredi" ; + Saturday = mkDay "samedi" ; + Sunday = mkDay "dimanche" ; + + oper mkNat : Str -> Str -> {lang : NP ; prop : A ; country : NP} = \nat,co -> {lang = mkNP (mkPN nat) ; prop = mkA nat ; country = mkNP (mkPN co)} ; diff --git a/examples/phrasebook/WordsGer.gf b/examples/phrasebook/WordsGer.gf new file mode 100644 index 000000000..5c49a63e7 --- /dev/null +++ b/examples/phrasebook/WordsGer.gf @@ -0,0 +1,134 @@ +-- (c) 2009 Aarne Ranta under LGPL + +concrete WordsGer of Words = SentencesGer ** + open SyntaxGer, ParadigmsGer, IrregGer, (L = LexiconGer), Prelude in { + + lin + +-- kinds of food + + Apple = mkCN L.apple_N ; + Beer = mkCN L.beer_N ; + Bread = mkCN L.bread_N ; +-- Cheese = mkCN (mkN "ost") ; +-- Coffee = mkCN (mkN "kaffe" neutrum) ; + Fish = mkCN L.fish_N ; + Milk = mkCN L.milk_N ; +-- Pizza = mkCN (mkN "pizza") ; + Salt = mkCN L.salt_N ; +-- Tea = mkCN (mkN "te" neutrum) ; + Water = mkCN L.water_N ; + Wine = mkCN L.wine_N ; + +-- properties + + Bad = L.bad_A ; +-- Boring = mkA "tråkig" ; + Cold = L.cold_A ; +-- Delicious = mkA "läcker" ; +-- Expensive = mkA "dyr" ; +-- Fresh = mkA "färsk" ; + Good = L.good_A ; + Warm = L.warm_A ; +-- +-- -- places +-- +-- Airport = mkPlace (mkN "flygplats" "flygplatser") "på" ; +-- Bar = mkPlace (mkN "bar" "barer") "i" ; +-- Church = mkPlace (mkN "kyrka") "i" ; +-- Hospital = mkPlace (mkN "sjukhus" "sjukhus") "på" ; +-- Museum = mkPlace (mkN "museum" "museet" "museer" "museerna") "på" ; +-- Restaurant = mkPlace (mkN "restaurang" "restauranger") "på" ; +-- Station = mkPlace (mkN "station" "stationer") "på" ; +-- Toilet = mkPlace (mkN "toalett" "toaletter") "på" ; +-- +-- -- currencies +-- +-- DanishCrown = mkCN (mkA "dansk") (mkN "krona") ; +-- Dollar = mkCN (mkN "dollar" "dollar") ; +-- Euro = mkCN (mkN "euro" "euro") ; +-- Lei = mkCN (mkN "lei" "lei") ; +-- SwedishCrown = mkCN (mkA "svensk") (mkN "krona") ; +-- +-- -- nationalities +-- +-- Belgian = mkA "belgisk" ; +-- Belgium = mkNP (mkPN "Belgien") ; +-- English = mkNat "engelsk" "England" ; +-- Finnish = mkNat "finsk" "Finland" ; +-- Flemish = mkNP (mkPN "flamländska") ; +-- French = mkNat "fransk" "Frankrike" ; +-- Italian = mkNat "italiensk" "Italien" ; +-- Romanian = mkNat "rumänsk" "Rumänien" ; +-- Swedish = mkNat "svensk" "Sverige" ; +-- +-- -- actions +-- +-- AHasName p name = mkCl (nameOf p) name ; +-- AHungry p = mkCl p.name (mkA "hungrig") ; +-- AIll p = mkCl p.name (mkA "sjuk") ; +-- AKnow p = mkCl p.name (mkV "veta" "vet" "vet" "visste" "vetat" "visst") ; +-- ALike p item = mkCl p.name (mkV2 (mkV "tycker") (mkPrep "om")) item ; +-- ALive p co = mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxGer.mkAdv in_Prep co)) ; +-- ALove p q = mkCl p.name (mkV2 (mkV "älska")) q.name ; +-- AScared p = mkCl p.name (mkA "rädd") ; +-- ASpeak p lang = mkCl p.name (mkV2 (mkV "tala")) lang ; +-- AThirsty p = mkCl p.name (mkA "törstig") ; +-- ATired p = mkCl p.name (mkA "trött") ; +-- AUnderstand p = mkCl p.name (mkV "förstå" "förstod" "förstått") ; + AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ; + AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; +-- +-- -- miscellaneous +-- +-- QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ; +-- +-- 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 "kosta"))) ; +-- ItCost item price = mkCl item (mkV2 (mkV "kosta")) price ; +-- +-- -- week days +-- +-- Monday = mkDay "måndag" ; +-- Tuesday = mkDay "tisdag" ; +-- Wednesday = mkDay "onsdag" ; +-- Thursday = mkDay "torsdag" ; +-- Friday = mkDay "fredag" ; +-- Saturday = mkDay "lördag" ; +-- Sunday = mkDay "söndag" ; +-- +-- oper +-- mkNat : Str -> Str -> {lang : NP ; prop : A ; country : NP} = \nat,co -> +-- {lang = mkNP (mkPN (nat + "a")) ; +-- 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 = SyntaxGer.mkAdv on_Prep day ; +-- habitual = SyntaxGer.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d))) +-- } ; +-- +-- mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> { +-- name = mkCN p ; +-- at = mkPrep i ; +-- to = to_Prep +-- } ; +-- +-- open_A = mkA "öppen" "öppet" ; +-- closed_A = mkA "stängd" "stängt" ; +-- +-- nameOf : {name : NP ; isPron : Bool ; poss : Det} -> NP = \p -> +-- case p.isPron of { +-- True => mkNP p.poss (mkN "namn" "namn") ; +-- _ => mkNP (mkNP the_Det (mkN "namn" "namn")) +-- (SyntaxGer.mkAdv possess_Prep p.name) +-- } ; +-- } +} diff --git a/examples/phrasebook/WordsIta.gf b/examples/phrasebook/WordsIta.gf index a2fb1c882..8ede69ac6 100644 --- a/examples/phrasebook/WordsIta.gf +++ b/examples/phrasebook/WordsIta.gf @@ -1,4 +1,4 @@ --- (c) 2009 Ramona Enache and Aarne Ranta under LGPL +-- (c) 2009 Aarne Ranta and Olga Caprotti under LGPL concrete WordsIta of Words = SentencesIta ** open SyntaxIta, @@ -10,72 +10,82 @@ concrete WordsIta of Words = SentencesIta ** open lin -Wine = mkCN (mkN "vino") ; - Beer = mkCN (mkN "birra") ; - Water = mkCN (mkN "acqua") ; +-- kinds + + Apple = mkCN L.apple_N ; + Beer = mkCN L.beer_N ; + Bread = mkCN L.bread_N ; + Cheese = mkCN (mkN "formaggio") ; Coffee = mkCN (mkN "caffè") ; - Tea = mkCN (mkN "tè") ; + Fish = mkCN L.fish_N ; + Milk = mkCN L.milk_N ; + Pizza = mkCN (mkN "pizza") ; + Salt = mkCN L.salt_N ; + Tea = mkCN (mkN "tè") ; + Water = mkCN L.water_N ; + Wine = mkCN L.wine_N ; -Cheese = mkCN (mkN "formaggio") ; -Fish = mkCN (mkN "pesce") ; -Pizza = mkCN (mkN "pizza") ; +-- properties -Fresh = mkA "fresco" ; -Warm = mkA "caldo" ; -Expensive = mkA "caro" ; -Delicious = mkA "delizioso" ; -Boring = mkA "noioso" ; -Good = prefixA (mkA "buono" "buona" "buoni" "buone" "bene") ; + Bad = L.bad_A ; + Boring = mkA "noioso" ; + Cold = L.cold_A ; + Delicious = mkA "delizioso" ; + Expensive = mkA "caro" ; + Fresh = mkA "fresco" ; + Good = L.good_A ; + Warm = L.warm_A ; + +-- places - Restaurant = mkPlace (mkN "ristorante") P.in_Prep ; - Bar = mkPlace (mkN "bar") P.in_Prep ; - Toilet = mkPlace (mkN "bagno") P.in_Prep ; - Museum = mkPlace (mkN "museo") P.in_Prep ; Airport = mkPlace (mkN "aeroporto") dative ; - Station = mkPlace (mkN "stazione" feminine) dative ; - Hospital = mkPlace (mkN "ospedale") P.in_Prep ; + 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 ; - Euro = mkCN (mkN "euro" "euro" masculine) ; +-- 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" ; - Belgian = mkA "belgo" ; - Flemish = mkNP (mkPN "fiammingo") ; - Belgium = mkNP (mkPN "Belgio") ; +-- actions - Monday = mkDay "lunedì" ; - Tuesday = mkDay "martedì" ; - Wednesday = mkDay "mercoledì" ; - Thursday = mkDay "giovedì" ; - Friday = mkDay "venerdì" ; - Saturday = mkDay "sabato" ; - Sunday = mkDay "domenica" ; - - AWant p obj = mkCl p.name (mkV2 (mkV (volere_96 "volere"))) obj ; - ALike p item = mkCl item (mkV2 (mkV (piacere_64 "piacere")) dative) p.name ; - ASpeak p lang = mkCl p.name (mkV2 (mkV "parlare")) lang ; - ALove p q = mkCl p.name (mkV2 (mkV "amare")) q.name ; + 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")) (SyntaxIta.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") ; - AScared p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "paura" feminine))) ; - AIll p = mkCl p.name (mkA "malato") ; AUnderstand p = mkCl p.name (mkV "capire") ; - AKnow p = mkCl p.name (mkV (sapere_78 "sapere")) ; - AWantGo p place = - mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; - AHasName p name = mkCl p.name (mkV2 (reflV (mkV "chiamare"))) name ; - ALive p co = - mkCl p.name (mkVP (mkVP (mkV "abitare")) - (SyntaxIta.mkAdv P.in_Prep co)) ; + 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")))) ; @@ -89,6 +99,18 @@ Good = prefixA (mkA "buono" "buona" "buoni" "buone" "bene") ; 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)} ; diff --git a/examples/phrasebook/WordsRon.gf b/examples/phrasebook/WordsRon.gf index 997848125..265b652b8 100644 --- a/examples/phrasebook/WordsRon.gf +++ b/examples/phrasebook/WordsRon.gf @@ -3,37 +3,51 @@ concrete WordsRon of Words = SentencesRon ** open SyntaxRon, ParadigmsRon, - BeschRon in -{ -flags coding=utf8 ; + (L = LexiconRon), + BeschRon in { -lin + flags coding=utf8 ; -Wine = mkCN (mkN "vin" "vinuri" neuter) ; - Beer = mkCN (mkN "bere") ; - Water = mkCN (mkN "apă") ; ----- Coffee = mkCN (mkN "coffee") ; ----- Tea = mkCN (mkN "tea") ; + lin -Cheese = mkCN (mkN "brânză" "brânzeturi" feminine) ; -Fish = mkCN (mkN "peÅŸte" "peÅŸti" masculine) ; -Pizza = mkCN (mkN "pizza" "pizze" feminine) ; +-- kinds -Fresh = mkA "proaspăt" "proaspătă" "proaspeÅ£i" "proaspete" ; -Warm = mkA "cald" "caldă" "calzi" "calde" ; -Expensive = mkA "scump" "scumpă" "scumpi" "scumpe" ; -Delicious = mkA "delicios" "delcioasă" "delicioÅŸi" "delicioase" ; -Boring = mkA "plictisitor" "plictisitoare" "plictisitori" "plictisitoare" ; -Good = mkA "bun" "bună" "buni" "bune" "bine" ; + Apple = mkCN L.apple_N ; + Beer = mkCN L.beer_N ; + Bread = mkCN L.bread_N ; + Cheese = mkCN (mkN "brânză" "brânzeturi" feminine) ; + Fish = mkCN L.fish_N ; + Milk = mkCN L.milk_N ; + Pizza = mkCN (mkN "pizza" "pizze" feminine) ; + Salt = mkCN L.salt_N ; + Water = mkCN L.water_N ; + Wine = mkCN L.wine_N ; + +-- qualities + + Bad = L.bad_A ; + Boring = mkA "plictisitor" "plictisitoare" "plictisitori" "plictisitoare" ; + Cold = L.cold_A ; + Delicious = mkA "delicios" "delcioasă" "delicioÅŸi" "delicioase" ; + Expensive = mkA "scump" "scumpă" "scumpi" "scumpe" ; + Fresh = mkA "proaspăt" "proaspătă" "proaspeÅ£i" "proaspete" ; + Good = L.good_A ; + Warm = L.warm_A ; + +-- places - Restaurant = mkPlace (mkN "restaurant") in_Prep ; Bar = mkPlace (mkNR "bar") in_Prep ; + Restaurant = mkPlace (mkN "restaurant") in_Prep ; Toilet = mkPlace (mkN "toaleta") in_Prep ; - Euro = mkCN (mkN "euro" "euro") ; +-- currencies + Dollar = mkCN (mkN "dolar" masculine) ; + Euro = mkCN (mkN "euro" "euro") ; Lei = mkCN (mkN "leu" "lei") ; +-- nationalities + -- English = SyntaxRon.mkNP (mkPN "engleză") ; ---- ? -- Finnish = mkNP (mkPN "finnois") ; -- French = mkNP (mkPN "français") ; @@ -41,27 +55,25 @@ Good = mkA "bun" "bună" "buni" "bune" "bine" ; -- Romanian = SyntaxRon.mkNP (mkPN "română") ; ---- ? -- Swedish = mkNP (mkPN "suédois") ; +-- actions + AWant p obj = mkCl p.name (dirV2 (lin V want_VV)) obj ; ALike p item = mkCl p.name (dirV2 (v_besch71 "plăcea")) item ; ASpeak p lang = mkCl p.name (dirV2 (mkV "vorbi")) lang ; ALove p q = mkCl p.name (dirV2 (mkV "iubi")) q.name ; AUnderstand p = mkCl p.name (v_besch83 "înÅ£elege") ; - -- AHungry p = mkCl p have_V2 (SyntaxRon.mkNP a_Det (mkN "foame")) ; -- AThirsty p = mkCl p (E.ComplCN have_V2 (mkCN (mkN "sete" feminine))) ; -- ATired p = mkCl p (mkA "stanco") ; -- AScared p = mkCl p (E.ComplCN have_V2 (mkCN (mkN "paura" feminine))) ; -{- - GImHungry = ss "mi-e foame" ; - GImThirsty = ss "mi-e sete" ; - GImTired = ss "mi-e somn" ; - GImScared = ss "mi-e frică" ; --} +-- miscellaneous HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (v_besch18 "costa"))) ; ItCost item price = mkCl item (dirV2 (v_besch18 "costa")) price ; +-- auxiliaries + oper mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep} = \p,i -> { name = mkCN p ; diff --git a/examples/phrasebook/WordsSpa.gf b/examples/phrasebook/WordsSpa.gf new file mode 100644 index 000000000..94f304441 --- /dev/null +++ b/examples/phrasebook/WordsSpa.gf @@ -0,0 +1,136 @@ +-- (c) 2009 Aarne Ranta and Olga Caprotti under LGPL + +concrete WordsSpa of Words = SentencesSpa ** open + SyntaxSpa, + BeschSpa, + (E = ExtraSpa), + (L = LexiconSpa), + (P = ParadigmsSpa), + ParadigmsSpa in { + + 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è") ; + Fish = mkCN L.fish_N ; + Milk = mkCN L.milk_N ; +-- Pizza = mkCN (mkN "pizza") ; + Salt = mkCN L.salt_N ; +-- Tea = mkCN (mkN "tè") ; + Water = mkCN L.water_N ; + Wine = mkCN L.wine_N ; +-- +-- -- properties +-- + Bad = L.bad_A ; +-- Boring = mkA "noioso" ; + Cold = L.cold_A ; +-- 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")) (SyntaxSpa.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, -- = ParadigmsSpa.mkAdv d ; +-- habitual = ParadigmsSpa.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" ; +-- +-- +-- } +} diff --git a/examples/phrasebook/WordsSwe.gf b/examples/phrasebook/WordsSwe.gf index 02672f541..4db68c341 100644 --- a/examples/phrasebook/WordsSwe.gf +++ b/examples/phrasebook/WordsSwe.gf @@ -1,72 +1,85 @@ -- (c) 2009 Aarne Ranta under LGPL concrete WordsSwe of Words = SentencesSwe ** - open SyntaxSwe, ParadigmsSwe, IrregSwe, Prelude in { + open SyntaxSwe, ParadigmsSwe, IrregSwe, (L = LexiconSwe), Prelude in { + lin - Wine = mkCN (mkN "vin" "vinet" "viner" "vinerna") ; - Beer = mkCN (mkN "öl" neutrum) ; - Water = mkCN (mkN "vatten" "vattnet" "vatten" "vattnen") ; - Coffee = mkCN (mkN "kaffe" neutrum) ; - Tea = mkCN (mkN "te" neutrum) ; - Pizza = mkCN (mkN "pizza") ; +-- kinds of food + + Apple = mkCN L.apple_N ; + Beer = mkCN L.beer_N ; + Bread = mkCN L.bread_N ; Cheese = mkCN (mkN "ost") ; - Fish = mkCN (mkN "fisk") ; - Fresh = mkA "färsk" ; - Warm = mkA "varm" ; - Expensive = mkA "dyr" ; - Delicious = mkA "läcker" ; + Coffee = mkCN (mkN "kaffe" neutrum) ; + Fish = mkCN L.fish_N ; + Milk = mkCN L.milk_N ; + Pizza = mkCN (mkN "pizza") ; + Salt = mkCN L.salt_N ; + Tea = mkCN (mkN "te" neutrum) ; + Water = mkCN L.water_N ; + Wine = mkCN L.wine_N ; + +-- properties + + Bad = L.bad_A ; Boring = mkA "tråkig" ; - Good = mkA "god" "gott" "goda" "bättre" "bäst" ; + Cold = L.cold_A ; + Delicious = mkA "läcker" ; + Expensive = mkA "dyr" ; + Fresh = mkA "färsk" ; + Good = L.good_A ; + Warm = L.warm_A ; + +-- places - Restaurant = mkPlace (mkN "restaurang" "restauranger") "på" ; - Bar = mkPlace (mkN "bar" "barer") "i" ; - Toilet = mkPlace (mkN "toalett" "toaletter") "på" ; - Museum = mkPlace (mkN "museum" "museet" "museer" "museerna") "på" ; Airport = mkPlace (mkN "flygplats" "flygplatser") "på" ; - Station = mkPlace (mkN "station" "stationer") "på" ; - Hospital = mkPlace (mkN "sjukhus" "sjukhus") "på" ; + Bar = mkPlace (mkN "bar" "barer") "i" ; Church = mkPlace (mkN "kyrka") "i" ; + Hospital = mkPlace (mkN "sjukhus" "sjukhus") "på" ; + Museum = mkPlace (mkN "museum" "museet" "museer" "museerna") "på" ; + Restaurant = mkPlace (mkN "restaurang" "restauranger") "på" ; + Station = mkPlace (mkN "station" "stationer") "på" ; + Toilet = mkPlace (mkN "toalett" "toaletter") "på" ; - Euro = mkCN (mkN "euro" "euro") ; +-- currencies + + DanishCrown = mkCN (mkA "dansk") (mkN "krona") ; Dollar = mkCN (mkN "dollar" "dollar") ; + Euro = mkCN (mkN "euro" "euro") ; Lei = mkCN (mkN "lei" "lei") ; + SwedishCrown = mkCN (mkA "svensk") (mkN "krona") ; +-- nationalities + + Belgian = mkA "belgisk" ; + Belgium = mkNP (mkPN "Belgien") ; English = mkNat "engelsk" "England" ; Finnish = mkNat "finsk" "Finland" ; + Flemish = mkNP (mkPN "flamländska") ; French = mkNat "fransk" "Frankrike" ; Italian = mkNat "italiensk" "Italien" ; Romanian = mkNat "rumänsk" "Rumänien" ; Swedish = mkNat "svensk" "Sverige" ; - Belgian = mkA "belgisk" ; - Flemish = mkNP (mkPN "flamländska") ; - Belgium = mkNP (mkPN "Belgien") ; +-- actions - Monday = mkDay "måndag" ; - Tuesday = mkDay "tisdag" ; - Wednesday = mkDay "onsdag" ; - Thursday = mkDay "torsdag" ; - Friday = mkDay "fredag" ; - Saturday = mkDay "lördag" ; - Sunday = mkDay "söndag" ; - - AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ; - ALike p item = mkCl p.name (mkV2 (mkV "tycker") (mkPrep "om")) item ; - ASpeak p lang = mkCl p.name (mkV2 (mkV "tala")) lang ; - ALove p q = mkCl p.name (mkV2 (mkV "älska")) q.name ; + AHasName p name = mkCl (nameOf p) name ; AHungry p = mkCl p.name (mkA "hungrig") ; + AIll p = mkCl p.name (mkA "sjuk") ; + AKnow p = mkCl p.name (mkV "veta" "vet" "vet" "visste" "vetat" "visst") ; + ALike p item = mkCl p.name (mkV2 (mkV "tycker") (mkPrep "om")) item ; + ALive p co = mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxSwe.mkAdv in_Prep co)) ; + ALove p q = mkCl p.name (mkV2 (mkV "älska")) q.name ; + AScared p = mkCl p.name (mkA "rädd") ; + ASpeak p lang = mkCl p.name (mkV2 (mkV "tala")) lang ; AThirsty p = mkCl p.name (mkA "törstig") ; ATired p = mkCl p.name (mkA "trött") ; - AScared p = mkCl p.name (mkA "rädd") ; - AIll p = mkCl p.name (mkA "sjuk") ; AUnderstand p = mkCl p.name (mkV "förstå" "förstod" "förstått") ; - AKnow p = mkCl p.name (mkV "veta" "vet" "vet" "visste" "vetat" "visst") ; - ---- IrregSwe.veta_V gives "missing" - AWantGo p place = mkCl p.name want_VV (mkVP (mkVP IrregSwe.gå_V) place.to) ; - AHasName p name = mkCl (nameOf p) name ; - ALive p co = - mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxSwe.mkAdv in_Prep co)) ; + AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ; + AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ; + +-- miscellaneous QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ; @@ -80,6 +93,16 @@ concrete WordsSwe of Words = SentencesSwe ** HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "kosta"))) ; ItCost item price = mkCl item (mkV2 (mkV "kosta")) price ; +-- week days + + Monday = mkDay "måndag" ; + Tuesday = mkDay "tisdag" ; + Wednesday = mkDay "onsdag" ; + Thursday = mkDay "torsdag" ; + Friday = mkDay "fredag" ; + Saturday = mkDay "lördag" ; + Sunday = mkDay "söndag" ; + oper mkNat : Str -> Str -> {lang : NP ; prop : A ; country : NP} = \nat,co -> {lang = mkNP (mkPN (nat + "a")) ; diff --git a/lib/src/Make.hs b/lib/src/Make.hs index d1705ab78..d88c0388c 100644 --- a/lib/src/Make.hs +++ b/lib/src/Make.hs @@ -60,7 +60,7 @@ langs = map fst langsCoding langsLang = langs `except` ["Tur"] -- languages for which to compile Try -langsAPI = langsLang `except` ["Ara","Bul","Hin","Ina","Lat","Rus","Tha"] +langsAPI = langsLang `except` ["Ara","Hin","Ina","Lat","Rus","Tha"] -- languages for which to compile minimal Syntax langsMinimal = langs `only` ["Ara","Eng","Bul","Rus"]