RosaeNLG is a Natural Language Generation library for node.js or client side (browser) execution, based on the Pug template engine. Based on Pug-like textual templates and on input data, RosaeNLG will generate high quality texts.
Fully supported languages (with grammar, gender etc.) are English, French, German, Italian and Spanish but you can generate texts in any other language with less features.
RosaeNLG is complete enough to write production grade real life NLG applications.
RosaeNLG is a Sandbox Project of LF AI & Data Foundation, part of the Linux Foundation.
The main documentation site is rosaenlg.org. A mirror is available on Github pages, but without the search bar.
Use the Quick Start and the Tutorials on the documentation site.
You can also play around with a client side editor, compiler and renderer with an in browser editor.
Sample template:
- var data = ['apples', 'bananas', 'apricots', 'pears'];
p
eachz fruit in data with { separator: ',', last_separator: 'and', begin_with_general: 'I love', end:'!' }
| #{fruit}
`, 'I love apples, bananas, apricots and pears!'
);
will generate:
<p>I love apples, bananas, apricots and pears!</p>
RosaeNLG is an open source project, and welcomes your contribution, be it through code, a bug report, a feature request, or user feedback.
- The Contribution Guidelines document will get you started on submitting changes to the project.
- The Developer Guide will walk you through how to set up a development environment, build the code, run tests, add a new language, publish a new version.
See Release doc
The RosaeNLG community is committed to fostering an open and welcoming environment, with several ways to engage with other users and developers. You can find out more about here.
Also check our Code of Conduct.
RosaeNLG aims to become the most used NLG open source engine, and to support more than 50 commonly spoken languages.
Major targets are:
- Improve the ability to add new languages
- Add more languages - depending on contributors
- Add new NLG libraries, like
rosaenlg-countries
- Dedicated VSCode plugin, with template debug support
- Industrialize the Java version
2021 Roadmap was presented and discussed during the first 2021 RosaeNLG meetup. See detailed 2021 roadmap.
RosaeNLG logo was made by Denis Aulas. Reference artwork is here.
RosaeNLG is open source, with most code available under the Apache 2.0 license (see the LICENSE), and documentation under Creative Commons Attribution 4.0 International (CC-BY-4.0) license, though some elements are necessarily licensed under different open source licenses for compatibility with upstream licensing or code linking. For instance, english-ordinals
and rosaenlg-cli
modules remain under MIT.
The licenses applicable to each linguistic resource package are included in each subfolder the package
directory, and a summary of the licenses can be found in the Linguistic resources documentation.