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
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
} ;
}

View File

@@ -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 ;

View File

@@ -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" ;

View File

@@ -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" ;

View File

@@ -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" ;

View File

@@ -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ì" ;

View File

@@ -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" ;

View File

@@ -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" ;

View File

@@ -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

View File

@@ -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"
}

View File

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

View File

@@ -1,3 +1,5 @@
concrete SentencesFin of Sentences = NumeralFin ** SentencesI with
(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
(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};
}

View File

@@ -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} ;
}

View File

@@ -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};
}

View File

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

View File

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

View File

@@ -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 ;
}

View File

@@ -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)
} ;
}

View File

@@ -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ä") ;
}

View File

@@ -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) ;
}

View File

@@ -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) ;
}

View File

@@ -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 ---- ?
} ;
}

View File

@@ -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)
} ;
}

View File

@@ -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 :