1
0
forked from GitHub/gf-core

copied examples/app to examples/slowApp; the new app is a bit scaled down but much faster

This commit is contained in:
aarne
2015-06-02 12:59:29 +00:00
parent d723babc2c
commit 2529f87942
44 changed files with 66045 additions and 31 deletions

View File

@@ -1,11 +1,15 @@
abstract App =
Translate - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -28,10 +32,14 @@ fun
PhrasePhr : Phrase -> Phr ;
Phrase_Chunk : Phrase -> Chunk ;
ComplV2 : V2 -> NP -> VP ;
{-
ComplV2V : V2V -> NP -> VP -> VP ;
ComplV2A : V2A -> NP -> AP -> VP ;
ComplV2Q : V2Q -> NP -> QS -> VP ;
ComplV2S : V2S -> NP -> S -> VP ;
ComplV3 : V3 -> NP -> NP -> VP ;
-}
}

View File

@@ -4,11 +4,13 @@ concrete AppBul of App =
TranslateBul - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -44,4 +46,7 @@ ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -5,11 +5,13 @@ concrete AppCat of App =
TranslateCat - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -44,4 +46,7 @@ ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -4,11 +4,13 @@ concrete AppChi of App =
TranslateChi - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -45,4 +47,7 @@ ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -4,11 +4,13 @@ concrete AppDut of App =
TranslateDut - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -43,4 +45,7 @@ ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -4,11 +4,13 @@ concrete AppEng of App =
TranslateEng - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -42,4 +44,7 @@ lin
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -4,11 +4,13 @@ concrete AppFin of App =
TranslateFin - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -43,4 +45,7 @@ ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -1,14 +1,15 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppFre of App =
TranslateFre - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -20,8 +21,6 @@ concrete AppFre of App =
-- Construction
-- Extensions
]
,PhrasebookFre - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_A, closed_A]
** open ParadigmsFre, SyntaxFre, Prelude in {
@@ -37,11 +36,16 @@ lin
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2 v np = mkVP v np ;
{-
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
-}
ComplV2 v np = mkVP v np ;
}

BIN
examples/app/AppFre.pgf Normal file

Binary file not shown.

View File

@@ -4,11 +4,13 @@ concrete AppGer of App =
TranslateGer - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -43,4 +45,7 @@ ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -4,11 +4,13 @@ concrete AppHin of App =
TranslateHin - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -43,4 +45,7 @@ ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -4,11 +4,13 @@ concrete AppIta of App =
TranslateIta - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -42,4 +44,7 @@ ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -4,11 +4,13 @@ concrete AppJpn of App =
TranslateJpn - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -45,4 +47,7 @@ ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -5,11 +5,13 @@ concrete AppSpa of App =
TranslateSpa - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -44,4 +46,7 @@ ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -3,11 +3,13 @@
concrete AppSwe of App =
TranslateSwe - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -42,4 +44,7 @@ ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -4,11 +4,13 @@ concrete AppTha of App =
TranslateTha - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
SlashV2a,ComplSlash, -- replaced by a more efficient inlined version
SlashV2V,
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
SlashVP, SlashVS,
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
@@ -45,4 +47,7 @@ ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
ComplV2 v np = mkVP v np ;
}

View File

@@ -14,7 +14,7 @@ GFMKT=mkdir -p $(GFODIR) && gf $S -make -literal=PN,Symb -probs=$(PROBSFILE) -gf
APP11=AppEng.pgf AppBul.pgf AppChi.pgf AppGer.pgf AppSwe.pgf AppHin.pgf AppFin.pgf AppFre.pgf AppIta.pgf AppSpa.pgf AppDut.pgf
APP12=$(APP11) AppCat.pgf
APP13=$(APP12) AppJpn.pgf
APP14=$(APP13) AppTha.pgf AppFreInput.pgf
APP14=$(APP13) AppTha.pgf
# With dependencies:
App11.pgf: $(APP11)
@@ -46,7 +46,6 @@ AppFin.pgf:: ; $(GFMKT) -name=AppFin AppFin.gf +RTS -K64M
AppGer.pgf:: ; $(GFMKT) -name=AppGer AppGer.gf +RTS -K64M
AppHin.pgf:: ; $(GFMKT) -name=AppHin AppHin.gf
AppFre.pgf:: ; $(GFMKT) -name=AppFre AppFre.gf +RTS -K64M
AppFreInput.pgf:: ; $(GFMKT) -name=AppFreInput AppFreInput.gf +RTS -K64M
AppIta.pgf:: ; $(GFMKT) -name=AppIta AppIta.gf +RTS -K64M
AppJpn.pgf:: ; $(GFMKT) -name=AppJpn AppJpn.gf +RTS -K64M
AppSpa.pgf:: ; $(GFMKT) -name=AppSpa AppSpa.gf +RTS -K64M

View File

@@ -1,9 +1,9 @@
-- update the import list of every language
-- although possibly some extra definitions at the end
-- the new files are produced in ./tmp/
-- the new files are produced in ./tmp/ which has to be created first
-- usage: runghc MkApp.hs
langs = words "Bul Cat Chi Dut Eng Fin Fre Ger Hin Ita Spa Swe"
langs = words "Bul Cat Chi Dut Eng Fin Fre Ger Hin Ita Jpn Spa Swe Tha"
appCnc lang = "App" ++ lang ++ ".gf"
appAbs = "App.gf"
@@ -26,10 +26,6 @@ extraLines = -- [] -- default: no extra
[
"",
"ComplV2V v np vp = mkVP v np vp ;",
"ComplV2A v np vp = mkVP v np vp ;",
"ComplV2Q v np vp = mkVP v np vp ;",
"ComplV2S v np vp = mkVP v np vp ;",
"ComplV3 v np vp = mkVP v np vp ;",
"ComplV2 v np = mkVP v np ;",
""
]

View File

@@ -58,7 +58,7 @@ ComplVPIVV 1.629348323337908e-4
ComplVQ 3.3840311330864245e-4
ComplVS 0.10664084776246609
ComplVV 6.258577578913727e-2
CompoundN 0.10736547702286556
CompoundN 0.010736547702286556
ConjAP 2.1189670416781e-3
ConjAdV 9.744689144416293e-5
ConjAdv 1.0922898208991453e-3

4
examples/app/fre.tmp Normal file
View File

@@ -0,0 +1,4 @@
je suis ici
ma femme est allée a Nice
où est la voiture
personne ne vous aime

37
examples/slowApp/App.gf Normal file
View File

@@ -0,0 +1,37 @@
abstract App =
Translate - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,Phrasebook
** {
flags
startcat=Phr ;
heuristic_search_factor=0.80; -- doesn't seem to affect speed or quality much
fun
PhrasePhr : Phrase -> Phr ;
Phrase_Chunk : Phrase -> Chunk ;
ComplV2V : V2V -> NP -> VP -> VP ;
ComplV2A : V2A -> NP -> AP -> VP ;
ComplV2Q : V2Q -> NP -> QS -> VP ;
ComplV2S : V2S -> NP -> S -> VP ;
ComplV3 : V3 -> NP -> NP -> VP ;
}

View File

@@ -0,0 +1,47 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppBul of App =
TranslateBul - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookBul - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A]
** open ParadigmsBul, SyntaxBul, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,47 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppCat of App =
TranslateCat - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookCat - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, cheap_A,expensive_A, open_A, closed_A]
** open ParadigmsCat, SyntaxCat, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,48 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppChi of App =
TranslateChi - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookChi - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A, at_Prep, by_Prep]
** open ParadigmsChi, SyntaxChi, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,46 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppDut of App =
TranslateDut - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookDut - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A]
** open ParadigmsDut, SyntaxDut, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,45 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppEng of App =
TranslateEng - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookEng - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv]
** open MorphoEng, ResEng, ParadigmsEng, SyntaxEng, (G = GrammarEng), (E = ExtraEng), Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,46 @@
--# -path=.:../../lib/src/chunk:../../lib/src/finnish/stemmed:../../lib/src/finnish:../../lib/src/api:../../lib/src/translator:../phrasebook/gfos:alltenses
concrete AppFin of App =
TranslateFin - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookFin - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_A, open_Adv]
** open ParadigmsFin, SyntaxFin, Prelude in {
flags
literal=Symb ;
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,47 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppFre of App =
TranslateFre - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookFre - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_A, closed_A]
** open ParadigmsFre, SyntaxFre, Prelude in {
flags
literal=Symb ;
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,46 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos:alltenses::../../lib/src/german
concrete AppGer of App =
TranslateGer - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookGer - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A]
** open ParadigmsGer, SyntaxGer, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,46 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppHin of App =
TranslateHin - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookHin - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A]
** open ParadigmsHin, SyntaxHin, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,45 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppIta of App =
TranslateIta - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookIta - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_A, closed_A]
** open ParadigmsIta, SyntaxIta, Prelude in {
flags
literal=Symb ;
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,48 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppJpn of App =
TranslateJpn - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookJpn ---- - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A, at_Prep, by_Prep]
** open ParadigmsJpn, SyntaxJpn, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
---- PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
---- PGreetingMale, PGreetingFemale = \s -> lin Text s ;
---- GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,47 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppSpa of App =
TranslateSpa - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookSpa - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, cheap_A,expensive_A, open_A, closed_A]
** open ParadigmsSpa, SyntaxSpa, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,45 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppSwe of App =
TranslateSwe - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookSwe - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A]
** open MorphoSwe, ResSwe, ParadigmsSwe, SyntaxSwe, CommonScand, (E = ExtraSwe), Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

View File

@@ -0,0 +1,48 @@
--# -path=.:../../lib/src/chunk:../../lib/src/translator:../phrasebook/gfos
concrete AppTha of App =
TranslateTha - [
-- Verb
SlashV2V, -- replaced by more efficient inlined versions
Slash2V3, Slash3V3, SlashV2S, SlashV2Q, SlashV2A,
SlashVV, SlashV2VNP,
AdvVPSlash, AdVVPSlash, VPSlashPrep,
-- Sentence
PredSCVP,
AdvSlash, SlashPrep, SlashVS,
EmbedS, EmbedQS, EmbedVP, RelS,
-- Question
ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
-- Idiom
CleftNP, CleftAdv,
ImpP3
-- Construction
-- Extensions
]
,PhrasebookTha - [at_Prep, closed_A, open_A] --- - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_Adv, closed_A, open_A, at_Prep, by_Prep]
** open ParadigmsTha, SyntaxTha, Prelude in {
flags
literal=Symb ;
-- to suppress punctuation
lin
---- PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
---- PGreetingMale, PGreetingFemale = \s -> lin Text s ;
---- GObjectPlease o = lin Text (mkUtt o) ;
PhrasePhr p = {s = "+" ++ p.s} | p ;
Phrase_Chunk p = p ;
ComplV2V v np vp = mkVP v np vp ;
ComplV2A v np vp = mkVP v np vp ;
ComplV2Q v np vp = mkVP v np vp ;
ComplV2S v np vp = mkVP v np vp ;
ComplV3 v np vp = mkVP v np vp ;
}

59
examples/slowApp/Makefile Normal file
View File

@@ -0,0 +1,59 @@
all: Phrasebook App12.pgf
PROBSFILE=./app.probs
GFODIR=./gfos
.Phony: Phrasebook
Phrasebook:
cd ../phrasebook ; make forApp ; cd ../app
S=-s
GFMKT=mkdir -p $(GFODIR) && gf $S -make -literal=PN,Symb -probs=$(PROBSFILE) -gfo-dir $(GFODIR)
APP11=AppEng.pgf AppBul.pgf AppChi.pgf AppGer.pgf AppSwe.pgf AppHin.pgf AppFin.pgf AppFre.pgf AppIta.pgf AppSpa.pgf AppDut.pgf
APP12=$(APP11) AppCat.pgf
APP13=$(APP12) AppJpn.pgf
APP14=$(APP13) AppTha.pgf
# With dependencies:
App11.pgf: $(APP11)
$(GFMKT) -name=App11 $(APP11) +RTS -K200M
App12.pgf: $(APP12)
$(GFMKT) -name=App12 $(APP12) +RTS -K200M
App13.pgf: $(APP13)
$(GFMKT) -name=App13 $(APP13) +RTS -K200M
App14.pgf: $(APP14)
$(GFMKT) -name=App14 $(APP14) +RTS -K200M
# Without dependencies:
App11:
$(GFMKT) -name=App12 $(APP11) +RTS -K200M
App12:
$(GFMKT) -name=App12 $(APP12) +RTS -K200M
App13:
$(GFMKT) -name=App13 $(APP13) +RTS -K200M
App14:
$(GFMKT) -name=App14 $(APP14) +RTS -K200M
# App grammars for individual languages
AppEng.pgf:: ; $(GFMKT) -name=AppEng AppEng.gf
AppBul.pgf:: ; $(GFMKT) -name=AppBul AppBul.gf
AppCat.pgf:: ; $(GFMKT) -name=AppCat AppCat.gf +RTS -K100M
AppChi.pgf:: ; $(GFMKT) -name=AppChi AppChi.gf +RTS -K100M
AppDut.pgf:: ; $(GFMKT) -name=AppDut AppDut.gf +RTS -K64M
AppFin.pgf:: ; $(GFMKT) -name=AppFin AppFin.gf +RTS -K64M
AppGer.pgf:: ; $(GFMKT) -name=AppGer AppGer.gf +RTS -K64M
AppHin.pgf:: ; $(GFMKT) -name=AppHin AppHin.gf
AppFre.pgf:: ; $(GFMKT) -name=AppFre AppFre.gf +RTS -K64M
AppIta.pgf:: ; $(GFMKT) -name=AppIta AppIta.gf +RTS -K64M
AppJpn.pgf:: ; $(GFMKT) -name=AppJpn AppJpn.gf +RTS -K64M
AppSpa.pgf:: ; $(GFMKT) -name=AppSpa AppSpa.gf +RTS -K64M
AppSwe.pgf:: ; $(GFMKT) -name=AppSwe AppSwe.gf
AppTha.pgf:: ; $(GFMKT) -name=AppTha AppTha.gf
# language pairs to test
AppEngSwe: ; $(GFMKT) -name=AppEngSwe AppEng.pgf AppSwe.pgf
AppEngFin: ; $(GFMKT) -name=AppEngFin AppEng.pgf AppFin.pgf
AppEngChi: ; $(GFMKT) -name=AppEngChi AppEng.pgf AppChi.pgf

35
examples/slowApp/MkApp.hs Normal file
View File

@@ -0,0 +1,35 @@
-- update the import list of every language
-- although possibly some extra definitions at the end
-- the new files are produced in ./tmp/
-- usage: runghc MkApp.hs
langs = words "Bul Cat Chi Dut Eng Fin Fre Ger Hin Ita Spa Swe"
appCnc lang = "App" ++ lang ++ ".gf"
appAbs = "App.gf"
main = do
imports <- readFile appAbs >>= return . getImports
mapM_ (\f -> readFile f >>= writeFile ("tmp/" ++ f) . (putImports imports)) (map appCnc langs)
getImports = takeWhile (/= ']') . tail . dropWhile (/='[')
putImports i s =
let
(s1,_:s2) = span (/='[') s
(_, s3) = span (/=']') s2
in s1 ++ "[" ++ i ++ extra s3
extra s = unlines (init (lines s) ++ extraLines ++ ["}"])
extraLines = -- [] -- default: no extra
[
"",
"ComplV2V v np vp = mkVP v np vp ;",
"ComplV2A v np vp = mkVP v np vp ;",
"ComplV2Q v np vp = mkVP v np vp ;",
"ComplV2S v np vp = mkVP v np vp ;",
"ComplV3 v np vp = mkVP v np vp ;",
""
]

65156
examples/slowApp/app.probs Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -35257,7 +35257,7 @@ lin nuncio_N = mkWN "apostolinen" "nuntius" ; --UNCHK
lin nuneaton_PN = foreignPN "Nuneaton" ;
lin nunnery_N = mkWN (k6 "luostari") ; --UNCHK
lin nuptial_A = mkWA (k38 "aviollinen") ; --UNCHK
lin nurse_N = mkWN (k10 "imettäjä") ; --UNCHK
lin nurse_N = mkN "sairaanhoitaja" "sairaanhoitajia" ;
lin nurse_V2 = mkWV2 (k53A "hoitaa") ; --UNCHK
lin nurseling_N = mkWN (k38 "imeväinen") ; --UNCHK
lin nursemaid_N = mkWN (k10 "imettäjä") ; --UNCHK

View File

@@ -29,7 +29,7 @@ public class Translator {
new Language("nl-NL", "Dutch", "AppDut", R.xml.qwerty),
new Language("en-US", "English", "AppEng", R.xml.qwerty),
new Language("fi-FI", "Finnish", "AppFin", R.xml.nordic),
new Language("fr-FR", "French", "AppFre", R.xml.qwerty),
new Language("fr-FR", "French", "AppFre", R.xml.qwerty), ////
new Language("de-DE", "German", "AppGer", R.xml.qwerty),
new Language("hi-IN", "Hindi", "AppHin", R.xml.devanagari_page1, R.xml.devanagari_page2),
new Language("it-IT", "Italian", "AppIta", R.xml.qwerty),