This document discusses natural language generation (NLG), which is the process of generating natural language from non-linguistic data. It describes the basic components of an NLG system, including the knowledge base, discourse planner, and surface realizer. It also discusses different types of NLG systems from canned text to more advanced systems. Examples of existing NLG systems are provided such as weather forecast generators and smoking cessation programs.