Boilerplate project
boilerplate project is a standard NLG project using RosaeNLG and following (my) best practices that you can fork to start your own RosaeNLG project.
It is based on the content of the English tutorial.
Data load and pre processing
At some point you have to load into data and also pre process it. You can use init.js
for that.
Templates organisation
One possible organization for your templates:
-
phoneForHtml.pug
andphoneForJson.pug
are technical entrypoints: they are almost the same, and mainly call thephone
mixin -
includes.pug
centralizes all your includes: this is handy when you refactor -
phones.pug
is the real entrypoint for NLG: it generates the text for a phone -
phone_refexpr.pug
contains the reference and referring expressions for phones. Create one file per object you describe (car_refexpr.pug
) etc. -
sentences (most of the textual content) are in
sentences
:-
one file per sentence:
colors.pug
generates the sentence about the colors,intro.pug
is the introduction sentence etc. -
If you have longer sentences and paragraphs you should create a more sophisticated hierarchy, but I recommend to keep 1 file per sentence.
-
Testing
You should (really) have some regression testing on your texts. It just compares texts with reference texts previously generated.
-
Use
gulp nonreg
to regenerate the reference file intests/phonesNonreg.json
. It contains texts along with the random seed (the same random seed has to be used when running the tests). -
Run the tests using
npm run test
ormocha