mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-24 03:52:50 -06:00
better Estonian Phrasebook modules from https://github.com/GF-Estonian/GF-Estonian
This commit is contained in:
@@ -1,32 +1,26 @@
|
|||||||
--# -coding=latin1
|
|
||||||
concrete GreetingsEst of Greetings = SentencesEst [Greeting,mkGreeting] ** open Prelude in {
|
concrete GreetingsEst of Greetings = SentencesEst [Greeting,mkGreeting] ** open Prelude in {
|
||||||
|
|
||||||
---- TODO: real Estonian
|
lin
|
||||||
|
GBye = mkGreeting "head aega" ;
|
||||||
lin
|
GCheers = mkGreeting "terviseks" ;
|
||||||
GBye = mkGreeting "hei hei" ;
|
GDamn = mkGreeting "neetud" ;
|
||||||
GCheers = mkGreeting "terveydeksi" ;
|
GExcuse, GExcusePol = mkGreeting "vabandust" ;
|
||||||
GDamn = mkGreeting "hitto" ;
|
GGoodDay = mkGreeting "tere päevast" ;
|
||||||
GExcuse, GExcusePol = mkGreeting "anteeksi" ;
|
GGoodEvening = mkGreeting "tere õhtust" ;
|
||||||
GGoodDay = mkGreeting "hyvää päivää" ;
|
GGoodMorning = mkGreeting "tere hommikust" ;
|
||||||
GGoodEvening = mkGreeting "hyvää iltaa" ;
|
GGoodNight = mkGreeting "head ööd" ;
|
||||||
GGoodMorning = mkGreeting "hyvää huomenta" ;
|
GGoodbye = mkGreeting "head aega" ;
|
||||||
GGoodNight = mkGreeting "hyvää yötä" ;
|
GHello = mkGreeting "tere" ;
|
||||||
GGoodbye = mkGreeting "näkemiin" ;
|
GHelp = mkGreeting "appi" ;
|
||||||
GHello = mkGreeting "hei" ;
|
GHowAreYou = mkGreeting "kuidas käsi käib" ;
|
||||||
GHelp = mkGreeting "apua" ;
|
GLookOut = mkGreeting "ettevaatust" ;
|
||||||
GHowAreYou = mkGreeting "mitä kuuluu" ;
|
GNiceToMeetYou = mkGreeting "meeldiv tutvuda" ;
|
||||||
GLookOut = mkGreeting "varo" ;
|
GPleaseGive, GPleaseGivePol = mkGreeting "palun" ;
|
||||||
GNiceToMeetYou = mkGreeting "hauska tutustua" ;
|
GSeeYouSoon = mkGreeting "kohtumiseni" ;
|
||||||
GPleaseGive = mkGreeting "ole hyvä" ;
|
GSorry, GSorryPol = mkGreeting "vabandust" ;
|
||||||
GPleaseGivePol = mkGreeting "olkaa hyvä" ;
|
GThanks = mkGreeting "suur tänu" ;
|
||||||
GSeeYouSoon = mkGreeting "nähdään pian" ;
|
GTheCheck = mkGreeting "arve" ;
|
||||||
GSorry, GSorryPol = mkGreeting "anteeksi" ;
|
GCongratulations = mkGreeting "palju õnne";
|
||||||
GThanks = mkGreeting "kiitos" ;
|
GHappyBirthday = mkGreeting "palju õnne sünnipäevaks" ;
|
||||||
GTheCheck = mkGreeting "lasku" ;
|
GGoodLuck = mkGreeting "palju edu" ;
|
||||||
GCongratulations = mkGreeting "onnittelut";
|
|
||||||
GHappyBirthday = mkGreeting "hyvää syntymäpäivää" ;
|
|
||||||
GGoodLuck = mkGreeting "onnea" ;
|
|
||||||
GWhatTime = mkGreeting "paljonko kello on" | mkGreeting "mitä kello on" ;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
--# -path=.:present
|
|
||||||
|
|
||||||
concrete PhrasebookEst of Phrasebook =
|
concrete PhrasebookEst of Phrasebook =
|
||||||
GreetingsEst,
|
GreetingsEst,
|
||||||
WordsEst ** open
|
WordsEst ** open
|
||||||
|
|||||||
@@ -1,62 +1,55 @@
|
|||||||
--# -coding=latin1
|
concrete SentencesEst of Sentences = NumeralEst ** SentencesI -
|
||||||
concrete SentencesEst of Sentences = NumeralEst ** SentencesI
|
[NameNN, ObjMass,
|
||||||
|
|
||||||
{- ---- TODO functor exceptions
|
|
||||||
- [Is, IsMass, NameNN, ObjMass,
|
|
||||||
IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
|
|
||||||
WeMale, WeFemale, YouPlurFamMale, YouPlurFamFemale, YouPlurPolFemale, YouPlurPolMale,
|
|
||||||
NPPlace, CNPlace, placeNP, mkCNPlace, mkCNPlacePl,
|
NPPlace, CNPlace, placeNP, mkCNPlace, mkCNPlacePl,
|
||||||
GObjectPlease,
|
CitiNat,
|
||||||
NPNationality, mkNPNationality,
|
GObjectPlease
|
||||||
Country, PCountry
|
] with
|
||||||
]
|
|
||||||
-}
|
|
||||||
|
|
||||||
|
|
||||||
with
|
|
||||||
(Syntax = SyntaxEst),
|
(Syntax = SyntaxEst),
|
||||||
(Symbolic = SymbolicEst),
|
(Symbolic = SymbolicEst),
|
||||||
(Lexicon = LexiconEst) **
|
(Lexicon = LexiconEst) **
|
||||||
open SyntaxEst, ExtraEst, (P = ParadigmsEst), (V = VerbEst), Prelude in {
|
open SyntaxEst, ExtraEst, (P = ParadigmsEst), (V = VerbEst), Prelude in {
|
||||||
|
|
||||||
{- ---- TODO: functor exceptions for Est
|
flags optimize = noexpand ;
|
||||||
|
|
||||||
lincat
|
|
||||||
Country = {np : NP ; isExternal : Bool} ;
|
|
||||||
lin
|
|
||||||
PCountry x = mkPhrase (mkUtt x.np) ;
|
|
||||||
oper
|
oper
|
||||||
NPNationality = {lang : NP ; prop : A ; country : {np : NP ; isExternal : Bool}} ;
|
|
||||||
NPPlace = {name : NP ; at : Adv ; to : Adv ; from : Adv} ;
|
NPPlace = {name : NP ; at : Adv ; to : Adv ; from : Adv} ;
|
||||||
CNPlace = {name : CN ; isExternal : Bool ; isPl : Bool} ;
|
CNPlace = {name : CN ; at : Prep ; to : Prep ; from : Prep ; isPl : Bool} ;
|
||||||
|
|
||||||
placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
|
placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
|
||||||
let name : NP = mkNP det kind.name in {
|
let name : NP = mkNP det kind.name in {
|
||||||
name = name ;
|
name = name ;
|
||||||
at = mkAdv (P.casePrep (if_then_else P.Case kind.isExternal P.adessive P.inessive)) name ;
|
at = mkAdv kind.at name ;
|
||||||
to = mkAdv (P.casePrep (if_then_else P.Case kind.isExternal P.allative P.illative)) name ;
|
to = mkAdv kind.to name ;
|
||||||
from = mkAdv (P.casePrep (if_then_else P.Case kind.isExternal P.ablative P.elative)) name
|
from = mkAdv kind.from name
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
Is item prop = mkCl item (V.UseComp (CompPartAP prop)) ; -- tämä pizza on herkullista
|
-- The Fin-grammar overloaded the Is and IsMass functions to be
|
||||||
IsMass mass prop = mkCl (mkNP a_Det mass) (V.UseComp (CompPartAP prop)) ; -- pizza on herkullista
|
-- able to use the complement in partitive.
|
||||||
NameNN = mkNP (P.mkPN (P.mkN "NN" "NN:iä")) ;
|
-- This would be wrong in Est, where the complement is in nominative.
|
||||||
|
-- Fin: tämä pizza on herkullista
|
||||||
|
-- Is item prop = mkCl item (V.UseComp (CompPartAP prop)) ;
|
||||||
|
--
|
||||||
|
-- Fin: pizza on herkullista
|
||||||
|
-- IsMass mass prop = mkCl (mkNP a_Det mass) (V.UseComp (CompPartAP prop)) ;
|
||||||
|
|
||||||
|
NameNN = mkNP (P.mkPN (P.mkN "NN")) ;
|
||||||
|
|
||||||
|
-- Estonian does not have possessive endings and does not make use of ProDrop
|
||||||
|
-- that much, so we do not override SentencesI, like Finnish does.
|
||||||
|
{--
|
||||||
IMale, IFemale =
|
IMale, IFemale =
|
||||||
{name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = ProDropPoss i_Pron} ;
|
{name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = ProDropPoss i_Pron} ;
|
||||||
YouFamMale, YouFamFemale =
|
YouFamMale, YouFamFemale =
|
||||||
{name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = ProDropPoss youSg_Pron} ;
|
{name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = ProDropPoss youSg_Pron} ;
|
||||||
YouPolMale, YouPolFemale =
|
YouPolMale, YouPolFemale =
|
||||||
{name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = ProDropPoss youPol_Pron} ;
|
{name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = ProDropPoss youPol_Pron} ;
|
||||||
WeMale, WeFemale =
|
--}
|
||||||
{name = mkNP (ProDrop we_Pron) ; isPron = True ; poss = ProDropPoss we_Pron} ;
|
|
||||||
YouPlurFamMale, YouPlurFamFemale, YouPlurPolMale, YouPlurPolFemale =
|
|
||||||
{name = mkNP (ProDrop youPl_Pron) ; isPron = True ; poss = ProDropPoss youPl_Pron} ;
|
|
||||||
|
|
||||||
ObjMass = PartCN ;
|
ObjMass = PartCN ;
|
||||||
|
|
||||||
GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) (lin Voc (ss "kiitos"))) ;
|
GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) (lin Voc (ss "palun"))) ;
|
||||||
-}
|
|
||||||
|
CitiNat n = n.prop ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,133 +1,141 @@
|
|||||||
-- (c) 2010-2015 Aarne Ranta under LGPL
|
-- (c) 2010 Aarne Ranta under LGPL
|
||||||
--# -coding=latin1
|
-- Estonian port by Kaarel Kaljurand
|
||||||
|
|
||||||
concrete WordsEst of Words = SentencesEst **
|
concrete WordsEst of Words = SentencesEst **
|
||||||
open
|
open
|
||||||
SyntaxEst, ParadigmsEst, (L = LexiconEst),
|
SyntaxEst, ParadigmsEst, (L = LexiconEst), (R = ResEst),
|
||||||
Prelude, (E = ExtraEst) in {
|
Prelude, (E = ExtraEst) in {
|
||||||
|
|
||||||
flags optimize = noexpand ;
|
flags optimize = noexpand ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
|
|
||||||
---- TODO most Est words
|
|
||||||
|
|
||||||
-- kinds
|
-- kinds
|
||||||
|
|
||||||
Apple = mkCN L.apple_N ;
|
Apple = mkCN L.apple_N ;
|
||||||
Beer = mkCN L.beer_N ;
|
Beer = mkCN L.beer_N ;
|
||||||
Bread = mkCN L.bread_N ;
|
Bread = mkCN L.bread_N ;
|
||||||
---- Cheese = mkCN (mkN "juusto") ;
|
Cheese = mkCN (mkN "juust" "juustu" "juustu" "juustu" "juustude" "juuste") ;
|
||||||
---- Chicken = mkCN (mkN "kana") ;
|
Chicken = mkCN (mkN "kana") ;
|
||||||
---- Coffee = mkCN (mkN "kahvi") ;
|
Coffee = mkCN (mkN "kohv" "kohvi" "kohvi" "kohvi" "kohvide" "kohve") ;
|
||||||
Fish = mkCN L.fish_N ;
|
Fish = mkCN L.fish_N ;
|
||||||
---- Meat = mkCN (mkN "liha") ;
|
Meat = mkCN (mkN "liha") ;
|
||||||
Milk = mkCN L.milk_N ;
|
Milk = mkCN L.milk_N ;
|
||||||
---- Pizza = mkCN (mkN "pizza") ;
|
Pizza = mkCN (mkN "pitsa" "pitsa" "pitsat" "pitsasse" "pitsade" "pitsasid") ;
|
||||||
Salt = mkCN L.salt_N ;
|
Salt = mkCN L.salt_N ;
|
||||||
---- Tea = mkCN (mkN "tee") ;
|
Tea = mkCN (mkN "tee") ;
|
||||||
Water = mkCN L.water_N ;
|
Water = mkCN L.water_N ;
|
||||||
Wine = mkCN L.wine_N ;
|
Wine = mkCN L.wine_N ;
|
||||||
|
|
||||||
-- qualities
|
-- qualities
|
||||||
|
|
||||||
Bad = L.bad_A ;
|
Bad = L.bad_A ;
|
||||||
---- Boring = mkA "tylsä" ;
|
Boring = mkA "igav" ;
|
||||||
---- Cheap = mkA "halpa" ;
|
Cheap = mkA "odav" ;
|
||||||
Cold = L.cold_A ;
|
Cold = L.cold_A ;
|
||||||
---- Delicious = mkA "herkullinen" ;
|
Delicious = mkA "maitsev" ;
|
||||||
---- Expensive = mkA "kallis" ;
|
Expensive = mkA (mkN "kallis" "kalli" "kallist" "kallisse" "kallite" "kalleid");
|
||||||
---- Fresh = mkA "tuore" ;
|
Fresh = mkA "toores" ;
|
||||||
Good = L.good_A ;
|
Good = L.good_A ;
|
||||||
---- Suspect = mkA "epäilyttävä" ;
|
Suspect = mkA "kahtlane" ;
|
||||||
Warm = L.warm_A ;
|
Warm = L.warm_A ;
|
||||||
|
|
||||||
{- ---- TODO: everything below this
|
|
||||||
|
|
||||||
-- places
|
-- places
|
||||||
|
|
||||||
Restaurant = mkPlace (mkN "ravintola") ssa ;
|
Restaurant = mkPlace (mkN "restoran") ssa ;
|
||||||
Bank = mkPlace (mkN "pankki") ssa ;
|
Bank = mkPlace (mkN "pank") ssa ;
|
||||||
PostOffice = mkPlace (mkN "posti") ssa ;
|
PostOffice = mkPlace (mkN "post" (mkN "kontor")) ssa ;
|
||||||
Bar = mkPlace (mkN "baari") ssa ;
|
Bar = mkPlace (mkN "baar") ssa ;
|
||||||
Toilet = mkPlace (mkN "vessa") ssa ;
|
Toilet = mkPlace (mkN "tualett") ssa ;
|
||||||
Museum = mkPlace (mkN "museo") ssa ;
|
Museum = mkPlace (mkN "muuseum") ssa ;
|
||||||
Airport = mkPlace (mkN "lento" (mkN "kenttä")) lla ;
|
Airport = mkPlace (mkN "lennu" (mkN "jaam" "jaama" "jaama" "jaama" "jaamade" "jaamu")) ssa ; -- different in Fin
|
||||||
Station = mkPlace (mkN "asema") lla ;
|
Station = mkPlace (mkN "jaam" "jaama" "jaama" "jaama" "jaamade" "jaamu") ssa ; -- different in Fin
|
||||||
Hospital = mkPlace (mkN "sairaala") ssa ;
|
Hospital = mkPlace (mkN "haigla") ssa ;
|
||||||
Church = mkPlace (mkN "kirkko") ssa ;
|
Church = mkPlace (mkN "kirik") ssa ;
|
||||||
Cinema = mkPlace (mkN "elokuva" (mkN "teatteri")) ssa ;
|
Cinema = mkPlace (mkN "kino") ssa ;
|
||||||
Theatre = mkPlace (mkN "teatteri") ssa ;
|
Theatre = mkPlace (mkN "teater") ssa ;
|
||||||
Shop = mkPlace (mkN "kauppa") ssa ;
|
Shop = mkPlace (mkN "pood" "poe" "poodi" "poodi" "poodide" "poode") ssa ;
|
||||||
Park = mkPlace (mkN "puisto") ssa ;
|
Park = mkPlace (mkN "park") ssa ;
|
||||||
Hotel = mkPlace (mkN "hotelli") ssa ;
|
Hotel = mkPlace (mkN "hotell" "hotelli" "hotelli" "hotelli" "hotellide" "hotelle") ssa ;
|
||||||
University = mkPlace (mkN "yliopisto") lla ;
|
University = mkPlace (mkN "üli" (mkN "kool")) ssa ; -- different in Fin
|
||||||
School = mkPlace (mkN "koulu") lla ;
|
School = mkPlace (mkN "kool") ssa ; -- different in Fin
|
||||||
|
|
||||||
CitRestaurant cit = {
|
CitRestaurant cit = {
|
||||||
name = mkCN cit (mkN "ravintola") ; isExternal = False ; isPl = False
|
name = mkCN cit (mkN "restoran") ;
|
||||||
|
at = casePrep inessive ;
|
||||||
|
to = casePrep illative;
|
||||||
|
from = casePrep elative ;
|
||||||
|
isPl = False
|
||||||
} ;
|
} ;
|
||||||
Parking = mkPlace (mkN "pysäköinti" (mkN "alue")) lla ;
|
|
||||||
Supermarket = mkPlace (mkN "supermarket") ssa ;
|
Parking = mkPlace (mkN "parkla") ssa ; -- different in Fin
|
||||||
Pharmacy = mkPlace (mkN "apteekki") ssa ;
|
Supermarket = mkPlace (mkN "super" (mkN "market")) ssa ;
|
||||||
Center = mkPlace (mkN "keskusta") ssa ;
|
Pharmacy = mkPlace (mkN "apteek") ssa ;
|
||||||
Cafeteria = mkPlace (mkN "kahvila") ssa ;
|
Center = mkPlace (mkN "keskus") ssa ;
|
||||||
Disco = mkPlace (mkN "disko") ssa ;
|
Cafeteria = mkPlace (mkN "kohvik") ssa ;
|
||||||
Pub = mkPlace (mkN "pub") ssa ;
|
Disco = mkPlace (mkN "diskoteek") ssa ;
|
||||||
AmusementPark = mkPlace (mkN "huvi" (mkN "puisto")) ssa ;
|
Pub = mkPlace (mkN "kõrts") ssa ;
|
||||||
Zoo = mkPlace (mkN "eläin" (mkN "tarha")) ssa ;
|
AmusementPark = mkPlace (mkN "lõbustus" (mkN "park")) ssa ;
|
||||||
|
Zoo = mkPlace (mkN "looma" (mkN "aed" "aia" "aeda" "aeda" "aedade" "aedu")) ssa ;
|
||||||
|
|
||||||
-- currencies
|
-- currencies
|
||||||
|
|
||||||
DanishCrown = mkCN (mkN "Tanskan kruunu") | mkCN (mkN "kruunu") ;
|
DanishCrown = mkCN (kroon2 "taani") ;
|
||||||
Dollar = mkCN (mkN "dollari") ;
|
Dollar = mkCN (mkN "dollar") ;
|
||||||
Euro = mkCN (mkN "euro") ;
|
Euro = mkCN (mkN "euro") ;
|
||||||
Lei = mkCN (mkN "lei") ;
|
Lei = mkCN (mkN "leu") ;
|
||||||
Leva = mkCN (mkN "leva") ;
|
Leva = mkCN (mkN "leev") ;
|
||||||
NorwegianCrown = mkCN (mkN "Norjan kruunu") | mkCN (mkN "kruunu") ;
|
NorwegianCrown = mkCN (kroon2 "norra") ;
|
||||||
Pound = mkCN (mkN "punta") ;
|
Pound = mkCN (mkN "nael" "naela") ;
|
||||||
Rouble = mkCN (mkN "rupla") ;
|
Rouble = mkCN (mkN "rubla") ;
|
||||||
SwedishCrown = mkCN (mkN "Ruotsin kruunu") | mkCN (mkN "kruunu") ;
|
Rupee = mkCN (mkN "ruupia") ;
|
||||||
Zloty = mkCN (mkN "zloty" "zlotyja") ;
|
SwedishCrown = mkCN (kroon2 "rootsi") ;
|
||||||
|
Zloty = mkCN (mkN "zlott") ;
|
||||||
|
Yuan = mkCN (mkN "jüään") ;
|
||||||
|
|
||||||
-- nationalities
|
-- Citizenship
|
||||||
|
Belgian = mkA "belgia" ;
|
||||||
|
Indian = mkA "india" ;
|
||||||
|
|
||||||
Belgian = mkA "belgialainen" ;
|
-- Country
|
||||||
Belgium = {np = mkNP (mkPN "Belgia") ; isExternal = False} ;
|
Belgium = mkNP (mkPN "Belgia") ;
|
||||||
Bulgarian = mkNat (mkPN "bulgaria") (mkPN "Bulgaria") (mkA "bulgarialainen") ;
|
India = mkNP (mkPN "India") ;
|
||||||
Catalan = mkNat (mkPN "katalaani") (mkPN "Katalonia") (mkA "katalonialainen") ;
|
|
||||||
Danish = mkNat (mkPN "tanska") (mkPN "Tanska") (mkA "tanskalainen") ;
|
-- Nationality
|
||||||
Dutch = mkNat (mkPN "hollanti") (mkPN "Hollanti") (mkA "hollantilainen") ;
|
Bulgarian = mkNat "bulgaaria" (mkPN "Bulgaaria") ;
|
||||||
English = mkNat (mkPN "englanti") (mkPN "Englanti") (mkA "englantilainen") ;
|
Catalan = mkNat "katalaani" (mkPN "Kataloonia") ;
|
||||||
Finnish =
|
Chinese = mkNat "hiina" (mkPN "Hiina") ;
|
||||||
mkNat (mkPN (mkN "suomi" "suomia")) (mkPN (mkN "Suomi" "Suomia"))
|
Danish = mkNat "taani" (mkPN "Taani") ;
|
||||||
(mkA "suomalainen") ;
|
Dutch = mkNat "hollandi" (mkPN "Holland") ;
|
||||||
Flemish = mkNP (mkPN "flaami") ;
|
English = mkNat "inglise" (mkPN "Inglismaa") ;
|
||||||
French = mkNat (mkPN "ranska") (mkPN "Ranska") (mkA "ranskalainen") ;
|
Finnish = mkNat "soome" (mkPN "Soome") ;
|
||||||
German = mkNat (mkPN "saksa") (mkPN "Saksa") (mkA "saksalainen") ;
|
Flemish = mkNP (mkPN "flaami keel") ; -- Language
|
||||||
Italian = mkNat (mkPN "italia") (mkPN "Italia") (mkA "italialainen") ;
|
Hindi = mkNP (mkPN "hindi keel") ; -- Language
|
||||||
Norwegian = mkNat (mkPN "norja") (mkPN "Norja") (mkA "norjalainen") ;
|
French = mkNat "prantsuse" (mkPN "Prantsusmaa") ;
|
||||||
Polish = mkNat (mkPN "puola") (mkPN "Puola") (mkA "puolalainen") ;
|
German = mkNat "saksa" (mkPN "Saksamaa") ;
|
||||||
Romanian = mkNat (mkPN "romania") (mkPN "Romania") (mkA "romanialainen") ;
|
Italian = mkNat "itaalia" (mkPN "Itaalia") ;
|
||||||
Russian = mkNatExternal (mkPN "venäjä") (mkPN "Venäjä") (mkA "venäläinen") ;
|
Norwegian = mkNat "norra" (mkPN "Norra") ;
|
||||||
Spanish = mkNat (mkPN "espanja") (mkPN "Espanja") (mkA "espanjalainen") ;
|
Polish = mkNat "poola" (mkPN "Poola") ;
|
||||||
Swedish = mkNat (mkPN "ruotsi") (mkPN "Ruotsi") (mkA "ruotsalainen") ;
|
Romanian = mkNat "rumeenia" (mkPN "Rumeenia") ;
|
||||||
|
Russian = mkNat "vene" (mkPN "Venemaa") ;
|
||||||
|
Spanish = mkNat "hispaania" (mkPN "Hispaania") ;
|
||||||
|
Swedish = mkNat "rootsi" (mkPN "Rootsi") ;
|
||||||
|
|
||||||
---- it would be nice to have a capitalization Predef function
|
---- it would be nice to have a capitalization Predef function
|
||||||
|
|
||||||
-- means of transportation
|
-- means of transportation
|
||||||
|
|
||||||
Bike = mkTransport L.bike_N ;
|
Bike = mkTransport L.bike_N ;
|
||||||
Bus = mkTransport (mkN "bussi") ;
|
Bus = mkTransport (mkN "buss" "bussi" "bussi" "bussi" "busside" "busse") ;
|
||||||
Car = mkTransport L.car_N ;
|
Car = mkTransport L.car_N ;
|
||||||
Ferry = mkTransport (mkN "lautta") ;
|
Ferry = mkTransport (mkN "praam") ;
|
||||||
Plane = mkTransport L.airplane_N ;
|
Plane = mkTransport L.airplane_N ;
|
||||||
Subway = mkTransport (mkN "metro") ;
|
Subway = mkTransport (mkN "metroo") ;
|
||||||
Taxi = mkTransport (mkN "taksi") ;
|
Taxi = mkTransport (mkN "takso") ;
|
||||||
Train = mkTransport L.train_N ;
|
Train = mkTransport L.train_N ;
|
||||||
Tram = mkTransport (mkN "raitiovaunu") ;
|
Tram = mkTransport (mkN "tramm") ;
|
||||||
|
|
||||||
ByFoot = ParadigmsEst.mkAdv "jalkaisin" ;
|
ByFoot = ParadigmsEst.mkAdv "jalgsi" ;
|
||||||
|
|
||||||
|
|
||||||
-- actions
|
-- actions
|
||||||
@@ -135,156 +143,183 @@ concrete WordsEst of Words = SentencesEst **
|
|||||||
AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
|
AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
|
||||||
AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
|
AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
|
||||||
AHasName p name = mkCl (nameOf p) name ;
|
AHasName p name = mkCl (nameOf p) name ;
|
||||||
AHasRoom p = haveForPerson p.name (mkCN (mkN "huone")) ;
|
AHasRoom p = haveForPerson p.name (mkCN (mkN "tuba")) ;
|
||||||
AHasTable p = haveForPerson p.name (mkCN (mkN "pöytä")) ;
|
AHasTable p = haveForPerson p.name (mkCN (mkN "laud")) ;
|
||||||
AHungry p = E.AdvExistNP (SyntaxEst.mkAdv on_Prep p.name) (mkNP (mkN "nälkä")) ;
|
AHungry p = E.AdvExistNP (SyntaxEst.mkAdv on_Prep p.name) (mkNP (mkN "nälg")) ;
|
||||||
AIll p = mkCl p.name (mkA "sairas") ;
|
AIll p = mkCl p.name (mkA "haige") ;
|
||||||
AKnow p = mkCl p.name (mkV "tietää") ;
|
--AKnow p = mkCl p.name (mkV "teadma") ;
|
||||||
|
AKnow p = mkCl p.name L.know_VS ;
|
||||||
ALike p item = mkCl p.name L.like_V2 item ;
|
ALike p item = mkCl p.name L.like_V2 item ;
|
||||||
ALive p co = mkCl p.name (mkVP (mkVP (mkV "asua")) (SyntaxEst.mkAdv (casePrep (if_then_else Case co.isExternal adessive inessive)) co.np)) ;
|
ALive p co = mkCl p.name (mkVP (mkVP L.live_V) (SyntaxEst.mkAdv in_Prep co)) ;
|
||||||
ALove p q = mkCl p.name (mkV2 (mkV "rakastaa") partitive) q.name ;
|
ALove p q = mkCl p.name L.love_V2 q.name ;
|
||||||
AMarried p = mkCl p.name (ParadigmsEst.mkAdv "naimisissa") ;
|
AMarried p = mkCl p.name (ParadigmsEst.mkAdv "abielus") ;
|
||||||
AReady p = mkCl p.name (ParadigmsEst.mkA "valmis") ;
|
AReady p = mkCl p.name (ParadigmsEst.mkA "valmis") ;
|
||||||
AScared p = mkCl p.name (caseV partitive (mkV "pelottaa")) ;
|
-- Eng: I am scared
|
||||||
ASpeak p lang = mkCl p.name (mkV2 (mkV "puhua") partitive) lang ;
|
-- Fin: Minua pelottaa (partitive)
|
||||||
AThirsty p = E.AdvExistNP (SyntaxEst.mkAdv on_Prep p.name) (mkNP (mkN "jano")) ;
|
-- Est: Mina kardan (nominative)
|
||||||
ATired p = mkCl p.name (caseV partitive (mkV "väsyttää")) ;
|
-- Est: Mul on hirm (nominative)
|
||||||
AUnderstand p = mkCl p.name (mkV "ymmärtää") ;
|
-- AScared p = mkCl p.name (caseV nominative (mkV "kartma")) ;
|
||||||
AWant p obj = mkCl p.name (mkV2 "haluta") obj ;
|
AScared p = E.AdvExistNP (SyntaxEst.mkAdv on_Prep p.name) (mkNP (mkN "hirm")) ;
|
||||||
|
-- Fin: puhua: Puhun hollantia (partitive)
|
||||||
|
-- Est: Mina räägin hollandi keelt (partitive)
|
||||||
|
ASpeak p lang = mkCl p.name L.speak_V2 lang ;
|
||||||
|
AThirsty p = E.AdvExistNP (SyntaxEst.mkAdv on_Prep p.name) (mkNP (mkN "janu")) ;
|
||||||
|
-- Eng: I am tired
|
||||||
|
-- Fin: Minua väsyttää. (partitive)
|
||||||
|
-- Ger: Ich bin müde.
|
||||||
|
-- Est: Mina olen väsinud.
|
||||||
|
-- ATired p = mkCl p.name (caseV partitive (mkV "väsitada")) ;
|
||||||
|
ATired p = mkCl p.name (ParadigmsEst.mkA "väsinud") ;
|
||||||
|
-- TODO: better: aru saama / saan aru
|
||||||
|
-- AUnderstand p = mkCl p.name L.understand_V2 ;
|
||||||
|
AUnderstand p = mkCl p.name (mkV "mõistma") ;
|
||||||
|
AWant p obj = mkCl p.name (mkV2 "tahtma") obj ;
|
||||||
AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
|
AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
|
||||||
|
|
||||||
-- miscellaneous
|
-- miscellaneous
|
||||||
|
|
||||||
QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
|
QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
|
||||||
QWhatAge p = mkQS (mkQCl (E.ICompAP (mkAP L.old_A)) p.name) ;
|
QWhatAge p = mkQS (mkQCl (E.ICompAP (mkAP L.old_A)) p.name) ;
|
||||||
HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "maksaa"))) ;
|
HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "maksma"))) ;
|
||||||
ItCost item price = mkCl item (mkV2 (mkV "maksaa")) price ;
|
ItCost item price = mkCl item (mkV2 (mkV "maksma")) price ;
|
||||||
|
|
||||||
PropOpen p = mkCl p.name open_Adv ;
|
PropOpen p = mkCl p.name open_Adv ;
|
||||||
PropClosed p = mkCl p.name closed_Adv ;
|
PropClosed p = mkCl p.name closed_Adv ;
|
||||||
PropOpenDate p d = mkCl p.name (mkVP (mkVP open_Adv) d) ;
|
PropOpenDate p d = mkCl p.name (mkVP (mkVP open_Adv) d) ;
|
||||||
PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_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) ;
|
PropOpenDay p d = mkCl p.name (mkVP (mkVP open_Adv) d.habitual) ;
|
||||||
PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_Adv) d.habitual) ;
|
PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_Adv) d.habitual) ;
|
||||||
|
|
||||||
|
|
||||||
-- Building phrases from strings is complicated: the solution is to use
|
-- Building phrases from strings is complicated: the solution is to use
|
||||||
-- mkText : Text -> Text -> Text ;
|
-- mkText : Text -> Text -> Text ;
|
||||||
|
|
||||||
PSeeYouDate d = mkText (lin Text (ss ("nähdään"))) (mkPhrase (mkUtt d)) ;
|
PSeeYouDate d = mkText (lin Text (ss ("kohtumiseni"))) (mkPhrase (mkUtt d)) ;
|
||||||
PSeeYouPlace p = mkText (lin Text (ss ("nähdään"))) (mkPhrase (mkUtt p.at)) ;
|
PSeeYouPlace p = mkText (lin Text (ss ("kohtumiseni"))) (mkPhrase (mkUtt p.at)) ;
|
||||||
PSeeYouPlaceDate p d =
|
PSeeYouPlaceDate p d =
|
||||||
mkText (lin Text (ss ("nähdään")))
|
mkText (lin Text (ss ("kohtumiseni")))
|
||||||
(mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
|
(mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
|
||||||
|
|
||||||
-- Relations are expressed as "my wife" or "my son's wife", as defined by $xOf$
|
-- Relations are expressed as "my wife" or "my son's wife", as defined by $xOf$
|
||||||
-- below. Languages without productive genitives must use an equivalent of
|
-- below. Languages without productive genitives must use an equivalent of
|
||||||
-- "the wife of my son" for non-pronouns.
|
-- "the wife of my son" for non-pronouns.
|
||||||
|
|
||||||
Wife = xOf sing (mkN "vaimo") ;
|
Wife = xOf sing (mkN "naine") ;
|
||||||
Husband = xOf sing L.man_N ;
|
Husband = xOf sing L.man_N ;
|
||||||
Son = xOf sing L.boy_N ;
|
Son = xOf sing (mkN "poeg" "poja" "poega" "poegadesse" "poegade" "poegi") ;
|
||||||
Daughter = xOf sing (mkN "tytär") ;
|
Daughter = xOf sing (mkN "tütar" "tütre" "tütart" "tütresse" "tütarde" "tütreid") ;
|
||||||
Children = xOf plur L.child_N ;
|
Children = xOf plur L.child_N ;
|
||||||
|
|
||||||
-- week days
|
-- week days
|
||||||
|
|
||||||
Monday = let d = "maanantai" in mkDay (mkPN d) (d + "sin") ;
|
Monday = mkDayPaev "esmas" ;
|
||||||
Tuesday = let d = "tiistai" in mkDay (mkPN d) (d + "sin") ;
|
Tuesday = mkDayPaev "teisi" ;
|
||||||
Wednesday = let d = "keskiviikko" in mkDay (mkPN d) (d + "isin") ;
|
Wednesday = mkDayPaev "kolma" ;
|
||||||
Thursday = let d = "torstai" in mkDay (mkPN d) (d + "sin") ;
|
Thursday = mkDayPaev "nelja" ;
|
||||||
Friday = let d = "perjantai" in mkDay (mkPN d) (d + "sin") ;
|
Friday = mkDay (mkPN (mkN "reede" "reede")) ("reedeti") ;
|
||||||
Saturday = let d = "lauantai" in mkDay (mkPN d) (d + "sin") ;
|
Saturday = mkDayPaev "lau" ;
|
||||||
Sunday = let d = "sunnuntai" in mkDay (mkPN d) (d + "sin") ;
|
Sunday = mkDayPaev "püha" ;
|
||||||
|
|
||||||
Tomorrow = ParadigmsEst.mkAdv "huomenna" ;
|
Tomorrow = ParadigmsEst.mkAdv "homme" ;
|
||||||
|
|
||||||
-- transports
|
-- transports
|
||||||
|
|
||||||
HowFar place = mkQS (mkQCl far_IAdv place.name) ;
|
HowFar place = mkQS (mkQCl far_IAdv place.name) ;
|
||||||
HowFarFrom x y =
|
HowFarFrom x y =
|
||||||
mkQS (mkQCl far_IAdv (mkCl y.name x.from)) ;
|
mkQS (mkQCl far_IAdv (mkCl y.name x.from)) ;
|
||||||
HowFarFromBy x y t =
|
HowFarFromBy x y t =
|
||||||
mkQS (mkQCl far_IAdv (mkCl y.name
|
mkQS (mkQCl far_IAdv (mkCl y.name
|
||||||
(mkVP (mkVP x.from) t))) ;
|
(mkVP (mkVP x.from) t))) ;
|
||||||
HowFarBy place t =
|
HowFarBy place t =
|
||||||
mkQS (mkQCl far_IAdv (mkCl place.name t)) ;
|
mkQS (mkQCl far_IAdv (mkCl place.name t)) ;
|
||||||
-- mkQS (mkQCl (mkIAdv far_IAdv t) y.name) ;
|
-- mkQS (mkQCl (mkIAdv far_IAdv t) y.name) ;
|
||||||
|
|
||||||
WhichTranspPlace trans place =
|
WhichTranspPlace trans place =
|
||||||
mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
|
mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
|
||||||
|
|
||||||
IsTranspPlace trans place =
|
IsTranspPlace trans place =
|
||||||
mkQS (mkQCl (mkCl (mkVP (mkVP (mkVP (mkV "päästä")) place.to) trans.by))) ;
|
mkQS (mkQCl (mkCl (mkVP (mkVP (mkVP (mkV "saama")) trans.by) place.to))) ;
|
||||||
-- pääseekö keskustaan bussilla
|
-- pääseekö keskustaan bussilla
|
||||||
-- mkQS (mkQCl (E.AdvPredNP place.to L.go_V (E.PartCN (trans.name)))) ;
|
-- mkQS (mkQCl (E.AdvPredNP place.to L.go_V (E.PartCN (trans.name)))) ;
|
||||||
-- meneekö keskustaan bussia
|
-- meneekö keskustaan bussia
|
||||||
|
|
||||||
-- modifiers of places
|
-- modifiers of places
|
||||||
|
|
||||||
TheBest = mkSuperl L.good_A ;
|
TheBest = mkSuperl L.good_A ;
|
||||||
TheClosest = mkSuperl (mkA (mkN "läheinen") "lähempi" "lähin") ;
|
TheClosest = mkSuperl (mkA (mkN "lähedal asuv") "lähem" "lähim") ;
|
||||||
TheCheapest = mkSuperl (mkA (mkN "halpa") "halvempi" "halvin") ;
|
TheCheapest = mkSuperl (mkA "odav") ;
|
||||||
TheMostExpensive = mkSuperl (mkA (mkN "kallis") "kalliimpi" "kallein") ;
|
TheMostExpensive = mkSuperl (mkA (mkN "kallis" "kalli" "kallist" "kallisse" "kallite" "kalleid")) ;
|
||||||
TheMostPopular = mkSuperl (mkA "suosittu") ;
|
TheMostPopular = mkSuperl (mkA "populaarne") ;
|
||||||
TheWorst = mkSuperl (mkA "huono") ;
|
TheWorst = mkSuperl (L.bad_A) ;
|
||||||
|
|
||||||
SuperlPlace sup p = placeNP sup p ;
|
SuperlPlace sup p = placeNP sup p ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
mkNat : PN -> PN -> A ->
|
kroon : N = mkN "kroon" "krooni" "krooni" "krooni" "kroonide" "kroone" ;
|
||||||
{lang : NP ; prop : A ; country : {np : NP ; isExternal : Bool}} = \nat,co,pro ->
|
kroon2 : Str -> N = \taani -> mkN (taani + " ") kroon ;
|
||||||
{lang = mkNP nat ;
|
|
||||||
prop = pro ;
|
|
||||||
country = {np = mkNP co ; isExternal = False}
|
|
||||||
} ;
|
|
||||||
|
|
||||||
mkNatExternal : PN -> PN -> A ->
|
mkNat : Str -> PN ->
|
||||||
{lang : NP ; prop : A ; country : {np : NP ; isExternal : Bool}} = \nat,co,pro ->
|
{lang : NP ; prop : A ; country : NP} = \pro,co ->
|
||||||
{lang = mkNP nat ;
|
{lang = mkNP (mkCN (mkN pro (mkN "keel" "keele" "keelt" "keelde" "keelte" "keeli")));
|
||||||
prop = pro ;
|
prop = mkA (mkN pro) R.Invariable ;
|
||||||
country = {np = mkNP co ; isExternal = True}
|
country = mkNP co
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
---- using overloaded paradigms slows down compilation dramatically
|
---- using overloaded paradigms slows down compilation dramatically
|
||||||
|
-- Eng: See you on Monday!
|
||||||
|
-- Est: Kohtumiseni esmaspäeval! (adessive)
|
||||||
|
-- Fin: Nähdään maanantaina! (essive)
|
||||||
|
-- TODO: use StructuralEst.gf: on_Prep = casePrep adessive
|
||||||
mkDay : PN -> Str -> {name : NP ; point : Adv ; habitual : Adv} = \d,s ->
|
mkDay : PN -> Str -> {name : NP ; point : Adv ; habitual : Adv} = \d,s ->
|
||||||
let day = mkNP d in
|
let day = mkNP d in
|
||||||
{name = day ;
|
{name = day ;
|
||||||
point = SyntaxEst.mkAdv (casePrep essive) day ;
|
point = SyntaxEst.mkAdv (casePrep adessive) day ;
|
||||||
habitual = ParadigmsEst.mkAdv s
|
habitual = ParadigmsEst.mkAdv s
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkPlace : N -> Bool -> {name : CN ; isExternal : Bool ; isPl : Bool} = \p,e -> {
|
mkDayPaev : Str -> {name : NP ; point : Adv ; habitual : Adv} = \s ->
|
||||||
|
mkDay (mkPN (mkN (s + "päev") (s + "päeva"))) (s + "päeviti") ;
|
||||||
|
|
||||||
|
mkPlace : N -> Bool -> {name : CN ; at : Prep ; to : Prep; from : Prep ; isPl : Bool} = \p,e -> {
|
||||||
name = mkCN p ;
|
name = mkCN p ;
|
||||||
isExternal = e ;
|
at = casePrep (if_then_else Case e adessive inessive) ; -- True: external
|
||||||
isPl = False
|
to = casePrep (if_then_else Case e allative illative) ;
|
||||||
|
from = casePrep (if_then_else Case e ablative elative) ;
|
||||||
|
isPl = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ssa = False ;
|
ssa = False ;
|
||||||
lla = True ;
|
lla = True ;
|
||||||
|
|
||||||
xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
|
-- Ger-grammar uses this xOf (mis on nimi minu naise)
|
||||||
|
-- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ;
|
||||||
|
|
||||||
|
-- (mis on minu naise nimi)
|
||||||
|
xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
|
||||||
relativePerson n (mkCN x) (\a,b,c -> mkNP (E.GenNP b) a c) p ;
|
relativePerson n (mkCN x) (\a,b,c -> mkNP (E.GenNP b) a c) p ;
|
||||||
|
|
||||||
nameOf : NPPerson -> NP = \p -> (xOf sing L.name_N p).name ;
|
nameOf : NPPerson -> NP = \p -> (xOf sing L.name_N p).name ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
-- do you have a table for five persons
|
-- do you have a table for five persons
|
||||||
haveForPerson : NP -> CN -> Card -> Cl = \p,a,n ->
|
haveForPerson : NP -> CN -> Card -> Cl = \p,a,n ->
|
||||||
mkCl p have_V2
|
mkCl p have_V2
|
||||||
---- (mkNP (E.PartCN a) ---- partitive works in questions )
|
---- (mkNP (E.PartCN a) ---- partitive works in questions )
|
||||||
(mkNP (mkNP a_Det a)
|
(mkNP (mkNP a_Det a)
|
||||||
(SyntaxEst.mkAdv for_Prep (mkNP n (mkN "henki" "henkiä")))) ;
|
(SyntaxEst.mkAdv for_Prep (mkNP n L.person_N))) ;
|
||||||
---- (SyntaxEst.mkAdv for_Prep (mkNP (mkDet n)))) ; -- 60s faster compile 25/10/2010
|
---- (SyntaxEst.mkAdv for_Prep (mkNP (mkDet n)))) ; -- 60s faster compile 25/10/2010
|
||||||
|
|
||||||
open_Adv = ParadigmsEst.mkAdv "avoinna" ;
|
open_Adv = ParadigmsEst.mkAdv "avatud" ;
|
||||||
closed_Adv = ParadigmsEst.mkAdv "kiinni" ;
|
closed_Adv = ParadigmsEst.mkAdv "suletud" ;
|
||||||
|
|
||||||
|
-- Fin: casePrep adessive
|
||||||
|
-- Est: casePrep comitative
|
||||||
mkTransport : N -> {name : CN ; by : Adv} = \n -> {
|
mkTransport : N -> {name : CN ; by : Adv} = \n -> {
|
||||||
name = mkCN n ;
|
name = mkCN n ;
|
||||||
by = SyntaxEst.mkAdv (casePrep adessive) (mkNP n)
|
by = SyntaxEst.mkAdv (casePrep comitative) (mkNP n)
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkSuperl : A -> Det = \a -> SyntaxEst.mkDet the_Quant (mkOrd a) ;
|
mkSuperl : A -> Det = \a -> mkDet the_Quant (mkOrd a) ;
|
||||||
|
|
||||||
far_IAdv = E.IAdvAdv L.far_Adv ;
|
far_IAdv = E.IAdvAdv L.far_Adv ;
|
||||||
|
|
||||||
@@ -293,47 +328,45 @@ concrete WordsEst of Words = SentencesEst **
|
|||||||
--------------------------------------------------
|
--------------------------------------------------
|
||||||
|
|
||||||
lin
|
lin
|
||||||
Thai = mkNat (mkPN "thai") (mkPN "Thaimaa") (mkA "thaimaalainen") ;
|
Thai = mkNat ("tai") (mkPN "Tai") ;
|
||||||
Baht = mkCN (mkN "baht" "bahteja") ;
|
Baht = mkCN (mkN "baht") ;
|
||||||
|
|
||||||
Rice = mkCN (mkN "riisi") ;
|
Rice = mkCN (mkN "riis") ;
|
||||||
Pork = mkCN (mkN "sika") ;
|
Pork = mkCN (mkN "siga") ;
|
||||||
Beef = mkCN (mkN "nauta") ;
|
Beef = mkCN (mkN "veis") ;
|
||||||
Egg = mkCN L.egg_N ;
|
Egg = mkCN L.egg_N ;
|
||||||
Noodles = mkCN (mkN "nuudeli" "nuudeleita") ;
|
Noodles = mkCN (mkN "nuudel") ;
|
||||||
Shrimps = mkCN (mkN "katka" (mkN "rapu")) ;
|
Shrimps = mkCN (mkN "krevet") ;
|
||||||
Chili = mkCN (mkN "chili") ;
|
Chili = mkCN (mkN "tšilli") ;
|
||||||
Garlic = mkCN (mkN "valko" (mkN "sipuli")) ;
|
Garlic = mkCN (mkN "küüs" (mkN "lauk")) ;
|
||||||
Durian = mkCN (mkN "durian" "durianeja") ;
|
Durian = mkCN (mkN "duurian") ;
|
||||||
Mango = mkCN (mkN "mango" "mangoja") ;
|
Mango = mkCN (mkN "mango") ;
|
||||||
Pineapple = mkCN (mkN "ananas" "ananaksia") ;
|
Pineapple = mkCN (mkN "ananass") ;
|
||||||
Coke = mkCN (mkN "coca-cola") ;
|
Coke = mkCN (mkN "coca-cola") ;
|
||||||
IceCream = mkCN (mkN "jäätelö" "jäätelöitä") ;
|
IceCream = mkCN (mkN "jäätis") ;
|
||||||
Salad = mkCN (mkN "salaatti") ;
|
Salad = mkCN (mkN "salat") ;
|
||||||
OrangeJuice = mkCN (mkN "appelsiini" (mkN "mehu")) ;
|
OrangeJuice = mkCN (mkN "apelsiini" (mkN "mahl")) ;
|
||||||
Lemonade = mkCN (mkN "limsa") ;
|
Lemonade = mkCN (mkN "limonaad") ;
|
||||||
|
|
||||||
Beach = mkPlace (mkN "uima" (mkN "ranta")) lla ;
|
Beach = mkPlace (mkN "supel" (mkN "rand")) ssa ;
|
||||||
|
|
||||||
ItsRaining = mkCl (mkVP L.rain_V0) ;
|
ItsRaining = mkCl (mkVP L.rain_V0) ;
|
||||||
ItsCold = mkCl (mkVP L.cold_A) ;
|
ItsCold = mkCl (mkVP L.cold_A) ;
|
||||||
ItsWarm = mkCl (mkVP L.warm_A) ;
|
ItsWarm = mkCl (mkVP L.warm_A) ;
|
||||||
ItsWindy = mkCl (mkVP (mkV "tuulla")) ;
|
ItsWindy = mkCl (mkNP the_Det L.wind_N) (mkVP (mkV "puhuma")) ;
|
||||||
SunShine = mkCl (mkNP the_Det L.sun_N) (mkVP (mkV "paistaa")) ;
|
SunShine = mkCl (mkNP the_Det L.sun_N) (mkVP (mkV "paistma")) ;
|
||||||
|
|
||||||
Smoke = mkVP (mkV "tupakoida") ;
|
Smoke = mkVP (mkV "suitsetama") ;
|
||||||
|
|
||||||
ADoctor = mkProfession (mkN "lääkäri" "lääkäreitä") ;
|
ADoctor = mkProfession (mkN "arst") ;
|
||||||
AProfessor = mkProfession (mkN "professori" "professoreita") ;
|
AProfessor = mkProfession (mkN "professor") ;
|
||||||
ALawyer = mkProfession (mkN "laki" L.man_N) ;
|
ALawyer = mkProfession (mkN "jurist") ;
|
||||||
AEngineer = mkProfession (mkN "insinööri" "insinöörejä") ;
|
AEngineer = mkProfession (mkN "insener") ;
|
||||||
ATeacher = mkProfession (mkN "opettaja" "opettajia") ;
|
ATeacher = mkProfession (mkN "õpetaja") ;
|
||||||
ACook = mkProfession (mkN "kokki") ;
|
ACook = mkProfession (mkN "kokk") ;
|
||||||
AStudent = mkProfession (mkN "opiskelija" "opiskelijoita") ;
|
AStudent = mkProfession (mkN "õpilane") ;
|
||||||
ABusinessman = mkProfession (mkN "liike" L.man_N) ;
|
ABusinessman = mkProfession (mkN "äri" L.man_N) ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
|
mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
|
||||||
-}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user