This is the first article of a series on NLG (Natural Language Generation) design patterns. These articles describe common situations encountered when implementing NLG systems, and how you should deal with it.

A sample implementation is given using open-source RosaeNLG, but the same approach applies with any template based NLG system, like CoreNLG or Yseop.

Photo by Glenn Carstens-Peters on Unsplash

“Conditional Enumerations” Intent

You want to generate a dynamic sentence that enumerates properties or characteristics, like in this sentence:

This car is ideal for a family, is practical for long travels and consumes less than 5 l per 100 km.

or in:

This car is is ideal for…


RosaeNLG, the open-source (under MIT license) Natural Language Generation (NLG) software, is now available on Orange AI Marketplace.
You can immediately generate preconfigured Sales Reports, create simple NLG templates directly in the web interface, or host complex NLG projects developed using VSCode.

Image by Лариса Мозговая from Pixabay

What is the Orange AI Marketplace?

Managed by Orange Business Services (a global enterprise division of the Orange Group supporting businesses around the world in their digital transformation), Orange AI Marketplace offers a mutualized ecosystem for a smooth development of Artificial Intelligence services. It is the “AI App Store” where Producers can publish and share AI services that can be easily used by any…


RosaeNLG is an open-source Natural Language Generation (NLG) library written in JavaScript. Using RosaeNLG, you can add narratives to your Power BI dashboards in English, French, German or Italian. Texts are rendered locally in the dashboard, without any API call.

This article explains why NLG is useful for Power BI dashboards, and how to build narratives in Power BI using RosaeNLG.

Photo by Carlos Muza on Unsplash

Why use NLG in dashboards

Natural Language Generation (NLG) can be used to analyse data dynamically in a dashboard, and summarize that data in a textual narrative.

Power BI dashboards are composed of nice graphics: bars, pie charts, maps etc. While graphics are nice…


RosaeNLG is an open-source Natural Language Generator (NLG) written in JavaScript. Shipped as a npm package or as a plain JavaScript library, it can be used server side in any node.js application, or client side for browser rendering. But now you can also run it in a Java Virtual Machine — with or without Docker.

RosaeNLG’s logo, thanks to Denis Aulas

For an introduction on RosaeNLG, see Introducing RosaeNLG, an open-source Natural Language Generation library.

As it is written in JavaScript, RosaeNLG is primarily designed to run within a node.js server or a browser. Still, some users are reluctant to use node.js in production for security…


RosaeNLG is an open-source (Apache 2.0) Natural Language Generation (NLG) library written in JavaScript, based on the Pug template engine. It supports any language and is currently shipped with resources for English, French, German, Italian and Spanish languages.

RosaeNLG’s logo, thanks to Denis Aulas

RosaeNLG is the first open-source NLG library which is easy to use and complete enough to write real life NLG applications. It can be run both server side (node.js) and client side, in a browser.

What is NLG?

NLG stands for Natural Language Generation. …

Ludan Stoecklé

building NLP and AI solutions

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store