gjdv / simplenlg

Fork of SimpleNLG with port to C#
Other
4 stars 1 forks source link
Java: Build Status
C#: Build status

SimpleNLG fork by GJdV

This fork is based upon SimpleNLG. The following changes have been made:

Additions

Port to C#

This port to C# was made for better integration in C# projects. Note that the C# code could be optimized further, however, it was chosen to stay close to the original to aid in maintenance when updates are made to the original SimpleNLG code. The ported unit tests were used to verify correctness of the port. Currently only the server test fails (see "Known Issues"). In order to remove all dependency to java, the HSQLdb containing the NIHDB lexicon was converted to SQLITE. If there is a way to interact from C# directly (without IKVM or other wrappers) to HSQLdb, please let me know. There are some placeholders (outcommented) in the code to accomodate for this functionality. To identify which mode (HSQL or SQLITE) to run, the lexicon-type (used e.g., in lexicon.properties) has been extended with the options NIH_SQLITE and NIH_HSQL; the original value NIH defaults to NIH_HSQL. These SQLITE databases are located in \SimpleNLG\srcCsharp\Resources\NIHLexicon as zip-files and should be extracted before running the code.

This port also includes the sources of LexAccess (v2016) and some dependencies from Lexical Tools (v2018). Various versions of NIH Lexicon were converted from HSQLdb to SQLITE. Please note their Terms and conditions, which also apply to the C# port of the respective code.

Known issues

 

Below you can find the original README from SimpleNLG:

 

 


 

SimpleNLG

SimpleNLG is a simple Java API designed to facilitate the generation of Natural Language. It was originally developed by Ehud Reiter, Professor at the University of Aberdeen's Department of Computing Science and co-founder of Arria NLG. The discussion list for SimpleNLG is on Google Groups.

SimpleNLG is intended to function as a "realisation engine" for Natural Language Generation architectures, and has been used successfully in a number of projects, both academic and commercial. It handles the following:

Current release (English)

The current release of SimpleNLG is V4.4.8 (API). The "official" version of SimpleNLG only produces texts in English. However, versions for other languages are under development, see the Papers and Publications page and SimpleNLG discussion list for details.

Please note that earlier versions of SimpleNLG have different licensing, in particular versions before V4.0 cannot be used commercially.

Getting started

For information on how to use SimpleNLG, please see the tutorial and API.

If you have a technical question about using SimpleNLG, please check the SimpleNLG discussion list.

If you wish to be informed about SimpleNLG updates and events, please subscribe to the SimpleNLG announcement list.

If you wish to cite SimpleNLG in an academic publication, please cite the following paper:

If you have other questions about SimpleNLG, please contact Professor Ehud Reiter via email: ehud.reiter@arria.com.

SimpleNLG for other languages

French: A version of SimpleNLG for French is avaliable from this page.

Italian: The Italian version of SimpleNLG 4 is avaliable from this page.

Spanish: The Spanish version of SimpleNLG 4 is avaliable from this page.

German: Marcel Bollman has been working on an adaptation of SimpleNLG version 3 to German. This is available from this page. Please remember that SimpleNLG version 3 is not licensed for commercial use.

C# implementations of SimpleNLG are also avaliable. One by Gert-Jan de Vries here and a second by Nick Hodge here.

SimpleNLG License

SimpleNLG is licensed under the terms and conditions of the Mozilla Public Licence (MPL).