Natural Language Generation Architecture