From 63e338cb8059bd24565afef6a568c5b515381006 Mon Sep 17 00:00:00 2001 From: aarne Date: Thu, 28 Nov 2013 08:03:50 +0000 Subject: [PATCH] Translate grammar for Ger and Hin added. Some functions in Ger phrasebook need to be commented out to compile. Now a system for 7 languages can be built, but including Fre as well is too heavy on my laptop although it can be compiled separately. --- examples/translator/Makefile | 19 ++++++++++++++++--- examples/translator/Translate.gf | 2 +- examples/translator/TranslateChi.gf | 1 + examples/translator/TranslateEng.gf | 1 + examples/translator/TranslateFin.gf | 1 + examples/translator/TranslateGer.gf | 27 +++++++++++++++++++++++++++ examples/translator/TranslateHin.gf | 26 ++++++++++++++++++++++++++ examples/translator/TranslateSwe.gf | 1 + 8 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 examples/translator/TranslateGer.gf create mode 100644 examples/translator/TranslateHin.gf diff --git a/examples/translator/Makefile b/examples/translator/Makefile index 68534bb89..bbd84b59f 100644 --- a/examples/translator/Makefile +++ b/examples/translator/Makefile @@ -4,24 +4,33 @@ GF=gf +RTS -K200M -RTS -make all: TranslateEng TranslateBul TranslateFre TranslateBulEngFre -TranslateEng: - $(GF) -literal=Symb -probs=$(PROBSFILE) -name=TranslateEng TranslateEng.gf - TranslateBul: $(GF) -literal=Symb -probs=$(PROBSFILE) -name=TranslateBul TranslateBul.gf TranslateChi: $(GF) -s -literal=Symb -probs=$(PROBSFILE) -name=TranslateChi TranslateChi.gf +TranslateEng: + $(GF) -literal=Symb -probs=$(PROBSFILE) -name=TranslateEng TranslateEng.gf + TranslateFin: $(GF) -s -literal=Symb -probs=$(PROBSFILE) -name=TranslateFin TranslateFin.gf TranslateFre: $(GF) -literal=Symb -probs=$(PROBSFILE) -name=TranslateFre TranslateFre.gf +TranslateGer: + $(GF) -literal=Symb -probs=$(PROBSFILE) -name=TranslateGer TranslateGer.gf + +TranslateHin: + $(GF) -literal=Symb -probs=$(PROBSFILE) -name=TranslateHin TranslateHin.gf + TranslateSwe: $(GF) -literal=Symb -probs=$(PROBSFILE) -name=TranslateSwe TranslateSwe.gf + + + TranslateEngBul: $(GF) -literal=Symb -probs=$(PROBSFILE) -name=TranslateEngBul TranslateEng.pgf TranslateBul.pgf @@ -40,3 +49,7 @@ TranslateEngSwe: TranslateBulEngFre: $(GF) -literal=Symb -probs=$(PROBSFILE) -name=TranslateBulEngFre TranslateBul.pgf TranslateEng.pgf TranslateFre.pgf +Translate7: + $(GF) -literal=Symb -probs=$(PROBSFILE) -name=Translate7 TranslateEng.pgf TranslateChi.pgf TranslateFin.pgf TranslateSwe.pgf TranslateBul.pgf TranslateGer.pgf TranslateHin.pgf +# adding TranslateFre too heavy so far + diff --git a/examples/translator/Translate.gf b/examples/translator/Translate.gf index 1495000b7..6efff161f 100644 --- a/examples/translator/Translate.gf +++ b/examples/translator/Translate.gf @@ -12,5 +12,5 @@ fun NP_Object : NP -> Object ; NP_Item : NP -> Item ; NP_Place : NP -> Place ; - + NP_Name : NP -> Name ; } \ No newline at end of file diff --git a/examples/translator/TranslateChi.gf b/examples/translator/TranslateChi.gf index 407aef798..4ef480232 100644 --- a/examples/translator/TranslateChi.gf +++ b/examples/translator/TranslateChi.gf @@ -15,6 +15,7 @@ lin NP_Item np = lin NP np ; NP_Place np0 = let np = lin NP np0 in {name = np ; at = SyntaxChi.mkAdv in_Prep np ; to = SyntaxChi.mkAdv to_Prep np} ; + NP_Name np = lin NP np ; --- to remove Phrasebook punctuation, which makes the output in Translate heterogeneous diff --git a/examples/translator/TranslateEng.gf b/examples/translator/TranslateEng.gf index 0c02c6263..f35c7b835 100644 --- a/examples/translator/TranslateEng.gf +++ b/examples/translator/TranslateEng.gf @@ -14,6 +14,7 @@ lin NP_Item np = lin NP np ; NP_Place np0 = let np = lin NP np0 in {name = np ; at = SyntaxEng.mkAdv in_Prep np ; to = SyntaxEng.mkAdv to_Prep np} ; + NP_Name np = lin NP np ; --- to remove Phrasebook punctuation, which makes the output in Translate heterogeneous diff --git a/examples/translator/TranslateFin.gf b/examples/translator/TranslateFin.gf index 0dab81f29..5b5ada2fe 100644 --- a/examples/translator/TranslateFin.gf +++ b/examples/translator/TranslateFin.gf @@ -17,6 +17,7 @@ lin NP_Place np0 = let np = lin NP np0 in {name = np ; at = SyntaxFin.mkAdv in_Prep np ; to = SyntaxFin.mkAdv to_Prep np ; from = SyntaxFin.mkAdv from_Prep np} ; + NP_Name np = lin NP np ; --- to remove Phrasebook punctuation, which makes the output in Translate heterogeneous diff --git a/examples/translator/TranslateGer.gf b/examples/translator/TranslateGer.gf new file mode 100644 index 000000000..3af3ace4d --- /dev/null +++ b/examples/translator/TranslateGer.gf @@ -0,0 +1,27 @@ +--# -path=.:alltenses:../phrasebook:../../lib/src/english:../../lib/src/german + +concrete TranslateGer of Translate = + ParseGer - [open_A], + PhrasebookGer - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease] + ** open SyntaxGer, ParadigmsGer, (E = ExtraGer), Prelude in { + +flags + literal = Symb ; + +lin + PPhr p = lin Text p ; + NP_Person np = {name = lin NP np ; isPron = False ; poss = mkQuant he_Pron} ; + NP_Object np = lin NP np ; + NP_Item np = lin NP np ; + NP_Place np0 = let np = lin NP np0 in + {name = np ; at = SyntaxGer.mkAdv in_Prep np ; to = SyntaxGer.mkAdv to_Prep np} ; + NP_Name np = lin NP np ; + +--- to remove Phrasebook punctuation, which makes the output in Translate heterogeneous + + PSentence s = lin Text (mkUtt s) ; + PQuestion s = lin Text (mkUtt s) ; + PGreetingMale, PGreetingFemale = \g -> lin Text g ; + GObjectPlease o = lin Text (mkUtt o) ; + +} \ No newline at end of file diff --git a/examples/translator/TranslateHin.gf b/examples/translator/TranslateHin.gf new file mode 100644 index 000000000..cf8de4ebb --- /dev/null +++ b/examples/translator/TranslateHin.gf @@ -0,0 +1,26 @@ +--# -path=.:../phrasebook:../../lib/src/english:../../lib/src/abstract:../../lib/src/hindi:../../lib/src/hindustani + +concrete TranslateHin of Translate = + ParseHin, + PhrasebookHin - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease] + ** open SyntaxHin, (E = ExtraHin), Prelude in { + +flags + literal = Symb ; +lin + PPhr p = lin Text p ; + NP_Person np = {name = lin NP np ; isPron = False ; poss = E.GenNP np} ; + NP_Object np = lin NP np ; + NP_Item np = lin NP np ; + NP_Place np0 = let np = lin NP np0 in + {name = np ; at = SyntaxHin.mkAdv in_Prep np ; to = SyntaxHin.mkAdv to_Prep np} ; + NP_Name np = lin NP np ; + +--- to remove Phrasebook punctuation, which makes the output in Translate heterogeneous + + PSentence s = lin Text (mkUtt s) ; + PQuestion s = lin Text (mkUtt s) ; + PGreetingMale, PGreetingFemale = \g -> lin Text g ; + GObjectPlease o = lin Text (mkUtt o) ; + +} \ No newline at end of file diff --git a/examples/translator/TranslateSwe.gf b/examples/translator/TranslateSwe.gf index 3d8f5d8fd..b81460bde 100644 --- a/examples/translator/TranslateSwe.gf +++ b/examples/translator/TranslateSwe.gf @@ -15,6 +15,7 @@ lin NP_Item np = lin NP np ; NP_Place np0 = let np = lin NP np0 in {name = np ; at = SyntaxSwe.mkAdv in_Prep np ; to = SyntaxSwe.mkAdv to_Prep np} ; + NP_Name np = lin NP np ; --- to remove Phrasebook punctuation, which makes the output in Translate heterogeneous