diff options
| author | john.j.camilleri <john.j.camilleri@chalmers.se> | 2013-09-16 07:17:27 +0000 |
|---|---|---|
| committer | john.j.camilleri <john.j.camilleri@chalmers.se> | 2013-09-16 07:17:27 +0000 |
| commit | f5461eb3d4eb2605b546a4ed202c12bcdaa1f4e4 (patch) | |
| tree | 946c9e8542b8e8271b6b529a95c0400fa6613cb4 /contrib/summerschool | |
| parent | 8e1c6cca407c82fc09569d80c231b8d256735989 (diff) | |
Remove contribs and examples
Everything has now been moved to a separate repository at
https://github.com/GrammaticalFramework/gf-contrib
The contents of the examples folder are build during SetupWeb
Diffstat (limited to 'contrib/summerschool')
63 files changed, 0 insertions, 2907 deletions
diff --git a/contrib/summerschool/2013/bestPractices/Facebook.gf b/contrib/summerschool/2013/bestPractices/Facebook.gf deleted file mode 100644 index 859f6abff..000000000 --- a/contrib/summerschool/2013/bestPractices/Facebook.gf +++ /dev/null @@ -1,35 +0,0 @@ -abstract Facebook = { - -flags startcat = Action ; - -cat - SPerson; - Person; - Place; - Page; - Action; - Item ; - -fun - CheckIn : SPerson -> Place -> Action ; - BeFriends : SPerson -> Person -> Action ; - Like : SPerson -> Item -> Action ; - - SPersonToPerson : SPerson -> Person ; - MorePersons : SPerson -> Person -> Person ; - - PlaceToItem : Place -> Item ; - PageToItem : Page -> Item ; - ActionToItem : Action -> Item ; - - ---------- - -You : SPerson ; -John : SPerson; -Mary : SPerson; - -Frauinsel : Place; -GF : Page; - -}
\ No newline at end of file diff --git a/contrib/summerschool/2013/bestPractices/FacebookEng.gf b/contrib/summerschool/2013/bestPractices/FacebookEng.gf deleted file mode 100644 index 6f4a448d8..000000000 --- a/contrib/summerschool/2013/bestPractices/FacebookEng.gf +++ /dev/null @@ -1,14 +0,0 @@ - -concrete FacebookEng of Facebook = FacebookI with - (Syntax = SyntaxEng), - (LexFacebook = LexFacebookEng) ** - open ParadigmsEng in { - -lin -You = you_NP ; -John = mkNP (mkPN "John") ; -Mary = mkNP (mkPN "Mary") ; -Frauinsel = mkNP (mkPN "Frauinsel") ; -GF = mkNP (mkPN "GF") ; - -}
\ No newline at end of file diff --git a/contrib/summerschool/2013/bestPractices/FacebookI.gf b/contrib/summerschool/2013/bestPractices/FacebookI.gf deleted file mode 100644 index 5c798e1e3..000000000 --- a/contrib/summerschool/2013/bestPractices/FacebookI.gf +++ /dev/null @@ -1,29 +0,0 @@ -incomplete concrete FacebookI of Facebook = - open - Syntax, - Prelude, - LexFacebook - in -{ -lincat - SPerson = NP ; - Person = NP ; - Place = NP ; - Page = NP ; - Action = S ; - Item = NP ; - - -lin -SPersonToPerson sperson = sperson ; -MorePersons sperson person = mkNP and_Conj sperson person ; - -PlaceToItem place = place ; -PageToItem page = page ; -ActionToItem action = nounFromS action ; - -CheckIn sperson place = mkS pastTense (mkCl sperson (checkIn place)) ; -BeFriends sperson person = mkS pastTense (mkCl sperson (beFriends person)) ; -Like sperson item = like sperson item ; - -}
\ No newline at end of file diff --git a/contrib/summerschool/2013/bestPractices/LexFacebook.gf b/contrib/summerschool/2013/bestPractices/LexFacebook.gf deleted file mode 100644 index e6ee7b5c8..000000000 --- a/contrib/summerschool/2013/bestPractices/LexFacebook.gf +++ /dev/null @@ -1,8 +0,0 @@ -interface LexFacebook = open Syntax in -{ -oper -nounFromS : S -> NP ; -checkIn : NP -> VP ; -beFriends : NP -> VP ; -like : NP -> NP -> S ; -}
\ No newline at end of file diff --git a/contrib/summerschool/2013/bestPractices/LexFacebookEng.gf b/contrib/summerschool/2013/bestPractices/LexFacebookEng.gf deleted file mode 100644 index 1d065fdb4..000000000 --- a/contrib/summerschool/2013/bestPractices/LexFacebookEng.gf +++ /dev/null @@ -1,16 +0,0 @@ -instance LexFacebookEng of LexFacebook = - open SyntaxEng, - ParadigmsEng, - --ExtraEng, - IrregEng in -{ -oper - nounFromS s = mkNP (mkNP the_Det (mkCN (mkN "fact"))) (SyntaxEng.mkAdv that_Subj s) ; - - checkIn np = mkVP (mkV2 (partV (mkV "check") "in") (mkPrep "to")) np ; - - beFriends np = mkVP (mkVP (dirV2 become_V) (mkNP a_Art plNum (mkCN (mkN "friend")))) (SyntaxEng.mkAdv (mkPrep "with") np) ; - - like np1 np2 = mkS (mkCl np1 (mkVP (dirV2 (mkV "like")) np2)) ; - -}
\ No newline at end of file diff --git a/contrib/summerschool/2013/bestPractices/corpus.txt b/contrib/summerschool/2013/bestPractices/corpus.txt deleted file mode 100644 index 7ff207000..000000000 --- a/contrib/summerschool/2013/bestPractices/corpus.txt +++ /dev/null @@ -1,7 +0,0 @@ -You and John are now friends. You became friends with John. -You became friends with John and Mary. -You checked in to Frauinsel. -You like GF. -You like Frauinsel. -You like that John checked in to Frauinsel. -You like that you became friends with John and Mary. diff --git a/contrib/summerschool/foods/CharactersGla.gf b/contrib/summerschool/foods/CharactersGla.gf deleted file mode 100644 index 453741a52..000000000 --- a/contrib/summerschool/foods/CharactersGla.gf +++ /dev/null @@ -1,12 +0,0 @@ -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/contrib/summerschool/foods/CharactersGle.gf b/contrib/summerschool/foods/CharactersGle.gf deleted file mode 100644 index 4e7f454cc..000000000 --- a/contrib/summerschool/foods/CharactersGle.gf +++ /dev/null @@ -1,12 +0,0 @@ -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/contrib/summerschool/foods/Foods.gf b/contrib/summerschool/foods/Foods.gf deleted file mode 100644 index 8ea02f39d..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsAfr.gf b/contrib/summerschool/foods/FoodsAfr.gf deleted file mode 100644 index 1a251ceb3..000000000 --- a/contrib/summerschool/foods/FoodsAfr.gf +++ /dev/null @@ -1,76 +0,0 @@ --- (c) 2009 Laurette Pretorius Sr & Jr and Ansu Berg under LGPL - -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/contrib/summerschool/foods/FoodsAmh.gf b/contrib/summerschool/foods/FoodsAmh.gf deleted file mode 100644 index e8915d86f..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsBul.gf b/contrib/summerschool/foods/FoodsBul.gf deleted file mode 100644 index ac9127669..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsCat.gf b/contrib/summerschool/foods/FoodsCat.gf deleted file mode 100644 index 5ad38d0dc..000000000 --- a/contrib/summerschool/foods/FoodsCat.gf +++ /dev/null @@ -1,7 +0,0 @@ ---# -path=.:present - --- (c) 2009 Jordi Saludes under LGPL - -concrete FoodsCat of Foods = FoodsI with - (Syntax = SyntaxCat), - (LexFoods = LexFoodsCat) ; diff --git a/contrib/summerschool/foods/FoodsChi.gf b/contrib/summerschool/foods/FoodsChi.gf deleted file mode 100644 index 163aa0eb1..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsCze.gf b/contrib/summerschool/foods/FoodsCze.gf deleted file mode 100644 index 3fec68141..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsDut.gf b/contrib/summerschool/foods/FoodsDut.gf deleted file mode 100644 index d4855e5c6..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsEng.gf b/contrib/summerschool/foods/FoodsEng.gf deleted file mode 100644 index e7359a4ff..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsEpo.gf b/contrib/summerschool/foods/FoodsEpo.gf deleted file mode 100644 index dd2400fe7..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsFin.gf b/contrib/summerschool/foods/FoodsFin.gf deleted file mode 100644 index 34da5764b..000000000 --- a/contrib/summerschool/foods/FoodsFin.gf +++ /dev/null @@ -1,7 +0,0 @@ ---# -path=.:present - --- (c) 2009 Aarne Ranta under LGPL - -concrete FoodsFin of Foods = FoodsI with - (Syntax = SyntaxFin), - (LexFoods = LexFoodsFin) ; diff --git a/contrib/summerschool/foods/FoodsFre.gf b/contrib/summerschool/foods/FoodsFre.gf deleted file mode 100644 index ac6c8c63c..000000000 --- a/contrib/summerschool/foods/FoodsFre.gf +++ /dev/null @@ -1,32 +0,0 @@ ---# -path=.:../foods:present - -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") ; - }
\ No newline at end of file diff --git a/contrib/summerschool/foods/FoodsGer.gf b/contrib/summerschool/foods/FoodsGer.gf deleted file mode 100644 index 934cefb9c..000000000 --- a/contrib/summerschool/foods/FoodsGer.gf +++ /dev/null @@ -1,7 +0,0 @@ ---# -path=.:present - --- (c) 2009 Aarne Ranta under LGPL - -concrete FoodsGer of Foods = FoodsI with - (Syntax = SyntaxGer), - (LexFoods = LexFoodsGer) ; diff --git a/contrib/summerschool/foods/FoodsGla.gf b/contrib/summerschool/foods/FoodsGla.gf deleted file mode 100644 index 691b26bb8..000000000 --- a/contrib/summerschool/foods/FoodsGla.gf +++ /dev/null @@ -1,66 +0,0 @@ -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/contrib/summerschool/foods/FoodsGle.gf b/contrib/summerschool/foods/FoodsGle.gf deleted file mode 100644 index e48c0c21b..000000000 --- a/contrib/summerschool/foods/FoodsGle.gf +++ /dev/null @@ -1,59 +0,0 @@ -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/contrib/summerschool/foods/FoodsHeb.gf b/contrib/summerschool/foods/FoodsHeb.gf deleted file mode 100644 index 3d76b639f..000000000 --- a/contrib/summerschool/foods/FoodsHeb.gf +++ /dev/null @@ -1,108 +0,0 @@ ---# -path=alltenses - ---(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/contrib/summerschool/foods/FoodsHin.gf b/contrib/summerschool/foods/FoodsHin.gf deleted file mode 100644 index 67c29df8b..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsI.gf b/contrib/summerschool/foods/FoodsI.gf deleted file mode 100644 index f4113b724..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsIce.gf b/contrib/summerschool/foods/FoodsIce.gf deleted file mode 100644 index 9889d5da7..000000000 --- a/contrib/summerschool/foods/FoodsIce.gf +++ /dev/null @@ -1,84 +0,0 @@ ---# -path=.:prelude - --- (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 "vn" "vn" 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" "flatbkur" Fem ; - Very qual = {s = \\g,n,defOrInd => "mjg" ++ qual.s ! g ! n ! defOrInd } ; - Fresh = regAdj "ferskur" ; - Warm = regAdj "heitur" ; - Boring = regAdj "leiinlegur" ; - -- the order of the given adj forms is: mSg fSg nSg mPl fPl nPl mSgDef f/nSgDef _PlDef - Italian = adjective "talskur" "tlsk" "talskt" "talskir" "talskar" "tlsk" "talski" "talska" "talsku" ; - Expensive = adjective "dr" "dr" "drt" "drir" "drar" "dr" "dri" "dra" "dru" ; - Delicious = adjective "ljffengur" "ljffeng" "ljffengt" "ljffengir" "ljffengar" "ljffeng" "ljffengi" "ljffenga" "ljffengu" ; - - 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 <g,n,t> 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/contrib/summerschool/foods/FoodsIta.gf b/contrib/summerschool/foods/FoodsIta.gf deleted file mode 100644 index 51baf9d70..000000000 --- a/contrib/summerschool/foods/FoodsIta.gf +++ /dev/null @@ -1,8 +0,0 @@ ---# -path=.:present - --- (c) 2009 Aarne Ranta under LGPL - -concrete FoodsIta of Foods = FoodsI with - (Syntax = SyntaxIta), - (LexFoods = LexFoodsIta) ; - diff --git a/contrib/summerschool/foods/FoodsJpn.gf b/contrib/summerschool/foods/FoodsJpn.gf deleted file mode 100644 index 9525ff16b..000000000 --- a/contrib/summerschool/foods/FoodsJpn.gf +++ /dev/null @@ -1,72 +0,0 @@ ---# -path=.:../lib/src/prelude - --- (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/contrib/summerschool/foods/FoodsLav.gf b/contrib/summerschool/foods/FoodsLav.gf deleted file mode 100644 index efab63450..000000000 --- a/contrib/summerschool/foods/FoodsLav.gf +++ /dev/null @@ -1,91 +0,0 @@ ---# -path=.:prelude - --- (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/contrib/summerschool/foods/FoodsMlt.gf b/contrib/summerschool/foods/FoodsMlt.gf deleted file mode 100644 index 5fcd4de78..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsMon.gf b/contrib/summerschool/foods/FoodsMon.gf deleted file mode 100644 index eda2012f4..000000000 --- a/contrib/summerschool/foods/FoodsMon.gf +++ /dev/null @@ -1,49 +0,0 @@ ---# -path=.:/GF/lib/src/prelude - --- (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/contrib/summerschool/foods/FoodsNep.gf b/contrib/summerschool/foods/FoodsNep.gf deleted file mode 100644 index ea02e64a6..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsOri.gf b/contrib/summerschool/foods/FoodsOri.gf deleted file mode 100644 index ad4f492f6..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/FoodsPes.gf b/contrib/summerschool/foods/FoodsPes.gf deleted file mode 100644 index c2e631e81..000000000 --- a/contrib/summerschool/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 <a,n> of
- {<Indep,Sg> => pytzA ; <Indep,Pl> => pytzAhA ;
- <Attr,Sg> =>pytzA ; <Attr,Pl> => 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/contrib/summerschool/foods/FoodsPor.gf b/contrib/summerschool/foods/FoodsPor.gf deleted file mode 100644 index 2a497f8fe..000000000 --- a/contrib/summerschool/foods/FoodsPor.gf +++ /dev/null @@ -1,77 +0,0 @@ --- (c) 2009 Rami Shashati under LGPL - -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/contrib/summerschool/foods/FoodsRon.gf b/contrib/summerschool/foods/FoodsRon.gf deleted file mode 100644 index d7d917ffc..000000000 --- a/contrib/summerschool/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 <n,g> of
-{<Sg,Masc> => scump ; <Sg,Fem> => scumpa;
-<Pl,Masc> => scumpi ; <Pl,Fem> => scumpe
-}};
-
-copula : Number => Str = table {Sg => "este" ; Pl => "sunt"};
-
-getAgrGender : NGender -> Number -> Gender = \ng,n ->
-case <ng,n> of
-{<NMasc,_> => Masc ; <NFem,_> => Fem;
-<NNeut,Sg> => Masc ; <NNeut,Pl> => Fem
-};
-
-}
diff --git a/contrib/summerschool/foods/FoodsSpa.gf b/contrib/summerschool/foods/FoodsSpa.gf deleted file mode 100644 index 972282ae5..000000000 --- a/contrib/summerschool/foods/FoodsSpa.gf +++ /dev/null @@ -1,31 +0,0 @@ ---# -path=.:present
-
-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/contrib/summerschool/foods/FoodsSwe.gf b/contrib/summerschool/foods/FoodsSwe.gf deleted file mode 100644 index cbb35fb98..000000000 --- a/contrib/summerschool/foods/FoodsSwe.gf +++ /dev/null @@ -1,7 +0,0 @@ ---# -path=.:present - --- (c) 2009 Aarne Ranta under LGPL - -concrete FoodsSwe of Foods = FoodsI with - (Syntax = SyntaxSwe), - (LexFoods = LexFoodsSwe) ** {flags language = sv_SE;} ; diff --git a/contrib/summerschool/foods/FoodsTha.gf b/contrib/summerschool/foods/FoodsTha.gf deleted file mode 100644 index b031a7e2f..000000000 --- a/contrib/summerschool/foods/FoodsTha.gf +++ /dev/null @@ -1,33 +0,0 @@ ---# -path=.:alltenses
-
-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/contrib/summerschool/foods/FoodsTsn.gf b/contrib/summerschool/foods/FoodsTsn.gf deleted file mode 100644 index a7a69a1a5..000000000 --- a/contrib/summerschool/foods/FoodsTsn.gf +++ /dev/null @@ -1,178 +0,0 @@ ---# -path=alltenses - --- (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/contrib/summerschool/foods/FoodsTur.gf b/contrib/summerschool/foods/FoodsTur.gf deleted file mode 100644 index 9d6cd0350..000000000 --- a/contrib/summerschool/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 ++ "&+" ++ 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/contrib/summerschool/foods/FoodsUrd.gf b/contrib/summerschool/foods/FoodsUrd.gf deleted file mode 100644 index 186b2f929..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/LexFoods.gf b/contrib/summerschool/foods/LexFoods.gf deleted file mode 100644 index 12ace208c..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/LexFoodsCat.gf b/contrib/summerschool/foods/LexFoodsCat.gf deleted file mode 100644 index 624fc98c8..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/LexFoodsFin.gf b/contrib/summerschool/foods/LexFoodsFin.gf deleted file mode 100644 index 4cf26511a..000000000 --- a/contrib/summerschool/foods/LexFoodsFin.gf +++ /dev/null @@ -1,20 +0,0 @@ --- (c) 2009 Aarne Ranta under LGPL - -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/contrib/summerschool/foods/LexFoodsGer.gf b/contrib/summerschool/foods/LexFoodsGer.gf deleted file mode 100644 index a420e22d3..000000000 --- a/contrib/summerschool/foods/LexFoodsGer.gf +++ /dev/null @@ -1,16 +0,0 @@ --- (c) 2009 Aarne Ranta under LGPL - -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/contrib/summerschool/foods/LexFoodsIta.gf b/contrib/summerschool/foods/LexFoodsIta.gf deleted file mode 100644 index 11de5fcda..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/LexFoodsSwe.gf b/contrib/summerschool/foods/LexFoodsSwe.gf deleted file mode 100644 index 72e7e3e86..000000000 --- a/contrib/summerschool/foods/LexFoodsSwe.gf +++ /dev/null @@ -1,16 +0,0 @@ --- (c) 2009 Aarne Ranta under LGPL - -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/contrib/summerschool/foods/Makefile b/contrib/summerschool/foods/Makefile deleted file mode 100644 index 5738bc281..000000000 --- a/contrib/summerschool/foods/Makefile +++ /dev/null @@ -1,8 +0,0 @@ - -all:: Foods.pgf - -Foods.pgf: Foods???.gf - gf -make -s -optimize-pgf Foods???.gf - -clean: - rm -rf *.gfo Foods.pgf diff --git a/contrib/summerschool/foods/MutationsGla.gf b/contrib/summerschool/foods/MutationsGla.gf deleted file mode 100644 index 41eb11006..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/MutationsGle.gf b/contrib/summerschool/foods/MutationsGle.gf deleted file mode 100644 index 9ae734a90..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/README b/contrib/summerschool/foods/README deleted file mode 100644 index 64bc4ed5b..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/ResCze.gf b/contrib/summerschool/foods/ResCze.gf deleted file mode 100644 index 56b4aa6ee..000000000 --- a/contrib/summerschool/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/contrib/summerschool/foods/transFoodsHin.gf b/contrib/summerschool/foods/transFoodsHin.gf deleted file mode 100644 index 21d1d2ac1..000000000 --- a/contrib/summerschool/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/contrib/summerschool/mini/Grammar.gf b/contrib/summerschool/mini/Grammar.gf deleted file mode 100644 index ba2db75a2..000000000 --- a/contrib/summerschool/mini/Grammar.gf +++ /dev/null @@ -1,36 +0,0 @@ -abstract Grammar = { - - flags startcat = S ; - - cat - S ; Cl ; NP ; VP ; AP ; CN ; - Det ; N ; A ; V ; V2 ; AdA ; - Tense ; Pol ; - Conj ; - fun - UseCl : Tense -> Pol -> Cl -> S ; - PredVP : NP -> VP -> Cl ; - ComplV2 : V2 -> NP -> VP ; - DetCN : Det -> CN -> NP ; - ModCN : AP -> CN -> CN ; - - CompAP : AP -> VP ; - AdAP : AdA -> AP -> AP ; - - ConjNP : Conj -> NP -> NP -> NP ; - - UseV : V -> VP ; - UseN : N -> CN ; - UseA : A -> AP ; - - a_Det, the_Det : Det ; - this_Det, these_Det : Det ; - that_Det, those_Det : Det ; - i_NP, she_NP, we_NP : NP ; - very_AdA : AdA ; - - Pos, Neg : Pol ; - Pres, Perf : Tense ; - - and_Conj, or_Conj : Conj ; -} diff --git a/contrib/summerschool/mini/GrammarIta.gf b/contrib/summerschool/mini/GrammarIta.gf deleted file mode 100644 index 0663180b8..000000000 --- a/contrib/summerschool/mini/GrammarIta.gf +++ /dev/null @@ -1,137 +0,0 @@ -concrete GrammarIta of Grammar = open ResIta, Prelude in { - lincat - S = {s : Str} ; - Cl = {s : ResIta.Tense => Bool => Str} ; - NP = ResIta.NP ; - -- {s : Case => {clit,obj : Str ; isClit : Bool} ; a : Agr} ; - VP = ResIta.VP ; - -- {v : Verb ; clit : Str ; clitAgr : ClitAgr ; obj : Agr => Str} ; - AP = {s : Gender => Number => Str ; isPre : Bool} ; - CN = Noun ; -- {s : Number => Str ; g : Gender} ; - Det = {s : Gender => Case => Str ; n : Number} ; - N = Noun ; -- {s : Number => Str ; g : Gender} ; - A = Adj ; -- {s : Gender => Number => Str ; isPre : Bool} ; - V = Verb ; -- {s : VForm => Str ; aux : Aux} ; - V2 = Verb ** {c : Case} ; - AdA = {s : Str} ; - Pol = {s : Str ; b : Bool} ; - Tense = {s : Str ; t : ResIta.Tense} ; - Conj = {s : Str ; n : Number} ; - lin - UseCl t p cl = {s = t.s ++ p.s ++ cl.s ! t.t ! p.b} ; - PredVP np vp = - let - subj = (np.s ! Nom).obj ; - obj = vp.obj ! np.a ; - clit = vp.clit ; - verb = table { - Pres => agrV vp.v np.a ; - Perf => agrV (auxVerb vp.v.aux) np.a ++ agrPart vp.v np.a vp.clitAgr - } - in { - s = \\t,b => subj ++ neg b ++ clit ++ verb ! t ++ obj - } ; - - ComplV2 v2 np = - let - nps = np.s ! v2.c - in { - v = {s = v2.s ; aux = v2.aux} ; - clit = nps.clit ; - clitAgr = case <nps.isClit,v2.c> of { - <True,Acc> => CAgr np.a ; - _ => CAgrNo - } ; - obj = \\_ => nps.obj - } ; - - UseV v = { - v = v ; - clit = [] ; - clitAgr = CAgrNo ; - obj = \\_ => [] - } ; - - DetCN det cn = { - s = \\c => { - obj = det.s ! cn.g ! c ++ cn.s ! det.n ; - clit = [] ; - isClit = False - } ; - a = Ag cn.g det.n Per3 - } ; - - ModCN ap cn = { - s = \\n => preOrPost ap.isPre (ap.s ! cn.g ! n) (cn.s ! n) ; - g = cn.g - } ; - - CompAP ap = { - v = essere_V ; - clit = [] ; - clitAgr = CAgrNo ; - obj = \\ag => case ag of { - Ag g n _ => ap.s ! g ! n - } - } ; - - AdAP ada ap = { - s = \\g,n => ada.s ++ ap.s ! g ! n ; - isPre = ap.isPre ; - } ; - - ConjNP co nx ny = { - s = \\c => { - obj = (nx.s ! c).obj ++ co.s ++ (ny.s ! c).obj ; - clit = [] ; - isClit = False - } ; - a = ny.a ; ---- should be conjAgr co.n nx.a ny.a - } ; - - UseN n = n ; - - UseA adj = adj ; - - a_Det = adjDet (mkAdj "un" "una" [] [] True) Sg ; - - the_Det = { - s = table { - Masc => table { - Nom | Acc => elisForms "lo" "l'" "il" ; - Dat => elisForms "allo" "all'" "al" - } ; - Fem => table { - Nom | Acc => elisForms "la" "'l" "la" ; - Dat => elisForms "alla" "all'" "alla" - } - } ; - n = Sg - } ; - - this_Det = adjDet (regAdj "questo") Sg ; - these_Det = adjDet (regAdj "questo") Pl ; - that_Det = adjDet quello_A Sg ; - those_Det = adjDet quello_A Pl ; - - i_NP = pronNP "io" "mi" "mi" Masc Sg Per1 ; - she_NP = pronNP "lei" "la" "le" Fem Sg Per3 ; - we_NP = pronNP "noi" "ci" "ci" Masc Pl Per1 ; - - very_AdA = ss "molto" ; - - Pos = {s = [] ; b = True} ; - Neg = {s = [] ; b = False} ; - Pres = {s = [] ; t = ResIta.Pres} ; - Perf = {s = [] ; t = ResIta.Perf} ; - - and_Conj = {s = "e" ; n = Pl} ; - or_Conj = {s = "o" ; n = Sg} ; - - oper - quello_A : Adj = mkAdj - (elisForms "quello" "quell'" "quel") "quella" - (elisForms "quegli" "quegli" "quei") "quelle" - True ; - -} diff --git a/contrib/summerschool/mini/ParadigmsIta.gf b/contrib/summerschool/mini/ParadigmsIta.gf deleted file mode 100644 index 010140a62..000000000 --- a/contrib/summerschool/mini/ParadigmsIta.gf +++ /dev/null @@ -1,47 +0,0 @@ -resource ParadigmsIta = GrammarIta [N,A,V] ** - open ResIta, GrammarIta, Prelude in { - -oper - masculine : Gender = Masc ; - feminine : Gender = Fem ; - - accusative : Case = Acc ; - dative : Case = Dat ; - - mkN = overload { - mkN : (vino : Str) -> N - = \n -> lin N (regNoun n) ; - mkN : (uomo, uomini : Str) -> Gender -> N - = \s,p,g -> lin N (mkNoun s p g) ; - } ; - - mkA = overload { - mkA : (nero : Str) -> A - = \a -> lin A (regAdj a) ; - mkA : (buono,buona,buoni,buone : Str) -> Bool -> A - = \sm,sf,pm,pf,p -> lin A (mkAdj sm sf pm pf False) ; - } ; - - preA : A -> A - = \a -> lin A {s = a.s ; isPre = True} ; - - mkV = overload { - mkV : (finire : Str) -> V - = \v -> lin V (regVerb v) ; - mkV : (andare,vado,vadi,va,andiamo,andate,vanno,andato : Str) -> V - = \i,p1,p2,p3,p4,p5,p6,p -> lin V (mkVerb i p1 p2 p3 p4 p5 p6 p Avere) ; - } ; - - essereV : V -> V - = \v -> lin V {s = v.s ; aux = Essere} ; - - mkV2 = overload { - mkV2 : Str -> V2 - = \s -> lin V2 (regVerb s ** {c = accusative}) ; - mkV2 : V -> V2 - = \v -> lin V2 (v ** {c = accusative}) ; - mkV2 : V -> Case -> V2 - = \v,c -> lin V2 (v ** {c = c}) ; - } ; - -} diff --git a/contrib/summerschool/mini/ResIta.gf b/contrib/summerschool/mini/ResIta.gf deleted file mode 100644 index f39db69f9..000000000 --- a/contrib/summerschool/mini/ResIta.gf +++ /dev/null @@ -1,178 +0,0 @@ -resource ResIta = open Prelude in { - --- parameters - -param - Number = Sg | Pl ; - Gender = Masc | Fem ; - Case = Nom | Acc | Dat ; - Agr = Ag Gender Number Person ; - Aux = Avere | Essere ; - Tense = Pres | Perf ; - Person = Per1 | Per2 | Per3 ; - - VForm = VInf | VPres Number Person | VPart Gender Number ; - - ClitAgr = CAgrNo | CAgr Agr ; - --- parts of speech - -oper - VP = { - v : Verb ; - clit : Str ; - clitAgr : ClitAgr ; - obj : Agr => Str - } ; - NP = { - s : Case => {clit,obj : Str ; isClit : Bool} ; - a : Agr - } ; - --- the preposition word of an abstract case - - prepCase : Case -> Str = \c -> case c of { - Dat => "a" ; - _ => [] - } ; - --- for predication - - agrV : Verb -> Agr -> Str = \v,a -> case a of { - Ag _ n p => v.s ! VPres n p - } ; - - auxVerb : Aux -> Verb = \a -> case a of { - Avere => - mkVerb "avere" "ho" "hai" "ha" "abbiamo" "avete" "hanno" "avuto" Avere ; - Essere => - mkVerb "essere" "sono" "sei" "" "siamo" "siete" "sono" "stato" Essere - } ; - - agrPart : Verb -> Agr -> ClitAgr -> Str = \v,a,c -> case v.aux of { - Avere => case c of { - CAgr (Ag g n _) => v.s ! VPart g n ; - _ => v.s ! VPart Masc Sg - } ; - Essere => case a of { - Ag g n _ => v.s ! VPart g n - } - } ; - - neg : Bool -> Str = \b -> case b of {True => [] ; False => "non"} ; - - essere_V = auxVerb Essere ; - --- for coordination - - conjAgr : Number -> Agr -> Agr -> Agr = \n,xa,ya -> - let - x = agrFeatures xa ; y = agrFeatures ya - in Ag - (conjGender x.g y.g) - (conjNumber (conjNumber x.n y.n) n) - (conjPerson x.p y.p) ; - - agrFeatures : Agr -> {g : Gender ; n : Number ; p : Person} = \a -> - case a of {Ag g n p => {g = g ; n = n ; p = p}} ; - - conjGender : Gender -> Gender -> Gender = \g,h -> - case g of {Masc => Masc ; _ => h} ; - - conjNumber : Number -> Number -> Number = \m,n -> - case m of {Pl => Pl ; _ => n} ; - - conjPerson : Person -> Person -> Person = \p,q -> - case <p,q> of { - <Per1,_> | <_,Per1> => Per1 ; - <Per2,_> | <_,Per2> => Per2 ; - _ => Per3 - } ; - - - --- for morphology - - Noun : Type = {s : Number => Str ; g : Gender} ; - Adj : Type = {s : Gender => Number => Str ; isPre : Bool} ; - Verb : Type = {s : VForm => Str ; aux : Aux} ; - - mkNoun : Str -> Str -> Gender -> Noun = \vino,vini,g -> { - s = table {Sg => vino ; Pl => vini} ; - g = g - } ; - - regNoun : Str -> Noun = \vino -> case vino of { - fuo + c@("c"|"g") + "o" => mkNoun vino (fuo + c + "hi") Masc ; - ol + "io" => mkNoun vino (ol + "i") Masc ; - vin + "o" => mkNoun vino (vin + "i") Masc ; - cas + "a" => mkNoun vino (cas + "e") Fem ; - pan + "e" => mkNoun vino (pan + "i") Masc ; - _ => mkNoun vino vino Masc - } ; - - mkAdj : (_,_,_,_ : Str) -> Bool -> Adj = \buono,buona,buoni,buone,p -> { - s = table { - Masc => table {Sg => buono ; Pl => buoni} ; - Fem => table {Sg => buona ; Pl => buone} - } ; - isPre = p - } ; - - regAdj : Str -> Adj = \nero -> case nero of { - ner + "o" => mkAdj nero (ner + "a") (ner + "i") (ner + "e") False ; - verd + "e" => mkAdj nero nero (verd + "i") (verd + "i") False ; - _ => mkAdj nero nero nero nero False - } ; - - mkVerb : (_,_,_,_,_,_,_,_ : Str) -> Aux -> Verb = - \amare,amo,ami,ama,amiamo,amate,amano,amato,aux -> { - s = table { - VInf => amare ; - VPres Sg Per1 => amo ; - VPres Sg Per2 => ami ; - VPres Sg Per3 => ama ; - VPres Pl Per1 => amiamo ; - VPres Pl Per2 => amate ; - VPres Pl Per3 => amano ; - VPart g n => (regAdj amato).s ! g ! n - } ; - aux = aux - } ; - - regVerb : Str -> Verb = \amare -> case amare of { - am + "are" => mkVerb amare (am+"o") (am+"i") (am+"a") - (am+"iamo") (am+"ate") (am+"ano") (am+"ato") Avere ; - tem + "ere" => mkVerb amare (tem+"o") (tem+"i") (tem+"e") - (tem+"iamo") (tem+"ete") (tem+"ono") (tem+"uto") Avere ; - fin + "ire" => mkVerb amare (fin+"isco") (fin+"isci") (fin+"isce") - (fin+"iamo") (fin+"ite") (fin+"iscono") (fin+"ito") Avere - } ; - --- for structural words - - adjDet : Adj -> Number -> {s : Gender => Case => Str ; n : Number} = - \adj,n -> { - s = \\g,c => prepCase c ++ adj.s ! g ! n ; - n = n - } ; - - pronNP : (s,a,d : Str) -> Gender -> Number -> Person -> NP = - \s,a,d,g,n,p -> { - s = table { - Nom => {clit = [] ; obj = s ; isClit = False} ; - Acc => {clit = a ; obj = [] ; isClit = True} ; - Dat => {clit = d ; obj = [] ; isClit = True} - } ; - a = Ag g n p - } ; - --- phonological auxiliaries - - vowel : pattern Str = #("a" | "e" | "i" | "o" | "u" | "h") ; - s_impuro : pattern Str = #("z" | "s" + ("b"|"c"|"d"|"f"|"m"|"p"|"q"|"t")) ; - - elisForms : (_,_,_ : Str) -> Str = \lo,l',il -> - pre {#s_impuro => lo ; #vowel => l' ; _ => il} ; - -} diff --git a/contrib/summerschool/mini/Syntax.gf b/contrib/summerschool/mini/Syntax.gf deleted file mode 100644 index 0941f9600..000000000 --- a/contrib/summerschool/mini/Syntax.gf +++ /dev/null @@ -1,45 +0,0 @@ -interface Syntax = Grammar - - [UseCl,PredVP,ComplV2,UseV,DetCN,ModCN,CompAP,AdAP, - UseN,UseA,Pres,Perf,Pos,Neg] ** - open Grammar in { - -oper - mkS = overload { - mkS : Cl -> S = UseCl Pres Pos ; - mkS : Tense -> Cl -> S = \t -> UseCl t Pos ; - mkS : Pol -> Cl -> S = UseCl Pres ; - mkS : Tense -> Pol -> Cl -> S = UseCl ; - } ; - - mkCl = overload { - mkCl : NP -> V -> Cl = \np,v -> PredVP np (UseV v) ; - mkCl : NP -> V2 -> NP -> Cl = \np,v,o -> PredVP np (ComplV2 v o) ; - mkCl : NP -> A -> Cl = \np,a -> PredVP np (CompAP (UseA a)) ; - mkCl : NP -> AP -> Cl = \np,ap -> PredVP np (CompAP ap) ; - mkCl : NP -> VP -> Cl = PredVP ; - } ; - - mkAP = overload { - mkAP : A -> AP = UseA ; - mkAP : AdA -> AP -> AP = AdAP ; - } ; - - mkNP = overload { - mkNP : Det -> N -> NP = \d,n -> DetCN d (UseN n) ; - mkNP : Det -> CN -> NP = \d,n -> DetCN d n ; - } ; - - mkCN = overload { - mkCN : N -> CN = UseN ; - mkCN : A -> N -> CN = \a,n -> ModCN (UseA a) (UseN n) ; - mkCN : A -> CN -> CN = \a,n -> ModCN (UseA a) n ; - mkCN : AP -> N -> CN = \a,n -> ModCN a (UseN n) ; - mkCN : AP -> CN -> CN = \a,n -> ModCN a n ; - } ; - - presTense : Tense = Pres ; - perfTense : Tense = Perf ; - posPol : Pol = Pos ; - negPol : Pol = Neg ; - -} diff --git a/contrib/summerschool/mini/SyntaxIta.gf b/contrib/summerschool/mini/SyntaxIta.gf deleted file mode 100644 index b4562b0de..000000000 --- a/contrib/summerschool/mini/SyntaxIta.gf +++ /dev/null @@ -1,3 +0,0 @@ -instance SyntaxIta of Syntax = GrammarIta - - [PredVP,ComplV2,UseV,DetCN,ModCN,CompAP,AdAP,UseN,UseA] ** - open GrammarIta in {} ; diff --git a/contrib/summerschool/mini/Test.gf b/contrib/summerschool/mini/Test.gf deleted file mode 100644 index ebe55e7e0..000000000 --- a/contrib/summerschool/mini/Test.gf +++ /dev/null @@ -1,9 +0,0 @@ -abstract Test = Grammar ** { - -fun - man_N, woman_N, house_N, tree_N : N ; - big_A, small_A, green_A : A ; - walk_V, arrive_V : V ; - love_V2, please_V2 : V2 ; - -} ; diff --git a/contrib/summerschool/mini/TestIta.gf b/contrib/summerschool/mini/TestIta.gf deleted file mode 100644 index 8ae524371..000000000 --- a/contrib/summerschool/mini/TestIta.gf +++ /dev/null @@ -1,17 +0,0 @@ -concrete TestIta of Test = GrammarIta ** open ParadigmsIta in { - -lin - man_N = mkN "uomo" "uomini" masculine ; - woman_N = mkN "donna" ; - house_N = mkN "casa" ; - tree_N = mkN "albero" ; - big_A = preA (mkA "grande") ; - small_A = preA (mkA "piccolo") ; - green_A = mkA "verde" ; - walk_V = mkV "camminare" ; - arrive_V = essereV (mkV "arrivare") ; - love_V2 = mkV2 "amare" ; - please_V2 = mkV2 (essereV (mkV "piacere" "piaccio" "piaci" "piace" - "piacciamo" "piacete" "piacciono" "piaciuto")) dative ; - -} ; |
