generalized and extended Phrasebook in many ways

This commit is contained in:
aarne
2010-04-05 16:36:38 +00:00
parent c87fe6f0f6
commit 2ced613d81
25 changed files with 619 additions and 198 deletions

View File

@@ -1,16 +1,22 @@
--# -path=.:present --# -path=.:present
concrete DisambPhrasebookEng of Phrasebook = PhrasebookEng - concrete DisambPhrasebookEng of Phrasebook = PhrasebookEng -
[YouFam, YouPol, [
IMale, IFemale,
YouFamMale, YouFamFemale,
YouPolMale, YouPolFemale,
GExcuse, GExcusePol, GExcuse, GExcusePol,
GSorry, GSorryPol, GSorry, GSorryPol,
GPleaseGive, GPleaseGivePol, GPleaseGive, GPleaseGivePol
GWhatsYourName, GWhatsYourNamePol
] ]
** open SyntaxEng, ParadigmsEng, Prelude in { ** open SyntaxEng, ParadigmsEng, Prelude in {
lin lin
YouFam = mkNP (mkNP youSg_Pron) (ParadigmsEng.mkAdv "(familiar)") ; IMale = mkP i_Pron "(male)" ;
YouPol = mkNP (mkNP youPol_Pron) (ParadigmsEng.mkAdv "(polite)") ; 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" ; GExcuse = fam "excuse me" ;
GExcusePol = pol "excuse me" ; GExcusePol = pol "excuse me" ;
@@ -18,11 +24,14 @@ lin
GSorryPol = pol "sorry" ; GSorryPol = pol "sorry" ;
GPleaseGive = fam "please" ; GPleaseGive = fam "please" ;
GPleaseGivePol = pol "please" ; GPleaseGivePol = pol "please" ;
GWhatsYourName = ss "what's your name (familiar)" ;
GWhatsYourNamePol = ss "what's your name (polite)" ;
oper oper
fam : Str -> SS = \s -> postfixSS "(familiar)" (ss s) ; fam : Str -> SS = \s -> postfixSS "(familiar)" (ss s) ;
pol : Str -> SS = \s -> postfixSS "(polite)" (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
} ;
} }

View File

@@ -12,7 +12,6 @@ fun
GSorry, GSorryPol : Greeting ; GSorry, GSorryPol : Greeting ;
GGoodbye : Greeting ; GGoodbye : Greeting ;
GBye : Greeting ; GBye : Greeting ;
GWhatsYourName, GWhatsYourNamePol : Greeting ;
GNiceToMeetYou : Greeting ; GNiceToMeetYou : Greeting ;
GSeeYouSoon : Greeting ; GSeeYouSoon : Greeting ;
GHelp : Greeting ; GHelp : Greeting ;
@@ -22,6 +21,7 @@ fun
GGoodEvening : Greeting ; GGoodEvening : Greeting ;
GGoodNight : Greeting ; GGoodNight : Greeting ;
GTheCheck : Greeting ; GTheCheck : Greeting ;
GCheers : Greeting ;
GYes : Greeting ; GYes : Greeting ;
GNo : Greeting ; GNo : Greeting ;

View File

@@ -1,4 +1,4 @@
concrete GreetingsEng of Greetings = open Roles, Prelude in { concrete GreetingsEng of Greetings = open Prelude in {
lincat lincat
Greeting = SS ; Greeting = SS ;
@@ -12,7 +12,6 @@ lin
GSorry, GSorryPol = ss "sorry" ; GSorry, GSorryPol = ss "sorry" ;
GGoodbye = ss "goodbye" ; GGoodbye = ss "goodbye" ;
GBye = ss "bye" ; GBye = ss "bye" ;
GWhatsYourName, GWhatsYourNamePol = ss "what's your name" ;
GNiceToMeetYou = ss "nice to meet you" ; GNiceToMeetYou = ss "nice to meet you" ;
GSeeYouSoon = ss "see you soon" ; GSeeYouSoon = ss "see you soon" ;
GHelp = ss "help" ; GHelp = ss "help" ;
@@ -22,6 +21,7 @@ lin
GGoodEvening = ss "good evening" ; GGoodEvening = ss "good evening" ;
GGoodNight = ss "good night" ; GGoodNight = ss "good night" ;
GTheCheck = ss "the bill" ; GTheCheck = ss "the bill" ;
GCheers = ss "cheers" ;
GYes = ss "yes" ; GYes = ss "yes" ;
GNo = ss "no" ; GNo = ss "no" ;

View File

@@ -15,8 +15,6 @@ lin
GSorry, GSorryPol = ss "anteeksi" ; GSorry, GSorryPol = ss "anteeksi" ;
GGoodbye = ss "näkemiin" ; GGoodbye = ss "näkemiin" ;
GBye = ss "hei hei" ; GBye = ss "hei hei" ;
GWhatsYourName = ss "mikä sinun nimesi on" ;
GWhatsYourNamePol = ss "mikä teidän nimenne on" ;
GNiceToMeetYou = ss "hauska tutustua" ; GNiceToMeetYou = ss "hauska tutustua" ;
GSeeYouSoon = ss "nähdään pian" ; GSeeYouSoon = ss "nähdään pian" ;
GHelp = ss "apua" ; GHelp = ss "apua" ;
@@ -26,6 +24,7 @@ lin
GGoodEvening = ss "hyvää iltaa" ; GGoodEvening = ss "hyvää iltaa" ;
GGoodNight = ss "hyvää yötä" ; GGoodNight = ss "hyvää yötä" ;
GTheCheck = ss "lasku" ; GTheCheck = ss "lasku" ;
GCheers = ss "terveydeksi" ;
GYes = ss "kyllä" ; GYes = ss "kyllä" ;
GNo = ss "ei" ; GNo = ss "ei" ;

View File

@@ -1,4 +1,4 @@
concrete GreetingsFre of Greetings = open Roles,Prelude in { concrete GreetingsFre of Greetings = open Prelude in {
flags coding = utf8 ; flags coding = utf8 ;
@@ -16,8 +16,6 @@ lin
GSorry, GSorryPol = ss "pardon" ; GSorry, GSorryPol = ss "pardon" ;
GGoodbye = ss "au revoir" ; GGoodbye = ss "au revoir" ;
GBye = ss "au revoir" ; GBye = ss "au revoir" ;
GWhatsYourName = ss "comment t'appelles-tu" ;
GWhatsYourNamePol = ss "comment vous appelez-vous" ;
GNiceToMeetYou = ss "enchanté" ; GNiceToMeetYou = ss "enchanté" ;
GSeeYouSoon = ss "à bientôt" ; GSeeYouSoon = ss "à bientôt" ;
GHelp = ss "au secours" ; GHelp = ss "au secours" ;
@@ -27,6 +25,7 @@ lin
GGoodEvening = ss "bon soir" ; GGoodEvening = ss "bon soir" ;
GGoodNight = ss "bonne nuit" ; GGoodNight = ss "bonne nuit" ;
GTheCheck = ss "l'addition" ; GTheCheck = ss "l'addition" ;
GCheers = ss "santé" ;
GYes = ss "oui" ; ---- si GYes = ss "oui" ; ---- si
GNo = ss "non" ; GNo = ss "non" ;

View File

@@ -14,8 +14,6 @@ lin
GSorryPol = ss "scusimi" ; ---- GSorryPol = ss "scusimi" ; ----
GGoodbye = ss "arrivederci" ; GGoodbye = ss "arrivederci" ;
GBye = ss "ciao" ; GBye = ss "ciao" ;
GWhatsYourName = ss "come ti chiami" ;
GWhatsYourNamePol = ss "come si chiama" ;
-- GNiceToMeetYou = ss "piacevole" ; ---- -- GNiceToMeetYou = ss "piacevole" ; ----
-- GSeeYouSoon = ss "a poco tempo" ; ---- -- GSeeYouSoon = ss "a poco tempo" ; ----
GHelp = ss "aiuto" ; GHelp = ss "aiuto" ;
@@ -24,6 +22,7 @@ lin
GGoodDay = ss "buongiorno" ; GGoodDay = ss "buongiorno" ;
GGoodEvening = ss "buona sera" ; GGoodEvening = ss "buona sera" ;
GGoodNight = ss "buona notte" ; GGoodNight = ss "buona notte" ;
GCheers = ss "cincin" ;
GTheCheck = ss "il conto" ; GTheCheck = ss "il conto" ;
GYes = ss "sì" ; GYes = ss "sì" ;

View File

@@ -14,7 +14,6 @@ lin
GSorry = ss "îmi pare rău" ; GSorry = ss "îmi pare rău" ;
GGoodbye = ss "la revedere" ; GGoodbye = ss "la revedere" ;
GBye = ss "pa" ; GBye = ss "pa" ;
GWhatsYourName = ss "cum te cheamă" ;
GNiceToMeetYou = ss "încântat" ; GNiceToMeetYou = ss "încântat" ;
GSeeYouSoon = ss "pe curând" ; GSeeYouSoon = ss "pe curând" ;
GHelp = ss "ajutor" ; GHelp = ss "ajutor" ;
@@ -23,6 +22,7 @@ lin
GGoodDay = ss "bună ziua" ; GGoodDay = ss "bună ziua" ;
GGoodEvening = ss "bună seara" ; GGoodEvening = ss "bună seara" ;
GGoodNight = ss "noapte bună" ; GGoodNight = ss "noapte bună" ;
GCheers = ss "noroc" ;
GTheCheck = ss "nota de plată" ; GTheCheck = ss "nota de plată" ;
GYes = ss "da" ; GYes = ss "da" ;

View File

@@ -1,4 +1,4 @@
concrete GreetingsSwe of Greetings = open Roles, Prelude in { concrete GreetingsSwe of Greetings = open Prelude in {
lincat lincat
Greeting = SS ; Greeting = SS ;
@@ -7,9 +7,9 @@ lin
GHello = ss "hej" ; GHello = ss "hej" ;
GThanks = ss "tack" ; GThanks = ss "tack" ;
GHowAreYou = ss "hur står det till" ; GHowAreYou = ss "hur står det till" ;
GPleaseGive = ss "var så god" ; GPleaseGive, GPleaseGivePol = ss "var så god" ;
GExcuse = ss "ursäkta" ; GExcuse, GExcusePol = ss "ursäkta" ;
GSorry = ss "förlåt" ; GSorry, GSorryPol = ss "förlåt" ;
GGoodbye = ss "hej då" ; GGoodbye = ss "hej då" ;
GBye = ss "hej då" ; GBye = ss "hej då" ;
GNiceToMeetYou = ss "trevligt att träffas" ; GNiceToMeetYou = ss "trevligt att träffas" ;
@@ -20,10 +20,7 @@ lin
GGoodDay = ss "god dag" ; GGoodDay = ss "god dag" ;
GGoodEvening = ss "god afton" ; GGoodEvening = ss "god afton" ;
GGoodNight = ss "god natt" ; GGoodNight = ss "god natt" ;
GCheers = ss "skål" ;
GWhatsYourName = ss "vad heter du" ;
GWhatsYourNamePol = ss "vad heter ni" ;
GTheCheck = ss "notan" ; GTheCheck = ss "notan" ;
GYes = ss "ja" ; GYes = ss "ja" ;

View File

@@ -3,6 +3,9 @@ all: pgf missing
pgf: pgf:
gf -make PhrasebookEng.gf PhrasebookFin.gf PhrasebookFre.gf PhrasebookIta.gf PhrasebookRon.gf PhrasebookSwe.gf DisambPhrasebookEng.gf DisambPhrasebookRon.gf 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: missing:
echo "pg -missing | wf -file=missing.txt" | gf Phrasebook.pgf echo "pg -missing | wf -file=missing.txt" | gf Phrasebook.pgf

View File

@@ -2,11 +2,14 @@ abstract Sentences = Numeral ** {
cat cat
Phrase ; Phrase ;
Sentence ; Question ; Sentence ; Question ; Proposition ;
Object ; Item ; Kind ; Quality ; Property ; Object ; Item ; Kind ; Quality ; Property ;
Place ; PlaceKind ; Currency ; Price ; Language ; Place ; PlaceKind ; Currency ; Price ;
Person ; Action ; Person ; Action ;
Nationality ; Language ; Citizenship ; Country ;
Day ; -- weekday type
Date ; -- definite date
Name ;
fun fun
-- these phrases are formed here, not in Phrasebook, as they are functorial -- these phrases are formed here, not in Phrasebook, as they are functorial
PSentence : Sentence -> Phrase ; PSentence : Sentence -> Phrase ;
@@ -21,19 +24,22 @@ abstract Sentences = Numeral ** {
PCurrency : Currency -> Phrase ; PCurrency : Currency -> Phrase ;
PPrice : Price -> Phrase ; PPrice : Price -> Phrase ;
PLanguage : Language -> Phrase ; PLanguage : Language -> Phrase ;
PCitizenship : Citizenship -> Phrase ;
PCountry : Country -> Phrase ;
PDay : Day -> Phrase ;
Is : Item -> Quality -> Sentence ; Is : Item -> Quality -> Proposition ;
IsNot : Item -> Quality -> Sentence ;
WhetherIs : Item -> Quality -> Question ; SProp : Proposition -> Sentence ;
WhereIs : Place -> Question ; SPropNot : Proposition -> Sentence ;
QProp : Proposition -> Question ;
SAction : Action -> Sentence ; WhereIs : Place -> Question ;
SNotAction : Action -> Sentence ;
QAction : Action -> Question ; PropAction : Action -> Proposition ;
HowMuchCost : Item -> Question ; HowMuchCost : Item -> Question ;
ItCost : Item -> Price -> Sentence ; ItCost : Item -> Price -> Proposition ;
AmountCurrency : Numeral -> Currency -> Price ; AmountCurrency : Numeral -> Currency -> Price ;
ObjItem : Item -> Object ; ObjItem : Item -> Object ;
@@ -48,6 +54,19 @@ abstract Sentences = Numeral ** {
ThePlace : PlaceKind -> Place ; 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"
} }

View File

@@ -1,3 +1,5 @@
concrete SentencesEng of Sentences = NumeralEng ** SentencesI with concrete SentencesEng of Sentences = NumeralEng ** SentencesI with
(DiffPhrasebook = DiffPhrasebookEng), (DiffPhrasebook = DiffPhrasebookEng),
(Syntax = SyntaxEng) ; (Syntax = SyntaxEng),
(Symbolic = SymbolicEng),
(Lexicon = LexiconEng) ;

View File

@@ -1,3 +1,5 @@
concrete SentencesFin of Sentences = NumeralFin ** SentencesI with concrete SentencesFin of Sentences = NumeralFin ** SentencesI with
(DiffPhrasebook = DiffPhrasebookFin), (DiffPhrasebook = DiffPhrasebookFin),
(Syntax = SyntaxFin) ; (Syntax = SyntaxFin),
(Symbolic = SymbolicFin),
(Lexicon = LexiconFin) ;

View File

@@ -1,10 +1,22 @@
concrete SentencesFre of Sentences = NumeralFre ** SentencesI - [WhetherIs, QAction] concrete SentencesFre of Sentences = NumeralFre ** SentencesI - [
QProp,
IFemale, YouFamFemale, YouPolFemale
]
with with
(DiffPhrasebook = DiffPhrasebookFre), (DiffPhrasebook = DiffPhrasebookFre),
(Syntax = SyntaxFre) ** open SyntaxFre, ExtraFre in { (Syntax = SyntaxFre),
(Symbolic = SymbolicFre),
(Lexicon = LexiconFre) **
open SyntaxFre, ExtraFre, Prelude in {
lin lin
WhetherIs item quality = lin QS {s = \\_ => (EstcequeS (mkS (mkCl item quality))).s} ; QProp a =
QAction a = lin QS {s = \\_ => (EstcequeS (mkS a)).s} ; 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};
} }

View File

@@ -2,24 +2,33 @@ incomplete concrete SentencesI of Sentences = Numeral **
open open
DiffPhrasebook, DiffPhrasebook,
Syntax, Syntax,
Lexicon,
Symbolic, -- for names as strings
Prelude Prelude
in { in {
lincat lincat
Phrase = Text ; Phrase = Text ;
Sentence = S ; Sentence = S ;
Question = QS ; Question = QS ;
Proposition = Cl ;
Item = NP ; Item = NP ;
Kind = CN ; Kind = CN ;
Quality = AP ; Quality = AP ;
Property = A ; Property = A ;
Object = NP ; Object = NP ;
Place = NP ; Place = {name : NP ; at : Adv ; to : Adv} ;
PlaceKind = CN ; PlaceKind = {name : CN ; at : Prep ; to : Prep} ;
Currency = CN ; Currency = CN ;
Price = NP ; Price = NP ;
Action = Cl ; Action = Cl ;
Person = NP ; Person = {name : NP ; isPron : Bool ; poss : Det} ;
Nationality = {lang : NP ; prop : A ; country : NP} ;
Language = NP ; Language = NP ;
Citizenship = A ;
Country = NP ;
Day = {name : NP ; point : Adv ; habitual : Adv} ;
Date = Adv ;
Name = NP ;
lin lin
PSentence s = mkText s | lin Text (mkUtt s) ; -- optional '.' PSentence s = mkText s | lin Text (mkUtt s) ; -- optional '.'
PQuestion 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) ; PKind x = mkPhrase (mkUtt x) ;
PQuality x = mkPhrase (mkUtt x) ; PQuality x = mkPhrase (mkUtt x) ;
PNumeral x = mkPhrase (mkUtt (mkCard (x ** {lock_Numeral = <>}))) ; PNumeral x = mkPhrase (mkUtt (mkCard (x ** {lock_Numeral = <>}))) ;
PPlace x = mkPhrase (mkUtt x) ; PPlace x = mkPhrase (mkUtt x.name) ;
PPlaceKind x = mkPhrase (mkUtt x) ; PPlaceKind x = mkPhrase (mkUtt x.name) ;
PCurrency x = mkPhrase (mkUtt x) ; PCurrency x = mkPhrase (mkUtt x) ;
PPrice x = mkPhrase (mkUtt x) ; PPrice x = mkPhrase (mkUtt x) ;
PLanguage 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) ; SProp = mkS ;
IsNot item quality = mkS negativePol (mkCl item quality) ; SPropNot = mkS negativePol ;
WhetherIs item quality = mkQS (mkQCl (mkCl item quality)) ; QProp p = mkQS (mkQCl p) ;
WhereIs place = mkQS (mkQCl where_IAdv place) ;
SAction = mkS ; WhereIs place = mkQS (mkQCl where_IAdv place.name) ;
SNotAction = mkS negativePol ;
QAction a = mkQS (mkQCl a) ; PropAction a = a ;
HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item cost_V)) ; 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 ; 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) ; Very property = mkAP very_AdA (mkAP property) ;
Too property = mkAP too_AdA (mkAP property) ; Too property = mkAP too_AdA (mkAP property) ;
PropQuality property = 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 ; IMale, IFemale = mkPerson i_Pron ;
YouFam = mkNP youSg_Pron ; YouFamMale, YouFamFemale = mkPerson youSg_Pron ;
YouPol = mkNP youPol_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 oper
mkPhrase : Utt -> Text = \u -> lin Text u ; -- no punctuation 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} ;
} }

View File

@@ -1,5 +1,21 @@
concrete SentencesIta of Sentences = NumeralIta ** SentencesI concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
IFemale, YouFamFemale, YouPolFemale
]
with with
(DiffPhrasebook = DiffPhrasebookIta), (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};
}

View File

@@ -1,3 +1,5 @@
concrete SentencesRon of Sentences = NumeralRon ** SentencesI with concrete SentencesRon of Sentences = NumeralRon ** SentencesI with
(DiffPhrasebook = DiffPhrasebookRon), (DiffPhrasebook = DiffPhrasebookRon),
(Syntax = SyntaxRon) ; (Syntax = SyntaxRon),
(Symbolic = SymbolicRon),
(Lexicon = LexiconRon) ;

View File

@@ -1,3 +1,5 @@
concrete SentencesSwe of Sentences = NumeralSwe ** SentencesI with concrete SentencesSwe of Sentences = NumeralSwe ** SentencesI with
(DiffPhrasebook = DiffPhrasebookSwe), (DiffPhrasebook = DiffPhrasebookSwe),
(Syntax = SyntaxSwe) ; (Syntax = SyntaxSwe),
(Symbolic = SymbolicSwe),
(Lexicon = LexiconSwe) ;

View File

@@ -4,27 +4,48 @@ abstract Words = Sentences ** {
fun fun
Wine, Beer, Water, Coffee, Tea : Kind ; Wine, Beer, Water, Coffee, Tea : Kind ;
Cheese, Fish, Pizza : Kind ; Cheese, Fish, Pizza : Kind ;
Fresh, Warm, Italian, Fresh, Warm,
Expensive, Delicious, Boring, Good : Property ; Expensive, Delicious, Boring, Good : Property ;
Bar, Restaurant, Toilet : PlaceKind ; Bar, Restaurant, Toilet,
Museum, Airport, Station, Hospital, Church : PlaceKind ;
Euro, Dollar, Lei : Currency ; 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 -- actions can be expressed by different structures in different languages
AWant : Person -> Object -> Action ; AWant : Person -> Object -> Action ;
ALike : Person -> Item -> Action ; ALike : Person -> Item -> Action ;
AHave : Person -> Kind -> Action ; AHave : Person -> Kind -> Action ;
ASpeak : Person -> Language -> Action ; ASpeak : Person -> Language -> Action ;
ALove : Person -> Person -> Action ; ALove : Person -> Person -> Action ;
ACitizen : Person -> Citizenship -> Action ;
AHungry : Person -> Action ; AHungry : Person -> Action ;
AThirsty : Person -> Action ; AThirsty : Person -> Action ;
ATired : Person -> Action ; ATired : Person -> Action ;
AIll : Person -> Action ;
AScared : Person -> Action ; AScared : Person -> Action ;
AUnderstand : 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 ;
} }

View File

@@ -1,7 +1,9 @@
-- (c) 2009 Aarne Ranta under LGPL -- (c) 2009 Aarne Ranta under LGPL
concrete WordsEng of Words = SentencesEng ** concrete WordsEng of Words = SentencesEng **
open SyntaxEng, ParadigmsEng, IrregEng in { open
SyntaxEng, ParadigmsEng, (P = ParadigmsEng),
IrregEng, Prelude in {
lin lin
Wine = mkCN (mkN "wine") ; Wine = mkCN (mkN "wine") ;
Beer = mkCN (mkN "beer") ; Beer = mkCN (mkN "beer") ;
@@ -14,36 +16,96 @@ concrete WordsEng of Words = SentencesEng **
Fish = mkCN (mkN "fish" "fish") ; Fish = mkCN (mkN "fish" "fish") ;
Fresh = mkA "fresh" ; Fresh = mkA "fresh" ;
Warm = mkA "warm" ; Warm = mkA "warm" ;
Italian = mkA "Italian" ;
Expensive = mkA "expensive" ; Expensive = mkA "expensive" ;
Delicious = mkA "delicious" ; Delicious = mkA "delicious" ;
Boring = mkA "boring" ; Boring = mkA "boring" ;
Good = mkA "good" "better" "best" "well" ; Good = mkA "good" "better" "best" "well" ;
Restaurant = mkCN (mkN "restaurant") ; Restaurant = mkPlace "restaurant" "in" ;
Bar = mkCN (mkN "bar") ; Bar = mkPlace "bar" "in" ;
Toilet = mkCN (mkN "toilet") ; 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 Euro = mkCN (mkN "euro" "euros") ; -- to prevent euroes
Dollar = mkCN (mkN "dollar") ; Dollar = mkCN (mkN "dollar") ;
Lei = mkCN (mkN "leu" "lei") ; Lei = mkCN (mkN "leu" "lei") ;
English = mkNP (mkPN "English") ; English = mkNat "English" "England" ;
Finnish = mkNP (mkPN "Finnish") ; Finnish = mkNat "Finnish" "Finland" ;
French = mkNP (mkPN "French") ; French = mkNat "French" "France" ;
Romanian = mkNP (mkPN "Romanian") ; Italian = mkNat "Italian" "Italy" ;
Swedish = mkNP (mkPN "Swedish") ; Romanian = mkNat "Romanian" "Romania" ;
Swedish = mkNat "Swedish" "Sweden" ;
AWant p obj = mkCl p (mkV2 (mkV "want")) obj ; Belgian = mkA "Belgian" ;
ALike p item = mkCl p (mkV2 (mkV "like")) item ; Flemish = mkNP (mkPN "Flemish") ;
AHave p kind = mkCl p have_V2 (mkNP kind) ; Belgium = mkNP (mkPN "Belgium") ;
ASpeak p lang = mkCl p (mkV2 IrregEng.speak_V) lang ;
ALove p q = mkCl p (mkV2 (mkV "love")) q ;
AHungry p = mkCl p (mkA "hungry") ; Monday = mkDay "Monday" ;
AThirsty p = mkCl p (mkA "thirsty") ; Tuesday = mkDay "Tuesday" ;
ATired p = mkCl p (mkA "tired") ; Wednesday = mkDay "Wednesday" ;
AScared p = mkCl p (mkA "scared") ; Thursday = mkDay "Thursday" ;
AUnderstand p = mkCl p IrregEng.understand_V ; 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)
} ;
} }

View File

@@ -1,7 +1,9 @@
-- (c) 2009 Aarne Ranta under LGPL -- (c) 2009 Aarne Ranta under LGPL
concrete WordsFin of Words = SentencesFin ** concrete WordsFin of Words = SentencesFin **
open SyntaxFin, ParadigmsFin, DiffPhrasebookFin in { open
SyntaxFin, ParadigmsFin, (L = LangFin),
DiffPhrasebookFin, Prelude, (E = ExtraFin) in {
lin lin
Wine = mkCN (mkN "viini") ; Wine = mkCN (mkN "viini") ;
Beer = mkCN (mkN "olut" "oluita") ; 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ämpiminä" "lämpimiä" "lämpimien" "lämpimissä" "lämpimiin"
) )
"lämpimämpi" "lämpimin" ; "lämpimämpi" "lämpimin" ;
Italian = mkA "italialainen" ;
Expensive = mkA "kallis" ; Expensive = mkA "kallis" ;
Delicious = mkA "herkullinen" ; Delicious = mkA "herkullinen" ;
Boring = mkA "tylsä" ; Boring = mkA "tylsä" ;
Good = mkA (mkN "hyvä") "parempi" "paras" ; ---- comparisons? Good = mkA (mkN "hyvä") "parempi" "paras" ; ---- comparisons?
Restaurant = mkCN (mkN "ravintola") ; Restaurant = mkPlace (mkN "ravintola") False ;
Bar = mkCN (mkN "baari") ; Bar = mkPlace (mkN "baari") False ;
Toilet = mkCN (mkN "vessa") ; 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") ; Euro = mkCN (mkN "euro") ;
Dollar = mkCN (mkN "dollari") ; Dollar = mkCN (mkN "dollari") ;
Lei = mkCN (mkN "lei") ; Lei = mkCN (mkN "lei") ;
AWant p obj = mkCl p want_V2 obj ; ---- it would be nice to have a capitalization Predef function
ALike p item = mkCl p like_V2 item ; English = mkNat (mkPN "englanti") (mkPN "Englanti") (mkA "englantilainen") ;
AHave p kind = mkCl p have_V2 (mkNP kind) ; Finnish =
ASpeak p lang = mkCl p (mkV2 (mkV "puhua") partitive) lang ; mkNat (mkPN (mkN "suomi" "suomia")) (mkPN (mkN "Suomi" "Suomia"))
ALove p q = mkCl p (mkV2 (mkV "rakastaa") partitive) q ; (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") ; Belgian = mkA "belgialainen" ;
Finnish = mkNP (mkPN (mkN "suomi" "suomia")) ; Flemish = mkNP (mkPN "flaami") ;
French = mkNP (mkPN "ranska") ; Belgium = mkNP (mkPN "Belgia") ;
Romanian = mkNP (mkPN "romania") ;
Swedish = mkNP (mkPN "ruotsi") ;
AHungry p = mkCl p have_V2 (mkNP (mkN "nälkä")) ; Monday = let d = "maanantai" in mkDay (mkPN d) (d + "sin") ;
AThirsty p = mkCl p have_V2 (mkNP (mkN "jano")) ; Tuesday = let d = "tiistai" in mkDay (mkPN d) (d + "sin") ;
ATired p = mkCl p (caseV partitive (mkV "väsyttää")) ; Wednesday = let d = "keskiviikko" in mkDay (mkPN d) (d + "isin") ;
AScared p = mkCl p (caseV partitive (mkV "pelottaa")) ; Thursday = let d = "torstai" in mkDay (mkPN d) (d + "sin") ;
AUnderstand p = mkCl p (mkV "ymmärtää") ; 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ä") ;
} }

View File

@@ -5,8 +5,9 @@ concrete WordsFre of Words = SentencesFre ** open
DiffPhrasebookFre, DiffPhrasebookFre,
IrregFre, IrregFre,
(E = ExtraFre), (E = ExtraFre),
ParadigmsFre in ParadigmsFre,
{ (P = ParadigmsFre) in {
flags coding=utf8 ; flags coding=utf8 ;
lin lin
@@ -23,36 +24,92 @@ Pizza = mkCN (mkN "pizza" feminine) ;
Fresh = mkA "frais" "fraîche" "frais" "fraîchement" ; Fresh = mkA "frais" "fraîche" "frais" "fraîchement" ;
Warm = mkA "chaud" ; Warm = mkA "chaud" ;
Italian = mkA "italien" ;
Expensive = mkA "cher" ; Expensive = mkA "cher" ;
Delicious = mkA "délicieux" ; Delicious = mkA "délicieux" ;
Boring = mkA "ennuyeux" ; Boring = mkA "ennuyeux" ;
Good = prefixA (mkA "bon" "bonne" "bons" "bien") ; Good = prefixA (mkA "bon" "bonne" "bons" "bien") ;
Restaurant = mkCN (mkN "restaurant") ; Restaurant = mkPlace (mkN "restaurant") in_Prep ;
Bar = mkCN (mkN "bar") ; Bar = mkPlace (mkN "bar") in_Prep ;
Toilet = mkCN (mkN "toilette") ; 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") ; Euro = mkCN (mkN "euro") ;
Dollar = mkCN (mkN "dollar") ; Dollar = mkCN (mkN "dollar") ;
Lei = mkCN (mkN "lei") ; ---- ? Lei = mkCN (mkN "leu" "lei" masculine) ;
AWant p obj = mkCl p want_V2 obj ; English = mkNat "anglais" "Angleterre" ;
ALike p item = mkCl item plaire_V2 p ; Finnish = mkNat "finlandais" "Finlande" ;
AHave p kind = mkCl p have_V2 (mkNP kind) ; French = mkNat "français" "France" ;
ASpeak p lang = mkCl p (mkV2 (mkV "parler")) lang ; Italian = mkNat "italien" "Italie" ;
ALove p q = mkCl p (mkV2 (mkV "aimer")) q ; Romanian = mkNat "roumain" "Roumanie" ;
Swedish = mkNat "suédois" "Suède" ;
English = mkNP (mkPN "anglais") ; Belgian = mkA "belge" ;
Finnish = mkNP (mkPN "finnois") ; Flemish = mkNP (mkPN "flamand") ;
French = mkNP (mkPN "français") ; Belgium = mkNP (mkPN "Belgique") ;
Romanian = mkNP (mkPN "roumain") ;
Swedish = mkNP (mkPN "suédois") ; 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) ;
} }

View File

@@ -5,6 +5,8 @@ concrete WordsIta of Words = SentencesIta ** open
DiffPhrasebookIta, DiffPhrasebookIta,
BeschIta, BeschIta,
(E = ExtraIta), (E = ExtraIta),
(L = LexiconIta),
(P = ParadigmsIta),
ParadigmsIta in { ParadigmsIta in {
lin lin
@@ -13,7 +15,7 @@ Wine = mkCN (mkN "vino") ;
Beer = mkCN (mkN "birra") ; Beer = mkCN (mkN "birra") ;
Water = mkCN (mkN "acqua") ; Water = mkCN (mkN "acqua") ;
Coffee = mkCN (mkN "caffè") ; Coffee = mkCN (mkN "caffè") ;
-- Tea = mkCN (mkN "té") ; ---- Tea = mkCN (mkN "tè") ;
Cheese = mkCN (mkN "formaggio") ; Cheese = mkCN (mkN "formaggio") ;
Fish = mkCN (mkN "pesce") ; Fish = mkCN (mkN "pesce") ;
@@ -21,39 +23,92 @@ Pizza = mkCN (mkN "pizza") ;
Fresh = mkA "fresco" ; Fresh = mkA "fresco" ;
Warm = mkA "caldo" ; Warm = mkA "caldo" ;
Italian = mkA "italiano" ;
Expensive = mkA "caro" ; Expensive = mkA "caro" ;
Delicious = mkA "delizioso" ; Delicious = mkA "delizioso" ;
Boring = mkA "noioso" ; Boring = mkA "noioso" ;
Good = prefixA (mkA "buono" "buona" "buoni" "buone" "bene") ; Good = prefixA (mkA "buono" "buona" "buoni" "buone" "bene") ;
Restaurant = mkCN (mkN "ristorante") ; Restaurant = mkPlace (mkN "ristorante") P.in_Prep ;
Bar = mkCN (mkN "bar") ; Bar = mkPlace (mkN "bar") P.in_Prep ;
Toilet = mkCN (mkN "bagno") ; 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) ; Euro = mkCN (mkN "euro" "euro" masculine) ;
Dollar = mkCN (mkN "dollar") ; Dollar = mkCN (mkN "dollar") ;
Lei = mkCN (mkN "lei") ; ---- ? Lei = mkCN (mkN "lei") ; ---- ?
AWant p obj = mkCl p want_V2 obj ; English = mkNat "inglese" "Inghilterra" ;
ALike p item = mkCl item (mkV2 (mkV (piacere_64 "piacere")) dative) p ; Finnish = mkNat "finlandese" "Finlandia" ;
AHave p kind = mkCl p have_V2 (mkNP kind) ; French = mkNat "francese" "Francia" ;
ASpeak p lang = mkCl p (mkV2 (mkV "parlare")) lang ; Italian = mkNat "italiano" "Italia" ;
ALove p q = mkCl p (mkV2 (mkV "amare")) q ; Romanian = mkNat "rumeno" "Romania" ;
Swedish = mkNat "svedese" "Svezia" ;
English = mkNP (mkPN "inglese") ; Belgian = mkA "belgo" ;
Finnish = mkNP (mkPN "finlandese") ; Flemish = mkNP (mkPN "fiammingo") ;
French = mkNP (mkPN "francese") ; Belgium = mkNP (mkPN "Belgio") ;
Romanian = mkNP (mkPN "rumeno") ;
Swedish = mkNP (mkPN "svedese") ;
AHungry p = mkCl p (E.ComplCN have_V2 (mkCN (mkN "fame" feminine))) ; Monday = mkDay "lunedì" ;
AThirsty p = mkCl p (E.ComplCN have_V2 (mkCN (mkN "sete" feminine))) ; Tuesday = mkDay "martedì" ;
ATired p = mkCl p (mkA "stanco") ; Wednesday = mkDay "mercoledì" ;
AScared p = mkCl p (E.ComplCN have_V2 (mkCN (mkN "paura" feminine))) ; Thursday = mkDay "giovedì" ;
AUnderstand p = mkCl p (mkV "capire") ; 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) ;
} }

View File

@@ -22,37 +22,39 @@ Pizza = mkCN (mkN "pizza" "pizze" feminine) ;
Fresh = mkA "proaspăt" "proaspătă" "proaspeţi" "proaspete" ; Fresh = mkA "proaspăt" "proaspătă" "proaspeţi" "proaspete" ;
Warm = mkA "cald" "caldă" "calzi" "calde" ; Warm = mkA "cald" "caldă" "calzi" "calde" ;
Italian = mkA "italian" "italiană" "italieni" "italiene" ;
Expensive = mkA "scump" "scumpă" "scumpi" "scumpe" ; Expensive = mkA "scump" "scumpă" "scumpi" "scumpe" ;
Delicious = mkA "delicios" "delcioasă" "delicioşi" "delicioase" ; Delicious = mkA "delicios" "delcioasă" "delicioşi" "delicioase" ;
Boring = mkA "plictisitor" "plictisitoare" "plictisitori" "plictisitoare" ; Boring = mkA "plictisitor" "plictisitoare" "plictisitori" "plictisitoare" ;
Good = mkA "bun" "bună" "buni" "bune" "bine" ; Good = mkA "bun" "bună" "buni" "bune" "bine" ;
Restaurant = mkCN (mkN "restaurant") ; Restaurant = mkPlace (mkN "restaurant") in_Prep ;
Bar = mkCN (mkNR "bar") ; Bar = mkPlace (mkNR "bar") in_Prep ;
Toilet = mkCN (mkN "toaleta") ; Toilet = mkPlace (mkN "toaleta") in_Prep ;
Euro = mkCN (mkN "euro" "euro") ; Euro = mkCN (mkN "euro" "euro") ;
Dollar = mkCN (mkN "dolar" masculine) ; Dollar = mkCN (mkN "dolar" masculine) ;
Lei = mkCN (mkN "leu" "lei") ; Lei = mkCN (mkN "leu" "lei") ;
AWant p obj = mkCl p want_V2 obj ; -- English = SyntaxRon.mkNP (mkPN "engleză") ; ---- ?
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ă") ; ---- ?
-- Finnish = mkNP (mkPN "finnois") ; -- Finnish = mkNP (mkPN "finnois") ;
-- French = mkNP (mkPN "français") ; -- 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") ; -- 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")) ; -- AHungry p = mkCl p have_V2 (SyntaxRon.mkNP a_Det (mkN "foame")) ;
-- AThirsty p = mkCl p (E.ComplCN have_V2 (mkCN (mkN "sete" feminine))) ; -- AThirsty p = mkCl p (E.ComplCN have_V2 (mkCN (mkN "sete" feminine))) ;
-- ATired p = mkCl p (mkA "stanco") ; -- ATired p = mkCl p (mkA "stanco") ;
-- AScared p = mkCl p (E.ComplCN have_V2 (mkCN (mkN "paura" feminine))) ; -- 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" ; GImHungry = ss "mi-e foame" ;
GImThirsty = ss "mi-e sete" ; GImThirsty = ss "mi-e sete" ;
@@ -60,8 +62,11 @@ Good = mkA "bun" "bună" "buni" "bune" "bine" ;
GImScared = ss "mi-e frică" ; GImScared = ss "mi-e frică" ;
-} -}
oper 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 ---- ?
} ;
} }

View File

@@ -1,7 +1,7 @@
-- (c) 2009 Aarne Ranta under LGPL -- (c) 2009 Aarne Ranta under LGPL
concrete WordsSwe of Words = SentencesSwe ** concrete WordsSwe of Words = SentencesSwe **
open SyntaxSwe, ParadigmsSwe in { open SyntaxSwe, ParadigmsSwe, IrregSwe, Prelude in {
lin lin
Wine = mkCN (mkN "vin" "vinet" "viner" "vinerna") ; Wine = mkCN (mkN "vin" "vinet" "viner" "vinerna") ;
Beer = mkCN (mkN "öl" neutrum) ; Beer = mkCN (mkN "öl" neutrum) ;
@@ -14,36 +14,97 @@ concrete WordsSwe of Words = SentencesSwe **
Fish = mkCN (mkN "fisk") ; Fish = mkCN (mkN "fisk") ;
Fresh = mkA "färsk" ; Fresh = mkA "färsk" ;
Warm = mkA "varm" ; Warm = mkA "varm" ;
Italian = mkA "italiensk" ;
Expensive = mkA "dyr" ; Expensive = mkA "dyr" ;
Delicious = mkA "läcker" ; Delicious = mkA "läcker" ;
Boring = mkA "tråkig" ; Boring = mkA "tråkig" ;
Good = mkA "god" "gott" "goda" "bättre" "bäst" ; Good = mkA "god" "gott" "goda" "bättre" "bäst" ;
Restaurant = mkCN (mkN "restaurang" "restauranger") ; Restaurant = mkPlace (mkN "restaurang" "restauranger") "på" ;
Bar = mkCN (mkN "bar" "barer") ; Bar = mkPlace (mkN "bar" "barer") "i" ;
Toilet = mkCN (mkN "toalett" "toaletter") ; 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") ; Euro = mkCN (mkN "euro" "euro") ;
Dollar = mkCN (mkN "dollar" "dollar") ; Dollar = mkCN (mkN "dollar" "dollar") ;
Lei = mkCN (mkN "lei" "lei") ; Lei = mkCN (mkN "lei" "lei") ;
English = mkNP (mkPN "engelska") ; English = mkNat "engelsk" "England" ;
Finnish = mkNP (mkPN "finska") ; Finnish = mkNat "finsk" "Finland" ;
French = mkNP (mkPN "franska") ; French = mkNat "fransk" "Frankrike" ;
Romanian = mkNP (mkPN "rumänska") ; Italian = mkNat "italiensk" "Italien" ;
Swedish = mkNP (mkPN "svenska") ; Romanian = mkNat "rumänsk" "Rumänien" ;
Swedish = mkNat "svensk" "Sverige" ;
AWant p obj = mkCl p want_VV (mkVP have_V2 obj) ; Belgian = mkA "belgisk" ;
ALike p item = mkCl p (mkV2 (mkV "tycker") (mkPrep "om")) item ; Flemish = mkNP (mkPN "flamländska") ;
AHave p kind = mkCl p have_V2 (mkNP kind) ; Belgium = mkNP (mkPN "Belgien") ;
ASpeak p lang = mkCl p (mkV2 (mkV "tala")) lang ;
ALove p q = mkCl p (mkV2 (mkV "älska")) q ;
AHungry p = mkCl p (mkA "hungrig") ; Monday = mkDay "måndag" ;
AThirsty p = mkCl p (mkA "törstig") ; Tuesday = mkDay "tisdag" ;
ATired p = mkCl p (mkA "trött") ; Wednesday = mkDay "onsdag" ;
AScared p = mkCl p (mkA "rädd") ; Thursday = mkDay "torsdag" ;
AUnderstand p = mkCl p (mkV "förstå" "förstod" "förstått") ; 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)
} ;
} }

View File

@@ -1,8 +1,8 @@
DisambPhrasebookEng : 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 : PhrasebookEng :
PhrasebookFin : PhrasebookFin :
PhrasebookFre : PhrasebookFre :
PhrasebookIta : GNiceToMeetYou GSeeYouSoon Tea PhrasebookIta : GNiceToMeetYou GSeeYouSoon
PhrasebookRon : AHungry AScared AThirsty ATired Coffee Finnish French GExcusePol GPleaseGivePol GSorryPol GWhatsYourNamePol Swedish Tea 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 : GExcusePol GPleaseGivePol GSorryPol PhrasebookSwe :