*** Jeni project
Java port of GenI - in progress

*** Where is what?
src/.../commons : common package for generators, include generation interfaces, grammar, lexicon, semantics, unification classes, tests, etc.
src/../jeni : the Jeni package (mostly experimental, needs to be refactored)
doc : some documentation (UML not up to date) 
resources : some resources including french/english grammars (one XMG grammar), lexicons, test suites

*** How to run it?
For now by eclipse, you can run Junit tests in ...commons.tests package, and the ...jeni.JeniGeneratorTest.
The logs are written in root directory jeni.log file.

*** NgramRanker and SRILM

The NgramRanker requires that SRILM is installed somewhere. It calls the executable file "ngram" which should be accessible.
You can define the path to "ngram" in your launch target:
- do Run > Run Configurations... > Environment > Select
- then select the PATH environment variable and adds to it the directory that contains the ngram executable

*** TODO
- missing coref on vAlt
	-> TO DO

- generation timeout: we could have a parametrizable timeout on the generation process
	-> DONE
- rootfeat: providing a filter as a parameter will help to filter out undesired results
	-> TO DO

- there might be a bug in the idx early semantic failure test (check)
	-> DONE, it seems ok so far
- diagnostics: it would be nice to be able to trace back the source of a failed generation thanks to a test entry (for instance:
the sentence is generated but ruled out since its semantics has an issue, or there are two fragments that would cover the sentence
but their combination failed, etc.)
	-> TO TRY

- substitution/adjunction instantiation context merge : the unification relies on a method unify(FS1, FS2, Context), where the Context contains 
the values of variables. However when performing a substitution or an adjunction the Context needs to merge the context of the two trees before 
doing any unification. The merging need to take care of variables names such that there is no variable in both FS that have the same name.
	-> DONE, seems working

- derivation tree creation : the classes to build derivation tree are draft, they need to be improved and also built when doing tree combinations
	-> DONE, needs testing

- derived tree top/bot unification test in the end : once the generation is done, we need to check whether the derived trees features structures do not 
contain inconsistences, hence the top and bot of each node need to unify
	-> DONE, seems working

- incremental generation : the generation is done in one shot, in order to work with the GUI we need to consider step by step generation
	-> HALF-DONE, needs more work

- polarity filtering : when need to filter the trees by the polarity automata
	-> HALF-DONE, some algorithms and structures are there but they need more work/discussion, it is off by default

- unification context protection : when passing a context to a unification the context should not be altered if the unification failed, we need to make sure of that
	-> DONE, seems working

- coref in grammar : look more closely at coref field in grammar, it is not read when reading the grammar but it's possible that it's actually not used, maybe check with bigger grammars
	-> DONE, it does not seem to be used
- remove doublons : we need to remove doublons when doing substitutions in trees with several substitution nodes
	-> DONE