Experimental code for generating English from logic expressions

For an introduction, see Flickinger (2017): ``Generating English Paraphrases 
from Logic,'' in Martijn Wieling, Gosse Bouma and Gertjan van Noord, eds., 
{\em From Semantics to Dialectometry}. Springer. 

The following instructions outline how to compile a version of the paraphrase 
grammar, then call Aaron Kalb's FOL converter to MRS syntax, then inflate to
a full generator-ready MRS, add paraphrased MRSs, generate, sort the realized
outputs uniquely, and write to a file.

1. Compile the MRS-inflation, paraphrase, and generator grammars

cd ~/erg
ace -G openproof/inflatemrs.dat -g openproof/config-inflate.tdl
ace -G openproof/paraphrase-op.dat -g openproof/config.tdl
ace -G openproof/ergopen.dat -g ace/config-open.tdl

2. To run single examples interactively, call `runfol' with at least the
   first two arguments (an FOL expression and a set of paraphrase rules to
   apply).  Direct the output in XML to a file `out.txt'.

cd ~/erg/openproof; ./runfol -f "small(a)-->large(b)" -r rules.all > /tmp/out.txt

3. For batch generation on all formulae in `fols.txt':

cd ~/erg; for i in $(cat openproof/fols.txt); do \python openproof/scripts/e2e.py $i | ace-op -g inflatemrs.dat -f | ace-op -g paraphrase-op.dat -f | ace-op -g ergopen.dat -e | sort -u; echo "---ITEM---"; done > /tmp/out.txt

The mechanism for constraining which paraphrase rules get used is as follows:
 - The config-*.tdl files determine which paraphrase-op-*.tdl file gets
   loaded, and these files in turn specify which mtr-op-*.tdl file gets loaded.
 - The runfol-* files are the executable scripts that can be called by the
   top-level server.py script (in lingo/openproof/Server), and each of these
   runfol-* files starts by compiling the relevant set of paraphrase rules, by
   invoking the appropriate config-*.tdl file.