diff options
| author | hallgren <hallgren@chalmers.se> | 2014-02-11 16:43:29 +0000 |
|---|---|---|
| committer | hallgren <hallgren@chalmers.se> | 2014-02-11 16:43:29 +0000 |
| commit | 44ee072331424dae6a7918835bd15c51f56307e8 (patch) | |
| tree | 3f71d0855d9cc26a7ab706e9adbfc7c9a10d887f /src/www/js | |
| parent | 23dc22cea49b7dde812882cff8e77b27e1b6382f (diff) | |
Work on web api & apps based on the C run-time system
+ PGFService.hs: add command c-grammar, include probability in parse results
+ js/gftranslation.js: add start position and limit parameters, return more
info to applications
+ Simple Translator: show two wide coverage translations
+ Wide coverage demo: show parse tree and probability (intended as grammar
debugging aids)
Diffstat (limited to 'src/www/js')
| -rw-r--r-- | src/www/js/gftranslate.js | 32 |
1 files changed, 19 insertions, 13 deletions
diff --git a/src/www/js/gftranslate.js b/src/www/js/gftranslate.js index 0043fce61..cf85a28e3 100644 --- a/src/www/js/gftranslate.js +++ b/src/www/js/gftranslate.js @@ -5,30 +5,36 @@ var gftranslate = {} gftranslate.jsonurl="/robust/Translate8.pgf" gftranslate.grammar="Translate" // the name of the grammar -gftranslate.languages="Bul Chi Eng Fin Fre Ger Hin Swe".split(" ") - // hardwired for now gftranslate.call=function(querystring,cont) { http_get_json(gftranslate.jsonurl+querystring,cont) } -// Translate a sentence to the given target language -gftranslate.translate=function(source,from,to,cont) { +// Translate a sentence +gftranslate.translate=function(source,from,to,start,limit,cont) { var encsrc=encodeURIComponent(source) var g=gftranslate.grammar - function extract(result) { - cont(result[0].translations[0].linearizations[0].text) - } + function extract(result) { cont(result[0].translations) } if(encsrc.length<200) // match limit in runtime/c/utils/pgf-server.c gftranslate.call("?command=c-translate&input="+encsrc - +"&from="+g+from+"&to="+g+to+"&limit=1",extract) - else cont("[GF robust parser: sentence too long]") + +"&from="+g+from+"&to="+g+to + +"&start="+start+"&limit="+limit,extract) + else cont([{error:"sentence too long"}]) } // Get functions to test which source and target langauges are supported gftranslate.get_support=function(cont) { - if(!gftranslate.targets) gftranslate.targets=toSet(gftranslate.languages) - function ssupport(code) { return gftranslate.targets[code] } - function tsupport(code) { return gftranslate.targets[code] } - cont(ssupport,tsupport) + function support(code) { return gftranslate.targets[code] } + function init2(grammar_info) { + var ls=grammar_info.languages + gftranslate.grammar=grammar_info.name + var langs=[], pre=gftranslate.grammar, n=pre.length + for(var i=0;i<ls.length;i++) + if(ls[i].name.substr(0,n)==pre) langs.push(ls[i].name.substr(n)) + gftranslate.targetlist=langs + gftranslate.targets=toSet(langs) + cont(support,support) + } + if(gftranslate.targets) cont(support,support) + else gftranslate.call("?command=c-grammar",init2) } |
