1. A method of generating an application accessible by a user in accordance with a dialog system, the dialog system comprising one or more processors, the method comprising the steps of: declaratively representing by the one or more processors of the dialog system interactions that the user may have with the dialog system as a data model and one or more user interaction elements that populate an application state of the data model and that are bound thereto, the application comprising the data model and the one or more user interaction elements wherein the one or more user interaction elements comprise one or more elementary programming components that characterize a dialog, independent of modalities, devices, and browsers employable to access information associated with the application programmed in accordance therewith; wherein an intention of the user is determinable from an interpretation of the one or more user interaction elements and an extraction of a semantic meaning from a user input such that a dialog that the user has with the dialog system may be a mixed-initiative dialog whereby navigation through the application is performable in a non-sequential manner and at least partially user-driven; wherein at least a portion of the one or more user interaction elements can be transformed or associated to one or more modality-specific renderings of the application which are presentable to the user and are one of selected and generated by a dialog manager algorithm; and wherein the representation comprises attaching appropriate event handlers to each of a plurality of defined events comprising a parser event, a canonicalization event, a canonicalization response event, a backend submit event, a backend submit response event, a focus event, and a slot mutation event; wherein populating the application state of the data model comprises the steps of: scoring each of the one or more user interaction elements against one or more slots of each of a plurality of forms in accordance with a scoring algorithm; selecting at least one of the plurality of forms to represent the application state based at least in part on the scoring; and populating the one or more slots of the selected form by the one or more user interaction elements in accordance with the user's interaction with the dialog system; wherein the selected form specifies the scoring algorithm to be used for at least one subsequent scoring.