1. A method for providing conversational computing between a user and at least one application, the method comprising the steps of: engaging in dialog with the user; processing the dialog, by a processor executing the at least one application, to one of complete a query, disambiguate a query, summarize a query, correct a query, correct a result of an executed task, communicate the result of such execution, determine a target application of an input/output event, and a combination thereof based on one of past dialog history, context, user preferences, meta information, and a combination thereof; and presenting a unified and coordinated user interface across the plurality of applications; wherein presenting a unified and coordinated user interface across a plurality of applications comprises the steps of: registering, by each application, information comprising application state, application modes, arguments, context, modalities, engine resources, and a combination thereof; and managing the dialog across the plurality of applications based on their registered information.