1. A method of providing a multi-step interaction with a client to refine and satisfy the client's request for information, said method comprising: initiating a dialog request; mapping the dialog request into a dialog state; modifying the dialog state; and generating a response based on the dialog state.