diff --git a/WebSetup.hs b/WebSetup.hs
index ee9f741d6..e18847a6b 100644
--- a/WebSetup.hs
+++ b/WebSetup.hs
@@ -1,12 +1,13 @@
module WebSetup(buildWeb,installWeb,copyWeb,numJobs,execute) where
-import System.Directory(createDirectoryIfMissing,copyFile)
+import System.Directory(createDirectoryIfMissing,copyFile,doesDirectoryExist)
import System.FilePath((>),dropExtension)
import System.Process(rawSystem)
import System.Exit(ExitCode(..))
import Distribution.Simple.Setup(BuildFlags(..),Flag(..),CopyDest(..),copyDest)
import Distribution.Simple.LocalBuildInfo(datadir,buildDir,absoluteInstallDirs)
-import Distribution.Simple.Utils(die)
+import Distribution.Simple.Utils(die,noticeNoWrap)
+import qualified Distribution.Verbosity
{-
To test the GF web services, the minibar and the grammar editor, use
@@ -16,6 +17,16 @@ import Distribution.Simple.Utils(die)
Chrome). The example grammars listed below will be available in the minibar.
-}
+{-
+ Update 2018-07-04
+
+ The example grammars have now been removed from the GF repository.
+ This script will look for them in ../gf-contrib and build them from there if possible.
+ If not, the user will be given a message and nothing is build or copied.
+ (Unfortunately cabal install seems to hide all messages from stdout,
+ so users won't see this message unless they check the log.)
+-}
+
example_grammars = -- :: [(pgf, subdir, src)]
[("Letter.pgf","letter",letterSrc)
,("Foods.pgf","foods",foodsSrc)
@@ -34,10 +45,20 @@ example_grammars = -- :: [(pgf, subdir, src)]
letterSrc = ["Letter"++lang++".gf"|lang<-letterLangs]
letterLangs = words "Eng Fin Fre Heb Rus Swe"
+contrib_dir :: FilePath
+contrib_dir = "..">"gf-contrib"
-buildWeb gf (flags,pkg,lbi) =
- do --putStrLn "buildWeb"
- mapM_ build_pgf example_grammars
+buildWeb gf (flags,pkg,lbi) = do
+ contrib_exists <- doesDirectoryExist contrib_dir
+ if contrib_exists
+ then mapM_ build_pgf example_grammars
+ else noticeNoWrap Distribution.Verbosity.normal $ unlines
+ [ "---"
+ , "Example grammars are no longer included in the main GF repository, but have moved to gf-contrib."
+ , "If you want these example grammars to be built, clone this repository in the same top-level directory as GF:"
+ , "https://github.com/GrammaticalFramework/gf-contrib.git"
+ , "---"
+ ]
where
gfo_dir = buildDir lbi > "examples"
@@ -47,7 +68,7 @@ buildWeb gf (flags,pkg,lbi) =
execute gf args
where
tmp_dir = gfo_dir>subdir
- dir = "examples">subdir
+ dir = contrib_dir>subdir
args = numJobs flags++["-make","-s"] -- ,"-optimize-pgf"
++["--gfo-dir="++tmp_dir,
"--gf-lib-path="++buildDir lbi > "rgl",
@@ -63,10 +84,13 @@ copyWeb flags = setupWeb dest
NoFlag -> NoCopyDest
Flag d -> d
-setupWeb dest (pkg,lbi) =
- do mapM_ (createDirectoryIfMissing True) [grammars_dir,cloud_dir]
- mapM_ copy_pgf example_grammars
- copyGFLogo
+setupWeb dest (pkg,lbi) = do
+ mapM_ (createDirectoryIfMissing True) [grammars_dir,cloud_dir]
+ contrib_exists <- doesDirectoryExist contrib_dir
+ if contrib_exists
+ then mapM_ copy_pgf example_grammars
+ else return () -- message already displayed from buildWeb
+ copyGFLogo
where
grammars_dir = www_dir > "grammars"
cloud_dir = www_dir > "tmp" -- hmm
diff --git a/examples/README.md b/examples/README.md
deleted file mode 100644
index e073602ab..000000000
--- a/examples/README.md
+++ /dev/null
@@ -1,16 +0,0 @@
-# `/examples`
-
-All contributions (`contrib` and `examples` folders) have now been
-moved to a separate git repository at:
-
-https://github.com/GrammaticalFramework/gf-contrib
-
-This `examples` folder remains because its contents are compiled by
-SetupWeb, so that when you run the GF cloud server locally you already
-have some toy grammars to play with.
-
-Any updates to these grammars should be made at the gf-contrib repository
-above; changes will be copied from there to here manually.
-
-John J. Camilleri,
-2013-09-16
diff --git a/examples/foods/CharactersGla.gf b/examples/foods/CharactersGla.gf
deleted file mode 100644
index 007ca7a24..000000000
--- a/examples/foods/CharactersGla.gf
+++ /dev/null
@@ -1,13 +0,0 @@
---# -coding=latin1
-resource CharactersGla = {
-
- --Character classes
- oper
- vowel : pattern Str = #("a"|"e"|"i"|"o"|"u"|""|""|""|""|"") ;
- vowelCap : pattern Str = #("A"|"E"|"I"|"O"|"U"|""|""|""|""|"") ;
- consonant : pattern Str = #("b"|"c"|"d"|"f"|"g"|"h"|"j"|"k"|"l"|"m"|"n"|"p"|"q"|"r"|"s"|"t"|"v"|"w"|"x"|"z") ;
- consonantCap : pattern Str = #("B"|"C"|"D"|"F"|"G"|"H"|"J"|"K"|"L"|"M"|"N"|"P"|"Q"|"R"|"S"|"T"|"V"|"W"|"X"|"Z") ;
- broadVowel : pattern Str = #("a"|"o"|"u"|""|""|"") ;
- slenderVowel : pattern Str = #("e"|"i"|""|"") ;
-
-}
\ No newline at end of file
diff --git a/examples/foods/CharactersGle.gf b/examples/foods/CharactersGle.gf
deleted file mode 100644
index 8315703a6..000000000
--- a/examples/foods/CharactersGle.gf
+++ /dev/null
@@ -1,13 +0,0 @@
---# -coding=latin1
-resource CharactersGle = {
-
- --Character classes
- oper
- vowel : pattern Str = #("a"|"e"|"i"|"o"|"u"|""|""|""|""|"") ;
- vowelCap : pattern Str = #("A"|"E"|"I"|"O"|"U"|""|""|""|""|"") ;
- consonant : pattern Str = #("b"|"c"|"d"|"f"|"g"|"h"|"j"|"k"|"l"|"m"|"n"|"p"|"q"|"r"|"s"|"t"|"v"|"w"|"x"|"z") ;
- consonantCap : pattern Str = #("B"|"C"|"D"|"F"|"G"|"H"|"J"|"K"|"L"|"M"|"N"|"P"|"Q"|"R"|"S"|"T"|"V"|"W"|"X"|"Z") ;
- broadVowel : pattern Str = #("a"|"o"|"u"|""|""|"") ;
- slenderVowel : pattern Str = #("e"|"i"|""|"") ;
-
-}
\ No newline at end of file
diff --git a/examples/foods/Foods.gf b/examples/foods/Foods.gf
deleted file mode 100644
index 8ea02f39d..000000000
--- a/examples/foods/Foods.gf
+++ /dev/null
@@ -1,15 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
-
-abstract Foods = {
- flags startcat = Comment ;
- cat
- Comment ; Item ; Kind ; Quality ;
- fun
- Pred : Item -> Quality -> Comment ;
- This, That, These, Those : Kind -> Item ;
- Mod : Quality -> Kind -> Kind ;
- Wine, Cheese, Fish, Pizza : Kind ;
- Very : Quality -> Quality ;
- Fresh, Warm, Italian,
- Expensive, Delicious, Boring : Quality ;
-}
diff --git a/examples/foods/FoodsAfr.gf b/examples/foods/FoodsAfr.gf
deleted file mode 100644
index a9c4eec77..000000000
--- a/examples/foods/FoodsAfr.gf
+++ /dev/null
@@ -1,77 +0,0 @@
--- (c) 2009 Laurette Pretorius Sr & Jr and Ansu Berg under LGPL
---# -coding=latin1
-
-concrete FoodsAfr of Foods = open Prelude, Predef in{
- lincat
- Comment = {s: Str} ;
- Kind = {s: Number => Str} ;
- Item = {s: Str ; n: Number} ;
- Quality = {s: AdjAP => Str} ;
-
- lin
- Pred item quality = {s = item.s ++ "is" ++ (quality.s ! Predic)};
- This kind = {s = "hierdie" ++ (kind.s ! Sg); n = Sg};
- That kind = {s = "daardie" ++ (kind.s ! Sg); n = Sg};
- These kind = {s = "hierdie" ++ (kind.s ! Pl); n = Pl};
- Those kind = {s = "daardie" ++ (kind.s ! Pl); n = Pl};
- Mod quality kind = {s = table{n => (quality.s ! Attr) ++ (kind.s!n)}};
-
- Wine = declNoun_e "wyn";
- Cheese = declNoun_aa "kaas";
- Fish = declNoun_ss "vis";
- Pizza = declNoun_s "pizza";
-
- Very quality = veryAdj quality;
-
- Fresh = regAdj "vars";
- Warm = regAdj "warm";
- Italian = smartAdj_e "Italiaans";
- Expensive = regAdj "duur";
- Delicious = smartAdj_e "heerlik";
- Boring = smartAdj_e "vervelig";
-
- param
- AdjAP = Attr | Predic ;
- Number = Sg | Pl ;
-
- oper
- --Noun operations (wyn, kaas, vis, pizza)
-
- declNoun_aa: Str -> {s: Number => Str} = \x ->
- let v = tk 2 x
- in
- {s = table{Sg => x ; Pl => v + (last x) +"e"}};
-
- declNoun_e: Str -> {s: Number => Str} = \x -> {s = table{Sg => x ; Pl => x + "e"}} ;
- declNoun_s: Str -> {s: Number => Str} = \x -> {s = table{Sg => x ; Pl => x + "s"}} ;
-
- declNoun_ss: Str -> {s: Number => Str} = \x -> {s = table{Sg => x ; Pl => x + (last x) + "e"}} ;
-
-
- --Adjective operations
-
- mkAdj : Str -> Str -> {s: AdjAP => Str} = \x,y -> {s = table{Attr => x; Predic => y}};
-
- declAdj_e : Str -> {s : AdjAP=> Str} = \x -> mkAdj (x + "e") x;
- declAdj_g : Str -> {s : AdjAP=> Str} = \w ->
- let v = init w
- in mkAdj (v + "") w ;
-
- declAdj_oog : Str -> {s : AdjAP=> Str} = \w ->
- let v = init w
- in
- let i = init v
- in mkAdj (i + "") w ;
-
- regAdj : Str -> {s : AdjAP=> Str} = \x -> mkAdj x x;
-
- veryAdj : {s: AdjAP => Str} -> {s : AdjAP=> Str} = \x -> {s = table{a => "baie" ++ (x.s!a)}};
-
-
- smartAdj_e : Str -> {s : AdjAP=> Str} = \a -> case a of
- {
- _ + "oog" => declAdj_oog a ;
- _ + ("e" | "ie" | "o" | "oe") + "g" => declAdj_g a ;
- _ => declAdj_e a
- };
-}
diff --git a/examples/foods/FoodsAmh.gf b/examples/foods/FoodsAmh.gf
deleted file mode 100644
index e8915d86f..000000000
--- a/examples/foods/FoodsAmh.gf
+++ /dev/null
@@ -1,21 +0,0 @@
-concrete FoodsAmh of Foods ={
- flags coding = utf8;
- lincat
- Comment,Item,Kind,Quality = Str;
- lin
- Pred item quality = item ++ quality++ "ነው::" ;
- This kind = "ይህ" ++ kind;
- That kind = "ያ" ++ kind;
- Mod quality kind = quality ++ kind;
- Wine = "ወይን";
- Cheese = "አይብ";
- Fish = "ዓሳ";
- Very quality = "በጣም" ++ quality;
- Fresh = "አዲስ";
- Warm = "ትኩስ";
- Italian = "የጥልያን";
- Expensive = "ውድ";
- Delicious = "ጣፋጭ";
- Boring = "አስቀያሚ";
-
-}
\ No newline at end of file
diff --git a/examples/foods/FoodsBul.gf b/examples/foods/FoodsBul.gf
deleted file mode 100644
index ac9127669..000000000
--- a/examples/foods/FoodsBul.gf
+++ /dev/null
@@ -1,43 +0,0 @@
--- (c) 2009 Krasimir Angelov under LGPL
-
-concrete FoodsBul of Foods = {
-
- flags
- coding = utf8;
-
- param
- Gender = Masc | Fem | Neutr;
- Number = Sg | Pl;
- Agr = ASg Gender | APl ;
-
- lincat
- Comment = Str ;
- Quality = {s : Agr => Str} ;
- Item = {s : Str; a : Agr} ;
- Kind = {s : Number => Str; g : Gender} ;
-
- lin
- Pred item qual = item.s ++ case item.a of {ASg _ => "е"; APl => "са"} ++ qual.s ! item.a ;
-
- This kind = {s=case kind.g of {Masc=>"този"; Fem=>"тази"; Neutr=>"това" } ++ kind.s ! Sg; a=ASg kind.g} ;
- That kind = {s=case kind.g of {Masc=>"онзи"; Fem=>"онази"; Neutr=>"онова"} ++ kind.s ! Sg; a=ASg kind.g} ;
- These kind = {s="тези" ++ kind.s ! Pl; a=APl} ;
- Those kind = {s="онези" ++ kind.s ! Pl; a=APl} ;
-
- Mod qual kind = {s=\\n => qual.s ! (case n of {Sg => ASg kind.g; Pl => APl}) ++ kind.s ! n; g=kind.g} ;
-
- Wine = {s = table {Sg => "вино"; Pl => "вина"}; g = Neutr};
- Cheese = {s = table {Sg => "сирене"; Pl => "сирена"}; g = Neutr};
- Fish = {s = table {Sg => "риба"; Pl => "риби"}; g = Fem};
- Pizza = {s = table {Sg => "пица"; Pl => "пици"}; g = Fem};
-
- Very qual = {s = \\g => "много" ++ qual.s ! g};
-
- Fresh = {s = table {ASg Masc => "свеж"; ASg Fem => "свежа"; ASg Neutr => "свежо"; APl => "свежи"}};
- Warm = {s = table {ASg Masc => "горещ"; ASg Fem => "гореща"; ASg Neutr => "горещо"; APl => "горещи"}};
- Italian = {s = table {ASg Masc => "италиански"; ASg Fem => "италианска"; ASg Neutr => "италианско"; APl => "италиански"}};
- Expensive = {s = table {ASg Masc => "скъп"; ASg Fem => "скъпа"; ASg Neutr => "скъпо"; APl => "скъпи"}};
- Delicious = {s = table {ASg Masc => "превъзходен"; ASg Fem => "превъзходна"; ASg Neutr => "превъзходно"; APl => "превъзходни"}};
- Boring = {s = table {ASg Masc => "еднообразен"; ASg Fem => "еднообразна"; ASg Neutr => "еднообразно"; APl => "еднообразни"}};
-
-}
diff --git a/examples/foods/FoodsCat.gf b/examples/foods/FoodsCat.gf
deleted file mode 100644
index 35e4efba6..000000000
--- a/examples/foods/FoodsCat.gf
+++ /dev/null
@@ -1,6 +0,0 @@
-
--- (c) 2009 Jordi Saludes under LGPL
-
-concrete FoodsCat of Foods = FoodsI with
- (Syntax = SyntaxCat),
- (LexFoods = LexFoodsCat) ;
diff --git a/examples/foods/FoodsChi.gf b/examples/foods/FoodsChi.gf
deleted file mode 100644
index 163aa0eb1..000000000
--- a/examples/foods/FoodsChi.gf
+++ /dev/null
@@ -1,35 +0,0 @@
-concrete FoodsChi of Foods = {
-flags coding = utf8 ;
-lincat
- Comment, Item = Str ;
- Kind = {s,c : Str} ;
- Quality = {s,p : Str} ;
-lin
- Pred item quality = item ++ "是" ++ quality.s ++ quality.p ;
- This kind = "这" ++ kind.c ++ kind.s ;
- That kind = "那" ++ kind.c ++ kind.s ;
- These kind = "这" ++ "些" ++ kind.s ;
- Those kind = "那" ++ "些" ++ kind.s ;
- Mod quality kind = {
- s = quality.s ++ quality.p ++ kind.s ;
- c = kind.c
- } ;
- Wine = geKind "酒" ;
- Pizza = geKind "比 萨 饼" ;
- Cheese = geKind "奶 酪" ;
- Fish = geKind "鱼" ;
- Very quality = longQuality ("非 常" ++ quality.s) ;
- Fresh = longQuality "新 鲜" ;
- Warm = longQuality "温 热" ;
- Italian = longQuality "意 大 利 式" ;
- Expensive = longQuality "昂 贵" ;
- Delicious = longQuality "美 味" ;
- Boring = longQuality "难 吃" ;
-oper
- mkKind : Str -> Str -> {s,c : Str} = \s,c ->
- {s = s ; c = c} ;
- geKind : Str -> {s,c : Str} = \s ->
- mkKind s "个" ;
- longQuality : Str -> {s,p : Str} = \s ->
- {s = s ; p = "的"} ;
-}
diff --git a/examples/foods/FoodsCze.gf b/examples/foods/FoodsCze.gf
deleted file mode 100644
index 3fec68141..000000000
--- a/examples/foods/FoodsCze.gf
+++ /dev/null
@@ -1,35 +0,0 @@
--- (c) 2011 Katerina Bohmova under LGPL
-
-concrete FoodsCze of Foods = open ResCze in {
- flags
- coding = utf8 ;
- lincat
- Comment = {s : Str} ;
- Quality = Adjective ;
- Kind = Noun ;
- Item = NounPhrase ;
- lin
- Pred item quality =
- {s = item.s ++ copula ! item.n ++
- quality.s ! item.g ! item.n} ;
- This = det Sg "tento" "tato" "toto" ;
- That = det Sg "tamten" "tamta" "tamto" ;
- These = det Pl "tyto" "tyto" "tato" ;
- Those = det Pl "tamty" "tamty" "tamta" ;
- Mod quality kind = {
- s = \\n => quality.s ! kind.g ! n ++ kind.s ! n ;
- g = kind.g
- } ;
- Wine = noun "víno" "vína" Neutr ;
- Cheese = noun "sýr" "sýry" Masc ;
- Fish = noun "ryba" "ryby" Fem ;
- Pizza = noun "pizza" "pizzy" Fem ;
- Very qual = {s = \\g,n => "velmi" ++ qual.s ! g ! n} ;
- Fresh = regAdj "čerstv" ;
- Warm = regAdj "tepl" ;
- Italian = regAdj "italsk" ;
- Expensive = regAdj "drah" ;
- Delicious = regnfAdj "vynikající" ;
- Boring = regAdj "nudn" ;
-}
-
diff --git a/examples/foods/FoodsDut.gf b/examples/foods/FoodsDut.gf
deleted file mode 100644
index d4855e5c6..000000000
--- a/examples/foods/FoodsDut.gf
+++ /dev/null
@@ -1,58 +0,0 @@
--- (c) 2009 Femke Johansson under LGPL
-
-concrete FoodsDut of Foods = {
-
- lincat
- Comment = {s : Str};
- Quality = {s : AForm => Str};
- Kind = { s : Number => Str};
- Item = {s : Str ; n : Number};
-
- lin
- Pred item quality =
- {s = item.s ++ copula ! item.n ++ quality.s ! APred};
- This = det Sg "deze";
- These = det Pl "deze";
- That = det Sg "die";
- Those = det Pl "die";
-
- Mod quality kind =
- {s = \\n => quality.s ! AAttr ++ kind.s ! n};
- Wine = regNoun "wijn";
- Cheese = noun "kaas" "kazen";
- Fish = noun "vis" "vissen";
- Pizza = noun "pizza" "pizza's";
-
- Very a = {s = \\f => "erg" ++ a.s ! f};
-
- Fresh = regadj "vers";
- Warm = regadj "warm";
- Italian = regadj "Italiaans";
- Expensive = adj "duur" "dure";
- Delicious = regadj "lekker";
- Boring = regadj "saai";
-
- param
- Number = Sg | Pl;
- AForm = APred | AAttr;
-
- oper
- det : Number -> Str ->
- {s : Number => Str} -> {s : Str ; n: Number} =
- \n,det,noun -> {s = det ++ noun.s ! n ; n=n};
-
- noun : Str -> Str -> {s : Number => Str} =
- \man,men -> {s = table {Sg => man; Pl => men}};
-
- regNoun : Str -> {s : Number => Str} =
- \wijn -> noun wijn (wijn + "en");
-
- regadj : Str -> {s : AForm => Str} =
- \koud -> adj koud (koud+"e");
-
- adj : Str -> Str -> {s : AForm => Str} =
- \duur, dure -> {s = table {APred => duur; AAttr => dure}};
-
- copula : Number => Str =
- table {Sg => "is" ; Pl => "zijn"};
-}
diff --git a/examples/foods/FoodsEng.gf b/examples/foods/FoodsEng.gf
deleted file mode 100644
index e7359a4ff..000000000
--- a/examples/foods/FoodsEng.gf
+++ /dev/null
@@ -1,43 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
-
-concrete FoodsEng of Foods = {
- flags language = en_US;
- lincat
- Comment, Quality = {s : Str} ;
- Kind = {s : Number => Str} ;
- Item = {s : Str ; n : Number} ;
- lin
- Pred item quality =
- {s = item.s ++ copula ! item.n ++ quality.s} ;
- This = det Sg "this" ;
- That = det Sg "that" ;
- These = det Pl "these" ;
- Those = det Pl "those" ;
- Mod quality kind =
- {s = \\n => quality.s ++ kind.s ! n} ;
- Wine = regNoun "wine" ;
- Cheese = regNoun "cheese" ;
- Fish = noun "fish" "fish" ;
- Pizza = regNoun "pizza" ;
- Very a = {s = "very" ++ a.s} ;
- Fresh = adj "fresh" ;
- Warm = adj "warm" ;
- Italian = adj "Italian" ;
- Expensive = adj "expensive" ;
- Delicious = adj "delicious" ;
- Boring = adj "boring" ;
- param
- Number = Sg | Pl ;
- oper
- det : Number -> Str ->
- {s : Number => Str} -> {s : Str ; n : Number} =
- \n,det,noun -> {s = det ++ noun.s ! n ; n = n} ;
- noun : Str -> Str -> {s : Number => Str} =
- \man,men -> {s = table {Sg => man ; Pl => men}} ;
- regNoun : Str -> {s : Number => Str} =
- \car -> noun car (car + "s") ;
- adj : Str -> {s : Str} =
- \cold -> {s = cold} ;
- copula : Number => Str =
- table {Sg => "is" ; Pl => "are"} ;
-}
diff --git a/examples/foods/FoodsEpo.gf b/examples/foods/FoodsEpo.gf
deleted file mode 100644
index dd2400fe7..000000000
--- a/examples/foods/FoodsEpo.gf
+++ /dev/null
@@ -1,48 +0,0 @@
--- (c) 2009 Julia Hammar under LGPL
-
-concrete FoodsEpo of Foods = open Prelude in {
-
- flags coding =utf8 ;
-
- lincat
- Comment = SS ;
- Kind, Quality = {s : Number => Str} ;
- Item = {s : Str ; n : Number} ;
-
- lin
- Pred item quality = ss (item.s ++ copula ! item.n ++ quality.s ! item.n) ;
- This = det Sg "ĉi tiu" ;
- That = det Sg "tiu" ;
- These = det Pl "ĉi tiuj" ;
- Those = det Pl "tiuj" ;
- Mod quality kind = {s = \\n => quality.s ! n ++ kind.s ! n} ;
- Wine = regNoun "vino" ;
- Cheese = regNoun "fromaĝo" ;
- Fish = regNoun "fiŝo" ;
- Pizza = regNoun "pico" ;
- Very quality = {s = \\n => "tre" ++ quality.s ! n} ;
- Fresh = regAdj "freŝa" ;
- Warm = regAdj "varma" ;
- Italian = regAdj "itala" ;
- Expensive = regAdj "altekosta" ;
- Delicious = regAdj "bongusta" ;
- Boring = regAdj "enuiga" ;
-
- param
- Number = Sg | Pl ;
-
- oper
- det : Number -> Str -> {s : Number => Str} -> {s : Str ; n : Number} =
- \n,d,cn -> {
- s = d ++ cn.s ! n ;
- n = n
- } ;
- regNoun : Str -> {s : Number => Str} =
- \vino -> {s = table {Sg => vino ; Pl => vino + "j"}
- } ;
- regAdj : Str -> {s : Number => Str} =
- \nova -> {s = table {Sg => nova ; Pl => nova + "j"}
- } ;
- copula : Number => Str = \\_ => "estas" ;
-}
-
diff --git a/examples/foods/FoodsFin.gf b/examples/foods/FoodsFin.gf
deleted file mode 100644
index 962199805..000000000
--- a/examples/foods/FoodsFin.gf
+++ /dev/null
@@ -1,6 +0,0 @@
-
--- (c) 2009 Aarne Ranta under LGPL
-
-concrete FoodsFin of Foods = FoodsI with
- (Syntax = SyntaxFin),
- (LexFoods = LexFoodsFin) ;
diff --git a/examples/foods/FoodsFre.gf b/examples/foods/FoodsFre.gf
deleted file mode 100644
index f95db827b..000000000
--- a/examples/foods/FoodsFre.gf
+++ /dev/null
@@ -1,31 +0,0 @@
-
-concrete FoodsFre of Foods = open SyntaxFre, ParadigmsFre in {
-
- flags coding = utf8 ;
-
- lincat
- Comment = Utt ;
- Item = NP ;
- Kind = CN ;
- Quality = AP ;
-
- lin
- Pred item quality = mkUtt (mkCl item quality) ;
- This kind = mkNP this_QuantSg kind ;
- That kind = mkNP that_QuantSg kind ;
- These kind = mkNP these_QuantPl kind ;
- Those kind = mkNP those_QuantPl kind ;
- Mod quality kind = mkCN quality kind ;
- Very quality = mkAP very_AdA quality ;
-
- Wine = mkCN (mkN "vin" masculine) ;
- Pizza = mkCN (mkN "pizza" feminine) ;
- Cheese = mkCN (mkN "fromage" masculine) ;
- Fish = mkCN (mkN "poisson" masculine) ;
- Fresh = mkAP (mkA "frais" "fraîche" "frais" "fraîchement") ;
- Warm = mkAP (mkA "chaud") ;
- Italian = mkAP (mkA "italien") ;
- Expensive = mkAP (mkA "cher") ;
- Delicious = mkAP (mkA "délicieux") ;
- Boring = mkAP (mkA "ennuyeux") ;
- }
diff --git a/examples/foods/FoodsGer.gf b/examples/foods/FoodsGer.gf
deleted file mode 100644
index df3a371de..000000000
--- a/examples/foods/FoodsGer.gf
+++ /dev/null
@@ -1,6 +0,0 @@
-
--- (c) 2009 Aarne Ranta under LGPL
-
-concrete FoodsGer of Foods = FoodsI with
- (Syntax = SyntaxGer),
- (LexFoods = LexFoodsGer) ;
diff --git a/examples/foods/FoodsGla.gf b/examples/foods/FoodsGla.gf
deleted file mode 100644
index 127ef22e9..000000000
--- a/examples/foods/FoodsGla.gf
+++ /dev/null
@@ -1,67 +0,0 @@
---# -coding=latin1
-concrete FoodsGla of Foods = open MutationsGla, CharactersGla, Prelude in {
- param Gender = Masc|Fem ;
- param Number = Sg|Pl ;
- param Breadth = Broad|Slender|NoBreadth ;
- param Beginning = Bcgmp|Other ;
-
- lincat Comment = Str;
- lin Pred item quality = "tha" ++ item ++ quality.s!Sg!Unmutated ;
-
- lincat Item = Str;
- lin
- This kind = (addArticleSg kind) ++ "seo" ;
- That kind = (addArticleSg kind) ++ "sin";
- These kind = (addArticlePl kind) ++ "seo" ;
- Those kind = (addArticlePl kind) ++ "sin" ;
- oper addArticleSg : {s : Number => Mutation => Str; g : Gender} -> Str =
- \kind -> case kind.g of { Masc => "an" ++ kind.s!Sg!PrefixT; Fem => "a'" ++ kind.s!Sg!Lenition1DNTLS } ;
- oper addArticlePl : {s : Number => Mutation => Str; g : Gender} -> Str =
- \kind -> "na" ++ kind.s!Pl!PrefixH ;
-
- oper Noun : Type = {s : Number => Mutation => Str; g : Gender; pe : Breadth; beginning: Beginning; };
- lincat Kind = Noun;
- lin
- Mod quality kind = {
- s = table{
- Sg => table{mutation => kind.s!Sg!mutation ++ case kind.g of {Masc => quality.s!Sg!Unmutated; Fem => quality.s!Sg!Lenition1} };
- Pl => table{mutation => kind.s!Pl!mutation ++ case kind.pe of {Slender => quality.s!Pl!Lenition1; _ => quality.s!Pl!Unmutated} }
- };
- g = kind.g;
- pe = kind.pe;
- beginning = kind.beginning
- } ;
- Wine = makeNoun "fon" "fontan" Masc ;
- Cheese = makeNoun "cise" "cisean" Masc ;
- Fish = makeNoun "iasg" "isg" Masc ;
- Pizza = makeNoun "pizza" "pizzathan" Masc ;
- oper makeNoun : Str -> Str -> Gender -> Noun = \sg,pl,g -> {
- s = table{Sg => (mutate sg); Pl => (mutate pl)};
- g = g;
- pe = pe;
- beginning = Bcgmp
- }
- where {
- pe : Breadth = case pl of {
- _ + v@(#broadVowel) + c@(#consonant*) + #consonant => Broad;
- _ + v@(#slenderVowel) + c@(#consonant*) + #consonant => Slender;
- _ => NoBreadth
- }
- };
-
- oper Adjective : Type = {s : Number => Mutation => Str; sVery : Number => Str};
- lincat Quality = Adjective;
- lin
- Very quality = {s=table{number => table{_ => quality.sVery!number}}; sVery=quality.sVery } ;
- Fresh = makeAdjective "r" "ra" ;
- Warm = makeAdjective "blth" "bltha" ;
- Italian = makeAdjective "Eadailteach" "Eadailteach" ;
- Expensive = makeAdjective "daor" "daora" ;
- Delicious = makeAdjective "blasta" "blasta" ;
- Boring = makeAdjective "leamh" "leamha" ;
- oper makeAdjective : Str -> Str -> Adjective =
- \sg,pl -> {
- s=table{Sg => (mutate sg); Pl => (mutate pl)};
- sVery=table{Sg => "gl"++(lenition1dntls sg); Pl => "gl"++(lenition1dntls pl)}
- } ;
-}
\ No newline at end of file
diff --git a/examples/foods/FoodsGle.gf b/examples/foods/FoodsGle.gf
deleted file mode 100644
index f137da6aa..000000000
--- a/examples/foods/FoodsGle.gf
+++ /dev/null
@@ -1,60 +0,0 @@
---# -coding=latin1
-concrete FoodsGle of Foods = open MutationsGle, CharactersGle in {
- param Gender = Masc|Fem ;
- param Number = Sg|Pl ;
- param Breadth = Broad|Slender|NoBreadth ;
-
- lincat Comment = Str;
- lin Pred item quality = "t" ++ item ++ quality.s!Sg!Unmutated ;
-
- lincat Item = Str;
- lin
- This kind = (addArticleSg kind) ++ "seo" ;
- That kind = (addArticleSg kind) ++ "sin";
- These kind = (addArticlePl kind) ++ "seo" ;
- Those kind = (addArticlePl kind) ++ "sin" ;
- oper addArticleSg : {s : Number => Mutation => Str; g : Gender} -> Str =
- \kind -> "an" ++ case kind.g of { Masc => kind.s!Sg!PrefixT; Fem => kind.s!Sg!Lenition1DNTLS } ;
- oper addArticlePl : {s : Number => Mutation => Str; g : Gender} -> Str =
- \kind -> "na" ++ kind.s!Pl!PrefixH ;
-
- lincat Kind = {s : Number => Mutation => Str; g : Gender; pe : Breadth} ;
- lin
- Mod quality kind = {
- s = table{
- Sg => table{mutation => kind.s!Sg!mutation ++ case kind.g of {Masc => quality.s!Sg!Unmutated; Fem => quality.s!Sg!Lenition1} };
- Pl => table{mutation => kind.s!Pl!mutation ++ case kind.pe of {Slender => quality.s!Pl!Lenition1; _ => quality.s!Pl!Unmutated} }
- };
- g = kind.g;
- pe = kind.pe
- } ;
- Wine = makeNoun "fon" "fonta" Masc ;
- Cheese = makeNoun "cis" "ciseanna" Fem ;
- Fish = makeNoun "iasc" "isc" Masc ;
- Pizza = makeNoun "potsa" "potsa" Masc ;
- oper makeNoun : Str -> Str -> Gender -> {s : Number => Mutation => Str; g : Gender; pe : Breadth} =
- \sg,pl,g -> {
- s = table{Sg => (mutate sg); Pl => (mutate pl)};
- g = g;
- pe = case pl of {
- _ + v@(#broadVowel) + c@(#consonant*) + #consonant => Broad;
- _ + v@(#slenderVowel) + c@(#consonant*) + #consonant => Slender;
- _ => NoBreadth
- }
- } ;
-
- lincat Quality = {s : Number => Mutation => Str; sVery : Number => Str} ;
- lin
- Very quality = {s=table{number => table{_ => quality.sVery!number}}; sVery=quality.sVery } ;
- Fresh = makeAdjective "r" "ra" ;
- Warm = makeAdjective "te" "te" ;
- Italian = makeAdjective "Iodlach" "Iodlacha" ;
- Expensive = makeAdjective "daor" "daora" ;
- Delicious = makeAdjective "blasta" "blasta" ;
- Boring = makeAdjective "leamh" "leamha" ;
- oper makeAdjective : Str -> Str -> {s : Number => Mutation => Str; sVery : Number => Str} =
- \sg,pl -> {
- s=table{Sg => (mutate sg); Pl => (mutate pl)};
- sVery=table{Sg => "an-"+(lenition1dntls sg); Pl => "an-"+(lenition1dntls pl)}
- } ;
-}
\ No newline at end of file
diff --git a/examples/foods/FoodsHeb.gf b/examples/foods/FoodsHeb.gf
deleted file mode 100644
index b68b383be..000000000
--- a/examples/foods/FoodsHeb.gf
+++ /dev/null
@@ -1,107 +0,0 @@
-
---(c) 2009 Dana Dannells
--- Licensed under LGPL
-
-concrete FoodsHeb of Foods = open Prelude in {
-
- flags coding=utf8 ;
-
- lincat
- Comment = SS ;
- Quality = {s: Number => Species => Gender => Str} ;
- Kind = {s : Number => Species => Str ; g : Gender ; mod : Modified} ;
- Item = {s : Str ; g : Gender ; n : Number ; sp : Species ; mod : Modified} ;
-
-
- lin
- Pred item quality = ss (item.s ++ quality.s ! item.n ! Indef ! item.g ) ;
- This = det Sg Def "הזה" "הזאת";
- That = det Sg Def "ההוא" "ההיא" ;
- These = det Pl Def "האלה" "האלה" ;
- Those = det Pl Def "ההם" "ההן" ;
- Mod quality kind = {
- s = \\n,sp => kind.s ! n ! sp ++ quality.s ! n ! sp ! kind.g;
- g = kind.g ;
- mod = T
- } ;
- Wine = regNoun "יין" "יינות" Masc ;
- Cheese = regNoun "גבינה" "גבינות" Fem ;
- Fish = regNoun "דג" "דגים" Masc ;
- Pizza = regNoun "פיצה" "פיצות" Fem ;
- Very qual = {s = \\g,n,sp => "מאוד" ++ qual.s ! g ! n ! sp} ;
- Fresh = regAdj "טרי" ;
- Warm = regAdj "חם" ;
- Italian = regAdj2 "איטלקי" ;
- Expensive = regAdj "יקר" ;
- Delicious = regAdj "טעים" ;
- Boring = regAdj2 "משעמם";
-
- param
- Number = Sg | Pl ;
- Gender = Masc | Fem ;
- Species = Def | Indef ;
- Modified = T | F ;
-
- oper
- Noun : Type = {s : Number => Species => Str ; g : Gender ; mod : Modified } ;
- Adj : Type = {s : Number => Species => Gender => Str} ;
-
- det : Number -> Species -> Str -> Str -> Noun ->
- {s : Str ; g :Gender ; n : Number ; sp : Species ; mod : Modified} =
- \n,sp,m,f,cn -> {
- s = case cn.mod of { _ => cn.s ! n ! sp ++ case cn.g of {Masc => m ; Fem => f} };
- g = cn.g ;
- n = n ;
- sp = sp ;
- mod = cn.mod
- } ;
-
- noun : (gvina,hagvina,gvinot,hagvinot : Str) -> Gender -> Noun =
- \gvina,hagvina,gvinot,hagvinot,g -> {
- s = table {
- Sg => table {
- Indef => gvina ;
- Def => hagvina
- } ;
- Pl => table {
- Indef => gvinot ;
- Def => hagvinot
- }
- } ;
- g = g ;
- mod = F
- } ;
-
- regNoun : Str -> Str -> Gender -> Noun =
- \gvina,gvinot, g ->
- noun gvina (defH gvina) gvinot (defH gvinot) g ;
-
- defH : Str -> Str = \cn ->
- case cn of {_ => "ה" + cn};
-
- replaceLastLetter : Str -> Str = \c ->
- case c of {"ף" => "פ" ; "ם" => "מ" ; "ן" => "נ" ; "ץ" => "צ" ; "ך" => "כ"; _ => c} ;
-
- adjective : (_,_,_,_ : Str) -> Adj =
- \tov,tova,tovim,tovot -> {
- s = table {
- Sg => table {
- Indef => table { Masc => tov ; Fem => tova } ;
- Def => table { Masc => defH tov ; Fem => defH tova }
- } ;
- Pl => table {
- Indef => table {Masc => tovim ; Fem => tovot } ;
- Def => table { Masc => defH tovim ; Fem => defH tovot }
- }
- }
- } ;
-
- regAdj : Str -> Adj = \tov ->
- case tov of { to + c@? =>
- adjective tov (to + replaceLastLetter (c) + "ה" ) (to + replaceLastLetter (c) +"ים" ) (to + replaceLastLetter (c) + "ות" )};
-
- regAdj2 : Str -> Adj = \italki ->
- case italki of { italk+ c@? =>
- adjective italki (italk + replaceLastLetter (c) +"ת" ) (italk + replaceLastLetter (c)+ "ים" ) (italk + replaceLastLetter (c) + "ות" )};
-
-} -- FoodsHeb
diff --git a/examples/foods/FoodsHin.gf b/examples/foods/FoodsHin.gf
deleted file mode 100644
index 67c29df8b..000000000
--- a/examples/foods/FoodsHin.gf
+++ /dev/null
@@ -1,75 +0,0 @@
--- (c) 2010 Vikash Rauniyar under LGPL
-
-concrete FoodsHin of Foods = {
-
- flags coding=utf8 ;
-
- param
- Gender = Masc | Fem ;
- Number = Sg | Pl ;
- lincat
- Comment = {s : Str} ;
- Item = {s : Str ; g : Gender ; n : Number} ;
- Kind = {s : Number => Str ; g : Gender} ;
- Quality = {s : Gender => Number => Str} ;
- lin
- Pred item quality = {
- s = item.s ++ quality.s ! item.g ! item.n ++ copula item.n
- } ;
- This kind = {s = "यह" ++ kind.s ! Sg ; g = kind.g ; n = Sg} ;
- That kind = {s = "वह" ++ kind.s ! Sg ; g = kind.g ; n = Sg} ;
- These kind = {s = "ये" ++ kind.s ! Pl ; g = kind.g ; n = Pl} ;
- Those kind = {s = "वे" ++ kind.s ! Pl ; g = kind.g ; n = Pl} ;
- Mod quality kind = {
- s = \\n => quality.s ! kind.g ! n ++ kind.s ! n ;
- g = kind.g
- } ;
- Wine = regN "मदिरा" ;
- Cheese = regN "पनीर" ;
- Fish = regN "मछली" ;
- Pizza = regN "पिज़्ज़ा" ;
- Very quality = {s = \\g,n => "अति" ++ quality.s ! g ! n} ;
- Fresh = regAdj "ताज़ा" ;
- Warm = regAdj "गरम" ;
- Italian = regAdj "इटली" ;
- Expensive = regAdj "बहुमूल्य" ;
- Delicious = regAdj "स्वादिष्ट" ;
- Boring = regAdj "अरुचिकर" ;
-
- oper
- mkN : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} =
- \s,p,g -> {
- s = table {
- Sg => s ;
- Pl => p
- } ;
- g = g
- } ;
-
- regN : Str -> {s : Number => Str ; g : Gender} = \s -> case s of {
- lark + "ा" => mkN s (lark + "े") Masc ;
- lark + "ी" => mkN s (lark + "ीयँा") Fem ;
- _ => mkN s s Masc
- } ;
-
- mkAdj : Str -> Str -> Str -> {s : Gender => Number => Str} = \ms,mp,f -> {
- s = table {
- Masc => table {
- Sg => ms ;
- Pl => mp
- } ;
- Fem => \\_ => f
- }
- } ;
-
- regAdj : Str -> {s : Gender => Number => Str} = \a -> case a of {
- acch + "ा" => mkAdj a (acch + "े") (acch + "ी") ;
- _ => mkAdj a a a
- } ;
-
- copula : Number -> Str = \n -> case n of {
- Sg => "है" ;
- Pl => "हैं"
- } ;
-
- }
diff --git a/examples/foods/FoodsI.gf b/examples/foods/FoodsI.gf
deleted file mode 100644
index f4113b724..000000000
--- a/examples/foods/FoodsI.gf
+++ /dev/null
@@ -1,29 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
-
-incomplete concrete FoodsI of Foods =
- open Syntax, LexFoods in {
- lincat
- Comment = Utt ;
- Item = NP ;
- Kind = CN ;
- Quality = AP ;
- lin
- Pred item quality = mkUtt (mkCl item quality) ;
- This kind = mkNP this_Det kind ;
- That kind = mkNP that_Det kind ;
- These kind = mkNP these_Det kind ;
- Those kind = mkNP those_Det kind ;
- Mod quality kind = mkCN quality kind ;
- Very quality = mkAP very_AdA quality ;
-
- Wine = mkCN wine_N ;
- Pizza = mkCN pizza_N ;
- Cheese = mkCN cheese_N ;
- Fish = mkCN fish_N ;
- Fresh = mkAP fresh_A ;
- Warm = mkAP warm_A ;
- Italian = mkAP italian_A ;
- Expensive = mkAP expensive_A ;
- Delicious = mkAP delicious_A ;
- Boring = mkAP boring_A ;
-}
diff --git a/examples/foods/FoodsIce.gf b/examples/foods/FoodsIce.gf
deleted file mode 100644
index 61b1a95b2..000000000
--- a/examples/foods/FoodsIce.gf
+++ /dev/null
@@ -1,83 +0,0 @@
-
--- (c) 2009 Martha Dis Brandt under LGPL
-
-concrete FoodsIce of Foods = open Prelude in {
-
- flags coding=utf8;
-
- lincat
- Comment = SS ;
- Quality = {s : Gender => Number => Defin => Str} ;
- Kind = {s : Number => Str ; g : Gender} ;
- Item = {s : Str ; g : Gender ; n : Number} ;
-
- lin
- Pred item quality = ss (item.s ++ copula item.n ++ quality.s ! item.g ! item.n ! Ind) ;
- This, That = det Sg "þessi" "þessi" "þetta" ;
- These, Those = det Pl "þessir" "þessar" "þessi" ;
- Mod quality kind = { s = \\n => quality.s ! kind.g ! n ! Def ++ kind.s ! n ; g = kind.g } ;
- Wine = noun "vín" "vín" Neutr ;
- Cheese = noun "ostur" "ostar" Masc ;
- Fish = noun "fiskur" "fiskar" Masc ;
- -- the word "pizza" is more commonly used in Iceland, but "flatbaka" is the Icelandic word for it
- Pizza = noun "flatbaka" "flatbökur" Fem ;
- Very qual = {s = \\g,n,defOrInd => "mjög" ++ qual.s ! g ! n ! defOrInd } ;
- Fresh = regAdj "ferskur" ;
- Warm = regAdj "heitur" ;
- Boring = regAdj "leiðinlegur" ;
- -- the order of the given adj forms is: mSg fSg nSg mPl fPl nPl mSgDef f/nSgDef _PlDef
- Italian = adjective "ítalskur" "ítölsk" "ítalskt" "ítalskir" "ítalskar" "ítölsk" "ítalski" "ítalska" "ítalsku" ;
- Expensive = adjective "dýr" "dýr" "dýrt" "dýrir" "dýrar" "dýr" "dýri" "dýra" "dýru" ;
- Delicious = adjective "ljúffengur" "ljúffeng" "ljúffengt" "ljúffengir" "ljúffengar" "ljúffeng" "ljúffengi" "ljúffenga" "ljúffengu" ;
-
- param
- Number = Sg | Pl ;
- Gender = Masc | Fem | Neutr ;
- Defin = Ind | Def ;
-
- oper
- det : Number -> Str -> Str -> Str -> {s : Number => Str ; g : Gender} ->
- {s : Str ; g : Gender ; n : Number} =
- \n,masc,fem,neutr,cn -> {
- s = case cn.g of {Masc => masc ; Fem => fem; Neutr => neutr } ++ cn.s ! n ;
- g = cn.g ;
- n = n
- } ;
-
- noun : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} =
- \man,men,g -> {
- s = table {
- Sg => man ;
- Pl => men
- } ;
- g = g
- } ;
-
- adjective : (x1,_,_,_,_,_,_,_,x9 : Str) -> {s : Gender => Number => Defin => Str} =
- \ferskur,fersk,ferskt,ferskir,ferskar,fersk_pl,ferski,ferska,fersku -> {
- s = \\g,n,t => case of {
- < Masc, Sg, Ind > => ferskur ;
- < Masc, Pl, Ind > => ferskir ;
- < Fem, Sg, Ind > => fersk ;
- < Fem, Pl, Ind > => ferskar ;
- < Neutr, Sg, Ind > => ferskt ;
- < Neutr, Pl, Ind > => fersk_pl;
- < Masc, Sg, Def > => ferski ;
- < Fem, Sg, Def > | < Neutr, Sg, Def > => ferska ;
- < _ , Pl, Def > => fersku
- }
- } ;
-
- regAdj : Str -> {s : Gender => Number => Defin => Str} = \ferskur ->
- let fersk = Predef.tk 2 ferskur
- in adjective
- ferskur fersk (fersk + "t")
- (fersk + "ir") (fersk + "ar") fersk
- (fersk + "i") (fersk + "a") (fersk + "u") ;
-
- copula : Number -> Str =
- \n -> case n of {
- Sg => "er" ;
- Pl => "eru"
- } ;
-}
diff --git a/examples/foods/FoodsIta.gf b/examples/foods/FoodsIta.gf
deleted file mode 100644
index 0f959d2e5..000000000
--- a/examples/foods/FoodsIta.gf
+++ /dev/null
@@ -1,7 +0,0 @@
-
--- (c) 2009 Aarne Ranta under LGPL
-
-concrete FoodsIta of Foods = FoodsI with
- (Syntax = SyntaxIta),
- (LexFoods = LexFoodsIta) ;
-
diff --git a/examples/foods/FoodsJpn.gf b/examples/foods/FoodsJpn.gf
deleted file mode 100644
index 855a95175..000000000
--- a/examples/foods/FoodsJpn.gf
+++ /dev/null
@@ -1,71 +0,0 @@
-
--- (c) 2009 Zofia Stankiewicz under LGPL
-
-concrete FoodsJpn of Foods = open Prelude in {
-
-flags coding=utf8 ;
-
- lincat
- Comment = {s: Style => Str};
- Quality = {s: AdjUse => Str ; t: AdjType} ;
- Kind = {s : Number => Str} ;
- Item = {s : Str ; n : Number} ;
-
- lin
- Pred item quality = {s = case quality.t of {
- IAdj => table {Plain => item.s ++ quality.s ! APred ; Polite => item.s ++ quality.s ! APred ++ copula ! Polite ! item.n } ;
- NaAdj => \\p => item.s ++ quality.s ! APred ++ copula ! p ! item.n }
- } ;
- This = det Sg "この" ;
- That = det Sg "その" ;
- These = det Pl "この" ;
- Those = det Pl "その" ;
- Mod quality kind = {s = \\n => quality.s ! Attr ++ kind.s ! n} ;
- Wine = regNoun "ワインは" ;
- Cheese = regNoun "チーズは" ;
- Fish = regNoun "魚は" ;
- Pizza = regNoun "ピザは" ;
- Very quality = {s = \\a => "とても" ++ quality.s ! a ; t = quality.t } ;
- Fresh = adj "新鮮な" "新鮮";
- Warm = regAdj "あたたかい" ;
- Italian = adj "イタリアの" "イタリアのもの";
- Expensive = regAdj "たかい" ;
- Delicious = regAdj "おいしい" ;
- Boring = regAdj "つまらない" ;
-
- param
- Number = Sg | Pl ;
- AdjUse = Attr | APred ; -- na-adjectives have different forms as noun attributes and predicates
- Style = Plain | Polite ; -- for phrase types
- AdjType = IAdj | NaAdj ; -- IAdj can form predicates without the copula, NaAdj cannot
-
- oper
- det : Number -> Str -> {s : Number => Str} -> {s : Str ; n : Number} =
- \n,d,cn -> {
- s = d ++ cn.s ! n ;
- n = n
- } ;
- noun : Str -> Str -> {s : Number => Str} =
- \sakana,sakana -> {s = \\_ => sakana } ;
-
- regNoun : Str -> {s : Number => Str} =
- \sakana -> noun sakana sakana ;
-
- adj : Str -> Str -> {s : AdjUse => Str ; t : AdjType} =
- \chosenna, chosen -> {
- s = table {
- Attr => chosenna ;
- APred => chosen
- } ;
- t = NaAdj
- } ;
-
- regAdj : Str -> {s: AdjUse => Str ; t : AdjType} =\akai -> {
- s = \\_ => akai ; t = IAdj} ;
-
- copula : Style => Number => Str =
- table {
- Plain => \\_ => "だ" ;
- Polite => \\_ => "です" } ;
-
-}
diff --git a/examples/foods/FoodsLav.gf b/examples/foods/FoodsLav.gf
deleted file mode 100644
index 2d5357ff9..000000000
--- a/examples/foods/FoodsLav.gf
+++ /dev/null
@@ -1,90 +0,0 @@
-
--- (c) 2009 Inese Bernsone under LGPL
-
-concrete FoodsLav of Foods = open Prelude in {
-
- flags
- coding=utf8 ;
-
- lincat
- Comment = SS ;
- Quality = {s : Q => Gender => Number => Defin => Str } ;
- Kind = {s : Number => Str ; g : Gender} ;
- Item = {s : Str ; g : Gender ; n : Number } ;
-
- lin
- Pred item quality = ss (item.s ++ {- copula item.n -} "ir" ++ quality.s ! Q1 ! item.g ! item.n ! Ind ) ;
- This = det Sg "šis" "šī" ;
- That = det Sg "tas" "tā" ;
- These = det Pl "šie" "šīs" ;
- Those = det Pl "tie" "tās" ;
- Mod quality kind = {s = \\n => quality.s ! Q1 ! kind.g ! n ! Def ++ kind.s ! n ; g = kind.g } ;
- Wine = noun "vīns" "vīni" Masc ;
- Cheese = noun "siers" "sieri" Masc ;
- Fish = noun "zivs" "zivis" Fem ;
- Pizza = noun "pica" "picas" Fem ;
- Very qual = {s = \\q,g,n,spec => "ļoti" ++ qual.s ! Q2 ! g ! n ! spec };
-
- Fresh = adjective "svaigs" "svaiga" "svaigi" "svaigas" "svaigais" "svaigā" "svaigie" "svaigās" ;
- Warm = regAdj "silts" ;
- Italian = specAdj "itāļu" (regAdj "itālisks") ;
- Expensive = regAdj "dārgs" ;
- Delicious = regAdj "garšīgs" ;
- Boring = regAdj "garlaicīgs" ;
-
- param
- Number = Sg | Pl ;
- Gender = Masc | Fem ;
- Defin = Ind | Def ;
- Q = Q1 | Q2 ;
-
- oper
- det : Number -> Str -> Str -> {s : Number => Str ; g : Gender} ->
- {s : Str ; g : Gender ; n : Number} =
- \n,m,f,cn -> {
- s = case cn.g of {Masc => m ; Fem => f} ++ cn.s ! n ;
- g = cn.g ;
- n = n
- } ;
- noun : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} =
- \man,men,g -> {
- s = table {
- Sg => man ;
- Pl => men
- } ;
- g = g
- } ;
- adjective : (_,_,_,_,_,_,_,_ : Str) -> {s : Q => Gender => Number => Defin => Str} =
- \skaists,skaista,skaisti,skaistas,skaistais,skaistaa,skaistie,skaistaas -> {
- s = table {
- _ => table {
- Masc => table {
- Sg => table {Ind => skaists ; Def => skaistais} ;
- Pl => table {Ind => skaisti ; Def => skaistie}
- } ;
- Fem => table {
- Sg => table {Ind => skaista ; Def => skaistaa} ;
- Pl => table {Ind => skaistas ; Def => skaistaas}
- }
- }
- }
- } ;
-
- {- irregAdj : Str -> {s : Gender => Number => Defin => Str} = \itaalju ->
- let itaalju = itaalju
- in adjective itaalju (itaalju) (itaalju) (itaalju) (itaalju) (itaalju) (itaalju) (itaalju) ; -}
-
- regAdj : Str -> {s : Q => Gender => Number => Defin => Str} = \skaists ->
- let skaist = init skaists
- in adjective skaists (skaist + "a") (skaist + "i") (skaist + "as") (skaist + "ais") (skaist + "ā") (skaist + "ie") (skaist + "ās");
-
- Adjective : Type = {s : Q => Gender => Number => Defin => Str} ;
-
- specAdj : Str -> Adjective -> Adjective = \s,a -> {
- s = table {
- Q2 => a.s ! Q1 ;
- Q1 => \\_,_,_ => s
- }
- } ;
-
- }
diff --git a/examples/foods/FoodsMkd.gf b/examples/foods/FoodsMkd.gf
deleted file mode 100644
index 7df235132..000000000
--- a/examples/foods/FoodsMkd.gf
+++ /dev/null
@@ -1,120 +0,0 @@
--- (c) 2009 Krasimir Angelov under LGPL
-
-concrete FoodsMkd of Foods = {
-
-flags coding = utf8 ;
-
-lincat
- Comment = Str;
- Quality = {s : Agr => Str};
- Item = {s : Str; a : Agr};
- Kind = {s : Number => Str; g : Gender};
-
-lin
- Pred item qual =
- item.s ++
- case item.a of {
- ASg _ => "е";
- APl => "се"
- } ++
- qual.s ! item.a;
- This kind = {
- s = case kind.g of {
- Masc => "овоj";
- Fem => "оваа";
- Neutr => "ова"
- } ++
- kind.s ! Sg;
- a = ASg kind.g};
- That kind = {
- s = case kind.g of {
- Masc => "оноj";
- Fem => "онаа";
- Neutr => "она"
- } ++
- kind.s ! Sg;
- a = ASg kind.g};
- These kind = {s = "овие" ++ kind.s ! Pl; a = APl};
- Those kind = {s = "оние" ++ kind.s ! Pl; a = APl};
- Mod qual kind = {
- s = \\n => qual.s ! case n of {
- Sg => ASg kind.g;
- Pl => APl
- } ++
- kind.s ! n;
- g = kind.g};
- Wine = {
- s = table {
- Sg => "вино";
- Pl => "вина"
- };
- g = Neutr};
- Cheese = {
- s = table {
- Sg => "сирење";
- Pl => "сирењa"
- };
- g = Neutr};
- Fish = {
- s = table {
- Sg => "риба";
- Pl => "риби"
- };
- g = Fem};
- Pizza = {
- s = table {
- Sg => "пица";
- Pl => "пици"
- };
- g = Fem
- };
- Very qual = {s = \\g => "многу" ++ qual.s ! g};
- Fresh = {
- s = table {
- ASg Masc => "свеж";
- ASg Fem => "свежа";
- ASg Neutr => "свежо";
- APl => "свежи"}
- };
- Warm = {
- s = table {
- ASg Masc => "топол";
- ASg Fem => "топла";
- ASg Neutr => "топло";
- APl => "топли"}
- };
- Italian = {
- s = table {
- ASg Masc => "италијански";
- ASg Fem => "италијанска";
- ASg Neutr => "италијанско";
- APl => "италијански"}
- };
- Expensive = {
- s = table {
- ASg Masc => "скап";
- ASg Fem => "скапа";
- ASg Neutr => "скапо";
- APl => "скапи"}
- };
- Delicious = {
- s = table {
- ASg Masc => "вкусен";
- ASg Fem => "вкусна";
- ASg Neutr => "вкусно";
- APl => "вкусни"}
- };
- Boring = {
- s = table {
- ASg Masc => "досаден";
- ASg Fem => "досадна";
- ASg Neutr => "досадно";
- APl => "досадни"}
- };
-
-param
- Gender = Masc | Fem | Neutr;
- Number = Sg | Pl;
- Agr = ASg Gender | APl;
-
-}
diff --git a/examples/foods/FoodsMlt.gf b/examples/foods/FoodsMlt.gf
deleted file mode 100644
index 5fcd4de78..000000000
--- a/examples/foods/FoodsMlt.gf
+++ /dev/null
@@ -1,105 +0,0 @@
--- (c) 2013 John J. Camilleri under LGPL
-
-concrete FoodsMlt of Foods = open Prelude in {
- flags coding=utf8 ;
-
- lincat
- Comment = SS ;
- Quality = {s : Gender => Number => Str} ;
- Kind = {s : Number => Str ; g : Gender} ;
- Item = {s : Str ; g : Gender ; n : Number} ;
-
- lin
- -- Pred item quality = ss (item.s ++ copula item.n item.g ++ quality.s ! item.g ! item.n) ;
- Pred item quality = ss (item.s ++ quality.s ! item.g ! item.n) ;
-
- This kind = det Sg "dan" "din" kind ;
- That kind = det Sg "dak" "dik" kind ;
- These kind = det Pl "dawn" "" kind ;
- Those kind = det Pl "dawk" "" kind ;
-
- Mod quality kind = {
- s = \\n => kind.s ! n ++ quality.s ! kind.g ! n ;
- g = kind.g
- } ;
-
- Wine = noun "inbid" "inbejjed" Masc ;
- Cheese = noun "ġobon" "ġobniet" Masc ;
- Fish = noun "ħuta" "ħut" Fem ;
- Pizza = noun "pizza" "pizzez" Fem ;
-
- Very qual = {s = \\g,n => qual.s ! g ! n ++ "ħafna"} ;
-
- Warm = adjective "sħun" "sħuna" "sħan" ;
- Expensive = adjective "għali" "għalja" "għaljin" ;
- Delicious = adjective "tajjeb" "tajba" "tajbin" ;
- Boring = uniAdj "tad-dwejjaq" ;
- Fresh = regAdj "frisk" ;
- Italian = regAdj "Taljan" ;
-
- param
- Number = Sg | Pl ;
- Gender = Masc | Fem ;
-
- oper
- --Create an adjective (full function)
- --Params: Sing Masc, Sing Fem, Plural
- adjective : (_,_,_ : Str) -> {s : Gender => Number => Str} = \iswed,sewda,suwed -> {
- s = table {
- Masc => table {
- Sg => iswed ;
- Pl => suwed
- } ;
- Fem => table {
- Sg => sewda ;
- Pl => suwed
- }
- }
- } ;
-
- --Create a regular adjective
- --Param: Sing Masc
- regAdj : Str -> {s : Gender => Number => Str} = \frisk ->
- adjective frisk (frisk + "a") (frisk + "i") ;
-
- --Create a "uni-adjective" eg tal-buzz
- --Param: Sing Masc
- uniAdj : Str -> {s : Gender => Number => Str} = \uni ->
- adjective uni uni uni ;
-
- --Create a noun
- --Params: Singular, Plural, Gender (inherent)
- noun : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} = \ktieb,kotba,g -> {
- s = table {
- Sg => ktieb ;
- Pl => kotba
- } ;
- g = g
- } ;
-
- --Copula is a linking verb
- --Params: Number, Gender
- -- copula : Number -> Gender -> Str = \n,g -> case n of {
- -- Sg => case g of { Masc => "huwa" ; Fem => "hija" } ;
- -- Pl => "huma"
- -- } ;
-
- --Create an article, taking into account first letter of next word
- article = pre {
- "a"|"e"|"i"|"o"|"u" => "l-" ;
- --cons@("ċ"|"d"|"n"|"r"|"s"|"t"|"x"|"ż") => "i" + cons + "-" ;
- _ => "il-"
- } ;
-
- --Create a determinant
- --Params: Sg/Pl, Masc, Fem
- det : Number -> Str -> Str -> {s : Number => Str ; g : Gender} -> {s : Str ; g : Gender ; n : Number} = \n,m,f,cn -> {
- s = case n of {
- Sg => case cn.g of {Masc => m ; Fem => f}; --string
- Pl => m --default to masc
- } ++ article ++ cn.s ! n ;
- g = cn.g ; --gender
- n = n --number
- } ;
-
-}
diff --git a/examples/foods/FoodsMon.gf b/examples/foods/FoodsMon.gf
deleted file mode 100644
index c0d58f722..000000000
--- a/examples/foods/FoodsMon.gf
+++ /dev/null
@@ -1,48 +0,0 @@
-
--- (c) 2009 Nyamsuren Erdenebadrakh under LGPL
-
-concrete FoodsMon of Foods = open Prelude in {
- flags coding=utf8;
-
- lincat
- Comment, Quality = SS ;
- Kind = {s : Number => Str} ;
- Item = {s : Str ; n : Number} ;
-
- lin
- Pred item quality = ss (item.s ++ "бол" ++ quality.s) ;
- This = det Sg "энэ" ;
- That = det Sg "тэр" ;
- These = det Pl "эдгээр" ;
- Those = det Pl "тэдгээр" ;
- Mod quality kind = {s = \\n => quality.s ++ kind.s ! n} ;
- Wine = regNoun "дарс" ;
- Cheese = regNoun "бяслаг" ;
- Fish = regNoun "загас" ;
- Pizza = regNoun "пицца" ;
- Very = prefixSS "маш" ;
- Fresh = ss "шинэ" ;
- Warm = ss "халуун" ;
- Italian = ss "итали" ;
- Expensive = ss "үнэтэй" ;
- Delicious = ss "амттай" ;
- Boring = ss "амтгүй" ;
-
- param
- Number = Sg | Pl ;
-
- oper
- det : Number -> Str -> {s : Number => Str} -> {s : Str ; n : Number} =
- \n,d,cn -> {
- s = d ++ cn.s ! n ;
- n = n
- } ;
-
- regNoun : Str -> {s : Number => Str} =
- \x -> {s = table {
- Sg => x ;
- Pl => x + "нууд"}
- } ;
- }
-
-
diff --git a/examples/foods/FoodsNep.gf b/examples/foods/FoodsNep.gf
deleted file mode 100644
index ea02e64a6..000000000
--- a/examples/foods/FoodsNep.gf
+++ /dev/null
@@ -1,60 +0,0 @@
--- (c) 2011 Dinesh Simkhada under LGPL
-
-concrete FoodsNep of Foods = {
-
- flags coding = utf8 ;
-
- lincat
- Comment, Quality = {s : Str} ;
- Kind = {s : Number => Str} ;
- Item = {s : Str ; n : Number} ;
-
- lin
- Pred item quality =
- {s = item.s ++ quality.s ++ copula ! item.n} ;
-
- This = det Sg "यो" ;
- That = det Sg "त्यो" ;
- These = det Pl "यी" ;
- Those = det Pl "ती" ;
- Mod quality kind =
- {s = \\n => quality.s ++ kind.s ! n} ;
-
- Wine = regNoun "रक्सी" ;
- Cheese = regNoun "चिज" ;
- Fish = regNoun "माछा" ;
- Pizza = regNoun "पिज्जा" ;
- Very a = {s = "धेरै" ++ a.s} ;
- Fresh = adj "ताजा" ;
- Warm = adj "तातो" ;
- Italian = adj "इटालियन" ;
- Expensive = adj "महँगो" | adj "बहुमूल्य" ;
- Delicious = adj "स्वादिष्ट" | adj "मीठो" ;
- Boring = adjPl "नमिठो" ;
-
- param
- Number = Sg | Pl ;
-
- oper
- det : Number -> Str ->
- {s : Number => Str} -> {s : Str ; n : Number} =
- \n,det,noun -> {s = det ++ noun.s ! n ; n = n} ;
-
- noun : Str -> Str -> {s : Number => Str} =
- \man,men -> {s = table {Sg => man ; Pl => men}} ;
-
- regNoun : Str -> {s : Number => Str} =
- \car -> noun car (car + "हरु") ;
-
- adjPl : Str -> {s : Str} = \a -> case a of {
- bor + "ठो" => adj (bor + "ठा") ;
- _ => adj a
- } ;
-
- adj : Str -> {s : Str} =
- \cold -> {s = cold} ;
-
- copula : Number => Str =
- table {Sg => "छ" ; Pl => "छन्"} ;
-}
-
diff --git a/examples/foods/FoodsOri.gf b/examples/foods/FoodsOri.gf
deleted file mode 100644
index ad4f492f6..000000000
--- a/examples/foods/FoodsOri.gf
+++ /dev/null
@@ -1,30 +0,0 @@
-concrete FoodsOri of Foods = {
-
-flags coding = utf8 ;
-
-lincat
- Comment = Str;
- Item = Str;
- Kind = Str;
- Quality = Str;
-
-lin
- Pred item quality = item ++ quality ++ "ଅଟେ";
- This kind = "ଏଇ" ++ kind;
- That kind = "ସେଇ" ++ kind;
- These kind = "ଏଇ" ++ kind ++ "ଗୁଡିକ" ;
- Those kind = "ସେଇ" ++ kind ++ "ଗୁଡିକ" ;
- Mod quality kind = quality ++ kind;
- Wine = "ମଦ";
- Cheese = "ଛେନା";
- Fish = "ମାଛ";
- Pizza = "ପିଜଜ଼ା" ;
- Very quality = "ଅତି" ++ quality;
- Fresh = "ତାଜା";
- Warm = "ଗରମ";
- Italian = "ଇଟାଲି";
- Expensive = "ମୁଲ୍ୟବାନ୍";
- Delicious = "ସ୍ଵାଦିସ୍ଟ ";
- Boring = "ଅରୁଚିକର";
-
-}
diff --git a/examples/foods/FoodsPes.gf b/examples/foods/FoodsPes.gf
deleted file mode 100644
index c2e631e81..000000000
--- a/examples/foods/FoodsPes.gf
+++ /dev/null
@@ -1,65 +0,0 @@
-concrete FoodsPes of Foods = {
-
- flags optimize=noexpand ; coding=utf8 ;
-
- lincat
- Comment = {s : Str} ;
- Quality = {s : Add => Str; prep : Str} ;
- Kind = {s : Add => Number => Str ; prep : Str};
- Item = {s : Str ; n : Number};
- lin
- Pred item quality = {s = item.s ++ quality.s ! Indep ++ copula ! item.n} ;
- This = det Sg "این" ;
- That = det Sg "آن" ;
- These = det Pl "این" ;
- Those = det Pl "آن" ;
-
- Mod quality kind = {s = \\a,n => kind.s ! Attr ! n ++ kind.prep ++ quality.s ! a ;
- prep = quality.prep
- };
- Wine = regN "شراب" ;
- Cheese = regN "پنیر" ;
- Fish = regN "ماهى" ;
- Pizza = regN "پیتزا" ;
- Very a = {s = \\at => "خیلی" ++ a.s ! at ; prep = a.prep} ;
- Fresh = adj "تازه" ;
- Warm = adj "گرم" ;
- Italian = adj "ایتالیایی" ;
- Expensive = adj "گران" ;
- Delicious = adj "لذىذ" ;
- Boring = adj "ملال آور" ; -- it must be written as ملال آور.
-
- param
- Number = Sg | Pl ;
- Add = Indep | Attr ;
- oper
- det : Number -> Str -> {s: Add => Number => Str ; prep : Str} -> {s : Str ; n: Number} =
- \n,det,noun -> {s = det ++ noun.s ! Indep ! n ; n = n };
-
- noun : (x1,_,_,x4 : Str) -> {s : Add => Number => Str ; prep : Str} = \pytzA, pytzAy, pytzAhA,pr ->
- {s = \\a,n => case of
- { => pytzA ; => pytzAhA ;
- =>pytzA ; => pytzAhA + "ى" };
- prep = pr
- };
-
- regN : Str -> {s: Add => Number => Str ; prep : Str} = \mrd ->
- case mrd of
- { _ + ("ا"|"ه"|"ى"|"و"|"") => noun mrd (mrd+"ى") (mrd + "ها") "";
- _ => noun mrd mrd (mrd + "ها") "e"
- };
-
- adj : Str -> {s : Add => Str; prep : Str} = \tAzh ->
- case tAzh of
- { _ + ("ا"|"ه"|"ى"|"و"|"") => mkAdj tAzh (tAzh ++ "ى") "" ;
- _ => mkAdj tAzh tAzh "ه"
- };
-
- mkAdj : Str -> Str -> Str -> {s : Add => Str; prep : Str} = \tAzh, tAzhy, pr ->
- {s = table {Indep => tAzh;
- Attr => tAzhy};
- prep = pr
- };
- copula : Number => Str = table {Sg => "است"; Pl => "هستند"};
-
-}
\ No newline at end of file
diff --git a/examples/foods/FoodsPor.gf b/examples/foods/FoodsPor.gf
deleted file mode 100644
index 76ffa3109..000000000
--- a/examples/foods/FoodsPor.gf
+++ /dev/null
@@ -1,78 +0,0 @@
--- (c) 2009 Rami Shashati under LGPL
---# -coding=latin1
-
-concrete FoodsPor of Foods = open Prelude in {
- lincat
- Comment = {s : Str} ;
- Quality = {s : Gender => Number => Str} ;
- Kind = {s : Number => Str ; g : Gender} ;
- Item = {s : Str ; n : Number ; g : Gender } ;
-
- lin
- Pred item quality =
- {s = item.s ++ copula ! item.n ++ quality.s ! item.g ! item.n } ;
- This = det Sg (table {Masc => "este" ; Fem => "esta"}) ;
- That = det Sg (table {Masc => "esse" ; Fem => "essa"}) ;
- These = det Pl (table {Masc => "estes" ; Fem => "estas"}) ;
- Those = det Pl (table {Masc => "esses" ; Fem => "essas"}) ;
-
- Mod quality kind = { s = \\n => kind.s ! n ++ quality.s ! kind.g ! n ; g = kind.g } ;
-
- Wine = regNoun "vinho" Masc ;
- Cheese = regNoun "queijo" Masc ;
- Fish = regNoun "peixe" Masc ;
- Pizza = regNoun "pizza" Fem ;
-
- Very a = { s = \\g,n => "muito" ++ a.s ! g ! n } ;
-
- Fresh = mkAdjReg "fresco" ;
- Warm = mkAdjReg "quente" ;
- Italian = mkAdjReg "Italiano" ;
- Expensive = mkAdjReg "caro" ;
- Delicious = mkAdjReg "delicioso" ;
- Boring = mkAdjReg "chato" ;
-
- param
- Number = Sg | Pl ;
- Gender = Masc | Fem ;
-
- oper
- QualityT : Type = {s : Gender => Number => Str} ;
-
- mkAdj : (_,_,_,_ : Str) -> QualityT = \bonito,bonita,bonitos,bonitas -> {
- s = table {
- Masc => table { Sg => bonito ; Pl => bonitos } ;
- Fem => table { Sg => bonita ; Pl => bonitas }
- } ;
- } ;
-
- -- regular pattern
- adjSozinho : Str -> QualityT = \sozinho ->
- let sozinh = Predef.tk 1 sozinho
- in mkAdj sozinho (sozinh + "a") (sozinh + "os") (sozinh + "as") ;
-
- -- for gender-independent adjectives
- adjUtil : Str -> Str -> QualityT = \util,uteis ->
- mkAdj util util uteis uteis ;
-
- -- smart paradigm for adjcetives
- mkAdjReg : Str -> QualityT = \a -> case last a of {
- "o" => adjSozinho a ;
- "e" => adjUtil a (a + "s")
- } ;
-
- ItemT : Type = {s : Str ; n : Number ; g : Gender } ;
-
- det : Number -> (Gender => Str) -> KindT -> ItemT =
- \num,det,noun -> {s = det ! noun.g ++ noun.s ! num ; n = num ; g = noun.g } ;
-
- KindT : Type = {s : Number => Str ; g : Gender} ;
-
- noun : Str -> Str -> Gender -> KindT =
- \animal,animais,gen -> {s = table {Sg => animal ; Pl => animais} ; g = gen } ;
-
- regNoun : Str -> Gender -> KindT =
- \carro,gen -> noun carro (carro + "s") gen ;
-
- copula : Number => Str = table {Sg => "" ; Pl => "so"} ;
-}
diff --git a/examples/foods/FoodsRon.gf b/examples/foods/FoodsRon.gf
deleted file mode 100644
index d7d917ffc..000000000
--- a/examples/foods/FoodsRon.gf
+++ /dev/null
@@ -1,72 +0,0 @@
--- (c) 2009 Ramona Enache under LGPL
-
-concrete FoodsRon of Foods =
-{
-flags coding=utf8 ;
-
-param Number = Sg | Pl ;
- Gender = Masc | Fem ;
- NGender = NMasc | NFem | NNeut ;
-lincat
-Comment = {s : Str};
-Quality = {s : Number => Gender => Str};
-Kind = {s : Number => Str; g : NGender};
-Item = {s : Str ; n : Number; g : Gender};
-
-lin
-
-This = det Sg (mkTab "acest" "această");
-That = det Sg (mkTab "acel" "acea");
-These = det Pl (mkTab "acești" "aceste");
-Those = det Pl (mkTab "acei" "acele");
-
-Wine = mkNoun "vin" "vinuri" NNeut ;
-Cheese = mkNoun "brânză" "brânzeturi" NFem ;
-Fish = mkNoun "peşte" "peşti" NMasc ;
-Pizza = mkNoun "pizza" "pizze" NFem;
-
-Very a = {s = \\n,g => "foarte" ++ a.s ! n ! g};
-
-Fresh = mkAdj "proaspăt" "proaspătă" "proaspeţi" "proaspete" ;
-Warm = mkAdj "cald" "caldă" "calzi" "calde" ;
-Italian = mkAdj "italian" "italiană" "italieni" "italiene" ;
-Expensive = mkAdj "scump" "scumpă" "scumpi" "scumpe" ;
-Delicious = mkAdj "delicios" "delcioasă" "delicioşi" "delicioase" ;
-Boring = mkAdj "plictisitor" "plictisitoare" "plictisitori" "plictisitoare" ;
-
-Pred item quality = {s = item.s ++ copula ! item.n ++ quality.s ! item.n ! item.g} ;
-
-Mod quality kind = {s = \\n => kind.s ! n ++ quality.s ! n ! (getAgrGender kind.g n) ; g = kind.g};
-
-oper
-
-mkTab : Str -> Str -> {s : Gender => Str} = \acesta, aceasta ->
-{s = table{Masc => acesta;
- Fem => aceasta}};
-
-det : Number -> {s : Gender => Str} -> {s : Number => Str ; g : NGender} -> {s : Str; n : Number; g : Gender} =
-\n,det,noun -> let gg = getAgrGender noun.g n
- in
- {s = det.s ! gg ++ noun.s ! n ; n = n ; g = gg};
-
-mkNoun : Str -> Str -> NGender -> {s : Number => Str; g : NGender} = \peste, pesti,g ->
-{s = table {Sg => peste;
- Pl => pesti};
- g = g
-};
-
-oper mkAdj : (x1,_,_,x4 : Str) -> {s : Number => Gender => Str} = \scump, scumpa, scumpi, scumpe ->
-{s = \\n,g => case of
-{ => scump ; => scumpa;
- => scumpi ; => scumpe
-}};
-
-copula : Number => Str = table {Sg => "este" ; Pl => "sunt"};
-
-getAgrGender : NGender -> Number -> Gender = \ng,n ->
-case of
-{ => Masc ; => Fem;
- => Masc ; => Fem
-};
-
-}
diff --git a/examples/foods/FoodsSpa.gf b/examples/foods/FoodsSpa.gf
deleted file mode 100644
index 693d77d06..000000000
--- a/examples/foods/FoodsSpa.gf
+++ /dev/null
@@ -1,30 +0,0 @@
-
-concrete FoodsSpa of Foods = open SyntaxSpa, StructuralSpa, ParadigmsSpa in {
-
- lincat
- Comment = Utt ;
- Item = NP ;
- Kind = CN ;
- Quality = AP ;
-
- lin
- Pred item quality = mkUtt (mkCl item quality) ;
- This kind = mkNP this_QuantSg kind ;
- That kind = mkNP that_QuantSg kind ;
- These kind = mkNP these_QuantPl kind ;
- Those kind = mkNP those_QuantPl kind ;
- Mod quality kind = mkCN quality kind ;
- Very quality = mkAP very_AdA quality ;
- Wine = mkCN (mkN "vino") ;
- Pizza = mkCN (mkN "pizza") ;
- Cheese = mkCN (mkN "queso") ;
- Fish = mkCN (mkN "pescado") ;
- Fresh = mkAP (mkA "fresco") ;
- Warm = mkAP (mkA "caliente") ;
- Italian = mkAP (mkA "italiano") ;
- Expensive = mkAP (mkA "caro") ;
- Delicious = mkAP (mkA "delicioso") ;
- Boring = mkAP (mkA "aburrido") ;
-
-}
-
diff --git a/examples/foods/FoodsSwe.gf b/examples/foods/FoodsSwe.gf
deleted file mode 100644
index c3ed38abb..000000000
--- a/examples/foods/FoodsSwe.gf
+++ /dev/null
@@ -1,6 +0,0 @@
-
--- (c) 2009 Aarne Ranta under LGPL
-
-concrete FoodsSwe of Foods = FoodsI with
- (Syntax = SyntaxSwe),
- (LexFoods = LexFoodsSwe) ** {flags language = sv_SE;} ;
diff --git a/examples/foods/FoodsTha.gf b/examples/foods/FoodsTha.gf
deleted file mode 100644
index 68245e1af..000000000
--- a/examples/foods/FoodsTha.gf
+++ /dev/null
@@ -1,32 +0,0 @@
-
-concrete FoodsTha of Foods = open SyntaxTha, LexiconTha,
- ParadigmsTha, (R=ResTha) in {
-
- flags coding = utf8 ;
-
- lincat
- Comment = Utt ;
- Item = NP ;
- Kind = CN ;
- Quality = AP ;
-
- lin
- Pred item quality = mkUtt (mkCl item quality) ;
- This kind = mkNP this_Det kind ;
- That kind = mkNP that_Det kind ;
- These kind = mkNP these_Det kind ;
- Those kind = mkNP those_Det kind ;
- Mod quality kind = mkCN quality kind ;
- Very quality = mkAP very_AdA quality ;
- Wine = mkCN (mkN (R.thword "เหล้าอ" "งุ่น") "ขวด") ;
- Pizza = mkCN (mkN (R.thword "พิซ" "ซา") "ถาด") ;
- Cheese = mkCN (mkN (R.thword "เนย" "แข็ง") "ก้อน") ;
- Fish = mkCN fish_N ;
- Fresh = mkAP (mkA "สด") ;
- Warm = mkAP warm_A ;
- Italian = mkAP (mkA " อิตาลี") ;
- Expensive = mkAP (mkA "แพง") ;
- Delicious = mkAP (mkA "อร่อย") ;
- Boring = mkAP (mkA (R.thword "น่า" "เบิ่อ")) ;
-
-}
diff --git a/examples/foods/FoodsTsn.gf b/examples/foods/FoodsTsn.gf
deleted file mode 100644
index dae2bdfba..000000000
--- a/examples/foods/FoodsTsn.gf
+++ /dev/null
@@ -1,177 +0,0 @@
-
--- (c) 2009 Laurette Pretorius Sr & Jr and Ansu Berg under LGPL
-
-concrete FoodsTsn of Foods = open Prelude, Predef in {
- flags coding = utf8;
- lincat
- Comment = {s:Str};
- Item = {s:Str; c:NounClass; n:Number};
- Kind = {w: Number => Str; r: Str; c: NounClass; q: Number => Str; b: Bool};
- Quality = {s: NounClass => Number => Str; p_form: Str; t: TType};
- lin
- Pred item quality = {s = item.s ++ ((mkPredDescrCop quality.t) ! item.c ! item.n) ++ quality.p_form};
-
- This kind = {s = (kind.w ! Sg) ++ (mkDemPron1 ! kind.c ! Sg) ++ (kind.q ! Sg); c = kind.c; n = Sg};
- That kind = {s = (kind.w ! Sg) ++ (mkDemPron2 ! kind.c ! Sg) ++ (kind.q ! Sg); c = kind.c; n = Sg};
- These kind = {s = (kind.w ! Pl) ++ (mkDemPron1 ! kind.c ! Pl) ++ (kind.q ! Pl); c = kind.c; n = Pl};
- Those kind = {s = (kind.w ! Pl) ++ (mkDemPron2 ! kind.c ! Pl) ++ (kind.q ! Pl); c = kind.c; n = Pl};
-
- Mod quality kind = mkMod quality kind;
-
- -- Lexicon
- Wine = mkNounNC14_6 "jalwa";
- Cheese = mkNounNC9_10 "kase";
- Fish = mkNounNC9_10 "thlapi";
- Pizza = mkNounNC9_10 "pizza";
- Very quality = smartVery quality;
- Fresh = mkVarAdj "ntsha";
- Warm = mkOrdAdj "bothitho";
- Italian = mkPerAdj "Itali";
- Expensive = mkVerbRel "tura";
- Delicious = mkOrdAdj "monate";
- Boring = mkOrdAdj "bosula";
-
- param
- NounClass = NC9_10 | NC14_6;
- Number = Sg | Pl;
- TType = P | V | ModV | R ;
- oper
- mkMod : {s: NounClass => Number => Str; p_form: Str; t: TType} -> {w: Number => Str; r: Str; c: NounClass; q: Number => Str; b: Bool} -> {w: Number => Str; r: Str; c: NounClass; q: Number => Str;
- b: Bool} = \x,y -> case y.b of
- {
- True => {w = y.w; r = y.r; c = y.c;
- q = table {
- Sg => ((y.q ! Sg) ++ "le" ++ ((smartQualRelPart (x.t)) ! y.c ! Sg) ++ ((smartDescrCop (x.t)) ! y.c ! Sg) ++ (x.s ! y.c ! Sg));
- Pl => ((y.q ! Pl) ++ "le" ++ ((smartQualRelPart (x.t))! y.c ! Pl) ++ ((smartDescrCop (x.t)) ! y.c ! Pl) ++(x.s ! y.c ! Pl))
- }; b = True
- };
- False => {w = y.w; r = y.r; c = y.c;
- q = table {
- Sg => ((y.q ! Sg) ++ ((smartQualRelPart (x.t)) ! y.c ! Sg) ++ ((smartDescrCop (x.t)) ! y.c ! Sg) ++ (x.s ! y.c ! Sg));
- Pl => ((y.q ! Pl) ++ ((smartQualRelPart (x.t)) ! y.c ! Pl) ++ ((smartDescrCop (x.t)) ! y.c ! Pl) ++(x.s ! y.c ! Pl))
- }; b = True
- }
- };
-
- mkNounNC14_6 : Str -> {w: Number => Str; r: Str; c: NounClass; q: Number => Str; b: Bool} = \x -> {w = table {Sg => "bo" + x; Pl => "ma" + x}; r = x; c = NC14_6;
- q = table {Sg => ""; Pl => ""}; b = False};
-
- mkNounNC9_10 : Str -> {w: Number => Str; r: Str; c: NounClass; q: Number => Str; b: Bool} = \x -> {w = table {Sg => "" + x; Pl => "di" + x}; r = x; c = NC9_10;
- q = table {Sg => ""; Pl => ""}; b = False};
-
- mkVarAdj : Str -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x ->
- {
- s = table {
- NC9_10 => table {Sg => "" + x; Pl => "di" + x};
- NC14_6 => table {Sg => "bo" + x; Pl => "ma" + x}
- };
- p_form = x;
- t = R;
- };
-
- mkOrdAdj : Str -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x ->
- {
- s = table {
- NC9_10 => table {Sg => "" + x; Pl => "" + x};
- NC14_6 => table {Sg => "" + x; Pl => "" + x}
- };
- p_form = x;
- t = R;
- };
-
- mkVerbRel : Str -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x ->
- {
- s = table {
- NC9_10 => table {Sg => x + "ng"; Pl => x + "ng"};
- NC14_6 => table {Sg => x + "ng"; Pl => x + "ng"}
- };
- p_form = x;
- t = V;
- };
-
- mkPerAdj : Str -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x ->
- {
- s = table {
- NC9_10 => table {Sg => "" + x; Pl => "" + x};
- NC14_6 => table {Sg => "" + x; Pl => "" + x}
- };
- p_form = "mo" ++ x;
- t = P;
- };
-
- mkVeryAdj : {s: NounClass => Number => Str; p_form: Str; t: TType} -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x ->
- {
- s = table{c => table{n => (x.s!c!n) ++ "thata"}}; p_form = x.p_form ++ "thata"; t = x.t
- };
-
- mkVeryVerb : {s: NounClass => Number => Str; p_form: Str; t: TType} -> {s: NounClass => Number => Str; p_form: Str; t: TType} = \x ->
- {
- s = table{c => table{n => (x.s!c!n) ++ "thata"}}; p_form = x.p_form ++ "thata"; t = ModV
- };
-
- smartVery : {s: NounClass => Number => Str; p_form: Str; t: TType} -> {s: NounClass => Number => Str; p_form: Str; t: TType} =
-\x -> case x.t of --(x.s!c!n)
- {
- (V | ModV) => mkVeryVerb x;
- --ModV => mkVeryVerb x;
- _ => mkVeryAdj x
- };
-
- mkDemPron1 : NounClass => Number => Str = table
- {
- NC9_10 => table {Sg => "e"; Pl => "tse"};
- NC14_6 => table {Sg => "bo"; Pl => "a"}
- };
-
- mkDemPron2 : NounClass => Number => Str = table
- {
- NC9_10 => table {Sg => "eo"; Pl => "tseo"};
- NC14_6 => table {Sg => "boo"; Pl => "ao"}
- };
-
- smartQualRelPart : TType -> (NounClass => Number => Str) = \x -> case x of
- {
- P => mkQualRelPart_PName;
- _ => mkQualRelPart
- };
-
- mkQualRelPart : NounClass => Number => Str = table
- {
- NC9_10 => table {Sg => "e"; Pl => "tse"};
- NC14_6 => table {Sg => "bo"; Pl => "a"}
- };
-
- mkQualRelPart_PName : NounClass => Number => Str = table
- {
- NC9_10 => table {Sg => "ya"; Pl => "tsa"};
- NC14_6 => table {Sg => "ba"; Pl => "a"}
- };
-
- smartDescrCop : TType -> (NounClass => Number => Str) = \x -> case x of
- {
- P => mkDescrCop_PName;
- _ => mkDescrCop
- };
-
- mkDescrCop : NounClass => Number => Str = table
- {
- NC9_10 => table {Sg => "e"; Pl => "di"};
- NC14_6 => table {Sg => "bo"; Pl => "a"}
- };
-
- mkDescrCop_PName : NounClass => Number => Str = table
- {
- NC9_10 => table {Sg => "ga"; Pl => "ga"};
- NC14_6 => table {Sg => "ga"; Pl => "ga"}
- };
-
- mkPredDescrCop : TType -> (NounClass => Number => Str) = \x -> case x of
- {
- V => table {NC9_10 => table {Sg => "e" ++ "a"; Pl => "di" ++ "a"};
- NC14_6 => table {Sg => "bo" ++ "a"; Pl => "a" ++ "a"}};
-
- _ => table {NC9_10 => table {Sg => "e"; Pl => "di"};
- NC14_6 => table {Sg => "bo"; Pl => "a"}}
- };
-
-}
diff --git a/examples/foods/FoodsTur.gf b/examples/foods/FoodsTur.gf
deleted file mode 100644
index 9347a6bf7..000000000
--- a/examples/foods/FoodsTur.gf
+++ /dev/null
@@ -1,140 +0,0 @@
-{-
- File : FoodsTur.gf
- Author : Server Çimen
- Version : 1.0
- Created on: August 26, 2009
-
- This file contains concrete grammar of Foods abstract grammar for Turkish Language.
- This grammar is to be used for Fridge demo and developed in the scope of GF Resource
- Grammar Summer School.
-
--}
-
-concrete FoodsTur of Foods = open Predef in {
- flags
- coding=utf8 ;
- lincat
- Comment = {s : Str} ;
- Quality = {s : Str ; c : Case; softness : Softness; h : Harmony} ;
- Kind = {s : Case => Number => Str} ;
- Item = {s : Str; n : Number} ;
- lin
- This = det Sg "bu" ;
- That = det Sg "şu" ;
- These = det Pl "bu" ;
- Those = det Pl "şu" ;
- -- Reason for excluding plural form of copula: In Turkish if subject is not a human being,
- -- then singular form of copula is used regardless of the number of subject. Since all
- -- possible subjects are non human, copula do not need to have plural form.
- Pred item quality = {s = item.s ++ quality.s ++ BIND ++ copula ! quality.softness ! quality.h} ;--! item.n} ;
- Mod quality kind = {s = case quality.c of {
- Nom => \\t,n => quality.s ++ kind.s ! t ! n ;
- Gen => \\t,n => quality.s ++ kind.s ! Gen ! n
- }
- } ;
- Wine = mkN "şarap" "şaraplar" "şarabı" "şarapları" ;
- Cheese = mkN "peynir" "peynirler" "peyniri" "peynirleri" ;
- Fish = mkN "balık" "balıklar" "balığı" "balıkları" ;
- Pizza = mkN "pizza" "pizzalar" "pizzası" "pizzaları" ;
- Very a = {s = "çok" ++ a.s ; c = a.c; softness = a.softness; h = a.h} ;
- Fresh = adj "taze" Nom;
- Warm = adj "ılık" Nom;
- Italian = adj "İtalyan" Gen ;
- Expensive = adj "pahalı" Nom;
- Delicious = adj "lezzetli" Nom;
- Boring = adj "sıkıcı" Nom;
- param
- Number = Sg | Pl ;
- Case = Nom | Gen ;
- Harmony = I_Har | Ih_Har | U_Har | Uh_Har ; --Ih = İ; Uh = Ü
- Softness = Soft | Hard ;
- oper
- det : Number -> Str -> {s : Case => Number => Str} -> {s : Str; n : Number} =
- \num,det,noun -> {s = det ++ noun.s ! Nom ! num; n = num} ;
- mkN = overload {
- mkN : Str -> Str -> {s : Case => Number => Str} = regNoun ;
- mkn : Str -> Str -> Str -> Str-> {s : Case => Number => Str} = noun ;
- } ;
- regNoun : Str -> Str -> {s : Case => Number => Str} =
- \peynir,peynirler -> noun peynir peynirler [] [] ;
- noun : Str -> Str -> Str -> Str-> {s : Case => Number => Str} =
- \sarap,saraplar,sarabi,saraplari -> {
- s = table {
- Nom => table {
- Sg => sarap ;
- Pl => saraplar
- } ;
- Gen => table {
- Sg => sarabi ;
- Pl => saraplari
- }
- }
- };
- {-
- Since there is a bug in overloading, this overload is useless.
-
- mkA = overload {
- mkA : Str -> {s : Str; c : Case; softness : Softness; h : Harmony} = \base -> adj base Nom ;
- mkA : Str -> Case -> {s : Str; c : Case; softness : Softness; h : Harmony} = adj ;
- } ;
- -}
- adj : Str -> Case -> {s : Str; c : Case; softness : Softness; h : Harmony} =
- \italyan,ca -> {s = italyan ; c = ca; softness = (getSoftness italyan); h = (getHarmony italyan)} ;
- -- See the comment at lines 26 and 27 for excluded plural form of copula.
- copula : Softness => Harmony {-=> Number-} => Str =
- table {
- Soft => table {
- I_Har => "dır" ;--table {
- -- Sg => "dır" ;
- -- Pl => "dırlar"
- --} ;
- Ih_Har => "dir" ;--table {
- --Sg => "dir" ;
- --Pl => "dirler"
- --} ;
- U_Har => "dur" ;--table {
- -- Sg => "dur" ;
- -- Pl => "durlar"
- --} ;
- Uh_Har => "dür" --table {
- --Sg => "dür" ;
- --Pl => "dürler"
- --}
- } ;
- Hard => table {
- I_Har => "tır" ;--table {
- --Sg => "tır" ;
- --Pl => "tırlar"
- --} ;
- Ih_Har => "tir" ;--table {
- --Sg => "tir" ;
- --Pl => "tirler"
- --} ;
- U_Har => "tur" ;--table {
- -- Sg => "tur" ;
- -- Pl => "turlar"
- --} ;
- Uh_Har => "tür"--table {
- --Sg => "tür" ;
- --Pl => "türler"
- --}
- }
- } ;
-
- getHarmony : Str -> Harmony
- = \base -> case base of {
- _+c@("ı"|"a"|"i"|"e"|"u"|"o"|"ü"|"ö")+
- ("b"|"v"|"d"|"z"|"j"|"c"|"g"|"ğ"|"l"|"r"|"m"|"n"|"y"|"p"|"f"|"t"|"s"|"ş"|"ç"|"k"|"h")* =>
- case c of {
- ("ı"|"a") => I_Har ;
- ("i"|"e") => Ih_Har ;
- ("u"|"o") => U_Har ;
- ("ü"|"ö") => Uh_Har
- }
- } ;
- getSoftness : Str -> Softness
- = \base -> case base of {
- _+("f"|"s"|"t"|"k"|"ç"|"ş"|"h"|"p") => Hard ;
- _ => Soft
- } ;
-}
\ No newline at end of file
diff --git a/examples/foods/FoodsUrd.gf b/examples/foods/FoodsUrd.gf
deleted file mode 100644
index 186b2f929..000000000
--- a/examples/foods/FoodsUrd.gf
+++ /dev/null
@@ -1,53 +0,0 @@
--- (c) 2009 Shafqat Virk under LGPL
-
-concrete FoodsUrd of Foods = {
-
- flags coding=utf8 ;
-
-
- param Number = Sg | Pl ;
- param Gender = Masc | Fem;
-
- oper coupla : Number -> Str =\n -> case n of {Sg => "ہے" ; Pl => "ہیں"};
-
-
- lincat
- Comment = {s : Str} ;
- Item = {s: Str ; n: Number ; g:Gender};
- Kind = {s: Number => Str ; g:Gender};
- Quality = {s: Gender => Number => Str};
-
- lin
- Pred item quality = {s = item.s ++ quality.s ! item.g ! item.n ++ coupla item.n} ;
- This kind = {s = "یھ" ++ kind.s ! Sg; n= Sg ; g = kind.g } ;
- These kind = {s = "یھ" ++ kind.s ! Pl; n = Pl ; g = kind.g} ;
- That kind = {s = "وہ" ++ kind.s ! Sg; n= Sg ; g = kind.g} ;
- Those kind = {s = "وہ" ++ kind.s ! Pl; n=Pl ; g = kind.g} ;
- Mod quality kind = {s = \\n => quality.s ! kind.g ! n ++ kind.s ! n ; g = kind.g};
- Wine = {s = table { Sg => "شراب" ; Pl => "شرابیں"} ; g = Fem};
- Cheese = {s = table { Sg => "پنیر" ; Pl => "پنیریں"} ; g = Fem};
- Fish = {s = table { Sg => "مچھلی" ; Pl => "مچھلیاں"} ; g = Fem};
- Pizza = {s = table { Sg => "پیزہ" ; Pl => "پیزے"} ; g = Masc};
- Very quality = {s = \\g,n => "بہت" ++ quality.s ! g ! n} ;
- Fresh = regAdj "تازہ" ;
- Warm = regAdj "گرم" ;
- Italian = regAdj "اٹا لوی" ;
- Expensive = regAdj "مہنگا" ;
- Delicious = regAdj "مزیدار" ;
- Boring = regAdj "فضول" ;
-
- oper
- regAdj : Str -> {s: Gender => Number => Str} = \a -> case a of {
- x + "ا" => mkAdj a (x+"ے") (x+"ی");
- _ => mkAdj a a a
- };
- mkAdj : Str -> Str -> Str -> {s: Gender => Number => Str} = \s,p,f -> {
- s = table {
- Masc => table {
- Sg => s;
- Pl => p
- };
- Fem => \\_ => f
- }
- };
- }
\ No newline at end of file
diff --git a/examples/foods/LexFoods.gf b/examples/foods/LexFoods.gf
deleted file mode 100644
index 12ace208c..000000000
--- a/examples/foods/LexFoods.gf
+++ /dev/null
@@ -1,15 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
-
-interface LexFoods = open Syntax in {
- oper
- wine_N : N ;
- pizza_N : N ;
- cheese_N : N ;
- fish_N : N ;
- fresh_A : A ;
- warm_A : A ;
- italian_A : A ;
- expensive_A : A ;
- delicious_A : A ;
- boring_A : A ;
-}
diff --git a/examples/foods/LexFoodsCat.gf b/examples/foods/LexFoodsCat.gf
deleted file mode 100644
index 624fc98c8..000000000
--- a/examples/foods/LexFoodsCat.gf
+++ /dev/null
@@ -1,18 +0,0 @@
--- (c) 2009 Jordi Saludes under LGPL
-
-instance LexFoodsCat of LexFoods =
- open SyntaxCat, ParadigmsCat, (M = MorphoCat) in {
- flags
- coding = utf8 ;
- oper
- wine_N = mkN "vi" "vins" M.Masc ;
- pizza_N = mkN "pizza" ;
- cheese_N = mkN "formatge" ;
- fish_N = mkN "peix" "peixos" M.Masc;
- fresh_A = mkA "fresc" "fresca" "frescos" "fresques" "frescament";
- warm_A = mkA "calent" ;
- italian_A = mkA "italià" "italiana" "italians" "italianes" "italianament" ;
- expensive_A = mkA "car" ;
- delicious_A = mkA "deliciós" "deliciosa" "deliciosos" "delicioses" "deliciosament";
- boring_A = mkA "aburrit" "aburrida" "aburrits" "aburrides" "aburridament" ;
-}
diff --git a/examples/foods/LexFoodsFin.gf b/examples/foods/LexFoodsFin.gf
deleted file mode 100644
index da6a26b8a..000000000
--- a/examples/foods/LexFoodsFin.gf
+++ /dev/null
@@ -1,21 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
---# -coding=latin1
-
-instance LexFoodsFin of LexFoods =
- open SyntaxFin, ParadigmsFin in {
- oper
- wine_N = mkN "viini" ;
- pizza_N = mkN "pizza" ;
- cheese_N = mkN "juusto" ;
- fish_N = mkN "kala" ;
- fresh_A = mkA "tuore" ;
- warm_A = mkA
- (mkN "lmmin" "lmpimn" "lmmint" "lmpimn" "lmpimn"
- "lmpimin" "lmpimi" "lmpimien" "lmpimiss" "lmpimiin"
- )
- "lmpimmpi" "lmpimin" ;
- italian_A = mkA "italialainen" ;
- expensive_A = mkA "kallis" ;
- delicious_A = mkA "herkullinen" ;
- boring_A = mkA "tyls" ;
-}
diff --git a/examples/foods/LexFoodsGer.gf b/examples/foods/LexFoodsGer.gf
deleted file mode 100644
index 5df504d8c..000000000
--- a/examples/foods/LexFoodsGer.gf
+++ /dev/null
@@ -1,17 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
---# -coding=latin1
-
-instance LexFoodsGer of LexFoods =
- open SyntaxGer, ParadigmsGer in {
- oper
- wine_N = mkN "Wein" ;
- pizza_N = mkN "Pizza" "Pizzen" feminine ;
- cheese_N = mkN "Kse" "Kse" masculine ;
- fish_N = mkN "Fisch" ;
- fresh_A = mkA "frisch" ;
- warm_A = mkA "warm" "wrmer" "wrmste" ;
- italian_A = mkA "italienisch" ;
- expensive_A = mkA "teuer" ;
- delicious_A = mkA "kstlich" ;
- boring_A = mkA "langweilig" ;
-}
diff --git a/examples/foods/LexFoodsIta.gf b/examples/foods/LexFoodsIta.gf
deleted file mode 100644
index 11de5fcda..000000000
--- a/examples/foods/LexFoodsIta.gf
+++ /dev/null
@@ -1,16 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
-
-instance LexFoodsIta of LexFoods =
- open SyntaxIta, ParadigmsIta in {
- oper
- wine_N = mkN "vino" ;
- pizza_N = mkN "pizza" ;
- cheese_N = mkN "formaggio" ;
- fish_N = mkN "pesce" ;
- fresh_A = mkA "fresco" ;
- warm_A = mkA "caldo" ;
- italian_A = mkA "italiano" ;
- expensive_A = mkA "caro" ;
- delicious_A = mkA "delizioso" ;
- boring_A = mkA "noioso" ;
-}
diff --git a/examples/foods/LexFoodsSwe.gf b/examples/foods/LexFoodsSwe.gf
deleted file mode 100644
index 6718e9fab..000000000
--- a/examples/foods/LexFoodsSwe.gf
+++ /dev/null
@@ -1,17 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
---# -coding=latin1
-
-instance LexFoodsSwe of LexFoods =
- open SyntaxSwe, ParadigmsSwe in {
- oper
- wine_N = mkN "vin" "vinet" "viner" "vinerna" ;
- pizza_N = mkN "pizza" ;
- cheese_N = mkN "ost" ;
- fish_N = mkN "fisk" ;
- fresh_A = mkA "frsk" ;
- warm_A = mkA "varm" ;
- italian_A = mkA "italiensk" ;
- expensive_A = mkA "dyr" ;
- delicious_A = mkA "lcker" ;
- boring_A = mkA "trkig" ;
-}
diff --git a/examples/foods/Makefile b/examples/foods/Makefile
deleted file mode 100644
index 5f42041ae..000000000
--- a/examples/foods/Makefile
+++ /dev/null
@@ -1,8 +0,0 @@
-
-all:: Foods.pgf
-
-Foods.pgf: Foods???.gf
- gf -make -s Foods???.gf
-
-clean:
- rm -rf *.gfo Foods.pgf
diff --git a/examples/foods/MutationsGla.gf b/examples/foods/MutationsGla.gf
deleted file mode 100644
index 41eb11006..000000000
--- a/examples/foods/MutationsGla.gf
+++ /dev/null
@@ -1,53 +0,0 @@
-resource MutationsGla = open CharactersGla in {
- param Mutation = Unmutated|Lenition1|Lenition1DNTLS|Lenition2|PrefixT|PrefixH;
-
- --Turns a string into a mutation table
- oper mutate : (_ : Str) -> (Mutation => Str) = \str -> table {
- Unmutated => str ;
- Lenition1 => lenition1 str ;
- Lenition1DNTLS => lenition1dntls str ;
- Lenition2 => lenition2 str ;
- PrefixT => prefixT str ;
- PrefixH => prefixH str
- };
-
- --Performs lenition 1: inserts "h" if the word begins with a lenitable character
- oper lenition1 : Str -> Str = \str -> case str of {
- start@("p"|"b"|"m"|"f"|"t"|"d"|"c"|"g") + rest => start + "h" + rest ;
- start@("P"|"B"|"M"|"F"|"T"|"D"|"C"|"G") + rest => start + "h" + rest ;
- ("s"|"S") + ("p"|"t"|"c") + _ => str ; --the sequences "sp", "st", "sc" are never mutated
- start@("s"|"S") + rest => start + "h" + rest ;
- _ => str
- };
-
- --Performs lenition 1 with dentals: same as lenition 1 but leaves "d", "t" and "s" unmutated
- oper lenition1dntls : Str -> Str = \str -> case str of {
- start@("p"|"b"|"m"|"f"|"c"|"g") + rest => start + "h" + rest ;
- start@("P"|"B"|"M"|"F"|"C"|"G") + rest => start + "h" + rest ;
- _ => str
- };
-
- --Performs lenition 2: same as lenition 1 with dentals but also changes "s" into "ts"
- oper lenition2 : Str -> Str = \str -> case str of {
- start@("p"|"b"|"m"|"f"|"c"|"g") + rest => start + "h" + rest ;
- start@("P"|"B"|"M"|"F"|"C"|"G") + rest => start + "h" + rest ;
- ("s"|"S") + ("p"|"t"|"c") + _ => str ; --the sequences "sp", "st", "sc" are never mutated
- start@("s"|"S") + rest => "t-" + start + rest ;
- _ => str
- };
-
- --Prefixes a "t" to words beginning with a vowel
- oper prefixT : Str -> Str = \str -> case str of {
- start@(#vowel) + rest => "t-" + start + rest ;
- start@(#vowelCap) + rest => "t-" + start + rest ;
- _ => str
- };
-
- --Prefixes a "h" to words beginning with a vowel
- oper prefixH : Str -> Str = \str -> case str of {
- start@(#vowel) + rest => "h-" + start + rest ;
- start@(#vowelCap) + rest => "h-" + start + rest ;
- _ => str
- };
-
-}
\ No newline at end of file
diff --git a/examples/foods/MutationsGle.gf b/examples/foods/MutationsGle.gf
deleted file mode 100644
index 9ae734a90..000000000
--- a/examples/foods/MutationsGle.gf
+++ /dev/null
@@ -1,92 +0,0 @@
-resource MutationsGle = open CharactersGle in {
- param Mutation = Unmutated|Lenition1|Lenition1DNTLS|Lenition2|Eclipsis1|Eclipsis2|Eclipsis3|PrefixT|PrefixH;
-
- --Turns a string into a mutation table
- oper mutate : (_ : Str) -> (Mutation => Str) = \str -> table {
- Unmutated => str ;
- Lenition1 => lenition1 str ;
- Lenition1DNTLS => lenition1dntls str ;
- Lenition2 => lenition2 str ;
- Eclipsis1 => eclipsis1 str ;
- Eclipsis2 => eclipsis2 str ;
- Eclipsis3 => eclipsis3 str ;
- PrefixT => prefixT str ;
- PrefixH => prefixH str
- };
-
- --Performs lenition 1: inserts "h" if the word begins with a lenitable character
- oper lenition1 : Str -> Str = \str -> case str of {
- start@("p"|"b"|"m"|"f"|"t"|"d"|"c"|"g") + rest => start + "h" + rest ;
- start@("P"|"B"|"M"|"F"|"T"|"D"|"C"|"G") + rest => start + "h" + rest ;
- ("s"|"S") + ("p"|"t"|"c") + _ => str ; --the sequences "sp", "st", "sc" are never mutated
- start@("s"|"S") + rest => start + "h" + rest ;
- _ => str
- };
-
- --Performs lenition 1 with dentals: same as lenition 1 but leaves "d", "t" and "s" unmutated
- oper lenition1dntls : Str -> Str = \str -> case str of {
- start@("p"|"b"|"m"|"f"|"c"|"g") + rest => start + "h" + rest ;
- start@("P"|"B"|"M"|"F"|"C"|"G") + rest => start + "h" + rest ;
- _ => str
- };
-
- --Performs lenition 2: same as lenition 1 with dentals but also changes "s" into "ts"
- oper lenition2 : Str -> Str = \str -> case str of {
- start@("p"|"b"|"m"|"f"|"c"|"g") + rest => start + "h" + rest ;
- start@("P"|"B"|"M"|"F"|"C"|"G") + rest => start + "h" + rest ;
- ("s"|"S") + ("p"|"t"|"c") + _ => str ; --the sequences "sp", "st", "sc" are never mutated
- start@("s"|"S") + rest => "t" + start + rest ;
- _ => str
- };
-
- --Performs eclisis 1: prefixes something to every word that begins with an ecliptable character
- oper eclipsis1 : Str -> Str = \str -> case str of {
- start@("p"|"P") + rest => "b" + start + rest ;
- start@("b"|"B") + rest => "m" + start + rest ;
- start@("f"|"F") + rest => "bh" + start + rest ;
- start@("c"|"C") + rest => "g" + start + rest ;
- start@("g"|"G") + rest => "n" + start + rest ;
- start@("t"|"T") + rest => "d" + start + rest ;
- start@("d"|"D") + rest => "n" + start + rest ;
- start@(#vowel) + rest => "n-" + start + rest ;
- start@(#vowelCap) + rest => "n" + start + rest ;
- _ => str
- };
-
- --Performs eclipsis 2: same as eclipsis 1 but leaves "t", "d" and vowels unchanges
- oper eclipsis2 : Str -> Str = \str -> case str of {
- start@("p"|"P") + rest => "b" + start + rest ;
- start@("b"|"B") + rest => "m" + start + rest ;
- start@("f"|"F") + rest => "bh" + start + rest ;
- start@("c"|"C") + rest => "g" + start + rest ;
- start@("g"|"G") + rest => "n" + start + rest ;
- _ => str
- };
-
- --Performs eclipsis 3: same as eclipsis 2 but also changes "s" to "ts"
- eclipsis3 : Str -> Str = \str -> case str of {
- start@("p"|"P") + rest => "b" + start + rest ;
- start@("b"|"B") + rest => "m" + start + rest ;
- start@("f"|"F") + rest => "bh" + start + rest ;
- start@("c"|"C") + rest => "g" + start + rest ;
- start@("g"|"G") + rest => "n" + start + rest ;
- ("s"|"S") + ("p"|"t"|"c") + _ => str ; --the sequences "sp", "st", "sc" are never mutated
- start@("s"|"S") + rest => "t" + start + rest ;
- _ => str
- };
-
- --Prefixes a "t" to words beginning with a vowel
- oper prefixT : Str -> Str = \str -> case str of {
- start@(#vowel) + rest => "t-" + start + rest ;
- start@(#vowelCap) + rest => "t" + start + rest ;
- _ => str
- };
-
- --Prefixes a "h" to words beginning with a vowel
- oper prefixH : Str -> Str = \str -> case str of {
- start@(#vowel) + rest => "h" + start + rest ;
- start@(#vowelCap) + rest => "h" + start + rest ;
- _ => str
- };
-
-}
\ No newline at end of file
diff --git a/examples/foods/README b/examples/foods/README
deleted file mode 100644
index 64bc4ed5b..000000000
--- a/examples/foods/README
+++ /dev/null
@@ -1,8 +0,0 @@
-Foods grammars from GF Summer School 2009. To build:
-
- $ gf -make -s Foods???.gf -- to create Foods.pgf
-
- $ mv Foods.pgf ~/GF/src/server/gwt/www/grammars/ -- to use in web applications
-
-
-
diff --git a/examples/foods/ResCze.gf b/examples/foods/ResCze.gf
deleted file mode 100644
index 56b4aa6ee..000000000
--- a/examples/foods/ResCze.gf
+++ /dev/null
@@ -1,46 +0,0 @@
--- (c) 2011 Katerina Bohmova under LGPL
-
-resource ResCze = open Prelude in {
- flags
- coding = utf8 ;
- param
- Number = Sg | Pl ;
- Gender = Masc | Fem | Neutr;
- oper
- NounPhrase : Type =
- {s : Str ; g : Gender ; n : Number} ;
- Noun : Type = {s : Number => Str ; g : Gender} ;
- Adjective : Type = {s : Gender => Number => Str} ;
-
- det : Number -> Str -> Str -> Str -> Noun -> NounPhrase =
- \n,m,f,ne,cn -> {
- s = table {Masc => m ; Fem => f; Neutr => ne} ! cn.g ++
- cn.s ! n ;
- g = cn.g ;
- n = n
- } ;
- noun : Str -> Str -> Gender -> Noun =
- \muz,muzi,g -> {
- s = table {Sg => muz ; Pl => muzi} ;
- g = g
- } ;
- adjective : (msg,fsg,nsg,mpl,fpl,npl : Str) -> Adjective =
- \msg,fsg,nsg,mpl,fpl,npl -> {
- s = table {
- Masc => table {Sg => msg ; Pl => mpl} ;
- Fem => table {Sg => fsg ; Pl => fpl} ;
- Neutr => table {Sg => nsg ; Pl => npl}
- }
- } ;
- regAdj : Str -> Adjective =
- \mlad ->
- adjective (mlad+"ý") (mlad+"á") (mlad+"é")
- (mlad+"é") (mlad+"é") (mlad+"á") ;
- regnfAdj : Str -> Adjective =
- \vynikajici ->
- adjective vynikajici vynikajici vynikajici
- vynikajici vynikajici vynikajici;
- copula : Number => Str =
- table {Sg => "je" ; Pl => "jsou"} ;
-}
-
diff --git a/examples/foods/transFoodsHin.gf b/examples/foods/transFoodsHin.gf
deleted file mode 100644
index 21d1d2ac1..000000000
--- a/examples/foods/transFoodsHin.gf
+++ /dev/null
@@ -1,75 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
-
-concrete FoodsHin of Foods = {
-
- flags coding=utf8 ;
-
- param
- Gender = Masc | Fem ;
- Number = Sg | Pl ;
- lincat
- Comment = {s : Str} ;
- Item = {s : Str ; g : Gender ; n : Number} ;
- Kind = {s : Number => Str ; g : Gender} ;
- Quality = {s : Gender => Number => Str} ;
- lin
- Pred item quality = {
- s = item.s ++ quality.s ! item.g ! item.n ++ copula item.n
- } ;
- This kind = {s = "yah" ++ kind.s ! Sg ; g = kind.g ; n = Sg} ;
- That kind = {s = "vah" ++ kind.s ! Sg ; g = kind.g ; n = Sg} ;
- These kind = {s = "ye" ++ kind.s ! Pl ; g = kind.g ; n = Pl} ;
- Those kind = {s = "ve" ++ kind.s ! Pl ; g = kind.g ; n = Pl} ;
- Mod quality kind = {
- s = \\n => quality.s ! kind.g ! n ++ kind.s ! n ;
- g = kind.g
- } ;
- Wine = regN "madirA" ;
- Cheese = regN "panIr" ;
- Fish = regN "maClI" ;
- Pizza = regN "pijjA" ;
- Very quality = {s = \\g,n => "bahut" ++ quality.s ! g ! n} ;
- Fresh = regAdj "tAzA" ;
- Warm = regAdj "garam" ;
- Italian = regAdj "i-t.alI" ;
- Expensive = regAdj "mahaNgA" ;
- Delicious = regAdj "rucikar" ;
- Boring = regAdj "pEriyA" ;
-
- oper
- mkN : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} =
- \s,p,g -> {
- s = table {
- Sg => s ;
- Pl => p
- } ;
- g = g
- } ;
-
- regN : Str -> {s : Number => Str ; g : Gender} = \s -> case s of {
- lark + "A" => mkN s (lark + "e") Masc ;
- lark + "I" => mkN s (lark + "iyaM") Fem ;
- _ => mkN s s Masc
- } ;
-
- mkAdj : Str -> Str -> Str -> {s : Gender => Number => Str} = \ms,mp,f -> {
- s = table {
- Masc => table {
- Sg => ms ;
- Pl => mp
- } ;
- Fem => \\_ => f
- }
- } ;
-
- regAdj : Str -> {s : Gender => Number => Str} = \a -> case a of {
- acch + "A" => mkAdj a (acch + "e") (acch + "I") ;
- _ => mkAdj a a a
- } ;
-
- copula : Number -> Str = \n -> case n of {
- Sg => "hE" ;
- Pl => "hEN"
- } ;
-
- }
diff --git a/examples/letter/Letter.gf b/examples/letter/Letter.gf
deleted file mode 100644
index 537750cb0..000000000
--- a/examples/letter/Letter.gf
+++ /dev/null
@@ -1,83 +0,0 @@
-abstract Letter = {
-
---1 An Abstract Syntax for Business and Love Letters
---
--- This file defines the abstract syntax of a grammar set whose concrete syntax
--- has so far been written to five languages: English, Finnish, French, Russian,
--- and Swedish.
---
--- The main category of the grammar is $Letter$. The other categories are
--- parts of the letter.
-
-flags startcat=Letter ;
-
-cat
- Letter ;
- Recipient ; Author ;
- Message ;
- Heading ; Ending ;
- Mode ; Sentence ; NounPhrase ; Position ;
-
--- There is just one top-level letter structure.
-
-fun
- MkLetter : Heading -> Message -> Ending -> Letter ;
-
--- The heading consists of a greeting of the recipient. The $JustHello$
--- function will actually suppress the name (and title) of the recipient,
--- but the $Recipient$ argument keeps track of the gender and number.
-
- DearRec : Recipient -> Heading ;
- PlainRec : Recipient -> Heading ;
- HelloRec : Recipient -> Heading ;
- JustHello : Recipient -> Heading ;
-
--- A message is a sentence with of without a *mode*, which is either
--- regret or honour.
-
- ModeSent : Mode -> Sentence -> Message ;
- PlainSent : Sentence -> Message ;
-
- Honour, Regret : Mode ;
-
--- The ending is either formal or informal. It does not currently depend on
--- the heading: making it so would eliminate formality mismatches between
--- the heading and the ending.
-
- FormalEnding : Author -> Ending ;
- InformalEnding : Author -> Ending ;
-
--- The recipient is either a colleague, colleagues, or darling.
--- It can also be a named person. The gender distinction is made
--- because there are things in the body of the letter that depend on it.
-
- ColleagueHe, ColleagueShe : Recipient ;
- ColleaguesHe, ColleaguesShe : Recipient ;
- DarlingHe, DarlingShe : Recipient ;
-
- NameHe, NameShe : String -> Recipient ;
-
--- For the author, there is likewise a fixed set of titles, plus the named author.
--- Gender distinctions could be useful even here, for the same reason as with
--- $Recipient$. Notice that the rendering of $Spouse$ will depend on the
--- gender of the recipient.
-
- President, Mother, Spouse, Dean : Author ;
- Name : String -> Author ;
-
--- As for the message body, no much choice is yet available: one can say that
--- the recipient is promoted to some position, that someone has gone bankrupt,
--- or that the author loves the recipient.
-
- BePromoted : Position -> Sentence ;
- GoBankrupt : NounPhrase -> Sentence ;
- ILoveYou : Sentence ;
-
- Competitor : NounPhrase ;
- Company : NounPhrase ;
- OurCustomers : NounPhrase ;
-
- Senior : Position ;
- ProjectManager : Position ;
-
-}
diff --git a/examples/letter/LetterEng.gf b/examples/letter/LetterEng.gf
deleted file mode 100644
index 6bc3fc884..000000000
--- a/examples/letter/LetterEng.gf
+++ /dev/null
@@ -1,158 +0,0 @@
-concrete LetterEng of Letter = {
-
---1 An English Concrete Syntax for Business and Love Letters
---
--- This file defines the English syntax of the grammar set
--- whose abstract syntax is $letter.Abs.gf$.
-
-flags lexer=textlit ; unlexer=textlit ;
-
-param Sex = masc | fem ;
-param Num = sg | pl ;
-param Kas = nom | acc ;
-param DepNum = depnum | cnum Num ;
-
-oper SS = {s : Str} ;
-oper SSDep = {s : Num => Sex => Str} ; -- needs Num and Sex
-oper SSSrc = {s : Str ; n : Num ; x : Sex} ; -- gives Num and Sex
-oper SSSrc2 = {s : Num => Sex => Str ; n : DepNum ; x : Sex} ; -- gives and needs
-oper SSDep2 = {s : DepNum => Sex => Num => Sex => Str} ; -- needs Auth's & Recp's
-oper SSSrcNum = {s : Str ; n : Num} ; -- gives Num only
-
-
-oper
- ss : Str -> SS = \s -> {s = s} ;
- constNX : Str -> Num -> Sex -> SSSrc2 = \str,num,sex ->
- {s = table {_ => table {_ => str}} ; n = cnum num ; x = sex} ;
-
- dep2num : DepNum -> Num -> Num = \dn,n -> case dn of {
- depnum => n ;
- cnum cn => cn
- } ;
-
- RET = "" ; -- &-
-
-lincat
-Letter = SS ;
-Recipient = SSSrc ;
-Author = SSSrc2 ;
-Message = SSDep2 ;
-Heading = SSSrc ;
-Ending = SSSrc2 ;
-Mode = SSDep2 ;
-Sentence = SSDep2 ;
-NounPhrase = SSSrcNum ;
-Position = SSDep ;
-
-lin
-MkLetter head mess end =
- ss (head.s ++ "," ++ RET ++
- mess.s ! end.n ! end.x ! head.n ! head.x ++ "." ++ RET ++
- end.s ! head.n ! head.x) ;
-
-DearRec rec = {s = "Dear" ++ rec.s ; n = rec.n ; x = rec.x} ;
-PlainRec rec = rec ;
-HelloRec rec = {s = "Hello" ++ rec.s ; n = rec.n ; x = rec.x} ;
-JustHello rec = {s = "Hello" ; n = rec.n ; x = rec.x} ;
-
-ModeSent mode sent =
- {s =
- table {dna => table {xa => table {nr => table {xr =>
- mode.s ! dna ! xa ! nr ! xr ++ sent.s ! dna ! xa ! nr ! xr}}}}
- } ;
-PlainSent sent = sent ;
-
-FormalEnding auth =
- {s = table {n => table {x =>
- ["Sincerely yours"] ++ RET ++ auth.s ! n ! x}} ; n = auth.n ; x = auth.x} ;
-InformalEnding auth =
- {s = table {n => table {x =>
- ["With best regards"] ++ RET ++ auth.s ! n ! x}} ; n = auth.n ; x = auth.x} ;
-
-ColleaguesHe = {s = kollega ! pl ; n = pl ; x = masc} ;
-ColleaguesShe = {s = kollega ! pl ; n = pl ; x = fem} ;
-ColleagueHe = {s = kollega ! sg ; n = sg ; x = masc} ;
-ColleagueShe = {s = kollega ! sg ; n = sg ; x = fem} ;
-DarlingHe = {s = "darling" ; n = sg ; x = masc} ;
-DarlingShe = {s = "darling" ; n = sg ; x = fem} ;
-NameHe s = {s = s.s ; n = sg ; x = masc} ;
-NameShe s = {s = s.s ; n = sg ; x = fem} ;
-
-
-Honour = {s =
- table {dna => table {xa => table {nr => table {xr =>
- let {na = dep2num dna nr} in
- ego ! na ! nom ++ ["have the honour to inform you that"]}}}}
- } ;
-
-Regret = {s =
- table {dna => table {xa => table {nr => table {xr =>
- let {na = dep2num dna nr} in
- ego ! na ! nom ++ am ! na ++ ["sorry to inform you that"]}}}}
- } ;
-
-
-President = constNX ["the President"] sg masc ;
-Mother = constNX "Mom" sg fem ;
-Spouse = {s = table {
- sg => table {fem => ["your husband"] ; masc => ["your wife"]} ;
- pl => table {fem => ["your husbands"] ; masc => ["your wives"]}
- } ; n = depnum ; x = masc} ; -- sex does not matter here
-Dean = constNX ["the Dean"] sg masc ;
-Name s = constNX s.s sg masc ; ---
-
-BePromoted pos = {s =
- table {na => table {xa => table {nr => table {xr =>
- ["you have been promoted to"] ++
- pos.s ! nr ! xr}}}}
- } ;
-GoBankrupt np = {s =
- table {na => table {xa => table {nr => table {xr =>
- np.s ++ have ! np.n ++ ["gone bankrupt"]}}}}
- } ;
-ILoveYou = {s =
- table {na => table {xa => table {nr => table {xr =>
- ego ! dep2num na nr ! nom ++ ["love you"]}}}}
- } ;
-
-Company = {s = ["our company"] ; n = sg} ;
-Competitor = {s = ["our worst competitor"] ; n = sg} ;
-OurCustomers = {s = ["our customers"] ; n = pl} ;
-
-Senior = {s =
- table {
- sg => table {x => ["a senior fellow"]} ;
- pl => table {x => ["senior fellows"]}
- }} ;
-ProjectManager = {s =
- table {
- sg => table {_ => ["a project manager"]} ;
- pl => table {_ => ["project managers"]}
- }} ;
-
-oper
-
-kollega :
- Num => Str =
- table {sg => "colleague" ; pl => "colleagues"} ;
-
-am :
- Num => Str =
- table {sg => "am" ; pl => "are"} ;
-
-have :
- Num => Str =
- table {sg => "has" ; pl => "have"} ;
-
-ego :
- Num => Kas => Str =
- table {
- sg => table {nom => "I" ; acc => "me"} ;
- pl => table {nom => "we" ; acc => "us"}
- } ;
-
- -- added by John 2013-01-11 for testing syntax editor
- printname cat Recipient = "Someone who receives a letter";
- printname fun HelloRec = "Saying hello to a recipient";
-
-}
diff --git a/examples/letter/LetterFin.gf b/examples/letter/LetterFin.gf
deleted file mode 100644
index 6892bfcd4..000000000
--- a/examples/letter/LetterFin.gf
+++ /dev/null
@@ -1,181 +0,0 @@
-concrete LetterFin of Letter = {
-
---1 A Finnish Concrete Syntax for Business and Love Letters
---
--- This file defines the Finnish syntax of the grammar set
--- whose abstract syntax is $letter.Abs.gf$.
-
-flags lexer=textlit ; unlexer=textlit ; coding=utf8;
-
--- modified from French in 20 min, 15/6/2002
-
-param Gen = masc | fem ;
-param Num = sg | pl ;
-param Kas = nom | acc ;
-param DepNum = depnum | cnum Num ;
-param DepGen = depgen | cgen Gen ;
-
-oper SS = {s : Str} ;
-oper SSDep = {s : Num => Gen => Str} ; -- needs Num and Gen
-oper SSSrc = {s : Str ; n : Num ; g : Gen} ; -- gives Num and Gen
-oper SSSrc2 = {s : Num => Gen => Str ; n : DepNum ; g : DepGen} ; -- gives&needs
-oper SSDep2 = {s : DepNum => DepGen => Num => Gen => Str} ; -- needs Auth's&Rec's
-oper SSSrcGen = {s : Str ; n : Num ; g : Gen} ; -- gives Num and Gen
-
-oper
- ss : Str -> SS = \s -> {s = s} ;
-
- noDep : (P : Type) -> Str -> P => Str = \_,s -> table {_ => s} ;
-
- cher : Num => Gen => Tok =
- table {sg => noDep Gen "rakas" ; pl => noDep Gen "rakkaat"} ;
-
- egosum : Num => Str =
- table {sg => "olen" ; pl => "olemme"} ;
- egohabeo : Num => Str =
- table {sg => "minulla" ++ "on" ; pl => "meillä" ++ "on"} ;
- fuisti : Num => Str =
- table {sg => "sinut" ++ "on"; pl => "teidät" ++ "on"} ;
- quePrep = "että" ; ----
- tuinformare : Num => Str =
- table {sg => "ilmoittaa" ++ "sinulle" ; pl => "ilmoittaa" ++ "teille"} ;
-
- regNom : Str -> Num => Str = \pora -> table {sg => pora ; pl => pora + "t"} ;
-
- avoir : Num => Str =
- table {sg => "on"; pl => "ovat"} ;
-
- mes : Num => Str = table {sg => "minun" ; pl => "meidän"} ;
-
- teamo : Num => Num => Str = table {
- sg => table {sg => "rakastan" ++ "sinua" ;
- pl => "rakastan" ++ "teitä"} ;
- pl => table {sg => "rakastamme" ++ "sinua" ;
- pl => "rakastamme" ++ "teitä"}
- } ;
-
- constNG : Str -> Num -> Gen -> SSSrc2 = \str,num,gen ->
- {s = table {_ => table {_ => str}} ; n = cnum num ; g = cgen gen} ;
-
- dep2num : DepNum -> Num -> Num = \dn,n -> case dn of {
- depnum => n ;
- cnum cn => cn
- } ;
- dep2gen : DepGen -> Gen -> Gen = \dg,g -> case dg of {
- depgen => case g of {
- masc => fem ;
- fem => masc
- }; -- negative dependence: the author is of opposite sex
- cgen cg => cg
- } ;
-
- RET = "" ; -- &-
-
-lincat
-Letter = SS ;
-Recipient = SSSrc ;
-Author = SSSrc2 ;
-Message = SSDep2 ;
-Heading = SSSrc ;
-Ending = SSSrc2 ;
-Mode = SSDep2 ;
-Sentence = SSDep2 ;
-NounPhrase = SSSrcGen ;
-Position = SSDep ;
-
-lin
-MkLetter head mess end =
- ss (head.s ++ "," ++ RET ++
- mess.s ! end.n ! end.g ! head.n ! head.g ++ "." ++ RET ++
- end.s ! head.n ! head.g) ;
-
-DearRec rec = {s = cher ! rec.n ! rec.g ++ rec.s ; n = rec.n ; g = rec.g} ;
-PlainRec rec = rec ;
-HelloRec rec = {s = "Terve" ++ rec.s ; n = rec.n ; g = rec.g} ;
-JustHello rec = {s = "Terve" ; n = rec.n ; g = rec.g} ;
-
-ModeSent mode sent =
- {s =
- table {na => table {xa => table {nr => table {xr =>
- mode.s ! na ! xa ! nr ! xr ++ sent.s ! na ! xa ! nr ! xr}}}}
- } ;
-PlainSent sent = sent ;
-
-FormalEnding auth =
- {s = table {n => table {g => ["parhain terveisin"] ++ RET ++ auth.s ! n ! g}} ;
- n = auth.n ; g = auth.g} ;
-InformalEnding auth =
- {s = table {n => table {g => ["terveisin"] ++ RET ++ auth.s ! n ! g}} ;
- n = auth.n ; g = auth.g} ;
-
-ColleaguesHe = {s = regNom "kollega" ! pl ; n = pl ; g = masc} ;
-ColleaguesShe = {s = regNom "kollega" ! pl ; n = pl ; g = fem} ;
-ColleagueHe = {s = regNom "kollega" ! sg ; n = sg ; g = masc} ;
-ColleagueShe = {s = regNom "kollega" ! sg ; n = sg ; g = fem} ;
-DarlingHe = {s = "kulta" ; n = sg ; g = masc} ;
-DarlingShe = {s = "kulta" ; n = sg ; g = fem} ;
-NameHe s = {s = s.s ; n = sg ; g = masc} ;
-NameShe s = {s = s.s ; n = sg ; g = fem} ;
-
-
-Honour = {s =
- table {na => table {xa => table {nr => table {xr =>
- egohabeo ! dep2num na nr ++
- ["kunnia"] ++ tuinformare ! nr ++ quePrep}}}}
- } ;
-
-Regret = {s =
- table {na => table {ga => table {nr => table {gr =>
- mes ! dep2num na nr ++
- ["on valitettavasti ilmoitettava"] ++ quePrep}}}}
- } ;
-
-
-President = constNG ["presidentti"] sg masc ;
-Mother = constNG ["äiti"] sg fem ;
-Spouse = {s = table {
- sg => table {fem => ["miehesi"] ; masc => ["vaimosi"]} ;
- pl => table {fem => ["miehenne"] ; masc => ["vaimonne"]}
- } ; n = depnum ; g = depgen} ;
-Dean = constNG ["dekaani"] sg masc ;
-Name s = constNG s.s sg masc ; ---
-
-BePromoted pos = {s =
- table {na => table {xa => table {nr => table {xr =>
- fuisti ! nr ++ "ylennetty" ++
- pos.s ! nr ! xr}}}}
- } ;
-GoBankrupt np = {s =
- table {na =>
- table {xa =>
- table {nr =>
- table {xr =>
- np.s ++ avoir ! np.n ++
- (case np.n of {sg => "mennyt" ; pl => "menneet"}) ++
- "konkurssiin"
- }
- }
- }
- }
- } ;
-
-ILoveYou = {s =
- table {na => table {xa => table {nr => table {xr =>
- teamo ! dep2num na nr ! nr}}}}} ;
-
-Company = {s = ["yrityksemme"] ; n = sg ; g = fem} ;
-Competitor = {s = ["pahin kilpailijamme"] ; n = sg ; g = masc} ;
-OurCustomers = {s = ["asiakkaamme"] ; n = pl ; g = masc} ;
-
-Senior = {s = table {sg => table {g => ["vanhemmaksi tutkijaksi"]} ;
- pl => table {g => ["vanhemmiksi tutkijoiksi"]}
- }
- } ;
-
-ProjectManager = {s =
- table {
- sg => table {_ => ["projektipäälliköksi"]} ;
- pl => table {_ => ["projektipäälliköiksi"]}
- }} ;
-
-}
diff --git a/examples/letter/LetterFre.gf b/examples/letter/LetterFre.gf
deleted file mode 100644
index 4eb40e6d0..000000000
--- a/examples/letter/LetterFre.gf
+++ /dev/null
@@ -1,171 +0,0 @@
-concrete LetterFre of Letter = {
-
---1 An French Concrete Syntax for Business and Love Letters
---
--- This file defines the French syntax of the grammar set
--- whose abstract syntax is $letter.Abs.gf$.
-
-
-flags lexer=textlit ; unlexer=textlit ; coding=utf8;
-
-param Gen = masc | fem ;
-param Num = sg | pl ;
-param Kas = nom | acc ;
-param DepNum = depnum | cnum Num ;
-param DepGen = depgen | cgen Gen ;
-
-oper SS = {s : Str} ;
-oper SSDep = {s : Num => Gen => Str} ; -- needs Num and Gen
-oper SSSrc = {s : Str ; n : Num ; g : Gen} ; -- gives Num and Gen
-oper SSSrc2 = {s : Num => Gen => Str ; n : DepNum ; g : DepGen} ; -- gives&needs
-oper SSDep2 = {s : DepNum => DepGen => Num => Gen => Str} ; -- needs Auth's&Rec's
-oper SSSrcGen = {s : Str ; n : Num ; g : Gen} ; -- gives Num and Gen
-
-oper
- ss : Str -> SS = \s -> {s = s} ;
- cher : Num => Gen => Tok =
- table {n => table {masc => regNom "cher" ! n ; fem => regNom "chère" ! n}};
- regAdj : Str -> Gen => Num => Str = \s ->
- table {masc => regNom s ; fem => regNom (s + "e")} ;
- regNom : Str -> Num => Str = \s -> table {sg => s ; pl => s + "s"} ;
- egosum : Num => Str =
- table {sg => "je" ++ "suis" ; pl => "nous" ++ "sommes"} ;
- egohabeo : Num => Str =
- table {sg => "j'ai" ; pl => "nous" ++ "avons"} ;
- fuisti : Num => Str =
- table {sg => "tu" ++ "as" ++ "été"; pl => "vous" ++ "avez" ++ "été"} ;
- quePrep = "que" ; ----
- tuinformare : Num => Str =
- table {sg => "t'informer"; pl => "vous" ++ "informer"} ;
-
- avoir : Num => Str =
- table {sg => "a"; pl => "ont"} ;
-
- mes : Num => Str = table {sg => "mes" ; pl => "nos"} ;
-
- teamo : Num => Num => Str = table {
- sg => table {sg => "je" ++ "t'aime" ;
- pl => "je" ++ "vous" ++ "aime"} ;
- pl => table {sg => "nous" ++ "t'aimons" ;
- pl => "nous" ++ "vous" ++ "aimons"}
- } ;
-
- constNG : Str -> Num -> Gen -> SSSrc2 = \str,num,gen ->
- {s = table {_ => table {_ => str}} ; n = cnum num ; g = cgen gen} ;
-
- dep2num : DepNum -> Num -> Num = \dn,n -> case dn of {
- depnum => n ;
- cnum sg => sg ;
- cnum pl => pl
- } ;
- dep2gen : DepGen -> Gen -> Gen = \dg,g -> case dg of {
- depgen => case g of {
- masc => fem ;
- fem => masc
- }; -- negative dependence: the author is of opposite sex
- cgen cg => cg
- } ;
-
- RET = "" ; -- &-
-
-lincat
-Letter = SS ;
-Recipient = SSSrc ;
-Author = SSSrc2 ;
-Message = SSDep2 ;
-Heading = SSSrc ;
-Ending = SSSrc2 ;
-Mode = SSDep2 ;
-Sentence = SSDep2 ;
-NounPhrase = SSSrcGen ;
-Position = SSDep ;
-
-lin
-MkLetter head mess end =
- ss (head.s ++ "," ++ RET ++
- mess.s ! end.n ! end.g ! head.n ! head.g ++ "." ++ RET ++
- end.s ! head.n ! head.g) ;
-
-DearRec rec = {s = cher ! rec.n ! rec.g ++ rec.s ; n = rec.n ; g = rec.g} ;
-PlainRec rec = rec ;
-HelloRec rec = {s = "Bonjour" ++ rec.s ; n = rec.n ; g = rec.g} ;
-JustHello rec = {s = "Bonjour" ; n = rec.n ; g = rec.g} ;
-
-ModeSent mode sent =
- {s =
- table {na => table {xa => table {nr => table {xr =>
- mode.s ! na ! xa ! nr ! xr ++ sent.s ! na ! xa ! nr ! xr}}}}
- } ;
-PlainSent sent = sent ;
-
-FormalEnding auth =
- {s =
- table {n => table {g =>
- "avec" ++ mes ! dep2num auth.n n ++
- ["salutations distinguées"] ++ RET ++ auth.s ! n ! g}} ;
- n = auth.n ; g = auth.g} ;
-InformalEnding auth =
- {s = table {n => table {g => ["Amicalement"] ++ RET ++ auth.s ! n ! g}} ;
- n = auth.n ; g = auth.g} ;
-
-ColleaguesHe = {s = regNom "collègue" ! pl ; n = pl ; g = masc} ;
-ColleaguesShe = {s = regNom "collègue" ! pl ; n = pl ; g = fem} ;
-ColleagueHe = {s = regNom "collègue" ! sg ; n = sg ; g = masc} ;
-ColleagueShe = {s = regNom "collègue" ! sg ; n = sg ; g = fem} ;
-DarlingHe = {s = "chéri" ; n = sg ; g = masc} ;
-DarlingShe = {s = "chérie" ; n = sg ; g = fem} ;
-NameHe s = {s = s.s ; n = sg ; g = masc} ;
-NameShe s = {s = s.s ; n = sg ; g = fem} ;
-
-Honour = {s =
- table {na => table {xa => table {nr => table {xr =>
- egohabeo ! dep2num na nr ++
- ["l'honneur de"] ++ tuinformare ! nr ++ quePrep}}}}
- } ;
-
-Regret = {s =
- table {na => table {ga => table {nr => table {gr =>
- let {dga = dep2gen ga gr ; dna = dep2num na nr} in
- egosum ! dna ++ regAdj "désolé" ! dga ! dna ++
- ["d'informer"] ++ quePrep}}}}
- } ;
-
-
-President = constNG ["le président"] sg masc ;
-Mother = constNG ["maman"] sg fem ;
-Spouse = {s = table {
- sg => table {fem => ["ton mari"] ; masc => ["ta femme"]} ;
- pl => table {fem => ["vos maris"] ; masc => ["vos femmes"]}
- } ; n = depnum ; g = depgen} ;
-Dean = constNG ["le doyen"] sg masc ;
-Name s = constNG s.s sg masc ; ---
-
-BePromoted pos = {s =
- table {na => table {xa => table {nr => table {xr =>
- fuisti ! nr ++ regAdj "promu" ! xr ! nr ++
- pos.s ! nr ! xr}}}}
- } ;
-GoBankrupt np = {s =
- table {na => table {xa => table {nr => table {xr =>
- np.s ++ avoir ! np.n ++ ["fait banqueroute"]}}}}
- } ;
-ILoveYou = {s =
- table {na => table {xa => table {nr => table {xr =>
- teamo ! dep2num na nr ! nr}}}}
- } ;
-
-Company = {s = ["notre entreprise"] ; n = sg ; g = fem} ;
-Competitor = {s = ["notre pire compétiteur"] ; n = sg ; g = masc} ;
-OurCustomers = {s = ["nos clients"] ; n = pl ; g = masc} ;
-
-Senior = {s = table {sg => table {g => ["responsable scientifique"]} ;
- pl => table {g => ["responsables scientifiques"]}
- }
- } ;
-
-ProjectManager = {s =
- table {
- sg => table {_ => ["chef de projet"]} ;
- pl => table {_ => ["chefs de projets"]}
- }} ;
-}
diff --git a/examples/letter/LetterHeb.gf b/examples/letter/LetterHeb.gf
deleted file mode 100644
index c50d6102c..000000000
--- a/examples/letter/LetterHeb.gf
+++ /dev/null
@@ -1,216 +0,0 @@
-concrete LetterHeb of Letter = {
-
--- (c) Alex Kutsela 2005
-
-flags lexer=textlit ; unlexer=textlit ; coding=utf8 ;
-
-param Gen = masc | fem ;
-param Num = sg | pl ;
-param Kas = nom | dat | acc ;
-param DepNum = depnum | cnum Num ;
-param DepGen = depgen | cgen Gen ;
-
-oper SS = {s : Str} ;
-oper SSDep = {s : Num => Gen => Str} ; -- needs Num and Gen
-oper SSSrc = {s : Str ; n : Num ; g : Gen} ; -- gives Num and Gen
-oper SSSrc2 = {s : Num => Gen => Str ; n : DepNum ; g : DepGen} ; -- gives&needs
-oper SSDep2 = {s : DepNum => DepGen => Num => Gen => Str} ; -- needs Auth's&Rec's
-oper SSSrcGen = {s : Str ; n : Num ; g : Gen} ; -- gives Num and Gen
-
-oper
- ss : Str -> SS = \s -> {s = s} ;
- regAdj : Str -> Num => Gen => Tok =\s -> table {
- sg => table {masc => s; fem => s+"ה"};
- pl => table {masc => s+"ים"; fem => s+"ות"}
- };
-
-hello : Str -> Num => Str = \s -> table {sg => s ; pl => s} ;
-
-regVerPerf : Str -> Num => Gen => Str = \s ->
- table {sg => table {masc => s; fem => s+"ה"};
- pl => table {masc => s+"ו"; fem => s+"ו"}
- };
-
-ego : Num => Str = table {sg => "אןי" ; pl => "אןחןו" } ;
-
-tu : Num => Gen => Kas => Str =
- table {sg => table {fem => table {nom => "את"; dat => "לך"; acc => "אותך"} ;
- masc => table {nom => "אתה"; dat => "לך"; acc => "אותך"}
- } ;
- pl => table {fem => table {nom => "אתן"; dat => "לכן"; acc => "אתכן"} ;
- masc => table {nom => "אתם"; dat => "לכם"; acc => "אתכם"}
- }
- };
-
-hereIam : Num => Str =
- table {sg => "הןןי" ; pl => "הןןו" } ;
-
-haveBeen : Str -> Num => Gen => Str = \s ->
- table {sg => table {masc => s+"ת"; fem => s+"ת"};
- pl => table {masc => s+"תם"; fem => s+"תן"}
- };
-
-thatConj = ["ש"] ;
-
-regVer : Str -> Num => Gen => Str = \s ->
- table {sg => table {masc => s; fem => s+"ת"};
- pl => table {masc => s+"ים"; fem => s+"ות"}
- };
-
-constNG : Str -> Num -> Gen -> SSSrc2 = \str,num,gen ->
- {s = table {_ => table {_ => str}} ; n = cnum num ; g = cgen gen} ;
-
-dep2num : DepNum -> Num -> Num = \dn,n -> case dn of {
- depnum => n ;
- cnum cn => cn
- } ;
-dep2gen : DepGen -> Gen -> Gen = \dg,g -> case dg of {
- depgen => case g of {
- masc => fem ;
- fem => masc
- }; -- negative dependence: the author is of opposite sex
- cgen cg => cg
- } ;
-
- RET = "" ; -- &-
-
-
-lincat
-Letter = SS ;
-Recipient = SSSrc ;
-Author = SSSrc2 ;
-Message = SSDep2 ;
-Heading = SSSrc ;
-Ending = SSSrc2 ;
-Mode = SSDep2 ;
-Sentence = SSDep2 ;
-NounPhrase = SSSrcGen ;
-Position = SSDep ;
-
-lin
-MkLetter head mess end =
- ss ("," ++ head.s ++ RET ++
- mess.s ! end.n ! end.g ! head.n ! head.g ++ RET ++
- end.s ! head.n ! head.g) ;
-
-DearRec rec = {s = rec.s ++ regAdj "יקר" ! rec.n ! rec.g;
- n = rec.n;
- g = rec.g};
-PlainRec rec = rec ;
-HelloRec rec = {s = hello "שלום" ! rec.n ++ rec.s ; n = rec.n ; g = rec.g} ;
-JustHello rec = {s = hello "שלום" ! rec.n ; n = rec.n ; g = rec.g} ;
-
-ModeSent mode sent =
- {s =
- table {na => table {xa => table {nr => table {xr =>
- mode.s ! na ! xa ! nr ! xr ++ sent.s ! na ! xa ! nr ! xr}}}}
- } ;
-PlainSent sent = sent ;
-
-FormalEnding auth =
- {s =
- table {n => table {g =>
- [", בכבוד רב"] ++ RET ++
- auth.s ! n ! g
- }} ;
- n = auth.n ; g = auth.g} ;
-
-InformalEnding auth =
- {s = table {n => table {g => [", בברכה"] ++ RET ++ auth.s ! n ! g}} ;
- n = auth.n ; g = auth.g} ;
-
-ColleagueHe = {s = "עמית" ; n = sg ; g = masc} ;
-ColleagueShe = {s = "עמיתה" ; n = sg ; g = fem} ;
-ColleaguesHe = {s = "עמיתים" ; n = pl ; g = masc} ;
-ColleaguesShe = {s = "עמיתות" ; n = pl ; g = fem} ;
-DarlingHe = {s = "אהובי" ; n = sg ; g = masc} ;
-DarlingShe = {s = "אהובתי" ; n = sg ; g = fem} ;
-
-NameHe s = {s = s.s ; n = sg ; g = masc} ;
-NameShe s = {s = s.s ; n = sg ; g = fem} ;
-
-Honour = {s = table {
- na => table {
- xa => table {
- nr => table {
- xr => hereIam ! dep2num na nr ++
- regVer "מתכבד" ! dep2num na nr ! dep2gen xa xr ++
- ["להודיע"] ++ tu ! nr ! xr ! dat ++ thatConj
- }
- }
- }
- }
- } ;
-
-Regret = {s = table {
- na => table {
- ga => table {
- nr => table {
- gr => let {dga = dep2gen ga gr ; dna = dep2num na nr} in
- ego ! dna ++ regVer "מצטער" ! dna ! dga ++
- ["להודיע"] ++ tu ! nr ! gr ! dat ++ thatConj
- }
- }
- }
- }
- } ;
-
-Dean = constNG ["דיקן"] sg masc ;
-President = constNG ["ןשיא"] sg masc ;
-Mother = constNG ["אמא"] sg fem ;
-Name s = constNG s.s sg masc ; ---
-Spouse = {s = table {
- sg => table {fem => ["בעלך"] ; masc => ["אישתך"]} ;
- pl => table {fem => ["בעליכן"] ; masc => ["ןשותיכם"]}
- } ; n = depnum ; g = depgen} ;
-
-BePromoted pos = {s = table {
- na => table {
- xa => table {
- nr => table {
- xr => haveBeen "קודמ" ! nr !xr ++ "לתפקיד" ++ "של" ++ pos.s ! nr ! xr
- }
- }
- }
- }
- } ;
-
-GoBankrupt np =
- {s = table
- {na => table
- {xa => table
- {nr => table
- {xr => np.s ++ regVerPerf "פשט" ! np.n ! np.g ++ "רגל"}
- }
- }
- }
- } ;
-
-ILoveYou = {s = table
- {na => table
- {ga => table
- {nr => table
- {gr => let {dga = dep2gen ga gr ; dna = dep2num na nr} in
- ego ! dna ++ regVer "אוהב" ! dna ! dga ++
- tu ! nr ! gr ! acc}
- }
- }
- }
- } ;
-
-Company = {s = ["חברתןו"] ; n = sg ; g = fem} ;
-Competitor = {s = ["המתחרה הגרוע ביותר שלןו"] ; n = sg ; g = masc} ;
-OurCustomers = {s = ["לקוחותיןו"] ; n = pl ; g = masc} ;
-
-Senior = {s = table
- {sg => table {g => ["חבר בכיר"]} ;
- pl => table {g => ["חברים בכירים"]}
- }
- } ;
-
-ProjectManager = {s = table {
- sg => table {fem => ["מןהלת פרוייקט"]; masc => ["מןהל פרוייקט"]} ;
- pl => table {fem => ["מןהלות פרוייקט"]; mask =>["מןהלי פרוייקט"]}
- }
- } ;
-}
diff --git a/examples/letter/LetterRus.gf b/examples/letter/LetterRus.gf
deleted file mode 100644
index cad177946..000000000
--- a/examples/letter/LetterRus.gf
+++ /dev/null
@@ -1,178 +0,0 @@
-concrete LetterRus of Letter = {
-
-flags lexer=textlit ; unlexer=textlit ; coding=utf8 ;
-
-param Gen = masc | fem ;
-param Num = sg | pl ;
-param Kas = nom | acc ;
-param DepNum = depnum | cnum Num ;
-param DepGen = depgen | cgen Gen ;
-
-oper SS = {s : Str} ;
-oper SSDep = {s : Num => Gen => Str} ; -- needs Num and Gen
-oper SSSrc = {s : Str ; n : Num ; g : Gen} ; -- gives Num and Gen
-oper SSSrc2 = {s : Num => Gen => Str ; n : DepNum ; g : DepGen} ; -- gives&needs
-oper SSDep2 = {s : DepNum => DepGen => Num => Gen => Str} ; -- needs Auth's&Rec's
-oper SSSrcGen = {s : Str ; n : Num ; g : Gen} ; -- gives Num and Gen
-
-oper
- ss : Str -> SS = \s -> {s = s} ;
- regAdj : Str -> Num => Gen => Tok =\s -> table {
- sg => table {masc => s+"ой"; fem => s+"ая"};
- pl => table {masc => s+"ие"; fem => s+"ие"}
- };
- regVer : Str -> Num => Gen => Str = \s -> table {
- sg => table {masc => s; fem => s+"а"};
- pl => table {masc => s+"ы"; fem => s+"ы"}
- };
-
- hello : Str -> Num => Str = \s ->
- table {sg => s ; pl => s+"те" } ;
-
- regVerPerf : Str -> Num => Gen => Str = \s -> table {
- sg => table {masc => s+"ся"; fem => s+"ось"};
- pl => table {masc => s+"ись"; fem => s+"ись"}
- };
-
- ego : Num => Str =
- table {sg => "я" ; pl => "вы" } ;
- egoHave : Num => Str =
- table {sg => ["я имею"] ; pl => ["мы имеем"]} ;
-
- haveBeen : Num => Gen => Str = table {
- sg => table {masc => ["ты был"] ; fem => ["ты была"] };
- pl => table {masc => ["вы были"]; fem => ["вы были"]}
- };
-
- thatPrep = [", что"] ;
- informYou : Num => Str =
- table {sg => ["сообщить тебе"]; pl => ["сообщить вам"]} ;
-
- loveYou : Num => Num => Str = table {
- sg => table {sg => ["я тебя люблю"] ;
- pl => ["я вас люблю"]} ;
- pl => table {sg => ["мы тебя любим"] ;
- pl => ["мы вас любим"]}
- } ;
-
- constNG : Str -> Num -> Gen -> SSSrc2 = \str,num,gen ->
- {s = table {_ => table {_ => str}} ; n = cnum num ; g = cgen gen} ;
-
- dep2num : DepNum -> Num -> Num = \dn,n -> case dn of {
- depnum => n ;
- cnum cn => cn
- } ;
- dep2gen : DepGen -> Gen -> Gen = \dg,g -> case dg of {
- depgen => case g of {
- masc => fem ;
- fem => masc
- }; -- negative dependence: the author is of opposite sex
- cgen cg => cg
- } ;
-
- RET = "" ; -- &-
-
-lincat
-Letter = SS ;
-Recipient = SSSrc ;
-Author = SSSrc2 ;
-Message = SSDep2 ;
-Heading = SSSrc ;
-Ending = SSSrc2 ;
-Mode = SSDep2 ;
-Sentence = SSDep2 ;
-NounPhrase = SSSrcGen ;
-Position = SSDep ;
-
-lin
-MkLetter head mess end =
- ss (head.s ++ "," ++ RET ++
- mess.s ! end.n ! end.g ! head.n ! head.g ++ "." ++ RET ++
- end.s ! head.n ! head.g) ;
-
-DearRec rec = {s = regAdj "Дорог"
- ! rec.n ! rec.g ++ rec.s ; n = rec.n ; g = rec.g} ;
-PlainRec rec = rec ;
-HelloRec rec = {s = hello "Здравствуй" ! rec.n ++ rec.s ; n = rec.n ; g = rec.g} ;
-JustHello rec = {s = hello "Здравствуй" ! rec.n ; n = rec.n ; g = rec.g} ;
-
-ModeSent mode sent =
- {s =
- table {na => table {xa => table {nr => table {xr =>
- mode.s ! na ! xa ! nr ! xr ++ sent.s ! na ! xa ! nr ! xr}}}}
- } ;
-PlainSent sent = sent ;
-
-FormalEnding auth =
- {s =
- table {n => table {g =>
- "С" ++
- ["наилучшими пожеланиями ,"] ++ RET ++ auth.s ! n ! g}} ;
- n = auth.n ; g = auth.g} ;
-InformalEnding auth =
- {s = table {n => table {g => ["С дружеским приветом , "] ++ RET ++ auth.s ! n ! g}} ;
- n = auth.n ; g = auth.g} ;
-
-ColleaguesHe = {s = "коллеги" ; n = pl ; g = masc} ;
-ColleaguesShe = {s = "коллеги" ; n = pl ; g = fem} ;
-ColleagueHe = {s = "коллега" ; n = sg ; g = masc} ;
-ColleagueShe = {s = "коллега" ; n = sg ; g = fem} ;
-DarlingHe = {s = "любимый" ; n = sg ; g = masc} ;
-DarlingShe = {s = "любимая" ; n = sg ; g = fem} ;
-NameHe s = {s = s.s ; n = sg ; g = masc} ;
-NameShe s = {s = s.s ; n = sg ; g = fem} ;
-
-
-Honour = {s =
- table {na => table {xa => table {nr => table {xr =>
- egoHave ! dep2num na nr ++
- ["честь"] ++ informYou ! nr ++ thatPrep}}}}
- } ;
-
-Regret = {s =
- table {na => table {ga => table {nr => table {gr =>
- let {dga = dep2gen ga gr ; dna = dep2num na nr} in
- ego ! dna ++ regVer "вынужден" ! dna ! dga ++
- ["сообщить"] ++ thatPrep}}}}
- } ;
-
-
-President = constNG ["президент"] sg masc ;
-Mother = constNG ["мама"] sg fem ;
-Spouse = {s = table {
- sg => table {fem => ["твой муж"] ; masc => ["твоя жена"]} ;
- pl => table {fem => ["ваши мужья"] ; masc => ["ваши жены"]}
- } ; n = depnum ; g = depgen} ;
-Dean = constNG ["декан"] sg masc ;
-Name s = constNG s.s sg masc ; ---
-
-BePromoted pos = {s =
- table {na => table {xa => table {nr => table {xr =>
- haveBeen ! nr ! xr ++ regVer "назначен" ! nr ! xr ++
- pos.s ! nr ! xr}}}}
- } ;
-GoBankrupt np = {s =
- table {na => table {xa => table {nr => table {xr =>
- np.s ++ regVerPerf "обанкротил" ! np.n ! np.g }}}}
- } ;
-ILoveYou = {s =
- table {na => table {xa => table {nr => table {xr =>
- loveYou ! dep2num na nr ! nr}}}}
- } ;
-
-Company = {s = ["наше предприятие"] ; n = sg ; g = fem} ;
-Competitor = {s = ["наш конкурент"] ; n = sg ; g = masc} ;
-OurCustomers = {s = ["наши клиенты"] ; n = pl ; g = masc} ;
-
-Senior = {s = table {sg => table {g => ["старшим научным сотрудником"]} ;
- pl => table {g =>[ "старшими научными сотрудниками"]}
- }
- } ;
-
-ProjectManager = {s =
- table {
- sg => table {_ => ["менеджером проекта"]} ;
- pl => table {_ => ["менеджерами проектов"]}
- }} ;
-
-}
diff --git a/examples/letter/LetterSwe.gf b/examples/letter/LetterSwe.gf
deleted file mode 100644
index a2ca59aa9..000000000
--- a/examples/letter/LetterSwe.gf
+++ /dev/null
@@ -1,164 +0,0 @@
-concrete LetterSwe of Letter = {
-
---1 An Swedish Concrete Syntax for Business and Love Letters
---
--- This file defines the Swedish syntax of the grammar set
--- whose abstract syntax is $letter.Abs.gf$.
-
-
-flags lexer=textlit ; unlexer=textlit ; coding=utf8;
-
-printname cat Letter = "Brev" ;
-printname fun MkLetter = "brevmall" ;
-
-param Sex = masc | fem ;
-param Gen = en | ett ;
-param Num = sg | pl ;
-param Kas = nom | acc ;
-param DepNum = depnum | cnum Num ;
-
-oper SS = {s : Str} ;
-oper SSDep = {s : Num => Sex => Str} ; -- needs Num and Sex
-oper SSSrc = {s : Str ; n : Num ; x : Sex} ; -- gives Num and Sex
-oper SSSrc2 = {s : Num => Sex => Str ; n : DepNum ; x : Sex} ; -- gives and needs
-oper SSDep2 = {s : DepNum => Sex => Num => Sex => Str} ; -- needs Auth's & Recp's
-oper SSSrcGen = {s : Str ; n : Num ; g : Gen} ; -- gives Num and Gen
-
-
-oper
- ss : Str -> SS = \s -> {s = s} ;
-
- constNX : Str -> Num -> Sex -> SSSrc2 = \str,num,sex ->
- {s = table {_ => table {_ => str}} ; n = cnum num ; x = sex} ;
-
- dep2num : DepNum -> Num -> Num = \dn,n -> case dn of {
- depnum => n ;
- cnum cn => cn
- } ;
-
- RET = "" ; -- &-
-
-lincat
-Letter = SS ;
-Recipient = SSSrc ;
-Author = SSSrc2 ;
-Message = SSDep2 ;
-Heading = SSSrc ;
-Ending = SSSrc2 ;
-Mode = SSDep2 ;
-Sentence = SSDep2 ;
-NounPhrase = SSSrcGen ;
-Position = SSDep ;
-
-lin
-MkLetter head mess end =
- ss (head.s ++ "," ++ RET ++
- mess.s ! end.n ! end.x ! head.n ! head.x ++ "." ++ RET ++
- end.s ! head.n ! head.x) ;
-
-DearRec rec = {s = kaer ! rec.n ! rec.x ++ rec.s ; n = rec.n ; x = rec.x} ;
-PlainRec rec = rec ;
-HelloRec rec = {s = "Hej" ++ rec.s ; n = rec.n ; x = rec.x} ;
-JustHello rec = {s = "Hej" ; n = rec.n ; x = rec.x} ;
-
-ModeSent mode sent =
- {s =
- table {na => table {xa => table {nr => table {xr =>
- mode.s ! na ! xa ! nr ! xr ++ sent.s ! na ! xa ! nr ! xr}}}}
- } ;
-PlainSent sent = sent ;
-
-FormalEnding auth =
- {s = table {n => table {x =>
- ["Med vänlig hälsning"] ++ RET ++ auth.s ! n ! x}} ; n = auth.n ; x = auth.x} ;
-
-InformalEnding auth =
- {s = table {n => table {x =>
- ["Med hälsningar"] ++ RET ++ auth.s ! n ! x}} ; n = auth.n ; x = auth.x} ;
-
-ColleaguesHe = {s = kollega ! pl ; n = pl ; x = masc} ;
-ColleaguesShe = {s = kollega ! pl ; n = pl ; x = fem} ;
-ColleagueHe = {s = kollega ! sg ; n = sg ; x = masc} ;
-ColleagueShe = {s = kollega ! sg ; n = sg ; x = fem} ;
-DarlingHe = {s = "älskling" ; n = sg ; x = masc} ;
-DarlingShe = {s = "älskling" ; n = sg ; x = fem} ;
-NameHe s = {s = s.s ; n = sg ; x = masc} ;
-NameShe s = {s = s.s ; n = sg ; x = fem} ;
-
-Honour = {s =
- table {na => table {xa => table {nr => table {xr =>
- jag ! dep2num na nr ! nom ++ ["har äran att meddela"] ++
- du ! nr ! acc ++ "att"}}}}
- } ;
-
-Regret = {s =
- table {na => table {xa => table {nr => table {xr =>
- jag ! dep2num na nr ! nom ++ ["måste tyvärr meddela"] ++
- du ! nr ! acc ++ "att"}}}}
- } ;
-
-
-President = constNX ["Presidenten"] sg masc ;
-Mother = constNX ["Mamma"] sg fem ;
-Spouse = {s = table {
- sg => table {fem => ["din man"] ; masc => ["din hustru"]} ;
- pl => table {fem => ["era män"] ; masc => ["era hustrur"]}
- } ; n = depnum ; x = masc} ; -- sex does not matter here
-Dean = constNX ["Dekanus"] sg masc ;
-Name s = constNX s.s sg masc ; ---
-
-BePromoted pos = {s =
- table {na => table {xa => table {nr => table {xr =>
- du ! nr ! nom ++ ["har blivit"] ++ befordrad ! nr ++
- "till" ++ pos.s ! nr ! xr}}}}
- } ;
-GoBankrupt np = {s =
- table {na => table {xa => table {nr => table {xr =>
- np.s ++ ["har gått i konkurs"]}}}}
- } ;
-ILoveYou = {s =
- table {na => table {xa => table {nr => table {xr =>
- jag ! dep2num na nr ! nom ++ ["älskar"] ++ du ! nr ! acc}}}}
- } ;
-
-Company = {s = ["vårt företag"] ; n = sg ; g = ett} ;
-Competitor = {s = ["vår värsta konkurrent"] ; n = sg ; g = en} ;
-OurCustomers = {s = ["våra kunder"] ; n = pl ; g = en} ;
-
-Senior = {s = table {n => table {x => ["äldre forskare"]}}} ;
-ProjectManager = {s =
- table {
- sg => table {_ => "projektchef"} ;
- pl => table {_ => "projektchefer"}
- }} ;
-
-oper
-
-kaer :
- Num => Sex => Str =
- table {
- sg => table {masc => "Käre" ; fem => "Kära"} ;
- pl => table {_ => "Kära"}
- } ;
-
-kollega :
- Num => Str =
- table {sg => "kollega" ; pl => "kollegor"} ;
-
-befordrad :
- Num => Str =
- table {sg => "befordrad" ; pl => "befordrade"} ;
-
-jag :
- Num => Kas => Str =
- table {
- sg => table {nom => "jag" ; acc => "mig"} ;
- pl => table {nom => "vi" ; acc => "oss"}
- } ;
-du :
- Num => Kas => Str =
- table {
- sg => table {nom => "du" ; acc => "dig"} ;
- pl => table {nom => "ni" ; acc => "er"}
- } ;
-}
diff --git a/examples/letter/README b/examples/letter/README
deleted file mode 100644
index d1691f721..000000000
--- a/examples/letter/README
+++ /dev/null
@@ -1,35 +0,0 @@
-GF challenges Microsoft Works! Here you find templates for
-multilingual authoring of business and love letters!
-
-Another point of these grammars is to illustrate how
-local updates are propagated everywhere in the document.
-Form, in the editor
-
- Dear Colleague,
-
- I love you.
-
- With best regards,
-
- your wife
-
-and change between ColleagueHe, ColleagueShe, ColleaguesHe, ColleaguesShe.
-
-The grammars are somewhat ad hoc and messy, and could be improved
-with better abstractions.
-
-(AR 2001)
-
-To use the grammars in an editor, first compile them to javascript:
-
- gfc --make --output-format=js Letter???.gf
-
-Then open the file ./editor/editor.html in a web browser. You also need the javascript
-libraries from
-
- GF/lib/javascript/
-
-Copyright (c) 2001-2008 Janna Khegai, Alex Kutsela, Aarne Ranta
-under GNU General Public License (GPL).
-
-Document last updated December 4, 2008, by Aarne Ranta.
diff --git a/examples/letter/editor/editor.html b/examples/letter/editor/editor.html
deleted file mode 100644
index 5c9aa4fc5..000000000
--- a/examples/letter/editor/editor.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
- Web-based Syntax Editor
-
-
-
-
-
-
diff --git a/examples/phrasebook/Clone.hs b/examples/phrasebook/Clone.hs
deleted file mode 100644
index 4619c13ed..000000000
--- a/examples/phrasebook/Clone.hs
+++ /dev/null
@@ -1,65 +0,0 @@
-module Main where
-
-import Control.Monad
-import Data.Maybe
-import Data.Char
-import System.Cmd
-import System.Directory
-import System.Environment
-import System.Exit
-
-
--- To clone a project from one language to another:
---
--- 1. for each Module in 'modules', copy ModuleFROM to ModuleTO
--- 2. in each ModuleTO, replace substrings FROM by TO, if not prefixes of an Ident
--- 3. in each ModuleTO in 'specifics', comment out every line in the body, except
--- those whose first word is in 'commons'.
---
--- Syntax: runghc Clone FROM TO
--- Example: runhugs Clone Swe Nor
-
--- The following lines are for the phrasebook project, and can be changed
--- to fit other projects.
-
-modules = "Phrasebook":"Sentences":specifics
-specifics = ["Words","Greetings"]
-commons = ["Apple","Beer","Bread","Fish","Milk","Salt","Water","Wine",
- "Bad","Cold","Good","Warm","AHasChildren"]
-
-
-main = do
- from:to:_ <- getArgs
- mapM_ (clone from to) modules
-
-clone from to pref = do
- s <- readFile (pref ++ from ++ ".gf")
- writeFile (pref ++ to ++ ".gf") (commentIf (isSpecific pref) (replaceLang from to s))
-
-isSpecific = flip elem specifics
-
-replaceLang s1 s2 = repl where
- repl s = case s of
- c:cs -> case splitAt lgs s of
- (pre,c:rest) | pre == s1 && elem c " \n\t,:=(){}.-[];" -> s2 ++ [c] ++ repl rest
- _ -> c : repl cs
- _ -> s
- lgs = 3 -- length s1
-
--- the file name has the form p....pLLL.gf, i.e. 3-letter lang name, suffix .gf
-getLangName fi =
- let (nal,ferp) = splitAt 3 (drop 3 (reverse fi)) in
- (reverse ferp,reverse nal)
-
-commentIf c = if c then (unlines . commentBody . lines) else id
-
-commentBody ss = header ++ map comment body ++ ["}"] where
- (header,body) = break (isJment . words) ss
- isJment ws = case ws of
- k:_ | elem k ["flags","lin","lincat","oper","param"] -> True
- _ -> False
- comment l = case l of
- _ | take 2 l == "--" -> l -- already commented
- _ | all isSpace l -> l -- empty line
- _ | elem (head (words l)) commons -> l -- in 'commons'
- _ -> "--" ++ l
diff --git a/examples/phrasebook/Compile.hs b/examples/phrasebook/Compile.hs
deleted file mode 100644
index bc64a6f30..000000000
--- a/examples/phrasebook/Compile.hs
+++ /dev/null
@@ -1,47 +0,0 @@
-import Data.List(partition)
-import Control.Monad(when)
-import System.Cmd(system)
-import System.Environment(getArgs)
-
--- (c) Aarne Ranta 2010 under GNU LGPL
-
--- Compile files into pgf, in chosen combinations.
-
--- Usage: runghc Compile (-make | -link)? Eng Fre Fin ...
--- The -make option links all pgf files to one in the end
--- The -link option only links, without first compiling
--- Arguments whose length are 3 characters are prefixed with mainmodu.
--- Other arguments are passed literally.
-
--- Thus, for instance, to produce an English-Swedish-Romanian phrasebook with English
--- disambiguation, the command is
---
--- runghc Compile -link Eng Swe Ron DisambPhrasebookEng
-
-
--- change this to apply to another project; alternatively, just use full file names
-mainmodu = "Phrasebook"
-
-main = do
- (opts,langs) <- partition ((=='-') . head) `fmap` getArgs
- let modus = [mkFile la | la <- langs]
- let opt = elem "-opt" opts
- putStrLn $ unwords modus
- when (notElem "-link" opts) $ mapM_ (compileOne opt) modus
- case opts of
- _ | elem "-make" opts || elem "-link" opts -> do
- let comm = "gf -make -s " ++ unwords (map (++ ".pgf") modus)
- putStrLn comm
- system comm
- return ()
- _ -> return ()
-
-compileOne opt modu = do
- let optim = if opt then " -optimize-pgf" else ""
- comm = "gf -make -s" ++ optim ++ " -name=" ++
- modu ++ " " ++ modu ++ ".gf" ++
- " +RTS -K32M"
- putStrLn comm
- system comm
-
-mkFile la = if length la == 3 then mainmodu ++ la else la
diff --git a/examples/phrasebook/DisambPhrasebookEng.gf b/examples/phrasebook/DisambPhrasebookEng.gf
deleted file mode 100644
index af8753869..000000000
--- a/examples/phrasebook/DisambPhrasebookEng.gf
+++ /dev/null
@@ -1,84 +0,0 @@
---# -path=.:present
-
-concrete DisambPhrasebookEng of Phrasebook = PhrasebookEng -
- [
- PGreetingMale, PGreetingFemale,
- IMale, IFemale,
- YouFamMale, YouFamFemale,
- YouPolMale, YouPolFemale,
- LangNat, -- CitiNat,
- GExcuse, GExcusePol,
- GSorry, GSorryPol,
- GPleaseGive, GPleaseGivePol,
- GNiceToMeetYou, -- GNiceToMeetYouPol,
- PYes, PYesToNo, ObjMass,
- MKnow,
- WeMale, WeFemale,
- YouPlurFamMale, YouPlurFamFemale,
- YouPlurPolMale, YouPlurPolFemale,
- TheyMale, TheyFemale,
- PImperativeFamPos,
- PImperativeFamNeg,
- PImperativePolPos,
- PImperativePolNeg,
- PImperativePlurPos,
- PImperativePlurNeg
- ]
- ** open SyntaxEng, ParadigmsEng, IrregEng, Prelude in {
-lin
- PGreetingMale g = mkText (lin Text g) (lin Text (ss "(by male)")) ;
- PGreetingFemale g = mkText (lin Text g) (lin Text (ss "(by female)")) ;
- IMale = mkP i_Pron "(male)" ;
- IFemale = mkP i_Pron "(female)" ;
- WeMale = mkP we_Pron "(male)" ;
- WeFemale = mkP we_Pron "(female)" ;
- YouFamMale = mkP youSg_Pron "(singular,familiar,male)" ;
- YouFamFemale = mkP youSg_Pron "(singular,familiar,female)" ;
- YouPolMale = mkP youPol_Pron "(singular,polite,male)" ;
- YouPolFemale = mkP youPol_Pron "(singular,polite,female)" ;
- YouPlurFamMale = mkP youSg_Pron "(plural,familiar,male)" ;
- YouPlurFamFemale = mkP youSg_Pron "(plural,familiar,female)" ;
- YouPlurPolMale = mkP youPol_Pron "(plural,polite,male)" ;
- YouPlurPolFemale = mkP youPol_Pron "(plural,polite,female)" ;
- TheyMale = mkP they_Pron "(male)" ;
- TheyFemale = mkP they_Pron "(female)" ;
-
- MKnow = mkVV (partV know_V "how") ; ---
-
- LangNat nat = mkNP nat.lang (ParadigmsEng.mkAdv "(language)") ;
--- CitiNat nat = nat.prop ;
-
- GExcuse = fam "excuse me" ;
- GExcusePol = pol "excuse me" ;
- GSorry = fam "sorry" ;
- GSorryPol = pol "sorry" ;
- GPleaseGive = fam "please" ;
- GPleaseGivePol = pol "please" ;
- GNiceToMeetYou = fam "nice to meet you" ;
--- GNiceToMeetYouPol = pol "nice to meet you" ;
-
- PYes = mkPhrase (lin Utt (ss "yes (answer to positive question)")) ;
- PYesToNo = mkPhrase (lin Utt (ss "yes (answer to negative question)")) ;
-
- ObjMass x = mkNP (mkNP x) (ParadigmsEng.mkAdv "(a portion of)") ;
-
- PImperativeFamPos v = phrasePlease (mkUtt (mkImp (addAdv ("singular,familiar") v))) ;
- PImperativeFamNeg v = phrasePlease (mkUtt negativePol (mkImp (addAdv ("singular,familiar") v))) ;
- PImperativePolPos v = phrasePlease (mkUtt politeImpForm (mkImp (addAdv ("singular,polite") v))) ;
- PImperativePolNeg v = phrasePlease (mkUtt politeImpForm negativePol (mkImp (addAdv ("singular,polite") v))) ;
- PImperativePlurPos v = phrasePlease (mkUtt pluralImpForm (mkImp (addAdv ("plural,familiar") v))) ;
- PImperativePlurNeg v = phrasePlease (mkUtt pluralImpForm negativePol (mkImp (addAdv ("plural,familiar") v))) ;
-
-
-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 : Quant} = \p,s ->
- {name = mkNP (mkNP p) (ParadigmsEng.mkAdv s) ;
- isPron = False ; -- to show the disambiguation
- poss = SyntaxEng.mkQuant youSg_Pron
- } ;
-
- addAdv : Str -> VP -> VP = \s,vp -> mkVP vp (ParadigmsEng.mkAdv ("("+s+")")) ;
-}
diff --git a/examples/phrasebook/DisambPhrasebookRon.gf b/examples/phrasebook/DisambPhrasebookRon.gf
deleted file mode 100644
index c6cdf9aae..000000000
--- a/examples/phrasebook/DisambPhrasebookRon.gf
+++ /dev/null
@@ -1,11 +0,0 @@
---# -path=.:present
-
-concrete DisambPhrasebookRon of Phrasebook = PhrasebookRon -
- [PSentence, PQuestion, ObjIndef
- ]
- ** open SyntaxRon, Prelude in {
-lin
- PSentence s = mkText s ; -- punctuation not optional
- PQuestion s = mkText s ;
- ObjIndef k = mkNP someSg_Det k ;
-}
diff --git a/examples/phrasebook/Greetings.gf b/examples/phrasebook/Greetings.gf
deleted file mode 100644
index 580b1560b..000000000
--- a/examples/phrasebook/Greetings.gf
+++ /dev/null
@@ -1,28 +0,0 @@
-abstract Greetings = Sentences [Greeting] ** {
-
-fun
- GBye : Greeting ;
- GCheers : Greeting ;
- GDamn : Greeting ;
- GExcuse, GExcusePol : Greeting ;
- GGoodDay : Greeting ;
- GGoodEvening : Greeting ;
- GGoodMorning : Greeting ;
- GGoodNight : Greeting ;
- GGoodbye : Greeting ;
- GHello : Greeting ;
- GHelp : Greeting ;
- GHowAreYou : Greeting ;
- GLookOut : Greeting ;
- GNiceToMeetYou : Greeting ;
- GPleaseGive, GPleaseGivePol : Greeting ;
- GSeeYouSoon : Greeting ;
- GSorry, GSorryPol : Greeting ;
- GThanks : Greeting ;
- GTheCheck : Greeting ;
- GCongratulations : Greeting ;
- GHappyBirthday : Greeting ;
- GGoodLuck : Greeting ;
- GWhatTime : Greeting ;
-
-}
diff --git a/examples/phrasebook/GreetingsBul.gf b/examples/phrasebook/GreetingsBul.gf
deleted file mode 100644
index f271d7717..000000000
--- a/examples/phrasebook/GreetingsBul.gf
+++ /dev/null
@@ -1,31 +0,0 @@
-concrete GreetingsBul of Greetings = SentencesBul [Greeting,mkGreeting] ** open Prelude in {
-
-flags
- coding=utf8;
-
-lin
- GBye = mkGreeting "чао" ;
- GCheers = mkGreeting "наздраве" ;
- GDamn = mkGreeting "по дяволите" ;
- GExcuse, GExcusePol = mkGreeting "извинете" ;
- GGoodDay = mkGreeting "добър ден" ;
- GGoodEvening = mkGreeting "добра вечер" ;
- GGoodMorning = mkGreeting "добро утро" ;
- GGoodNight = mkGreeting "лека нощ" ;
- GGoodbye = mkGreeting "довиждане" ;
- GHello = mkGreeting "здравей" ;
- GHelp = mkGreeting "помощ" ;
- GHowAreYou = mkGreeting "как си" ;
- GLookOut = mkGreeting "погледни" ;
- GNiceToMeetYou = mkGreeting "радвам се да се видим" ;
- GPleaseGive, GPleaseGivePol = mkGreeting "моля" ;
- GSeeYouSoon = mkGreeting "до скоро" ;
- GSorry, GSorryPol = mkGreeting "извинете" ;
- GThanks = mkGreeting "благодаря ти" ;
- GTheCheck = mkGreeting "сметката" ;
- GCongratulations = mkGreeting "поздравления";
- GHappyBirthday = mkGreeting "честит рожден ден" ;
- GGoodLuck = mkGreeting "успех" ;
- GWhatTime = mkGreeting "колко е часът" ;
-
-}
diff --git a/examples/phrasebook/GreetingsCat.gf b/examples/phrasebook/GreetingsCat.gf
deleted file mode 100644
index db8992e22..000000000
--- a/examples/phrasebook/GreetingsCat.gf
+++ /dev/null
@@ -1,31 +0,0 @@
---# -coding=latin1
-concrete GreetingsCat of Greetings = SentencesCat [Greeting,mkGreeting] ** open Prelude in {
-
-lin
- GBye = mkGreeting "adu" ;
- GCheers = mkGreeting "salut" ;
- GDamn = mkGreeting "merda" ;
- GExcuse = mkGreeting "perdona" ;
- GExcusePol = mkGreeting ("perdoni" | "disculpi") ;
- GCongratulations = mkGreeting "felicitats" ;
- GHappyBirthday = mkGreeting "feli aniversari" ;
- GGoodLuck = mkGreeting "sort" ;
- GGoodDay = mkGreeting "bon dia" ;
- GGoodEvening = mkGreeting "bona tarda" ;
- GGoodMorning = mkGreeting "bon dia" ;
- GGoodNight = mkGreeting "bona nit" ;
- GGoodbye = mkGreeting "a reveure" ;
- GHello = mkGreeting "hola" ;
- GHelp = mkGreeting "socors" ;
- GHowAreYou = mkGreeting "qu tal" ;
- GLookOut = mkGreeting "compte" ;
- GNiceToMeetYou = mkGreeting "encantat de conixer-lo" ; -- make distinction Masc/Fem
- GPleaseGive = mkGreeting "si et plau" ;
- GPleaseGivePol = mkGreeting "si us plau" ;
- GSeeYouSoon = mkGreeting "fins aviat" ;
- GSorry = mkGreeting "perdoni" ;
- GSorryPol = mkGreeting "em sap greu" ;
- GThanks = mkGreeting "grcies" ;
- GTheCheck = mkGreeting "el compte" ;
-
-}
diff --git a/examples/phrasebook/GreetingsChi.gf b/examples/phrasebook/GreetingsChi.gf
deleted file mode 100644
index 40d532e0d..000000000
--- a/examples/phrasebook/GreetingsChi.gf
+++ /dev/null
@@ -1,33 +0,0 @@
-concrete GreetingsChi of Greetings =
-SentencesChi [Greeting,mkGreeting] **
-open ParadigmsChi, ResChi, Prelude in {
-
-flags coding = utf8 ;
-
-lin
-GBye = (mkInterj "再见" ) ;
-GCheers = (mkInterj "干杯" ) ;
-GDamn = (mkInterj "该死的" ) ;
-GExcuse, GExcusePol = (mkInterj "原谅我" ) ;
-GGoodDay = (mkInterj "你好" ) ;
-GGoodEvening = (mkInterj "下午好" ) ;
-GGoodMorning = (mkInterj "早上好" ) ;
-GGoodNight = (mkInterj "晚安" ) ;
-GGoodbye = (mkInterj "再见" ) ;
-GHello = (mkInterj "你好" ) ;
-GHelp = mkInterj "帮助" ;
-GHowAreYou = mkInterj "你好吗" ;
-GLookOut = mkInterj "留意" ;
-GNiceToMeetYou = mkInterj "很高兴见到你" ;
-GNiceToMeetYouPol = mkInterj "很高兴见到您" ;
-GPleaseGive, GPleaseGivePol = mkInterj "请" ;
-GSeeYouSoon = mkInterj "很快再见" ;
-GSorry, GSorryPol = mkInterj "对不起" ;
-GThanks = (mkInterj "谢谢" ) ;
-GTheCheck = mkInterj "检查" ;
-GCongratulations = mkInterj "祝贺您" ;
-GHappyBirthday = mkInterj "祝你生日快乐" ;
-GGoodLuck = (mkInterj "祝你好运" ) ;
-GWhatTime = mkInterj "现在是什么时候" ;
-
-}
diff --git a/examples/phrasebook/GreetingsDan.gf b/examples/phrasebook/GreetingsDan.gf
deleted file mode 100644
index 3aa8e8be9..000000000
--- a/examples/phrasebook/GreetingsDan.gf
+++ /dev/null
@@ -1,29 +0,0 @@
---# -coding=latin1
-concrete GreetingsDan of Greetings = SentencesDan [Greeting,mkGreeting] ** open Prelude in {
-
-lin
- GBye = mkGreeting "hej hej" ; -- not google translate
- GCheers = mkGreeting "skl" ;
- GDamn = mkGreeting "satans" ; -- X
- GExcuse, GExcusePol = mkGreeting "undskyld mig" ;
- GGoodDay = mkGreeting "god dag" ;
- GGoodEvening = mkGreeting "god aften" ;
- GGoodMorning = mkGreeting "god morgen" ;
- GGoodNight = mkGreeting "godnat" ;
- GGoodbye = mkGreeting "farvel" ;
- GHello = mkGreeting "hej" ;
- GHelp = mkGreeting "hjlp" ;
- GHowAreYou = mkGreeting "hvordan har du det" ;
- GLookOut = mkGreeting "pas p" ;
- GNiceToMeetYou, GNiceToMeetYouPol = mkGreeting "hyggeligt at mde dig" ; -- more common than rart (google translate)
- GPleaseGive = mkGreeting "vr s sd" ; -- can also have flink instead of sod
- GPleaseGivePol = mkGreeting "venligst" ; -- X not behage
- GSeeYouSoon = mkGreeting "vi ses snart" ; -- X se dig snart
- GSorry, GSorryPol = mkGreeting "undskyld" ;
- GThanks = mkGreeting "tak" ;
- GTheCheck = mkGreeting "regningen" ;
- GCongratulations = mkGreeting "tillykke";
- GHappyBirthday = mkGreeting "tillykke med fdselsdagen" ;
- GGoodLuck = mkGreeting "held og lykke" ;
-
-}
diff --git a/examples/phrasebook/GreetingsDut.gf b/examples/phrasebook/GreetingsDut.gf
deleted file mode 100644
index bb7e2745b..000000000
--- a/examples/phrasebook/GreetingsDut.gf
+++ /dev/null
@@ -1,30 +0,0 @@
-concrete GreetingsDut of Greetings = SentencesDut [Greeting,mkGreeting] ** open Prelude in {
-
-
-lin
- GBye = mkGreeting "doei" ;
- GCheers = mkGreeting "proost" ;
- GDamn = mkGreeting "verdomme" ;
- GExcuse, GExcusePol = mkGreeting "pardon" ;
- GGoodDay = mkGreeting "goedendag" ;
- GGoodEvening = mkGreeting "goedenavond" ;
- GGoodMorning = mkGreeting "goedemorgen" ;
- GGoodNight = mkGreeting "goedenacht" ;
- GGoodbye = mkGreeting "tot ziens" ;
- GHello = mkGreeting "hallo" ;
- GHelp = mkGreeting "help" ;
- GHowAreYou = mkGreeting "hoe gaat het" ;
- GLookOut = mkGreeting "kijk uit" ;
- GNiceToMeetYou = mkGreeting "leuk je te ontmoeten" ;
- GNiceToMeetYouPol = mkGreeting "leuk je u ontmoeten" ;
- GPleaseGive, GPleaseGivePol = mkGreeting "alstublieft" ;
- GSeeYouSoon = mkGreeting "tot ziens" ;
- GSorry = mkGreeting "sorry";
- GSorryPol = mkGreeting "mijn verontschuldiging" ;
- GThanks = mkGreeting "dank je wel" ;
- GTheCheck = mkGreeting "rekening" ;
- GCongratulations = mkGreeting "gefeliciteerd";
- GHappyBirthday = mkGreeting "gelukkige verjaardag" ;
- GGoodLuck = mkGreeting "veel geluk" ;
- GWhatTime = mkGreeting "hoe laat is het" ;
-}
diff --git a/examples/phrasebook/GreetingsEng.gf b/examples/phrasebook/GreetingsEng.gf
deleted file mode 100644
index 1bfb75287..000000000
--- a/examples/phrasebook/GreetingsEng.gf
+++ /dev/null
@@ -1,27 +0,0 @@
-concrete GreetingsEng of Greetings = SentencesEng [Greeting,mkGreeting] ** open Prelude in {
-
-lin
- GBye = mkGreeting "bye" ;
- GCheers = mkGreeting "cheers" ;
- GDamn = mkGreeting "damn" ;
- GExcuse, GExcusePol = mkGreeting "excuse me" ;
- GGoodDay = mkGreeting "good afternoon" ; ----
- GGoodEvening = mkGreeting "good evening" ;
- GGoodMorning = mkGreeting "good morning" ;
- GGoodNight = mkGreeting "good night" ;
- GGoodbye = mkGreeting "goodbye" ;
- GHello = mkGreeting "hello" ;
- GHelp = mkGreeting "help" ;
- GHowAreYou = mkGreeting "how are you" ;
- GLookOut = mkGreeting "look out" ;
- GNiceToMeetYou, GNiceToMeetYouPol = mkGreeting "nice to meet you" ;
- GPleaseGive, GPleaseGivePol = mkGreeting "please" ;
- GSeeYouSoon = mkGreeting "see you soon" ;
- GSorry, GSorryPol = mkGreeting "sorry" ;
- GThanks = mkGreeting "thank you" ;
- GTheCheck = mkGreeting "the bill" ;
- GCongratulations = mkGreeting "congratulations";
- GHappyBirthday = mkGreeting "happy birthday" ;
- GGoodLuck = mkGreeting "good luck" ;
- GWhatTime = mkGreeting "what time is it" | mkGreeting "what is the time" ;
-}
diff --git a/examples/phrasebook/GreetingsEst.gf b/examples/phrasebook/GreetingsEst.gf
deleted file mode 100644
index fc29f2c3f..000000000
--- a/examples/phrasebook/GreetingsEst.gf
+++ /dev/null
@@ -1,26 +0,0 @@
-concrete GreetingsEst of Greetings = SentencesEst [Greeting,mkGreeting] ** open Prelude in {
-
-lin
- GBye = mkGreeting "head aega" ;
- GCheers = mkGreeting "terviseks" ;
- GDamn = mkGreeting "neetud" ;
- GExcuse, GExcusePol = mkGreeting "vabandust" ;
- GGoodDay = mkGreeting "tere päevast" ;
- GGoodEvening = mkGreeting "tere õhtust" ;
- GGoodMorning = mkGreeting "tere hommikust" ;
- GGoodNight = mkGreeting "head ööd" ;
- GGoodbye = mkGreeting "head aega" ;
- GHello = mkGreeting "tere" ;
- GHelp = mkGreeting "appi" ;
- GHowAreYou = mkGreeting "kuidas käsi käib" ;
- GLookOut = mkGreeting "ettevaatust" ;
- GNiceToMeetYou = mkGreeting "meeldiv tutvuda" ;
- GPleaseGive, GPleaseGivePol = mkGreeting "palun" ;
- GSeeYouSoon = mkGreeting "kohtumiseni" ;
- GSorry, GSorryPol = mkGreeting "vabandust" ;
- GThanks = mkGreeting "suur tänu" ;
- GTheCheck = mkGreeting "arve" ;
- GCongratulations = mkGreeting "palju õnne";
- GHappyBirthday = mkGreeting "palju õnne sünnipäevaks" ;
- GGoodLuck = mkGreeting "palju edu" ;
-}
diff --git a/examples/phrasebook/GreetingsFin.gf b/examples/phrasebook/GreetingsFin.gf
deleted file mode 100644
index 4fc71c1aa..000000000
--- a/examples/phrasebook/GreetingsFin.gf
+++ /dev/null
@@ -1,30 +0,0 @@
---# -coding=latin1
-concrete GreetingsFin of Greetings = SentencesFin [Greeting,mkGreeting] ** open Prelude in {
-
-lin
- GBye = mkGreeting "hei hei" ;
- GCheers = mkGreeting "terveydeksi" ;
- GDamn = mkGreeting "hitto" ;
- GExcuse, GExcusePol = mkGreeting "anteeksi" ;
- GGoodDay = mkGreeting "hyv piv" ;
- GGoodEvening = mkGreeting "hyv iltaa" ;
- GGoodMorning = mkGreeting "hyv huomenta" ;
- GGoodNight = mkGreeting "hyv yt" ;
- GGoodbye = mkGreeting "nkemiin" ;
- GHello = mkGreeting "hei" ;
- GHelp = mkGreeting "apua" ;
- GHowAreYou = mkGreeting "mit kuuluu" ;
- GLookOut = mkGreeting "varo" ;
- GNiceToMeetYou = mkGreeting "hauska tutustua" ;
- GPleaseGive = mkGreeting "ole hyv" ;
- GPleaseGivePol = mkGreeting "olkaa hyv" ;
- GSeeYouSoon = mkGreeting "nhdn pian" ;
- GSorry, GSorryPol = mkGreeting "anteeksi" ;
- GThanks = mkGreeting "kiitos" ;
- GTheCheck = mkGreeting "lasku" ;
- GCongratulations = mkGreeting "onnittelut";
- GHappyBirthday = mkGreeting "hyv syntympiv" ;
- GGoodLuck = mkGreeting "onnea" ;
- GWhatTime = mkGreeting "paljonko kello on" | mkGreeting "mit kello on" ;
-
-}
diff --git a/examples/phrasebook/GreetingsFre.gf b/examples/phrasebook/GreetingsFre.gf
deleted file mode 100644
index 71faf5c66..000000000
--- a/examples/phrasebook/GreetingsFre.gf
+++ /dev/null
@@ -1,31 +0,0 @@
---# -coding=latin1
-concrete GreetingsFre of Greetings = SentencesFre [Greeting,mkGreeting] ** open Prelude in {
-
-lin
- GBye = mkGreeting "au revoir" ;
- GCheers = mkGreeting "sant" ;
- GDamn = mkGreeting "maudit" ;
- GExcuse = mkGreeting "excuse-moi" ;
- GExcusePol = mkGreeting "excusez-moi" ;
- GGoodDay = mkGreeting "bonjour" ;
- GGoodEvening = mkGreeting "bon soir" ;
- GGoodMorning = mkGreeting "bonjour" ;
- GGoodNight = mkGreeting "bonne nuit" ;
- GGoodbye = mkGreeting "au revoir" ;
- GHello = mkGreeting "salut" ;
- GHelp = mkGreeting "au secours" ;
- GHowAreYou = mkGreeting "comment a va" ;
- GLookOut = mkGreeting "attention" ;
- GNiceToMeetYou = mkGreeting "enchant" ;
- GPleaseGive = mkGreeting "s'il te plat" ;
- GPleaseGivePol = mkGreeting "s'il vous plat" ;
- GSeeYouSoon = mkGreeting " bientt" ;
- GSorry, GSorryPol = mkGreeting "pardon" ;
- GThanks = mkGreeting "merci" ;
- GTheCheck = mkGreeting "l'addition" ;
- GCongratulations = mkGreeting "flicitations";
- GHappyBirthday = mkGreeting "joyeux anniversaire" ;
- GGoodLuck = mkGreeting "bonne chance" ;
- GWhatTime = mkGreeting "quelle heure est-il" ;
-
-}
diff --git a/examples/phrasebook/GreetingsGer.gf b/examples/phrasebook/GreetingsGer.gf
deleted file mode 100644
index f027d70ac..000000000
--- a/examples/phrasebook/GreetingsGer.gf
+++ /dev/null
@@ -1,31 +0,0 @@
---# -path=.:abstract:prelude:german:api:common
---# -coding=latin1
-concrete GreetingsGer of Greetings = SentencesGer [Greeting,mkGreeting] ** open Prelude in {
-
-lin
- GBye = mkGreeting "tsch" ;
- GCheers = mkGreeting "zum Wohl" ;
- GDamn = mkGreeting "verdammt" ;
- GExcuse, GExcusePol = mkGreeting "Entschuldigung" ;
- GGoodDay = mkGreeting "guten Tag" ;
- GGoodEvening = mkGreeting "guten Abend" ;
- GGoodMorning = mkGreeting "guten Morgen" ;
- GGoodNight = mkGreeting "gute Nacht" ;
- GGoodbye = mkGreeting "auf Wiedersehen" ;
- GHello = mkGreeting "Hallo" ;
- GHelp = mkGreeting "Hilfe" ;
- GHowAreYou = mkGreeting "wie geht's" ;
- GLookOut = mkGreeting "Achtung" ;
- GNiceToMeetYou = mkGreeting "nett, Sie zu treffen" ;
- GPleaseGive, GPleaseGivePol = mkGreeting "bitte" ;
- GSeeYouSoon = mkGreeting "bis bald" ;
- GSorry, GSorryPol = mkGreeting "Entschuldigung" ;
- GThanks = mkGreeting "Danke" ;
- GTheCheck = mkGreeting "die Rechnung" ;
- GCongratulations = mkGreeting "herzlichen Glckwunsch";
- GHappyBirthday = mkGreeting "alles Gute zum Geburtstag" ;
- GGoodLuck = mkGreeting "viel Glck" ;
- GWhatTime = mkGreeting "wieviel Uhr ist es" | mkGreeting "wie spt ist es" ;
-
-}
-
diff --git a/examples/phrasebook/GreetingsHin.gf b/examples/phrasebook/GreetingsHin.gf
deleted file mode 100644
index 06b641b33..000000000
--- a/examples/phrasebook/GreetingsHin.gf
+++ /dev/null
@@ -1,31 +0,0 @@
-concrete GreetingsHin of Greetings = SentencesHin [Greeting,mkGreeting] ** open (P=Prelude) in {
-
--- lincat
--- Greeting = {s : Str; lock_Text : {}} ;
-flags coding = utf8 ;
-lin
- GBye = P.ss "नमस्कार" ;
- GCheers = P.ss "चियर्ज़" ;
- GDamn = P.ss "ाफ़" ;
- GExcuse, GExcusePol = P.ss "क्षमा कीजिये" ;
- GGoodDay = P.ss "नमस्कार" ; ----
- GGoodEvening = P.ss "नमस्कार" ;
- GGoodMorning = P.ss "नमस्कार" ;
- GGoodNight = P.ss "नमस्कार" ;
- GGoodbye = P.ss "हम आपसे विदा लेते हैं" ;
- GHello = P.ss "नमस्कार" ;
- GHelp = P.ss "सहायता" ;
- GHowAreYou = P.ss "आप कैसे हैं" ;
- GLookOut = P.ss "सावधान" ;
- GNiceToMeetYou, GNiceToMeetYouPol = P.ss "आप से मिल कर च्छा लगा" ;
- GPleaseGive, GPleaseGivePol = P.ss "कृपया" ;
- GSeeYouSoon = P.ss "फिर मिलेंगे" ;
- GSorry, GSorryPol = P.ss "क्षमा कीजिये" ;
- GThanks = P.ss "धन्यवाद" ;
- GTheCheck = P.ss "बिल" ;
- GCongratulations = P.ss "बधाई हो";
- GHappyBirthday = P.ss "जन्मदिन की शुभकामनाएँ" ;
- GGoodLuck = P.ss "शुभकामनाएँ" ;
- GWhatTime = P.ss "कितने बजे हैं" ;
-
-}
diff --git a/examples/phrasebook/GreetingsIta.gf b/examples/phrasebook/GreetingsIta.gf
deleted file mode 100644
index 968c523eb..000000000
--- a/examples/phrasebook/GreetingsIta.gf
+++ /dev/null
@@ -1,31 +0,0 @@
-concrete GreetingsIta of Greetings = SentencesIta [Greeting,mkGreeting] ** open Prelude in {
-
-lin
- GBye = mkGreeting "ciao" ;
- GCheers = mkGreeting "cincin" ;
- GDamn = mkGreeting "maledizione" ;
- GExcuse = mkGreeting "scusa" ;
- GExcusePol = mkGreeting "scusi" ;
- GGoodDay = mkGreeting "buongiorno" ;
- GGoodEvening = mkGreeting "buona sera" ;
- GGoodMorning = mkGreeting "buongiorno" ;
- GGoodNight = mkGreeting "buona notte" ;
- GGoodbye = mkGreeting "arrivederci" ;
- GHello = mkGreeting "ciao" ;
- GHelp = mkGreeting "aiuto" ;
- GHowAreYou = mkGreeting "come sta" ;
- GLookOut = mkGreeting "attenzione" ;
- GNiceToMeetYou = mkGreeting "piacere di conoscerti" ;
- GNiceToMeetYouPol = mkGreeting "piacere di conoscerLa" ;
- GPleaseGive, GPleaseGivePol = mkGreeting "per favore" ;
- GSeeYouSoon = mkGreeting "a presto" ; ----
- GSorry = mkGreeting "scusami" ; ----
- GSorryPol = mkGreeting "scusimi" ; ----
- GThanks = mkGreeting "grazie" ;
- GTheCheck = mkGreeting "il conto" ;
- GCongratulations = mkGreeting "congratulazioni";
- GHappyBirthday = mkGreeting "buon compleanno" ;
- GGoodLuck = mkGreeting "buona fortuna" ;
- GWhatTime = mkGreeting "che ore sono" ;
-
-}
diff --git a/examples/phrasebook/GreetingsJpn.gf b/examples/phrasebook/GreetingsJpn.gf
deleted file mode 100644
index ca68697c5..000000000
--- a/examples/phrasebook/GreetingsJpn.gf
+++ /dev/null
@@ -1,30 +0,0 @@
-concrete GreetingsJpn of Greetings = SentencesJpn [Greeting,mkGreeting] ** open Prelude in {
-
-flags coding = utf8 ;
-
-lin
- GBye = mkGreeting "バイ" ;
- GCheers = mkGreeting "かんぱい" ;
- GDamn = mkGreeting "くそ" ;
- GExcuse, GExcusePol = mkGreeting "すみません" ;
- GGoodDay, GHello = mkGreeting "こんにちは" ; ----
- GGoodEvening = mkGreeting "こんばんは" ;
- GGoodMorning = mkGreeting "おはようございます" ;
- GGoodNight = mkGreeting "おやすみなさい" ;
- GGoodbye = mkGreeting "さようなら" ;
- GHelp = mkGreeting "助けて" ;
- GHowAreYou = mkGreeting "お元気ですか" ;
- GLookOut = mkGreeting "危ない" ;
- GNiceToMeetYou = mkGreeting "初めまして" ;
- GPleaseGive = mkGreeting "ください" ;
- GPleaseGivePol = mkGreeting "お願いします" ;
- GSeeYouSoon = mkGreeting "またね" ;
- GSorry = mkGreeting "ごめんなさい" ;
- GSorryPol = mkGreeting "申し訳ありません" ;
- GThanks = mkGreeting "ありがとう" ;
- GTheCheck = mkGreeting "会計" ;
- GCongratulations = mkGreeting "お目出度うご座います";
- GHappyBirthday = mkGreeting "お誕生日おめでとうございます" ;
- GGoodLuck = mkGreeting "がんばってください" ;
- GWhatTime = mkGreeting "今何時ですか" ;
-}
diff --git a/examples/phrasebook/GreetingsLav.gf b/examples/phrasebook/GreetingsLav.gf
deleted file mode 100644
index fa80f6730..000000000
--- a/examples/phrasebook/GreetingsLav.gf
+++ /dev/null
@@ -1,33 +0,0 @@
---# -path=.:present
-concrete GreetingsLav of Greetings = SentencesLav [Greeting, mkGreeting] **
-open Prelude
-in {
-
- flags
- coding = utf8 ;
-
- lin
- GBye = mkGreeting "atā" ;
- GCheers = mkGreeting "priekā" ;
- GDamn = mkGreeting "sasodīts" ;
- GExcuse, GExcusePol = mkGreeting "atvainojiet" ;
- GGoodDay = mkGreeting "labdien" ;
- GGoodEvening = mkGreeting "labvakar" ;
- GGoodMorning = mkGreeting "labrīt" ;
- GGoodNight = mkGreeting "ar labunakti" ;
- GGoodbye = mkGreeting "visu labu" ;
- GHello = mkGreeting "sveiki" ;
- GHelp = mkGreeting "palīdziet" ;
- GHowAreYou = mkGreeting "kā klājas" ;
- GLookOut = mkGreeting "uzmanīgi" ;
- GNiceToMeetYou, GNiceToMeetYouPol = mkGreeting "prieks iepazīties" ;
- GPleaseGive, GPleaseGivePol = mkGreeting "lūdzu" ;
- GSeeYouSoon = mkGreeting "uz drīzu tikšanos" ;
- GSorry, GSorryPol = mkGreeting "piedodiet" ;
- GThanks = mkGreeting "paldies" ;
- GTheCheck = mkGreeting "rēķins" ;
- GCongratulations = mkGreeting "apsveicu" ;
- GHappyBirthday = mkGreeting "daudz laimes dzimšanas dienā" ;
- GGoodLuck = mkGreeting "veiksmīgi" ;
-
-}
diff --git a/examples/phrasebook/GreetingsNor.gf b/examples/phrasebook/GreetingsNor.gf
deleted file mode 100644
index 38c215c60..000000000
--- a/examples/phrasebook/GreetingsNor.gf
+++ /dev/null
@@ -1,28 +0,0 @@
---# -coding=latin1
-concrete GreetingsNor of Greetings = SentencesNor [Greeting,mkGreeting] ** open Prelude in {
-
-lin
- GBye = mkGreeting "ha det" ;
- GCheers = mkGreeting "skl" ; -- google translate !
- GDamn = mkGreeting "faen" ;
- GExcuse, GExcusePol = mkGreeting "unnskyld" ;
- GGoodDay = mkGreeting "god dag" ;
- GGoodEvening = mkGreeting "god kveld" ;
- GGoodMorning = mkGreeting "god morgen" ;
- GGoodNight = mkGreeting "god natt" ;
- GGoodbye = mkGreeting "ha det bra" ;
- GHello = mkGreeting "hei" ;
- GHelp = mkGreeting "hjelp" ;
- GHowAreYou = mkGreeting "hvordan gr det" ;
- GLookOut = mkGreeting "se opp" ; -- google translate !
- GNiceToMeetYou, GNiceToMeetYouPol = mkGreeting "hyggelig treffe deg" ;
- GPleaseGive, GPleaseGivePol = mkGreeting "vr s snill" ;
- GSeeYouSoon = mkGreeting "se deg snart" ; -- google translate !
- GSorry, GSorryPol = mkGreeting "beklager" ;
- GThanks = mkGreeting "takk" ;
- GTheCheck = mkGreeting "regningen" ;
- GCongratulations = mkGreeting "gratulerer";
- GHappyBirthday = mkGreeting "gratulerer med dagen" ;
- GGoodLuck = mkGreeting "lykke til" ;
-
-}
diff --git a/examples/phrasebook/GreetingsPes.gf b/examples/phrasebook/GreetingsPes.gf
deleted file mode 100644
index ba968c9f8..000000000
--- a/examples/phrasebook/GreetingsPes.gf
+++ /dev/null
@@ -1,29 +0,0 @@
-concrete GreetingsPes of Greetings = SentencesPes [mkGreeting] ** open (P=Prelude) in {
-
--- lincat
--- Greeting = {s : Str; lock_Text : {}} ;
-flags coding = utf8 ;
-lin
- GBye = P.ss ["خداحافظ"] ;
- GCheers = P.ss ["به سلامتی"] ;
- GDamn = P.ss "لعنتی" ;
- GExcuse, GExcusePol = P.ss ["ببخشید"] ;
- GGoodDay = P.ss ["روز به خیر"] ; ----
- GGoodEvening = P.ss ["عصر به خیر"] ;
- GGoodMorning = P.ss ["صبح به خیر"] ;
- GGoodNight = P.ss ["شب به خیر"] ;
- GGoodbye = P.ss ["خداحافظ"] ;
- GHello = P.ss "سلام" ;
- GHelp = P.ss "کمک" ;
- GHowAreYou = P.ss ["حال شما چطور است"] ;
- GLookOut = P.ss ["مراقب باشید"] ;
- GNiceToMeetYou, GNiceToMeetYouPol = P.ss ["از ملاقات شما خوشوقتم"] ;
- GPleaseGive, GPleaseGivePol = P.ss ["لطفاً بدهید"] ;
- GSeeYouSoon = P.ss ["به امید دیدار"] ;
- GSorry, GSorryPol = P.ss "متأسفم" ;
- GThanks = P.ss "ممنونم" ;
- GTheCheck = P.ss "چک" ;
- GCongratulations = P.ss ["تبریک میگم"];
- GHappyBirthday = P.ss ["تولدت مبارک"] ;
- GGoodLuck = P.ss ["موفق باشید"] ;
-}
diff --git a/examples/phrasebook/GreetingsPol.gf b/examples/phrasebook/GreetingsPol.gf
deleted file mode 100644
index 9c561c500..000000000
--- a/examples/phrasebook/GreetingsPol.gf
+++ /dev/null
@@ -1,27 +0,0 @@
-concrete GreetingsPol of Greetings = SentencesPol [Greeting,mkGreeting] ** open Prelude in {
-
-flags
- optimize =values ; coding =utf8 ;
-
-lin
- GBye = mkGreeting "cześć" ;
- GCheers = mkGreeting "na zdrowie" ;
- GDamn = mkGreeting "cholera" ; -- not polite
- GExcuse, GExcusePol, GSorry, GSorryPol = mkGreeting "przepraszam" ;
- GGoodDay, GGoodMorning = mkGreeting "dzień dobry" ;
- GGoodEvening = mkGreeting "dobry wieczór" ;
- GGoodNight = mkGreeting "dobranoc" ;
- GGoodbye = mkGreeting "do widzenia" ;
- GHello = mkGreeting "cześć" ;
- GHelp = mkGreeting "pomocy" ;
- GHowAreYou = mkGreeting "jak się masz" ;
- GLookOut = mkGreeting "uwaga" ;
- GNiceToMeetYou = mkGreeting "miło mi" ;
- GPleaseGive, GPleaseGivePol = mkGreeting "poproszę" ;
- GSeeYouSoon = mkGreeting "do zobaczenia" ;
- GThanks = mkGreeting "dziękuję" ;
- GTheCheck = mkGreeting "rachunek" ;
- GCongratulations = mkGreeting "gratulacje";
- GHappyBirthday = mkGreeting "wszystkiego najlepszego z okazji urodzin" ;
- GGoodLuck = mkGreeting "powodzenia" ;
-}
diff --git a/examples/phrasebook/GreetingsRon.gf b/examples/phrasebook/GreetingsRon.gf
deleted file mode 100644
index 380e8dbc5..000000000
--- a/examples/phrasebook/GreetingsRon.gf
+++ /dev/null
@@ -1,31 +0,0 @@
-concrete GreetingsRon of Greetings = SentencesRon [Greeting,mkGreeting] ** open Prelude in {
-
-flags coding = utf8 ;
-
-lin
- GBye = mkGreeting "pa" ;
- GCheers = mkGreeting "noroc" ;
- GDamn = mkGreeting "ptiu" ;
- GExcuse = mkGreeting "pardon" ;
- GExcusePol = mkGreeting "mă scuzați" ;
- GGoodDay = mkGreeting "bună ziua" ;
- GGoodEvening = mkGreeting "bună seara" ;
- GGoodMorning = mkGreeting "bună dimineaţa" ;
- GGoodNight = mkGreeting "noapte bună" ;
- GGoodbye = mkGreeting "la revedere" ;
- GHello = mkGreeting "salut" ;
- GHelp = mkGreeting "ajutor" ;
- GHowAreYou = mkGreeting "ce faci" ;
- GLookOut = mkGreeting "atenţie" ;
- GNiceToMeetYou = mkGreeting "încântat" ;
- GPleaseGive = mkGreeting "te rog" ;
- GPleaseGivePol = mkGreeting "vă rog" ;
- GSeeYouSoon = mkGreeting "pe curând" ;
- GSorry, GSorryPol = mkGreeting "îmi pare rău" ;
- GThanks = mkGreeting "mulţumesc" ;
- GTheCheck = mkGreeting "nota de plată" ;
- GCongratulations = mkGreeting "felicitări";
- GHappyBirthday = mkGreeting "la mulți ani" ;
- GGoodLuck = mkGreeting "baftă" ;
-
-}
diff --git a/examples/phrasebook/GreetingsRus.gf b/examples/phrasebook/GreetingsRus.gf
deleted file mode 100644
index cb6f9a37a..000000000
--- a/examples/phrasebook/GreetingsRus.gf
+++ /dev/null
@@ -1,29 +0,0 @@
-concrete GreetingsRus of Greetings = open Prelude in {
-
-flags coding = utf8 ;
-
-lin
- GBye = ss "до свидания" ;
- GCheers = ss "ура" ;
- GDamn = ss "чёрт" ;
- GExcuse, GExcusePol = ss "извините" ;
- GGoodDay = ss "добрый день" ; ----
- GGoodEvening = ss "добрый вечер" ;
- GGoodMorning = ss "доброе утро" ;
- GGoodNight = ss "спокойной ночи" ;
- GGoodbye = ss "до свидания" ;
- GHello = ss "привет" ;
- GHelp = ss "помогите" ;
- GHowAreYou = ss "Как поживаете" ;
- GLookOut = ss "смотреть" ;
- GNiceToMeetYou, GNiceToMeetYouPol = ss "приятно познакомиться" ;
- GPleaseGive, GPleaseGivePol = ss "пожалуйста" ;
- GSeeYouSoon = ss "до скорой встречи" ;
- GSorry, GSorryPol = ss "Мне жаль" ;
- GThanks = ss "спасибо" ;
- GTheCheck = ss "проверить" ;
- GCongratulations = ss "поздравляю";
- GHappyBirthday = ss "с днем рождения" ;
- GGoodLuck = ss "желаю удачи" ;
-
-}
diff --git a/examples/phrasebook/GreetingsSnd.gf b/examples/phrasebook/GreetingsSnd.gf
deleted file mode 100644
index bc579d189..000000000
--- a/examples/phrasebook/GreetingsSnd.gf
+++ /dev/null
@@ -1,29 +0,0 @@
-concrete GreetingsSnd of Greetings = SentencesSnd [mkGreeting,Greeting] ** open (P=Prelude) in {
-
--- lincat
--- Greeting = {s : Str; lock_Text : {}} ;
-flags coding = utf8 ;
-lin
- GBye = P.ss "خدا حافظ" ;
- GCheers = P.ss "چيئرز" ;
- GDamn = P.ss "اف" ;
- GExcuse, GExcusePol = P.ss "معاف ڪجو" ;
- GGoodDay = P.ss "ڏينهن بخير" ; ----
- GGoodEvening = P.ss "شام بخير" ;
- GGoodMorning = P.ss "صبح بخير" ;
- GGoodNight = P.ss "رات بخير" ;
- GGoodbye = P.ss "خدا حافظ" ;
- GHello = P.ss "السلام عليڪم" ;
- GHelp = P.ss "مدد" ;
- GHowAreYou = P.ss "توهان ڪيئن آهيو" ;
- GLookOut = P.ss "سنڀالي" ;
- GNiceToMeetYou, GNiceToMeetYouPol = P.ss "توهان سان ملي ڪري سٺو لڳو" ;
- GPleaseGive, GPleaseGivePol = P.ss "مهرباني ڪريو" ;
- GSeeYouSoon = P.ss "موڪلاڻي ڪانهي" ;
- GSorry, GSorryPol = P.ss "معاف ڪجو" ;
- GThanks = P.ss "ٿورا" ;
- GTheCheck = P.ss "بل" ;
- GCongratulations = P.ss "مبارڪ هجي";
- GHappyBirthday = P.ss "جنم ڏينهن مبارڪ" ;
- GGoodLuck = P.ss "قسمت ڀلي هجي" ;
-}
diff --git a/examples/phrasebook/GreetingsSpa.gf b/examples/phrasebook/GreetingsSpa.gf
deleted file mode 100644
index d0b39abd9..000000000
--- a/examples/phrasebook/GreetingsSpa.gf
+++ /dev/null
@@ -1,31 +0,0 @@
-concrete GreetingsSpa of Greetings = SentencesSpa [Greeting,mkGreeting] ** open Prelude in {
-
-flags coding = utf8 ;
-
-lin
- GBye = mkGreeting "adiós" ;
- GCheers = mkGreeting "salud" ;
- GDamn = mkGreeting "joder" ;
- GExcuse = mkGreeting "perdón" ;
- GExcusePol = mkGreeting "perdone" ;
- GCongratulations = mkGreeting "felicitaciones" ;
- GGoodLuck = mkGreeting "buena suerte" ;
- GHappyBirthday = mkGreeting "feliz cumpleaños" ;
- GGoodMorning, GGoodDay = mkGreeting "buenos días" ;
- GGoodEvening = mkGreeting "buenas tardes" ;
- GGoodNight = mkGreeting "buenas noches" ;
- GGoodbye = mkGreeting "hasta luego" ;
- GHello = mkGreeting "hola" ;
- GHelp = mkGreeting "socorro" ;
- GHowAreYou = mkGreeting "cómo está¡" ; -- the polite singular "you"
- GLookOut = mkGreeting "atención" ;
- GNiceToMeetYou = mkGreeting "encantado de conocerle" ; -- the polite singular "you"
- GPleaseGive, GPleaseGivePol = mkGreeting "por favor" ;
- GSeeYouSoon = mkGreeting "nos vemos pronto" ;
- GSorry = mkGreeting "disculpa" ;
- GSorryPol = mkGreeting "disculpe" ;
- GThanks = mkGreeting "gracias" ;
- GTheCheck = mkGreeting "la cuenta" ;
- GWhatTime = mkGreeting "qué ora es" ;
-
-}
diff --git a/examples/phrasebook/GreetingsSwe.gf b/examples/phrasebook/GreetingsSwe.gf
deleted file mode 100644
index 63d576884..000000000
--- a/examples/phrasebook/GreetingsSwe.gf
+++ /dev/null
@@ -1,29 +0,0 @@
---# -coding=latin1
-concrete GreetingsSwe of Greetings = SentencesSwe [Greeting,mkGreeting] ** open Prelude in {
-
-lin
- GBye = mkGreeting "hej d" ;
- GCheers = mkGreeting "skl" ;
- GDamn = mkGreeting "fan" ;
- GExcuse, GExcusePol = mkGreeting "urskta" ;
- GGoodDay = mkGreeting "god dag" ;
- GGoodEvening = mkGreeting "god afton" ;
- GGoodMorning = mkGreeting "god morgon" ;
- GGoodNight = mkGreeting "god natt" ;
- GGoodbye = mkGreeting "hej d" ;
- GHello = mkGreeting "hej" ;
- GHelp = mkGreeting "hjlp" ;
- GHowAreYou = mkGreeting "hur str det till" ;
- GLookOut = mkGreeting "se upp" ;
- GNiceToMeetYou, GNiceToMeetYouPol = mkGreeting "trevligt att trffas" ;
- GPleaseGive, GPleaseGivePol = mkGreeting "var s god" ;
- GSeeYouSoon = mkGreeting "vi ses snart" ;
- GSorry, GSorryPol = mkGreeting "frlt" ;
- GThanks = mkGreeting "tack" ;
- GTheCheck = mkGreeting "notan" ;
- GCongratulations = mkGreeting "grattis";
- GHappyBirthday = mkGreeting "grattis p fdelsedagen" ;
- GGoodLuck = mkGreeting "lycka till" ;
- GWhatTime = mkGreeting "vad r klockan" | mkGreeting "hur mycket r klockan" ;
-
-}
diff --git a/examples/phrasebook/GreetingsTha.gf b/examples/phrasebook/GreetingsTha.gf
deleted file mode 100644
index 3463306d9..000000000
--- a/examples/phrasebook/GreetingsTha.gf
+++ /dev/null
@@ -1,35 +0,0 @@
-concrete GreetingsTha of Greetings =
- SentencesTha [Greeting,mkGreeting] **
- open ResTha, Prelude in {
-
--- สุขสันต์วันเกิด
-
-flags coding = utf8 ;
-
-lin
- GBye = mkGreeting (thword "ลา" "ก่อน") ;
- GCheers = mkGreeting (thword "ไช" "โย") ;
- GDamn = mkGreeting (thword "ชิบ" "หาย") ;
- GExcuse, GExcusePol = mkGreeting (thword "ขอ" "โทษ") ;
- GGoodDay = mkGreeting (thword "สวัส" "ดี") ;
- GGoodEvening = mkGreeting (thword "สวัส" "ดี") ;
- GGoodMorning = mkGreeting (thword "สวัส" "ดี") ;
- GGoodNight = mkGreeting (thword "รา" "ตรี" "สวัส" "ดิ์") ;
- GGoodbye = mkGreeting (thword "ลา" "ก่อน") ;
- GHello = mkGreeting (thword "สวัส" "ดี") ;
- GHelp = mkGreeting (thword "ช่วย" "ด้วย") ;
- GHowAreYou = mkGreeting (thword "สบาย" "ดี" "ไหม") ;
- GLookOut = mkGreeting (thword "ระ" "วัง") ; ---- google
- GNiceToMeetYou, GNiceToMeetYouPol =
- mkGreeting (thword "ยิน" "ดี" "ที่" "ได้" "รู้" "จัก") ;
- GPleaseGive, GPleaseGivePol = mkGreeting "นะ" ;
- GSeeYouSoon = mkGreeting (thword "เจอ" "กัน" "นะ") ;
- GSorry, GSorryPol = mkGreeting (thword "ขอ" "โทษ") ;
- GThanks = mkGreeting (thword "ขอบ" "คุณ") ;
- GTheCheck = mkGreeting (thword "เช็ค" "บิล") ;
- GCongratulations = mkGreeting (thword "ยิน" "ดี" "ด้วย") ;
- GHappyBirthday = mkGreeting (thword "สุข" "สันต์" "วัน" "เกิด") ;
- GGoodLuck = mkGreeting (thword "โชค" "ดี" "นะ") ;
-}
-
-
diff --git a/examples/phrasebook/GreetingsUrd.gf b/examples/phrasebook/GreetingsUrd.gf
deleted file mode 100644
index 1d004e2ca..000000000
--- a/examples/phrasebook/GreetingsUrd.gf
+++ /dev/null
@@ -1,29 +0,0 @@
-concrete GreetingsUrd of Greetings = SentencesUrd [mkGreeting,Greeting] ** open (P=Prelude) in {
-
--- lincat
--- Greeting = {s : Str; lock_Text : {}} ;
-flags coding = utf8 ;
-lin
- GBye = P.ss "خدا حافظ" ;
- GCheers = P.ss "چیرز" ;
- GDamn = P.ss "اف" ;
- GExcuse, GExcusePol = P.ss "معاف كیجیے گا" ;
- GGoodDay = P.ss "دن بخیر" ; ----
- GGoodEvening = P.ss "شام بخیر" ;
- GGoodMorning = P.ss "صبح بخیر" ;
- GGoodNight = P.ss "رات بخیر" ;
- GGoodbye = P.ss "خدا حافظ" ;
- GHello = P.ss "اسلام علیكم" ;
- GHelp = P.ss "مدد" ;
- GHowAreYou = P.ss "آپ كیسی ہو" ;
- GLookOut = P.ss "دیكھ كر" ;
- GNiceToMeetYou, GNiceToMeetYouPol = P.ss "آپ سے مل كر اچھا لگا" ;
- GPleaseGive, GPleaseGivePol = P.ss "مہربانی كر كے" ;
- GSeeYouSoon = P.ss "ملتے ہیں" ;
- GSorry, GSorryPol = P.ss "معاف كیجیے گا" ;
- GThanks = P.ss "شكریہ" ;
- GTheCheck = P.ss "بل" ;
- GCongratulations = P.ss "مبارك ہو";
- GHappyBirthday = P.ss "سالگرہ مبارك" ;
- GGoodLuck = P.ss "گڈ لك" ;
-}
diff --git a/examples/phrasebook/Implementation.html b/examples/phrasebook/Implementation.html
deleted file mode 100644
index ff2275979..000000000
--- a/examples/phrasebook/Implementation.html
+++ /dev/null
@@ -1,500 +0,0 @@
-
-
- Produced by
-gfdoc - a rudimentary GF document generator.
-(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
-
-
-
Implementation of MOLTO Phrasebook
-
- The functor for (mostly) common structures
-
- incomplete concrete SentencesI of Sentences = Numeral **
- open
- Syntax,
- Lexicon,
- Symbolic, -- for names as strings
- Prelude
- in {
- lincat
- Phrase = Text ;
- Sentence = S ;
- Question = QS ;
- Proposition = Cl ;
- Item = NP ;
- Kind = CN ;
- MassKind = CN ;
- Quality = AP ;
- Property = A ;
- Object = NP ;
- PrimObject = NP ;
- Place = NPPlace ; -- {name : NP ; at : Adv ; to : Adv} ;
- PlaceKind = CNPlace ; -- {name : CN ; at : Prep ; to : Prep} ;
- Currency = CN ;
- Price = NP ;
- Action = Cl ;
- Person = NPPerson ; -- {name : NP ; isPron : Bool ; poss : Quant} ;
- Nationality = NPNationality ; -- {lang : NP ; country : NP ; prop : A} ;
- Language = NP ;
- Citizenship = A ;
- Country = NP ;
- Day = NPDay ; -- {name : NP ; point : Adv ; habitual : Adv} ;
- Date = Adv ;
- Name = NP ;
- Number = Card ;
- ByTransport = Adv ;
- Transport = {name : CN ; by : Adv} ;
- Superlative = Det ;
- lin
- PSentence s = mkText s | lin Text (mkUtt s) ; -- optional '.'
- PQuestion s = mkText s | lin Text (mkUtt s) ; -- optional '?'
-
- PObject x = mkPhrase (mkUtt x) ;
- PKind x = mkPhrase (mkUtt x) ;
- PMassKind x = mkPhrase (mkUtt x) ;
- PQuality x = mkPhrase (mkUtt x) ;
- PNumber 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) ;
- PTransport t = mkPhrase (mkUtt t.name) ;
- PByTransport t = mkPhrase (mkUtt t) ;
-
- PYes = mkPhrase yes_Utt ;
- PNo = mkPhrase no_Utt ;
- PYesToNo = mkPhrase yes_Utt ;
-
- Is = mkCl ;
-
- SProp = mkS ;
- SPropNot = mkS negativePol ;
- QProp p = mkQS (mkQCl p) ;
-
- WherePlace place = mkQS (mkQCl where_IAdv place.name) ;
- WherePerson person = mkQS (mkQCl where_IAdv person.name) ;
-
- PropAction a = a ;
-
- AmountCurrency num curr = mkNP num curr ;
-
- ObjItem i = i ;
- ObjNumber n k = mkNP n k ;
- ObjIndef k = mkNP a_Quant k ;
- ObjPlural k = mkNP aPl_Det k ;
- ObjMass k = mkNP k ;
- ObjAndObj = mkNP and_Conj ;
- OneObj o = o ;
-
- This kind = mkNP this_Quant kind ;
- That kind = mkNP that_Quant kind ;
- These kind = mkNP this_Quant plNum kind ;
- Those kind = mkNP that_Quant plNum kind ;
- The kind = mkNP the_Quant kind ;
- Thes kind = mkNP the_Quant plNum kind ;
- ThisMass kind = mkNP this_Quant kind ;
- ThatMass kind = mkNP that_Quant kind ;
- TheMass kind = mkNP the_Quant kind ;
-
- SuchKind quality kind = mkCN quality kind ;
- SuchMassKind quality kind = mkCN quality kind ;
- Very property = mkAP very_AdA (mkAP property) ;
- Too property = mkAP too_AdA (mkAP property) ;
- PropQuality property = mkAP property ;
-
- ThePlace kind = let dd = if_then_else Det kind.isPl thePl_Det theSg_Det
- in placeNP dd kind ;
- APlace kind = let dd = if_then_else Det kind.isPl thePl_Det theSg_Det
- in placeNP dd kind ;
-
- 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 = mkQuant he_Pron} ; -- poss not used
-
-
-
- NameNN = symb "NN" ;
-
- NNumeral n = mkCard <lin Numeral n : Numeral> ;
-
- SHave p obj = mkS (mkCl p.name have_V2 obj) ;
- SHaveNo p k = mkS negativePol (mkCl p.name have_V2 (mkNP aPl_Det k)) ;
- SHaveNoMass p m = mkS negativePol (mkCl p.name have_V2 (mkNP m)) ;
- QDoHave p obj = mkQS (mkQCl (mkCl p.name have_V2 obj)) ;
-
- AHaveCurr p curr = mkCl p.name have_V2 (mkNP aPl_Det curr) ;
- ACitizen p n = mkCl p.name n ;
- ABePlace p place = mkCl p.name place.at ;
- ByTransp t = t.by ;
-
- oper
-
-
-These operations are used internally in Sentences.
-
- mkPhrase : Utt -> Text = \u -> lin Text u ; -- no punctuation
-
- mkPerson : Pron -> {name : NP ; isPron : Bool ; poss : Quant} = \p ->
- {name = mkNP p ; isPron = True ; poss = mkQuant p} ;
-
-
-These are used in Words for each language.
-
- NPNationality : Type = {lang : NP ; country : NP ; prop : A} ;
-
- mkNPNationality : NP -> NP -> A -> NPNationality = \la,co,pro ->
- {lang = la ;
- country = co ;
- prop = pro
- } ;
-
- NPDay : Type = {name : NP ; point : Adv ; habitual : Adv} ;
-
- mkNPDay : NP -> Adv -> Adv -> NPDay = \d,p,h ->
- {name = d ;
- point = p ;
- habitual = h
- } ;
-
- NPPlace : Type = {name : NP ; at : Adv ; to : Adv} ;
- CNPlace : Type = {name : CN ; at : Prep ; to : Prep; isPl : Bool} ;
-
- mkCNPlace : CN -> Prep -> Prep -> CNPlace = \p,i,t -> {
- name = p ;
- at = i ;
- to = t ;
- isPl = False
- } ;
-
- mkCNPlacePl : CN -> Prep -> Prep -> CNPlace = \p,i,t -> {
- name = p ;
- at = i ;
- to = t ;
- isPl = True
- } ;
-
- placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
- let name : NP = mkNP det kind.name in {
- name = name ;
- at = mkAdv kind.at name ;
- to = mkAdv kind.to name
- } ;
-
- NPPerson : Type = {name : NP ; isPron : Bool ; poss : Quant} ;
-
- relativePerson : GNumber -> CN -> (Num -> NP -> CN -> NP) -> NPPerson -> NPPerson =
- \n,x,f,p ->
- let num = if_then_else Num n plNum sgNum in {
- name = case p.isPron of {
- True => mkNP p.poss num x ;
- _ => f num p.name x
- } ;
- isPron = False ;
- poss = mkQuant he_Pron -- not used because not pron
- } ;
-
- GNumber : PType = Bool ;
- sing = False ; plur = True ;
-
-
-for languages without GenNP, use the wife of p
-
- mkRelative : Bool -> CN -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n x
- (\a,b,c -> mkNP (mkNP the_Quant a c) (Syntax.mkAdv possess_Prep b)) p ;
-
-
-for languages with GenNP, use p's wife
-relativePerson n x (\a,b,c -> mkNP (GenNP b) a c) p ;
-
- }
-
-
- Implementations of Words, with English as example
-
- concrete WordsEng of Words = SentencesEng **
- open
- SyntaxEng,
- ParadigmsEng,
- (L = LexiconEng),
- (P = ParadigmsEng),
- IrregEng,
- ExtraEng,
- Prelude in {
- lin
-
-
-Kinds; many of them are in the resource lexicon, others can be built by mkN .
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "cheese") ;
- Chicken = mkCN (mkN "chicken") ;
- Coffee = mkCN (mkN "coffee") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "meat") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "pizza") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "tea") ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
-
-Properties; many of them are in the resource lexicon, others can be built by mkA .
-
- Bad = L.bad_A ;
- Boring = mkA "boring" ;
- Cheap = mkA "cheap" ;
- Cold = L.cold_A ;
- Delicious = mkA "delicious" ;
- Expensive = mkA "expensive" ;
- Fresh = mkA "fresh" ;
- Good = L.good_A ;
- Suspect = mkA "suspect" ;
- Warm = L.warm_A ;
-
-
-Places require different prepositions to express location; in some languages
-also the directional preposition varies, but in English we use to , as
-defined by mkPlace .
-
- Airport = mkPlace "airport" "at" ;
- AmusementPark = mkCompoundPlace "amusement" "park" "at" ;
- Bank = mkPlace "bank" "at" ;
- Bar = mkPlace "bar" "in" ;
- Cafeteria = mkPlace "canteen" "in" ;
- Center = mkPlace "center" "in" ;
- Cinema = mkPlace "cinema" "at" ;
- Church = mkPlace "church" "in" ;
- Disco = mkPlace "disco" "at" ;
- Hospital = mkPlace "hospital" "in" ;
- Hotel = mkPlace "hotel" "in" ;
- Museum = mkPlace "museum" "at" ;
- Park = mkPlace "park" "in" ;
- Parking = mkCompoundPlace "car" "park" "in" ;
- Pharmacy = mkPlace "pharmacy" "at" ;
- PostOffice = mkCompoundPlace "post" "office" "at" ;
- Pub = mkPlace "pub" "at" ;
- Restaurant = mkPlace "restaurant" "in" ;
- School = mkPlace "school" "at" ;
- Shop = mkPlace "shop" "at" ;
- Station = mkPlace "station" "at" ;
- Supermarket = mkPlace "supermarket" "at" ;
- Theatre = mkPlace "theatre" "at" ;
- Toilet = mkPlace "toilet" "in" ;
- University = mkPlace "university" "at" ;
- Zoo = mkPlace "zoo" "at" ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant")) in_Prep to_Prep ;
-
-
-Currencies; crown is ambiguous between Danish and Swedish crowns.
-
- DanishCrown = mkCN (mkA "Danish") (mkN "crown") | mkCN (mkN "crown") ;
- Dollar = mkCN (mkN "dollar") ;
- Euro = mkCN (mkN "euro" "euros") ; -- to prevent euroes
- Lei = mkCN (mkN "leu" "lei") ;
- Leva = mkCN (mkN "lev") ;
- NorwegianCrown = mkCN (mkA "Norwegian") (mkN "crown") | mkCN (mkN "crown") ;
- Pound = mkCN (mkN "pound") ;
- Rouble = mkCN (mkN "rouble") ;
- SwedishCrown = mkCN (mkA "Swedish") (mkN "crown") | mkCN (mkN "crown") ;
- Zloty = mkCN (mkN "zloty" "zloty") ;
-
-
-Nationalities
-
- Belgian = mkA "Belgian" ;
- Belgium = mkNP (mkPN "Belgium") ;
- Bulgarian = mkNat "Bulgarian" "Bulgaria" ;
- Catalan = mkNPNationality (mkNP (mkPN "Catalan")) (mkNP (mkPN "Catalonia")) (mkA "Catalonian") ;
- Danish = mkNat "Danish" "Denmark" ;
- Dutch = mkNPNationality (mkNP (mkPN "Dutch")) (mkNP the_Quant (mkN "Netherlands")) (mkA "Dutch") ;
- English = mkNat "English" "England" ;
- Finnish = mkNat "Finnish" "Finland" ;
- Flemish = mkNP (mkPN "Flemish") ;
- French = mkNat "French" "France" ;
- German = mkNat "German" "Germany" ;
- Italian = mkNat "Italian" "Italy" ;
- Norwegian = mkNat "Norwegian" "Norway" ;
- Polish = mkNat "Polish" "Poland" ;
- Romanian = mkNat "Romanian" "Romania" ;
- Russian = mkNat "Russian" "Russia" ;
- Spanish = mkNat "Spanish" "Spain" ;
- Swedish = mkNat "Swedish" "Sweden" ;
-
-
-Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "bus") ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "ferry") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "subway") ;
- Taxi = mkTransport (mkN "taxi") ;
- Train = mkTransport (mkN "train") ;
- Tram = mkTransport (mkN "tram") ;
-
- ByFoot = P.mkAdv "by foot" ;
-
-
-Actions: the predication patterns are very often language-dependent.
-
- AHasAge p num = mkCl p.name (mkNP (mkNP num L.year_N) (ParadigmsEng.mkAdv "old"));
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "room")) (SyntaxEng.mkAdv for_Prep (mkNP num (mkN "person")))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "table")) (SyntaxEng.mkAdv for_Prep (mkNP num (mkN "person")))) ;
- AHasName p name = mkCl (nameOf p) name ;
- AHungry p = mkCl p.name (mkA "hungry") ;
- AIll p = mkCl p.name (mkA "ill") ;
- AKnow p = mkCl p.name IrregEng.know_V ;
- ALike p item = mkCl p.name (mkV2 (mkV "like")) item ;
- ALive p co = mkCl p.name (mkVP (mkVP (mkV "live")) (SyntaxEng.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (mkV2 (mkV "love")) q.name ;
- AMarried p = mkCl p.name (mkA "married") ;
- AReady p = mkCl p.name (mkA "ready") ;
- AScared p = mkCl p.name (mkA "scared") ;
- ASpeak p lang = mkCl p.name (mkV2 IrregEng.speak_V) lang ;
- AThirsty p = mkCl p.name (mkA "thirsty") ;
- ATired p = mkCl p.name (mkA "tired") ;
- AUnderstand p = mkCl p.name IrregEng.understand_V ;
- AWant p obj = mkCl p.name (mkV2 (mkV "want")) obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP IrregEng.go_V) place.to) ;
-
-
-miscellaneous
-
- QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
- QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item IrregEng.cost_V)) ;
- ItCost item price = mkCl item (mkV2 IrregEng.cost_V) price ;
-
- 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) ;
-
-
-Building phrases from strings is complicated: the solution is to use
-mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("see you")))
- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
-
-
-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
-the wife of my son for non-pronouns.
-
- Wife = xOf sing (mkN "wife") ;
- Husband = xOf sing (mkN "husband") ;
- Son = xOf sing (mkN "son") ;
- Daughter = xOf sing (mkN "daughter") ;
- Children = xOf plur L.child_N ;
-
-
-week days
-
- Monday = mkDay "Monday" ;
- Tuesday = mkDay "Tuesday" ;
- Wednesday = mkDay "Wednesday" ;
- Thursday = mkDay "Thursday" ;
- Friday = mkDay "Friday" ;
- Saturday = mkDay "Saturday" ;
- Sunday = mkDay "Sunday" ;
-
- Tomorrow = P.mkAdv "tomorrow" ;
-
-
-modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "cheap") ;
- TheMostExpensive = mkSuperl (mkA "expensive") ;
- TheMostPopular = mkSuperl (mkA "popular") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
-transports
-
- HowFar place = mkQS (mkQCl far_IAdv place.name) ;
- HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP y.name (SyntaxEng.mkAdv from_Prep x.name))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxEng.mkAdv from_Prep x.name)) t)) ;
- HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP y.name t)) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
-auxiliaries
-
- oper
-
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day = mkNP (mkPN d) in
- mkNPDay day (SyntaxEng.mkAdv on_Prep day)
- (SyntaxEng.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
-
- mkCompoundPlace : Str -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \comp, p, i ->
- mkCNPlace (mkCN (P.mkN comp (mkN p))) (P.mkPrep i) to_Prep ;
-
- mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN (mkN p)) (P.mkPrep i) to_Prep ;
-
- open_Adv = P.mkAdv "open" ;
- closed_Adv = P.mkAdv "closed" ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
-
- nameOf : NPPerson -> NP = \p -> (xOf sing (mkN "name") p).name ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxEng.mkAdv by8means_Prep (mkNP n)
- } ;
-
- mkSuperl : A -> Det = \a -> SyntaxEng.mkDet the_Art (SyntaxEng.mkOrd a) ;
-
- far_IAdv = ExtraEng.IAdvAdv (ss "far") ;
-
- }
-
-
-
-
diff --git a/examples/phrasebook/Makefile b/examples/phrasebook/Makefile
deleted file mode 100644
index 01b14c748..000000000
--- a/examples/phrasebook/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-compile = runghc Compile
-
-forApp:
- $(compile) -opt Bul Cat Chi Dut Eng Est Fin Fre Ger Hin Ita Jpn Rus Spa Swe Tha Urd
- make gfos
-
-.PHONY: gfos
-
-Chi:
- $(compile) Chi
-
-all: demo missing gfos
-
-gfos:
- mkdir -p gfos && cp -p *.gfo gfos
-
-thaidroid: #thaiscript
- cp -p Phrasebook.pgf FullPhrasebook.pgf
- $(compile) -opt Eng Swe Tha Thb DisambPhrasebookEng
- $(compile) -link Eng Fin Swe Tha Thb DisambPhrasebookEng
- mv Phrasebook.pgf Thaidroid.pgf
- mv FullPhrasebook.pgf Phrasebook.pgf
-
-thaiscript:
- runghc ../../lib/src/thai/ThaiScript.hs
-
-demo: compdemo fin linkdemo
-
-compdemo:
- $(compile) -opt Bul Cat Chi Dan Dut Eng Fre Ger Hin Ita Jpn Lav Nor Pes Pol Ron Rus Spa Swe Tha Urd DisambPhrasebookEng
-
-linkdemo:
- $(compile) -link Eng Bul Cat Chi Dan Dut Fin Fre Ger Hin Ita Jpn Lav Nor Pes Pol Ron Rus Spa Swe Tha Urd DisambPhrasebookEng
-
-linkdemothb:
- $(compile) -link Eng Bul Cat Chi Dan Dut Fin Fre Ger Ita Jpn Nor Pol Ron Rus Spa Swe Tha Thb Urd DisambPhrasebookEng
-
-#separate, because slow...
-fin:
- $(compile) -opt Fin
-
-missing:
- echo "pg -missing | wf -file=missing.txt" | gf -run Phrasebook.pgf
-
-doc:
- cat Sentences.gf Words.gf >Ontology.gf
- gfdoc Ontology.gf
- rm -f Ontology.gf
- cat SentencesI.gf WordsEng.gf >Implementation.gf
- gfdoc Implementation.gf
- txt2tags -thtml --toc doc-phrasebook.txt
- txt2tags -thtml help-phrasebook.txt
- rm -f Ontology.gf Implementation.gf
-
-clean:
- rm *.gfo *.pgf
-
-upload:: Phrasebook.pgf
- rsync -avb Phrasebook.pgf www.grammaticalframework.org:/usr/local/www/GF-demos/www/grammars
diff --git a/examples/phrasebook/Makefile2 b/examples/phrasebook/Makefile2
deleted file mode 100644
index 8d0eae4a9..000000000
--- a/examples/phrasebook/Makefile2
+++ /dev/null
@@ -1,38 +0,0 @@
-
-# Use 'make -j' to compile everything in parallel
-# Use e.g. 'make -j4' to compile at most 4 things in parallel
-
-S=-s
-GFOPT=gf -make $S -optimize-pgf
-
-all: Phrasebook.pgf
-
-Phrasebook.pgf: PhrasebookFre.pgf PhrasebookGer.pgf PhrasebookFin.pgf PhrasebookEng.pgf PhrasebookBul.pgf PhrasebookCat.pgf PhrasebookChi.pgf PhrasebookDan.pgf PhrasebookDut.pgf PhrasebookHin.pgf PhrasebookIta.pgf PhrasebookJpn.pgf PhrasebookLav.pgf PhrasebookNor.pgf PhrasebookPes.pgf PhrasebookPol.pgf PhrasebookRon.pgf PhrasebookRus.pgf PhrasebookSnd.pgf PhrasebookSpa.pgf PhrasebookSwe.pgf PhrasebookTha.pgf PhrasebookUrd.pgf DisambPhrasebookEng.pgf
- gf -make $^
-
-PhrasebookEng.pgf:: ; $(GFOPT) -name=PhrasebookEng PhrasebookEng.gf
-PhrasebookBul.pgf:: ; $(GFOPT) -name=PhrasebookBul PhrasebookBul.gf
-PhrasebookCat.pgf:: ; $(GFOPT) -name=PhrasebookCat PhrasebookCat.gf
-PhrasebookChi.pgf:: ; $(GFOPT) -name=PhrasebookChi PhrasebookChi.gf
-PhrasebookDan.pgf:: ; $(GFOPT) -name=PhrasebookDan PhrasebookDan.gf
-PhrasebookDut.pgf:: ; $(GFOPT) -name=PhrasebookDut PhrasebookDut.gf
-PhrasebookFin.pgf:: ; $(GFOPT) -name=PhrasebookFin PhrasebookFin.gf
-PhrasebookFre.pgf:: ; $(GFOPT) -name=PhrasebookFre PhrasebookFre.gf
-PhrasebookGer.pgf:: ; $(GFOPT) -name=PhrasebookGer PhrasebookGer.gf
-PhrasebookHin.pgf:: ; $(GFOPT) -name=PhrasebookHin PhrasebookHin.gf
-PhrasebookIta.pgf:: ; $(GFOPT) -name=PhrasebookIta PhrasebookIta.gf
-PhrasebookJpn.pgf:: ; $(GFOPT) -name=PhrasebookJpn PhrasebookJpn.gf
-PhrasebookLav.pgf:: ; $(GFOPT) -name=PhrasebookLav PhrasebookLav.gf
-PhrasebookNor.pgf:: ; $(GFOPT) -name=PhrasebookNor PhrasebookNor.gf
-PhrasebookPes.pgf:: ; $(GFOPT) -name=PhrasebookPes PhrasebookPes.gf
-PhrasebookPol.pgf:: ; $(GFOPT) -name=PhrasebookPol PhrasebookPol.gf
-PhrasebookRon.pgf:: ; $(GFOPT) -name=PhrasebookRon PhrasebookRon.gf
-PhrasebookRus.pgf:: ; $(GFOPT) -name=PhrasebookRus PhrasebookRus.gf
-PhrasebookSnd.pgf:: ; $(GFOPT) -name=PhrasebookSnd PhrasebookSnd.gf
-PhrasebookSpa.pgf:: ; $(GFOPT) -name=PhrasebookSpa PhrasebookSpa.gf
-PhrasebookSwe.pgf:: ; $(GFOPT) -name=PhrasebookSwe PhrasebookSwe.gf
-PhrasebookTha.pgf:: ; $(GFOPT) -name=PhrasebookTha PhrasebookTha.gf
-PhrasebookUrd.pgf:: ; $(GFOPT) -name=PhrasebookUrd PhrasebookUrd.gf
-
-DisambPhrasebookEng.pgf::
- $(GFOPT) -name=DisambPhrasebookEng DisambPhrasebookEng.gf
diff --git a/examples/phrasebook/Ontology.html b/examples/phrasebook/Ontology.html
deleted file mode 100644
index 48059049a..000000000
--- a/examples/phrasebook/Ontology.html
+++ /dev/null
@@ -1,372 +0,0 @@
-
-
- Produced by
-gfdoc - a rudimentary GF document generator.
-(c) Aarne Ranta (aarne@cs.chalmers.se) 2002 under GNU GPL.
-
-
-
The Ontology of the Phrasebook
-
- Syntactic Structures of the Phrasebook
-This module contains phrases that can be defined by a functor over the
-resource grammar API. The phrases that are likely to have different implementations
-are in the module Words. But the distinction is not quite sharp; thus it may happen
-that the functor instantiations make exceptions.
-
- abstract Sentences = Numeral ** {
-
-
-The ontology of the phrasebook is defined by the following types. The commented ones
-are defined in other modules.
-
- cat
- Phrase ; -- complete phrase, the unit of translation e.g. "Where are you?"
- Sentence ; -- declarative sentence e.g. "I am in the bar"
- Question ; -- question, either yes/no or wh e.g. "where are you"
- -- Greeting ; -- idiomatic phrase, not inflected, e.g. "hello"
- Proposition ; -- can be turned into sentence or question e.g. "this pizza is good"
- Object ; -- the object of wanting, ordering, etc e.g. "three pizzas and a beer"
- PrimObject ; -- single object of wanting, ordering, etc e.g. "three pizzas"
- Item ; -- a single entity e.g. "this pizza"
- Kind ; -- a type of an item e.g. "pizza"
- MassKind ; -- a type mass (uncountable) e.g. "water"
- Quality ; -- qualification of an item, can be complex e.g. "very good"
- Property ; -- basic property of an item, one word e.g. "good"
- Place ; -- location e.g. "the bar"
- PlaceKind ; -- type of location e.g. "bar"
- Currency ; -- currency unit e.g. "leu"
- Price ; -- number of currency units e.g. "eleven leu"
- Person ; -- agent wanting or doing something e.g. "you"
- Action ; -- proposition about a Person e.g. "you are here"
- Nationality ; -- complex of language, property, country e.g. "Swedish, Sweden"
- Language ; -- language (can be without nationality) e.g. "Flemish"
- Citizenship ; -- property (can be without language) e.g. "Belgian"
- Country ; -- country (can be without language) e.g. "Belgium"
- Day ; -- weekday type e.g. "Friday"
- Date ; -- definite date e.g. "on Friday"
- Name ; -- name of person e.g. "NN"
- Number ; -- number expression 1 .. 999,999 e.g. "twenty"
- Transport ; -- transportation device e.g. "car"
- ByTransport ; -- mean of transportation e.g. "by tram"
- Superlative ; -- superlative modifiers of places e.g. "the best restaurant"
-
-
-Many of the categories are accessible as Phrases, i.e. as translation units.
-
- fun
- PSentence : Sentence -> Phrase ;
- PQuestion : Question -> Phrase ;
-
- PObject : Object -> Phrase ;
- PKind : Kind -> Phrase ;
- PMassKind : MassKind -> Phrase ;
- PQuality : Quality -> Phrase ;
- PNumber : Number -> Phrase ;
- PPlace : Place -> Phrase ;
- PPlaceKind : PlaceKind -> Phrase ;
- PCurrency : Currency -> Phrase ;
- PPrice : Price -> Phrase ;
- PLanguage : Language -> Phrase ;
- PCitizenship : Citizenship -> Phrase ;
- PCountry : Country -> Phrase ;
- PDay : Day -> Phrase ;
- PByTransport : ByTransport -> Phrase ;
- PTransport : Transport -> Phrase ;
-
- PYes, PNo, PYesToNo : Phrase ; -- yes, no, si/doch (pos. answer to neg. question)
-
-
-This is the way to build propositions about inanimate items.
-
- Is : Item -> Quality -> Proposition ; -- this pizza is good
-
-
-To use propositions on higher levels.
-
- SProp : Proposition -> Sentence ; -- this pizza is good
- SPropNot : Proposition -> Sentence ; -- this pizza isn't good
- QProp : Proposition -> Question ; -- is this pizza good
-
- WherePlace : Place -> Question ; -- where is the bar
- WherePerson : Person -> Question ; -- where are you
-
-
-This is the way to build propositions about persons.
-
- PropAction : Action -> Proposition ; -- (you (are|aren't) | are you) Swedish
-
-
-Here are some general syntactic constructions.
-
- ObjItem : Item -> PrimObject ; -- this pizza
- ObjNumber : Number -> Kind -> PrimObject ; -- five pizzas
- ObjIndef : Kind -> PrimObject ; -- a pizza
- ObjPlural : Kind -> PrimObject ; -- pizzas
- ObjMass : MassKind -> PrimObject ; -- water
- ObjAndObj : PrimObject -> Object -> Object ; -- this pizza and a beer
- OneObj : PrimObject -> Object ; -- this pizza
-
- SuchKind : Quality -> Kind -> Kind ; -- Italian pizza
- SuchMassKind : Quality -> MassKind -> MassKind ; -- Italian water
- Very : Property -> Quality ; -- very Italian
- Too : Property -> Quality ; -- too Italian
- PropQuality : Property -> Quality ; -- Italian
-
-
-Determiners.
-
- This, That, These, Those : Kind -> Item ; -- this pizza,...,those pizzas
- The, Thes : Kind -> Item ; -- the pizza, the pizzas
- ThisMass, ThatMass, TheMass : MassKind -> Item ; -- this/that/the water
-
- AmountCurrency : Number -> Currency -> Price ; -- five euros
-
- ThePlace : PlaceKind -> Place ; -- the bar
- APlace : PlaceKind -> Place ; -- a bar
-
- IMale, IFemale, -- I, said by man/woman (affects agreement)
- YouFamMale, YouFamFemale, -- familiar you, said to man/woman (affects agreement)
- YouPolMale, YouPolFemale : Person ; -- polite you, said to man/woman (affects agreement)
-
- LangNat : Nationality -> Language ; -- Swedish
- CitiNat : Nationality -> Citizenship ; -- Swedish
- CountryNat : Nationality -> Country ; -- Sweden
- PropCit : Citizenship -> Property ; -- Swedish
-
- OnDay : Day -> Date ; -- on Friday
- Today : Date ; -- today
-
- PersonName : Name -> Person ; -- person referred by name
- NameNN : Name ; -- the name "NN"
-
-
-
- NNumeral : Numeral -> Number ; -- numeral in words, e.g. "twenty"
-
-
-Actions are typically language-dependent, not only lexically but also
-structurally. However, these ones are mostly functorial.
-
- SHave : Person -> Object -> Sentence ; -- you have beer
- SHaveNo : Person -> Kind -> Sentence ; -- you have no apples
- SHaveNoMass : Person -> MassKind -> Sentence ; -- you have no beer
- QDoHave : Person -> Object -> Question ; -- do you have beer
-
- AHaveCurr : Person -> Currency -> Action ; -- you have dollars
- ACitizen : Person -> Citizenship -> Action ; -- you are Swedish
- ABePlace : Person -> Place -> Action ; -- you are in the bar
-
- ByTransp : Transport -> ByTransport ; -- by bus
-
- }
-
-
- Words and idiomatic phrases of the Phrasebook
-
- abstract Words = Sentences ** {
-
- fun
-
-
-kinds of items (so far mostly food stuff)
-
- Apple : Kind ;
- Beer : MassKind ;
- Bread : MassKind ;
- Cheese : MassKind ;
- Chicken : MassKind ;
- Coffee : MassKind ;
- Fish : MassKind ;
- Meat : MassKind ;
- Milk : MassKind ;
- Pizza : Kind ;
- Salt : MassKind ;
- Tea : MassKind ;
- Water : MassKind ;
- Wine : MassKind ;
-
-
-properties of kinds (so far mostly of food)
-
- Bad : Property ;
- Boring : Property ;
- Cheap : Property ;
- Cold : Property ;
- Delicious : Property ;
- Expensive : Property ;
- Fresh : Property ;
- Good : Property ;
- Suspect : Property ;
- Warm : Property ;
-
-
-kinds of places
-
- Airport : PlaceKind ;
- AmusementPark : PlaceKind ;
- Bank : PlaceKind ;
- Bar : PlaceKind ;
- Cafeteria : PlaceKind ;
- Center : PlaceKind ;
- Cinema : PlaceKind ;
- Church : PlaceKind ;
- Disco : PlaceKind ;
- Hospital : PlaceKind ;
- Hotel : PlaceKind ;
- Museum : PlaceKind ;
- Park : PlaceKind ;
- Parking : PlaceKind ;
- Pharmacy : PlaceKind ;
- PostOffice : PlaceKind ;
- Pub : PlaceKind ;
- Restaurant : PlaceKind ;
- School : PlaceKind ;
- Shop : PlaceKind ;
- Station : PlaceKind ;
- Supermarket : PlaceKind ;
- Theatre : PlaceKind ;
- Toilet : PlaceKind ;
- University : PlaceKind ;
- Zoo : PlaceKind ;
-
- CitRestaurant : Citizenship -> PlaceKind ;
-
-
-currency units
-
- DanishCrown : Currency ;
- Dollar : Currency ;
- Euro : Currency ; -- Germany, France, Italy, Finland, Spain, The Netherlands
- Lei : Currency ; -- Romania
- Leva : Currency ; -- Bulgaria
- NorwegianCrown : Currency ;
- Pound : Currency ; -- UK
- Rouble : Currency ; -- Russia
- SwedishCrown : Currency ;
- Zloty : Currency ; -- Poland
-
-
-nationalities, countries, languages, citizenships
-
- Belgian : Citizenship ;
- Belgium : Country ;
- Bulgarian : Nationality ;
- Catalan : Nationality ;
- Danish : Nationality ;
- Dutch : Nationality ;
- English : Nationality ;
- Finnish : Nationality ;
- Flemish : Language ;
- French : Nationality ;
- German : Nationality ;
- Italian : Nationality ;
- Norwegian : Nationality ;
- Polish : Nationality ;
- Romanian : Nationality ;
- Russian : Nationality ;
- Spanish : Nationality ;
- Swedish : Nationality ;
-
-
-means of transportation
-
- Bike : Transport ;
- Bus : Transport ;
- Car : Transport ;
- Ferry : Transport ;
- Plane : Transport ;
- Subway : Transport ;
- Taxi : Transport ;
- Train : Transport ;
- Tram : Transport ;
-
- ByFoot : ByTransport ;
-
-
-Actions (which can be expressed by different structures in different languages).
-Notice that also negations and questions can be formed from these.
-
- AHasAge : Person -> Number -> Action ; -- I am seventy years
- AHasChildren: Person -> Number -> Action ; -- I have six children
- AHasName : Person -> Name -> Action ; -- my name is Bond
- AHasRoom : Person -> Number -> Action ; -- you have a room for five persons
- AHasTable : Person -> Number -> Action ; -- you have a table for five persons
- AHungry : Person -> Action ; -- I am hungry
- AIll : Person -> Action ; -- I am ill
- AKnow : Person -> Action ; -- I (don't) know
- ALike : Person -> Item -> Action ; -- I like this pizza
- ALive : Person -> Country -> Action ; -- I live in Sweden
- ALove : Person -> Person -> Action ; -- I love you
- AMarried : Person -> Action ; -- I am married
- AReady : Person -> Action ; -- I am ready
- AScared : Person -> Action ; -- I am scared
- ASpeak : Person -> Language -> Action ; -- I speak Finnish
- AThirsty : Person -> Action ; -- I am thirsty
- ATired : Person -> Action ; -- I am tired
- AUnderstand : Person -> Action ; -- I (don't) understand
- AWant : Person -> Object -> Action ; -- I want two apples
- AWantGo : Person -> Place -> Action ; -- I want to go to the hospital
-
-
-Miscellaneous phrases. Notice that also negations and questions can be formed from
-propositions.
-
- QWhatAge : Person -> Question ; -- how old are you
- QWhatName : Person -> Question ; -- what is your name
- HowMuchCost : Item -> Question ; -- how much does the pizza cost
- ItCost : Item -> Price -> Proposition ; -- the pizza costs five euros
-
- PropOpen : Place -> Proposition ; -- the museum is open
- PropClosed : Place -> Proposition ; -- the museum is closed
- PropOpenDate : Place -> Date -> Proposition ; -- the museum is open today
- PropClosedDate : Place -> Date -> Proposition ; -- the museum is closed today
- PropOpenDay : Place -> Day -> Proposition ; -- the museum is open on Mondays
- PropClosedDay : Place -> Day -> Proposition ; -- the museum is closed on Mondays
-
- PSeeYouPlaceDate : Place -> Date -> Phrase ; -- see you in the bar on Monday
- PSeeYouPlace : Place -> Phrase ; -- see you in the bar
- PSeeYouDate : Date -> Phrase ; -- see you on Monday
-
-
-family relations
-
- Wife, Husband : Person -> Person ; -- my wife, your husband
- Son, Daughter : Person -> Person ; -- my son, your husband
- Children : Person -> Person ; -- my children
-
-
-week days
-
- Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday : Day ;
-
- Tomorrow : Date ;
-
-
-transports
-
- HowFar : Place -> Question ; -- how far is the zoo ?
- HowFarFrom : Place -> Place -> Question ; -- how far is the center from the hotel ?
- HowFarFromBy : Place -> Place -> ByTransport -> Question ;
- -- how far is the airport from the hotel by taxi ?
- HowFarBy : Place -> ByTransport -> Question ; -- how far is the museum by bus ?
-
- WhichTranspPlace : Transport -> Place -> Question ; -- which bus goes to the hotel
- IsTranspPlace : Transport -> Place -> Question ; -- is there a metro to the airport ?
-
-
-modifiers of places
-
- TheBest : Superlative ;
- TheClosest : Superlative ;
- TheCheapest : Superlative ;
- TheMostExpensive : Superlative ;
- TheMostPopular : Superlative ;
- TheWorst : Superlative ;
-
- SuperlPlace : Superlative -> PlaceKind -> Place ; -- the best bar
-
- }
-
-
-
-
diff --git a/examples/phrasebook/Phrasebook.gf b/examples/phrasebook/Phrasebook.gf
deleted file mode 100644
index 9ebc13106..000000000
--- a/examples/phrasebook/Phrasebook.gf
+++ /dev/null
@@ -1,8 +0,0 @@
-abstract Phrasebook =
- Greetings,
- Words
- ** {
-
-flags startcat = Phrase ;
-
-}
diff --git a/examples/phrasebook/PhrasebookBul.gf b/examples/phrasebook/PhrasebookBul.gf
deleted file mode 100644
index bbc092963..000000000
--- a/examples/phrasebook/PhrasebookBul.gf
+++ /dev/null
@@ -1,9 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookBul of Phrasebook =
- GreetingsBul,
- WordsBul ** open
- SyntaxBul,
- Prelude in {
-
-}
diff --git a/examples/phrasebook/PhrasebookCat.gf b/examples/phrasebook/PhrasebookCat.gf
deleted file mode 100644
index 5021079d8..000000000
--- a/examples/phrasebook/PhrasebookCat.gf
+++ /dev/null
@@ -1,11 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookCat of Phrasebook =
- GreetingsCat,
- WordsCat
- ** open
- SyntaxCat,
- Prelude in {
-
-}
-
diff --git a/examples/phrasebook/PhrasebookChi.gf b/examples/phrasebook/PhrasebookChi.gf
deleted file mode 100644
index 35c890d98..000000000
--- a/examples/phrasebook/PhrasebookChi.gf
+++ /dev/null
@@ -1,11 +0,0 @@
---# -path=.:alltenses
-
-concrete PhrasebookChi of Phrasebook =
- GreetingsChi,
- WordsChi
- ** open
- SyntaxChi,
- Prelude in {
-
-
-}
diff --git a/examples/phrasebook/PhrasebookDan.gf b/examples/phrasebook/PhrasebookDan.gf
deleted file mode 100644
index d362d1b39..000000000
--- a/examples/phrasebook/PhrasebookDan.gf
+++ /dev/null
@@ -1,9 +0,0 @@
---# -path=.:present:alltenses
-
-concrete PhrasebookDan of Phrasebook =
- GreetingsDan,
- WordsDan ** open
- SyntaxDan,
- Prelude in {
-
-}
diff --git a/examples/phrasebook/PhrasebookDut.gf b/examples/phrasebook/PhrasebookDut.gf
deleted file mode 100644
index c8b4fd969..000000000
--- a/examples/phrasebook/PhrasebookDut.gf
+++ /dev/null
@@ -1,10 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookDut of Phrasebook =
- GreetingsDut,
- WordsDut ** open
- SyntaxDut,
- Prelude in {
-
-
-}
diff --git a/examples/phrasebook/PhrasebookEng.gf b/examples/phrasebook/PhrasebookEng.gf
deleted file mode 100644
index ab4f05d0d..000000000
--- a/examples/phrasebook/PhrasebookEng.gf
+++ /dev/null
@@ -1,12 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookEng of Phrasebook =
- GreetingsEng,
- WordsEng ** open
- SyntaxEng,
- Prelude in {
-
-flags
- language = en_US ;
-
-}
diff --git a/examples/phrasebook/PhrasebookEst.gf b/examples/phrasebook/PhrasebookEst.gf
deleted file mode 100644
index 4172ff99a..000000000
--- a/examples/phrasebook/PhrasebookEst.gf
+++ /dev/null
@@ -1,7 +0,0 @@
-concrete PhrasebookEst of Phrasebook =
- GreetingsEst,
- WordsEst ** open
- SyntaxEst,
- Prelude in {
-
-}
diff --git a/examples/phrasebook/PhrasebookFin.gf b/examples/phrasebook/PhrasebookFin.gf
deleted file mode 100644
index e0728ab10..000000000
--- a/examples/phrasebook/PhrasebookFin.gf
+++ /dev/null
@@ -1,9 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookFin of Phrasebook =
- GreetingsFin,
- WordsFin ** open
- SyntaxFin,
- Prelude in {
-
-}
diff --git a/examples/phrasebook/PhrasebookFre.gf b/examples/phrasebook/PhrasebookFre.gf
deleted file mode 100644
index ecbd74c9a..000000000
--- a/examples/phrasebook/PhrasebookFre.gf
+++ /dev/null
@@ -1,11 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookFre of Phrasebook =
- GreetingsFre,
- WordsFre
- ** open
- SyntaxFre,
- Prelude in {
-
-
-}
diff --git a/examples/phrasebook/PhrasebookGer.gf b/examples/phrasebook/PhrasebookGer.gf
deleted file mode 100644
index 69a61187c..000000000
--- a/examples/phrasebook/PhrasebookGer.gf
+++ /dev/null
@@ -1,10 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookGer of Phrasebook =
- GreetingsGer,
- WordsGer ** open
- SyntaxGer,
- Prelude in {
-
-
-}
diff --git a/examples/phrasebook/PhrasebookHin.gf b/examples/phrasebook/PhrasebookHin.gf
deleted file mode 100644
index 7cf2fa58a..000000000
--- a/examples/phrasebook/PhrasebookHin.gf
+++ /dev/null
@@ -1,10 +0,0 @@
---# -path=.:alltenses
-
-
-concrete PhrasebookHin of Phrasebook =
- GreetingsHin,
- WordsHin ** open
- SyntaxHin,
- Prelude in {
-
-}
diff --git a/examples/phrasebook/PhrasebookIta.gf b/examples/phrasebook/PhrasebookIta.gf
deleted file mode 100644
index 00d3f5488..000000000
--- a/examples/phrasebook/PhrasebookIta.gf
+++ /dev/null
@@ -1,13 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookIta of Phrasebook =
- GreetingsIta,
- WordsIta
- ** open
- SyntaxIta,
- Prelude in {
-
-flags language = it_IT ;
-
-}
-
diff --git a/examples/phrasebook/PhrasebookJpn.gf b/examples/phrasebook/PhrasebookJpn.gf
deleted file mode 100644
index b79d64379..000000000
--- a/examples/phrasebook/PhrasebookJpn.gf
+++ /dev/null
@@ -1,7 +0,0 @@
-concrete PhrasebookJpn of Phrasebook =
- GreetingsJpn,
- WordsJpn ** open
- SyntaxJpn,
- Prelude in {
-
-}
diff --git a/examples/phrasebook/PhrasebookLav.gf b/examples/phrasebook/PhrasebookLav.gf
deleted file mode 100644
index 93170159a..000000000
--- a/examples/phrasebook/PhrasebookLav.gf
+++ /dev/null
@@ -1,7 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookLav of Phrasebook = GreetingsLav, WordsLav **
-open
- SyntaxLav,
- Prelude
-in {} ;
diff --git a/examples/phrasebook/PhrasebookNor.gf b/examples/phrasebook/PhrasebookNor.gf
deleted file mode 100644
index eb4f76d8e..000000000
--- a/examples/phrasebook/PhrasebookNor.gf
+++ /dev/null
@@ -1,9 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookNor of Phrasebook =
- GreetingsNor,
- WordsNor ** open
- SyntaxNor,
- Prelude in {
-
-}
diff --git a/examples/phrasebook/PhrasebookPes.gf b/examples/phrasebook/PhrasebookPes.gf
deleted file mode 100644
index 16c21a94c..000000000
--- a/examples/phrasebook/PhrasebookPes.gf
+++ /dev/null
@@ -1,9 +0,0 @@
---# -path=.:alltenses
-
-concrete PhrasebookPes of Phrasebook =
- GreetingsPes,
- WordsPes ** open
- SyntaxPes,
- Prelude in {
-
-}
diff --git a/examples/phrasebook/PhrasebookPol.gf b/examples/phrasebook/PhrasebookPol.gf
deleted file mode 100644
index d933d6b55..000000000
--- a/examples/phrasebook/PhrasebookPol.gf
+++ /dev/null
@@ -1,13 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookPol of Phrasebook =
- GreetingsPol,
- WordsPol ** open
- SyntaxPol,
- Prelude in {
-
-flags
- language = pl_PL ; optimize =values ; coding =utf8 ;
-
-
-}
diff --git a/examples/phrasebook/PhrasebookRon.gf b/examples/phrasebook/PhrasebookRon.gf
deleted file mode 100644
index 810b09b0a..000000000
--- a/examples/phrasebook/PhrasebookRon.gf
+++ /dev/null
@@ -1,11 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookRon of Phrasebook =
- GreetingsRon,
- WordsRon
- ** open
- SyntaxRon,
- Prelude in {
-
-
-}
diff --git a/examples/phrasebook/PhrasebookRus.gf b/examples/phrasebook/PhrasebookRus.gf
deleted file mode 100644
index 7b2683240..000000000
--- a/examples/phrasebook/PhrasebookRus.gf
+++ /dev/null
@@ -1,12 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookRus of Phrasebook =
- GreetingsRus,
- WordsRus ** open
- SyntaxRus,
- Prelude in {
-
- -- lin
- -- PGreeting g = lin Text g ;
-
-}
diff --git a/examples/phrasebook/PhrasebookSnd.gf b/examples/phrasebook/PhrasebookSnd.gf
deleted file mode 100644
index 7f15d7ecf..000000000
--- a/examples/phrasebook/PhrasebookSnd.gf
+++ /dev/null
@@ -1,9 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookSnd of Phrasebook =
- GreetingsSnd,
- WordsSnd ** open
- SyntaxSnd,
- Prelude in {
-
-}
diff --git a/examples/phrasebook/PhrasebookSpa.gf b/examples/phrasebook/PhrasebookSpa.gf
deleted file mode 100644
index 75b7ae8bf..000000000
--- a/examples/phrasebook/PhrasebookSpa.gf
+++ /dev/null
@@ -1,12 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookSpa of Phrasebook =
- GreetingsSpa,
- WordsSpa
- ** open
- SyntaxSpa,
- Prelude in {
-
-
-}
-
diff --git a/examples/phrasebook/PhrasebookSwe.gf b/examples/phrasebook/PhrasebookSwe.gf
deleted file mode 100644
index 6b7c99194..000000000
--- a/examples/phrasebook/PhrasebookSwe.gf
+++ /dev/null
@@ -1,11 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookSwe of Phrasebook =
- GreetingsSwe,
- WordsSwe ** open
- SyntaxSwe,
- Prelude in {
-flags
- language = sv_SE ;
-
-}
diff --git a/examples/phrasebook/PhrasebookTha.gf b/examples/phrasebook/PhrasebookTha.gf
deleted file mode 100644
index 956599009..000000000
--- a/examples/phrasebook/PhrasebookTha.gf
+++ /dev/null
@@ -1,11 +0,0 @@
---# -path=.:alltenses
-
-concrete PhrasebookTha of Phrasebook =
- GreetingsTha,
- WordsTha
- ** open
--- SyntaxTha,
- Prelude in {
-
-
-}
diff --git a/examples/phrasebook/PhrasebookUrd.gf b/examples/phrasebook/PhrasebookUrd.gf
deleted file mode 100644
index e24ff4a01..000000000
--- a/examples/phrasebook/PhrasebookUrd.gf
+++ /dev/null
@@ -1,9 +0,0 @@
---# -path=.:present
-
-concrete PhrasebookUrd of Phrasebook =
- GreetingsUrd,
- WordsUrd ** open
- SyntaxUrd,
- Prelude in {
-
-}
diff --git a/examples/phrasebook/Sentences.gf b/examples/phrasebook/Sentences.gf
deleted file mode 100644
index 6798c2127..000000000
--- a/examples/phrasebook/Sentences.gf
+++ /dev/null
@@ -1,222 +0,0 @@
---1 The Ontology of the Phrasebook
-
---2 Syntactic Structures of the Phrasebook
-
--- This module contains phrases that can be defined by a functor over the
--- resource grammar API. The phrases that are likely to have different implementations
--- are in the module Words. But the distinction is not quite sharp; thus it may happen
--- that the functor instantiations make exceptions.
-
-abstract Sentences = Numeral ** {
-
--- The ontology of the phrasebook is defined by the following types. The commented ones
--- are defined in other modules.
-
- cat
- Phrase ; -- complete phrase, the unit of translation e.g. "Where are you?"
- Word ; -- word that could be used as phrase e.g. "Monday"
- Message ; -- sequence of phrases, longest unit e.g. "Hello! Where are you?"
- Greeting ; -- idiomatic greeting e.g. "hello"
- Sentence ; -- declarative sentence e.g. "I am in the bar"
- Question ; -- question, either yes/no or wh e.g. "where are you"
- Proposition ; -- can be turned into sentence or question e.g. "this pizza is good"
- Object ; -- the object of wanting, ordering, etc e.g. "three pizzas and a beer"
- PrimObject ; -- single object of wanting, ordering, etc e.g. "three pizzas"
- Item ; -- a single entity e.g. "this pizza"
- Kind ; -- a type of an item e.g. "pizza"
- MassKind ; -- a type mass (uncountable) e.g. "water"
- PlurKind ; -- a type usually only in plural e.g. "noodles"
- DrinkKind ; -- a drinkable, countable type e.g. "beer"
- Quality ; -- qualification of an item, can be complex e.g. "very good"
- Property ; -- basic property of an item, one word e.g. "good"
- Place ; -- location e.g. "the bar"
- PlaceKind ; -- type of location e.g. "bar"
- Currency ; -- currency unit e.g. "leu"
- Price ; -- number of currency units e.g. "eleven leu"
- Person ; -- agent wanting or doing something e.g. "you"
- Action ; -- proposition about a Person e.g. "you are here"
- Nationality ; -- complex of language, property, country e.g. "Swedish, Sweden"
- LAnguage ; -- language (can be without nationality) e.g. "Flemish"
- Citizenship ; -- property (can be without language) e.g. "Belgian"
- Country ; -- country (can be without language) e.g. "Belgium"
- Day ; -- weekday type e.g. "Friday"
- Date ; -- definite date e.g. "on Friday"
- Name ; -- name of person e.g. "NN"
- Number ; -- number expression 1 .. 999,999 e.g. "twenty"
- Transport ; -- transportation device e.g. "car"
- ByTransport ; -- mean of transportation e.g. "by tram"
- Superlative ; -- superlative modifiers of places e.g. "the best restaurant"
-
-
- fun
-
--- To build a whole message
-
- MPhrase : Phrase -> Message ;
- MContinue : Phrase -> Message -> Message ;
-
--- Many of the categories are accessible as Phrases, i.e. as translation units.
--- To regulate whether words appear on the top level, change their status between
--- Word and Phrase, or uncomment PWord,
-
- -- PWord : Word -> Phrase ;
-
- PGreetingMale : Greeting -> Phrase ; -- depends on speaker e.g. in Thai
- PGreetingFemale : Greeting -> Phrase ;
- PSentence : Sentence -> Phrase ;
- PQuestion : Question -> Phrase ;
-
- PNumber : Number -> Phrase ;
- PPrice : Price -> Phrase ;
- PObject : Object -> Word ;
- PKind : Kind -> Word ;
- PMassKind : MassKind -> Word ;
- PQuality : Quality -> Word ;
- PPlace : Place -> Word ;
- PPlaceKind : PlaceKind -> Word ;
- PCurrency : Currency -> Word ;
- PLanguage : LAnguage -> Word ;
- PCitizenship : Citizenship -> Word ;
- PCountry : Country -> Word ;
- PDay : Day -> Word ;
- PByTransport : ByTransport -> Word ;
- PTransport : Transport -> Word ;
-
- PYes, PNo, PYesToNo : Greeting ; -- yes, no, si/doch (pos. answer to neg. question)
-
--- To order something.
-
- GObjectPlease : Object -> Greeting ; -- a pizza and beer, please!
-
--- This is the way to build propositions about inanimate items.
-
- Is : Item -> Quality -> Proposition ; -- this pizza is good
- IsMass : MassKind -> Quality -> Proposition ; -- Belgian beer is good
-
--- To use propositions on higher levels.
-
- SProp : Proposition -> Sentence ; -- this pizza is good
- SPropNot : Proposition -> Sentence ; -- this pizza isn't good
- QProp : Proposition -> Question ; -- is this pizza good
-
- WherePlace : Place -> Question ; -- where is the bar
- WherePerson : Person -> Question ; -- where are you
-
--- This is the way to build propositions about persons.
-
- PropAction : Action -> Proposition ; -- (you (are|aren't) | are you) Swedish
-
--- Here are some general syntactic constructions.
-
- ObjItem : Item -> PrimObject ; -- this pizza
- ObjNumber : Number -> Kind -> PrimObject ; -- five pizzas
- ObjIndef : Kind -> PrimObject ; -- a pizza
- ObjPlural : Kind -> PrimObject ; -- pizzas
- ObjPlur : PlurKind -> PrimObject ; -- noodles
- ObjMass : MassKind -> PrimObject ; -- water
- ObjAndObj : PrimObject -> Object -> Object ; -- this pizza and a beer
- OneObj : PrimObject -> Object ; -- this pizza
-
- SuchKind : Quality -> Kind -> Kind ; -- Italian pizza
- SuchMassKind : Quality -> MassKind -> MassKind ; -- Italian water
- Very : Property -> Quality ; -- very Italian
- Too : Property -> Quality ; -- too Italian
- PropQuality : Property -> Quality ; -- Italian
-
- MassDrink : DrinkKind -> MassKind ; -- beer
- DrinkNumber : Number -> DrinkKind -> PrimObject ; -- five beers
-
--- Determiners.
-
- This, That, These, Those : Kind -> Item ; -- this pizza,...,those pizzas
- The, Thes : Kind -> Item ; -- the pizza, the pizzas
- ThisMass, ThatMass, TheMass : MassKind -> Item ; -- this/that/the water
- ThesePlur, ThosePlur, ThesPlur : PlurKind -> Item ; -- these/those/the potatoes
-
- AmountCurrency : Number -> Currency -> Price ; -- five euros
-
- ThePlace : PlaceKind -> Place ; -- the bar
- APlace : PlaceKind -> Place ; -- a bar
-
- IMale, IFemale, -- I, said by man/woman (affects agreement)
- YouFamMale, YouFamFemale, -- familiar you, said to man/woman (affects agreement)
- YouPolMale, YouPolFemale : Person ; -- polite you, said to man/woman (affects agreement)
-
- LangNat : Nationality -> LAnguage ; -- Swedish
- CitiNat : Nationality -> Citizenship ; -- Swedish
- CountryNat : Nationality -> Country ; -- Sweden
- PropCit : Citizenship -> Property ; -- Swedish
-
- OnDay : Day -> Date ; -- on Friday
- Today : Date ; -- today
-
- PersonName : Name -> Person ; -- person referred by name
- NameNN : Name ; -- the name "NN"
-
----- NameString : String -> Name ; ---- creates ambiguities with all words --%
-
- NNumeral : Numeral -> Number ; -- numeral in words, e.g. "twenty"
-
--- Actions are typically language-dependent, not only lexically but also
--- structurally. However, these ones are mostly functorial.
-
- SHave : Person -> Object -> Sentence ; -- you have beer
- SHaveNo : Person -> Kind -> Sentence ; -- you have no apples
- SHaveNoMass : Person -> MassKind -> Sentence ; -- you have no beer
- QDoHave : Person -> Object -> Question ; -- do you have beer
-
- AHaveCurr : Person -> Currency -> Action ; -- you have dollars
- ACitizen : Person -> Citizenship -> Action ; -- you are Swedish
- ABePlace : Person -> Place -> Action ; -- you are in the bar
-
- ByTransp : Transport -> ByTransport ; -- by bus
-
- AKnowSentence : Person -> Sentence -> Action ; -- you know that I am in the bar
- AKnowPerson : Person -> Person -> Action ; -- you know me
- AKnowQuestion : Person -> Question -> Action ; -- you know how far the bar is
-
-------------------------------------------------------------------------------------------
--- New things added 30/11/2011 by AR
-------------------------------------------------------------------------------------------
-
- cat
- VerbPhrase ; -- things one does, can do, must do, wants to do, e.g. swim
- Modality ; -- can, want, must
- fun
- ADoVerbPhrase : Person -> VerbPhrase -> Action ; -- I swim
- AModVerbPhrase : Modality -> Person -> VerbPhrase -> Action ; -- I can swim
- ADoVerbPhrasePlace : Person -> VerbPhrase -> Place -> Action ; -- I swim in the hotel
- AModVerbPhrasePlace : Modality -> Person -> VerbPhrase -> Place -> Action ; -- I can swim in the hotel
-
- QWhereDoVerbPhrase : Person -> VerbPhrase -> Question ; -- where do you swim
- QWhereModVerbPhrase : Modality -> Person -> VerbPhrase -> Question ; -- where can I swim
-
- MCan, MKnow, MMust, MWant : Modality ;
-
--- lexical items given in the resource Lexicon
-
- VPlay, VRun, VSit, VSleep, VSwim, VWalk : VerbPhrase ;
- VDrink, VEat, VRead, VWait, VWrite, VSit, VStop : VerbPhrase ;
- V2Buy, V2Drink, V2Eat : Object -> VerbPhrase ;
- V2Wait : Person -> VerbPhrase ;
-
- PImperativeFamPos, -- eat
- PImperativeFamNeg, -- don't eat
- PImperativePolPos, -- essen Sie
- PImperativePolNeg, -- essen Sie nicht
- PImperativePlurPos, -- esst
- PImperativePlurNeg : -- esst nicht
- VerbPhrase -> Phrase ;
-
--- other new things allowed by the resource
-
---- PBecause : Sentence -> Sentence -> Phrase ; -- I want to swim because it is hot
-
- He, She, -- he, she
- WeMale, WeFemale, -- we, said by men/women (affects agreement)
- YouPlurFamMale, YouPlurFamFemale, -- plural familiar you, said to men/women (affects agreement)
- YouPlurPolMale, YouPlurPolFemale, -- plural polite you, said to men/women (affects agreement)
- TheyMale, TheyFemale : Person ; -- they, said of men/women (affects agreement)
-
-}
-
diff --git a/examples/phrasebook/SentencesBul.gf b/examples/phrasebook/SentencesBul.gf
deleted file mode 100644
index 113af0900..000000000
--- a/examples/phrasebook/SentencesBul.gf
+++ /dev/null
@@ -1,54 +0,0 @@
-concrete SentencesBul of Sentences =
- NumeralBul ** SentencesI - [IMale, IFemale, YouFamMale, YouFamFemale, YouPolMale,
- YouPolFemale, ACitizen, Citizenship, PCitizenship,
- LangNat, CitiNat, CountryNat, PropCit,
- Nationality, Country, LAnguage, PLanguage, PCountry
- ] with
- (Syntax = SyntaxBul),
- (Symbolic = SymbolicBul),
- (Lexicon = LexiconBul) ** open ExtraBul, (R = ResBul) in {
-
-lincat
- Citizenship = {s1 : R.Gender => R.NForm => Str; -- there are two nouns for every citizenship - one for males and one for females
- s2 : A -- furthermore, adjective for Property
- } ;
- Nationality = {s1 : R.Gender => R.NForm => Str; -- there are two nouns for every citizenship - one for males and one for females
- s2 : A; -- furthermore, adjective for Property
- s3 : PN -- country name
- } ;
- LAnguage = A ;
- Country = PN ;
-
-lin IMale = mkPerson i_Pron ;
- IFemale = mkPerson i8fem_Pron ;
-
-lin YouFamMale = mkPerson youSg_Pron ;
- YouFamFemale = mkPerson youSg8fem_Pron ;
- YouPolMale, YouPolFemale = mkPerson youPol_Pron ;
-
-lin ACitizen p cit =
- let noun : N
- = case p.name.gn of {
- R.GSg g => lin N {s = \\nf => cit.s1 ! g ! nf;
- rel = cit.s2.s; relPost = False;
- g = case g of {R.Masc=>R.AMasc R.Human; R.Fem=>R.AFem; R.Neut=>R.ANeut}
- } ;
- R.GPl => lin N {s = \\nf => cit.s1 ! R.Masc ! nf;
- rel = cit.s2.s; relPost = False;
- g = R.AMasc R.Human
- }
- } ;
- in mkCl p.name noun ;
-
- PCitizenship cit =
- mkPhrase (mkUtt (mkAP cit.s2)) ;
-
- LangNat n = n.s2 ;
- CitiNat n = n ;
- CountryNat n = n.s3 ;
- PropCit cit = cit.s2 ;
-
- PLanguage x = mkPhrase (mkUtt (mkAP x)) ;
- PCountry x = mkPhrase (mkUtt (mkNP x)) ;
-
-}
diff --git a/examples/phrasebook/SentencesCat.gf b/examples/phrasebook/SentencesCat.gf
deleted file mode 100644
index 752c6b9c7..000000000
--- a/examples/phrasebook/SentencesCat.gf
+++ /dev/null
@@ -1,93 +0,0 @@
---# -coding=latin1
-concrete SentencesCat of Sentences = NumeralCat ** SentencesI - [
- IsMass,
- IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
- WeMale, WeFemale, YouPlurFamMale, YouPlurFamFemale, YouPlurPolFemale, YouPlurPolMale, TheyMale, TheyFemale,
- PImperativeFamNeg, PImperativePolNeg, PImperativePlurNeg, --negative imperatives in subjunctive
- Superlative,
- AKnowPerson
- ]
- with
- (Syntax = SyntaxCat),
- (Symbolic = SymbolicCat),
- (Lexicon = LexiconCat) **
- open ParadigmsCat, BeschCat, SyntaxCat, ExtraCat, Prelude in {
-
---flags coding = utf8 ;
-
-lincat
- Superlative = OrdSuperlative ; -- {ord: Ord ; isPre: Bool}
-
-lin
- IsMass m q = mkCl (mkNP the_Det m) q ; -- le vin allemand est bon
-
- IFemale =
- {name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = mkQuant i_Pron} ;
- YouFamFemale =
- {name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ;
- YouPolFemale =
- {name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = mkQuant youPol_Pron};
- IMale =
- {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = mkQuant i_Pron} ;
- YouFamMale =
- {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ;
- YouPolMale =
- {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = mkQuant youPol_Pron} ;
- He =
- {name = mkNP (ProDrop he_Pron) ; isPron = True ; poss = mkQuant he_Pron} ;
- She =
- {name = mkNP (ProDrop she_Pron) ; isPron = True ; poss = mkQuant she_Pron} ;
- WeMale =
- {name = mkNP (ProDrop we_Pron) ; isPron = True ; poss = mkQuant we_Pron} ;
- WeFemale =
- {name = mkNP (ProDrop we8fem_Pron) ; isPron = True ; poss = mkQuant we_Pron} ;
- YouPlurFamMale =
- {name = mkNP (ProDrop youPl_Pron) ; isPron = True ; poss = mkQuant youPl_Pron} ;
- YouPlurFamFemale =
- {name = mkNP (ProDrop youPl8fem_Pron) ; isPron = True ; poss = mkQuant youPl_Pron} ;
- YouPlurPolMale =
- {name = mkNP (ProDrop youPolPl_Pron) ; isPron = True ; poss = mkQuant youPolPl_Pron} ;
- YouPlurPolFemale =
- {name = mkNP (ProDrop youPolPl8fem_Pron) ; isPron = True ; poss = mkQuant youPolPl_Pron};
- TheyMale =
- {name = mkNP (ProDrop they_Pron) ; isPron = True ; poss = mkQuant they_Pron} ;
- TheyFemale =
- {name = mkNP (ProDrop they8fem_Pron) ; isPron = True ; poss = mkQuant they_Pron} ;
-
- PImperativeFamNeg v = phrasePlease (ImpNeg (mkNP (ProDrop youSg_Pron)) v) ;
- PImperativePolNeg v = phrasePlease (ImpNeg (mkNP (ProDrop youPol_Pron)) v) ;
- PImperativePlurNeg v = phrasePlease (ImpNeg (mkNP (ProDrop youPl_Pron)) v) ;
-
- AKnowPerson p q =
- let coneixer : V2 = mkV2 (mkV (conixer_27 "conixer"))
- in mkCl p.name coneixer q.name ;
-
-oper
-
- CNPlace : Type = {name : CN ; at : Prep ; to : Prep } ;
-
- mkCNPlace : CN -> Prep -> Prep -> CNPlace = \p,i,t ->
- { name = p ; at = i ; to = t ; } ;
-
- OrdSuperlative : Type = {ord: Ord ; isPre: Bool} ;
-
- placeNPSuperl : OrdSuperlative -> CNPlace -> NPPlace = \sup,kind -> case sup.isPre of {
- True => placeNPDet sup.ord kind ;
- False => placeNPAdj sup.ord kind
- } ;
-
- placeNPDet : Ord -> CNPlace -> NPPlace = \ord,kind ->
- let name : NP = mkNP (mkDet the_Art ord) kind.name in {
- name = name ;
- at = SyntaxCat.mkAdv kind.at name ;
- to = SyntaxCat.mkAdv kind.to name ;
- };
-
-
- placeNPAdj : Ord -> CNPlace -> NPPlace = \ord,kind ->
- let name : NP = mkNP the_Art (mkCN kind.name (mkAP ord)) in {
- name = name ;
- at = SyntaxCat.mkAdv kind.at name ;
- to = SyntaxCat.mkAdv kind.to name ;
- };
-}
diff --git a/examples/phrasebook/SentencesChi.gf b/examples/phrasebook/SentencesChi.gf
deleted file mode 100644
index 7ca72eb56..000000000
--- a/examples/phrasebook/SentencesChi.gf
+++ /dev/null
@@ -1,62 +0,0 @@
-concrete SentencesChi of Sentences = NumeralChi ** SentencesI - [QWhereModVerbPhrase, APlace,ThePlace, PropCit, CitiNat, ACitizen, Nationality, CitizenShip, ByTransp, GObjectPlease, AKnowPerson, QDoHave , QWhereDoVerbPhrase, SHaveNo, AHaveCurr]
- with
- (Syntax = SyntaxChi),
- (Symbolic = SymbolicChi),
- (Lexicon = LexiconChi) ** open SyntaxChi, (P = ParadigmsChi) in {
-
-flags coding=utf8 ;
-lincat
- Citizenship = N ;
- Nationality = {lang : NP ; country : NP; prop : A };
-lin
- ThePlace kind =
- let name : NP = lin NP (Syntax.mkNP theSg_Det kind.name) in {
- name = lin NP name ;
- at = mkAdv kind.at (lin NP name) ;
- to = mkAdv kind.to (lin NP name)
- } ;
- APlace kind =
- let name : NP = lin NP (Syntax.mkNP aSg_Det kind.name) in {
- name = lin NP name ;
- at = mkAdv kind.at (lin NP name) ;
- to = mkAdv kind.to (lin NP name)
- } ;
-
- ACitizen p n = mkCl p.name (lin N {s = n.s ++ "人" } ) ; -- to get 俄罗斯人, not 俄罗斯(人)的 ;
- CitiNat n = n.prop ; -- lin A { s = n.prop.s ++ "人" ; lock_A = <> ; monoSyl = False} ;
-
- PropCit c = lin A { s = c.s ; lock_A = <>; monoSyl = True } ;
-
- ByTransp t = t.by ;
-
- QWhereModVerbPhrase m p vp = mkQS (mkQCl zai_where_IAdv (mkCl p.name (mkVP m vp))) ;
-
- GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) please_shang_Voc) | lin Text (mkUtt o) ;
-
- AKnowPerson p q = mkCl p.name (P.mkV2 "认识") q.name ;
-
-
- QDoHave p obj = mkQS (mkQCl (mkCl p.name have_V2 obj)) ;
-
- QWhereDoVerbPhrase p vp = mkQS (mkQCl qu_where_IAdv (mkCl p.name vp)) ;
-
- SHaveNo p k = mkS negativePol (mkCl p.name have_V2 (mkNP k)) ;
-
- AHaveCurr p curr = mkCl p.name have_V2 (mkNP curr) ;
-
- MCan = can_VV ;
- MWant = want_VV ;
- MMust = must_VV ;
-
-
- oper
- qu_where_IAdv = mkIAdvL "去哪里" ;
- zai_where_IAdv = mkIAdvL "在哪里" ;
- where_m_IAdv : VV -> SS = \m -> mkIAdvL m.s ; -- ( "想在哪里" ) ;
-
- have_or_not_V2 = P.mkV2 (P.mkV "有没有" "了" "着" "在" "过" "没") ;
-
- please_shang_Voc : SS = ss "请上" ;
-
-
-}
diff --git a/examples/phrasebook/SentencesDan.gf b/examples/phrasebook/SentencesDan.gf
deleted file mode 100644
index 8b8804e09..000000000
--- a/examples/phrasebook/SentencesDan.gf
+++ /dev/null
@@ -1,8 +0,0 @@
-concrete SentencesDan of Sentences = NumeralDan ** SentencesI - [NameNN] with
- (Syntax = SyntaxDan),
- (Symbolic = SymbolicDan),
- (Lexicon = LexiconDan) ** open Prelude, SyntaxDan, (P = ParadigmsDan) in {
-
- lin NameNN = mkNP (P.mkPN "NN") ;
-
-}
diff --git a/examples/phrasebook/SentencesDut.gf b/examples/phrasebook/SentencesDut.gf
deleted file mode 100644
index 537bb8ae3..000000000
--- a/examples/phrasebook/SentencesDut.gf
+++ /dev/null
@@ -1,53 +0,0 @@
-concrete SentencesDut of Sentences = NumeralDut ** SentencesI -
- [SHaveNo,SHaveNoMass,
- Proposition,Action, Is, IsMass, SProp, SPropNot, QProp,
- AHaveCurr, ACitizen, ABePlace, AKnowSentence, AKnowPerson, AKnowQuestion,
----- QDoHave, QWhereDoVerbPhrase, QWhereModVerbPhrase, SHave,
- SHaveNo,
- QModVerbPhrase,
- ADoVerbPhrase, AModVerbPhrase, ADoVerbPhrasePlace, AModVerbPhrasePlace]
- with
- (Syntax = SyntaxDut),
- (Symbolic = SymbolicDut),
- (Lexicon = LexiconDut) ** open Prelude, SyntaxDut in {
-
- lincat
- Proposition, Action = Prop ;
- oper
- Prop = {pos : Cl ; neg : S} ; -- x F y ; x F niet/geen y
- mkProp : Cl -> S -> Prop = \pos,neg -> {pos = pos ; neg = neg} ;
- prop : Cl -> Prop = \cl -> mkProp cl (mkS negativePol cl) ;
-
- lin
- Is i q = prop (mkCl i q) ;
- IsMass m q = prop (mkCl (mkNP m) q) ;
- SProp p = mkS p.pos ;
- SPropNot p = p.neg ;
- QProp p = mkQS (mkQCl p.pos) ;
-
- AHaveCurr p curr = prop (mkCl p.name have_V2 (mkNP aPl_Det curr)) ;
- ACitizen p n = prop (mkCl p.name n) ;
- ABePlace p place = prop (mkCl p.name place.at) ;
-
- AKnowSentence p s = prop (mkCl p.name Lexicon.know_VS s) ;
- AKnowQuestion p s = prop (mkCl p.name Lexicon.know_VQ s) ;
- AKnowPerson p q = prop (mkCl p.name Lexicon.know_V2 q.name) ;
-
- lincat
- Nationality = {lang : CN ; country : NP ; prop : A} ;
- Language = CN ; -- kein Deutsch
-
--- the new things
- lin
- ADoVerbPhrase p vp = prop (mkCl p.name vp) ;
- AModVerbPhrase m p vp = prop (mkCl p.name (mkVP m vp)) ;
- ADoVerbPhrasePlace p vp x = prop (mkCl p.name (mkVP vp x.at)) ;
- AModVerbPhrasePlace m p vp x = prop (mkCl p.name (mkVP m (mkVP vp x.at))) ;
-
--- the old things
- lin
- SHaveNo p k = mkS (mkCl p.name have_V2 (mkNP no_Quant plNum k)) ;
- SHaveNoMass p k = mkS (mkCl p.name have_V2 (mkNP no_Quant k)) ;
-
-}
-
diff --git a/examples/phrasebook/SentencesEng.gf b/examples/phrasebook/SentencesEng.gf
deleted file mode 100644
index caaf9daca..000000000
--- a/examples/phrasebook/SentencesEng.gf
+++ /dev/null
@@ -1,4 +0,0 @@
-concrete SentencesEng of Sentences = NumeralEng ** SentencesI with
- (Syntax = SyntaxEng),
- (Symbolic = SymbolicEng),
- (Lexicon = LexiconEng) ;
diff --git a/examples/phrasebook/SentencesEst.gf b/examples/phrasebook/SentencesEst.gf
deleted file mode 100644
index 667880f33..000000000
--- a/examples/phrasebook/SentencesEst.gf
+++ /dev/null
@@ -1,63 +0,0 @@
-concrete SentencesEst of Sentences = NumeralEst ** SentencesI -
- [NameNN, ObjMass,
- NPPlace, CNPlace, placeNP, mkCNPlace, mkCNPlacePl, NPNationality, mkNPNationality,
- CitiNat, Citizenship, Nationality, ACitizen, PropCit, PCitizenship,
- GObjectPlease
- ] with
- (Syntax = SyntaxEst),
- (Symbolic = SymbolicEst),
- (Lexicon = LexiconEst) **
- open SyntaxEst, ExtraEst, (P = ParadigmsEst), (V = VerbEst), Prelude in {
-
- flags optimize = noexpand ;
-
- lincat
- Citizenship = ACitizenship ;
- Nationality = NPNationality ;
-
- oper
- NPPlace : Type = {name : NP ; at : Adv ; to : Adv ; from : Adv} ;
- CNPlace : Type = {name : CN ; at : Prep ; to : Prep ; from : Prep ; isPl : Bool} ;
- ACitizenship : Type = { prop : A ; nat : A } ;
- NPNationality : Type = ACitizenship ** {lang : NP ; country : NP} ;
-
- placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
- let name : NP = mkNP det kind.name in {
- name = name ;
- at = mkAdv kind.at name ;
- to = mkAdv kind.to name ;
- from = mkAdv kind.from name
- } ;
-
- lin
- -- The Fin-grammar overloaded the Is and IsMass functions to be
- -- able to use the complement in partitive.
- -- 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 =
- {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = ProDropPoss i_Pron} ;
- YouFamMale, YouFamFemale =
- {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = ProDropPoss youSg_Pron} ;
- YouPolMale, YouPolFemale =
- {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = ProDropPoss youPol_Pron} ;
---}
-
- ObjMass = PartCN ;
-
- GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) (lin Voc (ss "palun"))) ;
-
- CitiNat n = n ; -- keep just prop and nat fields
- PropCit c = c.prop ;
- PCitizenship c = mkPhrase (mkUtt (mkAP c.prop)) ;
- ACitizen p n = mkCl p.name n.nat ;
-}
diff --git a/examples/phrasebook/SentencesFin.gf b/examples/phrasebook/SentencesFin.gf
deleted file mode 100644
index ae9dff1eb..000000000
--- a/examples/phrasebook/SentencesFin.gf
+++ /dev/null
@@ -1,56 +0,0 @@
---# -coding=latin1
-concrete SentencesFin of Sentences = NumeralFin ** SentencesI -
- [Is, IsMass, NameNN, ObjMass,
- IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
- WeMale, WeFemale, YouPlurFamMale, YouPlurFamFemale, YouPlurPolFemale, YouPlurPolMale,
- NPPlace, CNPlace, placeNP, mkCNPlace, mkCNPlacePl,
- GObjectPlease,
- NPNationality, mkNPNationality,
- Country, PCountry
- ] with
- (Syntax = SyntaxFin),
- (Symbolic = SymbolicFin),
- (Lexicon = LexiconFin) **
- open SyntaxFin, ExtraFin, (P = ParadigmsFin), (V = VerbFin), Prelude in {
-
- flags optimize = noexpand ;
-
- lincat
- Country = {np : NP ; isExternal : Bool} ;
- lin
- PCountry x = mkPhrase (mkUtt x.np) ;
- oper
- NPNationality = {lang : NP ; prop : A ; country : {np : NP ; isExternal : Bool}} ;
- NPPlace = {name : NP ; at : Adv ; to : Adv ; from : Adv} ;
- CNPlace = {name : CN ; isExternal : Bool ; isPl : Bool} ;
-
- placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
- let name : NP = mkNP det kind.name in {
- name = name ;
- at = mkAdv (P.casePrep (if_then_else P.Case kind.isExternal P.adessive P.inessive)) name ;
- to = mkAdv (P.casePrep (if_then_else P.Case kind.isExternal P.allative P.illative)) name ;
- from = mkAdv (P.casePrep (if_then_else P.Case kind.isExternal P.ablative P.elative)) name
- } ;
-
- lin
- Is item prop = mkCl item (V.UseComp (CompPartAP prop)) ; -- tm pizza on herkullista
- IsMass mass prop = mkCl (mkNP a_Det mass) (V.UseComp (CompPartAP prop)) ; -- pizza on herkullista
- NameNN = mkNP (P.mkPN (P.mkN "NN" "NN:i")) ;
-
- IMale, IFemale =
- {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = ProDropPoss i_Pron} ;
- YouFamMale, YouFamFemale =
- {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = ProDropPoss youSg_Pron} ;
- YouPolMale, YouPolFemale =
- {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 ;
-
- GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) (lin Voc (ss "kiitos"))) ;
-
-
- }
diff --git a/examples/phrasebook/SentencesFre.gf b/examples/phrasebook/SentencesFre.gf
deleted file mode 100644
index f600a5d29..000000000
--- a/examples/phrasebook/SentencesFre.gf
+++ /dev/null
@@ -1,47 +0,0 @@
-concrete SentencesFre of Sentences = NumeralFre ** SentencesI - [
- IsMass,
- QProp,
- IFemale, YouFamFemale, YouPolFemale, WeFemale, YouPlurFamFemale, YouPlurPolFemale, YouPlurPolMale, TheyFemale,
- PYesToNo,
- SHaveNo,SHaveNoMass,
- Superlative
- ]
- with
- (Syntax = SyntaxFre),
- (Symbolic = SymbolicFre),
- (Lexicon = LexiconFre) **
- open SyntaxFre, ExtraFre, (P = ParadigmsFre), Prelude in {
-
- lincat
- Superlative = {s : Ord ; isPre : Bool} ;
- lin
- IsMass m q = mkCl (mkNP the_Det m) q ; -- le vin allemand est bon
- QProp a =
- lin QS {s = \\_ => (EstcequeS (mkS a)).s} ;
- IFemale =
- {name = mkNP i8fem_Pron ; isPron = True ; poss = mkQuant i_Pron} ;
- YouFamFemale =
- {name = mkNP youSg8fem_Pron ; isPron = True ; poss = mkQuant youSg_Pron} ;
- YouPolFemale =
- {name = mkNP youPol8fem_Pron ; isPron = True ; poss = mkQuant youPol_Pron} ;
- WeFemale =
- {name = mkNP we8fem_Pron ; isPron = True ; poss = mkQuant we_Pron} ;
- YouPlurFamFemale =
- {name = mkNP youPl8fem_Pron ; isPron = True ; poss = mkQuant youPl_Pron} ;
- YouPlurPolMale =
- {name = mkNP youPl_Pron ; isPron = True ; poss = mkQuant youPol_Pron};
- YouPlurPolFemale =
- {name = mkNP youPl8fem_Pron ; isPron = True ; poss = mkQuant youPol_Pron};
- TheyFemale =
- {name = mkNP they8fem_Pron ; isPron = True ; poss = mkQuant they_Pron} ;
-
-
- PYesToNo = mkPhrase (lin Utt (ss "si")) ;
-
- SHaveNo p k = mkS negativePol (mkCl p.name have_de (mkNP aPl_Det k)) ;
- SHaveNoMass p k = mkS negativePol (mkCl p.name (ComplCN have_de k)) ;
-
- oper
- have_de : V2 = P.mkV2 (P.mkV have_V2) P.genitive ;
-
-}
diff --git a/examples/phrasebook/SentencesGer.gf b/examples/phrasebook/SentencesGer.gf
deleted file mode 100644
index cc0922d5f..000000000
--- a/examples/phrasebook/SentencesGer.gf
+++ /dev/null
@@ -1,50 +0,0 @@
-concrete SentencesGer of Sentences = NumeralGer ** SentencesI -
- [PYesToNo,SHaveNo,SHaveNoMass,
- Proposition, Action, Is, IsMass, SProp, SPropNot, QProp,
- AHaveCurr, ACitizen, ABePlace, AKnowSentence, AKnowPerson, AKnowQuestion,
- Nationality, LAnguage,
- ADoVerbPhrase, AModVerbPhrase, ADoVerbPhrasePlace, AModVerbPhrasePlace,
- YouPlurPolMale, YouPlurPolFemale
- ] with
- (Syntax = SyntaxGer),
- (Symbolic = SymbolicGer),
- (Lexicon = LexiconGer) ** open Prelude, SyntaxGer in {
-
- lin
- PYesToNo = mkPhrase (lin Utt (ss "doch")) ;
- SHaveNo p k = mkS (mkCl p.name have_V2 (mkNP no_Quant plNum k)) ;
- SHaveNoMass p k = mkS (mkCl p.name have_V2 (mkNP no_Quant k)) ;
-
- lincat
- Proposition, Action = Prop ;
- oper
- Prop = {pos : Cl ; neg : S} ; -- x F y ; x F nicht/kein y
- mkProp : Cl -> S -> Prop = \pos,neg -> {pos = pos ; neg = neg} ;
- prop : Cl -> Prop = \cl -> mkProp cl (mkS negativePol cl) ;
- lin
- Is i q = prop (mkCl i q) ;
- IsMass m q = prop (mkCl (mkNP m) q) ;
- SProp p = mkS p.pos ;
- SPropNot p = p.neg ;
- QProp p = mkQS (mkQCl p.pos) ;
-
- AHaveCurr p curr = prop (mkCl p.name have_V2 (mkNP aPl_Det curr)) ;
- ACitizen p n = prop (mkCl p.name n) ;
- ABePlace p place = prop (mkCl p.name place.at) ;
-
- AKnowSentence p s = prop (mkCl p.name Lexicon.know_VS s) ;
- AKnowQuestion p s = prop (mkCl p.name Lexicon.know_VQ s) ;
- AKnowPerson p q = prop (mkCl p.name Lexicon.know_V2 q.name) ;
-
- lincat
- Nationality = {lang : CN ; country : NP ; prop : A} ;
- LAnguage = CN ; -- kein Deutsch
-
--- the new things
- lin
- ADoVerbPhrase p vp = prop (mkCl p.name vp) ;
- AModVerbPhrase m p vp = prop (mkCl p.name (mkVP m vp)) ;
- ADoVerbPhrasePlace p vp x = prop (mkCl p.name (mkVP vp x.at)) ;
- AModVerbPhrasePlace m p vp x = prop (mkCl p.name (mkVP m (mkVP vp x.at))) ;
- YouPlurPolMale, YouPlurPolFemale = mkPerson youPol_Pron ;
-}
diff --git a/examples/phrasebook/SentencesHin.gf b/examples/phrasebook/SentencesHin.gf
deleted file mode 100644
index da2719795..000000000
--- a/examples/phrasebook/SentencesHin.gf
+++ /dev/null
@@ -1,42 +0,0 @@
-concrete SentencesHin of Sentences = NumeralHin ** SentencesI -
- [sing,IFemale,YouFamFemale,YouPolFemale,MMust,YouPlurFamFemale,YouPlurPolFemale,YouFamMale,mkGreeting] with
- (Syntax = SyntaxHin),
- (Symbolic = SymbolicHin),
- (Lexicon = LexiconHin) **
- open
- (P=ParadigmsHin),
- ParamX,
- CommonHindustani in {
- lin IFemale = mkPerson (P.personalPN myN mjh "" myra myry myrE myry Sg Fem Pers1) ;
- YouFamMale = mkPerson (P.personalPN tum tum tum tumhara tumhary tumharay tumhary Pl Masc Pers2_Familiar) ;
- YouFamFemale = mkPerson (P.personalPN tw tw tw tyra tyry tyrE tyry Sg Fem Pers2_Casual) ;
- YouPolFemale = mkPerson (P.personalPN ap ap ap apka apky apkE apky Pl Fem Pers2_Respect);
- YouPlurFamFemale = mkPerson (P.personalPN tum tum tum tumhara tumhary tumharay tumhary Pl Fem Pers2_Familiar) ;
- YouPlurPolFemale = mkPerson (P.personalPN ap ap ap apka apky apkE apky Pl Fem Pers2_Respect) ;
-
-
-
-flags coding = utf8 ;
-
-oper
- mkGreeting = ss ;
-
-oper
- myN = "मैं" ;
- mjh = "मुझ" ;
- myra = "मेरा" ;
- myry = "मेरी" ;
- myrE = "मेरे" ;
- tw = "तू" ;
- tum = "तुम" ;
- tyra = "तेरा" ;
- tyry = "तेरी" ;
- tyrE = "तेरे" ;
- tumhara = "तुम्हारा" ;
- tumhary = "तुम्हारी" ;
- tumharay = "तुम्हारे" ;
- ap = "आप" ;
- apka = ["आप का"] ;
- apky = ["आप की"] ;
- apkE = ["आप के"] ;
- } ;
diff --git a/examples/phrasebook/SentencesI.gf b/examples/phrasebook/SentencesI.gf
deleted file mode 100644
index 913aa11ad..000000000
--- a/examples/phrasebook/SentencesI.gf
+++ /dev/null
@@ -1,302 +0,0 @@
---1 Implementation of MOLTO Phrasebook
-
---2 The functor for (mostly) common structures
-
-incomplete concrete SentencesI of Sentences = Numeral **
- open
- Syntax,
- Lexicon,
- Symbolic, -- for names as strings
- Prelude
- in {
- lincat
- Phrase = Text ;
- Word = Text ;
- Message = Text ;
- Greeting = Text ;
- Sentence = S ;
- Question = QS ;
- Proposition = Cl ;
- Item = NP ;
- Kind = CN ;
- MassKind = CN ;
- MassKind = CN ;
- PlurKind = CN ;
- DrinkKind = CN ;
- Quality = AP ;
- Property = A ;
- Object = NP ;
- PrimObject = NP ;
- Place = NPPlace ; -- {name : NP ; at : Syntax.Adv ; to : Syntax.Adv} ;
- PlaceKind = CNPlace ; -- {name : CN ; at : Prep ; to : Prep} ;
- Currency = CN ;
- Price = NP ;
- Action = Cl ;
- Person = NPPerson ; -- {name : NP ; isPron : Bool ; poss : Quant} ;
- Nationality = NPNationality ; -- {lang : NP ; country : NP ; prop : A} ;
- LAnguage = NP ;
- Citizenship = A ;
- Country = NP ;
- Day = NPDay ; -- {name : NP ; point : Syntax.Adv ; habitual : Syntax.Adv} ;
- Date = Syntax.Adv ;
- Name = NP ;
- Number = Card ;
- ByTransport = Syntax.Adv ;
- Transport = {name : CN ; by : Syntax.Adv} ;
- Superlative = Det ;
- lin
- MPhrase p = p ;
- MContinue p m = mkText p m ;
-
- PSentence s = mkText s | lin Text (mkUtt s) ; -- optional '.'
- PQuestion s = mkText s | lin Text (mkUtt s) ; -- optional '?'
-
- PGreetingMale, PGreetingFemale = \g -> mkText (lin Phr (ss g.s)) exclMarkPunct | g ;
-
- -- PWord w = w ;
-
- PNumber x = mkSentence (mkUtt x) ;
- PPrice x = mkSentence (mkUtt x) ;
-
- PObject x = mkPhrase (mkUtt x) ;
- PKind x = mkPhrase (mkUtt x) ;
- PMassKind x = mkPhrase (mkUtt x) ;
- PQuality x = mkPhrase (mkUtt x) ;
- PPlace x = mkPhrase (mkUtt x.name) ;
- PPlaceKind x = mkPhrase (mkUtt x.name) ;
- PCurrency 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) ;
- PTransport t = mkPhrase (mkUtt t.name) ;
- PByTransport t = mkPhrase (mkUtt t) ;
-
- PYes = mkPhrase yes_Utt ;
- PNo = mkPhrase no_Utt ;
- PYesToNo = mkPhrase yes_Utt ;
-
- GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) please_Voc) | lin Text (mkUtt o) ;
-
- Is = mkCl ;
- IsMass m q = mkCl (mkNP m) q ;
-
- SProp = mkS ;
- SPropNot = mkS negativePol ;
- QProp p = mkQS (mkQCl p) ;
-
- WherePlace place = mkQS (mkQCl where_IAdv place.name) ;
- WherePerson person = mkQS (mkQCl where_IAdv person.name) ;
-
- PropAction a = a ;
-
- AmountCurrency num curr = mkNP num curr ;
-
- ObjItem i = i ;
- ObjNumber n k = mkNP n k ;
- ObjIndef k = mkNP a_Quant k ;
- ObjPlural k = mkNP aPl_Det k ;
- ObjPlur k = mkNP aPl_Det k ;
- ObjMass k = mkNP k ;
- ObjAndObj = mkNP and_Conj ;
- OneObj o = o ;
-
- MassDrink d = d ;
- DrinkNumber n k = mkNP n k ;
-
- This kind = mkNP this_Quant kind ;
- That kind = mkNP that_Quant kind ;
- These kind = mkNP this_Quant plNum kind ;
- Those kind = mkNP that_Quant plNum kind ;
- The kind = mkNP the_Quant kind ;
- Thes kind = mkNP the_Quant plNum kind ;
- ThisMass kind = mkNP this_Quant kind ;
- ThatMass kind = mkNP that_Quant kind ;
- TheMass kind = mkNP the_Quant kind ;
- ThesePlur kind = mkNP this_Quant plNum kind ;
- ThosePlur kind = mkNP that_Quant plNum kind ;
- ThesPlur kind = mkNP the_Quant plNum kind ;
-
- SuchKind quality kind = mkCN quality kind ;
- SuchMassKind quality kind = mkCN quality kind ;
- Very property = mkAP very_AdA (mkAP property) ;
- Too property = mkAP too_AdA (mkAP property) ;
- PropQuality property = mkAP property ;
-
- ThePlace kind = let dd : Det = if_then_else Det kind.isPl thePl_Det theSg_Det
- in placeNP dd kind ;
- APlace kind = let dd : Det = if_then_else Det kind.isPl aPl_Det aSg_Det
- in placeNP dd kind ;
-
- 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 = mkQuant he_Pron} ; -- poss not used
----- NameString s = symb s ; --%
- NameNN = symb "NN" ;
-
- NNumeral n = mkCard ;
-
- SHave p obj = mkS (mkCl p.name have_V2 obj) ;
- SHaveNo p k = mkS negativePol (mkCl p.name have_V2 (mkNP aPl_Det k)) ;
- SHaveNoMass p m = mkS negativePol (mkCl p.name have_V2 (mkNP m)) ;
- QDoHave p obj = mkQS (mkQCl (mkCl p.name have_V2 obj)) ;
-
- AHaveCurr p curr = mkCl p.name have_V2 (mkNP aPl_Det curr) ;
- ACitizen p n = mkCl p.name n ;
- ABePlace p place = mkCl p.name place.at ;
- ByTransp t = t.by ;
-
- AKnowSentence p s = mkCl p.name Lexicon.know_VS s ;
- AKnowQuestion p s = mkCl p.name Lexicon.know_VQ s ;
- AKnowPerson p q = mkCl p.name Lexicon.know_V2 q.name ;
-
-oper
-
--- These operations are used internally in Sentences.
-
- mkPhrase : Utt -> Text = \u -> lin Text u ; -- no punctuation
- mkGreeting : Str -> Text = \s -> lin Text (ss s) ; -- no punctuation
- mkSentence : Utt -> Text = \t -> lin Text (postfixSS "." t | t) ; -- optional .
-
- mkPerson : Pron -> {name : NP ; isPron : Bool ; poss : Quant} = \p ->
- {name = mkNP p ; isPron = True ; poss = mkQuant p} ;
-
--- These are used in Words for each language.
-
- NPNationality : Type = {lang : NP ; country : NP ; prop : A} ;
-
- mkNPNationality : NP -> NP -> A -> NPNationality = \la,co,pro ->
- {lang = la ;
- country = co ;
- prop = pro
- } ;
-
- NPDay : Type = {name : NP ; point : Syntax.Adv ; habitual : Syntax.Adv} ;
-
- mkNPDay : NP -> Syntax.Adv -> Syntax.Adv -> NPDay = \d,p,h ->
- {name = d ;
- point = p ;
- habitual = h
- } ;
-
- NPPlace : Type = {name : NP ; at : Syntax.Adv ; to : Syntax.Adv} ;
- CNPlace : Type = {name : CN ; at : Prep ; to : Prep; isPl : Bool} ;
-
- mkCNPlace : CN -> Prep -> Prep -> CNPlace = \p,i,t -> {
- name = p ;
- at = i ;
- to = t ;
- isPl = False
- } ;
-
- mkCNPlacePl : CN -> Prep -> Prep -> CNPlace = \p,i,t -> {
- name = p ;
- at = i ;
- to = t ;
- isPl = True
- } ;
-
- placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
- let name : NP = mkNP det kind.name in {
- name = name ;
- at = Syntax.mkAdv kind.at name ;
- to = Syntax.mkAdv kind.to name
- } ;
-
- NPPerson : Type = {name : NP ; isPron : Bool ; poss : Quant} ;
-
- relativePerson : GNumber -> CN -> (Num -> NP -> CN -> NP) -> NPPerson -> NPPerson =
- \n,x,f,p ->
- let num = if_then_else Num n plNum sgNum in {
- name = case p.isPron of {
- True => mkNP p.poss num x ;
- _ => f num p.name x
- } ;
- isPron = False ;
- poss = mkQuant he_Pron -- not used because not pron
- } ;
-
- GNumber : PType = Bool ;
- sing = False ; plur = True ;
-
--- for languages without GenNP, use "the wife of p"
- mkRelative : Bool -> CN -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n x
- (\a,b,c -> mkNP (mkNP the_Quant a c) (Syntax.mkAdv possess_Prep b)) p ;
-
--- for languages with GenNP, use "p's wife"
--- relativePerson n x (\a,b,c -> mkNP (GenNP b) a c) p ;
-
- phrasePlease : Utt -> Text = \u -> --- lin Text (mkPhr noPConj u please_Voc) |
- lin Text u ;
-
-------------------------------------------------------------------------------------------
--- New things added 30/11/2011 by AR
-------------------------------------------------------------------------------------------
-
- lincat
- VerbPhrase = VP ;
- Modality = VV ;
- lin
- ADoVerbPhrase p vp = mkCl p.name vp ;
- AModVerbPhrase m p vp = mkCl p.name (mkVP m vp) ;
- ADoVerbPhrasePlace p vp x = mkCl p.name (mkVP vp x.at) ;
- AModVerbPhrasePlace m p vp x = mkCl p.name (mkVP m (mkVP vp x.at)) ;
-
- QWhereDoVerbPhrase p vp = mkQS (mkQCl where_IAdv (mkCl p.name vp)) ;
- QWhereModVerbPhrase m p vp = mkQS (mkQCl where_IAdv (mkCl p.name (mkVP m vp))) ;
-
- MWant = want_VV ;
- MCan = can_VV ;
- MKnow = can8know_VV ;
- MMust = must_VV ;
-
- VPlay = mkVP play_V ;
- VRun = mkVP run_V ;
- VSit = mkVP sit_V ;
- VSleep = mkVP sleep_V ;
- VSwim = mkVP swim_V ;
- VWalk = mkVP walk_V ;
- VSit = mkVP sit_V ;
- VStop = mkVP stop_V ;
- VDrink = mkVP ;
- VEat = mkVP ;
- VRead = mkVP ;
- VWait = mkVP ;
- VWrite = mkVP ;
-
- V2Buy o = mkVP buy_V2 o ;
- V2Drink o = mkVP drink_V2 o ;
- V2Eat o = mkVP eat_V2 o ;
- V2Wait o = mkVP wait_V2 o.name ;
-
- PImperativeFamPos v = phrasePlease (mkUtt (mkImp v)) ;
- PImperativeFamNeg v = phrasePlease (mkUtt negativePol (mkImp v)) ;
- PImperativePolPos v = phrasePlease (mkUtt politeImpForm (mkImp v)) ;
- PImperativePolNeg v = phrasePlease (mkUtt politeImpForm negativePol (mkImp v)) ;
- PImperativePlurPos v = phrasePlease (mkUtt pluralImpForm (mkImp v)) ;
- PImperativePlurNeg v = phrasePlease (mkUtt pluralImpForm negativePol (mkImp v)) ;
-
--- other new things allowed by the resource
-
---- PBecause a b = SSubjS a because_Subj b ;
-
- He = mkPerson he_Pron ;
- She = mkPerson she_Pron ;
- WeMale, WeFemale = mkPerson we_Pron ;
- YouPlurFamMale, YouPlurFamFemale = mkPerson youPl_Pron ;
- YouPlurPolMale, YouPlurPolFemale = mkPerson youPl_Pron ;
- TheyMale, TheyFemale = mkPerson they_Pron ;
-
-}
diff --git a/examples/phrasebook/SentencesIta.gf b/examples/phrasebook/SentencesIta.gf
deleted file mode 100644
index e845c1c54..000000000
--- a/examples/phrasebook/SentencesIta.gf
+++ /dev/null
@@ -1,78 +0,0 @@
-concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
- IsMass,
- IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
- WeMale, WeFemale, YouPlurFamMale, YouPlurFamFemale, YouPlurPolFemale, YouPlurPolMale, TheyMale, TheyFemale,
- mkPerson, Superlative, SHaveNoMass
- ]
- with
- (Syntax = SyntaxIta),
- (Symbolic = SymbolicIta),
- (Lexicon = LexiconIta) **
- open SyntaxIta, ExtraIta, Prelude in {
-
- lincat
- Place = NPPlace ; -- {name : NP ; at : Adv ; to : Adv ; } ;
- Superlative = {s : A ; isPre : Bool} ;
-
- lin
- IsMass m q = mkCl (mkNP the_Det m) q ; -- le vin allemand est bon
-
- IFemale =
- {name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = PossFamQuant i_Pron} ;
- IMale =
- {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = PossFamQuant i_Pron} ;
- YouFamMale =
- {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = PossFamQuant youSg_Pron} ;
- YouFamFemale =
- {name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = PossFamQuant youSg_Pron} ;
- YouPolMale =
- {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = PossFamQuant youPol_Pron} ;
- YouPolFemale =
- {name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = PossFamQuant youPol_Pron};
- He =
- {name = mkNP (ProDrop he_Pron) ; isPron = True ; poss = PossFamQuant he_Pron} ;
- She =
- {name = mkNP (ProDrop she_Pron) ; isPron = True ; poss = PossFamQuant she_Pron} ;
- WeMale =
- {name = mkNP (ProDrop we_Pron) ; isPron = True ; poss = PossFamQuant we_Pron} ;
- WeFemale =
- {name = mkNP (ProDrop we8fem_Pron) ; isPron = True ; poss = PossFamQuant we_Pron} ;
- YouPlurFamMale =
- {name = mkNP (ProDrop youPl_Pron) ; isPron = True ; poss = PossFamQuant youPl_Pron} ;
- YouPlurFamFemale =
- {name = mkNP (ProDrop youPl8fem_Pron) ; isPron = True ; poss = PossFamQuant youPl_Pron} ;
- YouPlurPolMale =
- {name = mkNP (ProDrop youPolPl_Pron) ; isPron = True ; poss = PossFamQuant youPolPl_Pron} ;
- YouPlurPolFemale =
- {name = mkNP (ProDrop youPolPl8fem_Pron) ; isPron = True ; poss = PossFamQuant youPolPl_Pron};
- TheyMale =
- {name = mkNP (ProDrop they_Pron) ; isPron = True ; poss = PossFamQuant they_Pron} ;
- TheyFemale =
- {name = mkNP (ProDrop they8fem_Pron) ; isPron = True ; poss = PossFamQuant they_Pron} ;
-
- SHaveNoMass p k = mkS negativePol (mkCl p.name (ComplCN have_V2 k)) ;
-
- oper
-
- CNPlace : Type = {name : CN ; at : Prep ; to : Prep } ;
-
- mkCNPlace : CN -> Prep -> Prep -> CNPlace = \p,i,t -> {
- name = p ;
- at = i ;
- to = t ;
- } ;
-
- placeNP : Det -> CNPlace -> NPPlace = \det,kind ->
- let name : NP = mkNP det kind.name in {
- name = name ;
- at = mkAdv kind.at name ;
- to = mkAdv kind.to name
- } ;
-
- mkPerson : Pron -> {name : NP ; isPron : Bool ; poss : Quant} = \p ->
- {name = mkNP p ; isPron = True ; poss = PossFamQuant p} ;
-
-
-}
-
-
diff --git a/examples/phrasebook/SentencesJpn.gf b/examples/phrasebook/SentencesJpn.gf
deleted file mode 100644
index 4fdaf5fb5..000000000
--- a/examples/phrasebook/SentencesJpn.gf
+++ /dev/null
@@ -1,62 +0,0 @@
-concrete SentencesJpn of Sentences = NumeralJpn **
- SentencesI - [
- VDrink,VEat,VRead,VWait,VWrite,
- phrasePlease, mkSentence, mkPhrase,
- NameNN,
- PSentence, PQuestion, GObjectPlease,
- ACitizen, Citizenship, CitiNat, Nationality, NPNationality, mkNPNationality, PropCit, PCitizenship
- ]
-with
- (Syntax = SyntaxJpn),
--- (Symbolic = SymbolicJpn),
- (Lexicon = LexiconJpn) ** open SyntaxJpn, ParadigmsJpn in {
-
-flags coding = utf8 ;
-
-lincat
-
- Citizenship = NPCitizenship ;
- Nationality = NPNationality ;
-
-lin
- VDrink = v2toVP drink_V2 ;
- VEat = v2toVP eat_V2 ;
- VRead = v2toVP read_V2 ;
- VWait = v2toVP wait_V2 ;
- VWrite = v2toVP write_V2 ;
-
- NameNN = mkNP (mkPN "NN") ;
-
- PSentence s = mkText (mkPhr (mkUtt s)) | lin Text (mkPhr (mkUtt s)) ; -- optional '.'
- PQuestion s = mkText (mkPhr (mkUtt s)) | lin Text (mkPhr (mkUtt s)) ; -- optional '?'
-
- GObjectPlease o = lin Text (mkPhr noPConj (mkUtt o) please_Voc) | lin Text (mkPhr (mkUtt o)) ;
-
- ACitizen p n = mkCl p.name n.citizenship ;
-
- CitiNat n = {prop = n.prop ; citizenship = n.citizenship} ;
-
- PropCit c = c.prop ;
-
- PCitizenship x = mkPhrase (mkUtt x.citizenship) ;
-
-oper
- v2toVP : V2 -> VP = \v2 -> mkVP ;
-
- phrasePlease : Utt -> Text = \u -> lin Text (mkPhr u) | lin Text (mkPhr noPConj u please_Voc) ;
-
- mkPhrase : Utt -> Text = \u -> lin Text (mkPhr u) ; -- no punctuation
- mkSentence : Utt -> Text = \t -> lin Text (postfixSS "." (mkPhr t) | (mkPhr t)) ; -- optional .
-
- NPCitizenship : Type = {prop : A ; citizenship : NP} ;
-
- NPNationality : Type = NPCitizenship ** {lang : NP ; country : NP} ;
-
- mkNPNationality : NP -> NP -> A -> NP -> NPNationality = \la,co,pro,ci ->
- {lang = la ;
- country = co ;
- prop = pro ;
- citizenship = ci
- } ;
-
-}
diff --git a/examples/phrasebook/SentencesLav.gf b/examples/phrasebook/SentencesLav.gf
deleted file mode 100644
index 33d34b99d..000000000
--- a/examples/phrasebook/SentencesLav.gf
+++ /dev/null
@@ -1,50 +0,0 @@
-concrete SentencesLav of Sentences = NumeralLav ** SentencesI - [
- LAnguage,
- PLanguage,
- NPNationality,
- mkNPNationality,
- NameNN,
- IFemale,
- YouFamFemale,
- YouPolFemale,
- WeFemale,
- YouPlurFamFemale,
- YouPlurPolFemale,
- TheyFemale
-]
-with
- (Syntax = SyntaxLav),
- (Symbolic = SymbolicLav),
- (Lexicon = LexiconLav) **
-open
- Prelude,
- SyntaxLav,
- (P = ParadigmsLav),
- ExtraLav
-in {
-
- lincat
- LAnguage = NPLanguage ;
-
- lin
- PLanguage x = mkPhrase (mkUtt x.lang) ;
-
- NameNN = mkNP (P.mkN "NN") ;
-
- IFemale = mkPerson i8fem_Pron ;
- YouFamFemale = mkPerson youSg8fem_Pron ;
- YouPolFemale = mkPerson youPol8fem_Pron ;
- WeFemale = mkPerson we8fem_Pron ;
- YouPlurFamFemale, YouPlurPolFemale = mkPerson youPl8fem_Pron ;
- TheyFemale = mkPerson they8fem_Pron ;
-
- oper
- NPLanguage : Type = {lang : NP ; modif : Adv} ;
- NPNationality : Type = {lang : NPLanguage ; country : NP ; prop : A} ;
-
- mkNPNationality : NPLanguage -> NP -> A -> NPNationality = \la,co,pro -> {
- lang = la ;
- country = co ;
- prop = pro
- } ;
-}
diff --git a/examples/phrasebook/SentencesNor.gf b/examples/phrasebook/SentencesNor.gf
deleted file mode 100644
index cd8b068c1..000000000
--- a/examples/phrasebook/SentencesNor.gf
+++ /dev/null
@@ -1,10 +0,0 @@
-concrete SentencesNor of Sentences = NumeralNor ** SentencesI - [NameNN] with
- (Syntax = SyntaxNor),
- (Symbolic = SymbolicNor),
- (Lexicon = LexiconNor) ** open SyntaxNor, (P = ParadigmsNor) in
-
-{
-
-lin NameNN = mkNP (P.mkPN "NN") ;
-
-}
diff --git a/examples/phrasebook/SentencesPes.gf b/examples/phrasebook/SentencesPes.gf
deleted file mode 100644
index 32a181473..000000000
--- a/examples/phrasebook/SentencesPes.gf
+++ /dev/null
@@ -1,8 +0,0 @@
-concrete SentencesPes of Sentences = NumeralPes ** SentencesI - [sing,NNumeral,ObjPlural,MCan,MKnow,MMust,V2Wait,VWait] with
- (Syntax = SyntaxPes),
- (Symbolic = SymbolicPes),
- (Lexicon = LexiconPes) **
- {
- lin ObjPlural k = mkNP k ;
- };
-
diff --git a/examples/phrasebook/SentencesPol.gf b/examples/phrasebook/SentencesPol.gf
deleted file mode 100644
index 00815e6bc..000000000
--- a/examples/phrasebook/SentencesPol.gf
+++ /dev/null
@@ -1,52 +0,0 @@
-concrete SentencesPol of Sentences =
- NumeralPol ** SentencesI - [
- Day,PDay,OnDay,LAnguage,PLanguage,Citizenship,
- PCitizenship,CitiNat,PropCit,ACitizen,
- Nationality,Transport,PTransport,ByTransp,
- IFemale,YouFamFemale, YouPolFemale,YouPolMale,
- IMale, YouFamMale --- AR, for pro drop
- ]
- with
- (Syntax = SyntaxPol),
- (Symbolic = SymbolicPol),
- (Lexicon = LexiconPol) **
- open (N = NounPol),(R = ResPol), (Pron = PronounMorphoPol), (E = ExtraPol), Prelude in {
-
- flags
- optimize =values ; coding =utf8 ;
-
- lincat
- Day = { name,hab,adv:Str } ;
- LAnguage = A ;
- Citizenship = { prop:A; citizenMSg:Str; citizenMPl:Str; citizenF:Str} ;
- Nationality = { lang: A; prop: A; country: NP; citizenMSg:Str; citizenMPl:Str; citizenF:Str } ;
- Transport = { cn:CN; verb:Str} ;
-
- lin
- PDay d = (ss d.name) ** {lock_Text = <>};
- OnDay d = (ss d.adv) ** {lock_Adv = <>};
- PLanguage l = (ss l.pos.s1) ** {lock_Text = <>};
- PTransport t = mkPhrase (mkUtt t.cn) ;
- ByTransp t = { s=t.cn.s!R.Sg!R.Instr; lock_Adv = <>} ;
- PCitizenship c = mkPhrase (mkUtt (mkAP c.prop)) ;
- CitiNat n = {prop=n.prop; citizenMSg=n.citizenMSg; citizenMPl=n.citizenMPl; citizenF=n.citizenF};
- PropCit c = c.prop;
- ACitizen p n = mkCl p.name {s= case p.name.gn of {
- R.MascPersSg=>n.citizenMSg; R.FemSg=>n.citizenF; _=>n.citizenMPl
- };
- lock_Adv=<>};
-
---- AR 8/12/2010: using pro drop
- IMale = mkPerson (E.ProDrop Pron.pronJa);
- IFemale = mkPerson (E.ProDrop (Pron.pronJaFoo (R.PGen R.Fem)));
- YouFamMale = mkPerson (E.ProDrop (Pron.pronTy));
- YouFamFemale = mkPerson (E.ProDrop (Pron.pronTyFoo (R.PGen R.Fem)));
--- YouPolFemale = mkPerson (E.ProDrop (Pron.pronPani));
--- YouPolMale = mkPerson (E.ProDrop (Pron.pronPan));
-
---- original
---- IFemale = mkPerson (Pron.pronJaFoo (R.PGen R.Fem));
---- YouFamFemale = mkPerson (Pron.pronTyFoo (R.PGen R.Fem));
- YouPolFemale = mkPerson (Pron.pronPani);
- YouPolMale = mkPerson (Pron.pronPan);
-}
diff --git a/examples/phrasebook/SentencesRon.gf b/examples/phrasebook/SentencesRon.gf
deleted file mode 100644
index 70d3e34d0..000000000
--- a/examples/phrasebook/SentencesRon.gf
+++ /dev/null
@@ -1,71 +0,0 @@
-
-concrete SentencesRon of Sentences = NumeralRon ** SentencesI - [
- IsMass,
- IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
- ThePlace, Nationality, CitiNat, Citizenship, ACitizen, PCitizenship, PropCit
-]
- with
- (Syntax = SyntaxRon),
- (Symbolic = SymbolicRon),
- (Lexicon = LexiconRon) **
- open SyntaxRon, ExtraRon, (R = ResRon), (P = ParamX), (PR = ParadigmsRon) in {
-
-oper
- NPNationalityRon : Type = {lang : NP ;
- country : NP ;
- propObj : A;
- propPers : R.Gender => P.Number => Str};
- CitizenshipRon : Type = {pers : R.Gender => P.Number => Str;
- prop : A};
-
-
- mkNPNationalityRon : NP -> NP -> A -> Str -> Str -> Str -> Str -> NPNationalityRon = \la,co,pro, s1,s2,s3,s4 ->
- {lang = la ;
- country = co ;
- propObj = pro ;
- propPers = mkCitiPers s1 s2 s3 s4
- } ;
-
- mkCitizenshipRon : A -> Str -> Str -> Str -> Str -> CitizenshipRon = \aobj, ap1, ap2, ap3, ap4 -> {pers = mkCitiPers ap1 ap2 ap3 ap4; prop = aobj};
-
- mkCitiPers : Str -> Str -> Str -> Str -> (R.Gender => P.Number => Str) = \francez, franceza, francezi, franceze ->
-table {R.Masc => table {P.Sg => francez;
- P.Pl => francezi};
- R.Fem => table {P.Sg => franceza;
- P.Pl => franceze}};
-
-
-lincat
- Nationality = NPNationalityRon ;
- Citizenship = CitizenshipRon ;
-
-lin
- IsMass m q = mkCl (mkNP the_Det m) q ; -- le vin allemand est bon
-
- IFemale = {name = mkNP i8fem_Pron ; isPron = True ; poss = mkQuant i_Pron} ;
- YouFamFemale = {name = mkNP youSg8fem_Pron ; isPron = True ; poss = mkQuant youSg_Pron} ;
- YouPolFemale = {name = mkNP youPol8fem_Pron ; isPron = True ; poss = mkQuant youPol_Pron};
- IMale = {name = mkNP i_Pron ; isPron = True ; poss = mkQuant i_Pron} ;
- YouFamMale = {name = mkNP youSg_Pron ; isPron = True ; poss = mkQuant youSg_Pron} ;
- YouPolMale = {name = mkNP youPol_Pron ; isPron = True ; poss = mkQuant youPol_Pron} ;
- ThePlace kind = let name : NP = mkNP the_Quant kind.name ;
- condAt : Bool = needIndefPlace kind.name kind.at ;
- condTo : Bool = needIndefPlace kind.name kind.to in {
- name = name ;
- at = if_then_else Adv condAt (mkAdv kind.at (mkNP the_Art kind.name)) (mkAdv kind.at name);
- to = if_then_else Adv condTo (mkAdv kind.at (mkNP the_Art kind.name)) (mkAdv kind.to name)
- } ;
-CitiNat n = {pers = n.propPers; prop = n.propObj} ;
-ACitizen p n = mkCl p.name (PR.mkAdv (n.pers ! (p.name.a.g) ! (p.name.a.n))) ;
-PCitizenship x = mkPhrase (mkUtt (mkAP x.prop)) ;
-PropCit p = p.prop ;
-
-
-oper needIndefPlace : CN -> Prep -> Bool = \cn,prep ->
- case of
- { => True ;
- => False ;
- _ => True
- };
-}
-
diff --git a/examples/phrasebook/SentencesRus.gf b/examples/phrasebook/SentencesRus.gf
deleted file mode 100644
index cdde941e1..000000000
--- a/examples/phrasebook/SentencesRus.gf
+++ /dev/null
@@ -1,25 +0,0 @@
-concrete SentencesRus of Sentences = NumeralRus ** SentencesI - [
- NameNN, SHave, SHaveNo, SHaveNoMass, QDoHave, AHaveCurr,
- IMale, IFemale, YouFamMale, YouFamFemale, YouPolMale, YouPolFemale
- ] with
- (Syntax = SyntaxRus),
- (Symbolic = SymbolicRus),
- (Lexicon = LexiconRus), (Grammar = GrammarRus) ** open Prelude, SyntaxRus, ExtraRus, (P = ParadigmsRus), (R = ResRus), (M = MorphoRus) in {
- lin
- SHave p obj = mkS (mkCl (mkVP have_V3 obj p.name)) ;
- SHaveNo p obj = mkS (mkCl (mkVP have_not_V3 (mkNP obj) p.name)) ;
- SHaveNoMass p obj = mkS (mkCl (mkVP have_not_V3 (mkNP obj) p.name)) ;
- QDoHave p obj = mkQS (mkQCl (mkCl (mkVP have_V3 obj p.name))) ;
-
- AHaveCurr p curr = mkCl (mkVP have_V3 (mkNP aPl_Det curr) p.name) ;
-
- lin
- NameNN = mkNP (P.mkN "NN") ;
- IMale = mkPerson (M.pronYa R.Masc) ;
- IFemale = mkPerson (M.pronYa R.Fem) ;
- YouFamMale = mkPerson (M.pronTu R.Masc) ;
- YouFamFemale = mkPerson (M.pronTu R.Fem) ;
- YouPolMale = mkPerson (M.pronVu R.Masc) ;
- YouPolFemale = mkPerson (M.pronVu R.Fem) ;
-
-}
\ No newline at end of file
diff --git a/examples/phrasebook/SentencesSnd.gf b/examples/phrasebook/SentencesSnd.gf
deleted file mode 100644
index c8d1c8c88..000000000
--- a/examples/phrasebook/SentencesSnd.gf
+++ /dev/null
@@ -1,38 +0,0 @@
-concrete SentencesSnd of Sentences = NumeralSnd ** SentencesI - [sing,IFemale,YouFamFemale,YouPolFemale,MMust,YouPlurFamFemale,YouPlurPolFemale,YouFamMale,VRead,VWrite] with
- (Syntax = SyntaxSnd),
- (Symbolic = SymbolicSnd),
- (Lexicon = LexiconSnd) **
- open
- (P=ParadigmsSnd),
- ParamX,
- CommonHindustani in {
-{-
- lin IFemale = mkPerson (P.personalPN myN mjh "" myra myry myrE myry Sg Fem Pers1) ;
- YouFamMale = mkPerson (P.personalPN tum tum tum tumhara tumhary tumharay tumhary Pl Masc Pers2_Familiar) ;
- YouFamFemale = mkPerson (P.personalPN tum tum tum tyra tyry tyrE tyry Pl Fem Pers2_Familiar) ;
- YouPolFemale = mkPerson (P.personalPN ap ap ap apka apky apkE apky Pl Fem Pers2_Respect);
- YouPlurFamFemale = mkPerson (P.personalPN tum tum tum tumhara tumhary tumharay tumhary Pl Fem Pers2_Familiar) ;
- YouPlurPolFemale = mkPerson (P.personalPN ap ap ap apka apky apkE apky Pl Fem Pers2_Respect) ;
-
-flags coding = utf8 ;
-
-oper
- myN = "میں" ;
- mjh = "مجھ" ;
- myra = "میرا" ;
- myry = "میری" ;
- myrE = "میرے" ;
- tw = "تو" ;
- tum = "تم" ;
- tyra = "تیرا" ;
- tyry = "تیری" ;
- tyrE = "تیرے" ;
- tumhara = "تمھارا" ;
- tumhary = "تمھاری" ;
- tumharay = "تمھارے" ;
- ap = "آپ" ;
- apka = ["آپ كا"] ;
- apky = ["آپ كی"] ;
- apkE = ["آپ كے"] ;
- -}
- } ;
diff --git a/examples/phrasebook/SentencesSpa.gf b/examples/phrasebook/SentencesSpa.gf
deleted file mode 100644
index 162d5ab78..000000000
--- a/examples/phrasebook/SentencesSpa.gf
+++ /dev/null
@@ -1,104 +0,0 @@
-concrete SentencesSpa of Sentences = NumeralSpa ** SentencesI - [
- IsMass,
- IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
- WeMale, WeFemale, YouPlurFamMale, YouPlurFamFemale, YouPlurPolFemale, YouPlurPolMale, TheyMale, TheyFemale,
- WherePlace, WherePerson, ABePlace,
- PImperativeFamNeg, PImperativePlurNeg, --negative imperatives in subjunctive
- Superlative
- ]
- with
- (Syntax = SyntaxSpa),
- (Symbolic = SymbolicSpa),
- (Lexicon = LexiconSpa) **
- open ParadigmsSpa, BeschSpa, SyntaxSpa, ExtraSpa, Prelude in {
-
-flags coding = utf8 ;
-
- lincat
- Superlative = OrdSuperlative ; -- {ord: Ord ; isPre: Bool}
-
- lin
-
- IsMass m q = mkCl (mkNP the_Det m) q ; -- le vin allemand est bon
-
- IFemale =
- {name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = mkQuant i_Pron} ;
- YouFamFemale =
- {name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ;
- YouPolFemale =
- {name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = mkQuant youPol_Pron};
- IMale =
- {name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = mkQuant i_Pron} ;
- YouFamMale =
- {name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ;
- YouPolMale =
- {name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = mkQuant youPol_Pron} ;
- He =
- {name = mkNP (ProDrop he_Pron) ; isPron = True ; poss = mkQuant he_Pron} ;
- She =
- {name = mkNP (ProDrop she_Pron) ; isPron = True ; poss = mkQuant she_Pron} ;
- WeMale =
- {name = mkNP (ProDrop we_Pron) ; isPron = True ; poss = mkQuant we_Pron} ;
- WeFemale =
- {name = mkNP (ProDrop we8fem_Pron) ; isPron = True ; poss = mkQuant we_Pron} ;
- YouPlurFamMale =
- {name = mkNP (ProDrop youPl_Pron) ; isPron = True ; poss = mkQuant youPl_Pron} ;
- YouPlurFamFemale =
- {name = mkNP (ProDrop youPl8fem_Pron) ; isPron = True ; poss = mkQuant youPl_Pron} ;
- YouPlurPolMale =
- {name = mkNP (ProDrop youPolPl_Pron) ; isPron = True ; poss = mkQuant youPolPl_Pron} ;
- YouPlurPolFemale =
- {name = mkNP (ProDrop youPolPl8fem_Pron) ; isPron = True ; poss = mkQuant youPolPl_Pron};
- TheyMale =
- {name = mkNP (ProDrop they_Pron) ; isPron = True ; poss = mkQuant they_Pron} ;
- TheyFemale =
- {name = mkNP (ProDrop they8fem_Pron) ; isPron = True ; poss = mkQuant they_Pron} ;
-
- --IL 2012-10-12
- --Negative imperative is done with subjunctive.
- --PImperativePolNeg is fine in RGL, but fam and plur are wrong
- --A special ImpNeg in ExtraSpa is defined for that
- PImperativeFamNeg v = phrasePlease (ImpNeg (mkNP (ProDrop youSg_Pron)) v) ;
- PImperativePlurNeg v = phrasePlease (ImpNeg (mkNP (ProDrop youPl_Pron)) v) ;
-
- ABePlace p place = mkCl p.name (mkVP (mkVP estar) place.at) ;
-
- WherePlace place = mkQS (mkQCl where_IAdv (mkCl place.name estar) ) ;
-
- WherePerson person = mkQS (mkQCl where_IAdv (mkCl person.name estar) ) ;
-
-oper
-
- estar = mkV (estar_2 "estar") ;
-
- CNPlace : Type = {name : CN ; at : Prep ; to : Prep } ;
-
- mkCNPlace : CN -> Prep -> Prep -> CNPlace = \p,i,t -> {
- name = p ;
- at = i ;
- to = t ;
- } ;
-
- OrdSuperlative : Type = {ord: Ord ; isPre: Bool} ;
-
- placeNPSuperl : OrdSuperlative -> CNPlace -> NPPlace = \sup,kind -> case sup.isPre of {
- True => placeNPDet sup.ord kind ;
- False => placeNPAdj sup.ord kind
- } ;
-
- -- "el mejor aeropuerto"
- placeNPDet : Ord -> CNPlace -> NPPlace = \ord,kind ->
- let name : NP = mkNP (mkDet the_Art ord) kind.name in {
- name = name ;
- at = SyntaxSpa.mkAdv kind.at name ;
- to = SyntaxSpa.mkAdv kind.to name ;
- };
-
- -- "el aeropuerto más grande"
- placeNPAdj : Ord -> CNPlace -> NPPlace = \ord,kind ->
- let name : NP = mkNP the_Art (mkCN kind.name (mkAP ord)) in {
- name = name ;
- at = SyntaxSpa.mkAdv kind.at name ;
- to = SyntaxSpa.mkAdv kind.to name ;
- };
-}
diff --git a/examples/phrasebook/SentencesSwe.gf b/examples/phrasebook/SentencesSwe.gf
deleted file mode 100644
index 9e3ae577f..000000000
--- a/examples/phrasebook/SentencesSwe.gf
+++ /dev/null
@@ -1,14 +0,0 @@
-concrete SentencesSwe of Sentences = NumeralSwe ** SentencesI - [
- PYesToNo, NameNN,
- DrinkNumber -- should be utrum gender when countable
- ] with
- (Syntax = SyntaxSwe),
- (Symbolic = SymbolicSwe),
- (Lexicon = LexiconSwe) ** open Prelude, SyntaxSwe, (P = ParadigmsSwe) in {
-
- lin
- PYesToNo = mkPhrase (lin Utt (ss "jo")) ;
- NameNN = mkNP (P.mkPN "NN") ;
- DrinkNumber n d = mkNP n (mkCN (P.mkN [] [] [] [] P.utrum) (lin Adv (mkUtt d))) ; --- empty classifier - quite a hack...
-
-}
diff --git a/examples/phrasebook/SentencesTha.gf b/examples/phrasebook/SentencesTha.gf
deleted file mode 100644
index ea5d7fbe9..000000000
--- a/examples/phrasebook/SentencesTha.gf
+++ /dev/null
@@ -1,26 +0,0 @@
-concrete SentencesTha of Sentences = NumeralTha ** SentencesI - [
- PGreetingMale, PGreetingFemale,
- GObjectPlease,
- IMale, YouFamMale, YouFamFemale,
- ACitizen
- ] with
- (Syntax = SyntaxTha),
- (Symbolic = SymbolicTha),
- (Lexicon = LexiconTha) ** open SyntaxTha, (P = ParadigmsTha), (R = ResTha) in {
-
-flags coding=utf8 ;
-lin
- PGreetingMale g = mkText (lin Text g) (lin Text (ss "ครับ")) | g ;
- PGreetingFemale g = mkText (lin Text g) (lin Text (ss "ค่ะ")) | g ;
-
- GObjectPlease o =
- lin Text (mkPhr (lin PConj (ss "ขอ")) (mkUtt o) (lin Voc (ss "หน่อย"))) | lin Text (mkUtt o) ;
-
- ACitizen p n = mkCl p.name (mkVP (mkCN n (P.personN R.khon_s))) ;
-
- IMale = mkPerson (R.mkNP "ผม") ;
- YouFamMale, YouFamFemale = mkPerson (R.mkNP "เธอ") ;
-
-oper
- thpron = R.thpron ;
-}
diff --git a/examples/phrasebook/SentencesUrd.gf b/examples/phrasebook/SentencesUrd.gf
deleted file mode 100644
index f94c0cdc9..000000000
--- a/examples/phrasebook/SentencesUrd.gf
+++ /dev/null
@@ -1,36 +0,0 @@
-concrete SentencesUrd of Sentences = NumeralUrd ** SentencesI - [sing,IFemale,YouFamFemale,YouPolFemale,MMust,YouPlurFamFemale,YouPlurPolFemale,YouFamMale] with
- (Syntax = SyntaxUrd),
- (Symbolic = SymbolicUrd),
- (Lexicon = LexiconUrd) **
- open
- (P=ParadigmsUrd),
- ParamX,
- CommonHindustani in {
- lin IFemale = mkPerson (P.personalPN myN mjh "" myra myry myrE myry Sg Fem Pers1) ;
- YouFamMale = mkPerson (P.personalPN tum tum tum tumhara tumhary tumharay tumhary Pl Masc Pers2_Familiar) ;
- YouFamFemale = mkPerson (P.personalPN tum tum tum tyra tyry tyrE tyry Pl Fem Pers2_Familiar) ;
- YouPolFemale = mkPerson (P.personalPN ap ap ap apka apky apkE apky Pl Fem Pers2_Respect);
- YouPlurFamFemale = mkPerson (P.personalPN tum tum tum tumhara tumhary tumharay tumhary Pl Fem Pers2_Familiar) ;
- YouPlurPolFemale = mkPerson (P.personalPN ap ap ap apka apky apkE apky Pl Fem Pers2_Respect) ;
-
-flags coding = utf8 ;
-
-oper
- myN = "میں" ;
- mjh = "مجھ" ;
- myra = "میرا" ;
- myry = "میری" ;
- myrE = "میرے" ;
- tw = "تو" ;
- tum = "تم" ;
- tyra = "تیرا" ;
- tyry = "تیری" ;
- tyrE = "تیرے" ;
- tumhara = "تمھارا" ;
- tumhary = "تمھاری" ;
- tumharay = "تمھارے" ;
- ap = "آپ" ;
- apka = ["آپ كا"] ;
- apky = ["آپ كی"] ;
- apkE = ["آپ كے"] ;
- } ;
diff --git a/examples/phrasebook/Update.hs b/examples/phrasebook/Update.hs
deleted file mode 100644
index 3d9232d61..000000000
--- a/examples/phrasebook/Update.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-import System
-
-main = do
- file:_ <- getArgs
- updates <- readFile file >= return . readUpdates
- mapM_ (doUpdate file) updates
- return ()
-
-type Update = (FilePath, [String])
-
-readUpdates :: String -> [Update]
-readUpdates s = []
-
-doUpdate :: FilePath -> Update -> IO ()
-doUpdate src (target,ls) = do
- s <- readFile target
- let beg = dropLastBracket s
- let tmp = tmpFile target
- writeFile tmp beg
- appendFile tmp $ unlines [(line ++ "-- UPDATE FROM " ++ src) | line <- ls]
- appendFile tmp "\n}\n"
-
-tmpFile file = "tmp-update/"++ file
-
----- quick and dirty
-dropLastBracket = reverse . init . dropWhile (/='}') . reverse
-
diff --git a/examples/phrasebook/Words.gf b/examples/phrasebook/Words.gf
deleted file mode 100644
index 08704990a..000000000
--- a/examples/phrasebook/Words.gf
+++ /dev/null
@@ -1,254 +0,0 @@
---2 Words and idiomatic phrases of the Phrasebook
-
-
--- (c) 2010 Aarne Ranta under LGPL --%
-
-abstract Words = Sentences ** {
-
- fun
-
--- kinds of items (so far mostly food stuff)
-
- Apple : Kind ;
- Beer : DrinkKind ;
- Bread : MassKind ;
- Cheese : MassKind ;
- Chicken : MassKind ;
- Coffee : DrinkKind ;
- Fish : MassKind ;
- Meat : MassKind ;
- Milk : MassKind ;
- Pizza : Kind ;
- Salt : MassKind ;
- Tea : DrinkKind ;
- Water : DrinkKind ;
- Wine : DrinkKind ;
-
--- properties of kinds (so far mostly of food)
-
- Bad : Property ;
- Boring : Property ;
- Cheap : Property ;
- Cold : Property ;
- Delicious : Property ;
- Expensive : Property ;
- Fresh : Property ;
- Good : Property ;
- Suspect : Property ;
- Warm : Property ;
-
--- kinds of places
-
- Airport : PlaceKind ;
- AmusementPark : PlaceKind ;
- Bank : PlaceKind ;
- Bar : PlaceKind ;
- Cafeteria : PlaceKind ;
- Center : PlaceKind ;
- Cinema : PlaceKind ;
- Church : PlaceKind ;
- Disco : PlaceKind ;
- Hospital : PlaceKind ;
- Hotel : PlaceKind ;
- Museum : PlaceKind ;
- Park : PlaceKind ;
- Parking : PlaceKind ;
- Pharmacy : PlaceKind ;
- PostOffice : PlaceKind ;
- Pub : PlaceKind ;
- Restaurant : PlaceKind ;
- School : PlaceKind ;
- Shop : PlaceKind ;
- Station : PlaceKind ;
- Supermarket : PlaceKind ;
- Theatre : PlaceKind ;
- Toilet : PlaceKind ;
- University : PlaceKind ;
- Zoo : PlaceKind ;
-
- CitRestaurant : Citizenship -> PlaceKind ;
-
--- currency units
-
- DanishCrown : Currency ;
- Dollar : Currency ;
- Euro : Currency ; -- Germany, France, Italy, Finland, Spain, The Netherlands
- Lei : Currency ; -- Romania
- Leva : Currency ; -- Bulgaria
- NorwegianCrown : Currency ;
- Pound : Currency ; -- UK
- Rouble : Currency ; -- Russia
- Rupee : Currency ; -- India
- SwedishCrown : Currency ;
- Zloty : Currency ; -- Poland
- Yuan : Currency ; -- China
-
-
--- nationalities, countries, languages, citizenships
-
- Belgian : Citizenship ;
- Belgium : Country ;
- Bulgarian : Nationality ;
- Catalan : Nationality ;
- Chinese : Nationality ;
- Danish : Nationality ;
- Dutch : Nationality ;
- English : Nationality ;
- Finnish : Nationality ;
- Flemish : LAnguage ;
- French : Nationality ;
- German : Nationality ;
- Hindi : LAnguage ;
- India : Country ;
- Indian : Citizenship ;
- Italian : Nationality ;
- Norwegian : Nationality ;
- Polish : Nationality ;
- Romanian : Nationality ;
- Russian : Nationality ;
- Spanish : Nationality ;
- Swedish : Nationality ;
-
--- means of transportation
-
- Bike : Transport ;
- Bus : Transport ;
- Car : Transport ;
- Ferry : Transport ;
- Plane : Transport ;
- Subway : Transport ;
- Taxi : Transport ;
- Train : Transport ;
- Tram : Transport ;
-
- ByFoot : ByTransport ;
-
-
--- Actions (which can be expressed by different structures in different languages).
--- Notice that also negations and questions can be formed from these.
-
- AHasAge : Person -> Number -> Action ; -- I am seventy years
- AHasChildren: Person -> Number -> Action ; -- I have six children
- AHasName : Person -> Name -> Action ; -- my name is Bond
- AHasRoom : Person -> Number -> Action ; -- you have a room for five persons
- AHasTable : Person -> Number -> Action ; -- you have a table for five persons
- AHungry : Person -> Action ; -- I am hungry
- AIll : Person -> Action ; -- I am ill
- AKnow : Person -> Action ; -- I (don't) know
- ALike : Person -> Item -> Action ; -- I like this pizza
- ALive : Person -> Country -> Action ; -- I live in Sweden
- ALove : Person -> Person -> Action ; -- I love you
- AMarried : Person -> Action ; -- I am married
- AReady : Person -> Action ; -- I am ready
- AScared : Person -> Action ; -- I am scared
- ASpeak : Person -> LAnguage -> Action ; -- I speak Finnish
- AThirsty : Person -> Action ; -- I am thirsty
- ATired : Person -> Action ; -- I am tired
- AUnderstand : Person -> Action ; -- I (don't) understand
- AWant : Person -> Object -> Action ; -- I want two apples
- AWantGo : Person -> Place -> Action ; -- I want to go to the hospital
-
--- Miscellaneous phrases. Notice that also negations and questions can be formed from
--- propositions.
-
- QWhatAge : Person -> Question ; -- how old are you
- QWhatName : Person -> Question ; -- what is your name
- HowMuchCost : Item -> Question ; -- how much does the pizza cost
- ItCost : Item -> Price -> Proposition ; -- the pizza costs five euros
-
- PropOpen : Place -> Proposition ; -- the museum is open
- PropClosed : Place -> Proposition ; -- the museum is closed
- PropOpenDate : Place -> Date -> Proposition ; -- the museum is open today
- PropClosedDate : Place -> Date -> Proposition ; -- the museum is closed today
- PropOpenDay : Place -> Day -> Proposition ; -- the museum is open on Mondays
- PropClosedDay : Place -> Day -> Proposition ; -- the museum is closed on Mondays
-
- PSeeYouPlaceDate : Place -> Date -> Greeting ; -- see you in the bar on Monday
- PSeeYouPlace : Place -> Greeting ; -- see you in the bar
- PSeeYouDate : Date -> Greeting ; -- see you on Monday
-
--- family relations
-
- Wife, Husband : Person -> Person ; -- my wife, your husband
- Son, Daughter : Person -> Person ; -- my son, your husband
- Children : Person -> Person ; -- my children
-
--- week days
-
- Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday : Day ;
-
- Tomorrow : Date ;
-
--- transports
-
- HowFar : Place -> Question ; -- how far is the zoo ?
- HowFarFrom : Place -> Place -> Question ; -- how far is the center from the hotel ?
- HowFarFromBy : Place -> Place -> ByTransport -> Question ;
- -- how far is the airport from the hotel by taxi ?
- HowFarBy : Place -> ByTransport -> Question ; -- how far is the museum by bus ?
-
- WhichTranspPlace : Transport -> Place -> Question ; -- which bus goes to the hotel
- IsTranspPlace : Transport -> Place -> Question ; -- is there a metro to the airport ?
-
--- modifiers of places
-
- TheBest : Superlative ;
- TheClosest : Superlative ;
- TheCheapest : Superlative ;
- TheMostExpensive : Superlative ;
- TheMostPopular : Superlative ;
- TheWorst : Superlative ;
-
- SuperlPlace : Superlative -> PlaceKind -> Place ; -- the best bar
-
-
---------------------------------------------------
--- New 30/11/2011 AR
---------------------------------------------------
-{- 28/8/2012 still only available in Bul Eng Fin Swe Tha
-
- fun
- Thai : Nationality ;
- Baht : Currency ; -- Thailand
-
- Rice : MassKind ;
- Pork : MassKind ;
- Beef : MassKind ;
- Noodles : PlurKind ;
- Shrimps : PlurKind ;
-
- Chili : MassKind ;
- Garlic : MassKind ;
-
- Durian : Kind ;
- Mango : Kind ;
- Pineapple : Kind ;
- Egg : Kind ;
-
- Coke : DrinkKind ;
- IceCream : DrinkKind ; --- both mass and plural
- OrangeJuice : DrinkKind ;
- Lemonade : DrinkKind ;
- Salad : DrinkKind ;
-
- Beach : PlaceKind ;
-
- ItsRaining : Proposition ;
- ItsWindy : Proposition ;
- ItsWarm : Proposition ;
- ItsCold : Proposition ;
- SunShine : Proposition ;
-
- Smoke : VerbPhrase ;
-
- ADoctor : Person -> Action ;
- AProfessor : Person -> Action ;
- ALawyer : Person -> Action ;
- AEngineer : Person -> Action ;
- ATeacher : Person -> Action ;
- ACook : Person -> Action ;
- AStudent : Person -> Action ;
- ABusinessman : Person -> Action ;
--}
-
-}
diff --git a/examples/phrasebook/WordsBul.gf b/examples/phrasebook/WordsBul.gf
deleted file mode 100644
index 527b3604a..000000000
--- a/examples/phrasebook/WordsBul.gf
+++ /dev/null
@@ -1,305 +0,0 @@
---2 Implementations of Words, with English as example
-
-concrete WordsBul of Words = SentencesBul **
- open
- SyntaxBul,
- (R = ResBul),
- ParadigmsBul,
- (L = LexiconBul),
- (P = ParadigmsBul),
- ExtraBul,
- MorphoFunsBul,
- Prelude in {
-
- flags
- coding=utf8;
-
- lin
-
--- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN066 "сирене") ;
- Chicken = mkCN (mkN065 "пиле") ;
- Coffee = mkCN (mkN065 "кафе") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN054 "месо") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN041 "пица") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN028 "чай") ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
-
- Bad = L.bad_A ;
- Boring = mkA079 "еднообразен" ;
- Cheap = mkA076 "евтин" ;
- Cold = L.cold_A ;
- Delicious = mkA079 "превъзходен" ;
- Expensive = mkA076 "скъп" ;
- Fresh = mkA076 "свеж" ;
- Good = L.good_A ;
- Suspect = mkA079 "подозрителен" ;
- Warm = L.warm_A ;
-
--- Places require different prepositions to express location; in some languages
--- also the directional preposition varies, but in English we use $to$, as
--- defined by $mkPlace$.
-
- Airport = mkPlace (mkN066 "летище") na_Prep ;
- AmusementPark = mkCompoundPlace (mkA079 "увеселителен") (mkN001 "парк") in_Prep ;
- Bank = mkPlace (mkN041 "банка") in_Prep ;
- Bar = mkPlace (mkN001 "бар") in_Prep ;
- Cafeteria = mkPlace (mkN065 "кафе") in_Prep ;
- Center = mkPlace (mkN009a "център") in_Prep ;
- Cinema = mkPlace (mkN054 "кино") na_Prep ;
- Church = mkPlace (mkN041 "църква") in_Prep ;
- Disco = mkPlace (mkN041 "дискотека") in_Prep ;
- Hospital = mkPlace (mkN041 "болница") in_Prep ;
- Hotel = mkPlace (mkN007 "хотел") in_Prep ;
- Museum = mkPlace (mkN032 "музей") in_Prep ;
- Park = mkPlace (mkN001 "парк") in_Prep ;
- Parking = mkPlace (mkN007 "паркинг") na_Prep ;
- Pharmacy = mkPlace (mkN041 "аптека") in_Prep ;
- PostOffice = mkPlace (mkN041 "поща") in_Prep ;
- Pub = mkPlace (mkN001 "бар") in_Prep ;
- Restaurant = mkPlace (mkN007 "ресторант") in_Prep ;
- School = mkPlace (mkN007 "училище") in_Prep ;
- Shop = mkPlace (mkN007 "магазин") in_Prep ;
- Station = mkPlace (mkN041 "гара") na_Prep ;
- Supermarket = mkPlace (mkN007 "супермаркет") in_Prep ;
- Theatre = mkPlace (mkN009 "театър") na_Prep ;
- Toilet = mkPlace (mkN041 "тоалетна") in_Prep ;
- University = mkPlace (mkN007 "университет") in_Prep ;
- Zoo = mkPlace (mkN001 "зоопарк") in_Prep ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit.s2 (mkN007 "ресторант")) in_Prep to_Prep ;
-
--- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
-
- DanishCrown = mkCN (mkA078 "датски") (mkN041 "крона") | mkCN (mkN041 "крона") ;
- Dollar = mkCN (mkN007 "долар") ;
- Euro = mkCN (mkN054 "евро") ;
- Lei = mkCN (mkN047 "лея") ;
- Leva = mkCN (mkN001 "лев") ;
- NorwegianCrown = mkCN (mkA078 "норвежки") (mkN041 "крона") | mkCN (mkN041 "крона") ;
- Pound = mkCN (mkN007 "паунд") ;
- Rouble = mkCN (mkN041 "рубла") ;
- SwedishCrown = mkCN (mkA078 "шведски") (mkN041 "крона") | mkCN (mkN041 "крона") ;
- Zloty = mkCN (mkN041 "злота") ;
- Baht = mkCN (mkN007a "бат") ;
-
--- Nationalities
-
- Belgian = mkCitizenship (mkN013 "белгиец") (mkN041 "белгийка") (mkA078 "белгийски") ;
- Belgium = mkPN "Белгия" R.Fem ;
- Bulgarian = mkNat (mkN018 "българин") (mkN041 "българка") (mkA078 "български") (mkPN "България" R.Fem) ;
- Catalan = mkNat (mkN008a "каталонец") (mkN041 "каталонка") (mkA078 "каталонски") (mkPN "Каталуния" R.Fem) ;
- Danish = mkNat (mkN018 "датчанин") (mkN041 "датчанка") (mkA078 "датски") (mkPN "Дания" R.Fem) ;
- Dutch = mkNat (mkN008a "холандец") (mkN041 "холандка") (mkA078 "холандски") (mkPN "Холандия" R.Fem) ;
- English = mkNat (mkN018 "англичанин") (mkN041 "англичанка") (mkA078 "английски") (mkPN "Англия" R.Fem) ;
- Finnish = mkNat (mkN008a "финландец") (mkN041 "финландка") (mkA078 "финландски") (mkPN "Финландия" R.Fem) ;
- Flemish = mkA078 "фламандски" ;
- French = mkNat (mkN018 "французин") (mkN041 "французойка") (mkA078 "френски") (mkPN "Франция" R.Fem) ;
- German = mkNat (mkN008a "германец") (mkN041 "германка") (mkA078 "немски") (mkPN "Германия" R.Fem) ;
- Italian = mkNat (mkN008a "италианец") (mkN041 "италианка") (mkA078 "италиански") (mkPN "Италия" R.Fem) ;
- Norwegian = mkNat (mkN008a "норвежец") (mkN041 "норвежка") (mkA078 "норвежки") (mkPN "Норвегия" R.Fem) ;
- Polish = mkNat (mkN014 "поляк") (mkN047 "полякиня") (mkA078 "полски") (mkPN "Полша" R.Fem) ;
- Romanian = mkNat (mkN008a "румънец") (mkN041 "румънка") (mkA078 "румънски") (mkPN "Румъния" R.Fem) ;
- Russian = mkNat (mkN014 "руснак") (mkN047 "рускиня") (mkA078 "руски") (mkPN "Русия" R.Fem) ;
- Swedish = mkNat (mkN007 "швед") (mkN041 "шведка") (mkA078 "шведски") (mkPN "Швеция" R.Fem) ;
- Spanish = mkNat (mkN008a "испанец") (mkN041 "испанка") (mkA078 "испански") (mkPN "Испания" R.Fem) ;
- Thai = mkNat (mkN008a "тайландец") (mkN041 "тайландка") (mkA078 "тайландски") (mkPN "Тайланд" R.Masc) ;
-
--- Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN007 "автобус") ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN007 "ферибот") ;
- Plane = mkTransport (mkN007 "самолет") ;
- Subway = mkTransport (mkN054 "метро") ;
- Taxi = mkTransport (mkN073 "такси") ;
- Train = mkTransport (mkN001 "влак") ;
- Tram = mkTransport (mkN032 "трамвай") ;
-
- ByFoot = P.mkAdv "пеша" ;
-
--- Actions: the predication patterns are very often language-dependent.
-
- AHasAge p num = mkCl p.name (SyntaxBul.mkAdv na_Prep (mkNP num L.year_N)) ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2 (mkNP (mkNP a_Det (mkN047 "стая")) (SyntaxBul.mkAdv (mkPrep "за" R.Acc) (mkNP num (mkN014 "човек")))) ;
- AHasTable p num = mkCl p.name have_V2 (mkNP (mkNP a_Det (mkN041 "маса")) (SyntaxBul.mkAdv (mkPrep "за" R.Acc) (mkNP num (mkN014 "човек")))) ;
- AHasName p name = mkCl p.name (dirV2 (medialV (actionV (mkV186 "казвам") (mkV156 "кажа")) R.Acc)) name ;
- AHungry p = mkCl p.name (mkA079 "гладен") ;
- AIll p = mkCl p.name (mkA079 "болен") ;
- AKnow p = mkCl p.name (actionV (mkV186 "знам") (mkV162 "зная")) ;
- ALike p item = mkCl p.name (dirV2 (actionV (mkV186 "харесвам") (mkV186 "харесам"))) item ;
- ALive p co = mkCl p.name (mkVP (mkVP (stateV (mkV160 "живея"))) (SyntaxBul.mkAdv in_Prep (mkNP co))) ;
- ALove p q = mkCl p.name (dirV2 (actionV (mkV186 "обичам") (mkV152 "обикна"))) q.name ;
- AMarried p = mkCl p.name (mkA076 (case p.name.gn of {
- R.GSg R.Fem => "омъжен" ;
- _ => "женен"
- })) ;
- AReady p = mkCl p.name (mkA076 "готов") ;
- AScared p = mkCl p.name (mkA076 "уплашен") ;
- ASpeak p lang = mkCl p.name (dirV2 (stateV (mkV173 "говоря"))) (mkNP (substantiveN lang (R.AMasc R.NonHuman))) ;
- AThirsty p = mkCl p.name (mkA079 "жаден") ;
- ATired p = mkCl p.name (mkA076 "уморен") ;
- AUnderstand p = mkCl p.name (actionV (mkV186 "разбирам") (mkV170 "разбера")) ;
- AWant p obj = mkCl p.name (dirV2 (stateV (mkV186 "искам"))) obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP (actionV (mkV186 "отивам") (mkV146 "отида"))) place.to) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (medialV (actionV (mkV186 "казвам") (mkV156 "кажа")) R.Acc))) ;
- QWhatAge p = mkQS (mkQCl (MorphoFunsBul.mkIAdv "на колко") (mkCl p.name (mkNP a_Quant plNum L.year_N))) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (stateV (mkV186 "струвам")))) ;
- ItCost item price = mkCl item (dirV2 (stateV (mkV186 "струвам"))) price ;
-
- PropOpen p = mkCl p.name open_AP ;
- PropClosed p = mkCl p.name closed_AP ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP open_AP) d) ;
- PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_AP) d) ;
- PropOpenDay p d = mkCl p.name (mkVP (mkVP open_AP) d.habitual) ;
- PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_AP) d.habitual) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("ще се видим"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("ще се видим"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("ще се видим")))
- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
-
--- 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
--- "the wife of my son" for non-pronouns.
-
- Wife = xOf sing (mkN041 "съпруга") ;
- Husband = xOf sing (mkN015 "съпруг") ;
- Son = xOf sing (mkN018 "син") ;
- Daughter = xOf sing (mkN047 "дъщеря") ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay (mkN014 "понеделник") ;
- Tuesday = mkDay (mkN014 "вторник") ;
- Wednesday = mkDay (mkN043 "сряда") ;
- Thursday = mkDay (mkN014 "четвъртък") ;
- Friday = mkDay (mkN014 "петък") ;
- Saturday = mkDay (mkN041 "събота") ;
- Sunday = mkDay (mkN047 "неделя") ;
-
- Tomorrow = P.mkAdv "утре" ;
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA076 "евтин") ;
- TheMostExpensive = mkSuperl (mkA076 "скъп") ;
- TheMostPopular = mkSuperl (mkA079 "известен") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
--- transports
-
- HowFar place = mkQS (mkQCl far_IAdv place.name) ;
- HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP y.name (SyntaxBul.mkAdv from_Prep x.name))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxBul.mkAdv from_Prep x.name)) t)) ;
- HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP y.name t)) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
- Rice = mkCN (mkN040a "ориз") ;
- Pork = mkCN (mkN054 "свинско") ;
- Beef = mkCN (mkN054 "телешко") ;
- Egg = mkCN (mkN066 "яйце") ;
- Noodles = mkCN (mkN075 "спагети") ;
- Shrimps = mkCN (mkN041 "скарида") ;
- Chili = mkCN (mkN065 "чили") ;
- Garlic = mkCN (mkN007 "чесън") ;
- Durian = mkCN (mkN007 "дуриан") ;
- Mango = mkCN (mkN065 "манго") ;
- Pineapple = mkCN (mkN007 "ананас") ;
- Coke = mkCN (mkN041 "кола") ;
- IceCream = mkCN (mkN007 "сладолед") ;
- Salad = mkCN (mkN041 "салата") ;
- OrangeJuice = mkCN (mkA076 "портокалов") (mkN001 "сок") ;
- Lemonade = mkCN (mkN041 "лимонада") ;
-
- Beach = mkPlace (mkN001 "плаж") na_Prep ;
-
- ItsRaining = mkCl (mkVP (stateV (mkV174 "валя"))) ;
- ItsCold = mkCl (mkVP (mkA076 "студен")) ;
- ItsWarm = mkCl (mkVP (mkA080 "топъл")) ;
- ItsWindy = mkCl (mkVP (mkA076 "ветровит")) ;
- SunShine = mkCl (progressiveVP (mkVP (actionV (mkV186 "пеквам") (mkV148 "пека")))) ;
-
- Smoke = mkVP (stateV (mkV176 "пуша")) ;
-
- ADoctor = mkProfession (mkN007a "доктор") ;
- AProfessor = mkProfession (mkN007a "професор") ;
- ALawyer = mkProfession (mkN007a "адвокат") ;
- AEngineer = mkProfession (mkN007a "инженер") ;
- ATeacher = mkProfession (mkN031a "учител") ;
- ACook = mkProfession (mkN007b "готвач") ;
- AStudent = mkProfession (mkN007a "студент") ;
- ABusinessman = mkProfession (mkN007a "бизнесмен") ;
-
--- auxiliaries
-
- oper
- mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
-
- mkCitizenship : N -> N -> A -> Citizenship
- = \male, female, adj -> lin Citizenship {s1 = table {R.Fem => female.s; _ => male.s}; s2 = adj} ;
-
- mkNat : N -> N -> A -> PN -> Nationality
- = \male, female, adj, country -> lin Nationality {s1 = table {R.Fem => female.s; _ => male.s}; s2 = adj; s3 = country} ;
-
- mkDay : N -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day : NP = mkNP d ;
- in mkNPDay day
- (SyntaxBul.mkAdv in_Prep day)
- (SyntaxBul.mkAdv in_Prep (mkNP the_Quant plNum (mkCN d))) ;
-
- mkCompoundPlace : A -> N -> Prep -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \a, n, p ->
- mkCNPlace (mkCN a n) p to_Prep ;
-
- mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \n,p ->
- mkCNPlace (mkCN n) p to_Prep ;
-
- open_AP = mkAP (mkA076 "отворен") ;
- closed_AP = mkAP (mkA076 "затворен") ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n (mkCN x) (\a,b,c -> mkNP (mkNP the_Quant a c) (SyntaxBul.mkAdv (mkPrep "" R.Dat) b)) p ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxBul.mkAdv with_Prep (mkNP n)
- } ;
-
- mkSuperl : A -> Det = \a -> SyntaxBul.mkDet the_Art (SyntaxBul.mkOrd a) ;
-
- far_IAdv = ExtraBul.IAdvAdv (ss "далече") ;
-
- na_Prep = mkPrep "на" R.Acc ;
-
-}
diff --git a/examples/phrasebook/WordsCat.gf b/examples/phrasebook/WordsCat.gf
deleted file mode 100644
index 63383edaf..000000000
--- a/examples/phrasebook/WordsCat.gf
+++ /dev/null
@@ -1,302 +0,0 @@
--- (c) 2010 Aarne Ranta and Olga Caprotti under LGPL
---# -coding=latin1
-
-concrete WordsCat of Words = SentencesCat ** open
- SyntaxCat,
- BeschCat,
- (E = ExtraCat),
- (L = LexiconCat),
- (P = ParadigmsCat),
- (S = SyntaxCat),
- ParadigmsCat,
- Prelude in {
-
-lin
-
--- kinds
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "formatge") ;
- Chicken = mkCN (mkN "pollastre") ;
- Coffee = mkCN (mkN "caf") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "carn" feminine) ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "pizza") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "te") ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- properties
-
- Bad = L.bad_A ;
- Boring = mkA "avorrit" ;
- Cheap = cheap_A ;
- Cold = L.cold_A ;
- Delicious = mkA "delicis" ;
- Expensive = expensive_A ;
- Fresh = mkA "fresc" ;
- Good = L.good_A ;
- Suspect = mkA "sospits" ;
- Warm = mkA "calent" ;
-
--- places
-
-lin
- Airport = mkPlace (mkN "aeroport") ;
- AmusementPark = mkPlace (mkN "parc d' atraccions") ;
- Bank = mkPlace (mkN "banc") ;
- Bar = mkPlace (mkN "bar") ;
- Cafeteria = mkPlace (mkN "cafeteria") ;
- Center = mkPlace (mkN "centre") ;
- Cinema = mkPlace (mkN "cinema" masculine) ;
- Church = mkPlace (mkN "esglsia") ;
- Disco = mkPlace (mkN "discoteca") ;
- Hospital = mkPlace (mkN "hospital") ;
- Hotel = mkPlace (mkN "hotel") ;
- Museum = mkPlace (mkN "museu") ;
- Park = mkPlace (mkN "parc") ;
- Parking = mkPlace (mkN "aparcament" masculine) ;
- Pharmacy = mkPlace (mkN "farmcia") ;
- PostOffice = mkPlace (mkN "oficina de correus" feminine) ;
- Pub = mkPlace (mkN "pub" masculine) ;
- Restaurant = mkPlace (mkN "restaurant") ;
- School = mkPlace (mkN "escola") ;
- Shop = mkPlace (mkN "tenda") ;
- Station = mkPlace (mkN "estaci" feminine) ;
- Supermarket = mkPlace (mkN "supermercat" masculine) ;
- Theatre = mkPlace (mkN "teatre") ;
- Toilet = mkPlace (mkN "lavabo") ;
- University = mkPlace (mkN "universitat" feminine) ;
- Zoo = mkPlace (mkN "zoo" masculine) ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant")) dative dative ;
-
--- currencies
-oper corona : A -> CN = \adj ->
- let corona_N = (mkN "corona")
- in mkCN adj corona_N | mkCN corona_N ;
-lin
- DanishCrown = corona (mkA "dans" "danesa" "danesos" "daneses" "a la danesa") ;
- Dollar = mkCN (mkN "dlar") ;
- Euro = mkCN (mkN "euro" masculine) ;
- Lei = mkCN (mkN "leu" "lei" masculine) ;
- Leva = mkCN (mkN "lev" "lev" masculine) ;
- NorwegianCrown = corona (mkA "noruec" "noruega" "noruecs" "noruegues" "a la noruega") ;
- Pound = mkCN (mkN "lliura") ;
- Rouble = mkCN (mkN "ruble") ;
- SwedishCrown = corona (mkA "suec" "sueca" "suecs" "sueques" "a la sueca") ;
- Zloty = mkCN (mkN "zloty" "zloty" masculine) ;
-
--- nationalities
-
- Belgian = mkA "belga" "belga" "belgues" "belgues" "a la Belga" ;
- Belgium = mkNP (mkPN "Blgica") ;
- Bulgarian = mkNat3 "blgar" "blgara" "blgars" "blgueres" "Bulgria" ;
- Catalan = mkNat5 "catal" "Catalunya" ;
- Danish = mkNat4 "dan" "Dinamarca" ;
- Dutch = mkNat4 "holand" "Holanda" ;
- English = mkNat4 "angl" "Anglaterra" ;
- Finnish = mkNat4 "fin" "Finlndia" ;
- Flemish = mkNP (mkPN "flamenc") ;
- French = mkNat4 "franc" "Frana" ;
- German = mkNat3 "alemany" "alemanya" "alemanys" "alemanyes" "Alemania" ;
- Italian = mkNat5 "itali" "Itlia" ;
- Norwegian = mkNat3 "noruec" "noruega" "noruecs" "noruegues" "Noruega" ;
- Polish = mkNat4 "polon" "Polnia" ;
- Romanian = mkNat4 "roman" "Romania" ;
- Russian = mkNat3 "rus" "russa" "russos" "russes" "Rssia" ;
- Spanish = mkNat3 "espanyol" "espanyola" "espanyols" "espanyoles" "Espanya" ;
- Swedish = mkNat3 "suec" "sueca" "suecs" "sueques" "Sucia" ;
-
-
--- means of transportation
-
- Bike = mkTransport (mkN "bici" feminine) ;
- Bus = mkTransport (mkN "autobs" "autobusos" masculine) ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "ferri" masculine) ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "metro") ;
- Taxi = mkTransport (mkN "taxi" masculine) ;
- Train = mkTransport (mkN "tren" masculine) ;
- Tram = mkTransport (mkN "tramvia" masculine) ;
-
- ByFoot = P.mkAdv "a peu" ;
-
--- actions
-
- AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num (mkN "fill" masculine)) ;
- AHasName p name =
- let dir = mkV (dir_41 "dir")
- in mkCl p.name (mkV2 (reflV dir)) name ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "habitaci" feminine)) (SyntaxCat.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "taula")) (SyntaxCat.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
- AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "gana" feminine))) ;
- AIll p = mkCl p.name stateCopula (mkAP (mkA "malalt")) ;
- AKnow p =
- let saber = mkV (saber_99 "saber")
- in mkCl p.name saber ;
- ALike p item = mkCl item (mkV2 (mkV "agradar") dative) p.name ;
- ALive p co =
- let viure = mkV (viure_119 "viure")
- in mkCl p.name (mkVP (mkVP viure) (SyntaxCat.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (mkV2 (mkV "estimar")) q.name ;
- AMarried p = mkCl p.name stateCopula (mkAP (mkA "casat")) ;
- AReady p = mkCl p.name stateCopula (mkAP (mkA "preparat")) ;
- AScared p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "por" feminine))) ;
- ASpeak p lang = mkCl p.name (mkV2 (mkV "parlar")) lang ;
- AThirsty p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "set" feminine))) ;
- ATired p = mkCl p.name stateCopula (mkAP (mkA "cansat")) ;
- AUnderstand p = mkCl p.name (mkV "entendre") ;
- AWant p obj =
- let voler = mkV (voler_120 "voler")
- in mkCl p.name (mkV2 voler) obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
-
--- miscellaneous
-
- QWhatAge p = mkQS (mkQCl (mkIP how8many_IDet L.year_N) p.name have_V2) ;
- QWhatName p =
- let dir = mkV (dir_41 "dir")
- in mkQS (mkQCl how_IAdv (mkCl p.name (reflV dir))) ;
- HowMuchCost item =
- let valer = mkV (valer_114 "valer")
- in mkQS (mkQCl how8much_IAdv (mkCl item valer)) ;
- ItCost item price =
- let valer = mkV (valer_114 "valer")
- in mkCl item (mkV2 valer) price ;
- PropOpen p = mkCl p.name stateCopula (mkAP open_A) ;
- PropClosed p = mkCl p.name stateCopula (mkAP closed_A) ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP stateCopula (mkAP open_A)) d) ;
- PropClosedDate p d = mkCl p.name (mkVP (mkVP stateCopula (mkAP 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) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("a reveure")))
- (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ;
- PSeeYouPlace p = mkText (lin Text (ss ("fins aviat"))) (mkPhrase (mkUtt p.at)) ;
--- PSeeYou d = mkText (lin Text (ss ("fins aviat"))) (mkPhrase (mkUtt d)) ;
- PSeeYouDate d = mkText (lin Text (ss ("a reveure"))) (mkPhrase (mkUtt d)) ;
-
--- family relations
-
- Wife = xOf sing (mkN "dona") ;
- Husband = xOf sing (mkN "marit") ;
- Son = xOf sing (mkN "fill") ;
- Daughter = xOf sing (mkN "filla") ;
- Children = xOf plur (mkN "fill") ;
-
--- week days
-
- Monday = mkDay "dilluns" ;
- Tuesday = mkDay "dimarts" ;
- Wednesday = mkDay "dimecres" ;
- Thursday = mkDay "dijous" ;
- Friday = mkDay "divendres" ;
- Saturday = mkDay "dissabte" ;
- Sunday = mkDay "diumenge" ;
-
- Tomorrow = P.mkAdv "dem" ;
-
-
--- transports
-
- --a quina distncia est PLACE
- HowFar place = mkQS (mkQCl what_distance_IAdv (mkCl place.name placeCopula) );
-
- HowFarFrom x y = mkQS (mkQCl what_distance_IAdv
- (mkCl y.name (mkVP (mkVP placeCopula)
- (S.mkAdv from_Prep x.name))));
-
- HowFarFromBy x y t = mkQS (mkQCl what_distance_IAdv
- (mkCl y.name (mkVP
- (mkVP (mkVP placeCopula)
- (S.mkAdv from_Prep x.name))
- t)));
-
- HowFarBy y t = mkQS (mkQCl what_distance_IAdv
- (mkCl y.name (mkVP (mkVP placeCopula) t)));
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name (SyntaxCat.mkAdv to_Prep place.name)))) ;
-
--- modifiers of places
- TheBest = mkSuperl L.good_A True ;
- TheClosest = mkSuperl L.near_A False;
- TheCheapest = mkSuperl cheap_A False ;
- TheMostExpensive = mkSuperl expensive_A False ;
- TheMostPopular = mkSuperl (mkA "popular" "popular" "populars" "populars" "popularment") False ;
- TheWorst = mkSuperl L.bad_A True ;
- SuperlPlace sup p = placeNPSuperl sup p ;
-
--- auxiliaries
-
- oper
-
- mkSuperl : A -> Bool -> OrdSuperlative = \a,bool ->
- let ord : Ord = S.mkOrd a in {
- ord = ord ;
- isPre = bool ;
- } ;
-
- desde_Prep = mkPrep "des de" ;
- fins_Prep = mkPrep "fins a" ;
-
- what_distance_IAdv = ss "a quina distncia"**{lock_IAdv=<>};
-
- placeCopula = mkV (estar_54 "estar") ;
-
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
-
- mkNat2 : A -> Str -> Str -> NPNationality = \adj,nat,co ->
- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) adj ;
-
- mkNat3 : (_,_,_,_:Str) -> Str -> NPNationality = \ms,fs,mp,fp,co ->
- mkNPNationality (mkNP (mkPN ms)) (mkNP (mkPN co)) (mkA ms fs mp fp ("a la" ++ fs)) ;
-
- mkNat4 : Str -> Str -> NPNationality = \angl,co ->
- mkNat3 (angl+"s") (angl+"esa") (angl+"esos") (angl+"eses") co ;
-
- mkNat5 : Str -> Str -> NPNationality = \catal,co ->
- mkNat3 (catal+"") (catal+"ana") (catal+"ans") (catal+"anes") co ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day = mkNP (mkPN d)
- in
- case last d of {
- "s" => mkNPDay day (P.mkAdv ("el" ++ d)) (P.mkAdv ("els" ++ d)) ;
- _ => mkNPDay day (P.mkAdv ("el" ++ d)) (P.mkAdv ("els" ++ d + "s"))
- } ;
-
- mkPlace : N -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p ->
- mkCNPlace (mkCN p) dative dative ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = S.mkAdv with_Prep (mkNP n)
- } ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ;
-
- stateCopula = mkVA (mkV (estar_54 "estar")) ;
- open_A = mkA "obert" ;
-
- closed_A = mkA "tancat" ;
-
- cheap_A = mkA "barat" "barata" ;
-
- expensive_A = mkA "car" ;
-}
-
-
diff --git a/examples/phrasebook/WordsChi.gf b/examples/phrasebook/WordsChi.gf
deleted file mode 100644
index 5b9baeb73..000000000
--- a/examples/phrasebook/WordsChi.gf
+++ /dev/null
@@ -1,334 +0,0 @@
-concrete WordsChi of Words = SentencesChi **
-open
-SyntaxChi,
-ParadigmsChi,
-(P = ParadigmsChi),
-(R = ResChi),
-(L = LexiconChi),
-Prelude in {
-
-flags coding = utf8 ;
-
-lin
-
--- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
-
-Apple = mkCN L.apple_N ;
-Beer = mkCN L.beer_N ;
-Bread = mkCN L.bread_N ;
-Cheese = mkCN L.cheese_N ;
-Chicken = mkCN (mkN "鸡" "只" ) ;
-Coffee = mkCN (mkN "咖啡" ) ;
-Fish = mkCN L.fish_N ;
-Meat = mkCN L.meat_N ;
-Milk = mkCN L.milk_N ;
-Pizza = mkCN (mkN "比萨饼") ;
-Salt = mkCN L.salt_N ;
-Tea = mkCN (mkN "茶" ) ;
-Water = mkCN L.water_N ;
-Wine = mkCN L.wine_N ;
-
--- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
-
-Bad = L.bad_A ;
-Boring = mkA "难吃" ;
-Cheap = (mkA "廉价" ) ;
-Cold = L.cold_A ;
-Delicious = mkA "美味" ;
-Expensive = (mkA "昂贵" ) ;
-Fresh = (mkA "新鲜" ) ;
-Good = (mkA "好" ) ;
-Suspect = mkA "可疑" ;
-Warm = (mkA "热") ; -- L.warm_A ;
-
--- Places require different prepositions to express location; in some languages
--- also the directional preposition varies, but in English we use $to$, as
--- defined by $mkPlace$.
-
-Airport = mkPlace (( (mkN "机场" ) )) ;
-AmusementPark = mkPlace (mkN "游乐园") ;
-Bank = mkPlace (( (L.bank_N ) )) ;
-Bar = mkPlace (( (mkN "酒吧" ) )) ;
-Cafeteria = mkPlace (( (L.bank_N ) )) ;
-Center = mkPlace (mkN "中心") ;
-Cinema = mkPlace (mkN "电影院") ;
-Church = mkPlace (L.church_N ) ;
-Disco = mkPlace (mkN "迪斯科") ;
-Hospital = mkPlace (mkN "医院" ) ;
-Hotel = mkPlace (mkN "旅馆" ) ;
-Museum = mkPlace (mkN "博物馆" ) ;
-Park = mkPlace (mkN "公园" ) ;
-Parking = mkPlace (mkN "停车场") ;
-Pharmacy = mkPlace (mkN "药店") ;
-PostOffice = mkPlace (mkN "邮局") ;
-Pub = mkPlace (mkN "酒吧") ;
-Restaurant = mkPlace L.restaurant_N ;
-School = mkPlace L.school_N ;
-Shop = mkPlace L.shop_N ;
-Station = mkPlace (mkN "车站" ) ;
-Supermarket = mkPlace (mkN "超级市场" "家" ) ;
-Theatre = mkPlace (mkN "剧院") ;
-Toilet = mkPlace (mkN "厕所" ) ;
-University = mkPlace L.university_N ;
-Zoo = mkPlace (mkN "动物园") ;
-
-CitRestaurant cit = mkCNPlace (mkCN cit L.restaurant_N) at_Prep noPrep ;
-
-
--- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
-
-Dollar = mkCN (mkN "美元") ;
-DanishCrown = mkCN (mkN "丹麦克朗") ;
-Euro = mkCN (mkN "欧元") ;
-Lei = mkCN (mkN "列弗") ;
-Leva = mkCN (mkN "列伊") ;
-Pound = mkCN (mkN "英镑") ;
-Rouble = mkCN (mkN "卢布") ;
-SwedishCrown = mkCN (mkN "瑞典克朗") ;
-Zloty = mkCN (mkN "兹罗提") ;
-NorwegianCrown = mkCN (mkN "挪威克朗") ;
-
--- Nationalities
-Belgian = mkA ( "比利时") ;
-Belgium = mkNP (mkPN "比利时" ) ;
-Bulgarian = mkNat "保加利亚语" "保加利亚" ;
-Catalan = mkNat "加泰罗尼亚语" "加泰罗尼亚" ;
-Danish = mkNat "丹麦语" "丹麦" ;
-Dutch = mkNat "荷兰语" "荷兰" ;
-English = mkNat "英语" "英国" ;
-Finnish = mkNat "芬兰语" "芬兰" ;
-Flemish = mkNP (mkPN "佛兰德语") ;
-French = mkNat "法语" "法国" ;
-German = mkNat "德语" "德国" ;
-Italian = mkNat "意大利语" "意大利" ;
-Norwegian = mkNat "挪威语" "挪威";
-Polish = mkNat "波兰语" "波兰" ;
-Romanian = mkNat "罗马尼亚语" "罗马尼亚" ;
-Russian = mkNat "俄语" "俄罗斯" ;
-Spanish = mkNat "西班牙语" "西班牙" ;
-Swedish = mkNat "瑞典语" "瑞典" ;
-Chinese = mkNat "汉语" "中国" ;
-
--- Means of transportation
-
-Bike = mkTransport L.bike_N (mkV "骑") ;
-Bus = mkTransport (mkN "公共汽车" ) (mkV "乘") ;
-Car = mkTransport L.car_N (mkV "开") ;
-Ferry = mkTransport (mkN "渡船") (mkV "乘") ;
-Plane = mkTransport L.airplane_N (mkV "坐") ;
-Subway = mkTransport (mkN "地铁") (mkV "坐") ;
-Taxi = mkTransport (mkN "出租车") (mkV "乘") ;
-Train = mkTransport L.train_N (mkV "乘") ;
-Tram = mkTransport (mkN "电车") (mkV "乘") ;
-
-ByFoot = P.mkAdv ("步行") ;
-
--- Actions: the predication patterns are very often language-dependent.
-
-
-AHasAge p nu = mkCl (lin NP {s = p.name.s ++ nu.s}) (mkV "岁") ; ----
-AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
-AHasRoom p num = mkCl p.name have_V2
-(mkNP (mkNP a_Det (mkN "房间" ) ) (SyntaxChi.mkAdv for_gei_Prep (mkNP num (L.person_N ) ))) ;
-AHasTable p num = mkCl p.name have_V2
-(mkNP (mkNP a_Det L.table_N ) (SyntaxChi.mkAdv for_gei_Prep (mkNP num (L.person_N ) ))) ;
-AHasName p name = mkCl p.name (mkV2 "叫") name ;
--- AHungry p = mkCl p.name (mkA "饿") ;
-AHungry p = mkCl p.name (mkV "饿了") ;
--- AIll p = mkCl p.name (mkA "生病" ) ;
-AIll p = mkCl p.name (mkV "生病了") ;
-AKnow p = mkCl p.name ;
-ALike p item = mkCl p.name (L.like_V2 ) item ;
-ALive p co = mkCl p.name (mkV2 (mkV "住")) co ;
-ALove p q = mkCl p.name L.love_V2 q.name ;
-AMarried p = mkCl p.name (mkA "已婚") ;
-AReady p = mkCl p.name L.ready_A ;
--- AReady p = mkCl p.name (mkV "准备好了") ;
-AScared p = mkCl p.name (mkA "惊慌") ;
-ASpeak p lang = mkCl p.name L.speak_V2 lang ;
--- AThirsty p = mkCl p.name (mkA "渴") ;
-AThirsty p = mkCl p.name (mkV "渴了") ;
--- ATired p = mkCl p.name (mkA "累") ;
-ATired p = mkCl p.name (lin V (mkV "累了")) ;
-AUnderstand p = mkCl p.name (lin V (mkV "理解" ) ) ;
-AWant p obj = mkCl p.name (mkV2 "要") obj ;
-AWantGo p place = mkCl p.name want_VV (mkVP L.go_V place.name) ;
-
--- LangNat l = l.lang ; -- ++ "语" ;
--- miscellaneous
-
- QWhatName p = lin QS {s = \\_ => p.name.s ++ R.word "贵姓"} ; ---
- QWhatAge p = lin QS {s = \\_ => p.name.s ++ R.word "几岁"} | lin QS {s = \\_ => p.name.s ++ R.word "多大"} ; ---
- HowMuchCost item = lin QS {s = \\_ => item.s ++ R.word "是多少钱"} ;
-ItCost item price = mkCl item (mkV2 "是") price ;
-
-PropOpen p = mkCl p.name (mkA "开放" ) ;
-PropClosed p = mkCl p.name closed_A ;
-PropOpenDate p d = mkCl p.name (mkVP (mkVP (mkA "开放" ) ) d) ;
-PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ;
-PropOpenDay p d = mkCl p.name (mkVP (mkVP (mkA "开放" ) ) d.habitual) ;
-PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ;
-
-
-
--- PropCit c = lin A { s = c.s ; lock_A = <>; monoSyl = True } ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
-PSeeYouDate d = lin Text (ss (d.s ++ "见")) ;
-PSeeYouPlace p = lin Text (ss (p.at.s ++ "见")) ; ---
-PSeeYouPlaceDate p d = lin Text (ss (d.s ++ p.at.s ++ "见")) ; ----
-
--- Relations are expressed as "มย วิฝเ" or "มย สoณส วิฝเ", as defined by $xOf$
--- below. Languages without productive genitives must use an equivalent of
--- "ตหเ วิฝเ oฝ มย สoน" for non-pronouns.
-
-Wife = xOf (L.wife_N ) ;
-Husband = xOf (L.husband_N ) ;
-Wife = xOf (L.wife_N ) ;
-Son = xOf (mkN "儿子" ) ;
-Daughter = xOf (mkN "女儿" ) ;
-Children = xOf L.child_N ; ----
-
--- week days
-
-Monday = mkDay "星期一" ;
-Tuesday = mkDay "星期二" ;
-Wednesday = mkDay "星期三" ;
-Thursday = mkDay "星期四" ;
-Friday = mkDay "星期五" ;
-Saturday = mkDay "星期六" ;
-Sunday = mkDay "星期日" ;
-
-Tomorrow = ParadigmsChi.mkAdv "明天" ;
-
--- modifiers of places
-
-TheBest = mkSuperl L.good_A ;
-TheClosest = mkSuperl L.near_A ;
-TheCheapest = mkSuperl (mkA "廉价" ) ;
-TheMostExpensive = mkSuperl (mkA "昂贵" ) ;
-TheMostPopular = mkSuperl (mkA "流行" ) ;
-TheWorst = mkSuperl L.bad_A ;
-
-SuperlPlace sup p = placeNP sup p ;
-
-
--- transports
-
-HowFar place = lin QS {s = \\_ => place.name.s ++ R.word "有多远"} ;
-
-
-
-
-HowFarFrom x y = lin QS {s = \\_ => "从" ++ x.name.s ++ "到" ++ y.name.s ++ R.word "有多远"} ; ----
-
--- HowFarFromBy x y t =
--- mkQS (mkQCl howFar.how (mkCl (mkNP y.name howFar.far)
--- (lin AP (R.thbind from_Prep (mkNP x.name t))))) ;
--- mkQS (mkQCl howFar.how (mkCl (mkNP y.name howFar.far)
--- (SyntaxChi.mkAdv from_Prep (mkNP x.name t)))) ;
-
-
-
-HowFarBy y t = lin QS {s = \\_ => t.s ++ "到" ++ y.name.s ++ R.word "有多远" } ;
-
-
-WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name)(mkVP (mkV2 "去") place.name)) ;
-
-
-IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (R.mkNP ( L.go_V.s ++ place.name.s ++ "的" ++ trans.name.s) ))) ;
-
-
-
--- auxiliaries
-
-oper
-
-mkNat : Str -> Str -> NPNationality = \lang, co -> mkNPNationality (mkNP (mkPN lang)) (mkNP (mkPN co)) (mkA co) ;
-
-mkDay : Str -> {name : NP ; point : SyntaxChi.Adv ; habitual : SyntaxChi.Adv} = \d ->
-let day = mkNP (mkPN d) in
-mkNPDay day (SyntaxChi.mkAdv noPrep day)
-(SyntaxChi.mkAdv noPrep (mkNP (mkCN (mkN d)))) ;
-
-mkPlace : N -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p ->
-mkCNPlace (mkCN p) at_Prep noPrep ;
-
-placeN : Str -> N = \s -> mkN s "间" ;
-
-closed_A = P.mkA "关闭" ;
-closed_or_not_A = P.mkA "不是关闭" ;
-
-xOf : N -> NPPerson -> NPPerson = \f,p ->
-{name = mkNP the_Det (mkCN f (SyntaxChi.mkAdv possess_Prep p.name)) ;
-isPron = False ; poss = the_Quant} ; ---- poss not used
-
-by_Prep = mkPrep "乘" [] mannerAdvType ;
-
-mkTransport : N -> V -> {name : CN ; by : SyntaxChi.Adv ; way : V } = \n,m -> {
-name = mkCN n ;
--- by = SyntaxChi.mkAdv by8means_Prep (mkNP n);
-by = SyntaxChi.mkAdv by_Prep (mkNP n) ;
-way = m;
-} ;
-
-mkSuperl : A -> Det = \a -> SyntaxChi.mkDet the_Art ({s = ResChi.superlative_s ++ a.s ++ R.word "的那"}) ; -- (SyntaxChi.mkOrd a) ;
-
--- mkCurrency : Str -> CN = \s -> mkCN (mkN [] s) ; ---- just a classifier
-
-
-at_Prep = (mkPrep "在" ) ;
-noPrep = mkPrep [] ;
-for_gei_Prep = mkPrep "给" ;
---------------------------------------------------
--- New 30/11/2011 AR
---------------------------------------------------
-
-lin
-Thai = mkNat "泰国" "泰语" ;
-Baht = mkCN (mkN "泰铢") ;
-
-Rice = mkCN (mkN ("米饭")) ;
-Pork = mkCN (mkN ("猪肉")) ;
-Beef = mkCN (mkN ("牛肉")) ;
-Egg = mkCN L.egg_N ;
-Noodles = mkCN (mkN "面条") ;
-Shrimps = mkCN (mkN "虾") ;
-Chili = mkCN (mkN "辣椒") ;
-Garlic = mkCN (mkN "大蒜") ;
-Durian = mkCN (mkN "榴莲") ;
-Mango = mkCN (mkN "芒果") ;
-Pineapple = mkCN (mkN "菠萝") ;
-Coke = mkCN (mkN ("可乐")) ;
-IceCream = mkCN (mkN "冰激凌") ;
-Salad = mkCN (mkN "色拉") ;
-OrangeJuice = mkCN (mkN "橙汁") ;
-Lemonade = mkCN (mkN "柠檬汁") ;
-Beach = mkPlace (placeN "海滩") ;
-
-ItsRaining = mkCl (mkVP L.rain_V0) ;
-ItsCold = mkCl (mkVP L.cold_A) ;
-ItsWarm = mkCl (mkVP L.warm_A) ;
-ItsWindy = mkCl (mkVP (P.mkA ("有风"))) ;
-SunShine = mkCl (mkNP the_Det L.sun_N) (mkA "很大") ;
-
-Smoke = mkVP (P.mkV ( "吸烟" )) ;
-
-ADoctor = mkProfession (mkN "医生") ;
-AProfessor = mkProfession (mkN "教授") ;
-ALawyer = mkProfession (mkN "律师") ;
-AEngineer = mkProfession (mkN "工程师") ;
-ATeacher = mkProfession (mkN "教师") ;
-ACook = mkProfession (mkN "厨师") ;
-AStudent = mkProfession (mkN "学生") ;
-ABusinessman = mkProfession (mkN "商人") ;
-
-oper
- mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
-
-
-}
diff --git a/examples/phrasebook/WordsDan.gf b/examples/phrasebook/WordsDan.gf
deleted file mode 100644
index dbacd8511..000000000
--- a/examples/phrasebook/WordsDan.gf
+++ /dev/null
@@ -1,260 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
---# -coding=latin1
-
-concrete WordsDan of Words = SentencesDan **
- open SyntaxDan, ParadigmsDan, IrregDan, (L = LexiconDan), ExtraDan, StructuralDan, Prelude in {
-
- lin
-
--- kinds of food
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "ost" "osten" "oste" "ostene") ;
- Chicken = mkCN (mkN "kylling" "kyllingen" "kyllinger" "kyllingerne") ;
- Coffee = mkCN (mkN "kaffe" "kaffen" "kaffe" "kaffe") ; -- den kaffe
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "kd" "kdet" "kd" "kdet") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "pizza" "pizzaen" "pizzaer" "pizzaerne") ; -- den pizza
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "te" "teen" "teer" "teerne") ; -- den te
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- properties
-
- Bad = L.bad_A ;
- Cheap = mkA "billig" ;
- Boring = mkA "kedelig" ;
- Cold = L.cold_A ;
- Delicious = mkA "lkker" ;
- Expensive = mkA "dyr" ; -- or dyrt
- Fresh = mkA "frisk" ;
- Good = L.good_A ;
- Suspect = mkA "mistnkelig" ;
- Warm = L.warm_A ;
-
--- places
-
-
- Airport = mkPlace (mkN "lufthavnen" "lufthavnen" "lufthavne" "lufthavnene") "i" ;
- AmusementPark = mkPlace (mkN "forlystelsespark" "forlystelsesparken" "forlystelsesparker" "forlystelsesparker") "i" ;
- Bank = mkPlace (mkN "bank" "banken" "banke" "bankene") "i" ;
- Bar = mkPlace (mkN "bar" "baren" "barer" "barerne") "i" ;
- Cafeteria = mkPlace (mkN "cafeteria" "cafeteriet" "cafeterier" "cafeterierne") "i" ;
- Center = mkPlace (mkN "centrum" "centrum" "centrummer" "centrummerne") "i" ; -- all centrum ?
- Cinema = mkPlace (mkN "biograf" "biografen" "biografer" "biograferne") "i" ;
- Church = mkPlace (mkN "kirke" "kirken" "kirker" "kirkerne") "i" ;
- Disco = mkPlace (mkN "diskotek" "diskoteket" "diskoteker" "diskotekerne") "p" ;
- Hospital = mkPlace (mkN "hospital" "hospitalet" "hospitaler" "hospitalerne") "p" ;
-
- Hotel = mkPlace (mkN "hotel" "hotellet" "hoteller" "hotellerne") "p" ;
- Museum = mkPlace (mkN "museum" "museet" "museer" "museerne") "p" ;
- Park = mkPlace (mkN "park" "parken" "parker" "parkerne") "i" ;
- Parking = mkPlace (mkN "parkeringsplads" "parkeringspladsen" "parkeringspladser" "parkeringspladserne") "p" ;
- Pharmacy = mkPlace (mkN "apotek" "apoteket" "apoteker" "apotekerne") "p" ;
- PostOffice = mkPlace (mkN "posthus" "posthuset" "posthuse" "posthusene") "p" ;
- Pub = mkPlace (mkN "pub" "pubben" "pubber" "pubber") "p" ;
- Restaurant = mkPlace (mkN "restaurant" "restauranten" "restauranter" "restauranterne") "p" ;
- School = mkPlace (mkN "skole" "skolen" "skoler" "skolerne") "i" ;
- Shop = mkPlace (mkN "butik" "butikken" "butikker" "butikkerne") "i" ;
- Station = mkPlace (mkN "station" "stationen" "stationer" "stationerne") "p" ;
- Supermarket = mkPlace (mkN "supermarked" "supermarkedet" "supermarkeder" "supermarkederne") "i" ;
- Theatre = mkPlace (mkN "teater" "teatret" "teatre" "teatrene") "i" ;
- Toilet = mkPlace (mkN "toilet" "toilettet" "toiletter" "toiletterne") "p" ;
- University = mkPlace (mkN "universitet" "universitetet" "universiteter" "universiteterne") "p" ;
- Zoo = mkCNPlace (mkCN (mkA "zoologisk") (mkN "have")) in_Prep to_Prep ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant")) (mkPrep "p") to_Prep ;
-
--- currencies
-
- DanishCrown = mkCN (mkA "dansk") (mkN "krone" "kronen" "kroner" "kronerne") | mkCN (mkN "krone" "kronen" "kroner" "kronerne") ;
- Dollar = mkCN (mkN "dollar" "dollaren" "dollar" "dollar") ; -- den dollar
- Euro = mkCN (mkN "euro" "euroen" "euro" "euroerne") ; -- den euro
- Lei = mkCN (mkN "leu" "leu" "lei" "lei") ; -- det leis ?
- Leva = mkCN (mkN "lev" "lev" "leva" "leva") ; -- det leva ?
- NorwegianCrown = mkCN (mkA "norsk") (mkN "krone" "kronen" "kroner" "kronerne") | mkCN (mkN "krone" "kronen" "kroner" "kronerne") ;
- Pound = mkCN (mkN "pund" "pundet" "pund" "pundene") ; -- det pund
- Rouble = mkCN (mkN "rubel" "rublen" "rubler" "rublerne") ; -- den rubel
- SwedishCrown = mkCN (mkA "svensk") (mkN "krone" "kronen" "kroner" "kronerne") | mkCN (mkN "krone" "kronen" "kroner" "kronerne") ;
- Zloty = mkCN (mkN "zloty" "zloty" "zloty" "zloty") ; -- det zloty ?
-
--- nationalities
-
-
- Belgian = mkA "belgisk" ;
- Belgium = mkNP (mkPN "Belgien") ;
- Bulgarian = mkNat "bulgarsk" "Bulgarien" ;
- Catalan = mkNPNationality (mkNP (mkPN "catalansk")) (mkNP (mkPN "Catalonien")) (mkA "catalonsk") ;
- Danish = mkNat "dansk" "Danmark" ;
- Dutch = mkNat "hollandsk" "Holland" ;
- English = mkNat "engelsk" "England" ;
- Finnish = mkNat "finsk" "Finland" ;
- Flemish = mkNP (mkPN "flamsk") ;
- French = mkNat "fransk" "Frankrig" ;
- German = mkNat "tysk" "Tyskland" ;
- Italian = mkNat "italiensk" "Italien" ;
- Norwegian = mkNat "norsk" "Norge" ;
- Polish = mkNat "polsk" "Polen" ;
- Romanian = mkNat "rumnsk" "Rumnien" ;
- Russian = mkNat "russisk" "Russland" ;
- Spanish = mkNat "spansk" "Spanien" ;
- Swedish = mkNat "svensk" "Sverige" ;
-
-
-
--- Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "bus" "bussen" "busser" "busserne") ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "frge" "frgen" "frger" "frgerne") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "undergrundsbane" "undergrundsbanen" "undergrundsbaner" "undergrundsbanerne") ;
- Taxi = mkTransport (mkN "taxa") ;
- Train = mkTransport (mkN "tog" "toget" "tog" "togene") ;
- Tram = mkTransport (mkN "sporvogn" "sporvognen" "sporvogne" "sporvognene") ;
-
- ByFoot = ParadigmsDan.mkAdv "til fods" ;
-
-
-
-
--- actions
-
- AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
- AHasName p name = mkCl p.name (mkV2 (mkV "hedde")) name ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "vrelse" "vrelset" "vrelser" "vrelserne"))
- (SyntaxDan.mkAdv to_Prep (mkNP num (mkN "person" "personen" "personer" "personerne")))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "bord"))
- (SyntaxDan.mkAdv to_Prep (mkNP num (mkN "person" "personen" "personer" "personerne")))) ;
- AHungry p = mkCl p.name (mkA "sulten" "sultet" "sultne") ;
- AIll p = mkCl p.name (mkA "syg") ;
- AKnow p = mkCl p.name vide_V ;
- ALike p item = mkCl p.name (mkV2 holde_V (mkPrep "af")) item ;
- ALive p co = mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxDan.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (dirV2 (regV "elske")) q.name ;
- AMarried p = mkCl p.name (mkA "gift") ;
- AReady p = mkCl p.name (mkA "frdig") ;
- AScared p = mkCl p.name (mkA "bange") ;
- ASpeak p lang = mkCl p.name (mkV2 (mkV "tale")) lang ;
- AThirsty p = mkCl p.name (mkA "trstig") ;
- ATired p = mkCl p.name (mkA "trt") ;
- AUnderstand p = mkCl p.name (irregV "forst" "forstod" "forstet") ;
- AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ;
--- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP tage_V) place.to) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl whatSg_IP p.name (mkV2 hede_V)) ;
- QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "koste"))) ;
- ItCost item price = mkCl item (mkV2 (mkV "koste")) price ;
-
- PropOpen p = mkCl p.name (mkVP (mkVP have_V) open_Adv) ;
- PropClosed p = mkCl p.name (mkVP (mkVP have_V) closed_Adv) ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP (mkVP have_V) open_Adv) d) ;
- PropClosedDate p d = mkCl p.name (mkVP (mkVP (mkVP have_V) closed_Adv) d) ;
- PropOpenDay p d = mkCl p.name (mkVP (mkVP (mkVP have_V) open_Adv) d.habitual) ;
- PropClosedDay p d = mkCl p.name (mkVP (mkVP (mkVP have_V) closed_Adv) d.habitual) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("vi ses")))
- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
-
--- 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
--- "the wife of my son" for non-pronouns.
-
- Wife = xOf sing (mkN "kone" "konen" "koner" "konerne") ;
- Husband = xOf sing L.man_N ;
- Son = xOf sing (mkN "sn" "snnen" "snner" "snnerne") ;
- Daughter = xOf sing (mkN "datter" "datteren" "dtre" "dtrene") ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay "mandag" ;
- Tuesday = mkDay "tirsdag" ;
- Wednesday = mkDay "onsdag" ;
- Thursday = mkDay "torsdag" ;
- Friday = mkDay "fredag" ;
- Saturday = mkDay "lrdag" ;
- Sunday = mkDay "sndag" ;
-
- Tomorrow = ParadigmsDan.mkAdv "i morgen" ;
-
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "billig") ;
- TheMostExpensive = mkSuperl (mkA "dyr") ;
- TheMostPopular = mkSuperl (mkA "populr") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
-
-
--- transports
-
- HowFar place =
- mkQS (mkQCl long_IAdv (mkCl (mkVP (SyntaxDan.mkAdv to_Prep place.name)))) ;
- HowFarFrom place x =
- mkQS (mkQCl long_IAdv (mkCl place.name (SyntaxDan.mkAdv from_Prep x.name))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl long_IAdv (mkCl y.name (SyntaxDan.mkAdv from_Prep (mkNP x.name t)))) ;
- HowFarBy y t =
- mkQS (mkQCl long_IAdv (mkCl y.name t)) ;
- -- not sure !
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
- oper
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
--- don't add the "a"
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day = mkNP (mkPN d) in
- mkNPDay day (SyntaxDan.mkAdv on_Prep day)
- (SyntaxDan.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
-
- mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN p) (mkPrep i) to_Prep ;
-
- open_Adv = ParadigmsDan.mkAdv "bent" ;
- closed_Adv = ParadigmsDan.mkAdv "lukket" ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
-
- mkSuperl : A -> Det = \a -> mkDet the_Art (mkOrd a) ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxDan.mkAdv by8means_Prep (mkNP n)
- } ;
-
- far_IAdv = ExtraDan.IAdvAdv L.far_Adv ;
- long_IAdv : IAdv = ss "hvor langt" ** {lock_IAdv = <>};
- how8much_IAdv : IAdv = ss "hvad" ** {lock_IAdv = <>};
-}
diff --git a/examples/phrasebook/WordsDut.gf b/examples/phrasebook/WordsDut.gf
deleted file mode 100644
index 12cab7861..000000000
--- a/examples/phrasebook/WordsDut.gf
+++ /dev/null
@@ -1,294 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
---# -coding=latin1
-
-
-concrete WordsDut of Words = SentencesDut **
- open SyntaxDut, (P = ParadigmsDut), (I = IrregDut), (L = LexiconDut), (R=ResDut), (E=ExtendDut), Prelude in {
-
- lin
-
--- kinds of food
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN L.cheese_N ;
- Chicken = mkCN (P.mkN "kip" "kippen" P.de) ;
- Coffee = mkCN (P.mkN "koffie" "koffie" P.de) ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (P.mkN "vlees" "vleesen" P.het) ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (P.mkN "pizza" "pizza's" P.de) ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (P.mkN "thee" "thee" P.de) ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- properties
-
-
- Bad = P.mkA "slecht" ;
- Cheap = P.mkA "goedkoop" ;
- Boring = P.mkA "saai" ;
- Cold = L.cold_A ;
- Delicious = P.mkA "lekker" ;
- Expensive = P.mkA "duur" ;
- Fresh = P.mkA "vers" ;
- Good = L.good_A ;
- Suspect = P.mkA "verdacht" ;
- Warm = L.warm_A ;
-
-
-
--- places
-
- Airport = mkPlace (P.mkN "luchthaven" "luchthavens" P.de) "op" ;
- AmusementPark = mkPlace (P.mkN "pretpark" "pretparken" P.het) "in" ;
- Bank = mkPlace (P.mkN "bank" "banken" P.de) "op" ;
- Bar = mkPlace (P.mkN "bar" P.de) "in" ;
- Cafeteria = mkPlace (P.mkN "cafetaria" "cafetaria's" P.de) "in" ;
- Center = mkPlace (P.mkN "centrum" "centra" P.het) "in" ;
- Church = mkPlace (P.mkN "kerk" "kerken" P.de) "in" ;
- Cinema = mkPlace (P.mkN "bioscoop" "bioscopen" P.de) "in" ;
- Disco = mkPlace (P.mkN "disco" "disco's" P.de) "in" ;
- Hospital = mkPlace (P.mkN "ziekenhuis" "ziekenhuizen" P.het) "in" ;
- Hotel = mkPlace (P.mkN "hotel" "hotels" P.het) "in" ;
- Museum = mkPlace (P.mkN "museum" "musea" P.het) "in" ;
- Park = mkPlace (P.mkN "park" "parken" P.het) "in" ;
- Parking = mkPlace (P.mkN "parkeerplaats" "parkeerplaatsen" P.de) "op" ; --parkeren x parkeerplaats -- naar op
- Pharmacy = mkPlace (P.mkN "apotheek" "apotheken" P.de) "in" ;
- PostOffice = mkPlace (P.mkN "postkantoor" "postkantoren" P.het) "op" ;
- Pub = mkPlace (P.mkN "kroeg" "kroegen" P.de) "in" ;
- Restaurant = mkPlace (P.mkN "restaurant" "restaurants" P.het) "in" ;
- Shop = mkPlace (P.mkN "winkel" "winkels" P.de) "in" ; -- shop x winkel
- School = mkPlace (P.mkN "school" "scholen" P.de) "in" ;
- Station = mkPlace (P.mkN "station" "stations" P.het) "op" ;
- Supermarket = mkPlace (P.mkN "supermarkt" "supermarkten" P.de) "in" ;
- Theatre = mkPlace (P.mkN "theater" "theaters" P.het) "in" ;
- Toilet = mkPlace (P.mkN "toilet" "toiletten" P.het) "op" ;
- University = mkPlace (P.mkN "universiteit" "universiteiten" P.de) "in" ; --universitair x universiteit -- naar in
- Zoo = mkPlace (P.mkN "dierentuin" "dierentuinen" P.de) "op" ;
-
-
- CitRestaurant cit =
- mkCNPlace (mkCN cit (P.mkN "restaurant" "restaurants" P.het)) in_Prep to_Prep ;
-
-
--- currencies
-
- DanishCrown = mkCN (P.mkA "Deens") (P.mkN "kroon" "kronen" P.de) ;
- Dollar = mkCN (P.mkN "dollar" "dollars" P.de) ;
- Euro = mkCN (P.mkN "euro" "euro's" P.de) ;
- Lei = mkCN (P.mkA "Roemeens") (P.mkN "leu" "lei" P.de) ;
- Leva = mkCN (P.mkA "Bulgaars") (P.mkN "leva" "levs" P.de) ;
- NorwegianCrown = mkCN (P.mkA "Noors") (P.mkN "kroon" "kronen "P.de) ;
- Pound = mkCN (P.mkA "Brits") (P.mkN "pond" "pond" P.het);
- Rouble = mkCN (P.mkA "Russisch") (P.mkN "roebel" "roebel" P.de) ;
- SwedishCrown = mkCN (P.mkA "Zweeds") (P.mkN "kroon" "kronen" P.de) ;
- Zloty = mkCN (P.mkA "Pools") (P.mkN "zloty" "zloty" P.de) ;
-
-
--- Nationalities
-
- Belgian = P.mkA "Belgisch" ;
- Belgium = mkNP (P.mkPN "Belgi") ;
- Bulgarian = mkNat "Bulgaars" "Bulgarije" ;
- Catalan = mkNat "Catalaans" "Cataloni" ;
- Danish = mkNat "Deens" "Denemarken" ;
- Dutch = mkNat "Nederlands" "Nederland" ;
- English = mkNat "Engels" "Engeland" ;
- Finnish = mkNat "Fins" "Finland" ;
- Flemish = mkNP (P.mkPN "Vlaams") ;
- French = mkNat "Frans" "Frankrijk" ;
- German = mkNat "Duits" "Duitsland" ;
- Italian = mkNat "Italiaans" "Itali" ;
- Norwegian = mkNat "Noors" "Noorwegen" ;
- Polish = mkNat "Pools" "Polen" ;
- Romanian = mkNat "Roemeens" "Roemeni" ;
- Russian = mkNat "Russisch" "Rusland" ;
- Spanish = mkNat "Spaans" "Spanje" ;
- Swedish = mkNat "Zweeds" "Zweden" ;
-
-
--- Means of transportation
-
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (P.mkN "bus" "bussen" P.de) ;
- Car = mkTransport (P.mkN "auto" "auto's" P.de);
- Ferry = mkTransport (P.mkN "veerboot" "veerboten" P.de) ; -- ferry x veerboot
- Plane = mkTransport (P.mkN "vliegtuig" "vliegtuigen" P.het) ;
- Subway = mkTransport (P.mkN "metro" "metro" P.de) ;
- Taxi = mkTransport (P.mkN "taxi" "taxi's" P.de) ;
- Tram = mkTransport (P.mkN "tram" "trams" P.de) ;
- Train = mkTransport (P.mkN "trein" "treinen" P.de) ;
-
- ByFoot = P.mkAdv "te voet" ;
-{-
- ik ga met de/het ....
-ik ga te voet/ ik ga lopend
-
--}
-
-
-
--- actions
- AHasAge p num = prop (mkCl p.name (mkNP num L.year_N)) ; -- ik ben ... jaar
- AHasName p name = prop (mkCl p.name (P.mkV2 I.heten_V) name) ; -- ik heet ...
- AHasChildren p num = prop (mkCl p.name have_V2 (mkNP num L.child_N)) ; -- ik heb ... kinderen
- --todo geen
- AHasRoom p num =
- mkProp (mkCl p.name have_V2 -- ik heb een kamer voor ... personen
- (mkNP (mkNP a_Det (P.mkN "kamer"))
- (SyntaxDut.mkAdv for_Prep (mkNP num (P.mkN "persoon")))))
- (mkS (mkCl p.name have_V2 -- ik heb geen kamer voor ... personen
- (mkNP (mkNP no_Quant (P.mkN "kamer"))
- (SyntaxDut.mkAdv for_Prep (mkNP num (P.mkN "persoon"))))));
- AHasTable p num =
- mkProp (mkCl p.name have_V2
- (mkNP (mkNP a_Det (P.mkN "tafel"))
- (SyntaxDut.mkAdv for_Prep (mkNP num (P.mkN "persoon")))))
- (mkS (mkCl p.name have_V2
- (mkNP (mkNP no_Quant (P.mkN "tafel"))
- (SyntaxDut.mkAdv for_Prep (mkNP num (P.mkN "persoon")))))) ;
- AHungry p = mkProp (mkCl p.name have_V2 (mkNP (P.mkN "honger")))
- (mkS (mkCl p.name have_V2 (mkNP no_Quant (P.mkN "honger")))) ; -- to have
- AIll p = prop (mkCl p.name (P.mkA "ziek")) ; -- to be ?
- AKnow p = prop (mkCl p.name I.weten_V) ; -- ik weet het.
- ALike p item = prop (mkCl p.name L.like_V2 item) ; -- ik vind X leuk
- ALive p co = prop (mkCl p.name (mkVP (mkVP (P.mkV "wonen")) (SyntaxDut.mkAdv in_Prep co))) ; -- woon
- ALove p q = prop (mkCl p.name L.love_V2 q.name) ; -- houden van
- AMarried p = prop (mkCl p.name (P.mkA "getrouwd")) ; -- ik ben getrouwd
- AReady p = prop (mkCl p.name (P.mkA "klaar")) ; -- ik ben klaar
- AScared p = prop (mkCl p.name (P.mkA "bang")) ; -- ik ben bang
- ASpeak p lang = mkProp (mkCl p.name (P.mkV2 I.spreken_V) lang) -- ik spreek ...
- (mkS (mkCl p.name (P.mkV2 I.spreken_V) (mkNP no_Predet lang))); -- ik spreek geen ...
- AThirsty p = mkProp (mkCl p.name have_V2 (mkNP (P.mkN "dorst"))) --ik heb dorst
- (mkS (mkCl p.name have_V2 (mkNP no_Quant (P.mkN "dorst")))) ; --ik heb geen dorst
- ATired p = prop (mkCl p.name (P.mkA "moe")) ; -- ik ben moe
- AUnderstand p = prop (mkCl p.name (P.mkV "verstaan" "verstond" "verstonden" "verstaan")) ;
- AWant p obj = prop (mkCl p.name wants_V2 obj) ;
- AWantGo p place = prop (mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to)) ; -- ik wil naar ...
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name I.heten_V)) ; --hoe heet je
- QWhatAge p = mkQS (mkQCl (E.ICompAP (mkAP L.old_A)) p.name) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (P.mkV "kosten"))) ; --hoeveel kost...
- ItCost item price = prop (mkCl item (P.mkV2 (P.mkV "kosten")) price) ; --..item.. kost ..price..
-
- PropOpen p = prop (mkCl p.name open_A) ;
- PropClosed p = prop (mkCl p.name closed_A) ;
- PropOpenDate p d = prop (mkCl p.name (mkVP (mkVP open_A) d)) ; --de winkel is geopend op vrijdag(s)
- --normaal gesproken ga ik op vrijdag ..action../vrijdags ga ik ..action..
- PropClosedDate p d = prop (mkCl p.name (mkVP (mkVP closed_A) d)) ; -- gesloten
- PropOpenDay p d = prop (mkCl p.name (mkVP (mkVP open_A) d.habitual)) ;
- PropClosedDay p d = prop (mkCl p.name (mkVP (mkVP closed_A) d.habitual)) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("ik zie je"))) (mkPhrase (mkUtt d)) ; -- zie je / tot
- PSeeYouPlace p =
- mkText (lin Text (ss ("ik zie je"))) (mkPhrase (mkUtt p.at)) ; -- tot ziens in p (AR)
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("ik zie je")))
- (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ; --tot ... op/in/bij
-
--- 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
--- "the wife of my son" for non-pronouns.
-
- Wife = xOf sing (P.mkN "vrouw" "vrowen" P.de) ; -- x vrouw
- Husband = xOf sing L.man_N ;
- Son = xOf sing (P.mkN "zoon" "zonen" P.de) ;
- Daughter = xOf sing (P.mkN "dochter" "dochters" P.de) ;
- Children = xOf plur L.child_N ; -- kind
-
-
-
--- week days
-
- Monday = mkDay "maandag" ;
- Tuesday = mkDay "dinsdag" ;
- Wednesday = mkDay "woensdag" ;
- Thursday = mkDay "donderdag" ;
- Friday = mkDay "vrijdag" ;
- Saturday = mkDay "zaterdag" ;
- Sunday = mkDay "zondag" ;
-
- Tomorrow = P.mkAdv "morgen" ;
-
--- modifiers of places
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl (P.mkA
- "dichtbijzijnd" "dichtbijzijnde" "dichtbijzijndes"
- "dichterbijzijnd" "dichtestbijzijnd") ;
- TheCheapest = mkSuperl (P.mkA "goedkoop") ;
- TheMostExpensive = mkSuperl (P.mkA "duur") ;
- TheMostPopular = mkSuperl (P.mkA "populair") ;
- TheWorst = mkSuperl (P.mkA "slecht") ;
-
- SuperlPlace sup p = placeNP sup p ;
-
--- transports
-
- HowFar place = mkQS (mkQCl far_IAdv place.name) ; -- hoe ver is de dierentuin
- HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP y.name (SyntaxDut.mkAdv van_Prep x.name))) ;
--- how far is the center from the hotel ? hoever is het centrum van het hotel
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxDut.mkAdv van_Prep x.name)) t)) ;
---hoelang duurt het om van het vliegveld naar het hotel te gaan per taxi
- HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP y.name t)) ; --hoe ver is het museum per bus
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
-
-
- oper
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (P.mkPN nat)) (mkNP (P.mkPN co)) (P.mkA nat) ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- mkNPDay (mkNP (P.mkPN d)) (mkAdv (P.mkPrep []) (mkNP (P.mkPN d)))
- ---- (mkAdv on_Prep (mkNP (P.mkPN d)))
- (mkAdv on_Prep (mkNP a_Quant plNum (mkCN (P.mkN d (d + "en") P.utrum)))) ;
-
- mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN p) (P.mkPrep i) to_Prep ;
-
- open_A = P.mkA "geopend" ;
- closed_A = P.mkA "gesloten" ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n (mkCN x) (\a,b,c -> mkNP (mkNP the_Quant a c) (SyntaxDut.mkAdv possess_Prep b)) p ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxDut.mkAdv with_Prep (mkNP the_Det n)
- } ;
-
- far_IAdv = ss "hoe ver" ** {lock_IAdv = <>} ;
- long_IAdv = ss "hoe lang" ** {lock_IAdv = <>};
-
- mkSuperl : A -> Det = \a -> SyntaxDut.mkDet the_Art (SyntaxDut.mkOrd a) ;
-
- van_Prep : Prep = P.mkPrep "van" ;
- wants_V2 : V2 = P.mkV2 (P.mkV "wil" "wil" "willen" "wou" "wouden" "gewild") ;
-
- no_Predet = R.mkPredet "geen" "geen" ;
-{-
- HowFarFrom : how far is the center from the hotel ? hoe ver is het centrum van het hotel
- HowFarFromBy : how far is the airport from the hotel by taxi ? hoe lang duurt het om van het vliegveld naar het hotel te gaan per taxi
- HowFarBy : how far is the museum by bus ? hoe ver is het museum per bus/ hoelang doe je er over om met de bus naar het museum te gaan/hoelang doet de bus er over tot het museum
-
-
--}
-
-
-}
diff --git a/examples/phrasebook/WordsEng.gf b/examples/phrasebook/WordsEng.gf
deleted file mode 100644
index ca8a55172..000000000
--- a/examples/phrasebook/WordsEng.gf
+++ /dev/null
@@ -1,314 +0,0 @@
---2 Implementations of Words, with English as example
-
-concrete WordsEng of Words = SentencesEng **
- open
- SyntaxEng,
- ParadigmsEng,
- (L = LexiconEng),
- (P = ParadigmsEng),
- IrregEng,
- ExtraEng,
- Prelude in {
- lin
-
--- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "cheese") ;
- Chicken = mkCN (mkN "chicken") ;
- Coffee = mkCN (mkN "coffee") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "meat") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "pizza") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "tea") ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
-
- Bad = L.bad_A ;
- Boring = mkA "boring" ;
- Cheap = mkA "cheap" ;
- Cold = L.cold_A ;
- Delicious = mkA "delicious" ;
- Expensive = mkA "expensive" ;
- Fresh = mkA "fresh" ;
- Good = L.good_A ;
- Suspect = mkA "suspect" ;
- Warm = L.warm_A ;
-
--- Places require different prepositions to express location; in some languages
--- also the directional preposition varies, but in English we use $to$, as
--- defined by $mkPlace$.
-
- Airport = mkPlace "airport" "at" ;
- AmusementPark = mkCompoundPlace "amusement" "park" "at" ;
- Bank = mkPlace "bank" "at" ;
- Bar = mkPlace "bar" "in" ;
- Cafeteria = mkPlace "canteen" "in" ;
- Center = mkPlace "center" "in" ;
- Cinema = mkPlace "cinema" "at" ;
- Church = mkPlace "church" "in" ;
- Disco = mkPlace "disco" "at" ;
- Hospital = mkPlace "hospital" "in" ;
- Hotel = mkPlace "hotel" "in" ;
- Museum = mkPlace "museum" "at" ;
- Park = mkPlace "park" "in" ;
- Parking = mkCompoundPlace "car" "park" "in" ;
- Pharmacy = mkPlace "pharmacy" "at" ;
- PostOffice = mkCompoundPlace "post" "office" "at" ;
- Pub = mkPlace "pub" "at" ;
- Restaurant = mkPlace "restaurant" "in" ;
- School = mkPlace "school" "at" ;
- Shop = mkPlace "shop" "at" ;
- Station = mkPlace "station" "at" ;
- Supermarket = mkPlace "supermarket" "at" ;
- Theatre = mkPlace "theatre" "at" ;
- Toilet = mkPlace "toilet" "in" ;
- University = mkPlace "university" "at" ;
- Zoo = mkPlace "zoo" "at" ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant")) in_Prep to_Prep ;
-
-
--- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
-
- DanishCrown = mkCN (mkA "Danish") (mkN "crown") | mkCN (mkN "crown") ;
- Dollar = mkCN (mkN "dollar") ;
- Euro = mkCN (mkN "euro" "euros") ; -- to prevent euroes
- Lei = mkCN (mkN "leu" "lei") ;
- Leva = mkCN (mkN "lev") ;
- NorwegianCrown = mkCN (mkA "Norwegian") (mkN "crown") | mkCN (mkN "crown") ;
- Pound = mkCN (mkN "pound") ;
- Rouble = mkCN (mkN "rouble") ;
- Rupee = mkCN (mkN "rupee") ;
- SwedishCrown = mkCN (mkA "Swedish") (mkN "crown") | mkCN (mkN "crown") ;
- Zloty = mkCN (mkN "zloty" "zloty") ;
- Yuan = mkCN (mkN "yuan" "yuan") ;
-
--- Nationalities
-
- Belgian = mkA "Belgian" ;
- Belgium = mkNP (mkPN "Belgium") ;
- Bulgarian = mkNat "Bulgarian" "Bulgaria" ;
- Catalan = mkNPNationality (mkNP (mkPN "Catalan")) (mkNP (mkPN "Catalonia")) (mkA "Catalonian") ;
- Chinese = mkNat "Chinese" "China" ;
- Danish = mkNat "Danish" "Denmark" ;
- Dutch = mkNPNationality (mkNP (mkPN "Dutch")) (mkNP the_Quant (mkN "Netherlands")) (mkA "Dutch") ;
- English = mkNat "English" "England" ;
- Finnish = mkNat "Finnish" "Finland" ;
- Flemish = mkNP (mkPN "Flemish") ;
- French = mkNat "French" "France" ;
- German = mkNat "German" "Germany" ;
- Hindi = mkNP (mkPN "Hindi") ;
- India = mkNP (mkPN "India") ;
- Indian = mkA "Indian" ;
- Italian = mkNat "Italian" "Italy" ;
- Norwegian = mkNat "Norwegian" "Norway" ;
- Polish = mkNat "Polish" "Poland" ;
- Romanian = mkNat "Romanian" "Romania" ;
- Russian = mkNat "Russian" "Russia" ;
- Spanish = mkNat "Spanish" "Spain" ;
- Swedish = mkNat "Swedish" "Sweden" ;
-
--- Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "bus") ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "ferry") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "subway") ;
- Taxi = mkTransport (mkN "taxi") ;
- Train = mkTransport (mkN "train") ;
- Tram = mkTransport (mkN "tram") ;
-
- ByFoot = P.mkAdv "by foot" ;
-
--- Actions: the predication patterns are very often language-dependent.
-
- AHasAge p num = mkCl p.name (mkNP (mkNP num L.year_N) (ParadigmsEng.mkAdv "old"));
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "room")) (SyntaxEng.mkAdv for_Prep (mkNP num (mkN "person")))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "table")) (SyntaxEng.mkAdv for_Prep (mkNP num (mkN "person")))) ;
- AHasName p name = mkCl (nameOf p) name ;
- AHungry p = mkCl p.name (mkA "hungry") ;
- AIll p = mkCl p.name (mkA "ill") ;
- AKnow p = mkCl p.name IrregEng.know_V ;
- ALike p item = mkCl p.name (mkV2 (mkV "like")) item ;
- ALive p co = mkCl p.name (mkVP (mkVP (mkV "live")) (SyntaxEng.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (mkV2 (mkV "love")) q.name ;
- AMarried p = mkCl p.name (mkA "married") ;
- AReady p = mkCl p.name (mkA "ready") ;
- AScared p = mkCl p.name (mkA "scared") ;
- ASpeak p lang = mkCl p.name (mkV2 IrregEng.speak_V) lang ;
- AThirsty p = mkCl p.name (mkA "thirsty") ;
- ATired p = mkCl p.name (mkA "tired") ;
- AUnderstand p = mkCl p.name IrregEng.understand_V ;
- AWant p obj = mkCl p.name (mkV2 (mkV "want")) obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP IrregEng.go_V) place.to) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl (mkIComp whatSg_IP) (nameOf p)) ;
--- QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
- QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item IrregEng.cost_V)) ;
- ItCost item price = mkCl item (mkV2 IrregEng.cost_V) price ;
-
- 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) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("see you"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("see you")))
- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
-
--- 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
--- "the wife of my son" for non-pronouns.
-
- Wife = xOf sing (mkN "wife") ;
- Husband = xOf sing (mkN "husband") ;
- Son = xOf sing (mkN "son") ;
- Daughter = xOf sing (mkN "daughter") ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay "Monday" ;
- Tuesday = mkDay "Tuesday" ;
- Wednesday = mkDay "Wednesday" ;
- Thursday = mkDay "Thursday" ;
- Friday = mkDay "Friday" ;
- Saturday = mkDay "Saturday" ;
- Sunday = mkDay "Sunday" ;
-
- Tomorrow = P.mkAdv "tomorrow" ;
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "cheap") ;
- TheMostExpensive = mkSuperl (mkA "expensive") ;
- TheMostPopular = mkSuperl (mkA "popular") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
--- transports
-
- HowFar place = mkQS (mkQCl far_IAdv place.name) ;
- HowFarFrom x y =
- mkQS (mkQCl far_IAdv (mkCl y.name (SyntaxEng.mkAdv from_Prep x.name))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkCl y.name (SyntaxEng.mkAdv from_Prep (mkNP x.name t)))) ;
- HowFarBy y t = mkQS (mkQCl far_IAdv (mkCl y.name t)) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
-
--- auxiliaries
-
- oper
-
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day = mkNP (mkPN d) in
- mkNPDay day (SyntaxEng.mkAdv on_Prep day)
- (SyntaxEng.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
-
- mkCompoundPlace : Str -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \comp, p, i ->
- mkCNPlace (mkCN (P.mkN comp (mkN p))) (P.mkPrep i) to_Prep ;
-
- mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN (mkN p)) (P.mkPrep i) to_Prep ;
-
- open_Adv = P.mkAdv "open" ;
- closed_Adv = P.mkAdv "closed" ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
-
- nameOf : NPPerson -> NP = \p -> (xOf sing (mkN "name") p).name ;
-
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxEng.mkAdv by8means_Prep (mkNP n)
- } ;
-
- mkSuperl : A -> Det = \a -> SyntaxEng.mkDet the_Art (SyntaxEng.mkOrd a) ;
-
- far_IAdv = ExtraEng.IAdvAdv (ss "far") ;
-
---------------------------------------------------
--- New 30/11/2011 AR
---------------------------------------------------
-
- lin
- Thai = mkNat "Thai" "Thailand" ;
- Baht = mkCN (mkN "baht" "baht") ;
-
- Rice = mkCN (mkN "rice") ;
- Pork = mkCN (mkN "pork") ;
- Beef = mkCN (mkN "beef") ;
- Egg = mkCN L.egg_N ;
- Noodles = mkCN (mkN "noodle") ;
- Shrimps = mkCN (mkN "shrimp") ;
- Chili = mkCN (mkN "chili") ;
- Garlic = mkCN (mkN "garlic") ;
- Durian = mkCN (mkN "durian") ;
- Mango = mkCN (mkN "mango") ;
- Pineapple = mkCN (mkN "pineapple") ;
- Coke = mkCN (mkN "coke") ;
- IceCream = mkCN (mkN "ice cream") ;
- Salad = mkCN (mkN "salad") ;
- OrangeJuice = mkCN (mkN "orange juice") ;
- Lemonade = mkCN (mkN "lemonade") ;
-
- Beach = mkPlace "beach" "on" ;
-
- ItsRaining = mkCl (progressiveVP (mkVP L.rain_V0)) ;
- ItsCold = mkCl (mkVP L.cold_A) ;
- ItsWarm = mkCl (mkVP L.warm_A) ;
- ItsWindy = mkCl (mkVP (P.mkA "windy")) ;
- SunShine = mkCl (mkNP the_Det L.sun_N) (progressiveVP (mkVP shine_V)) ;
-
- Smoke = mkVP (P.mkV "smoke") ;
-
- ADoctor = mkProfession (mkN "doctor") ;
- AProfessor = mkProfession (mkN "professor") ;
- ALawyer = mkProfession (mkN "lawyer") ;
- AEngineer = mkProfession (mkN "engineer") ;
- ATeacher = mkProfession (mkN "teacher") ;
- ACook = mkProfession (mkN "cook") ;
- AStudent = mkProfession (mkN "student") ;
- ABusinessman = mkProfession (mkN "businessman" "businessmen") ;
-
- oper
- mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
-}
diff --git a/examples/phrasebook/WordsEst.gf b/examples/phrasebook/WordsEst.gf
deleted file mode 100644
index 442c79341..000000000
--- a/examples/phrasebook/WordsEst.gf
+++ /dev/null
@@ -1,372 +0,0 @@
--- (c) 2010 Aarne Ranta under LGPL
--- Estonian port by Kaarel Kaljurand
-
-concrete WordsEst of Words = SentencesEst **
- open
- SyntaxEst, ParadigmsEst, (L = LexiconEst), (R = ResEst),
- Prelude, (E = ExtraEst) in {
-
- flags optimize = noexpand ;
-
- lin
-
--- kinds
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "juust" "juustu" "juustu" "juustu" "juustude" "juuste") ;
- Chicken = mkCN (mkN "kana") ;
- Coffee = mkCN (mkN "kohv" "kohvi" "kohvi" "kohvi" "kohvide" "kohve") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "liha") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "pitsa" "pitsa" "pitsat" "pitsasse" "pitsade" "pitsasid") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "tee") ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- qualities
-
- Bad = L.bad_A ;
- Boring = mkA "igav" ;
- Cheap = mkA "odav" ;
- Cold = L.cold_A ;
- Delicious = mkA "maitsev" ;
- Expensive = mkA (mkN "kallis" "kalli" "kallist" "kallisse" "kallite" "kalleid");
- Fresh = mkA "toores" ;
- Good = L.good_A ;
- Suspect = mkA "kahtlane" ;
- Warm = L.warm_A ;
-
--- places
-
- Restaurant = mkPlace (mkN "restoran") ssa ;
- Bank = mkPlace (mkN "pank") ssa ;
- PostOffice = mkPlace (mkN "post" (mkN "kontor")) ssa ;
- Bar = mkPlace (mkN "baar") ssa ;
- Toilet = mkPlace (mkN "tualett") ssa ;
- Museum = mkPlace (mkN "muuseum") ssa ;
- Airport = mkPlace (mkN "lennu" (mkN "jaam" "jaama" "jaama" "jaama" "jaamade" "jaamu")) ssa ; -- different in Fin
- Station = mkPlace (mkN "jaam" "jaama" "jaama" "jaama" "jaamade" "jaamu") ssa ; -- different in Fin
- Hospital = mkPlace (mkN "haigla") ssa ;
- Church = mkPlace (mkN "kirik") ssa ;
- Cinema = mkPlace (mkN "kino") ssa ;
- Theatre = mkPlace (mkN "teater") ssa ;
- Shop = mkPlace (mkN "pood" "poe" "poodi" "poodi" "poodide" "poode") ssa ;
- Park = mkPlace (mkN "park") ssa ;
- Hotel = mkPlace (mkN "hotell" "hotelli" "hotelli" "hotelli" "hotellide" "hotelle") ssa ;
- University = mkPlace (mkN "üli" (mkN "kool")) ssa ; -- different in Fin
- School = mkPlace (mkN "kool") ssa ; -- different in Fin
-
- CitRestaurant cit = {
- name = mkCN cit.prop (mkN "restoran") ;
- at = casePrep inessive ;
- to = casePrep illative;
- from = casePrep elative ;
- isPl = False
- } ;
-
- Parking = mkPlace (mkN "parkla") ssa ; -- different in Fin
- Supermarket = mkPlace (mkN "super" (mkN "market")) ssa ;
- Pharmacy = mkPlace (mkN "apteek") ssa ;
- Center = mkPlace (mkN "keskus") ssa ;
- Cafeteria = mkPlace (mkN "kohvik") ssa ;
- Disco = mkPlace (mkN "diskoteek") ssa ;
- Pub = mkPlace (mkN "kõrts") ssa ;
- AmusementPark = mkPlace (mkN "lõbustus" (mkN "park")) ssa ;
- Zoo = mkPlace (mkN "looma" (mkN "aed" "aia" "aeda" "aeda" "aedade" "aedu")) ssa ;
-
--- currencies
-
- DanishCrown = mkCN (kroon2 "taani") ;
- Dollar = mkCN (mkN "dollar") ;
- Euro = mkCN (mkN "euro") ;
- Lei = mkCN (mkN "leu") ;
- Leva = mkCN (mkN "leev") ;
- NorwegianCrown = mkCN (kroon2 "norra") ;
- Pound = mkCN (mkN "nael" "naela") ;
- Rouble = mkCN (mkN "rubla") ;
- Rupee = mkCN (mkN "ruupia") ;
- SwedishCrown = mkCN (kroon2 "rootsi") ;
- Zloty = mkCN (mkN "zlott") ;
- Yuan = mkCN (mkN "jüään") ;
-
--- Citizenship
- Belgian = { prop = invA "belgia" ; nat = mkA "belglane" } ;
- Indian = { prop = invA "india" ; nat = mkA "indialane" } ;
-
--- Country
- Belgium = mkNP (mkPN "Belgia") ;
- India = mkNP (mkPN "India") ;
-
--- Nationality
- Bulgarian = mkNat "bulgaaria" "bulgaarlane" (mkPN "Bulgaaria") ;
- Catalan = mkNat "katalaani" "kataloonlane" (mkPN "Kataloonia") ;
- Chinese = mkNat "hiina" "hiinlane" (mkPN "Hiina") ;
- Danish = mkNat "taani" "taanlane" (mkPN "Taani") ;
- Dutch = mkNat "hollandi" "hollandlane" (mkPN "Holland") ;
- English = mkNat "inglise" "inglane" (mkPN "Inglismaa") ;
- Finnish = mkNat "soome" "soomlane" (mkPN "Soome") ;
- Flemish = mkNP (mkPN "flaami keel") ; -- Language
- Hindi = mkNP (mkPN "hindi keel") ; -- Language
- French = mkNat "prantsuse" "prantslane" (mkPN "Prantsusmaa") ;
- German = mkNat "saksa" "sakslane" (mkPN "Saksamaa") ;
- Italian = mkNat "itaalia" "itaallane" (mkPN "Itaalia") ;
- Norwegian = mkNat "norra" "norralane" (mkPN "Norra") ;
- Polish = mkNat "poola" "poolakas" (mkPN "Poola") ;
- Romanian = mkNat "rumeenia" "rumeenlane" (mkPN "Rumeenia") ;
- Russian = mkNat "vene" "venelane" (mkPN "Venemaa") ;
- Spanish = mkNat "hispaania" "hispaanlane" (mkPN "Hispaania") ;
- Swedish = mkNat "rootsi" "rootslane" (mkPN "Rootsi") ;
-
- ---- it would be nice to have a capitalization Predef function
-
--- means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "buss" "bussi" "bussi" "bussi" "busside" "busse") ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "praam") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "metroo") ;
- Taxi = mkTransport (mkN "takso") ;
- Train = mkTransport L.train_N ;
- Tram = mkTransport (mkN "tramm") ;
-
- ByFoot = ParadigmsEst.mkAdv "jalgsi" ;
-
-
--- actions
-
- AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasName p name = mkCl (nameOf p) name ;
- AHasRoom p = haveForPerson p.name (mkCN (mkN "tuba")) ;
- AHasTable p = haveForPerson p.name (mkCN (mkN "laud")) ;
- AHungry p = E.AdvExistNP (SyntaxEst.mkAdv on_Prep p.name) (mkNP (mkN "nälg")) ;
- AIll p = mkCl p.name (mkA "haige") ;
- --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 ;
- ALive p co = mkCl p.name (mkVP (mkVP L.live_V) (SyntaxEst.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name L.love_V2 q.name ;
- AMarried p = mkCl p.name (ParadigmsEst.mkAdv "abielus") ;
- AReady p = mkCl p.name (ParadigmsEst.invA "valmis" ) ;
- -- Eng: I am scared
- -- Fin: Minua pelottaa (partitive)
- -- Est: Mina kardan (nominative)
- -- Est: Mul on hirm (nominative)
- -- AScared p = mkCl p.name (caseV nominative (mkV "kartma")) ;
- 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") ;
- AUnderstand p = mkCl p.name (mkV "aru" (mkV "saama")) ;
- AWant p obj = mkCl p.name (mkV2 "tahtma") obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
- QWhatAge p = mkQS (mkQCl (E.ICompAP (mkAP L.old_A)) p.name) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item maksma_V)) ;
- ItCost item price = mkCl item (mkV2 maksma_V) price ;
-
- 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) ;
-
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("kohtumiseni"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("kohtumiseni"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("kohtumiseni")))
- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
-
--- 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
--- "the wife of my son" for non-pronouns.
-
- Wife = xOf sing (mkN "naine") ;
- Husband = xOf sing L.man_N ;
- Son = xOf sing (mkN "poeg" "poja" "poega" "poegadesse" "poegade" "poegi") ;
- Daughter = xOf sing (mkN "tütar" "tütre" "tütart" "tütresse" "tütarde" "tütreid") ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDayPaev "esmas" ;
- Tuesday = mkDayPaev "teisi" ;
- Wednesday = mkDayPaev "kolma" ;
- Thursday = mkDayPaev "nelja" ;
- Friday = mkDay (mkPN (mkN "reede" "reede")) ("reedeti") ;
- Saturday = mkDayPaev "lau" ;
- Sunday = mkDayPaev "püha" ;
-
- Tomorrow = ParadigmsEst.mkAdv "homme" ;
-
--- transports
-
- HowFar place = mkQS (mkQCl far_IAdv place.name) ;
- HowFarFrom x y =
- mkQS (mkQCl far_IAdv (mkCl y.name x.from)) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkCl y.name
- (mkVP (mkVP x.from) t))) ;
- HowFarBy place t =
- mkQS (mkQCl far_IAdv (mkCl place.name t)) ;
- -- mkQS (mkQCl (mkIAdv far_IAdv t) y.name) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkVP (mkVP (mkVP (mkV "saama")) trans.by) place.to))) ;
- -- pääseekö keskustaan bussilla
- -- mkQS (mkQCl (E.AdvPredNP place.to L.go_V (E.PartCN (trans.name)))) ;
- -- meneekö keskustaan bussia
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl (mkA (mkN "lähedal asuv") "lähem" "lähim") ;
- TheCheapest = mkSuperl (mkA "odav") ;
- TheMostExpensive = mkSuperl (mkA (mkN "kallis" "kalli" "kallist" "kallisse" "kallite" "kalleid")) ;
- TheMostPopular = mkSuperl (mkA "populaarne") ;
- TheWorst = mkSuperl (L.bad_A) ;
-
- SuperlPlace sup p = placeNP sup p ;
-
- oper
- kroon : N = mkN "kroon" "krooni" "krooni" "krooni" "kroonide" "kroone" ;
- kroon2 : Str -> N = \taani -> mkN (taani + " ") kroon ;
- maksma_V : V = mkV "maksma" "maksta" "maksab" ;
-
- mkNat : Str -> Str -> PN -> NPNationality
- = \attr,pred,co ->
- {lang = mkNP (mkCN (mkN (attr + " ") (mkN "keel" "keele" "keelt" "keelde" "keelte" "keeli")));
- prop = invA attr ;
- nat = mkA pred ;
- country = mkNP co
- } ;
-
- ---- 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 ->
- let day = mkNP d in
- {name = day ;
- point = SyntaxEst.mkAdv (casePrep adessive) day ;
- habitual = ParadigmsEst.mkAdv s
- } ;
-
- 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 ;
- at = casePrep (if_then_else Case e adessive inessive) ; -- True: external
- to = casePrep (if_then_else Case e allative illative) ;
- from = casePrep (if_then_else Case e ablative elative) ;
- isPl = False
- } ;
-
- ssa = False ;
- lla = True ;
-
- -- 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 ;
-
- nameOf : NPPerson -> NP = \p -> (xOf sing L.name_N p).name ;
-
- oper
- -- do you have a table for five persons
- haveForPerson : NP -> CN -> Card -> Cl = \p,a,n ->
- mkCl p have_V2
----- (mkNP (E.PartCN a) ---- partitive works in questions )
- (mkNP (mkNP a_Det a)
- (SyntaxEst.mkAdv for_Prep (mkNP n L.person_N))) ;
----- (SyntaxEst.mkAdv for_Prep (mkNP (mkDet n)))) ; -- 60s faster compile 25/10/2010
-
- open_Adv = ParadigmsEst.mkAdv "avatud" ;
- closed_Adv = ParadigmsEst.mkAdv "suletud" ;
-
- -- Fin: casePrep adessive
- -- Est: casePrep comitative
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxEst.mkAdv (casePrep comitative) (mkNP n)
- } ;
-
- mkSuperl : A -> Det = \a -> mkDet the_Quant (mkOrd a) ;
-
- far_IAdv = E.IAdvAdv L.far_Adv ;
-
---------------------------------------------------
--- New 30/11/2011 AR
---------------------------------------------------
-
- lin
- Thai = mkNat ("tai") "tailane" (mkPN "Tai") ;
- Baht = mkCN (mkN "baht") ;
-
- Rice = mkCN (mkN "riis") ;
- Pork = mkCN (mkN "siga") ;
- Beef = mkCN (mkN "veis") ;
- Egg = mkCN L.egg_N ;
- Noodles = mkCN (mkN "nuudel") ;
- Shrimps = mkCN (mkN "krevet") ;
- Chili = mkCN (mkN "tšilli") ;
- Garlic = mkCN (mkN "küüs" (mkN "lauk")) ;
- Durian = mkCN (mkN "duurian") ;
- Mango = mkCN (mkN "mango") ;
- Pineapple = mkCN (mkN "ananass") ;
- Coke = mkCN (mkN "coca-cola") ;
- IceCream = mkCN (mkN "jäätis") ;
- Salad = mkCN (mkN "salat") ;
- OrangeJuice = mkCN (mkN "apelsiini" (mkN "mahl")) ;
- Lemonade = mkCN (mkN "limonaad") ;
-
- Beach = mkPlace (mkN "supel" (mkN "rand")) ssa ;
-
- ItsRaining = mkCl (mkVP L.rain_V0) ;
- ItsCold = mkCl (mkVP L.cold_A) ;
- ItsWarm = mkCl (mkVP L.warm_A) ;
- ItsWindy = mkCl (mkNP the_Det L.wind_N) (mkVP (mkV "puhuma")) ;
- SunShine = mkCl (mkNP the_Det L.sun_N) (mkVP (mkV "paistma")) ;
-
- Smoke = mkVP (mkV "suitsetama") ;
-
- ADoctor = mkProfession (mkN "arst") ;
- AProfessor = mkProfession (mkN "professor") ;
- ALawyer = mkProfession (mkN "jurist") ;
- AEngineer = mkProfession (mkN "insener") ;
- ATeacher = mkProfession (mkN "õpetaja") ;
- ACook = mkProfession (mkN "kokk") ;
- AStudent = mkProfession (mkN "õpilane") ;
- ABusinessman = mkProfession (mkN "äri" L.man_N) ;
-
- oper
- mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
-}
diff --git a/examples/phrasebook/WordsFin.gf b/examples/phrasebook/WordsFin.gf
deleted file mode 100644
index e59eeccf6..000000000
--- a/examples/phrasebook/WordsFin.gf
+++ /dev/null
@@ -1,334 +0,0 @@
--- (c) 2010 Aarne Ranta under LGPL
---# -coding=latin1
-
-concrete WordsFin of Words = SentencesFin **
- open
- SyntaxFin, ParadigmsFin, (L = LexiconFin),
- Prelude, (E = ExtraFin) in {
-
- flags optimize = noexpand ;
-
- lin
-
--- kinds
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "juusto") ;
- Chicken = mkCN (mkN "kana") ;
- Coffee = mkCN (mkN "kahvi") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "liha") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "pizza") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "tee") ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- qualities
-
- Bad = L.bad_A ;
- Boring = mkA "tyls" ;
- Cheap = mkA "halpa" ;
- Cold = L.cold_A ;
- Delicious = mkA "herkullinen" ;
- Expensive = mkA "kallis" ;
- Fresh = mkA "tuore" ;
- Good = L.good_A ;
- Suspect = mkA "epilyttv" ;
- Warm = L.warm_A ;
-
--- places
-
- Restaurant = mkPlace (mkN "ravintola") ssa ;
- Bank = mkPlace (mkN "pankki") ssa ;
- PostOffice = mkPlace (mkN "posti") ssa ;
- Bar = mkPlace (mkN "baari") ssa ;
- Toilet = mkPlace (mkN "vessa") ssa ;
- Museum = mkPlace (mkN "museo") ssa ;
- Airport = mkPlace (mkN "lento" (mkN "kentt")) lla ;
- Station = mkPlace (mkN "asema") lla ;
- Hospital = mkPlace (mkN "sairaala") ssa ;
- Church = mkPlace (mkN "kirkko") ssa ;
- Cinema = mkPlace (mkN "elokuva" (mkN "teatteri")) ssa ;
- Theatre = mkPlace (mkN "teatteri") ssa ;
- Shop = mkPlace (mkN "kauppa") ssa ;
- Park = mkPlace (mkN "puisto") ssa ;
- Hotel = mkPlace (mkN "hotelli") ssa ;
- University = mkPlace (mkN "yliopisto") lla ;
- School = mkPlace (mkN "koulu") lla ;
-
- CitRestaurant cit = {
- name = mkCN cit (mkN "ravintola") ; isExternal = False ; isPl = False
- } ;
- Parking = mkPlace (mkN "pyskinti" (mkN "alue")) lla ;
- Supermarket = mkPlace (mkN "supermarket") ssa ;
- Pharmacy = mkPlace (mkN "apteekki") ssa ;
- Center = mkPlace (mkN "keskusta") ssa ;
- Cafeteria = mkPlace (mkN "kahvila") ssa ;
- Disco = mkPlace (mkN "disko") ssa ;
- Pub = mkPlace (mkN "pub") ssa ;
- AmusementPark = mkPlace (mkN "huvi" (mkN "puisto")) ssa ;
- Zoo = mkPlace (mkN "elin" (mkN "tarha")) ssa ;
-
--- currencies
-
- DanishCrown = mkCN (mkN "Tanskan kruunu") | mkCN (mkN "kruunu") ;
- Dollar = mkCN (mkN "dollari") ;
- Euro = mkCN (mkN "euro") ;
- Lei = mkCN (mkN "lei") ;
- Leva = mkCN (mkN "leva") ;
- NorwegianCrown = mkCN (mkN "Norjan kruunu") | mkCN (mkN "kruunu") ;
- Pound = mkCN (mkN "punta") ;
- Rouble = mkCN (mkN "rupla") ;
- SwedishCrown = mkCN (mkN "Ruotsin kruunu") | mkCN (mkN "kruunu") ;
- Zloty = mkCN (mkN "zloty" "zlotyja") ;
-
--- nationalities
-
- Belgian = mkA "belgialainen" ;
- Belgium = {np = mkNP (mkPN "Belgia") ; isExternal = False} ;
- Bulgarian = mkNat (mkPN "bulgaria") (mkPN "Bulgaria") (mkA "bulgarialainen") ;
- Catalan = mkNat (mkPN "katalaani") (mkPN "Katalonia") (mkA "katalonialainen") ;
- Danish = mkNat (mkPN "tanska") (mkPN "Tanska") (mkA "tanskalainen") ;
- Dutch = mkNat (mkPN "hollanti") (mkPN "Hollanti") (mkA "hollantilainen") ;
- English = mkNat (mkPN "englanti") (mkPN "Englanti") (mkA "englantilainen") ;
- Finnish =
- mkNat (mkPN (mkN "suomi" "suomia")) (mkPN (mkN "Suomi" "Suomia"))
- (mkA "suomalainen") ;
- Flemish = mkNP (mkPN "flaami") ;
- French = mkNat (mkPN "ranska") (mkPN "Ranska") (mkA "ranskalainen") ;
- German = mkNat (mkPN "saksa") (mkPN "Saksa") (mkA "saksalainen") ;
- Italian = mkNat (mkPN "italia") (mkPN "Italia") (mkA "italialainen") ;
- Norwegian = mkNat (mkPN "norja") (mkPN "Norja") (mkA "norjalainen") ;
- Polish = mkNat (mkPN "puola") (mkPN "Puola") (mkA "puolalainen") ;
- Romanian = mkNat (mkPN "romania") (mkPN "Romania") (mkA "romanialainen") ;
- Russian = mkNatExternal (mkPN "venj") (mkPN "Venj") (mkA "venlinen") ;
- Spanish = mkNat (mkPN "espanja") (mkPN "Espanja") (mkA "espanjalainen") ;
- Swedish = mkNat (mkPN "ruotsi") (mkPN "Ruotsi") (mkA "ruotsalainen") ;
-
- ---- it would be nice to have a capitalization Predef function
-
--- means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "bussi") ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "lautta") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "metro") ;
- Taxi = mkTransport (mkN "taksi") ;
- Train = mkTransport L.train_N ;
- Tram = mkTransport (mkN "raitiovaunu") ;
-
- ByFoot = ParadigmsFin.mkAdv "jalkaisin" ;
-
-
--- actions
-
- AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasName p name = mkCl (nameOf p) name ;
- AHasRoom p = haveForPerson p.name (mkCN (mkN "huone")) ;
- AHasTable p = haveForPerson p.name (mkCN (mkN "pyt")) ;
- AHungry p = E.AdvExistNP (SyntaxFin.mkAdv on_Prep p.name) (mkNP (mkN "nlk")) ;
- AIll p = mkCl p.name (mkA "sairas") ;
- AKnow p = mkCl p.name (mkV "tiet") ;
- ALike p item = mkCl p.name L.like_V2 item ;
- ALive p co = mkCl p.name (mkVP (mkVP (mkV "asua")) (SyntaxFin.mkAdv (casePrep (if_then_else Case co.isExternal adessive inessive)) co.np)) ;
- ALove p q = mkCl p.name (mkV2 (mkV "rakastaa") partitive) q.name ;
- AMarried p = mkCl p.name (ParadigmsFin.mkAdv "naimisissa") ;
- AReady p = mkCl p.name (ParadigmsFin.mkA "valmis") ;
- AScared p = mkCl p.name (caseV partitive (mkV "pelottaa")) ;
- ASpeak p lang = mkCl p.name (mkV2 (mkV "puhua") partitive) lang ;
- AThirsty p = E.AdvExistNP (SyntaxFin.mkAdv on_Prep p.name) (mkNP (mkN "jano")) ;
- ATired p = mkCl p.name (caseV partitive (mkV "vsytt")) ;
- AUnderstand p = mkCl p.name (mkV "ymmrt") ;
- AWant p obj = mkCl p.name (mkV2 "haluta") obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
- QWhatAge p = mkQS (mkQCl (E.ICompAP (mkAP L.old_A)) p.name) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "maksaa"))) ;
- ItCost item price = mkCl item (mkV2 (mkV "maksaa")) price ;
-
- 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) ;
-
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("nhdn"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("nhdn"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("nhdn")))
- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
-
--- 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
--- "the wife of my son" for non-pronouns.
-
- Wife = xOf sing (mkN "vaimo") ;
- Husband = xOf sing L.man_N ;
- Son = xOf sing L.boy_N ;
- Daughter = xOf sing (mkN "tytr") ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = let d = "maanantai" in mkDay (mkPN d) (d + "sin") ;
- Tuesday = let d = "tiistai" in mkDay (mkPN d) (d + "sin") ;
- Wednesday = let d = "keskiviikko" in mkDay (mkPN d) (d + "isin") ;
- Thursday = let d = "torstai" in mkDay (mkPN d) (d + "sin") ;
- Friday = let d = "perjantai" in mkDay (mkPN d) (d + "sin") ;
- Saturday = let d = "lauantai" in mkDay (mkPN d) (d + "sin") ;
- Sunday = let d = "sunnuntai" in mkDay (mkPN d) (d + "sin") ;
-
- Tomorrow = ParadigmsFin.mkAdv "huomenna" ;
-
--- transports
-
- HowFar place = mkQS (mkQCl far_IAdv place.name) ;
- HowFarFrom x y =
- mkQS (mkQCl far_IAdv (mkCl y.name x.from)) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkCl y.name
- (mkVP (mkVP x.from) t))) ;
- HowFarBy place t =
- mkQS (mkQCl far_IAdv (mkCl place.name t)) ;
- -- mkQS (mkQCl (mkIAdv far_IAdv t) y.name) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkVP (mkVP (mkVP (mkV "pst")) place.to) trans.by))) ;
- -- pseek keskustaan bussilla
- -- mkQS (mkQCl (E.AdvPredNP place.to L.go_V (E.PartCN (trans.name)))) ;
- -- meneek keskustaan bussia
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl (mkA (mkN "lheinen") "lhempi" "lhin") ;
- TheCheapest = mkSuperl (mkA (mkN "halpa") "halvempi" "halvin") ;
- TheMostExpensive = mkSuperl (mkA (mkN "kallis") "kalliimpi" "kallein") ;
- TheMostPopular = mkSuperl (mkA "suosittu") ;
- TheWorst = mkSuperl (mkA "huono") ;
-
- SuperlPlace sup p = placeNP sup p ;
-
- oper
- mkNat : PN -> PN -> A ->
- {lang : NP ; prop : A ; country : {np : NP ; isExternal : Bool}} = \nat,co,pro ->
- {lang = mkNP nat ;
- prop = pro ;
- country = {np = mkNP co ; isExternal = False}
- } ;
-
- mkNatExternal : PN -> PN -> A ->
- {lang : NP ; prop : A ; country : {np : NP ; isExternal : Bool}} = \nat,co,pro ->
- {lang = mkNP nat ;
- prop = pro ;
- country = {np = mkNP co ; isExternal = True}
- } ;
-
- ---- 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 ; isExternal : Bool ; isPl : Bool} = \p,e -> {
- name = mkCN p ;
- isExternal = e ;
- isPl = False
- } ;
- ssa = False ;
- lla = True ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,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 ;
-
- oper
- -- do you have a table for five persons
- haveForPerson : NP -> CN -> Card -> Cl = \p,a,n ->
- mkCl p have_V2
----- (mkNP (E.PartCN a) ---- partitive works in questions )
- (mkNP (mkNP a_Det a)
- (SyntaxFin.mkAdv for_Prep (mkNP n (mkN "henki" "henki")))) ;
----- (SyntaxFin.mkAdv for_Prep (mkNP (mkDet n)))) ; -- 60s faster compile 25/10/2010
-
- open_Adv = ParadigmsFin.mkAdv "avoinna" ;
- closed_Adv = ParadigmsFin.mkAdv "kiinni" ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxFin.mkAdv (casePrep adessive) (mkNP n)
- } ;
-
- mkSuperl : A -> Det = \a -> SyntaxFin.mkDet the_Quant (mkOrd a) ;
-
- far_IAdv = E.IAdvAdv L.far_Adv ;
-
---------------------------------------------------
--- New 30/11/2011 AR
---------------------------------------------------
-
- lin
- Thai = mkNat (mkPN "thai") (mkPN "Thaimaa") (mkA "thaimaalainen") ;
- Baht = mkCN (mkN "baht" "bahteja") ;
-
- Rice = mkCN (mkN "riisi") ;
- Pork = mkCN (mkN "sika") ;
- Beef = mkCN (mkN "nauta") ;
- Egg = mkCN L.egg_N ;
- Noodles = mkCN (mkN "nuudeli" "nuudeleita") ;
- Shrimps = mkCN (mkN "katka" (mkN "rapu")) ;
- Chili = mkCN (mkN "chili") ;
- Garlic = mkCN (mkN "valko" (mkN "sipuli")) ;
- Durian = mkCN (mkN "durian" "durianeja") ;
- Mango = mkCN (mkN "mango" "mangoja") ;
- Pineapple = mkCN (mkN "ananas" "ananaksia") ;
- Coke = mkCN (mkN "coca-cola") ;
- IceCream = mkCN (mkN "jtel" "jtelit") ;
- Salad = mkCN (mkN "salaatti") ;
- OrangeJuice = mkCN (mkN "appelsiini" (mkN "mehu")) ;
- Lemonade = mkCN (mkN "limsa") ;
-
- Beach = mkPlace (mkN "uima" (mkN "ranta")) lla ;
-
- ItsRaining = mkCl (mkVP L.rain_V0) ;
- ItsCold = mkCl (mkVP L.cold_A) ;
- ItsWarm = mkCl (mkVP L.warm_A) ;
- ItsWindy = mkCl (mkVP (mkV "tuulla")) ;
- SunShine = mkCl (mkNP the_Det L.sun_N) (mkVP (mkV "paistaa")) ;
-
- Smoke = mkVP (mkV "tupakoida") ;
-
- ADoctor = mkProfession (mkN "lkri" "lkreit") ;
- AProfessor = mkProfession (mkN "professori" "professoreita") ;
- ALawyer = mkProfession (mkN "laki" L.man_N) ;
- AEngineer = mkProfession (mkN "insinri" "insinrej") ;
- ATeacher = mkProfession (mkN "opettaja" "opettajia") ;
- ACook = mkProfession (mkN "kokki") ;
- AStudent = mkProfession (mkN "opiskelija" "opiskelijoita") ;
- ABusinessman = mkProfession (mkN "liike" L.man_N) ;
-
- oper
- mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
-
-}
diff --git a/examples/phrasebook/WordsFre.gf b/examples/phrasebook/WordsFre.gf
deleted file mode 100644
index 46d02defa..000000000
--- a/examples/phrasebook/WordsFre.gf
+++ /dev/null
@@ -1,277 +0,0 @@
--- (c) 2009 Ramona Enache and Aarne Ranta under LGPL
---# -coding=latin1
-
-concrete WordsFre of Words = SentencesFre ** open
- SyntaxFre,
- IrregFre,
- (E = ExtraFre),
- (L = LexiconFre),
- ParadigmsFre,
- (M = MorphoFre),
- (P = ParadigmsFre),
- Prelude in {
-
-
-lin
-
--- kinds
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "fromage" masculine) ;
- Chicken = mkCN (mkN "poulet") ;
- Coffee = mkCN (mkN "caf") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "viande") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "pizza" feminine) ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "th") ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- properties
-
- Bad = L.bad_A ;
- Boring = mkA "ennuyeux" ;
- Cheap = let bm = "bon march" in mkA bm bm bm bm ;
- Cold = L.cold_A ;
- Delicious = mkA "dlicieux" ;
- Expensive = mkA "cher" ;
- Fresh = mkA "frais" "frache" "frais" "frachement" ;
- Good = L.good_A ;
- Suspect = mkA "suspect" ;
- Warm = L.warm_A ;
-
--- places
-
- Airport = mkPlace (mkN "aroport") dative ;
- AmusementPark = mkPlace (compN (mkN "parc") ["d'attractions"]) dative ;
- Bank = mkPlace (mkN "banque") dative ;
- Bar = mkPlace (mkN "bar") dative ;
- Cafeteria = mkPlace (mkN "caftria") dative ;
- Center = mkPlace (mkN "centre" "centres" ParadigmsFre.masculine) dative ;
- Church = mkPlace (mkN "glise") dative ;
- Cinema = mkPlace (mkN "cinma" masculine) dative ;
- Disco = mkPlace (mkN "discothque" feminine) dative ;
- Hospital = mkPlace (mkN "hpital") dative ;
- Hotel = mkPlace (mkN "htel") dative ;
- Museum = mkPlace (mkN "muse" masculine) dative ;
- Park = mkPlace (mkN "parc") dative ;
- Parking = mkPlace (mkN "parking" masculine) dative ;
- Pharmacy = mkPlace (mkN "pharmacie" feminine) dative ;
- PostOffice = mkPlace (mkN "poste" feminine) dative ;
- Pub = mkPlace (mkN "pub" masculine) dative ;
- Restaurant = mkPlace (mkN "restaurant") dative ;
- School = mkPlace (mkN "cole") dative ;
- Shop = mkPlace (mkN "magasin") dative ;
- Station = mkPlace (mkN "gare") dative ;
- Supermarket = mkPlace (mkN "supermarch" masculine) dative ;
- Theatre = mkPlace (mkN "thtre" masculine) dative ;
- Toilet = mkCNPlacePl (mkCN (mkN "toilette")) dative dative;
- University = mkPlace (mkN "universit" feminine) dative ;
- Zoo = mkPlace (mkN "zoo" masculine) dative ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant")) dative to_Prep ;
-
--- currencies
-
- DanishCrown = mkCN (mkA "danois") (mkN "couronne") | mkCN (mkN "couronne") ;
- Dollar = mkCN (mkN "dollar") ;
- Euro = mkCN (mkN "euro") ;
- Lei = mkCN (mkN "leu" "lei" masculine) ;
- Leva = mkCN (mkN "lev" "leva" masculine);
- NorwegianCrown = mkCN (mkA "norvgien") (mkN "couronne") | mkCN (mkN "couronne") ;
- Pound = mkCN (compN (mkN "livre") ["sterling"]);
- Rouble = mkCN (mkN "rouble" "rouble" masculine) ;
- SwedishCrown = mkCN (mkA "sudois") (mkN "couronne") | mkCN (mkN "couronne") ;
- Zloty = mkCN (mkN "zloty" "zlotych" masculine) ;
-
--- nationalities
-
- Belgian = mkA "belge" ;
- Belgium = mkNP (mkPN "Belgique") ;
- Bulgarian = mkNat "bulgare" "Bulgarie" ;
- Catalan = mkNat "catalan" "Catalogne" ;
- Danish = mkNat "danois" "Danemark" ;
- Dutch = mkNat "hollandais" "Holland" ;
- English = mkNat "anglais" "Angleterre" ;
- Finnish = mkNat "finlandais" "Finlande" ;
- Flemish = mkNP (mkPN "flamand") ;
- French = mkNat "franais" "France" ;
- German = mkNat "allemand" "Allemagne" ;
- Italian = mkNat "italien" "Italie" ;
- Norwegian = mkNat "norvgien" "Norvge" ;
- Polish = mkNat "polonais" "Pologne" ;
- Romanian = mkNat "roumain" "Roumanie" ;
- Russian = mkNat "russe" "Russie" ;
- Spanish = mkNat "espagnol" "Espagne" ;
- Swedish = mkNat "sudois" "Sude" ;
-
--- means of transportation
-
- Bike = mkTransport en_Prep L.bike_N ;
- Bus = mkTransport par_Prep (mkN "bus") ;
- Car = mkTransport en_Prep L.car_N ;
- Ferry = mkTransport en_Prep (mkN "ferry") ;
- Plane = mkTransport par_Prep L.airplane_N ;
- Subway = mkTransport par_Prep (mkN "mtro") ;
- Taxi = mkTransport en_Prep (mkN "taxi") ;
- Train = mkTransport par_Prep (mkN "train") ;
- Tram = mkTransport par_Prep (mkN "tram") ;
-
- ByFoot = P.mkAdv " pied" ;
-
-
--- actions
-
- AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "chambre"))
- (SyntaxFre.mkAdv for_Prep (mkNP num (mkN "personne")))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "table"))
- (SyntaxFre.mkAdv for_Prep (mkNP num (mkN "personne")))) ;
- AMarried p = mkCl p.name (mkA "mari") ;
- AWant p obj = mkCl p.name vouloir_V2 obj ;
- ALike p item = mkCl item plaire_V2 p.name ;
- ASpeak p lang = mkCl p.name (mkV2 (mkV "parler")) lang ;
- ALove p q = mkCl p.name (mkV2 (mkV "aimer")) q.name ;
- AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "faim" feminine))) ;
- AReady p = mkCl p.name (mkA "prt") ;
- 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 L.go_V) place.to) ;
- AHasName p name = mkCl p.name (mkV2 (reflV (mkV "appeler"))) name ;
- ALive p co = mkCl p.name (mkVP (mkVP (mkV "habiter")) (SyntaxFre.mkAdv (mkPrep "en") co)) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (reflV (mkV "appeler")))) ;
- QWhatAge p = mkQS (mkQCl (mkIP whichSg_IDet (mkN "ge" masculine)) p.name have_V2) ;
-
- PropOpen p = mkCl p.name open_A ;
- PropClosed p = mkCl p.name closed_A ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ;
- PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ;
- PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ;
- PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ;
-
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "coter"))) ;
- ItCost item price = mkCl item (mkV2 (mkV "coter")) price ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
-
- PSeeYouPlace d = mkText (lin Text (ss ("on se voit"))) (mkPhrase (mkUtt d.at)) ;
- PSeeYouDate d = mkText (lin Text (ss ("on se voit"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("on se voit")))
- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
-
--- Relations are expressed as "my wife" or "the wife of my son", as defined by $xOf$
--- below. Languages with productive genitives can use an equivalent of
--- "my son's wife" for non-pronouns, as e.g. in English.
-
-
- Wife = xOf sing (mkN "femme") ;
- Husband = xOf sing (mkN "mari") ;
- Son = xOf sing (mkN "fils") ;
- Daughter = xOf sing (mkN "fille") ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay "lundi" ;
- Tuesday = mkDay "mardi" ;
- Wednesday = mkDay "mercredi" ;
- Thursday = mkDay "jeudi" ;
- Friday = mkDay "vendredi" ;
- Saturday = mkDay "samedi" ;
- Sunday = mkDay "dimanche" ;
-
- Tomorrow = ParadigmsFre.mkAdv "demain" ;
-
--- modifiers of places
- TheBest = mkSuperl True L.good_A ;
- TheClosest = mkSuperl True L.near_A ;
- TheCheapest = mkSuperl False
- (compADeg {s = \\_ => (M.mkAdj "bon march" "bon march" "bon march" "bon march").s ;
- isPre = False ; lock_A = <>}) ;
- TheMostExpensive = mkSuperl True (mkA "cher") ;
- TheMostPopular = mkSuperl True (mkA "populaire") ;
- TheWorst = mkSuperl True L.bad_A ;
-
- SuperlPlace sup kind =
- let
- det : Det = mkDet the_Art sup.s ;
- name : NP = case sup.isPre of {
- True => mkNP det kind.name ; -- le meilleur bar
- False => mkNP the_Art (mkCN kind.name (mkNP det)) -- le bar le plus cher
- }
- in {
- name = name ;
- at = SyntaxFre.mkAdv kind.at name ;
- to = SyntaxFre.mkAdv kind.to name
- } ;
-
--- transports
-
- HowFar place = mkQS (mkQCl what_distance_IAdv place.name) ;
- HowFarFrom x y =
- mkQS (mkQCl (E.CompIQuant which_IQuant)
- (mkNP (mkNP distance_NP (SyntaxFre.mkAdv from_Prep x.name)) y.to)) ;
- HowFarFromBy x y t =
- mkQS (mkQCl (E.CompIQuant which_IQuant)
- (mkNP (mkNP (mkNP distance_NP (SyntaxFre.mkAdv from_Prep x.name)) y.to) t)) ;
- HowFarBy place t =
- mkQS (mkQCl what_distance_IAdv (mkNP place.name t)) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- lin QS {s = \\_ => (E.EstcequeS (mkS (mkCl (mkCN trans.name (SyntaxFre.mkAdv for_Prep place.name))))).s} ;
- -- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
- oper
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day = mkNP (mkPN d) in
- mkNPDay day (P.mkAdv d) (P.mkAdv ("le" ++ d)) ;
-
- mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN p) i dative ;
-
- open_A = P.mkA "ouvert" ;
- closed_A = P.mkA "ferm" ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ;
-
- mkTransport : Prep -> N -> {name : CN ; by : Adv} = \p,n -> {
- name = mkCN n ;
- by = E.PrepCN p n -- par train, en vlo
- } ;
-
- en_Prep = mkPrep "en" ;
- par_Prep = mkPrep "par" ;
-
- mkSuperl : Bool -> A -> {s : Ord ; isPre : Bool} = \b,a ->
- {s = SyntaxFre.mkOrd a ; isPre = b} ;
-
-
- what_distance_IAdv = ss " quelle distance"**{lock_IAdv=<>};
-
- distance_NP : NP = mkNP the_Det (mkN "distance" feminine) ;
-
-
-}
diff --git a/examples/phrasebook/WordsGer.gf b/examples/phrasebook/WordsGer.gf
deleted file mode 100644
index 4984eb080..000000000
--- a/examples/phrasebook/WordsGer.gf
+++ /dev/null
@@ -1,262 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
---# -coding=latin1
-
-concrete WordsGer of Words = SentencesGer **
- open SyntaxGer, ParadigmsGer, IrregGer, (L = LexiconGer), ExtraGer, Prelude in {
-
- lin
-
--- kinds of food
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "Kse" "Kse" "Kse" "Kse" "Kse" "Kse" masculine) ;
- Chicken = mkCN (mkN "Huhn" "Huhn" "Huhn" "Huhn" "Hhner" "Hhner" neuter) ;
- Coffee = mkCN (mkN "Kaffee" "Kaffee" "Kaffee" "Kaffee" "Kaffees" "Kaffee" masculine) ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "Fleisch" "Fleisch" "Fleisch" "Fleisch" "Fleisch" "Fleisch" neuter) ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "Pizza" "Pizzen" feminine) ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "Tee" "Tee" "Tee" "Tee" "Tees" "Tees" masculine) ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- properties
-
- Bad = L.bad_A ;
- Cheap = mkA "billig" ;
- Boring = mkA "langweilig" ;
- Cold = L.cold_A ;
- Delicious = mkA "lecker" ;
- Expensive = mkA "teuer" ;
- Fresh = mkA "frisch" ;
- Good = L.good_A ;
- Warm = L.warm_A ;
- Suspect = mkA "verdchtig" ;
-
--- places
-
- Airport = mkPlace (mkN "Flughafen" "Flughfen" masculine) on_Prep zu_Prep ;
- Church = mkPlace (mkN "Kirche") in_Prep inAcc_Prep ;
- Hospital = mkPlace (mkN "Krankenhaus" "Krankenhuser" neuter) in_Prep inAcc_Prep ;
- Restaurant = mkPlace (mkN "Restaurant" "Restaurants" neuter) in_Prep inAcc_Prep ;
- Station = mkPlace (mkN "Bahnhof" "Bahnhfe" masculine) on_Prep zu_Prep ;
- University = mkPlace (mkN "Universitt" "Universitten" feminine) in_Prep zu_Prep ;
-
- AmusementPark = mkPlace (mkN "Vergngungspark" "Vergngungspark" "Vergngungspark" "Vergngungspark" "Vergngungsparks" "Vergngungsparks" masculine) in_Prep inAcc_Prep ;
- Bank = mkPlace (mkN "Bank" "Bank" "Bank" "Bank" "Banken" "Banken" feminine) in_Prep zu_Prep ;
- Bar = mkPlace (mkN "Bar" "Bar" "Bar" "Bar" "Bars" "Bars" feminine) in_Prep inAcc_Prep ;
- Cafeteria = mkPlace (mkN "Cafeteria" "Cafeteria" "Cafeteria" "Cafeteria" "Cafeterien" "Cafeterien" feminine) in_Prep inAcc_Prep ;
- Center = mkPlace (mkN "Zentrum" "Zentrum" "Zentrum" "Zentrum" "Zentren" "Zentren" neuter) in_Prep zu_Prep ;
- Cinema = mkPlace (mkN "Kino" "Kino" "Kino" "Kino" "Kinos" "Kinos" neuter) in_Prep inAcc_Prep ;
- Disco = mkPlace (mkN "Disco" "Disco" "Disco" "Disco" "Discos" "Discos" feminine) in_Prep inAcc_Prep ;
- Hotel = mkPlace (mkN "Hotel" "Hotel" "Hotel" "Hotel" "Hotels" "Hotels" neuter) in_Prep inAcc_Prep ;
- Museum = mkPlace (mkN "Museum" "Museum" "Museum" "Museum" "Museen" "Museen" neuter) in_Prep inAcc_Prep ;
- Park = mkPlace (mkN "Park" "Park" "Park" "Park" "Parks" "Parks" masculine) in_Prep inAcc_Prep ;
- Parking = mkPlace (mkN "Parkplatz" "Parkplatz" "Parkplatz" "Parkplatz" "Parkplatzen" "Parkplatzen" masculine) on_Prep zu_Prep ;
- Pharmacy = mkPlace (mkN "Apotheke" "Apotheke" "Apotheke" "Apotheke" "Apotheken" "Apotheken" feminine) in_Prep zu_Prep ;
- PostOffice = mkPlace (mkN "Post" "Post" "Post" "Post" "Posten" "Posten" feminine) in_Prep inAcc_Prep ;
- Pub = mkPlace (mkN "Kneipe" "Kneipe" "Kneipe" "Kneipe" "Kneipen" "Kneipen" feminine) in_Prep inAcc_Prep;
- School = mkPlace (mkN "Schule" "Schule" "Schule" "Schule" "Schulen" "Schule" feminine) in_Prep inAcc_Prep ;
- Shop = mkPlace (mkN "Geschft" "Geschft" "Geschft" "Geschft" "Geschfte" "Geschfte" neuter) in_Prep inAcc_Prep ;
- Supermarket = mkPlace (mkN "Supermarkt" "Supermarkt" "Supermarkt" "Supermarkt" "Supermrkten" "Supermrkte" masculine) in_Prep inAcc_Prep ;
- Theatre = mkPlace (mkN "Theater" "Theater" "Theater" "Theaters" "Theatern" "Thaters" neuter) in_Prep inAcc_Prep ;
- Toilet = mkPlace (mkN "Toilette" "Toilette" "Toilette" "Toilette" "Toiletten" "Toiletten" feminine) in_Prep (mkPrep "auf" accusative) ;
- Zoo = mkPlace (mkN "Zoo" "Zoo" "Zoo" "Zoo" "Zoos" "Zoos" masculine) in_Prep inAcc_Prep ;
-
-
-CitRestaurant cit = mkCNPlace (mkCN cit (mkN "Restaurant" "Restaurants" neuter)) in_Prep inAcc_Prep ;
-
-
--- currencies
-
- DanishCrown = mkCN (mkA "Dnisch") (mkN "Krone" "Kronen" feminine) | mkCN (mkN "Krone" "Kronen" feminine) ;
- Dollar = mkCN (mkN "Dollar" "Dollar" "Dollar" "Dollar" "Dollar" "Dollar" masculine) ;
- Euro = mkCN (mkN "Euro" "Euro" "Euro" "Euro" "Euro" "Euro" neuter) ;
- Lei = mkCN (mkN "Leu" "Leu" "Leu" "Leu" "Lei" "Lei" masculine) ;
- SwedishCrown = mkCN (mkA "Schwedisch") (mkN "Krone" "Kronen" feminine) | mkCN (mkN "Krone" "Kronen" feminine) ;
- Leva = mkCN (mkN "Lewa" "Lewa" "Lewa" "Lewa" "Lewa" "Lewa" feminine);
- NorwegianCrown = mkCN (mkA "Norwegisch") (mkN "Krone" "Kronen" feminine) | mkCN (mkN "Krone" "Kronen" feminine) ;
- Pound = mkCN (mkN "Pfund" "Pfund" "Pfund" "Pfund" "Pfund" "Pfund" neuter) ;
- Rouble = mkCN (mkN "Rubel" "Rubel" "Rubel" "Rubel" "Rubels" "Rubels" masculine);
- Zloty = mkCN (mkN "Zloty" "Zloty" "Zloty" "Zloty" "Zloty" "Zloty" masculine);
-
-
-
--- nationalities
-
- Belgian = mkA "belgisch" ;
- Belgium = mkNP (mkPN "Belgien") ;
- Bulgarian = mkNat "Bulgarien" "Bulgarisch" "bulgarisch" ;
- Catalan = mkNat "Katalonien" "Katalanisch" "katalanisch" ;
- Danish = mkNat "Dnemark" "Dnisch" "dnisch" ;
- Dutch = mkNat "den Niederlanden" "Niederlndisch" "niederlndisch" ;
- English = mkNat "England" "Englisch" "englisch" ;
- Finnish = mkNat "Finnland" "Finnisch" "finnisch" ;
- Flemish = mkCN (mkN "Flmisch" "Flmisch" neuter) ;
- French = mkNat "Frankreich" "Franzsisch" "franzsisch" ;
- German = mkNat "Deutschland" "Deutsch" "deutsche" ;
- Italian = mkNat "Italien" "Italienisch" "italienisch" ;
- Norwegian = mkNat "Norwegen" "Norwegisch" "norwegisch" ;
- Polish = mkNat "Polen" "Polnisch" "polnisch" ;
- Romanian = mkNat "Rumnien" "Rumnisch" "rumnisch" ;
- Russian = mkNat "Russland" "Russisch" "russisch" ;
- Spanish = mkNat "Spanien" "Spanisch" "spanisch" ;
- Swedish = mkNat "Schweden" "Schwedisch" "schwedisch" ;
-
-
-
--- actions
-
- AHasAge p num = prop (mkCl p.name (mkNP num L.year_N)) ;
- AHasName p name = prop (mkCl p.name (mkV2 heien_V) name) ;
- AHungry p = prop (mkCl p.name (mkA "hungrig")) ;
- AHasChildren p num = prop (mkCl p.name have_V2 (mkNP num L.child_N)) ;
- AHasRoom p num = prop (mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "Zimmer" "Zimmer" neuter))
- (SyntaxGer.mkAdv for_Prep (mkNP num (mkN "Persone"))))) ;
- AHasTable p num = prop (mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "Tisch"))
- (SyntaxGer.mkAdv for_Prep (mkNP num (mkN "Persone"))))) ;
- AIll p = prop (mkCl p.name (mkA "krank")) ;
- AKnow p = prop (mkCl p.name wissen_V) ;
- ALike p item = prop (mkCl p.name (mkV2 mgen_V) item) ;
- ALive p co = prop (mkCl p.name (mkVP (mkVP (mkV "wohnen")) (SyntaxGer.mkAdv in_Prep co))) ;
- ALove p q = prop (mkCl p.name (mkV2 (mkV "lieben")) q.name) ;
- AMarried p = prop (mkCl p.name (mkA "verheiratet")) ;
- AReady p = prop (mkCl p.name (mkA "bereit")) ;
- AScared p = prop (mkCl p.name have_V2 (mkNP (mkN "Angst" "Angsten" feminine))) ;
- ASpeak p lang = mkProp (mkCl p.name (mkV2 sprechen_V) (mkNP lang))
- (mkS (mkCl p.name (mkV2 sprechen_V) (mkNP no_Quant lang))) ;
- AThirsty p = prop (mkCl p.name (mkA "durstig")) ;
- ATired p = prop (mkCl p.name (mkA "mde")) ;
- AUnderstand p = prop (mkCl p.name (fixprefixV "ver" stehen_V)) ;
- AWant p obj = prop (mkCl p.name want_VV (mkVP have_V2 obj)) ;
- AWantGo p place = prop (mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to)) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name heien_V)) ;
- QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
-
- PropOpen p = prop (mkCl p.name open_Adv) ;
- PropClosed p = prop (mkCl p.name closed_Adv) ;
- PropOpenDate p d = prop (mkCl p.name (mkVP (mkVP d) open_Adv)) ;
- PropClosedDate p d = prop (mkCl p.name (mkVP (mkVP d) closed_Adv)) ;
- PropOpenDay p d = prop (mkCl p.name (mkVP (mkVP d.habitual) open_Adv)) ;
- PropClosedDay p d = prop (mkCl p.name (mkVP (mkVP d.habitual) closed_Adv)) ;
-
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "kosten"))) ;
- ItCost item price = prop (mkCl item (mkV2 (mkV "kosten")) price) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("wir sehen uns"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("wir sehen uns"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("wir sehen uns")))
- (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ;
-
-
--- 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
--- "the wife of my son" for non-pronouns.
-
- Wife = xOf sing (mkN "Frau" "Frauen" feminine) ;
- Husband = xOf sing L.man_N ;
- Son = xOf sing (mkN "Sohn" "Shne" masculine) ;
- Daughter = xOf sing (mkN "Tochter" "Tchter" feminine) ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay "Montag" ;
- Tuesday = mkDay "Dienstag" ;
- Wednesday = mkDay "Mittwoch" ;
- Thursday = mkDay "Donnerstag" ;
- Friday = mkDay "Freitag" ;
- Saturday = mkDay "Samstag" ;
- Sunday = mkDay "Sonntag" ;
-
- Tomorrow = ParadigmsGer.mkAdv "morgen" ;
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "billig") ;
- TheMostExpensive = mkSuperl (mkA "teuer") ;
- TheMostPopular = mkSuperl (mkA "beliebt") ;
- TheWorst = mkSuperl (mkA "schlimm") ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
--- means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "Bus" "Bus" "Bus" "Bus" "Buss" "Buss" masculine) ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "Fhre" "Fhre" "Fhre" "Fhre" "Fhren" "Fhren" feminine) ;
- Plane = mkTransport (mkN "Flugzeug" "Flugzeug" "Flugzeug" "Flugzeug" "Flugzeuge" "Flugzeuge" neuter) ;
- Subway = mkTransport (mkN "U-Bahn" "U-Bahn" "U-Bahn" "U-Bahn" "U-Bahnen" "U-Bahnen" feminine) ;
- Taxi = mkTransport (mkN "Taxi" "Taxi" "Taxi" "Taxi" "Taxis" "Taxis" neuter) ;
- Train = mkTransport (mkN "Zug" "Zug" "Zug" "Zug" "Zge" "Zge" masculine) ;
- Tram = mkTransport (mkN "Straenbahn" "Straenbahn" "Straenbahn" "Straenbahn" "Straenbahnen" "Straenbahnen" feminine) ;
-
- ByFoot = ParadigmsGer.mkAdv "zu Fu" ;
-
-
- HowFar place = mkQS (mkQCl far_IAdv place.name) ;
- HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxGer.mkAdv von_Prep x.name)) (ParadigmsGer.mkAdv "entfernt"))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkCl (mkVP (SyntaxGer.mkAdv zu_Prep (mkNP (mkNP y.name (SyntaxGer.mkAdv von_Prep x.name)) t))))) ;
- HowFarBy y t = mkQS (mkQCl far_IAdv (mkCl (mkVP (SyntaxGer.mkAdv zu_Prep (mkNP y.name t))))) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
-
-
- oper
-
- mkNat : Str -> Str -> Str -> {lang : CN ; prop : A ; country : NP} = \co, la, adj ->
- {lang = mkCN (mkN la la neuter) ;
- prop = mkA adj ; country = mkNP (mkPN co)} ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day = mkNP (mkPN d masculine) in
- {name = day ;
- point = SyntaxGer.mkAdv (mkPrep "am" dative) day ; ---- am
- habitual = ParadigmsGer.mkAdv (d + "s") ----
- } ;
-
- mkPlace : N -> Prep -> Prep -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,at,to -> {
- name = mkCN p ;
- at = at ;
- to = to ;
- isPl = False
- } ;
-
- open_Adv = ParadigmsGer.mkAdv "geffnet" ; ---- Adv to get right word order easily
- closed_Adv = ParadigmsGer.mkAdv "geschlossen" ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ;
-
-
- mkSuperl : A -> Det = \a -> SyntaxGer.mkDet the_Art (SyntaxGer.mkOrd a) ;
-
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxGer.mkAdv by8means_Prep (mkNP the_Det n)
- } ;
-
- far_IAdv = ss "wie weit" ** {lock_IAdv = <>} ;
-
-}
diff --git a/examples/phrasebook/WordsHin.gf b/examples/phrasebook/WordsHin.gf
deleted file mode 100644
index 6c640a104..000000000
--- a/examples/phrasebook/WordsHin.gf
+++ /dev/null
@@ -1,280 +0,0 @@
---2 Implementations of Words, with English as example
-
-concrete WordsHin of Words = SentencesHin **
- open
- SyntaxHin,
- CommonHindustani,
- ParadigmsHin,
- (L = LexiconHin),
- (P = ParadigmsHin),
--- IrregHin,
- ExtraHin,
- Prelude in {
-flags coding = utf8 ;
-
--- param Gender = Masc | Fem ;
- lin
-
--- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "पनीर" Fem) ;
- Chicken = mkCN (mkN "मुरग़ी") ;
- Coffee = mkCN (mkN "काफ़ी") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "गोश्त") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "पिज़्ज़ा") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "चाय" Fem) ;
- Water = mkCN L.water_N;
- Wine = mkCN L.wine_N ;
-
--- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
-
- Bad = L.bad_A ;
- Boring = mkA "उबाऊ" ;
- Cheap = mkA "सस्ता" ;
- Cold = L.cold_A ;
- Delicious = mkA "मज़ेदार" ;
- Expensive = mkA "महंगा" ;
- Fresh = mkA "ताज़ा" ;
- Good = L.good_A ;
- Suspect = mkA "बुरा" ;
- Warm = L.warm_A ;
-
--- Places require different prepositions to express location; in some languages
--- also the directional preposition varies, but in English we use $to$, as
--- defined by $mkPlace$.
-
- Airport = mkPlace "हवाई अड्डा" "पर" ;
- AmusementPark = mkCompoundPlace "मनोरंजन" "उद्यान" "में" ;
- Bank = mkPlace "बैंक" "में" ;
- Bar = mkPlace "बार" "में" ;
- Cafeteria = mkPlace "जलपान घर" "में" ;
- Center = mkPlace "केन्द्र" "पर" ;
- Cinema = mkPlace "सिनेमा" "में" ;
- Church = mkPlace "गिरजा" "में" ;
- Disco = mkPlace "डिस्को" "में" ;
- Hospital = mkPlace "अस्पताल" "में" ;
- Hotel = mkPlace "होटेल" "में" ;
- Museum = mkPlace "संग्रहालय" "पर" ;
- Park = mkPlace "उद्यान" "में" ;
- Parking = mkCompoundPlace "कार" "पार्क" "में" ;
- Pharmacy = mkPlace "दवासाजी" "पर" ;
- PostOffice = mkCompoundPlace "डाक" "घर" "पर" ;
- Pub = mkPlace "पब" "में" ;
- Restaurant = mkPlace "रेस्तोरां" "में" ;
- School = mkPlace "स्कूल" "में" ;
- Shop = mkPlaceFem "दुकान" "में" Fem;
- Station = mkPlace "स्टेशन" "पर" ;
- Supermarket = mkPlace "सुपर बाज़ार" "में" ;
- Theatre = mkPlace "रंगशाला" "पर" ;
- Toilet = mkPlace "शौचालय" "में" ;
- University = mkPlaceFem "विश्वविद्यालय" "में" Fem;
- Zoo = mkPlace "चिड़ियाघर" "में" ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit (mkN "रेस्तोरां")) in_Prep to_Prep ;
-
-
--- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
-
- DanishCrown = mkCN (mkA "डेनिश") (mkN "क्राउन") | mkCN (mkN "क्राउन") ;
- Dollar = mkCN (mkN "डालर") ;
- Euro = mkCN (mkN "यूरो") ; -- to prevent euroes
- Lei = mkCN (mkN "लेई") ;
- Leva = mkCN (mkN "लेवा") ;
- NorwegianCrown = mkCN (mkA "नारवीजियन") (mkN "क्राउन") | mkCN (mkN "क्राउन") ;
- Pound = mkCN (mkN "पाउंड") ;
- Rouble = mkCN (mkN "रूबल") ;
- SwedishCrown = mkCN (mkA "स्वीडिश") (mkN "क्राउन") | mkCN (mkN "क्राउन") ;
- Zloty = mkCN (mkN "ज़्लोटी" Fem) ;
-
--- Nationalities
-
- Belgian = mkA "बेल्जियन" ;
- Belgium = mkNP (mkPN "बेल्जियम") ;
- Bulgarian = mkNat "बुलगेरियाई" "बुलगेरिया" ;
- Catalan = mkNPNationality (mkNP (mkPN "केटलान")) (mkNP (mkPN "केटलान")) (mkA "केटलान") ;
- Danish = mkNat "डेनिश" "डेनमार्क" ;
- Dutch = mkNPNationality (mkNP (mkPN "डच")) (mkNP the_Quant (mkN "नीदरलैंड्स")) (mkA "डच") ;
- English = mkNat "अंग्रेज़" "इंगलैंड" ;
- Finnish = mkNat "फ़िनिश" "फ़िनलैंड" ;
- Flemish = mkNP (mkPN "फ़्लेमिश") ;
- French = mkNat "फ़्रान्सीसी" "फ़्रान्स" ;
- German = mkNat "जर्मन" "जर्मनी" ;
- Italian = mkNat "इतालवी" "इटली" ;
- Norwegian = mkNat "नार्वीजियन" "नार्वे" ;
- Polish = mkNat "पोलिश" "पोलैंड" ;
- Romanian = mkNat "रोमानियन" "रोमानिया" ;
- Russian = mkNat "रूसी" "रूस" ;
- Spanish = mkNat "स्पेनी" "स्पेन" ;
- Swedish = mkNat "स्वीडिश" "स्वीडन" ;
-
--- Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "बस" Fem) ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "फ़ेरी") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "सबवे") ;
- Taxi = mkTransport (mkN "टैक्सी") ;
- Train = mkTransport (mkN "रेल गाड़ी") ;
- Tram = mkTransport (mkN "ट्राम" Fem) ;
-
- ByFoot = P.mkAdv "पैदल चलकर" ;
-
--- Actions: the predication patterns are very often language-dependent.
-
--- AHasAge p num = mkCl p.name (mkNP (mkNP num L.year_N) (ParadigmsHin.mkAdv "का"));
- AHasAge p num = mkCl p.name (mkNP num (mkCN (modN L.year_N)));
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "कमरा")) (SyntaxHin.mkAdv for_Prep (mkNP num (P.mkN "व्यक्ति" "व्यक्ति" "व्यक्ति" "लोग" "लोगों" "लोगो" masculine)))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "मेज़")) (SyntaxHin.mkAdv for_Prep (mkNP num (P.mkN "व्यक्ति" "व्यक्ति" "व्यक्ति" "लोग" "लोगों" "लोगो" masculine)))) ;
- AHasName p name = mkCl (nameOf p) name ;
- AHungry p = mkCl p.name (mkA "भूखा") ;
- AIll p = mkCl p.name (mkA "बीमार") ;
- AKnow p = mkCl p.name (mkV "जानना") ;
- ALike p item = mkCl p.name (L.like_V2) item ;
- ALive p co = mkCl p.name (mkVP (mkVP (L.live_V)) (SyntaxHin.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (L.love_V2) q.name ;
- AMarried p = mkCl p.name (P.mkIrregA "शादी शुदा") ;
- AReady p = mkCl p.name (mkA "तैयार") ;
--- AScared p = mkCl p.name (P.mkCompoundA "डरा" "हुआ") ;
- ASpeak p lang = mkCl p.name L.speak_V2 lang ;
- AThirsty p = mkCl p.name (mkA "प्यासा") ;
--- ATired p = mkCl p.name (P.mkCompoundA "थका" "हुआ") ;
- AUnderstand p = mkCl p.name (mkV "समझना") ;
- AWant p obj = mkCl p.name (mkV2 (mkV "चाहना")) obj ;
--- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.name) ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
--- miscellaneous
-
--- QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
- QWhatName p = mkQS (mkQCl what_IAdv (mkNP p.poss (P.mkN "नाम" "नाम" "नाम" "नाम" "नाम" "नाम" masculine))) ;
--- QWhatAge p = mkQS (mkQCl (mkCl (mkNP (modQuant p.poss)) (mkAdv "उम्र"))) ;
- QWhatAge p = mkQS (mkQCl howMuch_IAdv (mkNP (modQuant p.poss) (P.mkN "उम्र" "उम्र" "उम्र" "उम्र" "उम्र" "उम्र" feminine))) ;
- HowMuchCost item = mkQS (mkQCl (mkCl (modNP item) (mkAdv ["की क़ीमत"]))) ;
- ItCost item price = mkCl item (mkV2 (mkV "क़ीमत")) price ;
-
- PropOpen p = mkCl p.name open_Adv ;
- PropClosed p = mkCl p.name closed_Adv ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP d) open_Adv) ;
- PropClosedDate p d = mkCl p.name (mkVP (mkVP d) closed_Adv) ;
- PropOpenDay p d = mkCl p.name (mkVP (mkVP d.habitual) open_Adv);
- PropClosedDay p d = mkCl p.name (mkVP (mkVP d.habitual) closed_Adv) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (mkPhrase (mkUtt d)) (lin Text (Prelude.ss ("मिलते हैं"))) ;
- PSeeYouPlace p = mkText (mkPhrase (mkUtt p.at)) (lin Text (Prelude.ss ("मिलते हैं"))) ;
- PSeeYouPlaceDate p d =
- mkText (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d)))
- (lin Text (Prelude.ss ("मिलते हैं"))) ;
-
--- Relations are expressed as "मय wिफ़e" or "मय सon'स wिफ़e", as defined by $xOf$
--- below. Languages without productive genitives must use an equivalent of
--- "तहe wिफ़e oफ़ मय सoन" for non-pronouns.
-
- Wife = xOf ssing (mkN "पत्नी") ;
- Husband = xOf ssing (mkN "पति") ;
- Son = xOf ssing (mkN "बेटा") ;
- Daughter = xOf ssing (mkN "बेटी") ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay "सोमवार" ;
- Tuesday = mkDay "मंगलवार" ;
- Wednesday = mkDay "बुधवार" ;
- Thursday = mkDay "गुरुवार" ;
- Friday = mkDay "शुक्रवार" ;
- Saturday = mkDay "शनिवार" ;
- Sunday = mkDay "रविवार" ;
-
- Tomorrow = P.mkAdv "कल" ;
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "सस्ता") ;
- TheMostExpensive = mkSuperl (mkA "महंगा") ;
- TheMostPopular = mkSuperl (mkA "मशहूर") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
--- transports
-
-
- HowFar place = mkQS (mkQCl far_IAdv place.name) ;
- HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP y.name (SyntaxHin.mkAdv from_Prep x.name))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxHin.mkAdv from_Prep x.name)) t)) ;
- HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP y.name t)) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (SyntaxHin.mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
-
--- auxiliaries
-
- oper
-
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
--- let day = mkNP (mkPN d) in
- mkNPDay (mkNP (mkCN (mkN d))) (SyntaxHin.mkAdv to_Prep (mkNP (mkCN (mkN d))))
- (SyntaxHin.mkAdv to_Prep (mkNP (mkCN (mkN d)))) ; --changed from plNum to sgNum
-
- mkCompoundPlace : Str -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \comp, p, i ->
--- mkCNPlace (mkCN (P.mkN comp (mkN p))) (P.mkPrep i) to_Prep ;
- mkCNPlace (mkCN (mkN (comp++p))) (P.mkPrep i i) to_Prep ;
-
- mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN (mkN p)) (P.mkPrep i i) to_Prep ;
- mkPlaceFem : Str -> Str -> Gender -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i,g ->
- mkCNPlace (mkCN (P.mkN p g)) (P.mkPrep i i) to_Prep ;
-
- open_Adv = P.mkAdv "खुला";
- closed_Adv = P.mkAdv "बंद" ;
-
- xOf : SentencesHin.GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
-
- nameOf : NPPerson -> NP = \p -> (xOf ssing (mkN "नाम") p).name ;
- ssing = False ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxHin.mkAdv by8means_Prep (mkNP n)
- } ;
-
--- mkSuperl : A -> Det = \a -> SyntaxHin.mkDet the_Art (SyntaxHin.mkOrd a) ;
- mkSuperl : A -> Det = \a -> lin Det { s = \\n,g,c => a.s ! n ! g ! c ! Superl ; n = Sg } ;
-
- far_IAdv = ExtraHin.IAdvAdv (P.mkAdv "दूर") ;
- what_IAdv = lin IAdv {s = "क्या"} ;
- howMuch_IAdv = lin IAdv {s = "कितनी"} ;
--- cost_Predet = lin Predet {s = ["की क़ीमत"]} ;
--------------------
-modN : N -> N = \noun -> lin N {s = \\n,c =>noun.s!n!c++"का" ; g =noun.g} ;
-modQuant : Quant -> Quant = \q -> lin Quant {s = \\n,g,c => q.s ! n ! Fem ! c ; a = q.a};
-modNP : NP -> NP = \np -> lin NP {s = \\_ => np.s ! NPC Obl ; a = np.a};
-
-}
diff --git a/examples/phrasebook/WordsIta.gf b/examples/phrasebook/WordsIta.gf
deleted file mode 100644
index cd8b6d5f8..000000000
--- a/examples/phrasebook/WordsIta.gf
+++ /dev/null
@@ -1,269 +0,0 @@
--- (c) 2010 Aarne Ranta and Olga Caprotti under LGPL
---# -coding=latin1
-
-concrete WordsIta of Words = SentencesIta ** open
- SyntaxIta,
- BeschIta,
- (E = ExtraIta),
- (L = LexiconIta),
- (P = ParadigmsIta),
- ParadigmsIta,
- Prelude in {
-
-lin
-
--- kinds
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "formaggio") ;
- Chicken = mkCN (mkN "pollo") ;
- Coffee = mkCN (mkN "caff") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "carne" feminine) ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "pizza") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "t") ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- properties
-
- Bad = L.bad_A ;
- Boring = mkA "noioso" ;
- Cheap = mkA "conveniente";
- Cold = L.cold_A ;
- Delicious = mkA "delizioso" ;
- Expensive = mkA "costoso" ;
- Fresh = mkA "fresco" ;
- Good = L.good_A ;
- Warm = L.warm_A ;
- Suspect = mkA "sospetto" ;
-
--- places
-
- Airport = mkPlace (mkN "aeroporto") dative ;
- AmusementPark = mkPlace (mkN "parco divertimenti") dative ;
- Bank = mkPlace (mkN "banca") P.in_Prep ;
- Bar = mkPlace (mkN "bar") dative ;
- Cafeteria = mkPlace (mkN "mensa") P.in_Prep;
- Center = mkPlace (mkN "centro") P.in_Prep;
- Church = mkPlace (mkN "chiesa") P.in_Prep ;
- Cinema = mkPlace (mkN "cinema" masculine) dative ;
- Disco = mkPlace (mkN "discoteca") P.in_Prep;
- Hospital = mkPlace (mkN "ospedale") P.in_Prep ;
- Hotel = mkPlace (mkN "albergo") P.in_Prep ;
- Museum = mkPlace (mkN "museo") dative ;
- Park = mkPlace (mkN "parco") dative ;
- Parking = mkPlace (mkN "parcheggio") dative ;
- Pharmacy = mkPlace (mkN "farmacia") P.in_Prep ;
- PostOffice = mkPlace (mkN "ufficio postale") dative ;
- Pub = mkPlace (mkN "birreria") P.in_Prep ;
- Restaurant = mkPlace (mkN "ristorante") dative ;
- School = mkPlace (mkN "scuola") dative ;
- Shop = mkPlace (mkN "negozio") P.in_Prep ;
- Station = mkPlace (mkN "stazione" feminine) dative ;
- Supermarket = mkPlace (mkN "supermercato") dative ;
- Theatre = mkPlace (mkN "teatro") dative ;
- Toilet = mkPlace (mkN "bagno") P.in_Prep ;
- University = mkPlace (mkN "universit") dative ;
- Zoo = mkPlace (mkN "zoo") dative ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit (mkN "ristorante")) P.in_Prep dative ;
-
-
-
--- transports
-
- HowFar place = mkQS (mkQCl how8much_IAdv (mkCl place.name (mkV "distare")));
-
--- -- how far is place from x
- HowFarFrom x place = mkQS (mkQCl how8much_IAdv (mkCl place.name (mkVP (mkV2 (mkV "distare") from_Prep) x.name ))) ;
-
--- -- how far is place by t
- HowFarBy place t = mkQS (mkQCl how8much_IAdv (mkCl place.name (mkVP (mkVP (mkV "distare")) t)) );
-
--- -- how far is place from x by t
- HowFarFromBy x place t = mkQS (mkQCl how8much_IAdv (mkCl place.name (mkVP (mkVP (mkV2 (mkV "distare") from_Prep)x.name) t) ));
-
--- HowFarFromBy x y t = mkQS (mkQCl (mkIAdv (mkIAdv L.far_Adv (SyntaxIta.mkAdv from_Prep x.name)) t) y.name) ;
-
--- currencies
-
- DanishCrown = mkCN (mkA "danese") (mkN "corona") | mkCN (mkN "corona") ;
- Dollar = mkCN (mkN "dollar") ;
- Euro = mkCN (mkN "Euro" "Euro" masculine) ;
- Lei = mkCN (mkN "leu") ;
- Leva = mkCN (mkN "lev" "lev" masculine) ;
- NorwegianCrown = mkCN (mkA "norvegese") (mkN "corona") | mkCN (mkN "corona") ;
- Pound = mkCN (mkN "sterlina") ;
- Rouble = mkCN (mkN "rublo") ;
- SwedishCrown = mkCN (mkA "svedese") (mkN "corona") | mkCN (mkN "corona") ;
- Zloty = mkCN (mkN "zloty" "zlotych" masculine) ;
-
--- nationalities
-
- Belgian = mkA "belga" ;
- Belgium = mkNP (mkPN "Belgio") ;
- Bulgarian = mkNat "bulgaro" "Bulgaria" ;
- Catalan = mkNat "catalano" "Catalonia" ;
- Danish = mkNat "danese" "Danimarca" ;
- Dutch = mkNat "olandese" "Olanda" ;
- English = mkNat "inglese" "Inghilterra" ;
- Finnish = mkNat "finlandese" "Finlandia" ;
- Flemish = mkNP (mkPN "fiammingo") ;
- French = mkNat "francese" "Francia" ;
- German = mkNat "tedesco" "Germania" ;
- Italian = mkNat "italiano" "Italia" ;
- Norwegian = mkNat "norvegese" "Norvegia" ;
- Polish = mkNat "polacco" "Polonia" ;
- Romanian = mkNat "rumeno" "Romania" ;
- Russian = mkNat "russo" "Russia" ;
- Spanish = mkNat "spagnolo" "Spagna" ;
- Swedish = mkNat "svedese" "Svezia" ;
-
--- means of transportation
-
- Bike = mkTransport (mkN "bicicletta") ;
- Bus = mkTransport (mkN "autobus" "autobus" masculine) ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "traghetto") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "metro" feminine) ;
- Taxi = mkTransport (mkN "taxi" masculine) ;
- Train = mkTransport (mkN "treno") ;
- Tram = mkTransport (mkN "tram") ;
-
- ByFoot = ParadigmsIta.mkAdv "a piedi" ;
-
--- actions
-
- AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "camera")) (SyntaxIta.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "tavolo")) (SyntaxIta.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
- AHasName p name = mkCl p.name (mkV2 (reflV (mkV "chiamare"))) name ;
- AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "fame" feminine))) ;
- AIll p = mkCl p.name (mkA "malato") ;
- AKnow p = mkCl p.name (mkV (sapere_78 "sapere")) ;
- ALike p item = mkCl item (mkV2 (mkV (piacere_64 "piacere")) dative) p.name ;
- ALive p co =
- mkCl p.name (mkVP (mkVP (mkV "abitare")) (SyntaxIta.mkAdv P.in_Prep co)) ;
- ALove p q = mkCl p.name (mkV2 (mkV "amare")) q.name ;
- AMarried p = mkCl p.name (mkA "sposato") ;
- AReady p = mkCl p.name (mkA "pronto") ;
- AScared p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "paura" feminine))) ;
- ASpeak p lang = mkCl p.name (mkV2 (mkV "parlare")) lang ;
- AThirsty p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "sete" feminine))) ;
- ATired p = mkCl p.name (mkA "stanco") ;
- AUnderstand p = mkCl p.name (mkV "capire") ;
- AWant p obj = mkCl p.name (mkV2 (mkV (volere_96 "volere"))) obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (reflV (mkV "chiamare")))) ;
- QWhatAge p = mkQS (mkQCl (mkIP how8many_IDet L.year_N) p.name have_V2) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "costare"))) ;
- ItCost item price = mkCl item (mkV2 (mkV "costare")) price ;
-
- 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) ;
-
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("ci vediamo"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("ci vediamo"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("ci vediamo")))
- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
-
--- Relations are expressed as "my wife" or "the wife of my son", as defined by $xOf$
--- below. Languages with productive genitives can use an equivalent of
--- "my son's wife" for non-pronouns, as e.g. in English.
-
- Wife = xOf sing (mkN "moglie" feminine) ;
- Husband = xOf sing (mkN "marito" masculine) ;
- Son = xOf sing (mkN "figlio" masculine) ;
- Daughter = xOf sing (mkN "figlia" feminine) ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay "luned" ;
- Tuesday = mkDay "marted" ;
- Wednesday = mkDay "mercoled" ;
- Thursday = mkDay "gioved" ;
- Friday = mkDay "venerd" ;
- Saturday = mkDay "sabato" ;
- Sunday = mkDay "domenica" ;
-
- Tomorrow = P.mkAdv "domani" ;
-
-lin
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name (SyntaxIta.mkAdv for_Prep place.name)))) ;
-
--- modifiers of places
-
- TheBest = mkSuperl True L.good_A ;
- TheClosest = mkSuperl False L.near_A ;
- TheCheapest = mkSuperl False (mkA (mkA "economico") (mkA "meno caro")) ;
- TheMostExpensive = mkSuperl False (mkA "costoso") ;
- TheMostPopular = mkSuperl False (mkA "alla moda") ;
- TheWorst = mkSuperl True L.bad_A ;
-
- SuperlPlace sup kind =
- let
- det : Det = mkDet the_Art (mkOrd sup.s) ;
- name : NP = case sup.isPre of {
- True => mkNP det kind.name ; -- il migliore bar
- False => mkNP the_Art (mkCN (mkAP (mkOrd sup.s)) kind.name) -- il bar pi caro
- }
- in {
- name = name ;
- at = SyntaxIta.mkAdv kind.at name ;
- to = SyntaxIta.mkAdv kind.to name
- } ;
-
--- auxiliaries
-
- oper
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day = mkNP (mkPN d) in
- mkNPDay day (P.mkAdv d) (P.mkAdv ("di" ++ d)) ; ---- ?
-
- mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN p) i dative ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = E.PrepCN P.in_Prep n
- } ;
-
- mkSuperl : Bool -> A -> {s : A ; isPre : Bool} = \b,a ->
- {s = a ; isPre = b} ;
-
- open_A = mkA "aperto" ;
- closed_A = mkA "chiuso" ;
-
-}
diff --git a/examples/phrasebook/WordsJpn.gf b/examples/phrasebook/WordsJpn.gf
deleted file mode 100644
index 6cc406a45..000000000
--- a/examples/phrasebook/WordsJpn.gf
+++ /dev/null
@@ -1,385 +0,0 @@
---2 Implementations of Words, with Jpnlish as example
-
-concrete WordsJpn of Words = SentencesJpn **
- open
- SyntaxJpn,
- ParadigmsJpn,
- (L = LexiconJpn),
- (P = ParadigmsJpn),
- (R = ResJpn),
--- IrregJpn,
- ExtraJpn,
- Prelude in {
-
-flags coding = utf8 ;
-
- lin
-
--- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "チーズ" R.Inanim) ; -- "chiizu"
- Chicken = mkCN (mkN "鶏" R.Inanim "切れ" False) ; -- "tori" "kire"
- Coffee = mkCN (mkN "コーヒー" R.Inanim "杯" False) ; -- "koohi" "hai" (cups of)
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "肉" R.Inanim "切れ" False) ; -- "niku" "kire"
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "ピザ" R.Inanim "枚" False) ; -- "piza" "mai" (smth flat)
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "お茶" R.Inanim "杯" False) ; -- "ocha" "hai" (cups of)
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
-
- Bad = L.bad_A ;
- Boring = mkA "つまらない" ;
- Cheap = mkA "安い" ; -- "yasui"
- Cold = L.cold_A ;
- Delicious = mkA "美味しい" ; -- "oishii"
- Expensive = mkA "高い" ; -- "takai"
- Fresh = mkA "新鮮な" ; -- "shinsenna"
- Good = L.good_A ;
- Suspect = mkA "怪しい" ; -- "ayashii"
- Warm = L.warm_A ;
-
--- Places require different prepositions to express location; in some languages
--- also the directional preposition varies, but in English we use $to$, as
--- defined by $mkPlace$.
-
- Airport = mkPlace "空港" "で" ; -- "kuukou" "de"
- AmusementPark = mkPlace "遊園地" "で" ; -- "yuuenchi" "de"
- Bank = mkPlace "銀行" "で" ; -- "ginkou" "de"
- Bar = mkPlace "バー" "で" ; -- "baa" "de"
- Cafeteria = mkPlace "食堂" "で" ; -- "shokudou" "de"
- Center = mkPlace "センター" "で" ; -- "sentaa" "de"
- Cinema = mkPlace "映画館" "で" ; -- "eigakan" "de"
- Church = mkPlace "教会" "で" ; -- "kyoukai" "de"
- Disco = mkPlace "ディスコ" "で" ; -- "disuko" "de"
- Hospital = mkPlace "病院" "で" ; -- "byouin" "de"
- Hotel = mkPlace "ホテル" "で" ; -- "hoteru" "de"
- Museum = mkPlace "博物館" "で" ; -- "hakubutsukan" "de"
- Park = mkPlace "公園" "で" ; -- "kouen" "de"
- Parking = mkPlace "駐車場" "で" ; -- "chuushajou" "de"
- Pharmacy = mkPlace "薬局" "で" ; -- "kyoukai" "de"
- PostOffice = mkPlace "郵便局" "で" ; -- "yuubinkyoku" "de"
- Pub = mkPlace "パブ" "で" ; -- "pabu" "de"
- Restaurant = mkPlace "レストラン" "で" ; -- "resutoran" "de"
- School = mkPlace "学校" "で" ; -- "gakkou" "de"
- Shop = mkPlace "商店" "で" ; -- "mise" "de"
- Station = mkPlace "駅" "で" ; -- "eki" "de"
- Supermarket = mkPlace "スーパー" "で" ; -- "suupaa" "de"
- Theatre = mkPlace "劇場" "で" ; -- "gekijou" "de"
- Toilet = mkPlace "お手洗い" "で" ; -- "otearai" "de"
- University = mkPlace "大学" "で" ; -- "daigaku" "de"
- Zoo = mkPlace "動物園" "で" ; -- "doubutsuen" "de"
-
- CitRestaurant cit = mkCNPlace (mkCN cit.prop (mkN "レストラン")) in_Prep to_Prep ; -- "resutoran"
-
-
--- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
-
- DanishCrown = mkCur "デンマーク・クローネ" | mkCur "クローナ" ; -- "denmaaku kuroune"
- Dollar = mkCur "ドル" ; -- "doru"
- Euro = mkCur "ユーロ" ; -- "yuuro"
- Lei = mkCur "レウ" ; -- "reu"
- Leva = mkCur "レフ" ; -- "refu"
- NorwegianCrown = mkCur "ノルウェー・クローネ" | mkCur "クローナ" ; -- "noruwee kuroune"
- Pound = mkCur "ポンド" ; -- "pondo"
- Rouble = mkCur "ルーブル" ; -- "ruuburu"
- Rupee = mkCur "ルピ" ; -- "rupii"
- SwedishCrown = mkCur "スウェーデン・クローナ" | mkCur "クローナ" ; -- "Suu~eeden kurouna"
- Zloty = mkCur "ズロティ" ; -- "zuroti"
- Yuan = mkCur "元" ; -- "gen"
-
--- Nationalities
-
- Belgian = {prop = mkA "ベルギー の" ; citizenship = mkNP (mkN "ベルギー 人")} ; -- "berugii no"
- Belgium = mkNP (mkPN "ベルギー") ; -- "berugii"
- Bulgarian = mkNat "ブルガリア" ; -- "burugaria"
- Catalan = mkNat "カタロニア" ; -- "kataronia"
- Chinese = mkNat"中国" ; -- "chuugoku"
- Danish = mkNat "デンマーク" ; -- "denmaaku"
- Dutch = mkNat "オランダ" ; -- "oranda"
- English = mkNPNationality (mkNP (mkPN "英語")) (mkNP (mkPN "イギリス")) -- "eigo"
- (mkA "イギリスの") (mkNP (mkPN "イギリス人")) ;
- Finnish = mkNat "フィンランド" ; -- "finrando"
- Flemish = mkNP (mkPN "フラマン 語") ; -- "furaman go"
- French = mkNat "フランス" ; -- "furansu"
- German = mkNat "ドイツ" ; -- "doitsu"
- Hindi = mkNP (mkPN "ヒンディー語") ; -- "hindii"
- India = mkNP (mkPN "インド") ; -- "indo"
- Indian = {prop = mkA "インドの" ; citizenship = mkNP (mkN "インド人")} ; -- "indo no"
- Italian = mkNat "イタリア" ; -- "itaria"
- Norwegian = mkNat "ノルウェー" ; -- "noruwee"
- Polish = mkNat "ポーランド" ; -- "porando"
- Romanian = mkNat "ルーマニア" ; -- "ruumania"
- Russian = mkNat "ロシア" ; -- "roshia"
- Spanish = mkNat "スペイン" ; -- "supein"
- Swedish = mkNat "スウェーデン" ; -- "suweeden"
-
--- Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "バス") ; -- "basu"
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "フェリー") ; -- "ferii"
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "地下鉄") ; -- "chikatetsu"
- Taxi = mkTransport (mkN "タクシー") ; -- "takushii"
- Train = mkTransport (mkN "電車") ; -- "densha"
- Tram = mkTransport (mkN "市電") ; -- "shiden"
-
- ByFoot = P.mkAdv "徒歩で" ; -- "toho de"
-
--- Actions: the predication patterns are very often language-dependent.
-
- AHasAge p num = mkCl p.name (mkNP num (mkNounWOCounter "歳")) ;
- AHasChildren p num = mkCl p.name (mkV2 "いる" "が" R.Gr2) (mkNP num L.child_N) ;
- AHasName p name = mkCl (nameOf p) name ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "部屋")) (SyntaxJpn.mkAdv for_Prep (mkNP num (mkNounWOCounter "人")))) ; -- "heya"
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "テーブル")) (SyntaxJpn.mkAdv for_Prep (mkNP num (mkNounWOCounter "人")))) ;
- AHungry p = mkCl p.name (P.mkV "お腹が空いている" R.Gr1) ; -- "onaka ga suite iru"
- AIll p = mkCl p.name (mkA "病気の") ;
- AKnow p = mkCl p.name mkKnow ;
- ALike p item = mkCl p.name (mkA2 "好きな" "が") item ;
- ALive p co = mkCl p.name (mkVP (mkVP (mkV "住んでいる" R.Gr2)) (SyntaxJpn.mkAdv in_Prep co)) ; -- "sundeiru"
- ALove p q = mkCl p.name (mkV2 "愛している" "を" R.Gr2) q.name ; -- "aishiteiru"
- AMarried p = mkCl p.name (mkA "結婚している" "既婚の") ; -- "kekkonshiteiru" "kikonno"
- AReady p = mkCl p.name L.ready_A ;
- AScared p = mkCl p.name (mkA "怖い") ;
- ASpeak p lang = mkCl p.name L.speak_V2 lang ;
- AThirsty p = mkCl p.name (mkA "喉が乾いている" "渇した") ;
- -- "nodo ga kawaiteiru" "kasshita"
- ATired p = mkCl p.name (mkA "疲れている" "疲れた") ;
- -- "tsukareteiru" "tsukareta"
- AUnderstand p = case p.name.meaning of {
- R.SomeoneElse => mkCl p.name (v2toVP L.understand_V2) ;
- R.Me => mkCl p.name (mkV "分かる" R.Gr1) -- "wakaru"
- } ;
- AWant p obj = case (p.name).meaning of {
- R.Me => mkCl p.name (mkA2 "欲しい" "が") obj ;
- R.SomeoneElse => mkCl p.name (mkA2 "欲しがっている" "欲しい" "が") obj
- } ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl (mkIComp whatSg_IP) (nameOf p)) ;
- QWhatAge p = mkQS (mkQCl howOld_IAdv (mkCl p.name R.mkCopula)) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "かかる"))) ;
- ItCost item price = mkCl item (mkV2 "かかる" "" R.Gr1) price ;
-
- PropOpen p = mkCl p.name mkOpen ;
- PropClosed p = mkCl p.name mkClosed ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP mkOpen) d) ;
- PropClosedDate p d = mkCl p.name (mkVP (mkVP mkClosed) d) ;
- PropOpenDay p d = mkCl p.name (mkVP (mkVP mkOpen) d.habitual) ;
- PropClosedDay p d = mkCl p.name (mkVP (mkVP mkClosed) d.habitual) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (mkPhrase (mkUtt d)) (lin Text (ss ("会いましょう"))) ; -- "aimashou"
- PSeeYouPlace p = mkText (mkPhrase (mkUtt p.at)) (lin Text (ss ("会いましょう"))) ; -- "aimashou"
- PSeeYouPlaceDate p d =
- mkText (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d)))
- (lin Text (ss ("会いましょう"))) ; -- "aimashou"
-
--- 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
--- "the wife of my son" for non-pronouns.
-
- Wife = xOf (mkN "妻" "奥さん" R.Anim "人" False "妻たち") ; -- "tsuma" "okusan"
- Husband = xOf (mkN "夫" "ご主人" R.Anim "人" False "夫たち") ; -- "otto" "goshujin"
- Son = xOf (mkN "息子" "息子さん" R.Anim "人" False "息子たち") ; -- "musuko"
- Daughter = xOf (mkN "娘" "お嬢さん" R.Anim "人" False "娘たち") ; -- "musume" "ojousan"
- Children = xOf L.child_N ;
-
--- week days
-
- Monday = mkDay "月曜日" ; -- "getsuyoubi"
- Tuesday = mkDay "火曜日" ; -- "kayoubi"
- Wednesday = mkDay "水曜日" ; -- "suiyoubi"
- Thursday = mkDay "木曜日" ; -- "mokuyoubi"
- Friday = mkDay "金曜日" ; -- "kin'youbi"
- Saturday = mkDay "土曜日" ; -- "doyoubi"
- Sunday = mkDay "日曜日" ; -- "nichiyoubi"
-
- Tomorrow = P.mkAdv "明日" ; -- "ashita"
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "安い") ; -- "yasui"
- TheMostExpensive = mkSuperl (mkA "高い") ; -- "takai"
- TheMostPopular = mkSuperl (mkA "盛んな") ; -- "sakanna"
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
--- transports
-
- HowFar place = mkQS (mkQCl howFar_IAdv (mkCl place.name (mkA "遠い"))) ;
- HowFarFrom x y =
- mkQS (mkQCl howFar_IAdv (mkCl (mkNP y.name (SyntaxJpn.mkAdv from_Prep x.name)) (mkA "遠い"))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl howFar_IAdv (mkCl
- (mkNP y.name (SyntaxJpn.mkAdv from_Prep (mkNP x.name t))) (mkA "遠い"))) ;
- HowFarBy y t = mkQS (mkQCl howFar_IAdv (mkCl (mkNP y.name t) (mkA "遠い"))) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
-
--- auxiliaries
-
- oper
-
- mkNat : Str -> NPNationality = \co ->
- mkNPNationality (mkNP (mkPN (co + "語"))) (mkNP (mkPN co))
- (mkA (co + "の")) (mkNP (mkPN (co + "人"))) ; ---- mkA ...
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day : NP = mkNP (mkPN d) in
- mkNPDay day (SyntaxJpn.mkAdv in_Prep day)
- (SyntaxJpn.mkAdv in_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
-
- mkCompoundPlace : Str -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \comp, p, i ->
- mkCNPlace (mkCN (P.mkN (comp + p))) (P.mkPrep i) to_Prep ;
-
- mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN (mkN p)) (P.mkPrep i) to_Prep ;
-
- xOf : N -> NPPerson -> NPPerson = \f,p ->
- {name = mkNP the_Det (mkCN f (SyntaxJpn.mkAdv possess_Prep p.name)) ;
- isPron = False ; poss = the_Quant} ; ---- poss not used
-
- mkOpen : A = mkA "開いている" "開いた" ; -- "aiteiru"
- mkClosed : A = mkA "閉まっている" "閉まった" ; -- "shimatteiru"
-
- nameOf : NPPerson -> NP = \p -> (xOf (mkN "名前") p).name ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxJpn.mkAdv by8means_Prep (mkNP n)
- } ;
-
- mkSuperl : A -> Det = \a -> SyntaxJpn.mkDet the_Art (SyntaxJpn.mkOrd a) ;
-
- howFar_IAdv : IAdv = lin IAdv {s = \\st => "どのくらい" ; particle = "" ; wh8re = False} ;
-
- howOld_IAdv : IAdv = lin IAdv {s = \\st => "何歳" ; particle = "" ; wh8re = False} ;
-
- mkCur : Str -> Currency = \c -> lin Currency (lin CN {
- s = \\n,st => c ;
- anim = R.Inanim ;
- counter = c ;
- counterReplace = True ;
- counterTsu, hasAttr = False ;
- object, prepositive = \\st => ""
- } ) ;
-
- mkNounWOCounter : Str -> CN = \noun -> lin CN {
- s = \\n,st => noun ;
- anim = R.Inanim ;
- counter = noun ;
- counterReplace = True ;
- counterTsu, hasAttr = False ;
- object, prepositive = \\st => ""
- } ;
-
- mkKnow : V = lin V {
- s = table {
- R.Resp => table {
- (R.TPres|R.TFut) => table {
- R.Pos => "知っています" ;
- R.Neg => "知りません"
- } ;
- R.TPast => table {
- R.Pos => "知っていました" ;
- R.Neg => "知りませんでした"
- }
- } ;
- R.Plain => table {
- (R.TPres|R.TFut) => table {
- R.Pos => "知っている" ;
- R.Neg => "知らない"
- } ;
- R.TPast => table {
- R.Pos => "知っていた" ;
- R.Neg => "知らなかった"
- }
- }
- } ;
- te = table {
- R.Pos => "知って" ;
- R.Neg => "知らないで"
- } ;
- a_stem = "知ら" ;
- i_stem = "知り" ;
- ba = table {
- R.Pos => "知れば" ;
- R.Neg => "知らなければ"
- } ;
- needSubject = True
- } ;
-
---------------------------------------------------
--- New 30/11/2011 AR
---------------------------------------------------
-
- lin
- Thai = mkNat "タイ" ; -- "tai"
- Baht = mkCur "バーツ" ; -- "baatsu"
-
- Rice = mkCN (mkN "ご飯") ; -- "gohan"
- Pork = mkCN (mkN "豚肉") ; -- "butaniku"
- Beef = mkCN (mkN "牛肉") ; -- "gyuuniku"
- Egg = mkCN L.egg_N ;
- Noodles = mkCN (mkN "ヌードル") ; -- "nuudoru"
- Shrimps = mkCN (mkN "海老") ; -- "ebi"
- Chili = mkCN (mkN "チリ") ; -- "chiri"
- Garlic = mkCN (mkN "大蒜") ; -- "ninniku"
- Durian = mkCN (mkN "ドリアン") ; -- "dorian"
- Mango = mkCN (mkN "マンゴ") ; -- "mango"
- Pineapple = mkCN (mkN "パイナップル") ; -- "painappuru"
- Coke = mkCN (mkN "コーク") ; -- "kooku"
- IceCream = mkCN (mkN "アイスクリーム") ; -- "aisukuriimu"
- Salad = mkCN (mkN "サラダ") ; -- "sarada"
- OrangeJuice = mkCN (mkN "オレンジジュース") ; -- "orenjijuusu"
- Lemonade = mkCN (mkN "レモネード") ; -- "remoneedo"
-
- Beach = mkPlace "beach" "on" ;
-
- ItsRaining = mkCl (mkVP R.mkRain) ;
- ItsCold = mkCl (mkVP L.cold_A) ;
- ItsWarm = mkCl (mkVP L.warm_A) ;
- ItsWindy = mkCl (mkVP (P.mkA "風が強い")) ;
- SunShine = mkCl (mkNP L.sun_N) (mkVP (mkV "輝いている" R.Gr2)) ;
- -- "taiyou wa kagayaite iru"
-
- Smoke = mkVP (P.mkV "煙草を吸う" R.Gr1) ; -- "tabako o suu"
-
- ADoctor = mkProfession (mkN "医者") ; -- "isha"
- AProfessor = mkProfession (mkN "教授") ; -- "kyouju"
- ALawyer = mkProfession (mkN "弁護士") ; -- "bengoshi"
- AEngineer = mkProfession (mkN "技術者") ; -- "gijutsusha"
- ATeacher = mkProfession (mkN "先生") ; -- "sensei"
- ACook = mkProfession (mkN "料理人") ; -- "ryourinin"
- AStudent = mkProfession (mkN "学生") ; -- "gakusei"
- ABusinessman = mkProfession (mkN "実業家") ; -- "jitsugyouka"
-
- oper
- mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
-}
diff --git a/examples/phrasebook/WordsLav.gf b/examples/phrasebook/WordsLav.gf
deleted file mode 100644
index bcc13a091..000000000
--- a/examples/phrasebook/WordsLav.gf
+++ /dev/null
@@ -1,319 +0,0 @@
---# -path=.:present
-
-concrete WordsLav of Words = SentencesLav **
-open
- SyntaxLav,
- ParadigmsLav,
- (P = ParadigmsLav),
- (L = LexiconLav),
- ExtraLav,
- ResLav,
- Prelude,
- Predef
-in {
-
- flags
- coding = utf8 ;
-
- lin
- -- Kinds
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN L.cheese_N ;
- Chicken = mkCN (mkN "vista") ;
- Coffee = mkCN (mkN "kafija") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN L.meat_N ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "pica") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "tēja") ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
- -- Properties
-
- Bad = L.bad_A ;
- Boring = mkA "garlaicīgs" ;
- Cheap = mkA "lēts" ;
- Cold = L.cold_A ;
- Delicious = mkA "garšīgs" ;
- Expensive = mkA "dārgs" ;
- Fresh = mkA "svaigs" ;
- Good = L.good_A ;
- Suspect = mkA "aizdomīgs" ;
- Warm = L.warm_A ;
-
- -- Places
-
- Airport = mkPlace "lidosta" in_Prep ;
- AmusementPark = mkPlace "atrakciju parks" in_Prep ;
- Bank = mkPlace "banka" in_Prep ;
- Bar = mkPlace "bārs" in_Prep ;
- Cafeteria = mkPlace "kafejnīca" in_Prep ;
- Center = mkPlace "centrs" in_Prep ;
- Cinema = mkPlace "kino" in_Prep ;
- Church = mkPlace "baznīca" in_Prep ;
- Disco = mkPlace "diskotēka" in_Prep ;
- Hospital = mkPlace "slimnīca" in_Prep ;
- Hotel = mkPlace "viesnīca" in_Prep ;
- Museum = mkPlace "muzejs" in_Prep ;
- Park = mkPlace "parks" in_Prep ;
- Parking = mkPlace "autostāvvieta" in_Prep ;
- Pharmacy = mkPlace "aptieka" in_Prep ;
- PostOffice = mkPlace "pasts" in_Prep ;
- Pub = mkPlace "krogs" in_Prep ;
- Restaurant = mkPlace "restorāns" in_Prep ;
- School = mkPlace "skola" in_Prep ;
- Shop = mkPlace "veikals" in_Prep ;
- Station = mkPlace "stacija" in_Prep ;
- Supermarket = mkPlace "lielveikals" in_Prep ;
- Theatre = mkPlace "teātris" in_Prep ;
- Toilet = mkPlace "tualete" in_Prep ;
- University = mkPlace "universitāte" in_Prep ;
- Zoo = mkPlace "zoodārzs" in_Prep ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restorāns")) in_Prep to_Prep ;
-
- -- Currencies
-
- DanishCrown = mkCN (mkA "dāņu") (mkN "krona") | mkCN (mkN "krona") ;
- Dollar = mkCN (mkN "dolārs") ;
- Euro = mkCN (mkN "eiro") ;
- Lei = mkCN (mkN "leja") ;
- Leva = mkCN (mkN "leva") ;
- NorwegianCrown = mkCN (mkA "norvēģu") (mkN "krona") | mkCN (mkN "krona") ;
- Pound = mkCN (mkN "mārciņa") ;
- Rouble = mkCN (mkN "rublis") ;
- SwedishCrown = mkCN (mkA "zviedru") (mkN "krona") | mkCN (mkN "krona") ;
- Zloty = mkCN (mkN "zlots") ;
-
- -- Nationalities
-
- Belgian = mkA "beļģu" ;
- Belgium = mkNP (mkPN "Beļģija") ;
- Bulgarian = mkNat (mkA "bulgāru") (P.mkAdv "bulgāriski") (mkPN "Bulgārija") ;
- Catalan = mkNat (mkA "kataloniešu") (P.mkAdv "kataloniski") (mkPN "Katalonija") ;
- Danish = mkNat (mkA "dāņu") (P.mkAdv "dāniski") (mkPN "Dānija") ;
- Dutch = mkNat (mkA "holandiešu") (P.mkAdv "holandiski") (mkPN "Nīderlande") ;
- English = mkNat (mkA "angļu") (P.mkAdv "angliski") (mkPN "Anglija") ;
- Finnish = mkNat (mkA "somu") (P.mkAdv "somiski") (mkPN "Somija") ;
- Flemish = mkLang (mkA "flāmu") (P.mkAdv "flāmiski") ;
- French = mkNat (mkA "franču") (P.mkAdv "franciski") (mkPN "Francija") ;
- German = mkNat (mkA "vācu") (P.mkAdv "vāciski") (mkPN "Vācija") ;
- Italian = mkNat (mkA "itāļu") (P.mkAdv "itāliski") (mkPN "Itālija") ;
- Norwegian = mkNat (mkA "norvēģu") (P.mkAdv "norvēģiski") (mkPN "Norvēģija") ;
- Polish = mkNat (mkA "poļu") (P.mkAdv "poliski") (mkPN "Polija") ;
- Romanian = mkNat (mkA "rumāņu") (P.mkAdv "rumāniski") (mkPN "Rumānija") ;
- Russian = mkNat (mkA "krievu") (P.mkAdv "krieviski") (mkPN "Krievija") ;
- Spanish = mkNat (mkA "spāņu") (P.mkAdv "spāniski") (mkPN "Spānija") ;
- Swedish = mkNat (mkA "zviedru") (P.mkAdv "zviedriski") (mkPN "Zviedrija") ;
-
- -- Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "autobuss") ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "prāmis") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "metro") ;
- Taxi = mkTransport (mkN "taksometrs") ;
- Train = mkTransport (mkN "vilciens") ;
- Tram = mkTransport (mkN "tramvajs") ;
- ByFoot = P.mkAdv "kājām" ;
-
- -- Actions
-
- AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V3 (mkNP a_Det (mkN "istaba")) (mkNP num (mkN "persona")) ;
- AHasTable p num = mkCl p.name have_V3 (mkNP a_Det (mkN "galdiņš")) (mkNP num (mkN "persona")) ;
-
- AHasName p name =
- mkCl p.name (mkV2 (mkV "saukt" "saucu" "saucu" Acc) nom_Prep) name |
- mkCl (nameOf p) name ;
-
- AHungry p = mkCl p.name (mkA (mkV "izsalkt" "izsalkstu" "izsalku") active_voice) ;
- AIll p = mkCl p.name (mkA "slims") ;
- AKnow p = mkCl p.name (mkV "zināt" third_conjugation) ;
- ALike p item = mkCl p.name (mkV2 (mkV "garšot" second_conjugation Dat) nom_Prep) item ;
- ALive p co = mkCl p.name (mkVP (mkVP (mkV "dzīvot" second_conjugation)) (SyntaxLav.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name L.love_V2 q.name ;
- AMarried p = mkCl p.name (mkA (mkV "precēties" third_conjugation) active_voice) ;
- AReady p = mkCl p.name (mkA "gatavs") ;
-
- AScared p =
- mkCl p.name (mkV "baidīties" third_conjugation) |
- mkCl p.name (mkA (mkV "nobīties" "nobīstos" "nobijos") active_voice) ;
-
- ASpeak p lang =
- mkCl p.name (mkVP (mkVP (mkV "runāt" second_conjugation)) lang.modif) |
- mkCl p.name (mkV2 (mkV "runāt" second_conjugation) loc_Prep) lang.lang ;
-
- AThirsty p = mkCl p.name (mkA (mkV "izslāpt" "izslāpstu" "izslāpu") active_voice) ;
- ATired p = mkCl p.name (mkA (mkV "nogurt" "nogurstu" "noguru") active_voice) ;
- AUnderstand p = mkCl p.name (mkV "saprast" "saprotu" "sapratu") ;
- AWant p obj = mkCl p.name (mkV2 (mkV "vēlēties" third_conjugation)) obj ;
-
- -- TODO: IrregLav.doties_V
- AWantGo p place = mkCl p.name (mkVV (mkV "vēlēties" third_conjugation)) (mkVP (mkVP (mkV "doties" "dodos" "devos")) place.to) ;
- ---- mkVV by AR 28/8/2012
-
- -- Quick & dirty, or ok?
- QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (mkV2 (mkV "saukt" "saucu" "saucu" Acc) nom_Prep) (mkNP (mkN [])))) ;
-
- -- Quick & dirty
- -- TODO: how8much_IAdv >>> how8many_IDet (but the word order!) or how8many_IAdv
- -- mkNP a_Quant pluralNum L.year_N >>> mkNP pluralNum L.year_N
- -- Cannot use have_V2 because of a different valence
- QWhatAge p = mkQS (mkQCl how8much_IAdv (mkCl p.name (mkV2 (mkV "būt" Dat) gen_Prep) (mkNP the_Quant pluralNum L.year_N))) ;
-
- -- Quick & dirty
- -- TODO: item is the subject >>> use NP -> V -> Cl (changing the default word order)
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl (mkVP (mkV2 (mkV "maksāt" second_conjugation) nom_Prep) item))) ;
-
- ItCost item price = mkCl item (mkV2 (mkV "maksāt" second_conjugation) acc_Prep) price ;
-
- 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) ;
-
- -- Building phrases from strings is complicated: the solution is to use
- -- mkText : Text -> Text -> Text ;
- PSeeYouDate d = mkText (lin Text (ss ("tiksimies"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("tiksimies"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d = mkText (lin Text (ss ("tiksimies"))) (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ;
-
- -- 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
- -- "the wife of my son" for non-pronouns.
- Wife = xOf sing (mkN "sieva") ;
- Husband = xOf sing (mkN "vīrs") ;
- Son = xOf sing (mkN "dēls") ;
- Daughter = xOf sing (mkN "meita") ;
- Children = xOf plur L.child_N ;
-
- -- week days
-
- Monday = mkDay "pirmdiena" ;
- Tuesday = mkDay "otrdiena" ;
- Wednesday = mkDay "trešdiena" ;
- Thursday = mkDay "ceturtdiena" ;
- Friday = mkDay "piektdiena" ;
- Saturday = mkDay "sestdiena" ;
- Sunday = mkDay "svētdiena" ;
-
- Tomorrow = P.mkAdv "rīt" ;
-
- -- modifiers of places
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "lēts") ;
- TheMostExpensive = mkSuperl (mkA "dārgs") ;
- TheMostPopular = mkSuperl (mkA "populārs") ;
- TheWorst = mkSuperl L.bad_A ;
- SuperlPlace sup p = placeNP sup p ;
-
- -- transports
- HowFar place = mkQS (mkQCl far_IAdv place.name) ;
- HowFarFrom x y = mkQS (mkQCl far_IAdv (mkCl y.name (SyntaxLav.mkAdv from_Prep x.name))) ;
- HowFarFromBy x y t = mkQS (mkQCl far_IAdv (mkCl y.name (SyntaxLav.mkAdv from_Prep (mkNP x.name t)))) ;
- HowFarBy y t = mkQS (mkQCl far_IAdv (mkCl y.name t)) ;
- WhichTranspPlace trans place = mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
- IsTranspPlace trans place = mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
- oper
- mkLang : A -> Adv -> NPLanguage = \la,mo -> {
- lang = mkNP (mkCN la (mkN "valoda")) ;
- modif = mo
- } ;
-
- mkNat : A -> Adv -> PN -> NPNationality = \la,mo,co ->
- mkNPNationality (mkLang la mo) (mkNP co) la ;
-
- mkDay : Str -> NPDay = \d ->
- mkNPDay (mkNP (mkPN d))
- (P.mkAdv (Predef.tk 1 d))
- (SyntaxLav.mkAdv in_Prep (mkNP the_Quant plNum (mkCN (mkN d)))) ;
-
- --mkCompoundPlace : Str -> Str -> Prep -> {
- -- name : CN ;
- -- at : Prep ;
- -- to : Prep ;
- -- isPl : Bool
- --} = \comp,p,i -> mkCNPlace (mkCN (P.mkN comp (mkN p))) i to_Prep ;
-
- mkPlace : Str -> Prep -> {name : CN ; at : SyntaxLav.Prep ; to : SyntaxLav.Prep ; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN (mkN p)) i to_Prep ; ---- SyntaxLav.Prep by AR 28/8/2012
-
- open_A = P.mkA "atvērts" ;
-
- closed_A = P.mkA "slēgts" ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
-
- nameOf : NPPerson -> NP = \p ->
- (xOf sing (mkN "vārds") p).name ;
-
- mkTransport : N -> {
- name : CN ;
- by : Adv
- } = \n -> {
- name = mkCN n ;
- by = SyntaxLav.mkAdv by8means_Prep (mkNP n)
- } ;
-
- mkSuperl : A -> Det = \a ->
- SyntaxLav.mkDet the_Art (SyntaxLav.mkOrd a) ;
-
- far_IAdv = ExtraLav.IAdvAdv (mkAdv "tālu") ;
-
---------------------------------------------------
--- New 30/11/2011 AR
---------------------------------------------------
-
- lin
- Thai = mkNat (mkA "taizemiešu") (mkPN "Taizeme") ;
- Baht = mkCN (mkN "bats") ;
- Rice = mkCN (mkN "rīss") ;
- Pork = mkCN (mkN "cūkgaļa") ;
- Beef = mkCN (mkN "liellops") ;
- Egg = mkCN L.egg_N ;
- Noodles = mkCN (mkN "nūdele") ;
- Shrimps = mkCN (mkN "garnele") ;
- Chili = mkCN (mkN "čili") ;
- Garlic = mkCN (mkN "ķiploks") ;
- Durian = mkCN (mkN "durians") ;
- Mango = mkCN (mkN "mango") ;
- Pineapple = mkCN (mkN "ananass") ;
- Coke = mkCN (mkN "kola") ;
- IceCream = mkCN (mkN "saldējums") ;
- Salad = mkCN (mkN "salāts") ;
- OrangeJuice = mkCN (mkA "apelsīnu") (mkN "sula") ;
- Lemonade = mkCN (mkN "limonāde") ;
- Beach = mkPlace "pludmale" in_Prep ;
- ItsRaining = mkCl (progressiveVP (mkVP L.rain_V0)) ;
- ItsCold = mkCl (mkVP L.cold_A) ;
- ItsWarm = mkCl (mkVP L.warm_A) ;
- ItsWindy = mkCl (mkVP (P.mkA "vējains")) ;
- SunShine = mkCl (mkNP the_Det L.sun_N) (progressiveVP (mkVP (mkV "spīdēt" third_conjugation))) ;
- Smoke = mkVP (P.mkV "smēķēt" second_conjugation) ;
- ADoctor = mkProfession (mkN "ārsts") ;
- AProfessor = mkProfession (mkN "profesors") ;
- ALawyer = mkProfession (mkN "jurists") ;
- AEngineer = mkProfession (mkN "inženieris") ;
- ATeacher = mkProfession (mkN "skolotājs") ;
- ACook = mkProfession (mkN "pavārs") ;
- AStudent = mkProfession (mkN "students") ;
- ABusinessman = mkProfession (mkN "uzņēmējs") ;
-
- oper
- mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
-
-}
diff --git a/examples/phrasebook/WordsNor.gf b/examples/phrasebook/WordsNor.gf
deleted file mode 100644
index 861ad9c79..000000000
--- a/examples/phrasebook/WordsNor.gf
+++ /dev/null
@@ -1,273 +0,0 @@
--- (c) 2009 Aarne Ranta under LGPL
---# -coding=latin1
-
-concrete WordsNor of Words = SentencesNor **
- open SyntaxNor, ParadigmsNor, IrregNor, (L = LexiconNor), ExtraNor, StructuralNor, Prelude in {
-
- lin
-
--- kinds of food
-
- Apple = mkCN (mkN "eple" "eplet" "epler" "eplene") ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "ost" "osten" "oster" "ostene") ;
- Chicken = mkCN (mkN "kylling" "kyllingen" "kyllinger" "kyllingene") ;
- Coffee = mkCN (mkN "kaffe" "kaffet" "kaffen" "kaffene") ; -- av kaffe ?
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "kjtt" "kjttet" "kjtt" "kjtta") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "pizza" "pizzaen" "pizzaer" "pizzaene") ; -- av pizza ?
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "te" "teen" "teer" "teene") ; -- av te ?
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- properties
-
- Bad = L.bad_A ;
- Cheap = mkA "billig" ;
- Boring = mkA "kjedelig" ;
- Cold = L.cold_A ;
- Delicious = mkA "deilig" ;
- Expensive = mkA "dyr" ;
- Fresh = mkA "fersk" ;
- Good = L.good_A ;
- Suspect = mkA "suspekt" "suspekt" ;
- Warm = L.warm_A ;
-
--- places
-
-
- Airport = mkPlace (mkN "flyplass" "flyplassen" "flyplasser" "flyplassene") "p" "til";
- AmusementPark = mkPlace (mkN "fornyelsespark" "fornyelsesparken" "fornyelsesparker" "fornyelsesparkene") "i" "til";
- Bank = mkPlace (mkN "bank" "banken" "banker" "bankene") "i" "til";
- Bar = mkPlace (mkN "bar" "baren" "barer" "barene") "i" "til"; -- ?? check forms
- Cafeteria = mkPlace (mkN "kafeteria" "kafeterian" "kafeterier" "kafeteriene") "i" "til";
- Center = mkPlace (mkN "sentrum" "sentrum" "sentre" "sentrene") "i" "til";
- Cinema = mkPlace (mkN "kino" "kino" "kinoer" "kinoene") "p" "p";
- Church = mkPlace (mkN "kirke" "kirka" "kirker" "kirkene") "i" "til";
- Disco = mkPlace (mkN "diskotek" "diskoteket" "diskoteker" "diskotekene") "p" "p";
- Hospital = mkPlace (mkN "sykehus" "sykehuset" "sykehus" "sykehusa") "p" "til";
-
- Hotel = mkPlace (mkN "hotel" "hotellet" "hoteller" "hotellene") "p" "til";
- Museum = mkPlace (mkN "museum" "museet" "museer" "museene") "i" "til";
- Park = mkPlace (mkN "park" "parken" "parker" "parkene") "i" "til";
- Parking = mkPlace (mkN "parkeringsplass" "parkeringsplassen" "parkeringsplasser" "parkeringplassene") "p" "til";
- Pharmacy = mkPlace (mkN "apotek" "apoteket" "apoteker" "apotekene") "p" "til";
- PostOffice = mkPlace (mkN "postkontor" "postkontoret" "postkontorer" "postkontorene") "p" "til";
- Pub = mkPlace (mkN "pub" "puben" "puber" "pubene") "p" "til";
- Restaurant = mkPlace (mkN "restaurant" "restauranten" "restauranter" "restaurantene") "p" "til";
- School = mkPlace (mkN "skole" "skola" "skoler" "skolene") "i" "til";
- Shop = mkPlace (mkN "butikk" "butikken" "butikker" "butikkene") "i" "til";
- Station = mkPlace (mkN "stasjon" "stasjonen" "stasjoner" "stasjonene") "p" "til";
- Supermarket = mkPlace (mkN "supermarked" "supermarkedet" "supermarkeder" "supermarkedene") "p" "til";
- Theatre = mkPlace (mkN "teater" "teatret" "teatre" "teatrene") "p" "til";
- Toilet = mkPlace (mkN "toalett" "toalettet" "toaletter" "toalettene") "p" "p";
- University = mkPlace (mkN "universitet" "universitetet" "universitet" "universiteta") "i" "til";
- Zoo = mkPlace (mkN "dyrepark" "dyreparken" "dyreparker" "dyreparkene") "p" "til";
-
- CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurant" "restauranten" "restauranter" "restaurantene")) on_Prep to_Prep ;
-
--- currencies
-
- DanishCrown = mkCN (mkA "dansk") (mkN "krone" "krona" "kroner" "kronene") | mkCN (mkN "krone" "krona" "kroner" "kronene") ;
- Dollar = mkCN (mkN "dollar" "dollaren" "dollar" "dollar") ; -- i dollar ?
- Euro = mkCN (mkN "euro" "euroen" "euro" "euro") ; -- i euro
- Lei = mkCN (mkN "leu" "leu" "leis" "leis") ; -- den leis ?
- Leva = mkCN (mkN "lev" "lev" "leva" "leva") ; -- det leva ?
- NorwegianCrown = mkCN (mkA "norsk") (mkN "krone" "krona" "kroner" "kronene") | mkCN (mkN "krone" "krona" "kroner" "kronene") ;
- Pound = mkCN (mkN "pund" "pundet" "pund" "punda") ; -- i pounds ?
- Rouble = mkCN (mkN "rubel" "rubelen" "rubler" "rublene") ; -- av rubler ?
- SwedishCrown = mkCN (mkA "svensk") (mkN "krone" "krona" "kroner" "kronene") | mkCN (mkN "krone" "krona" "kroner" "kronene") ;
- Zloty = mkCN (mkN "zloty" "zloty" "zloty" "zloty") ; -- i/den zloty ?
-
--- nationalities
-
-
- Belgian = mkA "belgisk" ;
- Belgium = mkNP (mkPN "Belgia") ;
- Bulgarian = mkNat "bulgarsk" "Bulgaria" ;
- Catalan = mkNat "katalansk" "Katalonia" ;
- Danish = mkNat "dansk" "Danmark" ;
- Dutch = mkNat "nederlandsk" "Nederland" ;
- English = mkNat "engelsk" "England" ;
- Finnish = mkNat "finsk" "Finland" ;
- Flemish = mkNP (mkPN "flamsk") ;
- French = mkNat "fransk" "Frankrike" ;
- German = mkNat "tysk" "Tyskland" ;
- Italian = mkNat "italiensk" "Italia" ;
- Norwegian = mkNat "norsk" "Norge" ;
- Polish = mkNat "polsk" "Polen" ;
- Romanian = mkNat "rumensk" "Romania" ;
- Russian = mkNat "russisk" "Russland" ;
- Spanish = mkNat "spansk" "Spania" ;
- Swedish = mkNat "svensk" "Sverige" ;
-
-
-
--- Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "buss" "bussen" "busser" "bussene") ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "ferge" "fergen" "ferger" "fergene") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "undergrunnsbane" "undergrunnsbanen" "undergrunnsbaner" "undergrunnsbanene") ; -- check ?
- Taxi = mkTransport (mkN "drosje" "drosja" "drosjer" "drosjene") ;
- Train = mkTransport (mkN "tog" "toget" "tog" "toga") ;
- Tram = mkTransport (mkN "trikk" "trikken" "trikker" "trikkene") ;
-
- ByFoot = ParadigmsNor.mkAdv "til fots" ;
-
-
-
-
--- actions
-
- AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
- AHasName p name = mkCl p.name (mkV2 hete_V) name ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "rom" "rommet" "rommene" "romma"))
- (SyntaxNor.mkAdv for_Prep (mkNP num (mkN "person" "personen" "personer" "personene")))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "bord" "bordet" "bord" "borda"))
- (SyntaxNor.mkAdv for_Prep (mkNP num (mkN "person" "personen" "personer" "personene")))) ;
- AHungry p = mkCl p.name (mkA "sulten" "sultet" "sultne") ;
- AIll p = mkCl p.name (mkA "syk") ;
- AKnow p = mkCl p.name vite_V ;
- ALike p item = mkCl p.name (dirV2 (mk2V "like" "likte")) item ;
- ALive p co = mkCl p.name (mkVP (mkVP (mkV "bor")) (SyntaxNor.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (dirV2 (regV "elske")) q.name ;
- AMarried p = mkCl p.name (mkA "gift") ;
- AReady p = mkCl p.name (mkA "klar") ;
- AScared p = mkCl p.name (mkA "redd") ;
- ASpeak p lang = mkCl p.name (dirV2 (regV "snakke")) lang ;
- AThirsty p = mkCl p.name (mkA "trstig") ;
- ATired p = mkCl p.name (mkA "sliten") ;
- AUnderstand p = mkCl p.name (irregV "forst" "forstod" "forsttt") ;
- AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl whatSg_IP p.name (mkV2 hete_V)) ;
- QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "koste"))) ;
- ItCost item price = mkCl item (mkV2 (mkV "koste")) price ;
-
- 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) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("vi ses")))
- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
-
--- 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
--- "the wife of my son" for non-pronouns.
-
- Wife = xOf sing (mkN "kone" "kona" "koner" "konene") ;
- Husband = xOf sing L.man_N ;
- Son = xOf sing (mkN "snn" "snnen" "snner" "snnene") ;
- Daughter = xOf sing (mkN "datter" "datteren" "dtre" "dtrene") ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay "mandag" ;
- Tuesday = mkDay "tirsdag" ;
- Wednesday = mkDay "onsdag" ;
- Thursday = mkDay "torsdag" ;
- Friday = mkDay "fredag" ;
- Saturday = mkDay "lrdag" ;
- Sunday = mkDay "sndag" ;
-
- Tomorrow = ParadigmsNor.mkAdv "i morgen" ;
-
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "billig") ;
- TheMostExpensive = mkSuperl (mkA "dyr") ;
- TheMostPopular = mkSuperl (mkA "populr") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
-
-
--- transports
-
- HowFar place =
- mkQS (mkQCl far_IAdv (mkCl (mkVP place.to))) ;
- HowFarFrom x y =
- mkQS (mkQCl far_IAdv (mkCl (mkVP (mkVP y.to)
- (SyntaxNor.mkAdv from_Prep x.name)))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkCl (mkVP (mkVP (mkVP y.to)
- (SyntaxNor.mkAdv from_Prep x.name)) t))) ;
- HowFarBy place t =
- mkQS (mkQCl far_IAdv (mkCl (mkVP (mkVP place.to) t))) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
- oper
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day = mkNP (mkPN d) in
- mkNPDay day (SyntaxNor.mkAdv on_Prep day)
- (SyntaxNor.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
-
- mkPlace : N -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i,t ->
- mkCNPlace (mkCN p) (mkPrep i) (mkPrep t) ;
-
- open_A = mkA "pen" "pent";
- closed_A = mkA "stengt" "stengt";
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePersonNor n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
-
- mkSuperl : A -> Det = \a -> mkDet the_Art (mkOrd a) ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxNor.mkAdv by8means_Prep (mkNP the_Det n)
- } ;
-
- far_IAdv = ExtraNor.IAdvAdv (ParadigmsNor.mkAdv "langt") ;
-
- how8much_IAdv : IAdv = ss "hvor mye" ** {lock_IAdv = <>};
-
- relativePersonNor : GNumber -> CN -> (Num -> NP -> CN -> NP) -> NPPerson -> NPPerson =
- \n,x,f,p ->
- let num = if_then_else Num n plNum sgNum in {
- name = case p.isPron of {
- True => PossNPPron (mkNP the_Quant num x) p.name ;
- _ => f num p.name x
- } ;
- isPron = False ;
- poss = mkQuant he_Pron -- not used because not pron
- } ;
-
-}
diff --git a/examples/phrasebook/WordsPes.gf b/examples/phrasebook/WordsPes.gf
deleted file mode 100644
index 69ff86802..000000000
--- a/examples/phrasebook/WordsPes.gf
+++ /dev/null
@@ -1,289 +0,0 @@
---2 Implementations of Words, with English as example
-
-concrete WordsPes of Words = SentencesPes **
- open
- SyntaxPes,
- ResPes,
- ParadigmsPes,
- (L = LexiconPes),
- (P = ParadigmsPes),
--- IrregPes,
- ExtraPes,
- Prelude in {
-flags coding = utf8 ;
-
--- param Gender = Masc | Fem ;
- lin
-
--- Kinds; many of them are in the resource lexicon, others can be built by $mkN01$.
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN01 "پنیر" Inanimate) ;
- Chicken = mkCN (mkN01 "مرغ" Animate) ;
- Coffee = mkCN (mkN01 "قهوه" Inanimate) ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN01 "گوشت" Inanimate) ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN01 "پیتزا" Inanimate) ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN01 "چای" Inanimate) ;
- Water = mkCN L.water_N;
- Wine = mkCN L.wine_N ;
-
--- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
-
- Bad = L.bad_A ;
- Boring = mkA ["خسته کننده"] ;
- Cheap = mkA "ارزان" ;
- Cold = L.cold_A ;
- Delicious = mkA "خوشمزه" ;
- Expensive = mkA "گران" ;
- Fresh = mkA "تازه" ;
- Good = L.good_A ;
- Suspect = mkA "مشکوک" ;
- Warm = L.warm_A ;
-
--- Places require different prepositions to express location; in some languages
--- also the directional preposition varies, but in English we use $to$, as
--- defined by $mkPlace$.
-
- Airport = mkPlace "فرودگاه" "در" ;
- AmusementPark = mkPlace "شهربازی" "در" ;
- Bank = mkPlace "بانک" "در" ;
- Bar = mkPlace "بار" "در" ;
- Cafeteria = mkPlace ["کافه تریا"] "در" ;
- Center = mkPlace "مرکز" "در" ;
- Cinema = mkPlace "سینما" "در" ;
- Church = mkPlace "کلیسا" "در" ;
- Disco = mkPlace "دیسکو" "در" ;
- Hospital = mkPlace "بیمارستان" "در" ;
- Hotel = mkPlace "هتل" "در" ;
- Museum = mkPlace "موزه" "در" ;
- Park = mkPlace "پارک" "در" ;
- Parking = mkPlace "پارکینگ" "در" ;
- Pharmacy = mkPlace "داروخانه" "در" ;
- PostOffice = mkCompoundPlace "اداره" "پست" "در" ;
- Pub = mkPlace "میخانه" "در" ;
- Restaurant = mkPlace "رستوران" "در" ;
- School = mkPlace "مدرسه" "در" ;
- Shop = mkPlace "مغازه" "در";
- Station = mkPlace "ایستگاه" "در" ;
- Supermarket = mkPlace "فروشگاه" "در" ;
- Theatre = mkPlace "تئاتر" "در" ;
- Toilet = mkPlace "دستشویی" "در" ;
- University = mkPlace "دانشگاه" "در";
- Zoo = mkPlace ["باغ وحش"] "در" ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit (mkCN (mkN01 "رستوران" Inanimate))) in_Prep to_Prep ;
-
-
--- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
-
- DanishCrown = mkCN (mkA "دانمارک") (mkCN (mkN01 "کرون" Inanimate)) | mkCN (mkN01 "کرون" Inanimate) ;
- Dollar = mkCN (mkN01 "دلار" Inanimate) ;
- Euro = mkCN (mkN01 "یورو" Inanimate) ; -- to prevent euroes
- Lei = mkCN (mkN01 "لی" Inanimate) ; -- check this
- Leva = mkCN (mkN01 "لوا" Inanimate) ;
- NorwegianCrown = mkCN (mkA "نروژ") (mkCN (mkN01 "کرون" Inanimate)) | mkCN (mkN01 "کرون" Inanimate) ;
- Pound = mkCN (mkN01 "پوند" Inanimate) ;
- Rouble = mkCN (mkN01 "روبل" Inanimate) ;
- SwedishCrown = mkCN (mkA "سوئد") (mkCN (mkN01 "کرون" Inanimate)) | mkCN (mkN01 "کرون" Inanimate) ;
- Zloty = mkCN (mkN01 "زلوتی" Inanimate) ; check this
-
--- Nationalities
-
- Belgian = mkA "بلژیکی" ;
- Belgium = mkNP (mkPN "بلژیک" Inanimate) ;
- Bulgarian = mkNat "بلغاری" "بلغارستان" ;
- Catalan = mkNPNationality (mkNP (mkPN "کاتالان" Inanimate)) (mkNP (mkPN "کاتالان" Inanimate)) (mkA "کاتالان") ;
- Danish = mkNat "دانمارکی" "دانمارک" ;
- Dutch = mkNPNationality (mkNP (mkPN "هلندی" Inanimate)) (mkNP the_Quant (mkCN (mkN01 "هلندی" Inanimate))) (mkA "هلندی") ;
- English = mkNat "انگلیسی" "انگلستان" ;
- Finnish = mkNat "فنلاندی" "فنلاند" ;
- Flemish = mkNP (mkPN "فلاندرز" Inanimate) ;
- French = mkNat "فرانسوی" "فرانسه" ;
- German = mkNat "آلمانی" "آلمان" ;
- Italian = mkNat "ایتالیایی" "ایتالیا" ;
- Norwegian = mkNat "نروژی" "نروژ" ;
- Polish = mkNat "لهستانی" "لهستان" ;
- Romanian = mkNat "رومانیایی" "رومانی" ;
- Russian = mkNat "روسی" "روسیه" ;
- Spanish = mkNat "اسپانیایی" "اسپانیا" ;
- Swedish = mkNat "سوئدی" "سوئد" ;
-
--- Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN01 "اتوبوس" Inanimate) ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN01 "قایق" Inanimate) ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN01 "مترو" Inanimate) ;
- Taxi = mkTransport (mkN01 "تاکسی" Inanimate) ;
- Train = mkTransport (mkN01 "قطار" Inanimate) ; -- check this
- Tram = mkTransport (mkN01 "تراموا" Inanimate) ;
-
- ByFoot = P.mkAdv "پیاده" ;
-
--- Actions: the predication patterns are very often language-dependent.
-
--- AHasAge p num = mkCl p.name (mkNP (mkNP num L.year_N) (ParadigmsPes.mkAdv "ک"));
- AHasAge p num = mkCl p.name (mkNP num (mkCN L.year_N));
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkCN (mkN01 "اتاق" Inanimate))) (SyntaxPes.mkAdv for_Prep (mkNP num (mkCN (P.mkN01 "شخص" Animate))))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkCN (mkN01 "میز" Inanimate))) (SyntaxPes.mkAdv for_Prep (mkNP num (mkCN (P.mkN01 "شخص" Animate))))) ;
- AHasName p name = mkCl (nameOf p) name ;
- AHungry p = mkCl p.name (mkA "گرسنه") ;
- AIll p = mkCl p.name (mkA "بیمار") ;
- AKnow p = mkCl p.name (mkV "داستن" "دان") ;
- ALike p item = mkCl p.name (L.like_V2) item ;
- ALive p co = mkCl p.name (mkVP (mkVP (L.live_V)) (SyntaxPes.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (L.love_V2) q.name ;
- AMarried p = mkCl p.name (mkA "متأهل") ;
- AReady p = mkCl p.name (mkA "آماده") ;
- AScared p = mkCl p.name (P.mkA "ترسیده") ;
- ASpeak p lang = mkCl p.name L.speak_V2 lang ;
- AThirsty p = mkCl p.name (mkA "تشنه") ;
- ATired p = mkCl p.name (P.mkA "خسته") ;
- AUnderstand p = mkCl p.name (mkV "فهمیدن" "فهم") ; -- "فهمید" is the past root and "فهمیدن" is the infinitive
- AWant p obj = mkCl p.name (mkV2 (mkV "خواستن" "خواه")) obj ;
--- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.name) ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) (SyntaxPes.mkAdv (P.mkPrep "به") place.name)) ;
-
--- miscellaneous
-
--- QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
- QWhatName p = mkQS (mkQCl what_IAdv (mkNP p.poss (lin N (mkN01 "نام" Inanimate)))) ;
--- QWhatAge p = mkQS (mkQCl (mkCl (mkNP p.poss) (P.mkAdv "سال"))) ;
- QWhatAge p = mkQS (mkQCl howMuchAge_IAdv (mkNP (mkNP p.poss) (P.mkAdv "سال"))) ;
--- HowMuchCost item = mkQS (mkQCl (mkCl item (P.mkAdv ["قیمت داشتن"]))) ;
- HowMuchCost item = mkQS (mkQCl howMuchCost_IAdv (mkNP (lin Predet {s = "قیمت"}) item)) ;
- ItCost item price = mkCl item (mkV2 (mkV "قیمت" "")) price ;
-
- PropOpen p = mkCl p.name open_Adv ;
- PropClosed p = mkCl p.name closed_Adv ;
- -- PropOpenDate p d = mkCl p.name (mkVP (mkVP d) open_Adv) ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP open_Adv) d) ;
--- PropClosedDate p d = mkCl p.name (mkVP (mkVP d) closed_Adv) ;
- 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 (mkNP d.name open_Adv));
--- PropClosedDay p d = mkCl p.name (mkVP (mkVP d.habitual) closed_Adv) ;
- PropClosedDay p d = mkCl p.name (mkVP (mkNP d.name closed_Adv)) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (Prelude.ss ("شما را"))) (mkText (mkPhrase (mkUtt d)) (lin Text (Prelude.ss ("می بینم")))) ;
- PSeeYouPlace p = mkText (lin Text (Prelude.ss ("شما را"))) (mkText (mkPhrase (mkUtt p.at)) (lin Text (Prelude.ss ("می بینم")))) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (Prelude.ss ("شما را")))
- (mkText (mkPhrase (mkUtt p.at)) (mkText (mkPhrase (mkUtt d)) (lin Text (Prelude.ss ("می بینم"))))) ;
-
--- Relations are expressed as "می wفe" or "می سْn'س wفe", as defined by $xOf$
--- below. Languages without productive genitives must use an equivalent of
--- "تهe wفe ْف می سْن" for non-pronouns.
-
- Wife = xOf ssing (mkN01 "زن" Animate) ;
- Husband = xOf ssing (mkN01 "شوهر" Animate) ;
- Son = xOf ssing (mkN01 "پسر" Animate) ;
- Daughter = xOf ssing (mkN01 "دختر" Animate) ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay "دوشنبه" ;
- Tuesday = mkDay "سه شنبه" ;
- Wednesday = mkDay "چهارشنبه" ;
- Thursday = mkDay "پنج شنبه" ;
- Friday = mkDay "جمعه" ;
- Saturday = mkDay "شنبه" ;
- Sunday = mkDay "یکشنبه" ;
-
- Tomorrow = P.mkAdv "فردا" ;
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "ارزان") ;
- TheMostExpensive = mkSuperl (mkA "گران") ;
- TheMostPopular = mkSuperl (mkA "پرطرفدار") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
--- transports
-
-
- HowFar place = mkQS (mkQCl far_IAdv (mkNP tA_Prep place.name)) ;
- HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP (mkNP from_Prep x.name) (SyntaxPes.mkAdv tA_Prep y.name ))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkNP (mkNP (mkNP from_Prep x.name) (SyntaxPes.mkAdv tA_Prep y.name)) t)) ;
- HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP (mkNP tA_Prep y.name) t)) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (SyntaxPes.mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
-
--- auxiliaries
-
- oper
-
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (mkPN nat Inanimate)) (mkNP (mkPN co Inanimate)) (mkA nat) ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day = mkNP (mkPN d Inanimate) in
- mkNPDay day (SyntaxPes.mkAdv no_Prep day)
- (SyntaxPes.mkAdv to_Prep (mkNP a_Quant sgNum (mkCN (mkN01 d Inanimate)))) ; --changed from plNum to sgNum
-
- mkCompoundPlace : Str -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \comp, p, i ->
--- mkCNPlace (mkCN (P.mkN01 comp (mkN01 p))) (P.mkPrep i) to_Prep ;
- mkCNPlace (mkCN (mkN01 (comp++p) Inanimate)) (P.mkPrep i) to_Prep ;
-
- mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN (mkN01 p Inanimate)) (P.mkPrep i) to_Prep ;
--- mkPlaceFem : Str -> Str -> Gender -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i,g ->
--- mkCNPlace (mkCN (P.mkN01 p Inanimate)) (P.mkPrep i) to_Prep ;
-
- open_Adv = P.mkAdv "باز";
- open_Predet = lin Predet {s = "باز"};
- closed_Adv = P.mkAdv "بسته" ;
-
- xOf : SentencesPes.GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
-
- nameOf : NPPerson -> NP = \p -> (xOf ssing (mkN01 "نام" Inanimate) p).name ;
- ssing = False ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxPes.mkAdv by8means_Prep (mkNP n)
- } ;
-
--- mkSuperl : A -> Det = \a -> SyntaxPes.mkDet the_Art (SyntaxPes.mkOrd a) ;
- mkSuperl : A -> Det = \a -> lin Det { s = a.s ! bEzafa ++ "ترین" ; n = Sg ; isNum = False ; fromPron = False} ;
-
--- far_IAdv = ExtraPes.IAdvAdv (P.mkAdv "دور") ;
- far_IAdv = lin IAdv {s = "چقدر راه"} ;
- howMuchAge_IAdv = lin IAdv {s = "چند"} ;
- howMuchCost_IAdv = lin IAdv {s = "چقدر"} ;
- what_IAdv = lin IAdv {s = ["چه چیزی"]} ;
- no_Prep = lin Prep {s = ""} ;
- tA_Prep = lin Prep {s = "تا"} ;
--------------------
---modN : N -> N = \noun -> lin N {s = \\n,c =>noun.s!n!c++"ک" ; g =noun.g} ;
---modQuant : Quant -> Quant = \q -> lin Quant {s = \\n,g,c => q.s ! n ! Fem ! c ; a = q.a};
---modNP : NP -> NP = \np -> lin NP {s = \\_ => np.s ! NPC Obl ; a = np.a};
-
-}
diff --git a/examples/phrasebook/WordsPol.gf b/examples/phrasebook/WordsPol.gf
deleted file mode 100644
index 2b7fe292f..000000000
--- a/examples/phrasebook/WordsPol.gf
+++ /dev/null
@@ -1,354 +0,0 @@
---2 Implementations of Words, with Polish as example
-
-concrete WordsPol of Words = SentencesPol **
- open
- ResPol,
- SyntaxPol,
- (L = LexiconPol),
- (Q = QuestionPol),
- (N = NounPol),
- MorphoPol,
- Prelude in {
-
- flags
- optimize =values ; coding =utf8 ;
-
- lin
-
--- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN L.cheese_N ;
- Chicken = mkCN kurczak ;
- Coffee = mkCN kawa;
- Fish = mkCN L.fish_N ;
- Meat = mkCN L.meat_N ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN pizza;
- Salt = mkCN L.salt_N ;
- Tea = mkCN herbata ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
-
- Bad = L.bad_A ;
- Boring = mkA (mkRegAdj "nudny" "nudniejszy" "nudno" "nudniej" );
- Cheap = mkA (mkRegAdj "tani" "tańszy" "tanio" "taniej" );
- Cold = L.cold_A ;
- Delicious = mkA (mkRegAdj "pyszny" "pyszniejszy" "pysznie" "pyszniej") ;
- Expensive = mkA (mkRegAdj "drogi" "droższy" "drogo" "drożej" );
- Fresh = mkA (mkRegAdj "świeży" "świeższy" "świeżo" "świeżej" );
- Good = L.good_A ;
- Suspect = mkA (mkCompAdj "podejrzany" "podejrzanie" );
- Warm = L.warm_A ;
-
--- Places require different prepositions to express location; in some languages
--- also the directional preposition varies, but in English we use $to$, as
--- defined by $mkPlace$.
-
- Airport = mkPlaceNa lotnisko ;
- AmusementPark = mkPlaceDo ["wesołe miasteczko"] ["wesołego miasteczka"] ["wesołym miasteczku"] Neut;
- Bank = mkPlaceDo "bank" "banku" "banku" (Masc Inanimate);
- Bar = mkPlaceDo "bar" "baru" "barze" (Masc Inanimate);
- Cafeteria = mkPlaceDo "stołówka" "stołówki" "stołówce" Fem;
- Center = mkPlaceDo "centrum" "centrum" "centrum" Neut;
- Cinema = mkPlaceDo "kino" "kina" "kinie" Neut ;
- Church = mkPlaceDo "kościół" "kościoła" "kościele" (Masc Inanimate);
- Disco = mkPlaceNa "dyskoteka" "dyskotekę" "dyskotece" Fem ;
- Hospital = mkPlaceDo "szpital" "szpitala" "szpitalu" (Masc Inanimate);
- Hotel = mkPlaceDo "hotel" "hotelu" "hotelu" (Masc Inanimate) ;
- Museum = mkPlaceDo "muzeum" "muzeum" "muzeum" Neut ;
- Park = mkPlaceDo "park" "parku" "parku" (Masc Inanimate) ;
- Parking = mkPlaceNa "parking" "parking" "parkingu" (Masc Inanimate) ;
- Pharmacy = mkPlaceDo "apteka" "apteki" "aptece" Fem ;
- PostOffice = mkPlaceNa "poczta" "pocztę" "poczcie" Fem ;
- Pub = mkPlaceDo "pub" "pubu" "pubie" (Masc Inanimate) ;
- Restaurant = mkPlaceDo L.restaurant_N;
- School = mkPlaceDo L.school_N;
- Shop = mkPlaceDo "sklep" "sklepu" "sklepie" (Masc Inanimate) ;
- Station = mkPlaceNa "stacja" "stację" "stacji" Fem ;
- Supermarket = mkPlaceDo "supermarket" "supermarketu" "supermarkecie" (Masc Inanimate) ;
- Theatre = mkPlaceDo "teatr" "teatru" "teatrze" (Masc Inanimate) ;
- Toilet = mkPlaceDo "toaleta" "toalety" "toalecie" Fem ;
- University = mkPlaceNa L.university_N;
- Zoo = mkPlaceDo "zoo" "zoo" "zoo" Neut ;
-
- CitRestaurant cit = { name=(mkCN cit.prop (mkCN L.restaurant_N));
- at = { s="w"; c=LocPrep; lock_Prep = <> }; to = {s="do"; c=GenPrep; lock_Prep = <>}; isPl = False };
-
-
--- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
-
- DanishCrown = mkCN (mkCurrency "korona duńska" "korony duńskie" "koron duńskich" Fem);
- Dollar = mkCN dolar ;
- Euro = mkCN (mkCurrency "euro" "euro" "euro" Neut);
- Lei = mkCN (mkCurrency "leja" "leje" "lei" Fem);
- Leva = mkCN (mkCurrency "lew" "lewy" "lewów" (Masc Animate));
- NorwegianCrown = mkCN (mkCurrency "korona norweska" "korony norweskie" "koron norweskich" Fem);
- Pound = mkCN (mkCurrency "funt" "funty" "funtów" (Masc Animate));
- Rouble = mkCN (mkCurrency "rubel" "ruble" "rubli" (Masc Animate));
- SwedishCrown = mkCN (mkCurrency "korona szwedzka" "korony szwedzkie" "koron szwedzkich" Fem);
- Zloty = mkCN (mkCurrency "złoty" "złote" "złotych" (Masc Animate));
-
--- Nationalities
--- język, po języku, obywatelstwo, kraj, obywatelem, obywatelami, obywatelką
- Belgian = {prop=mkA (mkCompAdj "belgijski"); citizenMSg="Belgiem"; citizenMPl="Belgami"; citizenF="Belgijką"};
- Belgium = mkNP belgia ;
- Bulgarian = mkNat "bułgarski" ["po bułgarsku"] "bułgarski" bulgaria "Bułgarem" "Bułgarami" "Bułgarką";
- Catalan = mkNat "kataloński" ["po katalońsku"] "kataloński" katalonia "Katalończykiem" "Katalończykami" "Katalonką";
- Danish = mkNat "duński" ["po duńsku"] "duński" katalonia "Duńczykiem" "Duńczykami" "Dunką";
- Dutch = mkNat "holenderski" ["po holendersku"] "holenderski" holandia "Holendrem" "Holendrami" "Holenderką";
- English = mkNat "angielski" ["po angielsku"] "angielski" anglia "Anglikiem" "Anglikami" "Angielką";
- Finnish = mkNat "fiński" ["po fińsku"] "finladzki" finlandia "Finem" "Finami" "Finką";
- Flemish = mkA (mkCompAdj "flamandzki" ["po flamandzku"]);
- French = mkNat "francuski" ["po francusku"] "francuski" francja "Framcuzem" "Francuzami" "Francuzką";
- German = mkNat "niemiecki" ["po niemiecku"] "niemiecki" niemcy "Niemcem" "Niemcami" "Niemką";
- Italian = mkNat "włoski" ["po włosku"] "włoski" wlochy "Włochem" "Włochami" "Włoszką";
- Norwegian = mkNat "norweski" ["po norwesku"] "norweski" norwegia "Norwegiem" "Norwegami" "Norweszką";
- Polish = mkNat "polski" ["po polsku"] "polski" polska "Polakiem" "Polakami" "Polką";
- Romanian = mkNat "rumuński" ["po rumuńsku"] "rumuński" rumunia "Rumunem" "Rumunami" "Rumunką";
- Russian = mkNat "rosyjski" ["po rosyjsku"] "rosyjski" rosja "Rosjaninem" "Rosjanami" "Rosjanką";
- Spanish = mkNat "hiszpański" ["po hiszpańsku"] "hiszpański" hiszpania "Hiszpanem" "Hiszpanami" "Hiszpanką";
- Swedish = mkNat "szwedzki" ["po szwedzku"] "szwedzki" szwecja "Szwedem" "Szwedami" "Szwedką";
-
--- Means of transportation
-
- Bike = {cn = mkCN L.bike_N ; verb="jedzie" };
- Bus = mkTransport "autobus" "autobusem" (Masc Inanimate) "jedzie";
- Car = {cn = mkCN L.car_N ; verb="jedzie" };
- Ferry = mkTransport "prom" "promem" (Masc Inanimate) "płynie";
- Plane = {cn = mkCN L.airplane_N ; verb="leci" };
- Subway = mkTransport "metro" "metrem" Neut "jedzie";
- Taxi = mkTransport "taksówka" "taksówką" Fem "jedzie";
- Train = mkTransport "pociąg" "pociągiem" (Masc Inanimate) "jedzie";
- Tram = mkTransport "tramwaj" "tramwajem" (Masc Inanimate) "jedzie";
-
- ByFoot = ss "pieszo" ** {lock_Adv = <>};
-
--- Actions: the predication patterns are very often language-dependent.
-
- AHasAge p num = mkCl p.name have_V2 (mkNP (mkDet num) (mkCN L.year_N)) ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN (mkNTable0950 "pokój") (Masc Inanimate))) (SyntaxPol.mkAdv for_Prep (mkNP num (L.person_N)))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (L.table_N)) (SyntaxPol.mkAdv for_Prep (mkNP num (L.person_N)))) ;
-
-
-
- AHasName p name = mkCl p.name (mkVP (mkComplicatedVerb (mkMonoVerb "być" conj1 Imperfective) name.nom));
- AHungry p = mkCl p.name (mkA (mkRegAdj "głodny" "głodniejszy" "głodno" "głodniej" )) ;
- AIll p = mkCl p.name (mkA (mkCompAdj "chory")) ;
- AKnow p = mkCl p.name (mkVP (mkMonoVerb "wiedzieć" conj103 Imperfective)) ;
- ALike p item = mkCl p.name (L.like_V2) item ;
- ALive p co = mkCl p.name (mkVP (mkComplicatedVerb (mkMonoVerb "mieszkam" conj98 Imperfective) ("w" ++ co.dep!LocPrep)));
- ALove p q = mkCl p.name (L.love_V2) q.name ;
- AMarried p = mkCl p.name (case p.name.gn of {
- MascPersSg|MascAniSg|MascInaniSg|MascPersPl=> mkCompAdj "żonaty";
- _=>mkCompAdj "zamężny"}) ;
- AReady p = mkCl p.name (L.ready_A) ;
- AScared p = mkCl p.name (mkReflVerb (mkMonoVerb "bać" conjbac Imperfective)) ;
- ASpeak p lang = mkCl p.name (mkVP (mkComplicatedVerb (mkMonoVerb "mówić" conj72 Imperfective) lang.advpos)) ;
- AThirsty p = mkCl p.name (mkVP (mkComplicatedVerb (mkMonoVerb "chcieć" conj45 Imperfective) ["pić"]));
- ATired p = mkCl p.name (mkA (mkCompAdj "zmęczony")) ;
- AUnderstand p = mkCl p.name (mkVP (mkV "rozumieć" conj101 "zrozumieć" conj101)) ;
- AWant p obj = mkCl p.name (dirV2 (mkMonoVerb "chcieć" conj45 Imperfective)) obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkComplicatedVerb (mkV1 "iść" conj41a "pójść" conj42) place.to.s)) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name
- (mkVP (mkComplicatedVerb (mkMonoVerb "mieć" conj100 Imperfective) ["na imię"]))));
- QWhatAge p = mkQS (mkQCl howmany_IAdv (mkCl p.name
- (mkVP (mkComplicatedVerb (mkMonoVerb "mieć" conj100 Imperfective) ["lat"]))));
- HowMuchCost item = { s="ile" ++
- (mkMonoVerb "kosztować" conj53 Imperfective).si!(VFinM (extract_num!item.gn) P3) ++ item.nom;
- lock_QS=<> } ;
- ItCost item price = mkCl item (dirV2 (mkMonoVerb "kosztować" conj53 Imperfective) ) price ;
-
- PropOpen p = mkCl p.name open_A ;
- PropClosed p = mkCl p.name closed_A ;
- PropOpenDate p d = mkCl p.name (mkAP d open_A) ;
- PropClosedDate p d = mkCl p.name (mkAP d closed_A) ;
- PropOpenDay p d = mkCl p.name (mkAP (ss d.hab) open_A) ;
- PropClosedDay p d = mkCl p.name (mkAP (ss d.hab) closed_A) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("do zobaczenia"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("do zobaczenia"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("do zobaczenia")))
- (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ;
---
--- 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
--- "the wife of my son" for non-pronouns.
---
- Wife p = xOf p N.NumSg L.wife_N ;
- Husband p = xOf p N.NumSg L.husband_N ;
- Son p = xOf p N.NumSg (mkPer "syn" "syna" "syna" (Masc Personal)) ;
- Daughter p = xOf p N.NumSg (mkPer "córka" "córki" "córkę" Fem );
- Children p = xOf p N.NumPl L.child_N ;
-
--- week days
-
- Monday = { name="poniedziałek"; hab=["w poniedziałki"]; adv=["w poniedziałek"] } ;
- Tuesday = { name="wtorek"; hab=["we wtorki"]; adv=["we wtorek"] } ;
- Wednesday = { name="środa"; hab=["we środy"]; adv=["we środę"] } ;
- Thursday = { name="czwartek"; hab=["w czwartki"]; adv=["w czwartek"] } ;
- Friday = { name="piątek"; hab=["w piątki"]; adv=["w piątek"] } ;
- Saturday = { name="sobota"; hab=["w soboty"]; adv=["w sobotę"] } ;
- Sunday = { name="niedziela"; hab=["w niedziele"]; adv=["w niedzielę"] } ;
-
- Tomorrow = (ss "jutro") ** {lock_Adv = <>} ;
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA (mkRegAdj "tani" "tańszy" "tanio" "taniej") );
- TheMostExpensive = mkSuperl (mkA (mkRegAdj "drogi" "droższy" "drogo" "drożej" ) );
- TheMostPopular = mkSuperl (mkA (mkRegAdj "popularny" "popularniejszy" "popularnie" "popularniej" ) ) ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
--- transports
- HowFar place = mkQS (Q.QuestIComp (Q.CompIAdv far_IAdv) place.name) ;
-
- --jak daleko jest z cenrum do hotelu
- HowFarFrom x y = { s=["jak daleko jest z"] ++ x.name.dep!GenPrep ++ y.to.s; lock_QS=<> };
-
- --jak daleko jest pieszo z centrum do hotelu
- HowFarFromBy x y t =
- { s=["jak daleko jest"] ++ t.s ++ "z" ++ x.name.dep!GenPrep ++ y.to.s; lock_QS=<> };
-
- HowFarBy y t =
- { s=["jak daleko jest"] ++ t.s ++ y.to.s; lock_QS=<> };
-
- WhichTranspPlace trans place =
- { s= ktory ! AF (cast_gennum!) Nom ++ trans.cn.s!Sg!Nom ++ trans.verb ++ place.to.s; lock_QS=<> };
-
- IsTranspPlace trans place =
- { s= ["czy jest stąd"] ++ trans.cn.s!Sg!Nom ++ place.to.s; lock_QS=<> };
-
-
--- auxiliaries
-
- oper kurczak = mkN (mkNTable0173 "kurczak") (Masc Animate) ;
- oper kawa = mkN (mkNTable0021 "kawa") (Fem) ;
- oper pizza = mkN (mkNTable0175 "pizza") (Fem) ;
- oper herbata = mkN (mkNTable0026 "herbata") (Fem) ;
- oper lotnisko = mkN (mkNTable0265 "lotnisko") (Neut) ;
- oper lilja = mkN (mkNTable0060 "lilia") (Fem) ;
- oper niemcy = mkN (mkNTable0387 "Niemcy") (Plur) ;
- oper wlochy = mkN (mkNTable0482 "Włochy") (Plur) ;
- oper belgia = mkN (mkNTable0005 "Belgia") (Fem) ;
- oper bulgaria = mkN (mkNTable0005 "Bułgaria") (Fem) ;
- oper katalonia = mkN (mkNTable0005 "Katalonia") (Fem) ;
- oper dania = mkN (mkNTable0055 "Dania") (Fem) ;
- oper anglia = mkN (mkNTable0005 "Anglia") (Fem) ;
- oper holandia = mkN (mkNTable0005 "Holandia") (Fem) ;
- oper finlandia = mkN (mkNTable0005 "Finlandia") (Fem) ;
- oper francja = mkN (mkNTable0005 "Francja") (Fem) ;
- oper norwegia = mkN (mkNTable0005 "Norwegia") (Fem) ;
- oper polska = mkN (mkNTable0041 "Polska") (Fem) ;
- oper rumunia = mkN (mkNTable0032 "Rumunia") (Fem) ;
- oper rosja = mkN (mkNTable0005 "Rosja") (Fem) ;
- oper hiszpania = mkN (mkNTable0032 "Hiszpania") (Fem) ;
- oper szwecja = mkN (mkNTable0005 "Szwecja") (Fem) ;
- oper pokoj = mkN (mkNTable0526 "pokój") (Masc Inanimate) ;
- oper dolar = mkN (mkNTable0064 "dolar") (Masc Animate) ;
-
- oper
-
- mkA : Adj -> A = \adj -> adj ** { lock_A = <> };
-
- mkPlaceDo = overload {
- mkPlaceDo : N -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \n -> {
- name = mkCN n; at = { s="w"; c=LocPrep; lock_Prep = <> }; to = {s="do"; c=GenPrep; lock_Prep = <>}; isPl = False };
- mkPlaceDo : Str -> Str -> Str -> Gender -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \nom,gen,loc,g -> {
- name = mkCN {
- s = table {SF Sg Nom => nom; SF Sg Gen => gen; SF Sg Loc => loc; _ => ["not implemented"]};
- g = g;
- lock_N=<>
- };
- at = { s="w"; c=LocPrep; lock_Prep = <> }; to = {s="do"; c=GenPrep; lock_Prep = <>}; isPl = False };
- };
-
- mkPlaceNa = overload {
- mkPlaceNa : N -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \n -> {
- name = mkCN n; at = { s="na"; c=LocPrep; lock_Prep = <> }; to = {s="na"; c=AccPrep; lock_Prep = <>}; isPl = False };
- mkPlaceNa : Str -> Str -> Str -> Gender -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \nom,acc,loc,g -> {
- name = mkCN {
- s = table {SF Sg Nom => nom; SF Sg Acc => acc; SF Sg Loc => loc; _ => ["not implemented"]};
- g = g;
- lock_N=<>
- };
- at = { s="na"; c=LocPrep; lock_Prep = <> }; to = {s="na"; c=AccPrep; lock_Prep = <>}; isPl = False };
- };
-
- mkTransport : Str -> Str -> Gender -> Str -> {cn:CN; verb:Str} = \nom,instr,g,verb -> {
- cn = {
- s = \\n,c => case of { => nom; => instr; _ => ["not implemented"]};
- g = g;
- lock_CN=<>
- };
- verb=verb
- };
-
- mkCitizen = overload {
- mkCitizen : Str -> N = \s -> {
- s = table {SF Sg Instr => s; _ => ["not implemented"]};
- g = Fem;
- lock_N=<>
- };
- mkCitizen : Str -> Str -> N = \inst, instpl -> {
- s = table {SF Sg Instr => inst; SF Pl Instr => instpl; _ => ["not implemented"]};
- g = Masc Personal;
- lock_N=<>
- };
- };
-
- mkPer : Str -> Str -> Str -> Gender -> N = \nom,gen,acc,g -> {
- s = table {SF Sg Nom => nom; SF Sg Gen => gen; SF Sg Acc => acc; _ => ["not implemented"]};
- g = g;
- lock_N=<>
- };
-
-
- mkCurrency : Str -> Str -> Str -> Gender -> N = \nom,nompl,genpl,g -> {
- s = table {SF Sg Nom => nom; SF Pl (Nom|Acc) => nompl; SF Pl Gen => genpl; _ => ["not implemented"]};
- g = g;
- lock_N=<>
- };
-
- mkNat : Str -> Str -> Str -> N -> Str -> Str -> Str ->
- { lang: A; prop: A; country: NP; citizenMSg:Str; citizenMPl: Str; citizenF:Str } =
- \lang,ladv,prop,country,citiMsg, citiMpl, citiF -> {
- lang = mkA (mkCompAdj lang ladv); prop = mkA (mkCompAdj prop);
- country=mkNP country; citizenMSg=citiMsg; citizenMPl=citiMpl; citizenF=citiF };
-
- open_A : A = (mkA (mkCompAdj "otwarty"));
- closed_A : A = (mkA (mkCompAdj "zamknięty"));
-
- xOf : NPPerson -> Num -> N -> NPPerson = \p,num,n ->
- { name = case p.isPron of {
- True => mkNP (mkDet p.poss num) n;
- False => mkNP (mkNP (mkDet a_Quant num) n) ({s=p.name.dep!GenNoPrep; lock_Adv=<>})
- };
- isPron = False;
- poss = p.poss }; --it is not used, because it is not a pron
-
- mkSuperl : A -> Det = \a -> SyntaxPol.mkDet the_Art (SyntaxPol.mkOrd a) ;
-
- far_IAdv : IAdv = (ss ["jak daleko"]) ** {lock_IAdv = <>};
- howmany_IAdv : IAdv = (ss ["ile"]) ** {lock_IAdv = <>};
-
-}
diff --git a/examples/phrasebook/WordsRon.gf b/examples/phrasebook/WordsRon.gf
deleted file mode 100644
index 4563ff735..000000000
--- a/examples/phrasebook/WordsRon.gf
+++ /dev/null
@@ -1,277 +0,0 @@
---# -path=.:../../dist/build/rgl/alltenses
-
-
--- (c) 2010 Ramona Enache under LGPL
-
-concrete WordsRon of Words = SentencesRon ** open
- SyntaxRon, ResRon, Prelude,
- (P = ParadigmsRon),
- (L = LexiconRon),
- BeschRon,
- ExtraRon in {
-
- flags coding=utf8 ;
-
- lin
-
--- kinds
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN L.cheese_N ;
- Chicken = mkCN (P.mkN "pui" "pui" P.masculine) ;
- Coffee = mkCN (P.mkN "cafea") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (P.mkN "carne" "cărnuri" "cărni") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (P.mkN "pizză") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (P.mkNR "ceai") ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- qualities
-
- Bad = L.bad_A ;
- Boring = P.mkA "plictisitor" "plictisitoare" "plictisitori" "plictisitoare" ;
- Cheap = P.mkA "ieftin" ;
- Cold = L.cold_A ;
- Delicious = P.mkA "delicios" "delcioasă" "delicioşi" "delicioase" ;
- Expensive = P.mkA "scump" "scumpă" "scumpi" "scumpe" ;
- Fresh = P.mkA "proaspăt" "proaspătă" "proaspeţi" "proaspete" ;
- Good = L.good_A ;
- Suspect = P.mkA "suspect" ;
- Warm = L.warm_A ;
-
--- places
-
- Airport = mkPlace (P.mkNR "aeroport") at_Prep ;
- AmusementPark = mkCNPlace (mkCN (mkCN (P.mkNR "parc")) (mkAdv by8means_Prep (mkNP (P.mkPN "distracții")))) in_Prep to_Prep;
- Bank = mkPlace (P.mkN "bancă" "bănci") at_Prep ;
- Bar = mkPlace (P.mkNR "bar") at_Prep ;
- Cafeteria = mkPlace (P.mkN "cantină" "cantine") in_Prep ;
- Center = mkCNPlace (mkCN (P.mkN "centru" "centre" )) in_Prep in_Prep;
- Church = mkPlace (P.mkN "biserică" "biserici") at_Prep ;
- Cinema = mkPlace (P.mkNR "cinematograf") at_Prep ;
- Disco = mkPlace (P.mkN "discotecă" "discoteci" ) at_Prep ;
- Hospital = mkPlace (P.mkN "spital") at_Prep ;
- Hotel = mkPlace (P.mkNR "hotel") at_Prep ;
- Museum = mkPlace (P.mkN "muzeu" "muzee") at_Prep ;
- Park = mkPlace (P.mkNR "parc") in_Prep ;
- Parking = mkPlace (P.mkN "parcare" "parcări") in_Prep ;
- Pharmacy = mkPlace (P.mkN "farmacie" "farmacii" P.feminine) at_Prep;
- PostOffice = mkPlace (P.mkN "poștă" "poște") at_Prep ;
- Pub = mkPlace (P.mkNR "pub") in_Prep ;
- Restaurant = mkPlace (P.mkN "restaurant") at_Prep ;
- School = mkPlace (P.mkN "şcoală" "şcoli") at_Prep ;
- Shop = mkPlace (P.mkN "magazin") at_Prep ;
- Station = mkPlace (P.mkN "gară" "gări") at_Prep ;
- Supermarket = mkPlace (P.mkNR "supermarket") at_Prep ;
- Theatre = mkPlace (P.mkN "teatru" "teatre") at_Prep ;
- Toilet = mkPlace (P.mkN "toaletă") at_Prep ;
- University = mkPlace (P.mkN "universitate") at_Prep ;
- Zoo = {name = mkCN (P.mkA "zoologic") (P.mkN "grădină" "grădini");
- to = to_Prep; at = at_Prep; isPl = False };
-
- CitRestaurant cit = mkCNPlace (mkCN cit.prop (P.mkN "restaurant" "restaurante")) in_Prep to_Prep;
-
--- currencies
-
- DanishCrown = mkCN (P.mkA "danez") (P.mkN "coroană") ;
- Dollar = mkCN (P.mkN "dolar" P.masculine) ;
- Euro = mkCN (P.mkN "euro" "euro" P.masculine) ;
- Lei = mkCN (P.mkN "leu" "lei") ;
- Leva = mkCN (P.mkN "levă" "leve") ;
- NorwegianCrown = mkCN (P.mkA "norvegian") (P.mkN "coroană") ;
- Pound = mkCN (P.mkA "sterlin") (P.mkN "liră") ;
- Rouble = mkCN (P.mkN "rublă" "ruble") ;
- SwedishCrown = mkCN (P.mkA "suedez") (P.mkN "coroană") ;
- Zloty = mkCN (P.mkN "zlot" P.masculine) ;
-
--- nationalities
-
- Belgian = mkCitizenshipRon (P.mkA "belgian" "belgiană" "belgieni" "belgiene") "belgian" "belgiancă" "belgieni" "belgience" ;
- Belgium = mkNP (P.mkPN "Belgia") ;
- Bulgarian = mkCompNat "bulgar" "Bulgaria" "bulgăresc" "bulgar" "bulgăroaică" "bulgari" "bulgăroaice";
- Catalan = mkSimpSimpNat "catalan" "Catalonia" ;
- Danish = mkSimpSimpNat "danez" "Danemarca" ;
- Dutch = mkSimpSimpNat "olandez" "Olanda" ;
- English = mkNat "englez" "Anglia" "englez" "englezoaică" "englezi" "englezoaice" ;
- Finnish = mkSimpSimpNat "finlandez" "Finlanda" ;
- Flemish = mkNP (P.mkPN "flamandă") ;
- French = mkCompNat "francez" "Franţa" "franțuzesc" "francez" "franțuzoaică" "francezi" "franțuzoaice";
- German = mkCompNat "german" "Germania" "nemțesc" "neamț" "nemțoaică" "nemți" "nemțoaice";
- Italian = mkSimpNat "italian" "Italia" "italian" "italiancă" "italieni" "italience" ;
- Norwegian = mkSimpSimpNat "norvegian" "Norvegia";
- Polish = mkSimpSimpNat "polonez" "Polonia" ;
- Romanian = mkNat "român" "România" "român" "româncă" "români" "românce" ;
- Russian = mkNat "rus" "Rusia" "rus" "rusoaică" "ruși" "rusoaice";
- Spanish = mkSimpSimpNat "spaniol" "Spania" ;
- Swedish = mkSimpSimpNat "suedez" "Suedia" ;
-
--- means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (P.mkN "autobuz" "autobuze") ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (P.mkNR "feribot") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (P.mkNR "metrou") ;
- Taxi = mkTransport (P.mkNR "taxi") ;
- Train = mkTransport (P.mkNR "tren") ;
- Tram = mkTransport (P.mkN "tramvai" "tramvaie") ;
-
- ByFoot = P.mkAdv "pe jos" ;
-
- HowFar place = mkQS (mkQCl how8much_IAdv (mkDestination place.name)) ;
- HowFarFrom x y = mkQS (mkQCl how8much_IAdv (mkNP (mkDestination y.name) (SyntaxRon.mkAdv from_Prep x.name))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl how8much_IAdv (mkNP (mkNP (mkDestination y.name) (SyntaxRon.mkAdv from_Prep x.name)) t)) ;
- HowFarBy y t = mkQS (mkQCl how8much_IAdv (mkNP (mkDestination y.name) t)) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name (mkDestination place.name)))) ;
-
-
--- actions
-
- AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (P.mkN "cameră")) (SyntaxRon.mkAdv for_Prep (mkNP num (P.mkN "persoană")))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (P.mkN "masa" "mese")) (SyntaxRon.mkAdv for_Prep (mkNP num (P.mkN "persoană")))) ;
- AHasName p name = mkCl p.name (P.mmkV2 (mkRVAcc (v_besch119 "numi")) (P.noPrep P.Nom)) name ;
- AHungry p = DatSubjCl p.name (mkVP (mkNP (P.mkN "foame"))) ;
- AIll p = mkCl p.name (P.mkA "bolnav") ;
- AKnow p = mkCl p.name (v_besch122 "şti") ;
- ALike p item = DatSubjCompCl p.name (mkVP (v_besch71 "plăcea")) item ;
- ALive p co =
- mkCl p.name (mkVP (mkVP (v_besch121 "locui")) (SyntaxRon.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (P.dirV2 (P.mkV "iubi")) q.name ;
- AMarried p = mkCl p.name (P.mkA "căsătorit") ;
- AReady p = mkCl p.name (P.mkA "gata" "gata" "gata" "gata") ;
- AScared p = mkCl p.name (P.mkA "speriat") ;
- ASpeak p lang = mkCl p.name (P.mmkV2 (P.mkV "vorbi") (P.noPrep P.Nom)) lang ;
- AThirsty p = DatSubjCl p.name (mkVP (mkNP (P.mkN "sete"))) ;
- ATired p = mkCl p.name (P.mkA "obosit") ;
- AUnderstand p = mkCl p.name (v_besch83 "înţelege") ;
- AWant p obj = mkCl p.name (P.mmkV2 (v_besch74 "vrea") (P.noPrep P.Nom)) obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl how_IAdv (AccSubjCl p.name (mkVP (v_besch29 "chema")))) ;
- QWhatAge p = mkQS (mkQCl (mkIP how8many_IDet L.year_N) p.name have_V2) ;
-
- PropOpen p = mkCl p.name open_A ;
- PropClosed p = mkCl p.name closed_A ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP open_A) d) ;
- PropClosedDate p d = mkCl p.name (mkVP (mkVP closed_A) d) ;
- PropOpenDay p d = mkCl p.name (mkVP (mkVP open_A) d.habitual) ;
- PropClosedDay p d = mkCl p.name (mkVP (mkVP closed_A) d.habitual) ;
-
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (v_besch18 "costa"))) ;
- ItCost item price = mkCl item (P.mmkV2 (v_besch18 "costa") (P.noPrep P.Nom)) price ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text {s = ("ne" ++ "vedem")}) (mkPhrase (mkUtt d)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text { s = ("ne" ++ "vedem")})
- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
- PSeeYouPlace p = mkText (lin Text {s = ("ne" ++ "vedem")}) (mkPhrase (mkUtt p.at)) ;
-
--- Relations are expressed as "my wife" or "the wife of my son", as defined by $xOf$
--- below. Languages with productive genitives can use an equivalent of
--- "my son's wife" for non-pronouns, as e.g. in English.
-
- Wife = xOf sing (P.mkN "soţie") ;
- Husband = xOf sing (P.mkN "soţ" "soţi") ;
- Son = xOf sing (P.mkN "fiu" "fii") ;
- Daughter = xOf sing (P.mkN "fiică" "fiice") ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay "luni" ;
- Tuesday = mkDay "marţi" ;
- Wednesday = mkDay "miercuri" ;
- Thursday = mkDay "joi" ;
- Friday = mkDay "vineri" ;
- Saturday = mkDay "sâmbătă" ;
- Sunday = mkDay "duminică" ;
-
- Tomorrow = P.mkAdv "mâine" ;
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (P.mkA "ieftin") ;
- TheMostExpensive = mkSuperl (P.mkA "scump") ;
- TheMostPopular = mkSuperl (P.mkA "popular") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
-
-
-
-oper
-
-closed_A : A = P.mkA "închis" ;
-open_A : A = P.mkA "deschis" ;
-
--- auxiliaries
-
- mkSimpSimpNat : Str -> Str -> NPNationalityRon = \nat, co ->
- mkSimpNat nat co nat (nat + "a") (nat + "i") (nat+"e");
-
- mkSimpNat : Str -> Str -> Str -> Str -> Str -> Str -> NPNationalityRon = \nat,co, citMS, citFS, citMP, citFP -> let adj = P.mkA nat in
- mkNPNationalityRon (mkNP (P.mkPN (nat+"a"))) (mkNP (P.mkPN co)) adj citMS citFS citMP citFP ;
-
- mkNat : Str -> Str -> Str -> Str -> Str -> Str -> NPNationalityRon = \nat,co, citMS, citFS, citMP, citFP -> let adj = P.mkA (nat+"esc") in
- mkNPNationalityRon (mkNP (P.mkPN (nat+"a"))) (mkNP (P.mkPN co)) adj citMS citFS citMP citFP ;
-
- mkCompNat : Str -> Str -> Str -> Str -> Str -> Str -> Str -> NPNationalityRon = \nat,co, adj, citMS, citFS, citMP, citFP -> let a = P.mkA adj in
- mkNPNationalityRon (mkNP (P.mkPN (nat+"a"))) (mkNP (P.mkPN co)) a citMS citFS citMP citFP ;
-
-
-
-mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day = mkNP (P.mkPN d P.Feminine) ;
- ad = {s = d; lock_Adv=<>} in
- mkNPDay day ad ad; ---- difference is enforced by additional constructions
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (refCN x) p ;
-
-
-
--- auxiliaries
-
-oper
- mkPlace : N -> Prep -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i -> {
- name = mkCN p ;
- at = i ; isPl = False ;
- to = to_Prep -- in Romanian, most of the time they would be the same
- } ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxRon.mkAdv with_Prep (mkNP the_Det n)
- } ;
-
- mkSuperl : A -> Det = \a -> mkDet the_Art (SyntaxRon.mkOrd a) ;
-
- mkDestination : NP -> NP = \np -> heavyNP {s = \\c => "pâna la"++np.indForm ;
- a = np.a; hasClit = HasRef False;
- ss = "pâna la"++np.indForm} ** {lock_NP =<>};
-
-}
diff --git a/examples/phrasebook/WordsRus.gf b/examples/phrasebook/WordsRus.gf
deleted file mode 100644
index 71459f848..000000000
--- a/examples/phrasebook/WordsRus.gf
+++ /dev/null
@@ -1,275 +0,0 @@
--- (C) 2009 Aarne Ranta under LGPL
-
-concrete WordsRus of Words = SentencesRus **
- open SyntaxRus, (P = ParadigmsRus), (L = LexiconRus), ExtraRus, (R = ResRus), Prelude in {
-
-flags coding = utf8 ;
-
- lin
-
--- kinds of food
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN L.cheese_N ;
- Chicken = mkCN (P.mkN "курица") ;
- Coffee = mkCN (P.mkIndeclinableNoun "кофе" P.masculine P.inanimate) ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (P.mkN "мясо") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (P.mkN "пицца") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (P.mkN "чай") ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- properties
-
-
- Bad = P.mkA "плохой" ;
- Cheap = P.mkA "дешевый" ;
- Boring = P.mkA "скучный" ;
- Cold = L.cold_A ;
- Delicious = P.mkA "вкусный" ;
- Expensive = P.mkA "дорогой" ;
- Fresh = P.mkA "свежий" ;
- Good = L.good_A ;
- Suspect = P.mkA "подозрительный" ;
- Warm = L.warm_A ;
-
-
-
--- places
-
- Airport = mkPlace "аэропорт" in_Prep ;
- AmusementPark = mkPlace2 "развлечения" "парк" in_Prep;
- Bank = mkPlace "банк" in_Prep ;
- Bar = mkPlace "бар" in_Prep ;
- Cafeteria = mkPlace "кафетерий" in_Prep ;
- Center = mkPlace "центр" in_Prep ;
- Church = mkPlace "церковь" in_Prep ;
- Cinema = mkPlace "кино" in_Prep ;
- Disco = mkPlace "дискотека" on_Prep ;
- Hospital = mkPlace "больница" in_Prep ;
- Hotel = mkPlace "отель" in_Prep ;
- Museum = mkPlace "музей" in_Prep ;
- Park = mkPlace "парк" in_Prep ;
- Parking = mkPlace "автостоянка" on_Prep ;
- Pharmacy = mkPlace "аптека" in_Prep ;
- PostOffice = mkPlace "почта" on_Prep ;
- Pub = mkPlace "паб" in_Prep ;
- Restaurant = mkPlace "ресторан" in_Prep ;
- Shop = mkPlace "магазин" in_Prep ;
- School = mkPlace "школа" in_Prep ;
- Station = mkPlace "станция" on_Prep ;
- Supermarket = mkPlace "супермаркет" in_Prep ;
- Theatre = mkPlace "театр" in_Prep ;
- Toilet = mkPlace "туалет" in_Prep ;
- University = mkPlace "университет" in_Prep ;
- Zoo = mkPlace "зоопарк" in_Prep ;
-
-
- CitRestaurant cit =
- mkCNPlace (mkCN cit (P.mkN "ресторан")) in_Prep to2_Prep ;
-
-
--- currencies
-
- DanishCrown = mkCN (P.mkA "датский") (P.mkN "крона" P.inanimate) ;
- Dollar = mkCN (P.mkN "доллар" P.inanimate) ;
- Euro = mkCN (P.mkIndeclinableNoun "евро" P.neuter P.inanimate) ;
- Lei = mkCN (P.mkN "лей" P.inanimate) ;
- Leva = mkCN (P.mkN "лев" P.inanimate) ;
- NorwegianCrown = mkCN (P.mkA "норвежский") (P.mkN "крона" P.inanimate) ;
- Pound = mkCN (P.mkN "фунт" P.inanimate);
- Rouble = mkCN (P.mkN "рубль" P.inanimate) ;
- SwedishCrown = mkCN (P.mkA "шведский") (P.mkN "крона" P.inanimate) ;
- Zloty = mkCN (P.mkN "злотый" P.inanimate) ;
-
-
--- Nationalities
-
--- Belgian = mkNat "бельгийский" (P.mkPN "Бельгия" P.feminine P.singular P.inanimate) ;
- Bulgarian = mkNat "болгарский" (P.mkPN "Болгария" P.feminine P.singular P.animate) ;
- Catalan = mkNat "каталонский" (P.mkPN "Каталония" P.feminine P.singular P.animate) ;
- Danish = mkNat "датский" (P.mkPN "Дания" P.feminine P.singular P.animate) ;
- Dutch = mkNat "нидерландский" (P.mkPN "Нидерланды" P.neuter P.plural P.inanimate) ;
- English = mkNat "английский" (P.mkPN "Англия" P.feminine P.singular P.animate) ;
- Finnish = mkNat "финский" (P.mkPN "Финляндия" P.feminine P.singular P.animate) ;
--- Flemish = mkNat "фландрийский" (P.mkPN "Фландрия" P.feminine P.singular P.animate) ;
- French = mkNat "французский" (P.mkPN "Франция" P.feminine P.singular P.animate) ;
- German = mkNat "немецкий" (P.mkPN "Германия" P.feminine P.singular P.animate) ;
- Italian = mkNat "итальянский" (P.mkPN "Италия" P.feminine P.singular P.animate) ;
- Norwegian = mkNat "норвежский" (P.mkPN "Норвегия" P.feminine P.singular P.animate) ;
- Polish = mkNat "польский" (P.mkPN "Польша" P.feminine P.singular P.animate) ;
- Romanian = mkNat "румынский" (P.mkPN "Румыния" P.feminine P.singular P.animate) ;
- Russian = mkNat "русский" (P.mkPN "Россия" P.feminine P.singular P.animate) ;
- Spanish = mkNat "испанский" (P.mkPN "Испания" P.feminine P.singular P.inanimate) ;
- Swedish = mkNat "шведский" (P.mkPN "Швеция" P.feminine P.singular P.animate) ;
-
-
--- Means of transportation
-
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (P.mkN "автобус") ;
- Car = mkTransport (P.mkN "автомобиль");
- Ferry = mkTransport (P.mkN "паром") ;
- Plane = mkTransport (P.mkN "самолет") ;
- Subway = mkTransport (P.mkIndeclinableNoun "метро" P.neuter P.inanimate) ;
- Taxi = mkTransport (P.mkIndeclinableNoun "такси" P.neuter P.inanimate) ;
- Tram = mkTransport (P.mkN "трамвай") ;
- Train = mkTransport (P.mkN "поезд") ;
-
- ByFoot = P.mkAdv "пешком" ;
-
-
-
--- actions
--- AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
- AHasAge p num = mkCl (mkVP be_V3 (mkNP num L.year_N) p.name) ;
- AHasName p name = mkCl (mkVP (P.mkV3 name_is_V "" "" P.nominative P.accusative) name p.name) ;
- AHasChildren p num = mkCl (mkVP have_V3 (mkNP num L.child_N) p.name) ;
- AHasRoom p num = mkCl (mkVP have2_V3
- (mkNP (mkNP a_Det (P.mkN "номер"))
- (SyntaxRus.mkAdv for_Prep (mkNP num (L.man_N)))) p.name) ;
- AHasTable p num = mkCl (mkVP have2_V3
- (mkNP (mkNP a_Det (P.mkN "стол"))
- (SyntaxRus.mkAdv for_Prep (mkNP num (L.man_N)))) p.name) ;
- AHungry p = mkCl p.name (P.mkA "голодный") ;
- AIll p = mkCl p.name (P.mkA "больной") ;
- AKnow p = mkCl p.name (P.regV P.imperfective P.first "зна" "ю" "знал" "знай" "знать" ) ;
- ALike p item = mkCl item (P.mkV2 (P.mkV P.imperfective "нравлюсь" "нравишься" "нравится" "нравимся" "нравитесь" "нравятся" "нравился" "нравься" "нравиться") [] P.dative) p.name ;
- ALive p co = mkCl p.name (mkVP (mkVP (P.regV P.imperfective P.firstE "жив" "у" "жил" "живи" "жить")) (SyntaxRus.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (P.dirV2 (P.regV P.imperfective P.second "люб" "лю" "любил" "люби" "любить" )) q.name ;
--- AMarried p = mkCl p.name (P.mkA "женатый") ;
- AMarried p = let status = case p.name.g of {
- R.PGen R.Masc => P.mkAdv "женат" ;
- _ => P.mkAdv "замужем"
- } in mkCl p.name status ;
- AReady p = mkCl p.name (P.mkA "готовый") ;
- AScared p = mkCl p.name (P.mkV P.imperfective "боюсь" "боишься" "боится" "боимся" "бойтесь" "боятся" "боялся" "бойся" "бояться") ;
- ASpeak p lang = mkCl p.name (P.mkV2 (P.regV P.imperfective P.secondA "говор" "ю" "говорил" "говори" "говорить") "на" P.prepositional) lang ;
- AThirsty p = mkCl p.name want_VV (mkVP (P.regV P.imperfective P.firstE "пь" "ю" "пил" "пей" "пить" )) ;
- ATired p = mkCl p.name (P.mkA "уставший" R.Rel) ;
- AUnderstand p = mkCl p.name (P.regV P.imperfective P.first "понима" "ю" "понимал" "понимай" "понимать") ;
- AWant p obj = mkCl p.name (P.dirV2 (P.regV P.imperfective P.mixed "хо" "чу" "хотел" "хоти" "хотеть")) obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP (P.mkV P.perfective "пошёл" "пошёл" "пошёл" "пошли" "пошли" "пошли" "пошёл" "пойди" "пойти")) place.to) ;
- --AWantGo p place = mkCl p.name want_VV (mkVP (mkVP (P.mkV P.imperfective "иду" "идёшь" "идёт" "идём" "идёте" "идут" "шёл" "иди" "идти")) place.to) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl how_IAdv (mkCl (mkVP (P.mkV2 name_is_V "" P.accusative) p.name))) ;
- QWhatAge p = mkQS (mkQCl (mkIP how8many_IDet L.year_N) p.name);
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item cost_V)) ;
- ItCost item price = mkCl item (P.mkV2 cost_V "" P.accusative) price ;
-
- 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) ;
-
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("увидимся"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p =
- mkText (lin Text (ss ("увидимся"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("увидимся")))
- (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ;
-
--- 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
--- "the wife of my son" for non-pronouns.
-
- Wife = xOf sing (P.mkN "жена" P.animate) ;
- Husband = xOf sing (P.mkN "муж" P.animate) ;
- Son = xOf sing (P.mkN "сын" P.animate) ;
- Daughter = xOf sing (P.mkN "дочь" "дочери" "дочери" "дочь" "дочерью" "дочери" "дочь" "дочери" "дочерей" "дочерям" "дочерей" "дочерьми" "дочерях" P.feminine P.animate) ;
--- Daughter = xOf sing E.daughter_N ;
- Children = xOf plur L.child_N ;
-
-
-
--- week days
-
- Monday = mkDay "понедельник" P.masculine ;
- Tuesday = mkDay "вторник" P.masculine ;
- Wednesday = mkDay "среда" P.feminine ;
- Thursday = mkDay "четверг" P.masculine ;
- Friday = mkDay "пятница" P.feminine ;
- Saturday = mkDay "суббота" P.feminine ;
- Sunday = mkDay "воскресенье" P.neuter ;
-
- Tomorrow = P.mkAdv "завтра" ;
-
--- modifiers of places
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (P.mkA "дешевый") ;
- TheMostExpensive = mkSuperl (P.mkA "дорогой") ;
- TheMostPopular = mkSuperl (P.mkA "популярный") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
--- transports
-
- HowFar place = mkQS (mkQCl far_IAdv place.name) ;
- HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP y.name (SyntaxRus.mkAdv from_Prep x.name))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxRus.mkAdv from_Prep x.name)) t)) ;
- HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP y.name t)) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
-
-
- oper
- mkNat : Str -> PN -> NPNationality = \la,co ->
- mkNPNationality (mkNP (mkCN (P.mkA la) (P.mkN "язык"))) (mkNP co) (P.mkA la) ;
-
- mkDay : Str -> P.Gender -> {name : NP ; point : Adv ; habitual : Adv} =
- \d,g -> mkNPDay (mkNP (P.mkPN d g P.singular P.inanimate)) (mkAdv (P.mkPrep "в" P.accusative) (mkNP (P.mkPN d g P.singular P.inanimate)))
- ---- (mkAdv on_Prep (mkNP (P.mkPN d)))
- (mkAdv (P.mkPrep "по" P.dative) (mkNP a_Quant plNum (mkCN (P.mkN d)))) ;
-
--- mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep} = \p,i ->
--- mkCNPlace (mkCN p) (P.mkPrep i P.prepositional) to_Prep ;
- mkPlace : Str -> Prep -> {name : CN ; at : Prep ; to : Prep ; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN (P.mkN p)) i to_Prep;
-
- mkPlace2 : Str -> Str -> Prep -> {name : CN ; at : Prep ; to : Prep ; isPl : Bool} = \p,p2,i ->
- mkCNPlace (mkCN (P.mkN2 (P.mkN p2)) (mkNP (P.mkN p))) i to_Prep;
-
- open_A = P.mkA "открытый";
- closed_A = P.mkA "закрытый";
-
- cost_V = P.regV P.imperfective P.secondA "сто" "ю" "стоил" "стой" "стоить" ;
-
- name_is_V = P.mkV P.imperfective "зову" "зовëшь" "зовут" "зовëм" "зовëте" "зовут" "звал" "зови" "звать" ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n (mkCN x) (\a,b,c -> mkNP (mkNP the_Quant a c) (SyntaxRus.mkAdv possess_Prep b)) p ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxRus.mkAdv on_Prep (mkNP the_Det n)
- } ;
-
- far_IAdv = ss "как далеко" ** {lock_IAdv = <>} ;
- long_IAdv = ss "как долго" ** {lock_IAdv = <>};
-
- mkSuperl : A -> Det = \a -> SyntaxRus.mkDet the_Art (SyntaxRus.mkOrd a) ;
-
-}
diff --git a/examples/phrasebook/WordsSnd.gf b/examples/phrasebook/WordsSnd.gf
deleted file mode 100644
index 99f37dcf8..000000000
--- a/examples/phrasebook/WordsSnd.gf
+++ /dev/null
@@ -1,281 +0,0 @@
---2 Implementations of Words, with English as example
-
-concrete WordsSnd of Words = SentencesSnd **
- open
- SyntaxSnd,
--- CommonHindustani,
- ParadigmsSnd,
- (L = LexiconSnd),
- (P = ParadigmsSnd),
- MorphoSnd,
--- IrregSnd,
- ExtraSnd,
- Prelude in {
-flags coding = utf8 ;
- lin
-
--- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN03 "پنير") ;
- Chicken = mkCN (mkN04 "ڪڪڙ") ;
- Coffee = mkCN (mkN03 "ڪافي") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN03 "گوشت") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN12 "پيزا") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN09 "چانھ") ;
- Water = mkCN L.water_N;
- Wine = mkCN L.wine_N ;
-
--- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
-
- Bad = L.bad_A ;
- Boring = mkA "فضول" ;
- Cheap = mkA "سستو" ;
- Cold = L.cold_A ;
- Delicious = mkA "ذائقيدار" ;
- Expensive = mkA "مهانگو" ;
- Fresh = mkA "تازو" ;
- Good = L.good_A ;
- Suspect = mkA "برو" ;
- Warm = L.warm_A ;
-
--- Places require different prepositions to express location; in some languages
--- also the directional preposition varies, but in English we use $to$, as
--- defined by $mkPlace$.
-
- Airport = mkPlace "هوائي اڏو" "تي" ;
--- AmusementPark = mkCompoundPlace "اميوزيم" "پارڪ" "۾" ;
- Bank = mkPlace "بئنڪ" "۾" ;
- Bar = mkPlace "بار" "۾" ;
- Cafeteria = mkPlace "ڪينٽين" "۾" ;
- Center = mkPlace "سينٽر" "تي" ;
- Cinema = mkPlace "سينيما" "۾" ;
- Church = mkPlace "چرچ" "۾" ;
- Disco = mkPlace "ڊسڪو" "۾" ;
- Hospital = mkPlace "اسپتال" "۾" ;
- Hotel = mkPlace "هوٽل" "۾" ;
- Museum = mkPlace "ميوزيم" "۾" ;
- Park = mkPlace "پارڪ" "۾" ;
- Parking = mkCompoundPlace "ڪار" "پارڪ" "۾" ;
- Pharmacy = mkPlace "ميڊيڪل اسٽور" "تي" ;
- PostOffice = mkCompoundPlace "پوسٽ" "آفيس" "۾" ;
- Pub = mkPlace "پب" "۾" ;
- Restaurant = mkPlace "هوٽل" "۾" ;
- School = mkPlace "اسڪول" "۾" ;
- Shop = mkPlaceFem "دڪان" "۾" Fem;
- Station = mkPlace "اسٽيشن" "تي" ;
- Supermarket = mkPlace "سپر مارڪيٽ" "۾" ;
- Theatre = mkPlace "ٿيٽر" "۾" ;
- Toilet = mkPlace "ڪاڪوس" "۾" ;
- University = mkPlaceFem "يونيورسٽي" "۾" Fem;
- Zoo = mkPlace "راڻي باغ" "۾" ;
-
--- CitRestaurant cit = mkCNPlace (mkCN cit (mkN09 "هوٽل")) in_Prep to_Prep ;
-
-
--- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
-
- DanishCrown = mkCN (mkA "ڊينش") (mkCN (mkN03 "ڪراؤن")) | mkCN (mkN03 "ڪراؤن") ;
- Dollar = mkCN (mkN03 "ڊالر") ;
- Euro = mkCN (mkN12 "يورو") ; -- to prevent euroes
- Lei = mkCN (mkN03 "لي") ;
- Leva = mkCN (mkN12 "ليوا") ;
- NorwegianCrown = mkCN (mkA "نارويجين") (mkCN (mkN03 "ڪراؤن")) | mkCN (mkN03 "ڪراؤن") ;
- Pound = mkCN (mkN03 "پاؤنڊ") ;
- Rouble = mkCN (mkN03 "روبل") ;
- SwedishCrown = mkCN (mkA "سويڊش") (mkCN (mkN03 "ڪراؤن")) | mkCN (mkN03 "ڪراؤن") ;
- Zloty = mkCN (mkN03 "زلوٽي") ;
-
--- Nationalities
-
- Belgian = mkA "بيلجين" ;
- Belgium = mkNP (mkPN "بيلجيم") ;
- Bulgarian = mkNat "بلغارين" "بلغاريا" ;
--- Catalan = mkNPNationality (mkNP (mkPN "كیٹالان")) (mkNP (mkPN "كاٹالان")) (mkA "كاٹالانین") ;
- Danish = mkNat "ڊينش" "ڊينمارڪ" ;
--- Dutch = mkNPNationality (mkNP (mkPN "ڊچ")) (mkNP the_Quant (mkN14 "نيدرلئنڊ")) (mkA "ڊچ") ;
- English = mkNat "انگلش" "انگلئنڊ" ;
- Finnish = mkNat "فنش" "فنلئنڊ" ;
- Flemish = mkNP (mkPN "فليمش") ;
- French = mkNat "فرانسيسي" "فرانس" ;
- German = mkNat "جرمن" "جرمني" ;
- Italian = mkNat "اٽالوي" "اٽلي" ;
- Norwegian = mkNat "نارويجين" "ناروي" ;
- Polish = mkNat "پولش" "پولئنڊ" ;
- Romanian = mkNat "رومانين" "رومانيا" ;
- Russian = mkNat "روسي" "روس" ;
- Spanish = mkNat "سپيني" "سپين" ;
- Swedish = mkNat "سويڊش" "سويڊن" ;
-
--- Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN09 "بس" ) ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN09 "فيري") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN12 "سب وي") ;
- Taxi = mkTransport (mkN09 "ٽئڪسي") ;
- Train = mkTransport (mkN09 "ريل گاڏي") ;
- Tram = mkTransport (mkN09 "ٽرام") ;
-
- ByFoot = P.mkAdv "پيادو" ;
-
--- Actions: the predication patterns are very often language-dependent.
-
--- AHasAge p num = mkCl p.name (mkNP (mkNP num L.year_N) (ParadigmsSnd.mkAdv "جو"));
- AHasAge p num = mkCl p.name (mkNP num (mkCN L.year_N));
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
--- AHasRoom p num = mkCl p.name have_V2
--- (mkNP (mkNP a_Det (mkN01 "ڪمرو")) (SyntaxSnd.mkAdv for_Prep (mkNP num (mkN03 "شخص")))) ;
--- AHasTable p num = mkCl p.name have_V2
- -- (mkNP (mkNP a_Det (mkN04 "ميز")) (SyntaxSnd.mkAdv for_Prep (mkNP num (mkN03 "شخص")))) ;
- AHasName p name = mkCl (nameOf p) name ;
- AHungry p = mkCl p.name (mkA "بکيو") ;
- AIll p = mkCl p.name (mkA "بيمار") ;
- AKnow p = mkCl p.name (mkV "ڄاڻڻ") ;
- ALike p item = mkCl p.name (L.like_V2) item ;
- ALive p co = mkCl p.name (mkVP (mkVP (L.live_V)) (SyntaxSnd.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (L.love_V2) q.name ;
- AMarried p = mkCl p.name (mkA "پرڻيل") ;
- AReady p = mkCl p.name (mkA "تيار") ;
- AScared p = mkCl p.name (P.mkA "ڊنل") ;
- ASpeak p lang = mkCl p.name L.speak_V2 lang ;
- AThirsty p = mkCl p.name (mkA "اُڃيو") ;
- ATired p = mkCl p.name (P.mkA "ٿڪل") ;
- AUnderstand p = mkCl p.name (mkV "سمجھڻ") ;
- AWant p obj = mkCl p.name (mkV2 (mkV "چاهڻ")) obj ;
--- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.name) ;
--- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
--- miscellaneous
-
--- QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
- QWhatName p = mkQS (mkQCl what_IAdv (SyntaxSnd.mkNP p.poss (mkCN (mkN01 "نالو")))) ;
--- QWhatAge p = mkQS (mkQCl (mkCl (mkNP (modQuant p.poss)) (mkAdv "ڄمار"))) ;
- QWhatAge p = mkQS (mkQCl howMuch_IAdv (mkNP (modQuant p.poss) (mkCN (mkN09 "ڄمار")))) ;
- HowMuchCost item = mkQS (mkQCl (mkCl (modNP item) (mkAdv ["جو ملھ"]))) ;
--- HowMuchCost item = mkQS (mkQCl howMuch_IAdv (mkNP cost_Predet (modNP item))) ;
- ItCost item price = mkCl item (mkV2 (mkV "ملھ")) price ;
-
- PropOpen p = mkCl p.name open_Adv ;
- PropClosed p = mkCl p.name closed_Adv ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP d) open_Adv) ;
- PropClosedDate p d = mkCl p.name (mkVP (mkVP d) closed_Adv) ;
- PropOpenDay p d = mkCl p.name (mkVP (mkVP d.habitual) open_Adv);
- PropClosedDay p d = mkCl p.name (mkVP (mkVP d.habitual) closed_Adv) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (mkPhrase (mkUtt d)) (lin Text (Prelude.ss ("ملون ٿا"))) ;
- PSeeYouPlace p = mkText (mkPhrase (mkUtt p.at)) (lin Text (Prelude.ss ("ملون ٿا"))) ;
- PSeeYouPlaceDate p d =
- mkText (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d)))
- (lin Text (Prelude.ss ("ملون ٿا"))) ;
-
--- Relations are expressed as "می وiفع" or "می سon'س وiفع", as defined by $xOf$
--- below. Languages without productive genitives must use an equivalent of
--- "تہع وiفع oف می سoن" for non-pronouns.
-
- Wife = xOf ssing (mkN04 "زال") ;
- Husband = xOf ssing (mkN03 "مڙس") ;
- Son = xOf ssing (mkN03 "پٽ") ;
- Daughter = xOf ssing (mkN07 "ڌي") ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay "سومر" ;
- Tuesday = mkDay "اڱارو" ;
- Wednesday = mkDay "اربع" ;
- Thursday = mkDay "خميس" ;
- Friday = mkDay "جمعو" ;
- Saturday = mkDay "ڇنڇر" ;
- Sunday = mkDay "آچر" ;
-
- Tomorrow = P.mkAdv "سڀاڻي" ;
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "سستو") ;
- TheMostExpensive = mkSuperl (mkA "مهانگو") ;
- TheMostPopular = mkSuperl (mkA "مشهور") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
--- transports
-
-
- HowFar place = mkQS (mkQCl far_IAdv place.name) ;
- HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP y.name (SyntaxSnd.mkAdv from_Prep x.name))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxSnd.mkAdv from_Prep x.name)) t)) ;
- HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP y.name t)) ;
-
--- WhichTranspPlace trans place =
--- mkQS (mkQCl (SyntaxSnd.mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
-
--- auxiliaries
-
- oper
-
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
--- let day = mkNP (mkPN d) in
--- let day = (mkNP (mkCN (mkN14 d))) in
- mkNPDay (mkNP (mkCN (mkN14 d))) (SyntaxSnd.mkAdv to_Prep (mkNP (mkCN (mkN14 d))))
- (SyntaxSnd.mkAdv to_Prep (mkNP (mkCN (mkN14 d)))) ; --changed from plNum to sgNum
-
- mkCompoundPlace : Str -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \comp, p, i ->
--- mkCNPlace (mkCN (mkN14 comp (mkN14 p))) (P.mkPrep i) to_Prep ;
- mkCNPlace (mkCN (mkN14 (comp++p))) (P.mkPrep i) to_Prep ;
-
- mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN (mkN14 p)) (P.mkPrep i) to_Prep ;
- mkPlaceFem : Str -> Str -> Gender -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i,g ->
- mkCNPlace (mkCN (mkN14 p)) (P.mkPrep i) to_Prep ;
-
- open_Adv = mkAdv "کلي";
- closed_Adv = mkAdv "بند" ;
-
- xOf : SentencesSnd.GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
-
- nameOf : NPPerson -> NP = \p -> (xOf ssing (mkN01 "نالو") p).name ;
- ssing = False ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxSnd.mkAdv by8means_Prep (mkNP n)
- } ;
-
--- mkSuperl : A -> Det = \a -> SyntaxSnd.mkDet the_Art (SyntaxSnd.mkOrd a) ;
- mkSuperl : A -> Det = \a -> lin Det { s = \\n,g => a.s ! n ! g ! Dir ; n = Sg } ;
-
- far_IAdv = ExtraSnd.IAdvAdv (mkAdv "پري") ;
- what_IAdv = lin IAdv {s = "ڇا"} ;
- howMuch_IAdv = lin IAdv {s = "ڪيترو"} ;
--- cost_Predet = lin Predet {s = ["جو ملھ"]} ;
--------------------
-modN : N -> N = \noun -> lin N {s = \\n,c =>noun.s!n!c++"جو" ; g =noun.g} ;
-modQuant : Quant -> Quant = \q -> lin Quant {s = \\n,g,c => q.s ! n ! Fem ! c ; a = q.a};
-modNP : NP -> NP = \np -> lin NP {s = \\_ => np.s ! NPC Obl ; a = np.a ; isPron = np.isPron};
-
-}
diff --git a/examples/phrasebook/WordsSpa.gf b/examples/phrasebook/WordsSpa.gf
deleted file mode 100644
index fd54e6282..000000000
--- a/examples/phrasebook/WordsSpa.gf
+++ /dev/null
@@ -1,301 +0,0 @@
--- (c) 2010 Aarne Ranta and Olga Caprotti under LGPL
-
-concrete WordsSpa of Words = SentencesSpa ** open
- SyntaxSpa,
- BeschSpa,
- (E = ExtraSpa),
- (L = LexiconSpa),
- (P = ParadigmsSpa),
- (S = SyntaxSpa),
- ParadigmsSpa,
- StructuralSpa,
- Prelude in {
-
-flags coding = utf8 ;
-
-lin
-
--- kinds
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "queso") ;
- Chicken = mkCN (mkN "pollo") ;
- Coffee = mkCN (mkN "café" "cafés" masculine) ;
- Fish = mkCN (mkN "pescado") ;
- Meat = mkCN (mkN "carne" feminine) ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "pizza") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "té" "tés" masculine) ;
- Water = mkCN (mkN "agua") ;
- Wine = mkCN L.wine_N ;
-
--- properties
-
- Bad = L.bad_A ;
- Boring = mkA "aburrido" ;
- Cheap = cheap_A ;
- Cold = L.cold_A ;
- Delicious = mkA "delicioso" ;
- Expensive = expensive_A ;
- Fresh = mkA "fresco" ;
- Good = L.good_A ;
- Warm = mkA "caliente" ;
- Suspect = mkA "sospechoso" ;
-
--- places
-
- Airport = mkPlace (mkN "aeropuerto") in_Prep ;
- AmusementPark = mkPlace (compN (mkN "parque") ["de atracciones"]) in_Prep ;
- Bank = mkPlace (mkN "banco") in_Prep ;
- Bar = mkPlace (mkN "bar") in_Prep ;
- Cafeteria = mkPlace (mkN "cafetería") in_Prep;
- Center = mkPlace (mkN "centro") in_Prep;
- Church = mkPlace (mkN "iglesia") in_Prep ;
- Cinema = mkPlace (mkN "cine") in_Prep ;
- Disco = mkPlace (mkN "discoteca") in_Prep;
- Hospital = mkPlace (mkN "hospital") in_Prep ;
- Hotel = mkPlace (mkN "hotel") in_Prep ;
- Museum = mkPlace (mkN "museo") in_Prep ;
- Park = mkPlace (mkN "parque") in_Prep ;
- Parking = mkPlace (mkN "aparcamiento") in_Prep ;
- Pharmacy = mkPlace (mkN "farmacia") in_Prep ;
- PostOffice = mkPlace (compN (mkN "oficina") ["de correos"]) in_Prep ;
- Pub = mkPlace (mkN "pub" "pubs" masculine) in_Prep ;
- Restaurant = mkPlace (mkN "restaurante") in_Prep ;
- School = mkPlace (mkN "escuela") in_Prep ;
- Shop = mkPlace (mkN "tienda") in_Prep ;
- Station = mkPlace (mkN "estación" feminine) in_Prep ;
- Supermarket = mkPlace (mkN "supermercado") in_Prep ;
- Theatre = mkPlace (mkN "teatro") in_Prep ;
- Toilet = mkPlace (mkN "baño") in_Prep ;
- University = mkPlace (mkN "universidad" feminine) in_Prep ;
- Zoo = mkPlace (mkN "zoo") in_Prep ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit (mkN "restaurante")) in_Prep to_Prep ;
-
--- currencies
- DanishCrown = mkCN (mkA "daneso") (mkN "corona") | mkCN (mkN "corona") ;
- Dollar = mkCN (mkN "dólar") ;
- Euro = mkCN (mkN "euro") ;
- Lei = mkCN (mkN "leu") ;
- Leva = mkCN (mkN "lev" "lev" masculine) ;
- NorwegianCrown = mkCN (mkA "noruego") (mkN "corona") | mkCN (mkN "corona") ;
- Pound = mkCN (mkN "libra") | mkCN (mkA "esterlino") (mkN "libra") ;
- Rouble = mkCN (mkN "rublo") ;
- SwedishCrown = mkCN (mkA "sueco") (mkN "corona") | mkCN (mkN "corona") ;
- Zloty = mkCN (mkN "zloty" "zlotys" masculine) ;
-
--- nationalities
-
- Belgian = mkA "belga" ;
- Belgium = mkNP (mkPN "Bélgica") ;
- Bulgarian = mkNat (mkA "búlgaro") "búlgaro" "Bulgaria" ;
- Catalan = mkNat (mkA "catalán") "catalán" "Cataluña" ;
- Danish = mkNat (mkA "danés") "danés" "Dinamarca" ;
- Dutch = mkNat (mkA "neerlandés") "neerlandés" "Holanda" ;
- English = mkNat (mkA "inglés") "inglés" "Inglaterra" ;
- Finnish = mkNat (mkA "finlandés") "finés" "Finlandia" ;
- Flemish = mkNP (mkPN "flamenco") ;
- French = mkNat (mkA "francés") "francés" "Francia" ;
- German = mkNat (mkA "alemán") "alemán" "Alemania" ;
- Italian = mkNat (mkA "italiano") "italiano" "Italia" ;
- Norwegian = mkNat (mkA "noruego") "noruego" "Noruega" ;
- Polish = mkNat (mkA "polaco") "polaco" "Polonia" ;
- Romanian = mkNat (mkA "rumano") "rumano" "Rumanía" ;
- Russian = mkNat (mkA "ruso") "ruso" "Rusia" ;
- Spanish = mkNat (mkA "español" "española") "español" "España" ;
- Swedish = mkNat (mkA "sueco") "sueco" "Suecia" ;
-
--- means of transportation
-
- Bike = mkTransport (mkN "bicicleta") ;
- Bus = mkTransport (mkN "autobús" "autobuses" masculine) ;
- Car = mkTransport L.car_N | mkTransport (mkN "coche") ;
- Ferry = mkTransport (mkN "ferry") | mkTransport (mkN "transbordador") ;
- Plane = mkTransport (mkN "avión" "aviones" masculine) ;
- Subway = mkTransport (mkN "metro") ;
- Taxi = mkTransport (mkN "taxi" masculine) ;
- Train = mkTransport (mkN "tren") ;
- Tram = mkTransport (mkN "tranvía") ;
-
- ByFoot = P.mkAdv "a pie" ;
-
--- actions
-
- AHasAge p num = mkCl p.name have_V2 (mkNP num L.year_N) ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num (mkN "hijo")) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "habitación" feminine)) (S.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "mesa")) (S.mkAdv for_Prep (mkNP num (mkN "persona")))) ;
- AHasName p name = mkCl p.name (mkV2 (reflV (mkV "llamar"))) name ;
- AHungry p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "hambre" feminine))) ;
- AIll p = mkCl p.name stateCopula (mkAP (mkA "enfermo")) ;
- AKnow p = mkCl p.name (mkV (saber_71 "saber")) ;
- ALike p item = mkCl item (mkV2 (mkV ("gustar")) dative) p.name ;
- ALive p co = mkCl p.name (mkVP (mkVP (mkV "vivir")) (S.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (mkV2 (mkV "amar")) q.name ;
- AMarried p = mkCl p.name stateCopula (mkAP (mkA "casado")) ;
- AReady p = mkCl p.name stateCopula (mkAP (mkA "listo")) ;
- AScared p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "miedo"))) ;
- ASpeak p lang = mkCl p.name (mkV2 (mkV "hablar")) lang ;
- AThirsty p = mkCl p.name (E.ComplCN have_V2 (mkCN (mkN "sed" feminine))) ;
- ATired p = mkCl p.name stateCopula (mkAP (mkA "cansado")) ;
- AUnderstand p = mkCl p.name (mkV (defender_29 "entender")) ;
- AWant p obj = mkCl p.name (mkV2 (mkV (querer_64 "querer"))) obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl how_IAdv (mkCl p.name (reflV (mkV "llamar")))) ;
- QWhatAge p = mkQS (mkQCl (mkIP how8many_IDet L.year_N) p.name have_V2) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "costar" "cuesto"))) ;
- ItCost item price = mkCl item (mkV2 (mkV "costar" "cuesto")) price ;
-
- PropOpen p = mkCl p.name stateCopula (mkAP open_A) ;
- PropClosed p = mkCl p.name stateCopula (mkAP closed_A) ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP stateCopula (mkAP open_A)) d) ;
- PropClosedDate p d = mkCl p.name (mkVP (mkVP stateCopula (mkAP closed_A)) d) ;
- PropOpenDay p d = mkCl p.name (mkVP (mkVP stateCopula (mkAP open_A)) d.habitual) ;
- PropClosedDay p d = mkCl p.name (mkVP (mkVP stateCopula (mkAP closed_A)) d.habitual) ;
-
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("nos vemos"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("nos vemos"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("nos vemos")))
- (mkText (mkPhrase (mkUtt d)) (mkPhrase (mkUtt p.at))) ;
-
--- Relations are expressed as "my wife" or "the wife of my son", as defined by $xOf$
--- below. Languages with productive genitives can use an equivalent of
--- "my son's wife" for non-pronouns, as e.g. in English.
-
- Wife = xOf sing (mkN "esposa" feminine) ;
- Husband = xOf sing (mkN "marido" masculine) ;
- Son = xOf sing (mkN "hijo" masculine) ;
- Daughter = xOf sing (mkN "hija" feminine) ;
- Children = xOf plur (mkN "hijo") ;
-
--- week days
-
- Monday = mkDay "lunes" ;
- Tuesday = mkDay "martes" ;
- Wednesday = mkDay "miércoles" ;
- Thursday = mkDay "jueves" ;
- Friday = mkDay "viernes" ;
- Saturday = mkDay "sábado" ;
- Sunday = mkDay "domingo" ;
-
- Tomorrow = P.mkAdv "mañana" ;
-
-
--- transports
-
- --a qué distancia está PLACE
- HowFar place = mkQS (mkQCl what_distance_IAdv (mkCl place.name placeCopula) );
-
- --a qué distancia está X de Y
- HowFarFrom x y = mkQS (mkQCl what_distance_IAdv
- (mkCl y.name (mkVP (mkVP placeCopula)
- (S.mkAdv from_Prep x.name))));
-
- -- "a qué distancia está X de Y con T"
- -- x,y: Place ; t: ByTransport
- HowFarFromBy x y t = mkQS (mkQCl what_distance_IAdv
- (mkCl y.name (mkVP
- (mkVP (mkVP placeCopula)
- (S.mkAdv from_Prep x.name))
- t)));
-
- -- "a qué distancia está Y con T"
- -- y: Place ; t: ByTransport
- HowFarBy y t = mkQS (mkQCl what_distance_IAdv
- (mkCl y.name (mkVP (mkVP placeCopula) t)));
-
-oper
- what_distance_IAdv = ss "a qué distancia"**{lock_IAdv=<>};
- placeCopula = mkV (estar_2 "estar") ;
-
-lin
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name (SyntaxSpa.mkAdv for_Prep place.name)))) ;
-
--- modifiers of places
-
- ------------------------------------------------------------------
- -- Common adjectives like "good" or "bad" come before the noun,
- -- but most of them come after. So, when making a superlative
- -- place, we have to know in which place it belongs.
- --
- -- The lincat of Superlative is defined in SentencesSpa as a type
- -- OrdSuperlative, consisting of {ord: Ord ; isPre: Bool}.
- --
- -- The function mkSuperl returns an OrdSuperlative. SuperlPlace
- -- takes two parameters, OrdSuperlative and PlaceKind, and gives
- -- them to placeNPSuperl (defined in SentencesSpa).
- -- In placeNPSuperl the value of isPre determines whether the
- -- superlative is placed before or after the noun.
- ------------------------------------------------------------------
-
- TheBest = mkSuperl L.good_A True;
- TheClosest = mkSuperl L.near_A False;
- TheCheapest = mkSuperl cheap_A False ;
- TheMostExpensive = mkSuperl expensive_A False ;
- TheMostPopular =
- let popular = mkA "popular"
- in mkSuperl popular False ;
- TheWorst = mkSuperl L.bad_A True ;
-
- SuperlPlace sup p = placeNPSuperl sup p ;
-
-
--- auxiliaries
-
- oper
- mkNat : A -> Str -> Str -> NPNationality = \nat,lang,co ->
- mkNPNationality (mkNP (mkPN lang)) (mkNP (mkPN co)) nat ;
-
-
- -- not the most elegant solution, but it works
- mkDay : Str -> NPDay = \d ->
- case last d of {
- "s" => mkNPDay (mkNP (mkN d)) (P.mkAdv d) (P.mkAdv ("los" ++ d)) ;
- _ => mkNPDay (mkNP (mkN d)) (P.mkAdv d) (P.mkAdv ("los" ++ d + "s"))
- } ;
-
- mkPlace : N -> Prep -> CNPlace = \p,i ->
- mkCNPlace (mkCN p) i dative ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = S.mkAdv with_Prep (mkNP n)
- } ;
-
- mkSuperl : A -> Bool -> OrdSuperlative = \a,bool ->
- let ord : Ord = S.mkOrd a in {
- ord = ord ;
- isPre = bool ;
- } ;
-
-
- -- for adjectives that express temporary state
- stateCopula = mkVA (mkV (estar_2 "estar")) ;
-
- cheap_A = mkA "barato" ;
- expensive_A = mkA "caro" ;
- open_A = mkA "abierto" ;
- closed_A = mkA "cerrado" ;
-
-}
diff --git a/examples/phrasebook/WordsSwe.gf b/examples/phrasebook/WordsSwe.gf
deleted file mode 100644
index ce22964c7..000000000
--- a/examples/phrasebook/WordsSwe.gf
+++ /dev/null
@@ -1,302 +0,0 @@
--- (c) 2010 Aarne Ranta under LGPL
---# -coding=latin1
-
-concrete WordsSwe of Words = SentencesSwe **
- open SyntaxSwe, ParadigmsSwe, IrregSwe, (L = LexiconSwe), ExtraSwe, Prelude in {
-
- lin
-
--- kinds of food
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "ost") ;
- Chicken = mkCN (mkN "kyckling") ;
- Coffee = mkCN (mkN "kaffe" neutrum) ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "ktt" "ktt") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "pizza") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "te" neutrum) ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- properties
-
- Bad = L.bad_A ;
- Cheap = mkA "billig" ;
- Boring = mkA "trkig" ;
- Cold = L.cold_A ;
- Delicious = mkA "lcker" ;
- Expensive = mkA "dyr" ;
- Fresh = mkA "frsk" ;
- Good = L.good_A ;
- Suspect = mkA "suspekt" "suspekt" ;
- Warm = L.warm_A ;
-
--- places
-
- Airport = mkPlace (mkN "flygplats" "flygplatser") "p" ;
- AmusementPark = mkPlace (mkN "njespark" "njesparker") "i" ;
- Bank = mkPlace (mkN "bank" "banker") "i" ;
- Bar = mkPlace (mkN "bar" "barer") "i" ;
- Cafeteria = mkPlace (mkN "caf" "caf") "p" ;
- Center = mkPlace (mkN "innerstad" "innerstder") "p" ; ----
- Church = mkPlace (mkN "kyrka") "i" ;
- Cinema = mkPlace (mkN "bio" "bion" "biografer" "biograferna") "p" ; ---- ?
- Disco = mkPlace (mkN "diskotek" "diskotek") "p" ;
- Hospital = mkPlace (mkN "sjukhus" "sjukhus") "p" ;
- Hotel = mkPlace (mkN "hotell" "hotell") "p" ;
- Museum = mkPlace (mkN "museum" "museet" "museer" "museerna") "p" ;
- Park = mkPlace (mkN "park" "parker") "i" ;
- Parking = mkPlace (mkN "parkering") "p" ;
- Pharmacy = mkPlace (mkN "apotek" "apotek") "i" ;
- PostOffice = mkPlace (mkN "post" "poster") "p" ;
- Pub = mkPlace (mkN "pub") "p" ;
- Restaurant = mkPlace (mkN "restaurang" "restauranger") "p" ;
- Shop = mkPlace (mkN "affr" "affrer") "i" ;
- School = mkPlace (mkN "skola") "p" ;
- Station = mkPlace (mkN "station" "stationer") "p" ;
- Supermarket = mkPlace (mkN "snabbkp" "snabbkp") "p" ;
- Theatre = mkPlace (mkN "teater" "teatrar") "p" ;
- Toilet = mkPlace2 (mkN "toalett" "toaletter") "p" "p" ;
- University = mkPlace (mkN "universitet" "universitet") "p" ;
- Zoo = mkPlace (mkN "djurpark" "djurparker") "i" ;
-
- CitRestaurant cit =
- mkCNPlace (mkCN cit (mkN "restaurang" "restauranger")) on_Prep to_Prep ;
-
--- currencies
-
- DanishCrown = mkCN (mkA "dansk") (mkN "krona") | mkCN (mkN "krona") ;
- Dollar = mkCN (mkN "dollar" "dollar") ;
- Euro = mkCN (mkN "euro" "euro") ;
- Lei = mkCN (mkN "lei" "lei") ;
- Leva = mkCN (mkN "leva" "leva") ;
- NorwegianCrown = mkCN (mkA "norsk") (mkN "krona") | mkCN (mkN "krona") ;
- Pound = mkCN (mkN "pund" "pund") ; ---- ett pund ?
- Rouble = mkCN (mkN "rubel" "rubeln" "rubel" "rubeln") ; ---- ?
- Rupee = mkCN (mkN "rupee" "rupee") ; ----
- SwedishCrown = mkCN (mkA "svensk") (mkN "krona") | mkCN (mkN "krona") ;
- Zloty = mkCN (mkN "zloty" "zloty") ;
- Yuan = mkCN (mkN "yuan" "yuan") ;
-
--- nationalities
-
- Belgian = mkA "belgisk" ;
- Belgium = mkNP (mkPN "Belgien") ;
- Bulgarian = mkNat "bulgarisk" "Bulgarien" ;
- Catalan = mkNat "katalansk" "Katalonien" ;
- China = mkNat "kinesisk" "Kina" ;
- Danish = mkNat "dansk" "Danmark" ;
- Dutch = mkNat "nederlndsk" "Nederlnderna" ;
- English = mkNat "engelsk" "England" ;
- Finnish = mkNat "finsk" "Finland" ;
- Flemish = mkNP (mkPN "flamlndska") ;
- French = mkNat "fransk" "Frankrike" ;
- German = mkNat "tysk" "Tyskland" ;
- Hindi = mkNP (mkPN "hindi") ;
- Indian = mkA "indisk" ;
- India = mkNP (mkPN "Indien") ;
- Italian = mkNat "italiensk" "Italien" ;
- Norwegian = mkNat "norsk" "Norge" ;
- Polish = mkNat "polsk" "Polen" ;
- Romanian = mkNat "rumnsk" "Rumnien" ;
- Russian = mkNat "rysk" "Ryssland" ;
- Spanish = mkNat "spansk" "Spanien" ;
- Swedish = mkNat "svensk" "Sverige" ;
-
--- means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "buss") ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "frja") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "tunnelbana") ;
- Taxi = mkTransport (mkN "taxi" "taxin" "taxibilar" "taxibilarna") ; ----
- Train = mkTransport L.train_N ;
- Tram = mkTransport (mkN "sprvagn") ;
-
- ByFoot = ParadigmsSwe.mkAdv "till fots" ;
-
--- actions
-
- AHasAge p num = mkCl p.name (mkNP num L.year_N) ;
- AHasName p name = mkCl p.name (mkV2 (mkV "heter")) name ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "rum" "rum"))
- (SyntaxSwe.mkAdv for_Prep (mkNP num (mkN "person" "personer")))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "bord" "bord"))
- (SyntaxSwe.mkAdv for_Prep (mkNP num (mkN "person" "personer")))) ;
- AHungry p = mkCl p.name (mkA "hungrig") ;
- AIll p = mkCl p.name (mkA "sjuk") ;
- AKnow p = mkCl p.name (mkV "veta" "vet" "vet" "visste" "vetat" "visst") ;
- ALike p item = mkCl p.name (mkV2 (mkV "tycker") (mkPrep "om")) item ;
- ALive p co = mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxSwe.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (mkV2 (mkV "lska")) q.name ;
- AMarried p = mkCl p.name (mkA "gift") ;
- AReady p = mkCl p.name (mkA "frdig") ;
- AScared p = mkCl p.name (mkA "rdd") ;
- ASpeak p lang = mkCl p.name (mkV2 (mkV "tala")) lang ;
- AThirsty p = mkCl p.name (mkA "trstig") ;
- ATired p = mkCl p.name (mkA "trtt") ;
- AUnderstand p = mkCl p.name (mkV "frst" "frstod" "frsttt") ;
- AWant p obj = mkCl p.name want_VV (mkVP have_V2 obj) ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl whatSg_IP p.name (mkV2 (mkV "heter"))) ;
- QWhatAge p = mkQS (mkQCl (ICompAP (mkAP L.old_A)) p.name) ;
- HowMuchCost item = mkQS (mkQCl how8much_IAdv (mkCl item (mkV "kosta"))) ;
- ItCost item price = mkCl item (mkV2 (mkV "kosta")) price ;
-
- 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) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss ("vi ses"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss ("vi ses")))
- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
-
--- 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
--- "the wife of my son" for non-pronouns.
-
- Wife = xOf sing (mkN "fru" "fruar") ;
- Husband = xOf sing L.man_N ;
- Son = xOf sing (mkN "son" "sner") ;
- Daughter = xOf sing (mkN "dotter" "dttrar") ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay "mndag" ;
- Tuesday = mkDay "tisdag" ;
- Wednesday = mkDay "onsdag" ;
- Thursday = mkDay "torsdag" ;
- Friday = mkDay "fredag" ;
- Saturday = mkDay "lrdag" ;
- Sunday = mkDay "sndag" ;
-
- Tomorrow = ParadigmsSwe.mkAdv "imorgon" ;
-
--- transports
-
- HowFar place =
- mkQS (mkQCl far_IAdv (mkCl (mkVP place.to))) ;
- HowFarFrom x y =
- mkQS (mkQCl far_IAdv (mkCl (mkVP (mkVP y.to)
- (SyntaxSwe.mkAdv from_Prep x.name)))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkCl (mkVP (mkVP (mkVP y.to)
- (SyntaxSwe.mkAdv from_Prep x.name)) t))) ;
- HowFarBy place t =
- mkQS (mkQCl far_IAdv (mkCl (mkVP (mkVP place.to) t))) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "billig") ;
- TheMostExpensive = mkSuperl (mkA "dyr") ;
- TheMostPopular = mkSuperl (mkA "populr") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
- oper
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (mkPN (nat + "a"))) (mkNP (mkPN co)) (mkA nat) ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day = mkNP (mkPN d) in
- mkNPDay day (SyntaxSwe.mkAdv on_Prep day)
- (SyntaxSwe.mkAdv on_Prep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
-
- mkPlace : N -> Str -> {name : CN ; at : Prep ; to : Prep ; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN p) (mkPrep i) to_Prep ;
- mkPlace2 : N -> Str -> Str -> {name : CN ; at : Prep ; to : Prep ; isPl : Bool} =
- \p,i,t -> mkCNPlace (mkCN p) (mkPrep i) (mkPrep t) ;
-
- open_A = mkA "ppen" "ppet" ;
- closed_A = mkA "stngd" "stngt" ;
-
- xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxSwe.mkAdv with_Prep (mkNP n)
- } ;
-
- mkSuperl : A -> Det = \a -> mkDet the_Art (mkOrd a) ;
-
- far_IAdv = ExtraSwe.IAdvAdv L.far_Adv ;
-
---------------------------------------------------
--- New 30/11/2011 AR
---------------------------------------------------
-
- lin
- Thai = mkNPNationality (mkNP (mkPN "thai")) (mkNP (mkPN "Thailand")) (mkA "thailndsk") ;
- Baht = mkCN (mkN "baht" "baht") ;
-
- Rice = mkCN (mkN "ris" "ris") ;
- Pork = mkCN (mkN "flsk" "flsk") ;
- Beef = mkCN (mkN "ntktt" "ntktt") ;
- Egg = mkCN L.egg_N ;
- Noodles = mkCN (mkN "nudel" "nudlar") ;
- Shrimps = mkCN (mkN "rka") ;
- Chili = mkCN (mkN "chili" "chilier") ;
- Garlic = mkCN (mkN "vitlk") ;
- Durian = mkCN (mkN "durian" "durianer") ;
- Mango = mkCN (mkN "mango" "mangoer") ;
- Pineapple = mkCN (mkN "ananas" "ananaser") ;
- Coke = mkCN (mkN "kola") ;
- IceCream = mkCN (mkN "glass") ;
- Salad = mkCN (mkN "sallad" "sallader") ;
- OrangeJuice = mkCN (mkN "apelsinjuice" "apelsinjuicer") ;
- Lemonade = mkCN (mkN "lsk") ;
- Beach = mkPlace (mkN "badstrand" "badstrnder") "p" ;
-
- ItsRaining = mkCl (mkVP L.rain_V0) ;
- ItsCold = mkCl (mkVP L.cold_A) ;
- ItsWarm = mkCl (mkVP L.warm_A) ;
- ItsWindy = mkCl (mkVP (mkV "blser")) ;
- SunShine = mkCl (mkNP the_Det L.sun_N) (skina_V) ;
-
- Smoke = mkVP (mkV "rker") ;
-
- ADoctor = mkProfession (mkN "lkare" "lkare") ;
- AProfessor = mkProfession (mkN "professor" "professorer") ;
- ALawyer = mkProfession (mkN "jurist" "jurister") ;
- AEngineer = mkProfession (mkN "ingenjr" "ingenjrer") ;
- ATeacher = mkProfession (mkN "lrare" "lrare") ;
- ACook = mkProfession (mkN "kock") ;
- AStudent = mkProfession (mkN "student" "srudenter") ;
- ABusinessman = mkProfession (mkN "affrsman" "affrsmannen" "affrsmn" "affrsmnnen") ;
-
- oper
- mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name (mkVP (CompBareCN (mkCN n))) ;
-
-}
diff --git a/examples/phrasebook/WordsTha.gf b/examples/phrasebook/WordsTha.gf
deleted file mode 100644
index 0fe8398a8..000000000
--- a/examples/phrasebook/WordsTha.gf
+++ /dev/null
@@ -1,319 +0,0 @@
-concrete WordsTha of Words = SentencesTha **
- open
- SyntaxTha,
- ParadigmsTha,
- (P = ParadigmsTha),
- (R = ResTha),
- (L = LexiconTha),
- Prelude in {
-
- flags coding = utf8 ;
-
- lin
-
--- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN L.cheese_N ;
- Chicken = mkCN (mkN "ไก่") ;
- Coffee = mkCN (mkN (R.thword "กา" "แฟ")) ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN L.meat_N ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN (R.thword "พิซ" "ซา") "ถาด") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "ชา") ;
- Water = mkCN L.water_N ;
- Wine = mkCN L.wine_N ;
-
--- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
-
- Bad = L.bad_A ;
- Boring = mkA (R.thword "น่า" "เบื่อ") ;
- Cheap = mkA (R.thword "รา" "คา" "ถูก") ;
- Cold = L.cold_A ;
- Delicious = mkA "อร่อย" ;
- Expensive = mkA "แพง" ;
- Fresh = mkA "สด" ;
- Good = mkA "ดี" ;
- Suspect = mkA (R.thword "สง" "สัย") ;
- Warm = L.warm_A ;
-
--- Places require different prepositions to express location; in some languages
--- also the directional preposition varies, but in English we use $to$, as
--- defined by $mkPlace$.
-
- Airport = mkPlace (placeN (R.thword "สนาม" "บิน")) ;
- AmusementPark = mkPlace (placeN (R.thword "สวน" "สนุก")) ;
- Bank = mkPlace (placeN (R.thword "ธนา" "คาร")) ;
- Bar = mkPlace (placeN (R.thword "บาร์")) ;
- Cafeteria = mkPlace (placeN (R.thword "โรง" "อา" "หาร")) ;
- Center = mkPlace (placeN (R.thword "ศูนย์" "กลาง")) ;
- Cinema = mkPlace (placeN (R.thword "โรง" "หนัง")) ;
- Church = mkPlace (placeN (R.thword "โบส" "ถ์")) ;
- Disco = mkPlace (placeN (R.thword "ดิส" "โก้")) ;
- Hospital = mkPlace (placeN (R.thword "โรง" "พยา" "บาล")) ;
- Hotel = mkPlace (placeN (R.thword "โรง" "แรม")) ;
- Museum = mkPlace (placeN (R.thword "พิ" " พิธ" "ภัณ" "ฑ์")) ;
- Park = mkPlace (placeN (R.thword "สวน")) ;
- Parking = mkPlace (placeN (R.thword "ที่" "จอด" "รถ")) ;
- Pharmacy = mkPlace (placeN (R.thword "ร้าน" "ขาย" "ยา")) ;
- PostOffice = mkPlace (placeN (R.thword "ไปร" "ษณี" "ย์")) ;
- Pub = mkPlace (placeN (R.thword "ร้าน" "เหล้า")) ;
- Restaurant = mkPlace L.restaurant_N ;
- School = mkPlace L.school_N ;
- Shop = mkPlace L.shop_N ;
- Station = mkPlace (placeN (R.thword "สถา" "นี")) ;
- Supermarket = mkPlace (placeN (R.thword "ซุป" "เปอ" "ร์" "มา" "เก็ต")) ;
- Theatre = mkPlace (placeN (R.thword "โรง" "ละ" "คร")) ;
- Toilet = mkPlace (placeN (R.thword "ห้อง" "น้ำ")) ;
- University = mkPlace L.university_N ;
- Zoo = mkPlace (placeN (R.thword "สวน" "สัต" "ว์")) ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit L.restaurant_N) at_Prep noPrep ;
-
-
--- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
-
- DanishCrown = mkCN (mkA (R.thword "เดน" "มาร์ค")) (mkN "โครน") | mkCurrency "โครน" ; ---#
- Dollar = mkCurrency (R.thword "ดอล" "ล่า" "ห์") ;
- Euro = mkCurrency (R.thword "ยู" "โร") ;
- Lei = mkCurrency "ลี" ;
- Leva = mkCurrency (R.thword "ลี" "วา") ;
- NorwegianCrown = mkCN (mkA (R.thword "นอร" "เว" "ย์")) (mkN "โครน") | mkCurrency "โครน" ;
- Pound = mkCurrency (R.thword "ปอน" "ด์") ;
- Rouble = mkCurrency (R.thword "รู" "เบิล") ;
- SwedishCrown = mkCN (mkA (R.thword "สวี" "ดิช")) (mkN "โครน") | mkCurrency "โครน" ;
- Zloty = mkCurrency (R.thword "สะ" "ลอ" "ตี้") ;
-
--- Nationalities
-
- Belgian = mkA (R.thword "เบล" "เยี่ยน") ;
- Belgium = mkNP (mkPN (R.thword "เบล" "เยี่ยม")) ;
- Bulgarian = mkNat (R.thword "บัล" "แก" "เรียน") ;
- Catalan = mkNat (R.thword "คะ" "ตะ" "ลัน") ;
- Danish = mkNat (R.thword "เดน" "นิช") ;
- Dutch = mkNat (R.thword "ดัทช์") ;
- English = mkNat (R.thword "อัง" "กฤษ") ;
- Finnish = mkNat (R.thword "ฟิน" "นิช") ;
- Flemish = mkNP (mkPN (R.thword "เฟลม" "มิช")) ;
- French = mkNat (R.thword "ฝรั่ง" "เศส") ;
- German = mkNat (R.thword "เยอร" "มัน") ;
- Italian = mkNat (R.thword "อิ" "ตา" "เลียน") ;
- Norwegian = mkNat (R.thword "นอร" "เวย์" "เจี้ยน") ;
- Polish = mkNat (R.thword "โป" "ลิช") ;
- Romanian = mkNat (R.thword "โร" "มา" "เนียน") ;
- Russian = mkNat (R.thword "รัส" "เซียน") ;
- Spanish = mkNat (R.thword "สแปน" "นิช") ;
- Swedish = mkNat (R.thword "สวี" "ดิช") ;
-
--- Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN (R.thword "รถ" "เม" "ล์")) ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN (R.thword "เรือ" "เฟอ" "รี่")) ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN (R.thword "รถ" "ไฟ" "ใต้" "ดิน")) ;
- Taxi = mkTransport (mkN (R.thword "รถ" "แท็ก" "ซี่")) ;
- Train = mkTransport L.train_N ;
- Tram = mkTransport (mkN (R.thword "รถ" "ราง")) ;
-
- ByFoot = P.mkAdv (R.thword "ด้วย" "การ" "เดิน") ;
-
--- Actions: the predication patterns are very often language-dependent.
-
- AHasAge p num = mkCl p.name (mkNP (mkNP num L.year_N) (ParadigmsTha.mkAdv (R.thword "อา" "ยุ"))) ;
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "ห้อง")) (SyntaxTha.mkAdv for_Prep (mkNP num (mkN "หมาย" "เลข")))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "โต๊ะ")) (SyntaxTha.mkAdv for_Prep (mkNP num (mkN "ตัว" "ที่")))) ;
- AHasName p name = mkCl p.name (mkV2 "ชื่อ") name ; ---
- AHungry p = mkCl p.name (mkA (R.thword "หิว" "ข้าว")) ;
- AIll p = mkCl p.name (mkA (R.thword "เจ็บ" "ปวย")) ;
- AKnow p = mkCl p.name ;
- ALike p item = mkCl p.name (mkV2 (mkV "ชอบ")) item ;
- ALive p co = mkCl p.name (mkVP (mkVP (mkV (R.thword "อา" "ศัย" "อยู่"))) (SyntaxTha.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name L.love_V2 q.name ;
- AMarried p = mkCl p.name (mkAP L.married_A2) ;
- AReady p = mkCl p.name L.ready_A ;
- AScared p = mkCl p.name (mkA "กลัว") ;
- ASpeak p lang = mkCl p.name L.speak_V2 lang ;
- AThirsty p = mkCl p.name (mkA (R.thword "กระ" "หาย" "น้ำ")) ;
- ATired p = mkCl p.name (mkA "เหนื่อย") ;
- AUnderstand p = mkCl p.name (mkV (R.thword "เข้า" "ใจ")) ;
- AWant p obj = mkCl p.name (mkV2 (mkV (R.thword "ต้อง" "การ"))) obj ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
--- miscellaneous
-
- QWhatName p = mkQS (mkQCl whatSg_IP p.name (mkV2 "ชื่อ")) ; ---
- QWhatAge p = mkQS (mkQCl (mkIComp how8much_IAdv) (mkNP p.name (ParadigmsTha.mkAdv (R.thword "อา" "ยุ")))) ; --- Adv
- HowMuchCost item = mkQS (mkQCl (mkIComp how8much_IAdv) item) ;
- ItCost item price = mkCl item (mkV2 (R.thword "เป็น" "รา" "คา")) price ;
-
- 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) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (lin Text (ss (R.thword "เจอ" "กัน"))) (mkPhrase (mkUtt d)) ;
- PSeeYouPlace p = mkText (lin Text (ss (R.thword "เจอ" "กัน" "ที่"))) (mkPhrase (mkUtt p.at)) ;
- PSeeYouPlaceDate p d =
- mkText (lin Text (ss (R.thword "เจอ" "กัน" "ที่")))
- (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d))) ;
-
--- Relations are expressed as "มย วิฝเ" or "มย สoณส วิฝเ", as defined by $xOf$
--- below. Languages without productive genitives must use an equivalent of
--- "ตหเ วิฝเ oฝ มย สoน" for non-pronouns.
-
- Wife = xOf (R.thword "ภร" "รยา") ; -- polite
- Husband = xOf (R.thword "สา" "มี") ; -- polite
---- Wife = xOf "เมีย" ; ---- familiar
---- Husband = xOf "ผัว" ; ---- familiar
- Son = xOf (R.thword "ลูก" "ชาย") ;
- Daughter = xOf (R.thword "ลูก" "สาว") ;
- Children = xOf L.child_N.s ; ----
-
--- week days
-
- Monday = mkDay (R.thword "วัน" "จั" "นท" "ร์") ;
- Tuesday = mkDay (R.thword "วัน" "อัง" "คาร") ;
- Wednesday = mkDay (R.thword "วัน" "พุธ") ;
- Thursday = mkDay (R.thword "วัน" "พฤ" "หัส" "บดี") ;
- Friday = mkDay (R.thword "วัน" "ศุกร์") ;
- Saturday = mkDay (R.thword "วัน" "เสาร์") ;
- Sunday = mkDay (R.thword "วัน" "อา" "ทิตย์") ;
-
- Tomorrow = P.mkAdv (R.thword "วัน" "พรุ่ง" "นี้") ;
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA (R.thword "รา" "คา" "ถูก")) ;
- TheMostExpensive = mkSuperl (mkA "แพง") ;
- TheMostPopular = mkSuperl (mkA (R.thword "โด่ง" "ดัง")) ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
--- transports
-
- HowFar place = mkQS (mkQCl howFar.howfar place.name) ; ---- (mkNP place.name howFar.far)) ;
-
- HowFarFrom x y =
- mkQS (mkQCl howFar.how (mkCl (mkNP y.name howFar.far) (lin AP (R.thbind from_Prep x.name)))) ; --- no yuu
-
- HowFarFromBy x y t =
- mkQS (mkQCl howFar.how (mkCl (mkNP y.name howFar.far)
- (lin AP (R.thbind from_Prep (mkNP x.name t))))) ;
--- mkQS (mkQCl howFar.how (mkCl (mkNP y.name howFar.far)
--- (SyntaxTha.mkAdv from_Prep (mkNP x.name t)))) ;
-
- HowFarBy y t = mkQS (mkQCl howFar.how (mkCl (mkNP y.name howFar.far) )) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN (mkCN trans.name (mkSC (mkVP L.go_V))) place.to))) ;
-
-
-
--- auxiliaries
-
- oper
--- thpron = R.thpron ;
-
- mkNat : Str -> NPNationality = \nat ->
- mkNPNationality (mkNP (mkCN (mkA nat) L.language_N)) (mkNP (mkCN (mkA nat) L.country_N)) (mkA nat) ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
- let day = lin NP (ss d) in
- mkNPDay day (SyntaxTha.mkAdv noPrep day)
- (SyntaxTha.mkAdv noPrep (mkNP a_Quant plNum (mkCN (mkN d)))) ;
-
- mkPlace : N -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p ->
- mkCNPlace (mkCN p) at_Prep noPrep ;
-
- open_A = P.mkA "เปิด" ;
- closed_A = P.mkA "ปิด" ;
-
- xOf : Str -> NPPerson -> NPPerson = \f,p ->
- {name = mkNP the_Det (mkCN (personN f) (SyntaxTha.mkAdv possess_Prep p.name)) ;
- isPron = False ; poss = the_Quant} ; ---- poss not used
-
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxTha.mkAdv (mkPrep "โดย") (mkNP n)
- } ;
-
- mkSuperl : A -> Det = \a -> SyntaxTha.mkDet the_Art (SyntaxTha.mkOrd a) ;
-
- mkCurrency : Str -> CN = \s -> mkCN (mkN [] s) ; ---- just a classifier
-
- howFar : {howfar : IComp ; far : Adv ; how : IAdv} = { --- to avoid yuu
- howfar = lin IComp (ss ("ไกล" + "เท่า" + "ไร")) ; far = lin Adv (ss ("ไกล" + "เท่า" + "ไร")) ; how = lin IAdv (ss [])
- } ;
-
- at_Prep = mkPrep "ที่" ;
- noPrep = mkPrep [] ;
-
---------------------------------------------------
--- New 30/11/2011 AR
---------------------------------------------------
-
- lin
- Thai = mkNat "ไทย" ;
- Baht = mkCurrency "บาท" ;
-
- Rice = mkCN (mkN ("ข้าว")) ;
- Pork = mkCN (mkN ("หมู")) ;
- Beef = mkCN (mkN ("เนื้อ")) ;
- Egg = mkCN L.egg_N ;
- Noodles = mkCN (mkN (R.thword "ก๋วย" "เตี๋ยว")) ;
- Shrimps = mkCN (mkN ("กุ้ง")) ;
- Chili = mkCN (mkN "พริก") ;
- Garlic = mkCN (mkN (R.thword "กะ" "เทียม")) ;
- Durian = mkCN (mkN (R.thword "ทุ" "เรียน")) ;
- Mango = mkCN (mkN (R.thword "มะ" "ม่วง")) ;
- Pineapple = mkCN (mkN (R.thword "สับ" "ปะ" "รด")) ;
- Coke = mkCN (mkN ("โค้ก")) ;
- IceCream = mkCN (mkN (R.thword "ไอ" "ศ" "กรีม")) ;
- Salad = mkCN (mkN "สลัด") ;
- OrangeJuice = mkCN (mkN (R.thword "น้ำ" "ส้ม" "คั้น")) ;
- Lemonade = mkCN (mkN (R.thword "น้ำ" "มะ" "นาว")) ;
- Beach = mkPlace (placeN (R.thword "หาด")) ;
-
- ItsRaining = mkCl (mkVP L.rain_V0) ;
- ItsCold = mkCl (mkVP L.cold_A) ;
- ItsWarm = mkCl (mkVP L.warm_A) ;
- ItsWindy = mkCl (mkVP (P.mkA (R.thword "ลม" "จัด"))) ;
- SunShine = mkCl (mkNP the_Det L.sun_N) (mkVP (R.regV (R.thword "ฉาย" "แสง"))) ;
-
- Smoke = mkVP (P.mkV (R.thword "สูบ" "บุ" "รี")) ;
-
- ADoctor = mkProfession (P.personN "หมอ") ;
- AProfessor = mkProfession (P.personN (R.thword "อา" "จารย์")) ;
- ALawyer = mkProfession (P.personN (R.thword "มัก" "กฎ" "หมาย")) ;
- AEngineer = mkProfession (P.personN (R.thword "วิ" "ศวกร")) ;
- ATeacher = mkProfession (P.personN "ครู") ;
- ACook = mkProfession (P.personN (R.thword "ภัก" "ษกาน")) ;
- AStudent = mkProfession (P.personN (R.thword "นัก" "ศึก" "ษา")) ;
- ABusinessman = mkProfession (P.personN (R.thword "ฝู้" "ประ" "กอบ" "การ")) ;
-
- oper
- mkProfession : N -> NPPerson -> Cl = \n,p -> mkCl p.name n ;
-}
-
diff --git a/examples/phrasebook/WordsUrd.gf b/examples/phrasebook/WordsUrd.gf
deleted file mode 100644
index e336968a4..000000000
--- a/examples/phrasebook/WordsUrd.gf
+++ /dev/null
@@ -1,280 +0,0 @@
---2 Implementations of Words, with English as example
-
-concrete WordsUrd of Words = SentencesUrd **
- open
- SyntaxUrd,
- CommonHindustani,
- ParadigmsUrd,
- (L = LexiconUrd),
- (P = ParadigmsUrd),
--- IrregUrd,
- ExtraUrd,
- Prelude in {
-flags coding = utf8 ;
- lin
-
--- Kinds; many of them are in the resource lexicon, others can be built by $mkN$.
-
- Apple = mkCN L.apple_N ;
- Beer = mkCN L.beer_N ;
- Bread = mkCN L.bread_N ;
- Cheese = mkCN (mkN "پنیر" Fem) ;
- Chicken = mkCN (mkN "مرغی") ;
- Coffee = mkCN (mkN "كافی") ;
- Fish = mkCN L.fish_N ;
- Meat = mkCN (mkN "گوشت") ;
- Milk = mkCN L.milk_N ;
- Pizza = mkCN (mkN "پیزہ") ;
- Salt = mkCN L.salt_N ;
- Tea = mkCN (mkN "چاے" Fem) ;
- Water = mkCN L.water_N;
- Wine = mkCN L.wine_N ;
-
--- Properties; many of them are in the resource lexicon, others can be built by $mkA$.
-
- Bad = L.bad_A ;
- Boring = mkA "فضول" ;
- Cheap = mkA "سستا" ;
- Cold = L.cold_A ;
- Delicious = mkA "مزیدار" ;
- Expensive = mkA "مہنگا" ;
- Fresh = mkA "تازہ" ;
- Good = L.good_A ;
- Suspect = mkA "برا" ;
- Warm = L.warm_A ;
-
--- Places require different prepositions to express location; in some languages
--- also the directional preposition varies, but in English we use $to$, as
--- defined by $mkPlace$.
-
- Airport = mkPlace "ہوای اڈہ" "پر" ;
- AmusementPark = mkCompoundPlace "ایمیوزیم" "پارك" "میں" ;
- Bank = mkPlace "بینك" "میں" ;
- Bar = mkPlace "بار" "میں" ;
- Cafeteria = mkPlace "كنتین" "میں" ;
- Center = mkPlace "سنٹر" "پر" ;
- Cinema = mkPlace "سینما" "میں" ;
- Church = mkPlace "چرچ" "میں" ;
- Disco = mkPlace "ڈسكو" "میں" ;
- Hospital = mkPlace "ہسپتال" "میں" ;
- Hotel = mkPlace "ہوٹل" "میں" ;
- Museum = mkPlace "میوزیم" "پر" ;
- Park = mkPlace "پارك" "میں" ;
- Parking = mkCompoundPlace "كار" "پارك" "میں" ;
- Pharmacy = mkPlace "فارمیسی" "پر" ;
- PostOffice = mkCompoundPlace "ڈاك" "خانہ" "پر" ;
- Pub = mkPlace "پب" "میں" ;
- Restaurant = mkPlace "ہوٹل" "میں" ;
- School = mkPlace "سكول" "میں" ;
- Shop = mkPlaceFem "دوكان" "میں" Fem;
- Station = mkPlace "سٹیشن" "پر" ;
- Supermarket = mkPlace "سپر ماركیٹ" "میں" ;
- Theatre = mkPlace "تھیٹر" "پر" ;
- Toilet = mkPlace "غسل خانہ" "میں" ;
- University = mkPlaceFem "یونیورسٹی" "میں" Fem;
- Zoo = mkPlace "چڑیا گھر" "میں" ;
-
- CitRestaurant cit = mkCNPlace (mkCN cit (mkN "ہوٹل")) in_Prep to_Prep ;
-
-
--- Currencies; $crown$ is ambiguous between Danish and Swedish crowns.
-
- DanishCrown = mkCN (mkA "ڈینش") (mkN "كراون") | mkCN (mkN "كراون") ;
- Dollar = mkCN (mkN "ڈالر") ;
- Euro = mkCN (mkN "یورو") ; -- to prevent euroes
- Lei = mkCN (mkN "لی") ;
- Leva = mkCN (mkN "لیوا") ;
- NorwegianCrown = mkCN (mkA "نارویجن") (mkN "كراون") | mkCN (mkN "كراون") ;
- Pound = mkCN (mkN "پاونڈ") ;
- Rouble = mkCN (mkN "روبل") ;
- SwedishCrown = mkCN (mkA "سویڈش") (mkN "كراون") | mkCN (mkN "كراون") ;
- Zloty = mkCN (mkN "زلوٹی" Fem) ;
-
--- Nationalities
-
- Belgian = mkA "بلجیم" ;
- Belgium = mkNP (mkPN "بلجیم") ;
- Bulgarian = mkNat "بلغارین" "بلغاریہ" ;
- Catalan = mkNPNationality (mkNP (mkPN "كیٹالان")) (mkNP (mkPN "كاٹالان")) (mkA "كاٹالانین") ;
- Danish = mkNat "ڈینش" "ڈنمارك" ;
- Dutch = mkNPNationality (mkNP (mkPN "ڈچ")) (mkNP the_Quant (mkN "نیدرلینڈ")) (mkA "ڈچ") ;
- English = mkNat "انگلش" "انگلینڈ" ;
- Finnish = mkNat "فنش" "فنلینڈ" ;
- Flemish = mkNP (mkPN "فلیمش") ;
- French = mkNat "فرانسیسی" "فرانس" ;
- German = mkNat "جرمن" "جرمنی" ;
- Italian = mkNat "اطالوی" "اٹلی" ;
- Norwegian = mkNat "نارویجن" "ناروے" ;
- Polish = mkNat "پولش" "پولینڈ" ;
- Romanian = mkNat "رومانین" "رومانیہ" ;
- Russian = mkNat "روسی" "روس" ;
- Spanish = mkNat "سپینی" "سپین" ;
- Swedish = mkNat "سویڈش" "سویڈن" ;
-
--- Means of transportation
-
- Bike = mkTransport L.bike_N ;
- Bus = mkTransport (mkN "بس" Fem) ;
- Car = mkTransport L.car_N ;
- Ferry = mkTransport (mkN "فیری") ;
- Plane = mkTransport L.airplane_N ;
- Subway = mkTransport (mkN "سب وے") ;
- Taxi = mkTransport (mkN "ٹیكسی") ;
- Train = mkTransport (mkN "ریل گاڑی") ;
- Tram = mkTransport (mkN "ٹرام" Fem) ;
-
- ByFoot = P.mkAdv "پیدل" ;
-
--- Actions: the predication patterns are very often language-dependent.
-
--- AHasAge p num = mkCl p.name (mkNP (mkNP num L.year_N) (ParadigmsUrd.mkAdv "كا"));
- AHasAge p num = mkCl p.name (mkNP num (mkCN (modN L.year_N)));
- AHasChildren p num = mkCl p.name have_V2 (mkNP num L.child_N) ;
- AHasRoom p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "كمرہ")) (SyntaxUrd.mkAdv for_Prep (mkNP num (P.mkN "شخص" "شخص" "شخص" "اشخاص" "اشخاص" "شخصو" masculine)))) ;
- AHasTable p num = mkCl p.name have_V2
- (mkNP (mkNP a_Det (mkN "میز")) (SyntaxUrd.mkAdv for_Prep (mkNP num (P.mkN "شخص" "شخص" "شخص" "اشخاص" "اشخاص" "شخصو" masculine)))) ;
- AHasName p name = mkCl (nameOf p) name ;
- AHungry p = mkCl p.name (mkA "بھوكا") ;
- AIll p = mkCl p.name (mkA "بیمار") ;
- AKnow p = mkCl p.name (mkV "جاننا") ;
- ALike p item = mkCl p.name (L.like_V2) item ;
- ALive p co = mkCl p.name (mkVP (mkVP (L.live_V)) (SyntaxUrd.mkAdv in_Prep co)) ;
- ALove p q = mkCl p.name (L.love_V2) q.name ;
- AMarried p = mkCl p.name (mkA "شادی شدہ") ;
- AReady p = mkCl p.name (mkA "تیار") ;
- AScared p = mkCl p.name (P.mkCompoundA "ڈرا" "ہوا") ;
- ASpeak p lang = mkCl p.name L.speak_V2 lang ;
- AThirsty p = mkCl p.name (mkA "پیاسا") ;
- ATired p = mkCl p.name (P.mkCompoundA "تھكا" "ہوا") ;
- AUnderstand p = mkCl p.name (mkV "سمجھنا") ;
- AWant p obj = mkCl p.name (mkV2 (mkV "چاہنا")) obj ;
--- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.name) ;
- AWantGo p place = mkCl p.name want_VV (mkVP (mkVP L.go_V) place.to) ;
-
--- miscellaneous
-
--- QWhatName p = mkQS (mkQCl whatSg_IP (mkVP (nameOf p))) ;
- QWhatName p = mkQS (mkQCl what_IAdv (mkNP p.poss (P.mkN "نام" "نام" "نام" "نام" "نام" "نام" masculine))) ;
--- QWhatAge p = mkQS (mkQCl (mkCl (mkNP (modQuant p.poss)) (mkAdv "عمر"))) ;
- QWhatAge p = mkQS (mkQCl howMuch_IAdv (mkNP (modQuant p.poss) (P.mkN "عمر" feminine))) ;
- HowMuchCost item = mkQS (mkQCl (mkCl (modNP item) (mkAdv ["كی قیمت"]))) ;
--- HowMuchCost item = mkQS (mkQCl howMuch_IAdv (mkNP cost_Predet (modNP item))) ;
- ItCost item price = mkCl item (mkV2 (mkV "قیمت")) price ;
-
- PropOpen p = mkCl p.name open_Adv ;
- PropClosed p = mkCl p.name closed_Adv ;
- PropOpenDate p d = mkCl p.name (mkVP (mkVP d) open_Adv) ;
- PropClosedDate p d = mkCl p.name (mkVP (mkVP d) closed_Adv) ;
- PropOpenDay p d = mkCl p.name (mkVP (mkVP d.habitual) open_Adv);
- PropClosedDay p d = mkCl p.name (mkVP (mkVP d.habitual) closed_Adv) ;
-
--- Building phrases from strings is complicated: the solution is to use
--- mkText : Text -> Text -> Text ;
-
- PSeeYouDate d = mkText (mkPhrase (mkUtt d)) (lin Text (Prelude.ss ("ملتے ہیں"))) ;
- PSeeYouPlace p = mkText (mkPhrase (mkUtt p.at)) (lin Text (Prelude.ss ("ملتے ہیں"))) ;
- PSeeYouPlaceDate p d =
- mkText (mkText (mkPhrase (mkUtt p.at)) (mkPhrase (mkUtt d)))
- (lin Text (Prelude.ss ("ملتے ہیں"))) ;
-
--- Relations are expressed as "می وiفع" or "می سon'س وiفع", as defined by $xOf$
--- below. Languages without productive genitives must use an equivalent of
--- "تہع وiفع oف می سoن" for non-pronouns.
-
- Wife = xOf ssing (mkN "بیوی") ;
- Husband = xOf ssing (mkN "شوہر") ;
- Son = xOf ssing (mkN "بیٹا") ;
- Daughter = xOf ssing (mkN "بیٹی") ;
- Children = xOf plur L.child_N ;
-
--- week days
-
- Monday = mkDay "سوموار" ;
- Tuesday = mkDay "منگل" ;
- Wednesday = mkDay "بدھ" ;
- Thursday = mkDay "جمعرات" ;
- Friday = mkDay "جمعہ" ;
- Saturday = mkDay "ہفتہ" ;
- Sunday = mkDay "اتوار" ;
-
- Tomorrow = P.mkAdv "كل" ;
-
--- modifiers of places
-
- TheBest = mkSuperl L.good_A ;
- TheClosest = mkSuperl L.near_A ;
- TheCheapest = mkSuperl (mkA "سستا") ;
- TheMostExpensive = mkSuperl (mkA "مہنگا") ;
- TheMostPopular = mkSuperl (mkA "مشہور") ;
- TheWorst = mkSuperl L.bad_A ;
-
- SuperlPlace sup p = placeNP sup p ;
-
-
--- transports
-
-
- HowFar place = mkQS (mkQCl far_IAdv place.name) ;
- HowFarFrom x y = mkQS (mkQCl far_IAdv (mkNP y.name (SyntaxUrd.mkAdv from_Prep x.name))) ;
- HowFarFromBy x y t =
- mkQS (mkQCl far_IAdv (mkNP (mkNP y.name (SyntaxUrd.mkAdv from_Prep x.name)) t)) ;
- HowFarBy y t = mkQS (mkQCl far_IAdv (mkNP y.name t)) ;
-
- WhichTranspPlace trans place =
- mkQS (mkQCl (SyntaxUrd.mkIP which_IDet trans.name) (mkVP (mkVP L.go_V) place.to)) ;
-
- IsTranspPlace trans place =
- mkQS (mkQCl (mkCl (mkCN trans.name place.to))) ;
-
-
-
--- auxiliaries
-
- oper
-
- mkNat : Str -> Str -> NPNationality = \nat,co ->
- mkNPNationality (mkNP (mkPN nat)) (mkNP (mkPN co)) (mkA nat) ;
-
- mkDay : Str -> {name : NP ; point : Adv ; habitual : Adv} = \d ->
--- let day = mkNP (mkPN d) in
--- let day = (mkNP (mkCN (mkN d))) in
- mkNPDay (mkNP (mkCN (mkN d))) (SyntaxUrd.mkAdv to_Prep (mkNP (mkCN (mkN d))))
- (SyntaxUrd.mkAdv to_Prep (mkNP (mkCN (mkN d)))) ; --changed from plNum to sgNum
-
- mkCompoundPlace : Str -> Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \comp, p, i ->
--- mkCNPlace (mkCN (P.mkN comp (mkN p))) (P.mkPrep i) to_Prep ;
- mkCNPlace (mkCN (mkN (comp++p))) (P.mkPrep i i) to_Prep ;
-
- mkPlace : Str -> Str -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i ->
- mkCNPlace (mkCN (mkN p)) (P.mkPrep i i) to_Prep ;
- mkPlaceFem : Str -> Str -> Gender -> {name : CN ; at : Prep ; to : Prep; isPl : Bool} = \p,i,g ->
- mkCNPlace (mkCN (P.mkN p g)) (P.mkPrep i i) to_Prep ;
-
- open_Adv = P.mkAdv "كھلا" "كھلی";
- closed_Adv = P.mkAdv "بند" ;
-
- xOf : SentencesUrd.GNumber -> N -> NPPerson -> NPPerson = \n,x,p ->
- relativePerson n (mkCN x) (\a,b,c -> mkNP (GenNP b) a c) p ;
-
- nameOf : NPPerson -> NP = \p -> (xOf ssing (mkN "نام") p).name ;
- ssing = False ;
-
- mkTransport : N -> {name : CN ; by : Adv} = \n -> {
- name = mkCN n ;
- by = SyntaxUrd.mkAdv by8means_Prep (mkNP n)
- } ;
-
--- mkSuperl : A -> Det = \a -> SyntaxUrd.mkDet the_Art (SyntaxUrd.mkOrd a) ;
- mkSuperl : A -> Det = \a -> lin Det { s = \\n,g,c => a.s ! n ! g ! c ! Superl ; n = Sg } ;
-
- far_IAdv = ExtraUrd.IAdvAdv (P.mkAdv "دور") ;
- what_IAdv = lin IAdv {s = "كیا"} ;
- howMuch_IAdv = lin IAdv {s = "كتنی"} ;
--- cost_Predet = lin Predet {s = ["كی قیمت"]} ;
--------------------
-modN : N -> N = \noun -> lin N {s = \\n,c =>noun.s!n!c++"كا" ; g =noun.g} ;
-modQuant : Quant -> Quant = \q -> lin Quant {s = \\n,g,c => q.s ! n ! Fem ! c ; a = q.a};
-modNP : NP -> NP = \np -> lin NP {s = \\_ => np.s ! NPC Obl ; a = np.a};
-
-}
diff --git a/examples/phrasebook/add_greetings.gfupdate b/examples/phrasebook/add_greetings.gfupdate
deleted file mode 100644
index a1b2059c7..000000000
--- a/examples/phrasebook/add_greetings.gfupdate
+++ /dev/null
@@ -1,35 +0,0 @@
-+ Greetings
-fun GCongratulations : Greeting ;
-fun GLeaveMeAlone : Greeting ;
-+ GreetingsEng
-lin GCongratulations = ss "congratulations" ;
-+ GreetingsFin
-lin GCongratulations = ss "onneksi olkoon" ;
-lin GLeaveMeAlone = ss "jt minut rauhaan" ;
-
-Fre = ss "flicitations" ;
-Ita = ss "auguri" ;
-
-Swe = ss "grattis" ;
-
-
-lin
-Eng = ss "leave me alone" ;
-Swe = ss "lt mig vara i fred" ;
-
-
-abstract Words
-
-fun Library : PlaceKind ;
-
-lin
-Eng = mkPlace "library" "in" ;
-Fin = mkPlace (mkN "kirjasto") ssa ;
-Fre = mkPlace (mkN "bibliothque") dative ;
-Swe = mkPlace (mkN "bibliotek" "bibliotek") "p" ;
-
-concrete WordsGer
-
-lin Delicious = mkA "kstlich" ;
-lin Expensive = mkA "teuer" ;
-
diff --git a/examples/phrasebook/doc-phrasebook.html b/examples/phrasebook/doc-phrasebook.html
deleted file mode 100644
index a6b42a255..000000000
--- a/examples/phrasebook/doc-phrasebook.html
+++ /dev/null
@@ -1,688 +0,0 @@
-
-
-
-
-
-MOLTO Multilingual Phrasebook
-
-
MOLTO Multilingual Phrasebook
-
-Krasimir Angelov, Olga Caprotti, Ramona Enache, Thomas Hallgren, Inari Listenmaa, Aarne Ranta, Jordi Saludes, Adam Slaski
-Showcase for project FP7-ICT-247914, Deliverable D10.2.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-History
-
-
-1 September. Version 1.1: bug fixes, some new constructions.
- 2 June. Version 1.0 released!
- 29 May. Link to Google translate with the current language pair and phrase.
- 27 May. Polish added.
- 26 May. Version 0.9:
- Catalan added, mass/count noun distinction to reduce overgeneration,
- improved web interface.
- 20 May. Version 0.8:
- Spanish added, Bulgarian complete.
- 9 May. Version 0.7:
- Danish and Norwegian added (preliminary versions induced from statistical models
- and resource grammars).
- 3 May. Version 0.6:
- Extended API (now final for release), Dutch added; new user interface with text
- input enabled.
- 10 April. Some additions in API, comments in implementation; regenerated clones.
- 8 April. Added German.
- 7 April. Added the Clone script, applied to initiate the rest of MOLTO languages.
- 6 April. Version 0.4: weekdays, nationalities
- 30 March. Version 0.3: disambiguation grammar for English
- 28 March. Version 0.2: Swe, Ita; cat Action; small phrases.
- 26 March 2010. Version 0.1: Eng, Fin, Fre, Ron; dedicated minibar UI.
-
-
-
-Missing constructs
-
-
-Back to the phrasebook
-
-
-
-
-
-
-Purpose
-
-This phrasebook is a program for translating touristic phrases
-between 14 European languages included in the
-MOLTO project
-(Multilingual On-Line Translation):
-
-
-Bulgarian, Catalan, Danish, Dutch, English,
- Finnish, French, German, Italian, Norwegian,
- Polish, Romanian, Spanish, Swedish
-
-
-
-A Russian version is not yet finished but is projected later. Also other languages may be added.
-
-
-The phrasebook is implemented by using the GF programming language
-(Grammatical Framework ).
-It is the first demo for the MOLTO project, released in the third month (by June 2010).
-The first version is a very small system, but it will extended in the course of the project.
-
-
-The phrasebook has the following requirement specification:
-
-
-high quality: reliable translations to express yourself in any of the languages
- translation between all pairs of languages
- runnable in web browsers
- runnable on mobile phones (via web browser; Android stand-alone forthcoming)
- easily extensible by new words (forthcoming: semi-automatic extensions by users)
-
-
-
-The phrasebook is available as open-source software, licensed under GNU LGPL.
-The source code resides in
-www.grammaticalframework.org/examples/phrasebook/
-
-
-Points illustrated
-
-From the user perspective
-
-Interlingua-based translation
-
-
-we translate meanings, rather than words
-
-
-
-Incremental parsing
-
-
-the user is at every point guided by the list of possible next words
-
-
-
-Mixed modalities
-
-
-selection of words ("fridge magnets") combined with text input
-
-
-
-Quasi-incremental translation: many basic types are also used as phrases
-
-
-one can translate both words and complete sentences, and get intermediate results
-
-
-
-Disambiguation, esp. of politeness distinctions
-
-
-if a phrase has many translations, each of them is shown and given an explanation
- (currently just in English, later in any source language)
-
-
-
-Fall-back to statistical translation
-
-
-currently just a link to Google translate (forthcoming: tailor-made statistical models)
-
-
-
-Feed-back from users
-
-
-users are welcomed to send comments, bug reports, and better translation suggestions
-
-
-
-From the programmer's perspective
-
-The use of resource grammars and functors
-
-
-
-
-Example-based grammar writing and grammar induction from statistical models
-(Google translate )
-
-
-many of the grammars were created semi-automatically by generalization from
- examples
-
-
-
-Compile-time transfer: especially, in Action in Words
-
-
-the structural differences between languages are treated at compile time,
- for maximal run-time efficiency
-
-
-
-The level of skills involved in grammar development
-
-
-testing different configurations (see table below)
-
-
-
-Grammar testing
-
-
-use of treebanks with guided random generation for initial evaluation and regression testing
-
-
-
-Files
-
-Grammars
-
-Sentences: general syntactic structures implementable in a uniform way.
-Concrete syntax via the functor SencencesI.
-
-
-Words: words and predicates, typically language-dependent.
-Separate concrete syntaxes.
-
-
-Greetings: idiomatic phrases, string-based.
-Separate concrete syntaxes.
-
-
-Phrasebook: the top module putting everything together.
-Separate concrete syntaxes.
-
-
-DisambPhrasebook: disambiguation grammars generating feedback phrases if
-the input language is ambiguous.
-
-
-Numeral: resource grammar module directly inherited from the library.
-
-
-Here is the module structure as produced in GF by
-
-
- > i -retain DisambPhrasebookEng.gf
- > dg -only=Phrasebook*,Sentences*,Words*,Greetings*,Numeral,NumeralEng,DisambPhrasebookEng
- > ! dot -Tpng _gfdepgraph.dot >pgraph.png
-
-
-
-
-
-
-Ontology
-
-The abstract syntax defines the ontology behind the phrasebook.
-Some explanations can be found in the
-ontology document , which is produced from the
-abstract syntax files
-Sentences.gf
-and
-Words.gf
-by make doc.
-
-
-Run-time system and user interface
-
-The phrasebook uses
-the
-PGF server
-written in Haskell and the
-minibar library
-written in JavaScript. Since the sources of these systems are available, anyone can build the phrasebook
-locally on her own computer.
-
-
-Effort and cost
-
-
-Language
-Grammarian's language skills
-Grammarian's GF skills
-Informant used for development
-Informant used for testing
-Use of external tools
-Impact of external tools
-Changes on the resource grammar
-Development time
-
-
-Bulgarian
-###
-###
--
--
--
-?
-#
-##
-
-
-Catalan
-###
-###
--
--
--
-?
-#
-#
-
-
-Danish
--
-###
-+
-+
-+
-##
-#
-##
-
-
-Dutch
--
-###
-+
-+
-+
-##
-#
-##
-
-
-English
-##
-###
--
-+
--
--
-_
-#
-
-
-Finnish
-###
-###
--
--
--
-?
-#
-##
-
-
-French
-##
-###
--
-+
--
-?
-#
-#
-
-
-German
-#
-###
-+
-+
-+
-##
-##
-###
-
-
-Italian
-###
-#
--
--
--
-?
-##
-##
-
-
-Norwegian
-#
-###
-+
--
-+
-##
-#
-##
-
-
-Polish
-###
-###
-+
-+
-+
-#
-#
-##
-
-
-Romanian
-###
-###
--
--
-+
-#
-###
-###
-
-
-Spanish
-##
-#
--
--
--
-?
-_
-##
-
-
-Swedish
-##
-###
--
-+
--
-?
--
-##
-
-
-
-
-Explanation on scores
-
-
-Grammarian's language skills
-
- - : no skills
- # : passive knowledge
- ## : fluent non-native
- ### : native speaker
-
-
-
-
-Grammarian's GF skills
-
- - : no skills
- # : basic skills (2-day GF tutorial)
- ## : medium skills (previous experience of similar task)
- ### : advanced skills (resource grammar writer/substantial contributor)
-
-
-
-
-Informant used for development/Informant needed for testing/Use of external tools
-
-
-
-
-Impact of external tools
-
- ? : not investigated
- - : no effect on the Phrasebook
- # : small impact (literal translation, simple idioms)
- ## : medium effect (translation of more forms of words, contextual preposition)
- ### : great effect (no extra work needed, translations are correct)
-
-
-
-
-Changes on the resource grammars
-
- - : no changes
- # : 1-3 minor changes
- ## : 4-10 minor changes, 1-3 medium changes
- ### : >10 changes of any kind
-
-
-
-
-Overall effort (including extra work on resource grammars)
-
- # : less than 8 person hours
- ## : 8-24 person hours
- ### : >24 person hours
-
-
-
-
-Example-based grammar writing prototype
-
-The figure presents the process of creating a Phrasebook using an example-based
-approach for the language X, where X = {Danish, Dutch, German, Norwegian}.
-
-
-
-
-
-the first step assumes an analysis of the resource grammar and extracts the necessary
- information that functions that build new lexical entries would need.
- A model is built so that the proper forms of the word can be rendered,
- and additional information, such as gender, can be inferred. The script applies
- these rules to each entry that we want to translate into the target language, and
- one obtains a set of constructions.
- they are furthermore given to an external translator tool (Google translate)
- or a native speaker for translation. One needs the configuration file even if the
- translator is human, because formal knowledge of grammar is not assumed.
- the translations into the target language are further more processed in order to
- build the linearizations of the categories first, decoding the information received.
- Furthermore, having the words in the lexicon, one can parse the translations of
- functions with the GF parser and generalize from that.
- the resulting grammar is tested with the aid of a script that generates
- constructions covering all the functions and categories from the grammar, along
- with some other constructions that proved to be problematic in some language.
- The result of the script contains for each construction in the target language
- its English correspondent and the abstract syntax tree. A native speaker
- evaluates the results and if corrections are needed, the algorithm runs again
- with the new examples. Depending on the language skills of the grammar writer,
- the changes can be made directly into the GF files, and the correct examples
- given by the native informant are just kept for validating the results.
- The algorithm is repeated as long as corrections are needed.
-
-
-
-The time needed for preparing the configuration files for a grammar will not be needed
-in the future, since the files are reusable for other applications.
-The time for the second step can be saved if automatic tools, like Google translate
-are used. This is only possible in languages with a simpler morphology and syntax
-and large corpora available.
-Good results were obtained for German and Dutch with Google translate, but for
-languages like Romanian or Polish, which are both complex and lack enough resources,
-the results are discouraging.
-
-
-If the statistical oracle works well, the only step where the presence of a human
-translator is needed is the evaluation and feedback step. An average of 4 hours per
-round and 2 rounds were needed in average for the languages for which we performed
-the experiment. It is possible that more effort is needed for more complex languages.
-
-
-To Do
-
-Disambiguation grammars for other languages than English
-
-
-Extend the abstract lexicon in Words by hand or (semi)automatically for
-
-
-food stuff
- places
- actions
-
-
-
-Customizable phone distribution: make your own selection of the 2^15 language subsets
-when downloading the phrasebook to a phone
-
-
-How to contribute
-
-The basic things "everyone" can do is
-
-
-complete missing words in concrete syntaxes
- add new abstract words in Words and greetings in Greetings
-
-
-
-The missing concrete syntax entries are added to the WordsL .gf
-files for each language L . The
-morphological paradigms
-of the GF resource library should be used. Actions (prefixed with A, as AWant) are
-a little more demanding, since they also require syntax constructors. Greetings (prefixed
-with G) are pure strings.
-
-
-Some explanations can be found in the
-implementation document , which is produced from the
-concrete syntax files
-SentencesI.gf
-and
-WordsEng.gf
-by make doc.
-
-
-Here are the steps to follow for contributors:
-
-
-Make sure you have the latest sources
- from GF Darcs ,
- using darcs pull.
- Also make sure that you have compiled the library by make present in gf/lib/src/.
- Work in the directory
- gf/examples/phrasebook/ .
- After you've finished your contribution, recompile the phrasebook by make pgf.
- Save your changes in darcs record . (in the phrasebook subdirectory).
- Make a patch file with darcs send -o my_phrasebook_patch, which you can
- send to GF maintainers.
- (Recommended:) Test the phrasebook on your local server:
-
- Go to gf/src/server/ and follow the instructions in the
- project Wiki .
- Make sure that Phrasebook.pgf is available to you GF server (see project wiki).
- Launch lighttpd (see project wiki).
- How you can open gf/examples/phrasebook/www/phrasebook.html and use your phrasebook!
-
-
-
-
-Don't delete anything! But you are free to correct incorrect forms.
- Don't change the module structure!
- Don't compromise quality to gain coverage: non multa sed multum!
-
-
-
-Conclusions (tentative)
-
-The grammarian need not be a native speaker of the language.
-
-
-For many languages, the grammarian need not even know the language - native informants are
-enough.
-
-
-However, evaluation by native speakers is necessary.
-
-
-Correct and idiomatic translations are possible.
-
-
-A typical development time was 2-3 person working days per language.
-
-
-Google translate helps in bootstrapping grammars, but must be checked.
-
-
-in particular, unreliable for morphologically rich languages
-
-
-
-Resource grammars should give some more support
-
-
-higher-level access to constructions like negative expressions
- large-scale morphological lexica
-
-
-
-Acknowledgements
-
-The Phrasebook has been built in the MOLTO project funded by the European Commission.
-
-
-The authors are grateful to their native speaker informants helping to bootstrap and evaluate
-the grammars:
-Richard Bubel,
-Grégoire Détrez,
-Rise Eilert,
-Karin Keijzer,
-Michał Pałka,
-Willard Rafnsson,
-Nick Smallbone.
-
-
-
-
-
diff --git a/examples/phrasebook/doc-phrasebook.txt b/examples/phrasebook/doc-phrasebook.txt
deleted file mode 100644
index 15a2e862d..000000000
--- a/examples/phrasebook/doc-phrasebook.txt
+++ /dev/null
@@ -1,410 +0,0 @@
-MOLTO Multilingual Phrasebook
-Krasimir Angelov, Olga Caprotti, Ramona Enache, Thomas Hallgren, Inari Listenmaa, Aarne Ranta, Jordi Saludes, Adam Slaski
-Showcase for project FP7-ICT-247914, Deliverable D10.2.
-
-
-%!Encoding:utf-8
-
-%!postproc(html): #HR
-%!postproc(html): #BSMALL
-%!postproc(html): #ESMALL
-
-
-
-
-#HR
-#BSMALL
-
-History
-- 1 September. Version 1.1: bug fixes, some new constructions.
-- 2 June. Version 1.0 released!
-- 29 May. Link to Google translate with the current language pair and phrase.
-- 27 May. Polish added.
-- 26 May. Version 0.9:
- Catalan added, mass/count noun distinction to reduce overgeneration,
- improved web interface.
-- 20 May. Version 0.8:
- Spanish added, Bulgarian complete.
-- 9 May. Version 0.7:
- Danish and Norwegian added (preliminary versions induced from statistical models
- and resource grammars).
-- 3 May. Version 0.6:
- Extended API (now final for release), Dutch added; new user interface with text
- input enabled.
-- 10 April. Some additions in API, comments in implementation; regenerated clones.
-- 8 April. Added German.
-- 7 April. Added the Clone script, applied to initiate the rest of MOLTO languages.
-- 6 April. Version 0.4: weekdays, nationalities
-- 30 March. Version 0.3: disambiguation grammar for English
-- 28 March. Version 0.2: Swe, Ita; cat Action; small phrases.
-- 26 March 2010. Version 0.1: Eng, Fin, Fre, Ron; dedicated minibar UI.
-
-
-[Missing constructs missing.txt]
-
-[Back to the phrasebook http://www.grammaticalframework.org/demos/phrasebook/]
-
-#ESMALL
-#HR
-
-
-=Purpose=
-
-This phrasebook is a program for translating touristic phrases
-between 14 European languages included in the
-[MOLTO http://www.molto-project.eu] project
-(Multilingual On-Line Translation):
-- Bulgarian, Catalan, Danish, Dutch, English,
- Finnish, French, German, Italian, Norwegian,
- Polish, Romanian, Spanish, Swedish
-
-
-A Russian version is not yet finished but is projected later. Also other languages may be added.
-
-The phrasebook is implemented by using the GF programming language
-([Grammatical Framework http://grammaticalframework.org]).
-It is the first demo for the MOLTO project, released in the third month (by June 2010).
-The first version is a very small system, but it will extended in the course of the project.
-
-The phrasebook has the following requirement specification:
-- high quality: reliable translations to express yourself in any of the languages
-- translation between all pairs of languages
-- runnable in web browsers
-- runnable on mobile phones (via web browser; Android stand-alone forthcoming)
-- easily extensible by new words (forthcoming: semi-automatic extensions by users)
-
-
-The phrasebook is available as open-source software, licensed under GNU LGPL.
-The source code resides in
-[``www.grammaticalframework.org/examples/phrasebook/`` http://www.grammaticalframework.org/examples/phrasebook/]
-
-
-
-=Points illustrated=
-
-
-==From the user perspective==
-
-Interlingua-based translation
-- we translate meanings, rather than words
-
-
-Incremental parsing
-- the user is at every point guided by the list of possible next words
-
-
-Mixed modalities
-- selection of words ("fridge magnets") combined with text input
-
-
-Quasi-incremental translation: many basic types are also used as phrases
-- one can translate both words and complete sentences, and get intermediate results
-
-
-Disambiguation, esp. of politeness distinctions
-- if a phrase has many translations, each of them is shown and given an explanation
- (currently just in English, later in any source language)
-
-
-Fall-back to statistical translation
-- currently just a link to Google translate (forthcoming: tailor-made statistical models)
-
-
-Feed-back from users
-- users are welcomed to send comments, bug reports, and better translation suggestions
-
-
-
-==From the programmer's perspective==
-
-The use of resource grammars and functors
-- the translator was implemented on top of an earlier linguistic knowledge base,
- the [GF Resource Grammar Library http://www.grammaticalframework.org/lib]
-
-
-Example-based grammar writing and grammar induction from statistical models
-([Google translate http://translate.google.com])
-- many of the grammars were created semi-automatically by generalization from
- examples
-
-
-Compile-time transfer: especially, in Action in Words
-- the structural differences between languages are treated at compile time,
- for maximal run-time efficiency
-
-
-The level of skills involved in grammar development
-- testing different configurations (see table below)
-
-
-Grammar testing
-- use of treebanks with guided random generation for initial evaluation and regression testing
-
-
-
-
-=Files=
-
-==Grammars==
-
-``Sentences``: general syntactic structures implementable in a uniform way.
-Concrete syntax via the functor ``SencencesI``.
-
-``Words``: words and predicates, typically language-dependent.
-Separate concrete syntaxes.
-
-``Greetings``: idiomatic phrases, string-based.
-Separate concrete syntaxes.
-
-``Phrasebook``: the top module putting everything together.
-Separate concrete syntaxes.
-
-``DisambPhrasebook``: disambiguation grammars generating feedback phrases if
-the input language is ambiguous.
-
-``Numeral``: resource grammar module directly inherited from the library.
-
-Here is the module structure as produced in GF by
-```
- > i -retain DisambPhrasebookEng.gf
- > dg -only=Phrasebook*,Sentences*,Words*,Greetings*,Numeral,NumeralEng,DisambPhrasebookEng
- > ! dot -Tpng _gfdepgraph.dot >pgraph.png
-```
-
-[pgraph.png]
-
-
-==Ontology==
-
-The abstract syntax defines the **ontology** behind the phrasebook.
-Some explanations can be found in the
-[ontology document Ontology.html], which is produced from the
-abstract syntax files
-[``Sentences.gf`` http://www.grammaticalframework.org/examples/phrasebook/Sentences.gf]
-and
-[``Words.gf`` http://www.grammaticalframework.org/examples/phrasebook/Words.gf]
-by ``make doc``.
-
-
-
-==Run-time system and user interface==
-
-The phrasebook uses
-the
-[PGF server http://code.google.com/p/grammatical-framework/wiki/LaunchWebDemos]
-written in Haskell and the
-[minibar library http://www.grammaticalframework.org/demos/minibar/about.html]
-written in JavaScript. Since the sources of these systems are available, anyone can build the phrasebook
-locally on her own computer.
-
-
-=Effort and cost=
-
-|| Language | Grammarian's language skills | Grammarian's GF skills | Informant used for development | Informant used for testing | Use of external tools | Impact of external tools | Changes on the resource grammar | Development time ||
-| Bulgarian | ### | ### | - | - | - | ? | # | ## |
-| Catalan | ### | ### | - | - | - | ? | # | # |
-| Danish | - | ### | + | + | + | ## | # | ## |
-| Dutch | - | ### | + | + | + | ## | # | ## |
-| English | ## | ### | - | + | - | - | _ | # |
-| Finnish | ### | ### | - | - | - | ? | # | ## |
-| French | ## | ### | - | + | - | ? | # | # |
-| German | # | ### | + | + | + | ## | ## | ### |
-| Italian | ### | # | - | - | - | ? | ## | ## |
-| Norwegian | # | ### | + | - | + | ## | # | ## |
-| Polish | ### | ### | + | + | + | # | # | ## |
-| Romanian | ### | ### | - | - | + | # | ### | ### |
-| Spanish | ## | # | - | - | - | ? | _ | ## |
-| Swedish | ## | ### | - | + | - | ? | - | ## |
-
-
-Explanation on scores
-
-- Grammarian's language skills
- - - : no skills
- - # : passive knowledge
- - ## : fluent non-native
- - ### : native speaker
-
-
-- Grammarian's GF skills
- - - : no skills
- - # : basic skills (2-day GF tutorial)
- - ## : medium skills (previous experience of similar task)
- - ### : advanced skills (resource grammar writer/substantial contributor)
-
-
-- Informant used for development/Informant needed for testing/Use of external tools
- - - : no
- - + : yes
-
-
-- Impact of external tools
- - ? : not investigated
- - - : no effect on the Phrasebook
- - # : small impact (literal translation, simple idioms)
- - ## : medium effect (translation of more forms of words, contextual preposition)
- - ### : great effect (no extra work needed, translations are correct)
-
-
-- Changes on the resource grammars
- - - : no changes
- - # : 1-3 minor changes
- - ## : 4-10 minor changes, 1-3 medium changes
- - ### : >10 changes of any kind
-
-
-- Overall effort (including extra work on resource grammars)
- - # : less than 8 person hours
- - ## : 8-24 person hours
- - ### : >24 person hours
-
-
-=Example-based grammar writing prototype=
-
-The figure presents the process of creating a Phrasebook using an example-based
-approach for the language X, where X = {Danish, Dutch, German, Norwegian}.
-
-[picpic.jpg]
-
-- the first step assumes an analysis of the resource grammar and extracts the necessary
- information that functions that build new lexical entries would need.
- A model is built so that the proper forms of the word can be rendered,
- and additional information, such as gender, can be inferred. The script applies
- these rules to each entry that we want to translate into the target language, and
- one obtains a set of constructions.
-- they are furthermore given to an external translator tool (Google translate)
- or a native speaker for translation. One needs the configuration file even if the
- translator is human, because formal knowledge of grammar is not assumed.
-- the translations into the target language are further more processed in order to
- build the linearizations of the categories first, decoding the information received.
- Furthermore, having the words in the lexicon, one can parse the translations of
- functions with the GF parser and generalize from that.
-- the resulting grammar is tested with the aid of a script that generates
- constructions covering all the functions and categories from the grammar, along
- with some other constructions that proved to be problematic in some language.
- The result of the script contains for each construction in the target language
- its English correspondent and the abstract syntax tree. A native speaker
- evaluates the results and if corrections are needed, the algorithm runs again
- with the new examples. Depending on the language skills of the grammar writer,
- the changes can be made directly into the GF files, and the correct examples
- given by the native informant are just kept for validating the results.
- The algorithm is repeated as long as corrections are needed.
-
-
-The time needed for preparing the configuration files for a grammar will not be needed
-in the future, since the files are reusable for other applications.
-The time for the second step can be saved if automatic tools, like Google translate
-are used. This is only possible in languages with a simpler morphology and syntax
-and large corpora available.
-Good results were obtained for German and Dutch with Google translate, but for
-languages like Romanian or Polish, which are both complex and lack enough resources,
-the results are discouraging.
-
-If the statistical oracle works well, the only step where the presence of a human
-translator is needed is the evaluation and feedback step. An average of 4 hours per
-round and 2 rounds were needed in average for the languages for which we performed
-the experiment. It is possible that more effort is needed for more complex languages.
-
-
-=To Do=
-
-Disambiguation grammars for other languages than English
-
-Extend the abstract lexicon in ``Words`` by hand or (semi)automatically for
-- food stuff
-- places
-- actions
-
-
-Customizable phone distribution: make your own selection of the 2^15 language subsets
-when downloading the phrasebook to a phone
-
-
-=How to contribute=
-
-The basic things "everyone" can do is
-- complete [missing words missing.txt] in concrete syntaxes
-- add new abstract words in ``Words`` and greetings in ``Greetings``
-
-
-The missing concrete syntax entries are added to the ``Words``//L//``.gf``
-files for each language //L//. The
-[morphological paradigms http://www.grammaticalframework.org/lib/doc/synopsis.html#toc78]
-of the GF resource library should be used. Actions (prefixed with ``A``, as ``AWant``) are
-a little more demanding, since they also require syntax constructors. Greetings (prefixed
-with ``G``) are pure strings.
-
-Some explanations can be found in the
-[implementation document Implementation.html], which is produced from the
-concrete syntax files
-[``SentencesI.gf`` http://www.grammaticalframework.org/examples/phrasebook/SentencesI.gf]
-and
-[``WordsEng.gf`` http://www.grammaticalframework.org/examples/phrasebook/WordsEng.gf]
-by ``make doc``.
-
-Here are the steps to follow for contributors:
-+ Make sure you have the latest sources
- from [GF Darcs http://www.grammaticalframework.org/doc/gf-developers.html],
- using ``darcs pull``.
-+ Also make sure that you have compiled the library by ``make present`` in ``gf/lib/src/``.
-+ Work in the directory
- [``gf/examples/phrasebook/`` http://www.grammaticalframework.org/examples/phrasebook/].
-+ After you've finished your contribution, recompile the phrasebook by ``make pgf``.
-+ Save your changes in ``darcs record .`` (in the ``phrasebook`` subdirectory).
-+ Make a patch file with ``darcs send -o my_phrasebook_patch``, which you can
- send to GF maintainers.
-+ (Recommended:) Test the phrasebook on your local server:
- + Go to ``gf/src/server/`` and follow the instructions in the
- [project Wiki http://code.google.com/p/grammatical-framework/wiki/LaunchWebDemos].
- + Make sure that ``Phrasebook.pgf`` is available to you GF server (see project wiki).
- + Launch ``lighttpd`` (see project wiki).
- + How you can open ``gf/examples/phrasebook/www/phrasebook.html`` and use your phrasebook!
-
-
-- Don't delete anything! But you are free to correct incorrect forms.
-- Don't change the module structure!
-- Don't compromise quality to gain coverage: //non multa sed multum!//
-
-
-
-
-=Conclusions (tentative)=
-
-The grammarian need not be a native speaker of the language.
-
-For many languages, the grammarian need not even know the language - native informants are
-enough.
-
-However, evaluation by native speakers is necessary.
-
-Correct and idiomatic translations are possible.
-
-A typical development time was 2-3 person working days per language.
-
-Google translate helps in bootstrapping grammars, but must be checked.
-- in particular, unreliable for morphologically rich languages
-
-
-Resource grammars should give some more support
-- higher-level access to constructions like negative expressions
-- large-scale morphological lexica
-
-
-
-
-
-
-=Acknowledgements=
-
-The Phrasebook has been built in the MOLTO project funded by the European Commission.
-
-The authors are grateful to their native speaker informants helping to bootstrap and evaluate
-the grammars:
-Richard Bubel,
-Grégoire Détrez,
-Rise Eilert,
-Karin Keijzer,
-Michał Pałka,
-Willard Rafnsson,
-Nick Smallbone.
-
diff --git a/examples/phrasebook/help-phrasebook.html b/examples/phrasebook/help-phrasebook.html
deleted file mode 100644
index 538ddf211..000000000
--- a/examples/phrasebook/help-phrasebook.html
+++ /dev/null
@@ -1,43 +0,0 @@
-
-
-
-
-MOLTO Phrasebook Help
-
-
MOLTO Phrasebook Help
-
-
-
-
-To start: klick at a word or start typing.
-
-
-From : source language
-
-
-To : target language (either a single one or "All" simultaneously)
-
-
-Del : delete last word
-
-
-Clear : start over
-
-
-Random : generate a random phrase
-
-
-Google translate: the current input and language choice; opens in a new window or tab.
-
-
-The symbol &+ means binding of two words. It will disappear in the complete translation.
-
-
-The translator is slightly overgenerating , which means you can build some semantically strange phrases.
-Before reporting them as bugs, ask yourself: could this be correct in some situation? is the translation
-valid in that situation?
-
-
-
-
-
diff --git a/examples/phrasebook/help-phrasebook.txt b/examples/phrasebook/help-phrasebook.txt
deleted file mode 100644
index 99ff5f84b..000000000
--- a/examples/phrasebook/help-phrasebook.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-MOLTO Phrasebook Help
-
-
-
-To start: klick at a word or start typing.
-
-**From**: source language
-
-**To**: target language (either a single one or "All" simultaneously)
-
-**Del**: delete last word
-
-**Clear**: start over
-
-**Random**: generate a random phrase
-
-Google translate: the current input and language choice; opens in a new window or tab.
-
-The symbol ``&+`` means binding of two words. It will disappear in the complete translation.
-
-The translator is slightly //overgenerating//, which means you can build some semantically strange phrases.
-Before reporting them as bugs, ask yourself: could this be correct in some situation? is the translation
-valid in that situation?
diff --git a/examples/phrasebook/missing.txt b/examples/phrasebook/missing.txt
deleted file mode 100644
index bd2bdb8a7..000000000
--- a/examples/phrasebook/missing.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-DisambPhrasebookEng : ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookBul : ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookCat : GWhatTime ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookDan : GWhatTime ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookDut : GWhatTime ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookEng : ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookFin : ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookFre : ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookGer : ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookHin : AScared ATired MMust ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookIta : ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookLav : GWhatTime ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookNor : GWhatTime ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookPes : AHasAge AHasChildren AHasRoom AHasTable AmountCurrency Belgian DrinkNumber GWhatTime ItCost MCan MKnow MMust NNumeral ObjNumber ObjPlur PNumber PPrice ThesPlur ThesePlur ThosePlur V2Wait VWait
-PhrasebookPol : GWhatTime ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookRon : GWhatTime ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookRus : Belgian Belgium Flemish GWhatTime ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookSpa : ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookSwe : ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookTha : GWhatTime ObjPlur ThesPlur ThesePlur ThosePlur
-PhrasebookUrd : GWhatTime MMust ObjPlur ThesPlur ThesePlur ThosePlur
diff --git a/examples/phrasebook/pgraph.png b/examples/phrasebook/pgraph.png
deleted file mode 100644
index 2027ade0c..000000000
Binary files a/examples/phrasebook/pgraph.png and /dev/null differ
diff --git a/examples/phrasebook/picpic.jpg b/examples/phrasebook/picpic.jpg
deleted file mode 100644
index aac20b611..000000000
Binary files a/examples/phrasebook/picpic.jpg and /dev/null differ
diff --git a/examples/phrasebook/testScript.gfs b/examples/phrasebook/testScript.gfs
deleted file mode 100644
index 444c2d704..000000000
--- a/examples/phrasebook/testScript.gfs
+++ /dev/null
@@ -1,109 +0,0 @@
--- invoke script with command :
--- > gf PhrasebookX gf PhrasebookX rez.txt
--- where rez.txt can be replaced by the name of the file that you want to write
-
-i PhrasebookEng.gf
-
-gt (PPlace (ThePlace (CitRestaurant ?))) | l -treebank
-gr (AHasAge IMale ?) | l -treebank
-gr (AHasChildren IMale ?) | l -treebank
-gr (AHasName IMale ?) | l -treebank
-gr (AHasRoom IMale ?) | l -treebank
-gr (AHasTable IMale ?) | l -treebank
-gr (AHungry ?) | l -treebank
-gr (AIll ?) | l -treebank
-gr (AKnow ?) | l -treebank
-gr (ALike ? ?) | l -treebank
---gr (ALive ? ?) | l -treebank
-gr (ALove ? ?) | l -treebank
-gr (AMarried ?) | l -treebank
-gr (AReady ?) | l -treebank
-gr (AScared ?) | l -treebank
-gr (ASpeak ? ?) | l -treebank
-gr (AThirsty ?) | l -treebank
-gr (ATired ?) | l -treebank
-gr (AUnderstand ?) | l -treebank
-gr (AWant IMale ?) | l -treebank
-gr (AWantGo IMale ?) | l -treebank
-gr (QWhatAge ?) | l -treebank
-gr (QWhatName ?) | l -treebank
-gr (HowMuchCost ?) | l -treebank
-gr (ItCost ? ?) | l -treebank
-gr (PropOpen ?) | l -treebank
-gr (PropClosed ?) | l -treebank
-gr (PropOpenDate ? ?) | l -treebank
-gr (PropClosedDate ? ?) | l -treebank
-gr (PropOpenDay ? ?) | l -treebank
-gr (PropClosedDay ? ?) | l -treebank
-gr (PSeeYouPlaceDate ? ?) | l -treebank
-gr (PSeeYouPlace ?) | l -treebank
-gr (PSeeYouDate ?) | l -treebank
-gr (Wife ?) | l -treebank
-gr (Husband ?) | l -treebank
-gr (Son ?) | l -treebank
-gr (Daughter ?) | l -treebank
-gr (Children ?) | l -treebank
-gr (HowFar ?) | l -treebank
-gr (HowFarFrom ? ?) | l -treebank
-gr (HowFarFromBy ? ? ?) | l -treebank
-gt (HowFarBy (ThePlace Hospital) ?) | l -treebank
-gr (WhichTranspPlace ? ?) | l -treebank
-gr (IsTranspPlace ? ?) | l -treebank
-gr (SuperlPlace ? ?) | l -treebank
-gr (PSentence ?) | l -treebank
-gr (PQuestion ?) | l -treebank
-gr (PObject ?) | l -treebank
-gr (PKind ?) | l -treebank
-gr (PQuality ?) | l -treebank
-gr (PNumber ?) | l -treebank
-gr (PPlace ?) | l -treebank
-gr (PPlaceKind ) | l -treebank
-gr (PCurrency ?) | l -treebank
-gr (PPrice ?) | l -treebank
-gr (PLanguage ?) | l -treebank
-gr (PCitizenship ?) | l -treebank
-gr (PCountry ?) | l -treebank
-gr (PDay ?) | l -treebank
-gr (PByTransport ?) | l -treebank
-gr (PTransport ?) | l -treebank
-gr (Is ? ?) | l -treebank
-gr (SProp ?) | l -treebank
-gr (SPropNot ?) | l -treebank
-gr (QProp ?) | l -treebank
-gr (WherePlace ?) | l -treebank
-gr (WherePerson ?) | l -treebank
-gr (PropAction ?) | l -treebank
-gr (ObjItem ?) | l -treebank
-gr (ObjNumber ? ?) | l -treebank
-gr (ObjIndef ?) | l -treebank
-gr (ObjAndObj ? ?) | l -treebank
-gr (OneObj ?) | l -treebank
-gr (SuchKind ? ?) | l -treebank
-gr (Very ?) | l -treebank
-gr (Too ?) | l -treebank
-gr (PropQuality ?) | l -treebank
-gr (This ?) | l -treebank
-gr (That ?) | l -treebank
-gr (These ?) | l -treebank
-gr (Those ?) | l -treebank
-gr (The ?) | l -treebank
-gr (Thes ?) | l -treebank
-gr (AmountCurrency ? ?) | l -treebank
-gr (ThePlace ?) | l -treebank
-gr (APlace ?) | l -treebank
-gr (LangNat ?) | l -treebank
-gr (CitiNat ?) | l -treebank
-gr (CountryNat ?) | l -treebank
-gr (PropCit ?) | l -treebank
-gr (OnDay ?) | l -treebank
-gr (PersonName ?) | l -treebank
-gr (NNumeral ?) | l -treebank
-gr (AHave ? ?) | l -treebank
-gr (AHaveCurr ? ?) | l -treebank
-gt (ACitizen IMale ?) | l -treebank
-gt (ABePlace IMale (ThePlace ?)) | l -treebank
-gr (ByTransp ?) | l -treebank
-
diff --git a/examples/phrasebook/thai.png b/examples/phrasebook/thai.png
deleted file mode 100644
index bf0c41e67..000000000
Binary files a/examples/phrasebook/thai.png and /dev/null differ
diff --git a/examples/phrasebook/www/old-phrasebook.html b/examples/phrasebook/www/old-phrasebook.html
deleted file mode 100644
index 4e6113bd4..000000000
--- a/examples/phrasebook/www/old-phrasebook.html
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
-Phrasebook
-
-
-
-
-
-
-
-
-
-
-
-
-
-Based on
-minibar ,
-powered by
-GF ,
-see
-doc .
-
-
-
-
-
-
-
-
diff --git a/examples/phrasebook/www/phrasebook.css b/examples/phrasebook/www/phrasebook.css
deleted file mode 100644
index 17d7350c9..000000000
--- a/examples/phrasebook/www/phrasebook.css
+++ /dev/null
@@ -1,37 +0,0 @@
-body {
- background: #ccc url("http://www.grammaticalframework.org:41296/fridge/se.chalmers.cs.gf.gwt.FridgeApp/brushed-metal.png");
-}
-
-h1, h2, h3, small, th { font-family: sans-serif; }
-
-th, td { vertical-align: baseline; text-align: left; }
-
-div#surface {
- min-height: 3ex;
- margin: 5px;
- padding: 5px;
- border: 3px dashed #e0e0e0;
-}
-
-div#words {
- min-height: 3ex;
- margin: 5px;
- padding: 6px;
- border: 3px solid #e0e0e0;
-}
-
-div.word, span.word, div#words div {
- display: inline-block;
- font-family: sans-serif;
- background-color: white;
- border: 1px solid black;
- padding: 3px;
- margin: 3px;
-}
-
-.invalid { color: red; }
-
-div.modtime { float: right; }
-.modtime { color: #444; white-space: nowrap; }
-
-ul.space>li { margin-top: 0.5ex; }
diff --git a/examples/phrasebook/www/phrasebook.js b/examples/phrasebook/www/phrasebook.js
deleted file mode 100644
index c39dca7c0..000000000
--- a/examples/phrasebook/www/phrasebook.js
+++ /dev/null
@@ -1,213 +0,0 @@
-
-//var server="http://www.grammaticalframework.org:41296"
-//var server="http://tournesol.cs.chalmers.se:41296";
-var server="http://localhost:41296";
-var grammars_url=server+"/grammars/";
-var current_grammar_url=grammars_url+"Foods.pgf";
-
-var tree_icon=server+"/translate/se.chalmers.cs.gf.gwt.TranslateApp/tree-btn.png";
-
-function start_minibar() {
- var minibar=element("minibar");
- minibar.appendChild(div_id("menubar"));
- minibar.appendChild(div_id("surface"));
- minibar.appendChild(div_id("words"));
- minibar.appendChild(div_id("translations"));
- /// jsonp(grammars_url+"grammars.cgi",""); // calls show_grammarlist
- show_grammarlist(["Phrasebook.pgf","Foods.pgf", "ResourceDemo.pgf"]) ;
-}
-
-function show_grammarlist(grammars) {
- var menu=empty("select");
- for(var i=0;i0) box.appendChild(word(s));
- else emptycnt++;
- }
- if(emptycnt>0)
- //setTimeout(function(){get_translations(menu);},200);
- get_translations(menu);
-}
-
-function get_translations(menu) {
- jsonp(current_grammar_url
- +"?command=translategroup"
- // +"?command=translate"
- +"&from="+encodeURIComponent(menu.current.from)
- +"&input="+encodeURIComponent(menu.current.input),
- "show_translations")
-}
-
-function show_translations(translations) {
- var trans=element("translations");
- var cnt=translations.length;
- trans.innerHTML="";
- for(p=0;p 1) tbody.appendChild(tr([(text(lin[i].tree))]));
- }
- trans.appendChild(wrap("table",tbody));
- }
-}
-
-
-function toggle_img(i) {
- var tmp=i.src;
- i.src=i.other;
- i.other=tmp;
-}
-
-
-/*
-se.chalmers.cs.gf.gwt.TranslateApp/align-btn.png
-
-GET /grammars/Foods.pgf?&command=abstrtree&tree=Pred+(This+Fish)+(Very+Fresh)
-GET /grammars/Foods.pgf?&command=parsetree&tree=Pred+(This+Fish)+Expensive&from=FoodsAfr
-GET /grammars/Foods.pgf?&command=alignment&tree=Pred+(This+Fish)+Expensive
-*/
diff --git a/examples/phrasebook/www/support.js b/examples/phrasebook/www/support.js
deleted file mode 100644
index 7c34bad82..000000000
--- a/examples/phrasebook/www/support.js
+++ /dev/null
@@ -1,205 +0,0 @@
-/* --- Accessing document elements ------------------------------------------ */
-
-function element(id) {
- return document.getElementById(id);
-}
-
-/* --- JSONP ---------------------------------------------------------------- */
-
-// Inspired by the function jsonp from
-// http://www.west-wind.com/Weblog/posts/107136.aspx
-// See also http://niryariv.wordpress.com/2009/05/05/jsonp-quickly/
-// http://en.wikipedia.org/wiki/JSON#JSONP
-function jsonp(url,callback)
-{
- if (url.indexOf("?") > -1)
- url += "&jsonp="
- else
- url += "?jsonp="
- url += callback;
- //url += "&" + new Date().getTime().toString(); // prevent caching
-
- var script = empty("script");
- script.setAttribute("src",url);
- script.setAttribute("type","text/javascript");
- document.body.appendChild(script);
-}
-
-var json = {next:0};
-
-// Like jsonp, but instead of passing the name of the ballback function, you
-// pass the callback function directly, making it possible to use anonymous
-// functions.
-function jsonpf(url,callback)
-{
- var name="callback"+(json.next++);
- json[name]=function(x) { delete json[name]; callback(x); }
- jsonp(url,"json."+name);
-}
-
-/* --- HTML construction ---------------------------------------------------- */
-function text(s) { return document.createTextNode(s); }
-
-function empty(tag,name,value) {
- var el=document.createElement(tag);
- if(name && value) el.setAttribute(name,value);
- return el;
-}
-
-function empty_id(tag,id) { return empty(tag,"id",id); }
-function empty_class(tag,cls) { return empty(tag,"class",cls); }
-
-function div_id(id) { return empty_id("div",id); }
-function span_id(id) { return empty_id("span",id); }
-
-function wrap(tag,contents) {
- var el=empty(tag);
- el.appendChild(contents);
- return el;
-}
-
-function wrap_class(tag,cls,contents) {
- var el=empty_class(tag,cls);
- if(contents) el.appendChild(contents);
- return el;
-}
-
-function span_class(cls,contents) { return wrap_class("span",cls,contents); }
-function div_class(cls,contents) { return wrap_class("div",cls,contents); }
-
-function p(contents) { return wrap("p",contents); }
-function dt(contents) { return wrap("dt",contents); }
-function li(contents) { return wrap("li",contents); }
-
-function th(contents) { return wrap("th",contents); }
-function td(contents) { return wrap("td",contents); }
-
-function tr(cells) {
- var tr=empty("tr");
- for(var i=0;i";
- }
- return result;
-}
-
-function field_names(obj) {
- var result = "";
- for (var i in obj) {
- result += " " + i;
- }
- return result;
-}
-
-/* --- Data manipulation ---------------------------------------------------- */
-function swap(a,i,j) { // Note: this doesn't work on strings.
- var tmp=a[i];
- a[i]=a[j];
- a[j]=tmp;
- return a;
-}
-
-function sort(a) {
-// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Array/sort
- return a.sort();
- /* // Note: this doesn't work on strings.
- for(var i=0;i