SimpleNLG: A Realisation Engine for Practical Applications
Paper · 2009 · Albert Gatt and Ehud Reiter
Summary
Gatt and Reiter present SimpleNLG, a Java library for English surface realisation. It deliberately handles only the mechanical part of generation: building syntactic structure, inflecting words and linearising the result. Deciding how semantic content maps to syntax is left entirely to the developer. The authors argue that wide-coverage realisers such as FUF/SURGE, KPML or OpenCCG impose a fixed input formalism, can become slow when they search large spaces of choices, and are difficult to adapt to domain sublanguages such as weather or patient-data summaries. SimpleNLG instead exposes an API in which a developer creates constituents, sets features (tense, interrogative type, passive, etc.), combines phrases and hands the result to a lineariser. Canned strings and fully specified phrases can be mixed freely. Its morphology reimplements the MorphG rules, and it can draw lexical information from the NIH Specialist Lexicon. The engine grew out of large data-to-text projects. It matters because it gives application builders predictable, fine-grained control over output without requiring them to adopt a full generation grammar.
Key points
- The library is written in Java, targets English, and was published at ENLG 2009 (pp. 90–93). It was motivated by data-to-text systems that summarise numeric and symbolic data, where efficiency and sublanguage constraints are central.
- The lexical component (Lexicon, MorphologicalRule, LexicalItem) reimplements the MorphG inflection rules, covering regular and irregular forms. It is kept separate from the syntactic component.
- The distribution can connect to a database built from the NIH Specialist Lexicon, which holds more than 300,000 medical and general-English entries.
- The syntactic layer includes several key types:
- HeadedPhrase and CoordinatePhrase, with recursive coordination;
- PhraseSpec subtypes such as SPhraseSpec, NPPhraseSpec and VPPhraseSpec;
- StringPhraseSpec for canned text.
- Features such as Tense, Number, Person, Mood, Passive and InterrogType drive the output. For example, setting a WH-type linked to the object turns a declarative into a "where" question.
- Lexical features such as adjective ordering position and noun agreement type are stored in the lexicon. At the time of writing, however, the realiser did not apply them automatically.
Interesting ideas
- I1. Split realisation from tactical choice. Offering only the "mechanical" layer lets each application keep its own domain logic for content-to-syntax mapping. This suits projects with strict style or sublanguage needs.
- I2. Mix templates and grammar in one tree. Fixed fragments can be stored as plain strings next to fully built phrases. A system can then start template-based and gradually replace parts with generated structure, without changing tools.
- I3. Degrade gracefully instead of failing. Incomplete or ill-formed structures produce awkward but readable text rather than a crash. This is a sensible priority for production systems running on messy input.
- I4. Make morphology usable on its own. Because the inflection module is separate, it can be used without the syntax layer, for example to inflect slot fillers correctly in templates. This idea is especially useful for richly inflected languages such as Ukrainian.
- I5. Express variation as feature switches. Questions, tense or passive voice are produced by changing a feature on an existing structure rather than rebuilding it. This keeps generation code compact and makes systematic variants easy to produce.
Fields, topics and concepts
📚 Shelves 4The field of science this work belongs to (OpenAlex fields).Computer Science · 9,085 worksArtificial Intelligence · 8,888 worksArts and Humanities · 9,296 worksLanguage and Linguistics · 9,206 works
🧭 Topics 1Research subjects and languages the work is about.Text generation · 145 works
Cite
Cite as Albert Gatt and Ehud Reiter. 2009. SimpleNLG: A Realisation Engine for Practical Applications. Proceedings of the 12th European Workshop on Natural Language Generation (ENLG 2009).
@inproceedings{gatt2009simplenlg,
title = {{SimpleNLG: A Realisation Engine for Practical Applications}},
author = {Albert Gatt and Ehud Reiter},
booktitle = {Proceedings of the 12th European Workshop on Natural Language Generation (ENLG 2009)},
year = {2009},
url = {https://aclanthology.org/W09-0613/}
}References
- J. A. Bateman. 1997. Enabling technology for multilingual natural language generation: the KPML development environment. Natural Language Engineering, 3(1):15–55. find
- J. Coch. 1996. Overview of AlethGen. In Proceedings of the 8th International Natural Language Generation Workshop. find
- M. Elhadad and J. Robin. 1996. An overview of SURGE : A reusable comprehensive syntactic realization component. In Proceedings of the 8th International Natural Language Generation Workshop.
- I. Langkilde. 2000. Forest-based statistical language generation. In Proceedings of the 1st Meeting of the North American Chapter of the Association for Computational Linguistics. find
- B. Lavoie and O. Rambow. 1997. A fast and portable realizer for text generation systems. In Proceedings of the 5th Conference on Applied Natural Language Processing.
- S.W. McRoy, S. Channarukul, and S. Ali. 2000. YAG : A template-based generator for real-time systems. In Proceedings of the 1st International Conference on Natural Language Generation. find
- G. Minnen, J. J. Carroll, and D. Pearce. 2001. Applied morphological processing of English. Natural Language Engineering, 7(3):207–223. find
- F. Portet, E. Reiter, A. Gatt, J. Hunter, S. Sripada, Y. Freer, and C. Sykes. to appear. Automatic generation of textual summaries from neonatal intensive care data. Artificial Intelligence. find
- E. Reiter and R. Dale. 2000. Building Natural Language Generation Systems. Cambridge University Press, Cambridge, UK. find
- E. Reiter, S. Sripada, J. Hunter, J. Yu, and I. Davy. 2005. Choosing words in computer-generated weather forecasts. Artificial Intelligence, 167:137– 169. find
- E. Reiter. 2007. An architecture for Data-to-Text systems. In Proceedings of the 11th European Workshop on Natural Language Generation. find
Updated
This page in Markdown → https://md.research.elamur.ai/free/en/papers/gatt-2009-simplenlg-realisation-engine-practical-applications/