1
0
forked from GitHub/gf-core
Commit Graph

61 Commits

Author SHA1 Message Date
hallgren
eb21f73fd3 PGF service: new command: download
This makes it possible to download PGF files from servers where the PGF service
is installed.

I am also considering making commmand=download the default instead of
command=grammar.
2013-01-09 13:28:45 +00:00
hallgren
fa6f8f49ce PGFService.hs: code duplication reduction 2012-12-20 00:15:18 +00:00
hallgren
78a2a90903 PGFService.hs: fix type error caused by change to PGF.graphvizParseTree
Note that some of the graphviz functions have backwards incompatible changes
that might also affect other clients of the PGF run-time library.

Also added graphvizDefaults and export it together with GraphvizOptions from 
the PGF run-time library.
2012-11-22 15:27:16 +00:00
hallgren
57ab3564c0 PGF service: command=browse&format=json returns info on all cats and funs
The browse command used to have a required parameter id=... and it returned
info on the given identifier only. Now, if format=json, the id=... parameter
can be omitted to get info on all identifiers at the same time. The returned
JSON structure in this case is

        {cats:{...},funs:{...}}

where the inner objects contain one field per category and function,
respectively, in the same format as when you request info on one category or
function.
2012-11-17 14:22:30 +00:00
hallgren
fc09b7e604 PGF service & minibar: put a limit on the number of parse trees
+ In the PGF web service API, the commands parse, translate and translategroup
  now accept a limit parameter. It limits the number of parse trees returned.
  If no limit is given, the behaviour is backwards compatible, i.e. no limit
  is applied.
+ In minibar, the limit is now set to 25 by default.

This change is based on a suggestion by Kaarel Kaljurand.
2012-09-30 15:35:25 +00:00
hallgren
df4183d92e PGFService.hs: add web API function "abstrjson"
Abstract syntax trees are represented as strings in the web API. To make them
easier to manipulate in JavaScript, the new function converts them to JSON.

To support structural editing, the nodes are numbered in the same way as in
the bracketed string created when linearizing an abstract syntax tree.

Example: "Pred (That Fish) Fresh" is converted to

	{fun:"Pred",fid:3,
	 children:[{fun:"That",fid:1,
		    children:[{fun:"Fish",fid:0}]},
		   {fun:"Fresh",fid:2}]}
2012-04-02 15:42:43 +00:00
hallgren
c234e58a6a PGF run-time library: function names in BracketedString (experimental)
+ Make room for function names in the BracketedString data structure.
+ Fill in function names when linearizing an abstract syntax tree to a
  BracketedString.
+ Fill in wildCId when it is not obvious what the function is.
+ Function bracketedLinearize: for compatibility with the other linearization
  functions, return Leaf "" instead of error "cannot linearize".
+ Export flattenBracketedString from module PGF.
+ PGFServce: make function names available in the JSON representation of
  BracketedString.
2012-03-18 20:12:26 +00:00
hallgren
661d7edfe7 PGFService.hs: command=browse can now produce output in JSON format.
To get JSON output, add the parameter format=json. The JSON structure contains
the output from the function PGF.browse.
The default is format=html for backwards compatibility.
2012-03-16 13:55:19 +00:00
hallgren
7091ba131a PGFService.hs: add output format option to the commands abstrtree, parsetree and alignment
Supported output formats: gv, png, svg.
2012-03-08 11:25:15 +00:00
hallgren
cc2299dde7 PGFService.hs bug fix: pattern match failure in doParse
doParse was missing a branch for PGF.ParseIncomplete.
Also introduced the operator .= to simply the code that builds JSON objects.
2012-02-29 16:21:34 +00:00
hallgren
99795c3035 pgf service: include the start category in grammar info 2011-10-18 14:31:40 +00:00
hallgren
249ce61701 pgf-service: apply the OpenMath LaTeX function only when linearizing to a
concrete language whose name ends with LaTeX.
This change also avoids duplicating output and, in addition to the linearize
command, applies the transfer also when using the linearizeAll command.
2011-08-24 09:37:55 +00:00
hallgren
42ccbf2d8e pgf-service: add Jordis transfer function for OpenMath LaTeX output 2011-08-23 16:25:00 +00:00
hallgren
51994104de pgf service: external service hook: always format the output as a JSON string 2011-08-22 16:10:56 +00:00
hallgren
3e2f768072 pgf service: added a hook for external services
This is really reinventing CGI, people should learn how to write CGI scripts
instead...
TODO: better handling of temporary files
2011-08-22 15:34:44 +00:00
hallgren
b80696f958 gf-server: make pgf-service work the Apache mod_fastcgi
pgf-service now appears to works with Apache mod_fastcgi (under Mac OS X) in
addition to lighttpd.

One difference appears to be that while lighttpd passes the name of the PGF
file in the SCRIPT_FILENAME variable, Apache passes it in PATH_TRANSLATED.
But perhaps this depends on exactly how the fastcgi service is configured.
The following is what I added to the Apache configuration file to test this:

	<Directory /Library/WebServer/Documents/fcgi-bin>
	  SetHandler fastcgi-script
	  Options +ExecCGI
	</Directory>
	Action pgf-service /fcgi-bin/pgf-service
	AddHandler pgf-service .pgf
2011-06-21 15:49:31 +00:00
krasimir
93dcac2819 the user can now upload their own grammars in the editor 2011-03-07 21:05:29 +00:00
hallgren
5fd4efd960 Split pgf-server into pgf-fcgi and pgf-http.
The dependency on the fastcgi package made pgf-server difficult to compile, so
it is now split into

  - pgf-fgci (main module in pgf-fcgi.hs), which is built only if fastcgi is
    already installed or if you turn on the fastcgi flag (e.g. by doing
    'cabal install -f fastcgi').

  - pgf-http (main module in pgf-http.hs) which is always built (and hopefully
    has no problematic dependencies.) 

The modules FastCGIUtils and PGFService no longer depend on fastcgi.
2010-11-26 14:30:51 +00:00
hallgren
9532a34a2a pgf-server: more useful JSON output from lineraizeAll
Example:

Request: http://www.grammaticalframework.org:41296/grammars/Quiz.pgf?command=linearizeAll&tree=Run+YouPl

Response: [{"to":"QuizEng","texts":["you run"]},
           {"to":"QuizSwe","texts":["ni l??per","ni springer"]}]

Compared to the old command linearize:

Request: http://www.grammaticalframework.org:41296/grammars/Quiz.pgf?command=linearize&tree=Run+YouPl'

Response: [{"to":"QuizEng","text":"you run"},
           {"to":"QuizSwe","text":"ni l??per"}]
2010-11-25 18:30:30 +00:00
aarne
62cfeef03e linearizeAll in PGFService 2010-11-24 21:17:29 +00:00
hallgren
d0efcc035c Make PGFService.hs compile again
+ PGFService.hs: add Nothing arguments in calls to PGF.parse_ and
  PGF.getPArseOutput
+ gf-server.cabal: mark content-server as not buildable, since required source
  files are missing.
2010-11-09 15:08:37 +00:00
krasimir
042790fdf6 the PGF service now can do both random and exhaustive generation. these functions now return both the generated tree and its linearization 2010-10-13 12:32:49 +00:00
krasimir
be9ad26aea refactor the API for random generation again. Now PGF contains probabilities in the abstract syntax 2010-10-02 13:03:57 +00:00
krasimir
72f505d7df update PGFService to work after the extensions in the random generation API 2010-09-30 07:35:54 +00:00
hallgren
c234222cd9 Bug fix: add missing error handler for statically served files in pgf-server HTTP mode 2010-09-02 13:54:16 +00:00
hallgren
ea67281820 Standalone HTTP version of pgf-server
pgf-server can now act as a standalone HTTP server. To activate this mode,
start it with

	pfg-server http

to use the default port number (41296), or give an explicit port number, e.g.,

	pgf-server http 8080

The HTTP server serves PGF files in the same way as the old FastCGI interface.
In addition, it also serves static files. The document root for static files
is the www subdirectory of the current directory where pgf-server is started.

In spite of these addition, backwards compatibility is maintaned. The old
FastCGI interface continues to work as before. (It is activated when
pgf-server is started without arguments.)
2010-09-01 14:08:52 +00:00
krasimir
9aa7c88c5a native representation for HOAS in PMCFG and incremental type checking of the parse forest 2010-08-09 10:10:08 +00:00
krasimir
b20821dfc3 more advanced complete function in the PGFService 2010-08-24 15:58:22 +00:00
krasimir
39e83436e2 bugfix in the PGF browser 2010-07-31 16:04:15 +00:00
krasimir
57ec23e630 the PGF service now generates samples of the syntax in the browsing information 2010-07-31 15:54:03 +00:00
krasimir
fefd78222a fix: PGFService should type-check the trees that comes from the user 2010-07-31 10:45:59 +00:00
krasimir
b57dda5d94 detailed information for the type errors from PGFService 2010-07-13 15:33:54 +00:00
krasimir
0dbe60b7bf FridgeApp and TranslateApp now show the type errors 2010-07-08 07:57:36 +00:00
krasimir
1a7210dc18 fix PGFService after the change in the parser API 2010-07-07 14:46:24 +00:00
aarne
b66d93f44f disambiguation in Phrasebook: show Eng instead of AST if DisambL is missing; show all alternative disambiguations for each alternative translation 2010-05-28 03:40:35 +00:00
krasimir
8742ebee38 for backward compatibility we have the old parse function again. the old functionality is exposed by parse_ 2010-04-30 20:18:26 +00:00
krasimir
a3e1d43318 fix PGFService after the change in the API 2010-04-30 15:09:21 +00:00
krasimir
f806a7890d now the PGF service communicates with Graphviz using UTF8 for the input and binary for the output 2010-04-22 14:01:08 +00:00
aarne
1040f2a10d in PGFService disambiguation, show tree if there's no disamb grammar 2010-04-04 20:45:50 +00:00
aarne
66cca22f38 simplified the treatment of politeness in Phrasebook 2010-03-30 18:48:59 +00:00
aarne
0e91a4d84d disambiguation in Phrasebook grammars, PGF server, and the GUI 2010-03-30 15:39:11 +00:00
aarne
1c088506b3 catching initial bind symbol in PGFServer 2010-03-28 20:32:03 +00:00
aarne
5c0fb2cb7e text-like unlexer for phrasebook web service 2010-03-26 22:08:48 +00:00
aarne
5e4548e4da fixes for webdemos, including bug in StructuralIta 2010-03-26 17:38:20 +00:00
aarne
cd25764350 www api command translategroup, which uses groupResults 2010-03-22 22:04:36 +00:00
hallgren
e239e3331a Quick fix to adapt to new version of the PGF library. 2010-03-04 18:46:18 +00:00
krasimir
836e742ddf TranslateApp now have browser for abstract syntax 2009-11-29 14:51:12 +00:00
krasimir
abe21f6fbb function doListGrammars in PGFService is obsolete 2009-11-26 16:27:04 +00:00
krasimir
12d64654d7 the default function of the PGFService should return list of functions as well as list of categories 2009-11-26 14:47:35 +00:00
krasimir
b596086edf change PGF.categories to return list of identifiers instead of types 2009-11-26 14:43:31 +00:00