a set of ExternalFunctions declarations, which represents functionalities exploited by the UI but implemented by a generic application back-end support (e.g. web services, code libraries, databases etc.). Event Model. Each interactor definition has a number of associated events that allow the specification of UI reaction triggered by the user interaction. Dialog Model. The dialog model contains constructs for specifying the dynamic behaviour of a presentation, specifying what events can be triggered at a given time. The dialog expressions are connected using CTT operators in order to define their temporal relationships. Continuous update of fields. It is possible to specify that a given field should be periodically updated invoking an external function. Dynamic Set of User Interface Elements. The language contains constructs for specifying partial presentation updates (dynamically changing the content of entire groupings) and the possibility to specify a conditional navigation between presentations. This set of new features allows having already at the abstract level a model of the user interface that is not tied to layout details, but it is complete enough for reasoning on how UI supports both the user interaction and the application back end. Concrete User Interface A Concrete User Interface (CUI) in MARIA provides platform-dependent but implementation language-independent details of a UI. A platform is a set of software and hardware interaction resources that characterize a given set of devices. MARIA currently supports the following platforms: Desktop CUIs model graphical interfaces for desktop computers. Mobile CUIs model graphical interfaces for mobile devices. Multimodal Desktop CUIs model interfaces that combine the graphical and vocal modalities for desktop computers. Multimodal Mobile CUIs model interfaces that combine the graphical and vocal modalities for mobile devices. Vocal CUIs interfaces with vocal message rendering and speech recognition. Each platform meta-model is a refinement of the AUI, which specifies how a given abstract interactor can be represented in the current platform. For instance, if we consider the abstract Single Choice interactor, it can be implemented (on a graphical desktop platform) with a radio button, a drop down list or a list box, while on the vocal platform it can be rendered with a list of vocal messages for each option associated to a given keyword. The same applies for the interactor compositions: in a desktop platform a grouping can be implemented using background colours, borders etc., while in a vocal platform it is possible to use sounds before the first group