mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-09 04:59:31 -06:00
generalized and extended Phrasebook in many ways
This commit is contained in:
@@ -1,16 +1,22 @@
|
||||
--# -path=.:present
|
||||
|
||||
concrete DisambPhrasebookEng of Phrasebook = PhrasebookEng -
|
||||
[YouFam, YouPol,
|
||||
[
|
||||
IMale, IFemale,
|
||||
YouFamMale, YouFamFemale,
|
||||
YouPolMale, YouPolFemale,
|
||||
GExcuse, GExcusePol,
|
||||
GSorry, GSorryPol,
|
||||
GPleaseGive, GPleaseGivePol,
|
||||
GWhatsYourName, GWhatsYourNamePol
|
||||
GPleaseGive, GPleaseGivePol
|
||||
]
|
||||
** open SyntaxEng, ParadigmsEng, Prelude in {
|
||||
lin
|
||||
YouFam = mkNP (mkNP youSg_Pron) (ParadigmsEng.mkAdv "(familiar)") ;
|
||||
YouPol = mkNP (mkNP youPol_Pron) (ParadigmsEng.mkAdv "(polite)") ;
|
||||
IMale = mkP i_Pron "(male)" ;
|
||||
IFemale = mkP i_Pron "(female)" ;
|
||||
YouFamMale = mkP youSg_Pron "(familiar,male)" ;
|
||||
YouFamFemale = mkP youSg_Pron "(familiar,female)" ;
|
||||
YouPolMale = mkP youPol_Pron "(polite,male)" ;
|
||||
YouPolFemale = mkP youPol_Pron "(polite,female)" ;
|
||||
|
||||
GExcuse = fam "excuse me" ;
|
||||
GExcusePol = pol "excuse me" ;
|
||||
@@ -18,11 +24,14 @@ lin
|
||||
GSorryPol = pol "sorry" ;
|
||||
GPleaseGive = fam "please" ;
|
||||
GPleaseGivePol = pol "please" ;
|
||||
GWhatsYourName = ss "what's your name (familiar)" ;
|
||||
GWhatsYourNamePol = ss "what's your name (polite)" ;
|
||||
|
||||
oper
|
||||
fam : Str -> SS = \s -> postfixSS "(familiar)" (ss s) ;
|
||||
pol : Str -> SS = \s -> postfixSS "(polite)" (ss s) ;
|
||||
|
||||
mkP : Pron -> Str -> {name : NP ; isPron : Bool ; poss : Det} = \p,s ->
|
||||
{name = mkNP (mkNP p) (ParadigmsEng.mkAdv s) ;
|
||||
isPron = False ; -- to show the disambiguation
|
||||
poss = mkDet youSg_Pron
|
||||
} ;
|
||||
}
|
||||
|
||||
@@ -12,7 +12,6 @@ fun
|
||||
GSorry, GSorryPol : Greeting ;
|
||||
GGoodbye : Greeting ;
|
||||
GBye : Greeting ;
|
||||
GWhatsYourName, GWhatsYourNamePol : Greeting ;
|
||||
GNiceToMeetYou : Greeting ;
|
||||
GSeeYouSoon : Greeting ;
|
||||
GHelp : Greeting ;
|
||||
@@ -22,6 +21,7 @@ fun
|
||||
GGoodEvening : Greeting ;
|
||||
GGoodNight : Greeting ;
|
||||
GTheCheck : Greeting ;
|
||||
GCheers : Greeting ;
|
||||
|
||||
GYes : Greeting ;
|
||||
GNo : Greeting ;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
concrete GreetingsEng of Greetings = open Roles, Prelude in {
|
||||
concrete GreetingsEng of Greetings = open Prelude in {
|
||||
|
||||
lincat
|
||||
Greeting = SS ;
|
||||
@@ -12,7 +12,6 @@ lin
|
||||
GSorry, GSorryPol = ss "sorry" ;
|
||||
GGoodbye = ss "goodbye" ;
|
||||
GBye = ss "bye" ;
|
||||
GWhatsYourName, GWhatsYourNamePol = ss "what's your name" ;
|
||||
GNiceToMeetYou = ss "nice to meet you" ;
|
||||
GSeeYouSoon = ss "see you soon" ;
|
||||
GHelp = ss "help" ;
|
||||
@@ -22,6 +21,7 @@ lin
|
||||
GGoodEvening = ss "good evening" ;
|
||||
GGoodNight = ss "good night" ;
|
||||
GTheCheck = ss "the bill" ;
|
||||
GCheers = ss "cheers" ;
|
||||
|
||||
GYes = ss "yes" ;
|
||||
GNo = ss "no" ;
|
||||
|
||||
@@ -15,8 +15,6 @@ lin
|
||||
GSorry, GSorryPol = ss "anteeksi" ;
|
||||
GGoodbye = ss "näkemiin" ;
|
||||
GBye = ss "hei hei" ;
|
||||
GWhatsYourName = ss "mikä sinun nimesi on" ;
|
||||
GWhatsYourNamePol = ss "mikä teidän nimenne on" ;
|
||||
GNiceToMeetYou = ss "hauska tutustua" ;
|
||||
GSeeYouSoon = ss "nähdään pian" ;
|
||||
GHelp = ss "apua" ;
|
||||
@@ -26,6 +24,7 @@ lin
|
||||
GGoodEvening = ss "hyvää iltaa" ;
|
||||
GGoodNight = ss "hyvää yötä" ;
|
||||
GTheCheck = ss "lasku" ;
|
||||
GCheers = ss "terveydeksi" ;
|
||||
|
||||
GYes = ss "kyllä" ;
|
||||
GNo = ss "ei" ;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
concrete GreetingsFre of Greetings = open Roles,Prelude in {
|
||||
concrete GreetingsFre of Greetings = open Prelude in {
|
||||
|
||||
flags coding = utf8 ;
|
||||
|
||||
@@ -16,8 +16,6 @@ lin
|
||||
GSorry, GSorryPol = ss "pardon" ;
|
||||
GGoodbye = ss "au revoir" ;
|
||||
GBye = ss "au revoir" ;
|
||||
GWhatsYourName = ss "comment t'appelles-tu" ;
|
||||
GWhatsYourNamePol = ss "comment vous appelez-vous" ;
|
||||
GNiceToMeetYou = ss "enchanté" ;
|
||||
GSeeYouSoon = ss "à bientôt" ;
|
||||
GHelp = ss "au secours" ;
|
||||
@@ -27,6 +25,7 @@ lin
|
||||
GGoodEvening = ss "bon soir" ;
|
||||
GGoodNight = ss "bonne nuit" ;
|
||||
GTheCheck = ss "l'addition" ;
|
||||
GCheers = ss "santé" ;
|
||||
|
||||
GYes = ss "oui" ; ---- si
|
||||
GNo = ss "non" ;
|
||||
|
||||
@@ -14,8 +14,6 @@ lin
|
||||
GSorryPol = ss "scusimi" ; ----
|
||||
GGoodbye = ss "arrivederci" ;
|
||||
GBye = ss "ciao" ;
|
||||
GWhatsYourName = ss "come ti chiami" ;
|
||||
GWhatsYourNamePol = ss "come si chiama" ;
|
||||
-- GNiceToMeetYou = ss "piacevole" ; ----
|
||||
-- GSeeYouSoon = ss "a poco tempo" ; ----
|
||||
GHelp = ss "aiuto" ;
|
||||
@@ -24,6 +22,7 @@ lin
|
||||
GGoodDay = ss "buongiorno" ;
|
||||
GGoodEvening = ss "buona sera" ;
|
||||
GGoodNight = ss "buona notte" ;
|
||||
GCheers = ss "cincin" ;
|
||||
GTheCheck = ss "il conto" ;
|
||||
|
||||
GYes = ss "sì" ;
|
||||
|
||||
@@ -14,7 +14,6 @@ lin
|
||||
GSorry = ss "îmi pare rău" ;
|
||||
GGoodbye = ss "la revedere" ;
|
||||
GBye = ss "pa" ;
|
||||
GWhatsYourName = ss "cum te cheamă" ;
|
||||
GNiceToMeetYou = ss "încântat" ;
|
||||
GSeeYouSoon = ss "pe curând" ;
|
||||
GHelp = ss "ajutor" ;
|
||||
@@ -23,6 +22,7 @@ lin
|
||||
GGoodDay = ss "bună ziua" ;
|
||||
GGoodEvening = ss "bună seara" ;
|
||||
GGoodNight = ss "noapte bună" ;
|
||||
GCheers = ss "noroc" ;
|
||||
GTheCheck = ss "nota de plată" ;
|
||||
|
||||
GYes = ss "da" ;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
concrete GreetingsSwe of Greetings = open Roles, Prelude in {
|
||||
concrete GreetingsSwe of Greetings = open Prelude in {
|
||||
|
||||
lincat
|
||||
Greeting = SS ;
|
||||
@@ -7,9 +7,9 @@ lin
|
||||
GHello = ss "hej" ;
|
||||
GThanks = ss "tack" ;
|
||||
GHowAreYou = ss "hur står det till" ;
|
||||
GPleaseGive = ss "var så god" ;
|
||||
GExcuse = ss "ursäkta" ;
|
||||
GSorry = ss "förlåt" ;
|
||||
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" ;
|
||||
@@ -20,10 +20,7 @@ lin
|
||||
GGoodDay = ss "god dag" ;
|
||||
GGoodEvening = ss "god afton" ;
|
||||
GGoodNight = ss "god natt" ;
|
||||
|
||||
GWhatsYourName = ss "vad heter du" ;
|
||||
GWhatsYourNamePol = ss "vad heter ni" ;
|
||||
|
||||
GCheers = ss "skål" ;
|
||||
GTheCheck = ss "notan" ;
|
||||
|
||||
GYes = ss "ja" ;
|
||||
|
||||
@@ -3,6 +3,9 @@ all: pgf missing
|
||||
pgf:
|
||||
gf -make PhrasebookEng.gf PhrasebookFin.gf PhrasebookFre.gf PhrasebookIta.gf PhrasebookRon.gf PhrasebookSwe.gf DisambPhrasebookEng.gf DisambPhrasebookRon.gf
|
||||
|
||||
koe:
|
||||
gf -make PhrasebookEng.gf PhrasebookFre.gf DisambPhrasebookEng.gf
|
||||
|
||||
missing:
|
||||
echo "pg -missing | wf -file=missing.txt" | gf Phrasebook.pgf
|
||||
|
||||
|
||||
@@ -2,11 +2,14 @@ abstract Sentences = Numeral ** {
|
||||
|
||||
cat
|
||||
Phrase ;
|
||||
Sentence ; Question ;
|
||||
Sentence ; Question ; Proposition ;
|
||||
Object ; Item ; Kind ; Quality ; Property ;
|
||||
Place ; PlaceKind ; Currency ; Price ; Language ;
|
||||
Person ; Action ;
|
||||
|
||||
Place ; PlaceKind ; Currency ; Price ;
|
||||
Person ; Action ;
|
||||
Nationality ; Language ; Citizenship ; Country ;
|
||||
Day ; -- weekday type
|
||||
Date ; -- definite date
|
||||
Name ;
|
||||
fun
|
||||
-- these phrases are formed here, not in Phrasebook, as they are functorial
|
||||
PSentence : Sentence -> Phrase ;
|
||||
@@ -21,19 +24,22 @@ abstract Sentences = Numeral ** {
|
||||
PCurrency : Currency -> Phrase ;
|
||||
PPrice : Price -> Phrase ;
|
||||
PLanguage : Language -> Phrase ;
|
||||
PCitizenship : Citizenship -> Phrase ;
|
||||
PCountry : Country -> Phrase ;
|
||||
PDay : Day -> Phrase ;
|
||||
|
||||
Is : Item -> Quality -> Sentence ;
|
||||
IsNot : Item -> Quality -> Sentence ;
|
||||
Is : Item -> Quality -> Proposition ;
|
||||
|
||||
WhetherIs : Item -> Quality -> Question ;
|
||||
WhereIs : Place -> Question ;
|
||||
SProp : Proposition -> Sentence ;
|
||||
SPropNot : Proposition -> Sentence ;
|
||||
QProp : Proposition -> Question ;
|
||||
|
||||
SAction : Action -> Sentence ;
|
||||
SNotAction : Action -> Sentence ;
|
||||
QAction : Action -> Question ;
|
||||
WhereIs : Place -> Question ;
|
||||
|
||||
PropAction : Action -> Proposition ;
|
||||
|
||||
HowMuchCost : Item -> Question ;
|
||||
ItCost : Item -> Price -> Sentence ;
|
||||
ItCost : Item -> Price -> Proposition ;
|
||||
AmountCurrency : Numeral -> Currency -> Price ;
|
||||
|
||||
ObjItem : Item -> Object ;
|
||||
@@ -48,6 +54,19 @@ abstract Sentences = Numeral ** {
|
||||
|
||||
ThePlace : PlaceKind -> Place ;
|
||||
|
||||
I, YouFam, YouPol : Person ;
|
||||
IMale, IFemale,
|
||||
YouFamMale, YouFamFemale,
|
||||
YouPolMale, YouPolFemale : Person ;
|
||||
|
||||
LangNat : Nationality -> Language ;
|
||||
CitiNat : Nationality -> Citizenship ;
|
||||
CountryNat : Nationality -> Country ;
|
||||
PropCit : Citizenship -> Property ;
|
||||
|
||||
OnDay : Day -> Date ;
|
||||
Today : Date ;
|
||||
|
||||
PersonName : Name -> Person ;
|
||||
---- NameString : String -> Name ; ---- creates ambiguities with all words
|
||||
NameNN : Name ; -- the name "NN"
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
concrete SentencesEng of Sentences = NumeralEng ** SentencesI with
|
||||
(DiffPhrasebook = DiffPhrasebookEng),
|
||||
(Syntax = SyntaxEng) ;
|
||||
(Syntax = SyntaxEng),
|
||||
(Symbolic = SymbolicEng),
|
||||
(Lexicon = LexiconEng) ;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
concrete SentencesFin of Sentences = NumeralFin ** SentencesI with
|
||||
(DiffPhrasebook = DiffPhrasebookFin),
|
||||
(Syntax = SyntaxFin) ;
|
||||
(Syntax = SyntaxFin),
|
||||
(Symbolic = SymbolicFin),
|
||||
(Lexicon = LexiconFin) ;
|
||||
|
||||
@@ -1,10 +1,22 @@
|
||||
concrete SentencesFre of Sentences = NumeralFre ** SentencesI - [WhetherIs, QAction]
|
||||
concrete SentencesFre of Sentences = NumeralFre ** SentencesI - [
|
||||
QProp,
|
||||
IFemale, YouFamFemale, YouPolFemale
|
||||
]
|
||||
with
|
||||
(DiffPhrasebook = DiffPhrasebookFre),
|
||||
(Syntax = SyntaxFre) ** open SyntaxFre, ExtraFre in {
|
||||
(Syntax = SyntaxFre),
|
||||
(Symbolic = SymbolicFre),
|
||||
(Lexicon = LexiconFre) **
|
||||
open SyntaxFre, ExtraFre, Prelude in {
|
||||
|
||||
lin
|
||||
WhetherIs item quality = lin QS {s = \\_ => (EstcequeS (mkS (mkCl item quality))).s} ;
|
||||
QAction a = lin QS {s = \\_ => (EstcequeS (mkS a)).s} ;
|
||||
QProp a =
|
||||
lin QS {s = \\_ => (EstcequeS (mkS a)).s} ;
|
||||
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};
|
||||
|
||||
}
|
||||
|
||||
@@ -2,24 +2,33 @@ incomplete concrete SentencesI of Sentences = Numeral **
|
||||
open
|
||||
DiffPhrasebook,
|
||||
Syntax,
|
||||
Lexicon,
|
||||
Symbolic, -- for names as strings
|
||||
Prelude
|
||||
in {
|
||||
lincat
|
||||
Phrase = Text ;
|
||||
Sentence = S ;
|
||||
Question = QS ;
|
||||
Proposition = Cl ;
|
||||
Item = NP ;
|
||||
Kind = CN ;
|
||||
Quality = AP ;
|
||||
Property = A ;
|
||||
Object = NP ;
|
||||
Place = NP ;
|
||||
PlaceKind = CN ;
|
||||
Place = {name : NP ; at : Adv ; to : Adv} ;
|
||||
PlaceKind = {name : CN ; at : Prep ; to : Prep} ;
|
||||
Currency = CN ;
|
||||
Price = NP ;
|
||||
Action = Cl ;
|
||||
Person = NP ;
|
||||
Person = {name : NP ; isPron : Bool ; poss : Det} ;
|
||||
Nationality = {lang : NP ; prop : A ; country : NP} ;
|
||||
Language = NP ;
|
||||
Citizenship = A ;
|
||||
Country = NP ;
|
||||
Day = {name : NP ; point : Adv ; habitual : Adv} ;
|
||||
Date = Adv ;
|
||||
Name = NP ;
|
||||
lin
|
||||
PSentence s = mkText s | lin Text (mkUtt s) ; -- optional '.'
|
||||
PQuestion s = mkText s | lin Text (mkUtt s) ; -- optional '?'
|
||||
@@ -28,23 +37,27 @@ incomplete concrete SentencesI of Sentences = Numeral **
|
||||
PKind x = mkPhrase (mkUtt x) ;
|
||||
PQuality x = mkPhrase (mkUtt x) ;
|
||||
PNumeral x = mkPhrase (mkUtt (mkCard (x ** {lock_Numeral = <>}))) ;
|
||||
PPlace x = mkPhrase (mkUtt x) ;
|
||||
PPlaceKind x = mkPhrase (mkUtt x) ;
|
||||
PPlace x = mkPhrase (mkUtt x.name) ;
|
||||
PPlaceKind x = mkPhrase (mkUtt x.name) ;
|
||||
PCurrency x = mkPhrase (mkUtt x) ;
|
||||
PPrice x = mkPhrase (mkUtt x) ;
|
||||
PLanguage x = mkPhrase (mkUtt x) ;
|
||||
PCountry x = mkPhrase (mkUtt x) ;
|
||||
PCitizenship x = mkPhrase (mkUtt (mkAP x)) ;
|
||||
PDay d = mkPhrase (mkUtt d.name) ;
|
||||
|
||||
Is = mkCl ;
|
||||
|
||||
Is item quality = mkS (mkCl item quality) ;
|
||||
IsNot item quality = mkS negativePol (mkCl item quality) ;
|
||||
WhetherIs item quality = mkQS (mkQCl (mkCl item quality)) ;
|
||||
WhereIs place = mkQS (mkQCl where_IAdv place) ;
|
||||
SProp = mkS ;
|
||||
SPropNot = mkS negativePol ;
|
||||
QProp p = mkQS (mkQCl p) ;
|
||||
|
||||
SAction = mkS ;
|
||||
SNotAction = mkS negativePol ;
|
||||
QAction a = mkQS (mkQCl a) ;
|
||||
WhereIs place = mkQS (mkQCl where_IAdv place.name) ;
|
||||
|
||||
PropAction a = a ;
|
||||
|
||||
HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item cost_V)) ;
|
||||
ItCost item price = mkS (mkCl item cost_V2 price) ;
|
||||
ItCost item price = mkCl item cost_V2 price ;
|
||||
|
||||
AmountCurrency num curr = mkNP <lin Numeral num : Numeral> curr ;
|
||||
|
||||
@@ -63,14 +76,34 @@ incomplete concrete SentencesI of Sentences = Numeral **
|
||||
Very property = mkAP very_AdA (mkAP property) ;
|
||||
Too property = mkAP too_AdA (mkAP property) ;
|
||||
PropQuality property = mkAP property ;
|
||||
ThePlace kind = mkNP the_Quant kind ;
|
||||
ThePlace kind =
|
||||
let name : NP = mkNP the_Quant kind.name in {
|
||||
name = name ;
|
||||
at = mkAdv kind.at name ;
|
||||
to = mkAdv kind.to name
|
||||
} ;
|
||||
|
||||
I = mkNP i_Pron ;
|
||||
YouFam = mkNP youSg_Pron ;
|
||||
YouPol = mkNP youPol_Pron ;
|
||||
IMale, IFemale = mkPerson i_Pron ;
|
||||
YouFamMale, YouFamFemale = mkPerson youSg_Pron ;
|
||||
YouPolMale, YouPolFemale = mkPerson youPol_Pron ;
|
||||
|
||||
LangNat n = n.lang ;
|
||||
CitiNat n = n.prop ;
|
||||
CountryNat n = n.country ;
|
||||
PropCit c = c ;
|
||||
|
||||
OnDay d = d.point ;
|
||||
Today = today_Adv ;
|
||||
|
||||
PersonName n =
|
||||
{name = n ; isPron = False ; poss = mkDet he_Pron} ; -- poss not used
|
||||
---- NameString s = symb s ;
|
||||
NameNN = symb "NN" ;
|
||||
|
||||
oper
|
||||
mkPhrase : Utt -> Text = \u -> lin Text u ; -- no punctuation
|
||||
|
||||
mkPerson : Pron -> {name : NP ; isPron : Bool ; poss : Det} = \p ->
|
||||
{name = mkNP p ; isPron = True ; poss = mkDet p} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,21 @@
|
||||
concrete SentencesIta of Sentences = NumeralIta ** SentencesI
|
||||
concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
|
||||
IFemale, YouFamFemale, YouPolFemale
|
||||
]
|
||||
with
|
||||
(DiffPhrasebook = DiffPhrasebookIta),
|
||||
(Syntax = SyntaxIta) ;
|
||||
(Syntax = SyntaxIta),
|
||||
(Symbolic = SymbolicIta),
|
||||
(Lexicon = LexiconIta) **
|
||||
open SyntaxIta, ExtraIta, 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};
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
concrete SentencesRon of Sentences = NumeralRon ** SentencesI with
|
||||
(DiffPhrasebook = DiffPhrasebookRon),
|
||||
(Syntax = SyntaxRon) ;
|
||||
(Syntax = SyntaxRon),
|
||||
(Symbolic = SymbolicRon),
|
||||
(Lexicon = LexiconRon) ;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
concrete SentencesSwe of Sentences = NumeralSwe ** SentencesI with
|
||||
(DiffPhrasebook = DiffPhrasebookSwe),
|
||||
(Syntax = SyntaxSwe) ;
|
||||
(Syntax = SyntaxSwe),
|
||||
(Symbolic = SymbolicSwe),
|
||||
(Lexicon = LexiconSwe) ;
|
||||
|
||||
@@ -4,27 +4,48 @@ abstract Words = Sentences ** {
|
||||
fun
|
||||
Wine, Beer, Water, Coffee, Tea : Kind ;
|
||||
Cheese, Fish, Pizza : Kind ;
|
||||
Fresh, Warm, Italian,
|
||||
Fresh, Warm,
|
||||
Expensive, Delicious, Boring, Good : Property ;
|
||||
|
||||
Bar, Restaurant, Toilet : PlaceKind ;
|
||||
Bar, Restaurant, Toilet,
|
||||
Museum, Airport, Station, Hospital, Church : PlaceKind ;
|
||||
|
||||
Euro, Dollar, Lei : Currency ;
|
||||
|
||||
English, Finnish, French, Romanian, Swedish : Language ;
|
||||
English, Finnish, French, Italian, Romanian, Swedish : Nationality ;
|
||||
Belgian : Citizenship ;
|
||||
Flemish : Language ;
|
||||
Belgium : Country ;
|
||||
|
||||
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday : Day ;
|
||||
|
||||
-- actions can be expressed by different structures in different languages
|
||||
|
||||
AWant : Person -> Object -> Action ;
|
||||
ALike : Person -> Item -> Action ;
|
||||
AHave : Person -> Kind -> Action ;
|
||||
ASpeak : Person -> Language -> Action ;
|
||||
ALove : Person -> Person -> Action ;
|
||||
|
||||
AWant : Person -> Object -> Action ;
|
||||
ALike : Person -> Item -> Action ;
|
||||
AHave : Person -> Kind -> Action ;
|
||||
ASpeak : Person -> Language -> Action ;
|
||||
ALove : Person -> Person -> Action ;
|
||||
ACitizen : Person -> Citizenship -> Action ;
|
||||
AHungry : Person -> Action ;
|
||||
AThirsty : Person -> Action ;
|
||||
ATired : Person -> Action ;
|
||||
AIll : Person -> Action ;
|
||||
AScared : Person -> Action ;
|
||||
AUnderstand : Person -> Action ;
|
||||
AKnow : Person -> Action ;
|
||||
AWantGo : Person -> Place -> Action ;
|
||||
ABePlace : Person -> Place -> Action ;
|
||||
AHasName : Person -> Name -> Action ;
|
||||
ALive : Person -> Country -> Action ;
|
||||
|
||||
QWhatName : Person -> Question ;
|
||||
|
||||
PropOpen : Place -> Proposition ;
|
||||
PropClosed : Place -> Proposition ;
|
||||
PropOpenDate : Place -> Date -> Proposition ;
|
||||
PropClosedDate : Place -> Date -> Proposition ;
|
||||
PropOpenDay : Place -> Day -> Proposition ;
|
||||
PropClosedDay : Place -> Day -> Proposition ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
-- (c) 2009 Aarne Ranta under LGPL
|
||||
|
||||
concrete WordsEng of Words = SentencesEng **
|
||||
open SyntaxEng, ParadigmsEng, IrregEng in {
|
||||
open
|
||||
SyntaxEng, ParadigmsEng, (P = ParadigmsEng),
|
||||
IrregEng, Prelude in {
|
||||
lin
|
||||
Wine = mkCN (mkN "wine") ;
|
||||
Beer = mkCN (mkN "beer") ;
|
||||
@@ -14,36 +16,96 @@ concrete WordsEng of Words = SentencesEng **
|
||||
Fish = mkCN (mkN "fish" "fish") ;
|
||||
Fresh = mkA "fresh" ;
|
||||
Warm = mkA "warm" ;
|
||||
Italian = mkA "Italian" ;
|
||||
Expensive = mkA "expensive" ;
|
||||
Delicious = mkA "delicious" ;
|
||||
Boring = mkA "boring" ;
|
||||
Good = mkA "good" "better" "best" "well" ;
|
||||
|
||||
Restaurant = mkCN (mkN "restaurant") ;
|
||||
Bar = mkCN (mkN "bar") ;
|
||||
Toilet = mkCN (mkN "toilet") ;
|
||||
Restaurant = mkPlace "restaurant" "in" ;
|
||||
Bar = mkPlace "bar" "in" ;
|
||||
Toilet = mkPlace "toilet" "in" ;
|
||||
Museum = mkPlace "museum" "in" ;
|
||||
Airport = mkPlace "airport" "at" ;
|
||||
Station = mkPlace "station" "at" ;
|
||||
Hospital = mkPlace "hospital" "in" ;
|
||||
Church = mkPlace "church" "in" ;
|
||||
|
||||
Euro = mkCN (mkN "euro" "euros") ; -- to prevent euroes
|
||||
Dollar = mkCN (mkN "dollar") ;
|
||||
Lei = mkCN (mkN "leu" "lei") ;
|
||||
|
||||
English = mkNP (mkPN "English") ;
|
||||
Finnish = mkNP (mkPN "Finnish") ;
|
||||
French = mkNP (mkPN "French") ;
|
||||
Romanian = mkNP (mkPN "Romanian") ;
|
||||
Swedish = mkNP (mkPN "Swedish") ;
|
||||
English = mkNat "English" "England" ;
|
||||
Finnish = mkNat "Finnish" "Finland" ;
|
||||
French = mkNat "French" "France" ;
|
||||
Italian = mkNat "Italian" "Italy" ;
|
||||
Romanian = mkNat "Romanian" "Romania" ;
|
||||
Swedish = mkNat "Swedish" "Sweden" ;
|
||||
|
||||
AWant p obj = mkCl p (mkV2 (mkV "want")) obj ;
|
||||
ALike p item = mkCl p (mkV2 (mkV "like")) item ;
|
||||
AHave p kind = mkCl p have_V2 (mkNP kind) ;
|
||||
ASpeak p lang = mkCl p (mkV2 IrregEng.speak_V) lang ;
|
||||
ALove p q = mkCl p (mkV2 (mkV "love")) q ;
|
||||
Belgian = mkA "Belgian" ;
|
||||
Flemish = mkNP (mkPN "Flemish") ;
|
||||
Belgium = mkNP (mkPN "Belgium") ;
|
||||
|
||||
AHungry p = mkCl p (mkA "hungry") ;
|
||||
AThirsty p = mkCl p (mkA "thirsty") ;
|
||||
ATired p = mkCl p (mkA "tired") ;
|
||||
AScared p = mkCl p (mkA "scared") ;
|
||||
AUnderstand p = mkCl p IrregEng.understand_V ;
|
||||
Monday = mkDay "Monday" ;
|
||||
Tuesday = mkDay "Tuesday" ;
|
||||
Wednesday = mkDay "Wednesday" ;
|
||||
Thursday = mkDay "Thursday" ;
|
||||
Friday = mkDay "Friday" ;
|
||||
Saturday = mkDay "Saturday" ;
|
||||
Sunday = mkDay "Sunday" ;
|
||||
|
||||
AWant p obj = mkCl p.name (mkV2 (mkV "want")) obj ;
|
||||
ALike p item = mkCl p.name (mkV2 (mkV "like")) item ;
|
||||
AHave p kind = mkCl p.name have_V2 (mkNP kind) ;
|
||||
ASpeak p lang = mkCl p.name (mkV2 IrregEng.speak_V) lang ;
|
||||
ALove p q = mkCl p.name (mkV2 (mkV "love")) q.name ;
|
||||
ACitizen p n = mkCl p.name n ;
|
||||
AHungry p = mkCl p.name (mkA "hungry") ;
|
||||
AThirsty p = mkCl p.name (mkA "thirsty") ;
|
||||
ATired p = mkCl p.name (mkA "tired") ;
|
||||
AScared p = mkCl p.name (mkA "scared") ;
|
||||
AIll p = mkCl p.name (mkA "ill") ;
|
||||
AUnderstand p = mkCl p.name IrregEng.understand_V ;
|
||||
AKnow p = mkCl p.name IrregEng.know_V ;
|
||||
AWantGo p place = mkCl p.name want_VV (mkVP (mkVP IrregEng.go_V) place.to) ;
|
||||
ABePlace p place = mkCl p.name place.at ;
|
||||
AHasName p name = mkCl (nameOf p) name ;
|
||||
ALive p co =
|
||||
mkCl p.name (mkVP (mkVP (mkV "live")) (SyntaxEng.mkAdv in_Prep co)) ;
|
||||
|
||||
QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
|
||||
|
||||
PropOpen p = mkCl p.name open_Adv ;
|
||||
PropClosed p = mkCl p.name closed_Adv ;
|
||||
PropOpenDate p d = mkCl p.name (mkVP (mkVP open_Adv) d) ;
|
||||
PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_Adv) d) ;
|
||||
PropOpenDay p d = mkCl p.name (mkVP (mkVP open_Adv) d.habitual) ;
|
||||
PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_Adv) d.habitual) ;
|
||||
|
||||
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 = SyntaxEng.mkAdv on_Prep day ;
|
||||
habitual = SyntaxEng.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))
|
||||
} ;
|
||||
|
||||
mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i -> {
|
||||
name = mkCN (mkN p) ;
|
||||
at = P.mkPrep i ;
|
||||
to = to_Prep
|
||||
} ;
|
||||
|
||||
open_Adv = P.mkAdv "open" ;
|
||||
closed_Adv = P.mkAdv "closed" ;
|
||||
|
||||
nameOf : {name : NP ; isPron : Bool ; poss : Det} -> NP = \p ->
|
||||
case p.isPron of {
|
||||
True => mkNP p.poss (mkN "name") ;
|
||||
_ => mkNP (mkNP the_Det (mkN "name"))
|
||||
(SyntaxEng.mkAdv possess_Prep p.name)
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
-- (c) 2009 Aarne Ranta under LGPL
|
||||
|
||||
concrete WordsFin of Words = SentencesFin **
|
||||
open SyntaxFin, ParadigmsFin, DiffPhrasebookFin in {
|
||||
open
|
||||
SyntaxFin, ParadigmsFin, (L = LangFin),
|
||||
DiffPhrasebookFin, Prelude, (E = ExtraFin) in {
|
||||
lin
|
||||
Wine = mkCN (mkN "viini") ;
|
||||
Beer = mkCN (mkN "olut" "oluita") ;
|
||||
@@ -19,36 +21,100 @@ concrete WordsFin of Words = SentencesFin **
|
||||
"lämpiminä" "lämpimiä" "lämpimien" "lämpimissä" "lämpimiin"
|
||||
)
|
||||
"lämpimämpi" "lämpimin" ;
|
||||
Italian = mkA "italialainen" ;
|
||||
Expensive = mkA "kallis" ;
|
||||
Delicious = mkA "herkullinen" ;
|
||||
Boring = mkA "tylsä" ;
|
||||
Good = mkA (mkN "hyvä") "parempi" "paras" ; ---- comparisons?
|
||||
|
||||
Restaurant = mkCN (mkN "ravintola") ;
|
||||
Bar = mkCN (mkN "baari") ;
|
||||
Toilet = mkCN (mkN "vessa") ;
|
||||
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 ;
|
||||
|
||||
Euro = mkCN (mkN "euro") ;
|
||||
Dollar = mkCN (mkN "dollari") ;
|
||||
Lei = mkCN (mkN "lei") ;
|
||||
|
||||
AWant p obj = mkCl p want_V2 obj ;
|
||||
ALike p item = mkCl p like_V2 item ;
|
||||
AHave p kind = mkCl p have_V2 (mkNP kind) ;
|
||||
ASpeak p lang = mkCl p (mkV2 (mkV "puhua") partitive) lang ;
|
||||
ALove p q = mkCl p (mkV2 (mkV "rakastaa") partitive) q ;
|
||||
---- it would be nice to have a capitalization Predef function
|
||||
English = mkNat (mkPN "englanti") (mkPN "Englanti") (mkA "englantilainen") ;
|
||||
Finnish =
|
||||
mkNat (mkPN (mkN "suomi" "suomia")) (mkPN (mkN "Suomi" "Suomia"))
|
||||
(mkA "suomalainen") ;
|
||||
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") ;
|
||||
|
||||
English = mkNP (mkPN "englanti") ;
|
||||
Finnish = mkNP (mkPN (mkN "suomi" "suomia")) ;
|
||||
French = mkNP (mkPN "ranska") ;
|
||||
Romanian = mkNP (mkPN "romania") ;
|
||||
Swedish = mkNP (mkPN "ruotsi") ;
|
||||
Belgian = mkA "belgialainen" ;
|
||||
Flemish = mkNP (mkPN "flaami") ;
|
||||
Belgium = mkNP (mkPN "Belgia") ;
|
||||
|
||||
AHungry p = mkCl p have_V2 (mkNP (mkN "nälkä")) ;
|
||||
AThirsty p = mkCl p have_V2 (mkNP (mkN "jano")) ;
|
||||
ATired p = mkCl p (caseV partitive (mkV "väsyttää")) ;
|
||||
AScared p = mkCl p (caseV partitive (mkV "pelottaa")) ;
|
||||
AUnderstand p = mkCl p (mkV "ymmärtää") ;
|
||||
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") ;
|
||||
|
||||
AWant p obj = mkCl p.name want_V2 obj ;
|
||||
ALike p item = mkCl p.name L.like_V2 item ;
|
||||
AHave p kind = mkCl p.name have_V2 (mkNP kind) ;
|
||||
ASpeak p lang = mkCl p.name (mkV2 (mkV "puhua") partitive) lang ;
|
||||
ALove p q = mkCl p.name (mkV2 (mkV "rakastaa") partitive) q.name ;
|
||||
ACitizen p n = mkCl p.name n ;
|
||||
AHungry p = mkCl p.name have_V2 (mkNP (mkN "nälkä")) ;
|
||||
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ää") ;
|
||||
AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
|
||||
ABePlace p place = mkCl p.name place.at ;
|
||||
AHasName p name = mkCl (nameOf p) name ;
|
||||
ALive p co =
|
||||
mkCl p.name (mkVP (mkVP (mkV "asua")) (SyntaxFin.mkAdv in_Prep co)) ;
|
||||
|
||||
QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
|
||||
|
||||
PropOpen p = mkCl p.name open_Adv ;
|
||||
PropClosed p = mkCl p.name closed_Adv ;
|
||||
PropOpenDate p d = mkCl p.name (mkVP (mkVP open_Adv) d) ;
|
||||
PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_Adv) d) ;
|
||||
PropOpenDay p d = mkCl p.name (mkVP (mkVP open_Adv) d.habitual) ;
|
||||
PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_Adv) d.habitual) ;
|
||||
|
||||
oper
|
||||
mkNat : PN -> PN -> A ->
|
||||
{lang : NP ; prop : A ; country : NP} = \nat,co,pro ->
|
||||
{lang = mkNP nat ;
|
||||
prop = pro ;
|
||||
country = mkNP co
|
||||
} ;
|
||||
|
||||
---- using overloaded paradigms slows down compilation dramatically
|
||||
mkDay : PN -> Str -> {name : NP ; point : Adv ; habitual : Adv} = \d,s ->
|
||||
let day = mkNP d in
|
||||
{name = day ;
|
||||
point = SyntaxFin.mkAdv (casePrep essive) day ;
|
||||
habitual = ParadigmsFin.mkAdv s
|
||||
} ;
|
||||
|
||||
mkPlace : N -> Bool -> {name : CN ; at : Prep ; to : Prep} = \p,e -> {
|
||||
name = mkCN p ;
|
||||
at = casePrep (if_then_else Case e adessive inessive) ; -- True: external
|
||||
to = casePrep (if_then_else Case e allative elative) ;
|
||||
} ;
|
||||
|
||||
open_Adv = ParadigmsFin.mkAdv "avoinna" ;
|
||||
closed_Adv = ParadigmsFin.mkAdv "kiinni" ;
|
||||
|
||||
nameOf : {name : NP ; isPron : Bool ; poss : Det} -> NP = \p ->
|
||||
mkNP (E.GenNP p.name) (mkN "nimi" "nimiä") ;
|
||||
|
||||
}
|
||||
|
||||
@@ -5,8 +5,9 @@ concrete WordsFre of Words = SentencesFre ** open
|
||||
DiffPhrasebookFre,
|
||||
IrregFre,
|
||||
(E = ExtraFre),
|
||||
ParadigmsFre in
|
||||
{
|
||||
ParadigmsFre,
|
||||
(P = ParadigmsFre) in {
|
||||
|
||||
flags coding=utf8 ;
|
||||
|
||||
lin
|
||||
@@ -23,36 +24,92 @@ Pizza = mkCN (mkN "pizza" feminine) ;
|
||||
|
||||
Fresh = mkA "frais" "fraîche" "frais" "fraîchement" ;
|
||||
Warm = mkA "chaud" ;
|
||||
Italian = mkA "italien" ;
|
||||
Expensive = mkA "cher" ;
|
||||
Delicious = mkA "délicieux" ;
|
||||
Boring = mkA "ennuyeux" ;
|
||||
Good = prefixA (mkA "bon" "bonne" "bons" "bien") ;
|
||||
|
||||
Restaurant = mkCN (mkN "restaurant") ;
|
||||
Bar = mkCN (mkN "bar") ;
|
||||
Toilet = mkCN (mkN "toilette") ;
|
||||
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 ;
|
||||
Church = mkPlace (mkN "église") in_Prep ;
|
||||
|
||||
Euro = mkCN (mkN "euro") ;
|
||||
Dollar = mkCN (mkN "dollar") ;
|
||||
Lei = mkCN (mkN "lei") ; ---- ?
|
||||
Lei = mkCN (mkN "leu" "lei" masculine) ;
|
||||
|
||||
AWant p obj = mkCl p want_V2 obj ;
|
||||
ALike p item = mkCl item plaire_V2 p ;
|
||||
AHave p kind = mkCl p have_V2 (mkNP kind) ;
|
||||
ASpeak p lang = mkCl p (mkV2 (mkV "parler")) lang ;
|
||||
ALove p q = mkCl p (mkV2 (mkV "aimer")) q ;
|
||||
English = mkNat "anglais" "Angleterre" ;
|
||||
Finnish = mkNat "finlandais" "Finlande" ;
|
||||
French = mkNat "français" "France" ;
|
||||
Italian = mkNat "italien" "Italie" ;
|
||||
Romanian = mkNat "roumain" "Roumanie" ;
|
||||
Swedish = mkNat "suédois" "Suède" ;
|
||||
|
||||
English = mkNP (mkPN "anglais") ;
|
||||
Finnish = mkNP (mkPN "finnois") ;
|
||||
French = mkNP (mkPN "français") ;
|
||||
Romanian = mkNP (mkPN "roumain") ;
|
||||
Swedish = mkNP (mkPN "suédois") ;
|
||||
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" ;
|
||||
|
||||
AWant p obj = mkCl p.name want_V2 obj ;
|
||||
ALike p item = mkCl item plaire_V2 p.name ;
|
||||
AHave p kind = mkCl p.name have_V2 (mkNP kind) ;
|
||||
ASpeak p lang = mkCl p.name (mkV2 (mkV "parler")) lang ;
|
||||
ALove p q = mkCl p.name (mkV2 (mkV "aimer")) q.name ;
|
||||
ACitizen p n = mkCl p.name n ;
|
||||
AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "faim" feminine))) ;
|
||||
AThirsty p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "soif" feminine))) ;
|
||||
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) ;
|
||||
AKnow p = mkCl p.name (mkV IrregFre.savoir_V2) ;
|
||||
AWantGo p place =
|
||||
mkCl p.name want_VV (mkVP (mkVP IrregFre.aller_V) place.to) ;
|
||||
ABePlace p place = mkCl p.name place.at ;
|
||||
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)) ;
|
||||
|
||||
QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (reflV (mkV "appeler")))) ;
|
||||
|
||||
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) ;
|
||||
|
||||
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 = P.mkAdv d ;
|
||||
habitual = P.mkAdv ("le" ++ d) ;
|
||||
} ;
|
||||
|
||||
mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep} = \p,i -> {
|
||||
name = mkCN p ;
|
||||
at = i ;
|
||||
to = dative
|
||||
} ;
|
||||
|
||||
open_A = P.mkA "ouvert" ;
|
||||
closed_A = P.mkA "fermé" ;
|
||||
|
||||
AHungry p = mkCl p (E.ComplCN have_V2 (mkCN (mkN "faim" feminine))) ;
|
||||
AThirsty p = mkCl p (E.ComplCN have_V2 (mkCN (mkN "soif" feminine))) ;
|
||||
ATired p = mkCl p (mkA "fatigué") ;
|
||||
AScared p = mkCl p (E.ComplCN have_V2 (mkCN (mkN "peur" feminine))) ;
|
||||
AUnderstand p = mkCl p (mkV IrregFre.comprendre_V2) ;
|
||||
|
||||
}
|
||||
|
||||
@@ -5,6 +5,8 @@ concrete WordsIta of Words = SentencesIta ** open
|
||||
DiffPhrasebookIta,
|
||||
BeschIta,
|
||||
(E = ExtraIta),
|
||||
(L = LexiconIta),
|
||||
(P = ParadigmsIta),
|
||||
ParadigmsIta in {
|
||||
|
||||
lin
|
||||
@@ -13,7 +15,7 @@ Wine = mkCN (mkN "vino") ;
|
||||
Beer = mkCN (mkN "birra") ;
|
||||
Water = mkCN (mkN "acqua") ;
|
||||
Coffee = mkCN (mkN "caffè") ;
|
||||
-- Tea = mkCN (mkN "té") ; ----
|
||||
Tea = mkCN (mkN "tè") ;
|
||||
|
||||
Cheese = mkCN (mkN "formaggio") ;
|
||||
Fish = mkCN (mkN "pesce") ;
|
||||
@@ -21,39 +23,92 @@ Pizza = mkCN (mkN "pizza") ;
|
||||
|
||||
Fresh = mkA "fresco" ;
|
||||
Warm = mkA "caldo" ;
|
||||
Italian = mkA "italiano" ;
|
||||
Expensive = mkA "caro" ;
|
||||
Delicious = mkA "delizioso" ;
|
||||
Boring = mkA "noioso" ;
|
||||
Good = prefixA (mkA "buono" "buona" "buoni" "buone" "bene") ;
|
||||
|
||||
Restaurant = mkCN (mkN "ristorante") ;
|
||||
Bar = mkCN (mkN "bar") ;
|
||||
Toilet = mkCN (mkN "bagno") ;
|
||||
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 ;
|
||||
Church = mkPlace (mkN "chiesa") P.in_Prep ;
|
||||
|
||||
Euro = mkCN (mkN "euro" "euro" masculine) ;
|
||||
Dollar = mkCN (mkN "dollar") ;
|
||||
Lei = mkCN (mkN "lei") ; ---- ?
|
||||
|
||||
AWant p obj = mkCl p want_V2 obj ;
|
||||
ALike p item = mkCl item (mkV2 (mkV (piacere_64 "piacere")) dative) p ;
|
||||
AHave p kind = mkCl p have_V2 (mkNP kind) ;
|
||||
ASpeak p lang = mkCl p (mkV2 (mkV "parlare")) lang ;
|
||||
ALove p q = mkCl p (mkV2 (mkV "amare")) q ;
|
||||
English = mkNat "inglese" "Inghilterra" ;
|
||||
Finnish = mkNat "finlandese" "Finlandia" ;
|
||||
French = mkNat "francese" "Francia" ;
|
||||
Italian = mkNat "italiano" "Italia" ;
|
||||
Romanian = mkNat "rumeno" "Romania" ;
|
||||
Swedish = mkNat "svedese" "Svezia" ;
|
||||
|
||||
English = mkNP (mkPN "inglese") ;
|
||||
Finnish = mkNP (mkPN "finlandese") ;
|
||||
French = mkNP (mkPN "francese") ;
|
||||
Romanian = mkNP (mkPN "rumeno") ;
|
||||
Swedish = mkNP (mkPN "svedese") ;
|
||||
Belgian = mkA "belgo" ;
|
||||
Flemish = mkNP (mkPN "fiammingo") ;
|
||||
Belgium = mkNP (mkPN "Belgio") ;
|
||||
|
||||
AHungry p = mkCl p (E.ComplCN have_V2 (mkCN (mkN "fame" feminine))) ;
|
||||
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))) ;
|
||||
AUnderstand p = mkCl p (mkV "capire") ;
|
||||
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 want_V2 obj ;
|
||||
ALike p item = mkCl item (mkV2 (mkV (piacere_64 "piacere")) dative) p.name ;
|
||||
AHave p kind = mkCl p.name have_V2 (mkNP kind) ;
|
||||
ASpeak p lang = mkCl p.name (mkV2 (mkV "parlare")) lang ;
|
||||
ALove p q = mkCl p.name (mkV2 (mkV "amare")) q.name ;
|
||||
ACitizen p n = mkCl p.name n ;
|
||||
AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "fame" feminine))) ;
|
||||
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) ;
|
||||
ABePlace p place = mkCl p.name place.at ;
|
||||
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)) ;
|
||||
|
||||
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) ;
|
||||
|
||||
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, -- = ParadigmsIta.mkAdv d ;
|
||||
habitual = ParadigmsIta.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" ;
|
||||
|
||||
oper
|
||||
mkAPA : (_ : Str) -> AP = \x -> mkAP (mkA x) ;
|
||||
|
||||
}
|
||||
|
||||
@@ -22,37 +22,39 @@ Pizza = mkCN (mkN "pizza" "pizze" feminine) ;
|
||||
|
||||
Fresh = mkA "proaspăt" "proaspătă" "proaspeţi" "proaspete" ;
|
||||
Warm = mkA "cald" "caldă" "calzi" "calde" ;
|
||||
Italian = mkA "italian" "italiană" "italieni" "italiene" ;
|
||||
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" ;
|
||||
|
||||
Restaurant = mkCN (mkN "restaurant") ;
|
||||
Bar = mkCN (mkNR "bar") ;
|
||||
Toilet = mkCN (mkN "toaleta") ;
|
||||
Restaurant = mkPlace (mkN "restaurant") in_Prep ;
|
||||
Bar = mkPlace (mkNR "bar") in_Prep ;
|
||||
Toilet = mkPlace (mkN "toaleta") in_Prep ;
|
||||
|
||||
Euro = mkCN (mkN "euro" "euro") ;
|
||||
Dollar = mkCN (mkN "dolar" masculine) ;
|
||||
Lei = mkCN (mkN "leu" "lei") ;
|
||||
|
||||
AWant p obj = mkCl p want_V2 obj ;
|
||||
ALike p item = mkCl p like_V2 item ;
|
||||
AHave p kind = mkCl p have_V2 (SyntaxRon.mkNP kind) ;
|
||||
ASpeak p lang = mkCl p (dirV2 (mkV "vorbi")) lang ;
|
||||
ALove p q = mkCl p (dirV2 (mkV "iubi")) q ;
|
||||
|
||||
English = SyntaxRon.mkNP (mkPN "engleză") ; ---- ?
|
||||
-- English = SyntaxRon.mkNP (mkPN "engleză") ; ---- ?
|
||||
-- Finnish = mkNP (mkPN "finnois") ;
|
||||
-- French = mkNP (mkPN "français") ;
|
||||
Romanian = SyntaxRon.mkNP (mkPN "română") ; ---- ?
|
||||
-- Italian = mkA "italian" "italiană" "italieni" "italiene" ;
|
||||
-- Romanian = SyntaxRon.mkNP (mkPN "română") ; ---- ?
|
||||
-- Swedish = mkNP (mkPN "suédois") ;
|
||||
|
||||
AWant p obj = mkCl p.name want_V2 obj ;
|
||||
ALike p item = mkCl p.name like_V2 item ;
|
||||
AHave p kind = mkCl p.name have_V2 (SyntaxRon.mkNP kind) ;
|
||||
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))) ;
|
||||
AUnderstand p = mkCl p (v_besch83 "înţelege") ;
|
||||
|
||||
|
||||
{-
|
||||
GImHungry = ss "mi-e foame" ;
|
||||
GImThirsty = ss "mi-e sete" ;
|
||||
@@ -60,8 +62,11 @@ Good = mkA "bun" "bună" "buni" "bune" "bine" ;
|
||||
GImScared = ss "mi-e frică" ;
|
||||
-}
|
||||
|
||||
|
||||
oper
|
||||
mkAPA : (_,_,_,_ : Str) -> AP = \x,y,z,u -> mkAP (mkA x y z u) ;
|
||||
mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep} = \p,i -> {
|
||||
name = mkCN p ;
|
||||
at = i ;
|
||||
to = to_Prep ---- ?
|
||||
} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
-- (c) 2009 Aarne Ranta under LGPL
|
||||
|
||||
concrete WordsSwe of Words = SentencesSwe **
|
||||
open SyntaxSwe, ParadigmsSwe in {
|
||||
open SyntaxSwe, ParadigmsSwe, IrregSwe, Prelude in {
|
||||
lin
|
||||
Wine = mkCN (mkN "vin" "vinet" "viner" "vinerna") ;
|
||||
Beer = mkCN (mkN "öl" neutrum) ;
|
||||
@@ -14,36 +14,97 @@ concrete WordsSwe of Words = SentencesSwe **
|
||||
Fish = mkCN (mkN "fisk") ;
|
||||
Fresh = mkA "färsk" ;
|
||||
Warm = mkA "varm" ;
|
||||
Italian = mkA "italiensk" ;
|
||||
Expensive = mkA "dyr" ;
|
||||
Delicious = mkA "läcker" ;
|
||||
Boring = mkA "tråkig" ;
|
||||
Good = mkA "god" "gott" "goda" "bättre" "bäst" ;
|
||||
|
||||
Restaurant = mkCN (mkN "restaurang" "restauranger") ;
|
||||
Bar = mkCN (mkN "bar" "barer") ;
|
||||
Toilet = mkCN (mkN "toalett" "toaletter") ;
|
||||
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å" ;
|
||||
Church = mkPlace (mkN "kyrka") "i" ;
|
||||
|
||||
Euro = mkCN (mkN "euro" "euro") ;
|
||||
Dollar = mkCN (mkN "dollar" "dollar") ;
|
||||
Lei = mkCN (mkN "lei" "lei") ;
|
||||
|
||||
English = mkNP (mkPN "engelska") ;
|
||||
Finnish = mkNP (mkPN "finska") ;
|
||||
French = mkNP (mkPN "franska") ;
|
||||
Romanian = mkNP (mkPN "rumänska") ;
|
||||
Swedish = mkNP (mkPN "svenska") ;
|
||||
English = mkNat "engelsk" "England" ;
|
||||
Finnish = mkNat "finsk" "Finland" ;
|
||||
French = mkNat "fransk" "Frankrike" ;
|
||||
Italian = mkNat "italiensk" "Italien" ;
|
||||
Romanian = mkNat "rumänsk" "Rumänien" ;
|
||||
Swedish = mkNat "svensk" "Sverige" ;
|
||||
|
||||
AWant p obj = mkCl p want_VV (mkVP have_V2 obj) ;
|
||||
ALike p item = mkCl p (mkV2 (mkV "tycker") (mkPrep "om")) item ;
|
||||
AHave p kind = mkCl p have_V2 (mkNP kind) ;
|
||||
ASpeak p lang = mkCl p (mkV2 (mkV "tala")) lang ;
|
||||
ALove p q = mkCl p (mkV2 (mkV "älska")) q ;
|
||||
Belgian = mkA "belgisk" ;
|
||||
Flemish = mkNP (mkPN "flamländska") ;
|
||||
Belgium = mkNP (mkPN "Belgien") ;
|
||||
|
||||
AHungry p = mkCl p (mkA "hungrig") ;
|
||||
AThirsty p = mkCl p (mkA "törstig") ;
|
||||
ATired p = mkCl p (mkA "trött") ;
|
||||
AScared p = mkCl p (mkA "rädd") ;
|
||||
AUnderstand p = mkCl p (mkV "förstå" "förstod" "förstått") ;
|
||||
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 ;
|
||||
AHave p kind = mkCl p.name have_V2 (mkNP kind) ;
|
||||
ASpeak p lang = mkCl p.name (mkV2 (mkV "tala")) lang ;
|
||||
ALove p q = mkCl p.name (mkV2 (mkV "älska")) q.name ;
|
||||
ACitizen p n = mkCl p.name n ;
|
||||
AHungry p = mkCl p.name (mkA "hungrig") ;
|
||||
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) ;
|
||||
ABePlace p place = mkCl p.name place.at ;
|
||||
AHasName p name = mkCl (nameOf p) name ;
|
||||
ALive p co =
|
||||
mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxSwe.mkAdv in_Prep co)) ;
|
||||
|
||||
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) ;
|
||||
|
||||
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 = SyntaxSwe.mkAdv on_Prep day ;
|
||||
habitual = SyntaxSwe.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"))
|
||||
(SyntaxSwe.mkAdv possess_Prep p.name)
|
||||
} ;
|
||||
}
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
DisambPhrasebookEng :
|
||||
DisambPhrasebookRon : AHungry AScared AThirsty ATired Coffee Finnish French GExcusePol GPleaseGivePol GSorryPol GWhatsYourNamePol Swedish Tea
|
||||
DisambPhrasebookRon : ABePlace ACitizen AHasName AHungry AIll AKnow ALive AScared AThirsty ATired AWantGo Airport Belgian Belgium Church Coffee English Finnish Flemish French Friday GExcusePol GPleaseGivePol GSorryPol Hospital Italian Monday Museum PropClosed PropClosedDate PropClosedDay PropOpen PropOpenDate PropOpenDay QWhatName Romanian Saturday Station Sunday Swedish Tea Thursday Tuesday Wednesday
|
||||
PhrasebookEng :
|
||||
PhrasebookFin :
|
||||
PhrasebookFre :
|
||||
PhrasebookIta : GNiceToMeetYou GSeeYouSoon Tea
|
||||
PhrasebookRon : AHungry AScared AThirsty ATired Coffee Finnish French GExcusePol GPleaseGivePol GSorryPol GWhatsYourNamePol Swedish Tea
|
||||
PhrasebookSwe : GExcusePol GPleaseGivePol GSorryPol
|
||||
PhrasebookIta : GNiceToMeetYou GSeeYouSoon
|
||||
PhrasebookRon : ABePlace ACitizen AHasName AHungry AIll AKnow ALive AScared AThirsty ATired AWantGo Airport Belgian Belgium Church Coffee English Finnish Flemish French Friday GExcusePol GPleaseGivePol GSorryPol Hospital Italian Monday Museum PropClosed PropClosedDate PropClosedDay PropOpen PropOpenDate PropOpenDay QWhatName Romanian Saturday Station Sunday Swedish Tea Thursday Tuesday Wednesday
|
||||
PhrasebookSwe :
|
||||
|
||||
Reference in New Issue
Block a user