forked from GitHub/gf-core
159 lines
8.2 KiB
HTML
159 lines
8.2 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
|
|
<html> <head>
|
|
<title>About Minibar</title>
|
|
<link rel=stylesheet type="text/css" href="minibar.css">
|
|
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
|
|
<meta charset="UTF-8">
|
|
</head>
|
|
|
|
<body>
|
|
<h1>About Minibar</h1>
|
|
|
|
<a href="minibar.html">Minibar</a> is an alternative implementation of the
|
|
<a href="http://www.grammaticalframework.org/">GF</a> web app
|
|
<a href="http://www.grammaticalframework.org:41296/fridge/">Fridge Poetry</a>.
|
|
It doesn't do everything the original Fridge Poetry does (e.g. drag-and-drop is missing),
|
|
so I refer to it as a minibar rather than a full refrigerator :-)
|
|
|
|
<p>
|
|
Some implementation details:
|
|
|
|
<ul class=space>
|
|
<li>It is implemented directly in JavaScipt. It does not use Google Web Toolkit or any big JavaScript libraries.
|
|
<li>It has been tested and found to work in the following browsers:
|
|
<ul>
|
|
<li>On the Mac: Firefox 3.5 & 3.6, Safari 4.0, Opera 10.10 and
|
|
Google Chrome 4.0.249.49.
|
|
<li>On Linux: Firefox 3.0.18 & 3.5, Opera 10.10.
|
|
<li>On the Android Dev Phone: Android Mobile Safari 3.0.4 & 3.1.2
|
|
and Android Opera Mini 4.2.
|
|
</ul>
|
|
It does not seem work in Internet Explorer 7
|
|
(there are both styling and scripting issues).
|
|
There seems to be some rendering bugs in Chrome 5.0.342.9 β.
|
|
<li>The implementation consist of two JavaScript files:
|
|
<a href="minibar.js">minibar.js</a> and <a href="support.js">support.js</a>
|
|
The latter is also used in a small web app based on the
|
|
<a href="http://spraakbanken.gu.se/sal/ws/">SALDO web services</a>.
|
|
<li>To access the GF web service, it uses the
|
|
<a href="http://en.wikipedia.org/wiki/JSON#JSONP">JSONP method</a>
|
|
mentioned in the GF
|
|
web services paper, which allows the web app to be hosted on a different server
|
|
from the GF web service. (To demonstrate this, I put the Minibar demo on
|
|
www.cs.chalmers.se, while the GF server that it calls is on
|
|
www.grammaticalframework.org.)
|
|
<li>As an experiment, it does no use the <code>grammars.xml</code> file,
|
|
but instead calls a little CGI script,
|
|
<a href="http://www.grammaticalframework.org:41296/grammars/grammars.cgi.txt">grammars.cgi</a>
|
|
which lists the .pgf files in the directory, in JSONP format.
|
|
(Note: if you want to install this on your own computer,
|
|
<ul>
|
|
<li>if you click on the link,
|
|
the CGI script will be downloaded as <code>grammars.cgi.txt</code>,
|
|
but it should be called <code>grammars.cgi</code> and stored on the server
|
|
in the same directory as the grammar files.
|
|
<li>for CGI scripts to work with lighttpd, <code>"mod_cgi"</code> needs
|
|
to be included in the definition of <code>server.modules</code> in the
|
|
<code>lighttpd.conf</code> file.)
|
|
</ul>
|
|
<li>[Added 2010-02-16] There is a button for generating random sentences.
|
|
<li>[Added 2010-02-23] All translations are shown, not just the first one,
|
|
if there are multiple parses.
|
|
<li>[Added 2010-02-25] Next to each translation, there is now a little tree
|
|
icon that you can click on to see a drawing of an abstract syntax tree or a
|
|
parse tree. If you click on a drawing it collapses back into a tree icon.
|
|
<li>[Added 2010-04-09] Preparations to support different ways to access the
|
|
grammar: currently we access a PGF server via JSONP, but I would also like
|
|
to support AJAX, and local/downloaded JavaScript grammars.
|
|
<li>[Added 2010-04-19] A text entry field appears when you click in
|
|
the sentence area (with a dashed border). This allows you to enter words by
|
|
typing on the keyboard. As you start typing word magnets that don't match what
|
|
you are typing are removed. When only one magnet remains, you can press enter
|
|
to complete the word.
|
|
<li>[Added 2010-04-19] There is a menu for choosing the output language:
|
|
you can pick "All" to translate to all available languages, or pick one
|
|
particular language.
|
|
<li>[Added 2010-04-19] You can pass options to the function
|
|
<code>start_minibar</code> to customize the user interface. The default is
|
|
<code>{show_abstract:true,show_trees:true}</code> to show the abstract syntax
|
|
of parsed sentences, and to show icons that expand to syntax/parse trees next
|
|
each translation.
|
|
These features can be turned off by setting the fields to <code>false</code>.
|
|
<li>[Added 2010-04-30] The grammar menu is omitted if there is only one
|
|
grammar in the grammar list.
|
|
<li>[Added 2010-04-30] Fewer hardwired constants and new
|
|
<code>start_minibar</code> options (server, grammars_url, grammar_list,
|
|
show_grouped_translations, delete_button_text) to make
|
|
<code>minibar.js</code> more resuable.)
|
|
<li>[Added 2010-05-26] The magnets are now created with
|
|
<code><input type=button></code> tags to make them clickable in more
|
|
browsers.
|
|
<li>[Added 2010-05-26] The text entry field is now visible from the start,
|
|
and it is removed when no more words can be added to the sentence. When you
|
|
press enter, the a word is added if there is only one magnet left,
|
|
<em>or</em> if what you have entered exactly matches one of the remaining
|
|
magnet.
|
|
<li>[Added 2010-05-28] Added a link to make it easy to try the same sentence in
|
|
<a href="http://translate.google.com">Google Translate</a>.
|
|
This can be turned of by passing the option <code>{try_google:false}</code> to
|
|
<code>start_minibar</code>.
|
|
<li>[Added 2010-06-02] Added support for Help and Feedback buttons, controlled
|
|
by the options <code>feedback_url</code> and <code>help_url</code> passed to
|
|
<code>start_minibar</code>.
|
|
<li>[Added 2010-06-02] New option: <code>default_source_language</code>.
|
|
<li>[Added 2010-09-10] Minibar now automatically uses
|
|
<a href="http://en.wikipedia.org/wiki/Ajax_(programming)">AJAX</a>
|
|
instead of JSONP when possible (i.e. when the HTML document and the
|
|
PGF server are on the same server).
|
|
<li>[Added 2010-09-10] The default input language is now the user's preferred
|
|
language, if possible. This is implemented by consulting the
|
|
<code>userLanguage</code> field in the grammar info output by pgf-server.
|
|
<li>[Added 2010-10-27] Keyboard input and completion should now work much
|
|
more smoothly:
|
|
<ul>
|
|
<li>When you press space, the current word will be completed (if incomplete)
|
|
and a new magnet will be created. If there is more than one possible
|
|
completion, no magnet is created, but the common prefix of the possible
|
|
completions is added to the text box.
|
|
<li>Instead of asking the server for possible completions every time a new
|
|
letter is added to the curent word, minibar only ask for completions for
|
|
whole words and then filters the list locally when more letters are entered,
|
|
speeding things up when server responses are slow.
|
|
</ul>
|
|
<li>[Added 2010-10-27] Code restructuring:
|
|
<ul>
|
|
<li>The PGF server API has been moved to its own file:
|
|
<a href="pgf_online.js">pgf_online.js</a>. This
|
|
allows it to be reused in other applicaitons without importing the entire
|
|
minibar. It also allows minibar to be used with different server
|
|
interfaces. <a href="minibar.html">minibar.html</a> has been updated to
|
|
show how you use the new <a href="minibar.js">minibar.js</a> and
|
|
<a href="pgf_online.js">pgf_online.js</a>.
|
|
<li>The minibar code has been rewritten to avoid storing state information
|
|
in the document tree and accessing it by referring to named document
|
|
elements. The code now also avoids using string literals contaning
|
|
the names of top-level functions to specify event handlers for buttons
|
|
and menus. (The code is no longer introspective, so α conversion
|
|
will not change its meaning.)
|
|
</ul>
|
|
<li>[Added 2010-11-09] Some new documentation:
|
|
<ul>
|
|
<li><a href="gf-web-api-examples.html">gf-web-api-examples.html</a>:
|
|
examples illustrating the PGF server API provided by
|
|
<a href="pgf_online.js">pgf_online.js</a>.
|
|
<li><a href="example.html">example.html</a>: a minimal example of a web
|
|
page that uses <a href="pgf_online.js">pgf_online.js</a> to talk to the
|
|
PGF server.
|
|
</ul>
|
|
</ul>
|
|
|
|
<hr>
|
|
<small class=modtime>
|
|
<!-- hhmts start --> Last modified: Sun Nov 28 12:49:43 CET 2010 <!-- hhmts end -->
|
|
</small>
|
|
<address>
|
|
<a href="http://www.cs.chalmers.se/~hallgren/">TH</a>
|
|
<img src="http://www.altocumulus.org/~hallgren/online.cgi?icon" alt=""></address>
|
|
</address>
|
|
</body> </html>
|