summaryrefslogtreecommitdiff
path: root/examples/app/AppFre.gf
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2014-04-09 13:04:19 +0000
committeraarne <aarne@chalmers.se>2014-04-09 13:04:19 +0000
commita3921bffd777c99f83706a2879628a986c1d3e14 (patch)
treec478366d6b08dc6141499a20acb71cef2ab43c85 /examples/app/AppFre.gf
parent622ab0b44c7241da94b1edbade39b8432ac00fff (diff)
rewrote App so that it just inherits Translate and excludes some functions. This minimizes the duplication of code between Translate and App. Also added some functions, which make App 15% slower but increase the coverage and quality. This trade-off has to be studied further.
Diffstat (limited to 'examples/app/AppFre.gf')
-rw-r--r--examples/app/AppFre.gf104
1 files changed, 28 insertions, 76 deletions
diff --git a/examples/app/AppFre.gf b/examples/app/AppFre.gf
index 22c4e8cac..3bbf68070 100644
--- a/examples/app/AppFre.gf
+++ b/examples/app/AppFre.gf
@@ -1,96 +1,48 @@
--# -path=.:src/chunk:src/translator:../examples/phrasebook/gfos
concrete AppFre of App =
- TenseFre,
- NounFre - [PPartNP],
- AdjectiveFre,
- NumeralFre,
- SymbolFre [
- PN, Symb, String, CN, Card, NP, MkSymb, SymbPN, CNNumNP
- ],
- ConjunctionFre,
- VerbFre [
- UseV,ComplVV,SlashV2a,ComplSlash,UseComp,CompAP,CompNP,CompAdv,CompCN
- ,AdvVP,AdVVP
- ],
- AdverbFre,
- PhraseFre,
- SentenceFre [
- PredVP,SlashVP,ImpVP,AdvS,
- UseCl,UseQCl,UseSlash,SSubjS,UseRCl
- ],
- QuestionFre - [
- ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
- QuestCl, QuestIAdv
- ],
- RelativeFre,
- IdiomFre [
- NP, VP, Tense, Cl, ProgrVP, ExistNP,
- neutr, sjalv
- ],
----- ConstructionFre,
-
- ChunkFre,
- ExtensionsFre [
- CompoundCN,AdAdV,UttAdV,ApposNP,
- MkVPI, MkVPS, PredVPS, that_RP, who_RP
- ],
+ TranslateFre - [
+ -- Verb
+ ComplVS, ComplVQ, ComplVA,
+ Slash2V3, Slash3V3, SlashV2V, SlashV2S, SlashV2Q, SlashV2A,
+ SlashVV, SlashV2VNP,
+ ReflVP,
+ AdvVPSlash, AdVVPSlash, VPSlashPrep,
+ -- Sentence
+ PredSCVP,
+ AdvSlash, SlashPrep, SlashVS,
+ EmbedS, EmbedQS, EmbedVP, RelS,
+ -- Question
+ ComplSlashIP,AdvQVP,AddAdvQVP,QuestQVP,
+ -- Idiom
+ CleftNP, CleftAdv,
+ ExistIP,
+ ExistNPAdv, ExistIPAdv,
+ ImpP3,
+ SelfAdvVP, SelfAdVVP, SelfNP,
+ -- Construction
+ hungry_VP, thirsty_VP, has_age_VP, have_name_Cl, married_Cl, what_name_QCl, how_old_QCl, how_far_QCl,
+ weather_adjCl, is_right_VP, is_wrong_VP, n_units_AP, bottle_of_CN, cup_of_CN, glass_of_CN,
+ where_go_QCl, where_come_from_QCl, go_here_VP, come_here_VP, come_from_here_VP, go_there_VP, come_there_VP, come_from_there_VP,
+ -- Extensions
+ PassVPSlash, PassAgentVPSlash
+ ]
- DocumentationFre,
- DictionaryFre
- ,PhrasebookFre - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_A]
+ ,PhrasebookFre - [PSentence, PQuestion, PGreetingMale, PGreetingFemale, GObjectPlease, open_A, closed_A]
- ** open MorphoFre, PhonoFre, ResFre, ParadigmsFre, SyntaxFre, CommonScand, (E = ExtraFre), (G = GrammarFre), Prelude in {
+ ** open ParadigmsFre, SyntaxFre, Prelude in {
flags
literal=Symb ;
----------------------------
-lin
- QuestCl cl =
- {s = \\t,a,p => -- est-ce qu'il dort ?
- let cls = cl.s ! DDir ! t ! a ! p
- in table {
- QDir => "est-ce" ++ elisQue ++ cls ! Indic ;
- QIndir => subjIf ++ cls ! Indic
- }
- }
- | {s = \\t,a,p => -- dort-il ?
- let cls = cl.s ! DInv ! t ! a ! p
- in table {
- QDir => cls ! Indic ;
- QIndir => subjIf ++ cls ! Indic
- }
- }
- | G.QuestCl cl -- il dort ?
- ;
-
-
- QuestIAdv iadv cl =
- G.QuestIAdv iadv cl -- où dort-il
- | {s = \\t,a,p,q => -- où est-ce qu'il dort
- let
- ord = DDir ;
- cls = cl.s ! ord ! t ! a ! p ! Indic ;
- why = iadv.s
- in why ++ "est-ce" ++ elisQue ++ cls
- } ;
-
----------------------------
-
--- to suppress punctuation
lin
PSentence, PQuestion = \s -> lin Text (mkUtt s) ;
PGreetingMale, PGreetingFemale = \s -> lin Text s ;
-
GObjectPlease o = lin Text (mkUtt o) ;
-
-lin
PhrasePhr p = {s = "+" ++ p.s} | p ;
-
Phrase_Chunk p = p ;
}