RosaeNLG compared to other NLG software
CoreNLG
CoreNLG is a modern open-source Python NLG library published by Société Générale.
| Characteristic | CoreNLG | RosaeNLG | 
|---|---|---|
| main | ||
| developped in | Python | JavaScript & TypeScript | 
| language for data prep and glue | Python | TypeScript or JavaScript | 
| language for text generation | Python code | Pug templates | 
| output languages | English and French | full support with linguistic ressources for French, English, German and Italian | 
| open-souce | yes (Apache 2.0) | yes (MIT) | 
| client side execution (browser) | no | yes | 
| standard / templating features | ||
| if / else, switch / case | yes (pure Python) | yes (Pug or JavaScript) | 
| textual functions | yes (Python functions) | yes (Pug mixins) | 
| template based | no (pure Python) | yes (based on Pug) | 
| NLG features | ||
| enumerations | yes | yes | 
| capitalization, punctuation, contractions | yes | yes | 
| dates, numbers | yes | yes | 
| anaphora | basic using synonyms | yes | 
| agreement on verbs, adjectives and words | no (has to be done manually) | yes (rules & linguistic ressources) | 
| synonyms with modes | yes (random + draw without replacement) | yes (random + draw without replacement + sequence) | 
| synonyms global optimization | no | yes (per section, generates multiple alternatives and chooses the best one) | 
| ability to spot empty elements | yes | yes | 
| safely record what was said | yes | yes | 
| packaging | ||
| as a library | ? (to be checked, cannot be found on PyPI) | yes (npm) | 
| command-line interface | no | yes | 
| Docker image | no | yes (distroless) | 
In summary CoreNLG is just perfect:
- 
if you use Python 
- 
if you do not need sophisticated linguistic features likes anaphora, verbs, words and ajectives agreements 
- 
if you are not afraid of maintaining texts templates as Python code 
RosaeNLG can be better:
- 
if you want more readable templates 
- 
if your NLG project requires linguistic resources 
- 
if you use Javascript or TypeScript 
- 
if you wish to make browser side rendering