1. A method for providing a voice user interface that generates cooperative conversational responses to user utterances, the responses being based on shared knowledge about a current conversation and/or one or more past conversations, the method comprising: receiving an input, the input including at least one utterance; updating the shared knowledge to include knowledge about the at least one utterance, determining an intended meaning for the at least one utterance based on the updated shared knowledge; and generating a response based on the determined intended meaning.