The Web Application Description Language, WADL (http://www.w3.org/Submission/wadl/), is a specification language of HTTP-based Web applications that can be read and processed automatically to generate web service clients. In combination with an API platform, such as Apigee (http://apigee.com), it is possible to expose the API of a web service to developers of third-party web applications so they can quickly integrate with further services, for instance authentication, logging data, performance monitoring.
For a GF grammar developer, writing a WADL specification for the grammar is a quick way to expose the translation command invocation details in a machine processable way. Any PGF compiled GF grammar can be fed to the GF Web Service along with specific commands and query parameters to provide for instance parsing, linearization, and random tree generation according to the the GF Web Service API. The documentation is available at http://code.google.com/p/grammatical-framework/wiki/GFWebServiceAPI. The web application running the GF web service is distributed in the regular GF distribution. A Java frontend was developed during the MOLTO project, http://www.molto-project.eu/biblio/software/gf-java-master, and is being maintained at Github, https://github.com/Kaljurand/GF-Java.
The example WADL specification file for web services powered by the TextPainting.pgf
grammar hosted on the Grammatical Framework cloud server and deployed on Apigee, as seen in the figure below, is available at http://www.molto-project.eu/biblio/web-service/textpaintingpgf. It exposes the GET command for retrieving the grammar information and the GET command for retrieving a random production in any of the available categories.
The designer of the web service for translating painting descriptions might decide to expose a very specific command, for instance only parsing of descriptions in Italian. This is possible by selecting what to describe in the WADL specification in a careful way, by not exposing the full generality of the grammar. Grammars that are stable only in certain categories, for instance because of increasing complexity in their modular stepwise development, can in this way be deployed while under development, provided the only web services exposed are the stable ones.