/simplenlg

Java API for Natural Language Generation. Originally developed by Ehud Reiter at the University of Aberdeen’s Department of Computing Science and co-founder of Arria NLG. This git repo is the official SimpleNLG version.

Primary LanguageJavaOtherNOASSERTION

Build Status SourceSpy Dashboard

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:

  • Lexicon/morphology system: The default lexicon computes inflected forms (morphological realisation). We believe this has fair coverage. Better coverage can be obtained by using the NIH Specialist Lexicon (which is supported by SimpleNLG).
  • Realiser: Generates texts from a syntactic form. Grammatical coverage is limited compared to tools such as KPML and FUF/SURGE, but we believe it is adequate for many NLG tasks.
  • Microplanning: Currently just simple aggregation, hopefully will grow over time.

Current release (English)

The current release of SimpleNLG is V4.5.0 (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.

The quickest way to use SimpleNLG is to add it as a dependency to your maven pom.xml file:

<dependency>
  <groupId>uk.ac.abdn</groupId>
  <artifactId>SimpleNLG</artifactId>
  <version>4.5.0</version>
</dependency>

If you have a technical question about using SimpleNLG, please check the SimpleNLG discussion list. Or 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:

The sourcespy dashboard provides a high level overview of the repository including class diagram, Ant tasks and dependencies, module dependencies, external libraries, and other components of the system.

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.

Brazilian Portguese 🇧🇷: The Brazilian Portgue version of SimpleNLG 4 is avaliable from this page.

Dutch 🇳🇱: The Dutch version of SimpleNLG 4 is avaliable from this page.

German 🇩🇪: The German version of SimpleNLG 4 is avaliable from this page. There is also an adaptation of SimpleNLG version 3.x to German. This is available from this page. Please remember that SimpleNLG version 3.x is not licensed for commercial use.

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

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) version 2.0.