1. A method comprising: identifying a communicative goal in a speech input of a user; generating, via a processor, a plurality of sentence plans based on the communicative goal and a dialog history database, wherein each sentence plan of the plurality of sentence plans is a viable and potentially usable prompt in response to the speech input of the user; ranking the plurality of sentence plans to yield ranked sentence plans; and outputting at least one ranked sentence plan to yield an output sentence plan, wherein the output sentence plan provides a closest match to the communicative goal among the ranked sentence plans.