---
title: "SimpleNLG: A Realisation Engine for Practical Applications (2009)"
description: "Gatt and Reiter present SimpleNLG, a Java library for English surface realisation. 11 references, cited by 90 papers here."
authors: ["Albert Gatt", "Ehud Reiter"]
year: 2009
venue: "Proceedings of the 12th European Workshop on Natural Language Generation (ENLG 2009)"
source: "https://aclanthology.org/W09-0613/"
licence: "CC BY-NC-SA 3.0 (ACL Anthology, before 2016)"
licence_url: "https://creativecommons.org/licenses/by-nc-sa/3.0/"
summary_licence: "Elamur Cosmic License"
canonical: "https://research.elamur.ai/free/en/papers/gatt-2009-simplenlg-realisation-engine-practical-applications/"
---
[Elamur Research](https://md.research.elamur.ai/free/en/) · [this page in HTML](https://research.elamur.ai/free/en/papers/gatt-2009-simplenlg-realisation-engine-practical-applications/)

[home](https://md.research.elamur.ai/free/en/) / [papers](https://md.research.elamur.ai/free/en/papers/) / [2009](https://md.research.elamur.ai/free/en/papers/2009/) / SimpleNLG: A Realisation Engine for Practical Applications

# SimpleNLG: A Realisation Engine for Practical Applications

**Authors:** [Albert Gatt](https://md.research.elamur.ai/free/en/authors/albert-gatt/) and [Ehud Reiter](https://md.research.elamur.ai/free/en/authors/ehud-reiter/) · **Year:** 2009 · **Venue:** [Proceedings of the 12th European Workshop on Natural Language Generation (ENLG 2009)](https://md.research.elamur.ai/free/en/venues/european-workshop-on-natural-language-generation/) ([European Workshop on Natural Language Generation 2009](https://md.research.elamur.ai/free/en/venues/european-workshop-on-natural-language-generation/2009/)) · **Publisher:** [Association for Computational Linguistics](https://md.research.elamur.ai/free/en/publishers/association-for-computational-linguistics/) · **Licence:** [CC BY-NC-SA 3.0 (ACL Anthology, before 2016)](https://creativecommons.org/licenses/by-nc-sa/3.0/)

**Links:** [Publisher's page](https://aclanthology.org/W09-0613/) · [PDF](https://aclanthology.org/W09-0613.pdf) · [OpenAlex](https://openalex.org/W6987196544)

**Citations:** 31 citations (OpenAlex, 2026-10-14) · [90](https://md.research.elamur.ai/free/en/papers/gatt-2009-simplenlg-realisation-engine-practical-applications/cited-by/) in our library, of the 141,840 papers whose bibliographies we read

## 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
- **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.
- **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.
- **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.
- **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.
- **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.

*Our summary of the paper, in our own words — not its text. The work belongs to its authors; read it at the links above.*

📚 Shelves (4): [🖥️ Computer Science](https://md.research.elamur.ai/free/en/shelves/computer-science/) · 9,085 works · [🤖 Artificial Intelligence](https://md.research.elamur.ai/free/en/shelves/computer-science/artificial-intelligence/) · 8,888 works · [🎭 Arts and Humanities](https://md.research.elamur.ai/free/en/shelves/arts-and-humanities/) · 9,296 works · [🗣️ Language and Linguistics](https://md.research.elamur.ai/free/en/shelves/arts-and-humanities/language-and-linguistics/) · 9,206 works

🧭 Topics (1): [✍️ Text generation](https://md.research.elamur.ai/free/en/topics/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).

The paper itself, not this page. BibTeX from the library's record of the work.

```bibtex
@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/}
}
```

- [← previous A Novel Discourse Parser Based on Support Vector Machine Classification](https://md.research.elamur.ai/free/en/papers/duverle-2009-novel-discourse-parser-based-support/)
- [next → Supervised and Unsupervised Methods in Employing Discourse Relations for Improving Opinion Polarity Classification](https://md.research.elamur.ai/free/en/papers/somasundaran-2009-supervised-unsupervised-methods-employing-discourse/)
- [↑ back to papers of 2009](https://md.research.elamur.ai/free/en/papers/2009/)

## References

11 references, 2 of them with a card of ours. ↗ leads to the work, «find» searches for one we have no id for yet.

1. J. A. Bateman. 1997. Enabling technology for multilingual natural language generation: the KPML development environment. Natural Language Engineering, 3(1):15–55. [find](https://scholar.google.com/scholar?q=J%2E+A%2E+Bateman%2E+1997%2E+Enabling+technology+for+multilingual+natural+language+generation%3A+the+KPML+development+environment%2E+Natural+Language+Engineering%2C+3%281%29%3A15%E2%80%9355%2E)
2. J. Coch. 1996. Overview of AlethGen. In Proceedings of the 8th International Natural Language Generation Workshop. [find](https://scholar.google.com/scholar?q=J%2E+Coch%2E+1996%2E+Overview+of+AlethGen%2E+In+Proceedings+of+the+8th+International+Natural+Language+Generation+Workshop%2E)
3. M. Elhadad and J. Robin. 1996. [An overview of SURGE : A reusable comprehensive syntactic realization component](https://md.research.elamur.ai/free/en/papers/elhadad-1996-overview-surge-reusable-comprehensive-syntactic/). In Proceedings of the 8th International Natural Language Generation Workshop.
4. 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](https://scholar.google.com/scholar?q=I%2E+Langkilde%2E+2000%2E+Forest%2Dbased+statistical+language+generation%2E+In+Proceedings+of+the+1st+Meeting+of+the+North+American+Chapter+of+the+Association+for+Computational+Linguistics%2E)
5. B. Lavoie and O. Rambow. 1997. [A fast and portable realizer for text generation systems](https://md.research.elamur.ai/free/en/papers/lavoie-1997-fast-portable-realizer-text-generation/). In Proceedings of the 5th Conference on Applied Natural Language Processing.
6. 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](https://scholar.google.com/scholar?q=S%2EW%2E+McRoy%2C+S%2E+Channarukul%2C+and+S%2E+Ali%2E+2000%2E+YAG+%3A+A+template%2Dbased+generator+for+real%2Dtime+systems%2E+In+Proceedings+of+the+1st+International+Conference+on+Natural+Language+Generation%2E)
7. G. Minnen, J. J. Carroll, and D. Pearce. 2001. Applied morphological processing of English. Natural Language Engineering, 7(3):207–223. [find](https://scholar.google.com/scholar?q=G%2E+Minnen%2C+J%2E+J%2E+Carroll%2C+and+D%2E+Pearce%2E+2001%2E+Applied+morphological+processing+of+English%2E+Natural+Language+Engineering%2C+7%283%29%3A207%E2%80%93223%2E)
8. 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](https://scholar.google.com/scholar?q=F%2E+Portet%2C+E%2E+Reiter%2C+A%2E+Gatt%2C+J%2E+Hunter%2C+S%2E+Sripada%2C+Y%2E+Freer%2C+and+C%2E+Sykes%2E+to+appear%2E+Automatic+generation+of+textual+summaries+from+neonatal+intensive+care+data%2E+Artificial+Intelligence%2E)
9. E. Reiter and R. Dale. 2000. Building Natural Language Generation Systems. Cambridge University Press, Cambridge, UK. [find](https://scholar.google.com/scholar?q=E%2E+Reiter+and+R%2E+Dale%2E+2000%2E+Building+Natural+Language+Generation+Systems%2E+Cambridge+University+Press%2C+Cambridge%2C+UK%2E)
10. 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](https://scholar.google.com/scholar?q=E%2E+Reiter%2C+S%2E+Sripada%2C+J%2E+Hunter%2C+J%2E+Yu%2C+and+I%2E+Davy%2E+2005%2E+Choosing+words+in+computer%2Dgenerated+weather+forecasts%2E+Artificial+Intelligence%2C+167%3A137%E2%80%93+169%2E)
11. E. Reiter. 2007. An architecture for Data-to-Text systems. In Proceedings of the 11th European Workshop on Natural Language Generation. [find](https://scholar.google.com/scholar?q=E%2E+Reiter%2E+2007%2E+An+architecture+for+Data%2Dto%2DText+systems%2E+In+Proceedings+of+the+11th+European+Workshop+on+Natural+Language+Generation%2E)

*Updated 24 October 2026*
