TAP is a set of interfaces that define generic functionality for a pipeline of tasks oriented towards natural language generation, from an initial conceptual input to surface realization as a string, with intervening stages of content planning and sentence planning.