From 6df8bd62d3be44b6a3fcce60c771f998ecad3178 Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Tue, 3 Sep 2013 09:02:29 +0200 Subject: [PATCH] Try to fix encoding probs by converting to utf8 --- samples/Grammatical Framework/FoodsAfr.gf | 51 +++++++++++--------- samples/Grammatical Framework/FoodsIce.gf | 44 ++++++++--------- samples/Grammatical Framework/FoodsPor.gf | 38 ++++++++------- samples/Grammatical Framework/LexFoodsFin.gf | 15 +++--- samples/Grammatical Framework/LexFoodsGer.gf | 9 ++-- samples/Grammatical Framework/LexFoodsSwe.gf | 9 ++-- 6 files changed, 87 insertions(+), 79 deletions(-) diff --git a/samples/Grammatical Framework/FoodsAfr.gf b/samples/Grammatical Framework/FoodsAfr.gf index 1a251ceb..d0226710 100644 --- a/samples/Grammatical Framework/FoodsAfr.gf +++ b/samples/Grammatical Framework/FoodsAfr.gf @@ -1,76 +1,79 @@ -- (c) 2009 Laurette Pretorius Sr & Jr and Ansu Berg under LGPL concrete FoodsAfr of Foods = open Prelude, Predef in{ + + flags coding=utf8; + lincat Comment = {s: Str} ; Kind = {s: Number => Str} ; Item = {s: Str ; n: Number} ; Quality = {s: AdjAP => Str} ; - - lin + + 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"}}; - + {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 ; - + in mkAdj (v + "ë") w ; + declAdj_oog : Str -> {s : AdjAP=> Str} = \w -> let v = init w - in + in let i = init v - in mkAdj (i + "ë") w ; - + 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 + + + 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 + _ => declAdj_e a }; } diff --git a/samples/Grammatical Framework/FoodsIce.gf b/samples/Grammatical Framework/FoodsIce.gf index 9889d5da..ab1297c7 100644 --- a/samples/Grammatical Framework/FoodsIce.gf +++ b/samples/Grammatical Framework/FoodsIce.gf @@ -4,32 +4,32 @@ concrete FoodsIce of Foods = open Prelude in { ---flags coding=utf8; + 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} ; + 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" ; + This, That = det Sg "þessi" "þessi" "þetta" ; + These, Those = det Pl "þessir" "þessar" "þessi" ; Mod quality kind = { s = \\n => quality.s ! kind.g ! n ! Def ++ kind.s ! n ; g = kind.g } ; - Wine = noun "vín" "vín" Neutr ; - Cheese = noun "ostur" "ostar" Masc ; - Fish = noun "fiskur" "fiskar" Masc ; + Wine = noun "vín" "vín" Neutr ; + Cheese = noun "ostur" "ostar" Masc ; + Fish = noun "fiskur" "fiskar" Masc ; -- the word "pizza" is more commonly used in Iceland, but "flatbaka" is the Icelandic word for it - Pizza = noun "flatbaka" "flatbökur" Fem ; - Very qual = {s = \\g,n,defOrInd => "mjög" ++ qual.s ! g ! n ! defOrInd } ; + Pizza = noun "flatbaka" "flatbökur" Fem ; + Very qual = {s = \\g,n,defOrInd => "mjög" ++ qual.s ! g ! n ! defOrInd } ; Fresh = regAdj "ferskur" ; Warm = regAdj "heitur" ; - Boring = regAdj "leiðinlegur" ; + Boring = regAdj "leiðinlegur" ; -- the order of the given adj forms is: mSg fSg nSg mPl fPl nPl mSgDef f/nSgDef _PlDef - Italian = adjective "ítalskur" "ítölsk" "ítalskt" "ítalskir" "ítalskar" "ítölsk" "ítalski" "ítalska" "ítalsku" ; - Expensive = adjective "dýr" "dýr" "dýrt" "dýrir" "dýrar" "dýr" "dýri" "dýra" "dýru" ; - Delicious = adjective "ljúffengur" "ljúffeng" "ljúffengt" "ljúffengir" "ljúffengar" "ljúffeng" "ljúffengi" "ljúffenga" "ljúffengu" ; + Italian = adjective "ítalskur" "ítölsk" "ítalskt" "ítalskir" "ítalskar" "ítölsk" "ítalski" "ítalska" "ítalsku" ; + Expensive = adjective "dýr" "dýr" "dýrt" "dýrir" "dýrar" "dýr" "dýri" "dýra" "dýru" ; + Delicious = adjective "ljúffengur" "ljúffeng" "ljúffengt" "ljúffengir" "ljúffengar" "ljúffeng" "ljúffengi" "ljúffenga" "ljúffengu" ; param Number = Sg | Pl ; @@ -37,19 +37,19 @@ concrete FoodsIce of Foods = open Prelude in { Defin = Ind | Def ; oper - det : Number -> Str -> Str -> Str -> {s : Number => Str ; g : Gender} -> - {s : Str ; g : Gender ; n : Number} = + 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} = + noun : Str -> Str -> Gender -> {s : Number => Str ; g : Gender} = \man,men,g -> { s = table { Sg => man ; - Pl => men + Pl => men } ; g = g } ; @@ -65,7 +65,7 @@ concrete FoodsIce of Foods = open Prelude in { < Neutr, Pl, Ind > => fersk_pl; < Masc, Sg, Def > => ferski ; < Fem, Sg, Def > | < Neutr, Sg, Def > => ferska ; - < _ , Pl, Def > => fersku + < _ , Pl, Def > => fersku } } ; @@ -76,7 +76,7 @@ concrete FoodsIce of Foods = open Prelude in { (fersk + "ir") (fersk + "ar") fersk (fersk + "i") (fersk + "a") (fersk + "u") ; - copula : Number -> Str = + copula : Number -> Str = \n -> case n of { Sg => "er" ; Pl => "eru" diff --git a/samples/Grammatical Framework/FoodsPor.gf b/samples/Grammatical Framework/FoodsPor.gf index 2a497f8f..6171c707 100644 --- a/samples/Grammatical Framework/FoodsPor.gf +++ b/samples/Grammatical Framework/FoodsPor.gf @@ -1,50 +1,52 @@ -- (c) 2009 Rami Shashati under LGPL concrete FoodsPor of Foods = open Prelude in { + flags coding=utf8; + lincat Comment = {s : Str} ; Quality = {s : Gender => Number => Str} ; Kind = {s : Number => Str ; g : Gender} ; Item = {s : Str ; n : Number ; g : Gender } ; - - lin + + 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"}) ; + 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 @@ -59,19 +61,19 @@ concrete FoodsPor of Foods = open Prelude in { "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 => "são"} ; + + copula : Number => Str = table {Sg => "é" ; Pl => "são"} ; } diff --git a/samples/Grammatical Framework/LexFoodsFin.gf b/samples/Grammatical Framework/LexFoodsFin.gf index 4cf26511..dbf8af6b 100644 --- a/samples/Grammatical Framework/LexFoodsFin.gf +++ b/samples/Grammatical Framework/LexFoodsFin.gf @@ -1,20 +1,21 @@ -- (c) 2009 Aarne Ranta under LGPL -instance LexFoodsFin of LexFoods = +instance LexFoodsFin of LexFoods = open SyntaxFin, ParadigmsFin in { + flags coding=utf8; 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 "lämmin" "lämpimän" "lämmintä" "lämpimänä" "lämpimään" - "lämpiminä" "lämpimiä" "lämpimien" "lämpimissä" "lämpimiin" - ) - "lämpimämpi" "lämpimin" ; + warm_A = mkA + (mkN "lämmin" "lämpimän" "lämmintä" "lämpimänä" "lämpimään" + "lämpiminä" "lämpimiä" "lämpimien" "lämpimissä" "lämpimiin" + ) + "lämpimämpi" "lämpimin" ; italian_A = mkA "italialainen" ; expensive_A = mkA "kallis" ; delicious_A = mkA "herkullinen" ; - boring_A = mkA "tylsä" ; + boring_A = mkA "tylsä" ; } diff --git a/samples/Grammatical Framework/LexFoodsGer.gf b/samples/Grammatical Framework/LexFoodsGer.gf index a420e22d..253384f2 100644 --- a/samples/Grammatical Framework/LexFoodsGer.gf +++ b/samples/Grammatical Framework/LexFoodsGer.gf @@ -1,16 +1,17 @@ -- (c) 2009 Aarne Ranta under LGPL -instance LexFoodsGer of LexFoods = +instance LexFoodsGer of LexFoods = open SyntaxGer, ParadigmsGer in { + flags coding=utf8; oper wine_N = mkN "Wein" ; pizza_N = mkN "Pizza" "Pizzen" feminine ; - cheese_N = mkN "Käse" "Käse" masculine ; + cheese_N = mkN "Käse" "Käse" masculine ; fish_N = mkN "Fisch" ; fresh_A = mkA "frisch" ; - warm_A = mkA "warm" "wärmer" "wärmste" ; + warm_A = mkA "warm" "wärmer" "wärmste" ; italian_A = mkA "italienisch" ; expensive_A = mkA "teuer" ; - delicious_A = mkA "köstlich" ; + delicious_A = mkA "köstlich" ; boring_A = mkA "langweilig" ; } diff --git a/samples/Grammatical Framework/LexFoodsSwe.gf b/samples/Grammatical Framework/LexFoodsSwe.gf index 72e7e3e8..f9f02c33 100644 --- a/samples/Grammatical Framework/LexFoodsSwe.gf +++ b/samples/Grammatical Framework/LexFoodsSwe.gf @@ -1,16 +1,17 @@ -- (c) 2009 Aarne Ranta under LGPL -instance LexFoodsSwe of LexFoods = +instance LexFoodsSwe of LexFoods = open SyntaxSwe, ParadigmsSwe in { + flags coding=utf8; oper wine_N = mkN "vin" "vinet" "viner" "vinerna" ; pizza_N = mkN "pizza" ; cheese_N = mkN "ost" ; fish_N = mkN "fisk" ; - fresh_A = mkA "färsk" ; + fresh_A = mkA "färsk" ; warm_A = mkA "varm" ; italian_A = mkA "italiensk" ; expensive_A = mkA "dyr" ; - delicious_A = mkA "läcker" ; - boring_A = mkA "tråkig" ; + delicious_A = mkA "läcker" ; + boring_A = mkA "trÃ¥kig" ; }