W3C

MBUI - Abstract User Interface Models

W3C Working Group Note 08 April 2014

This version:
http://www.w3.org/TR/2014/NOTE-abstract-ui-20140408/
Latest published version:
http://www.w3.org/TR/abstract-ui/
Previous version:
http://www.w3.org/TR/2013/WD-abstract-ui-20131105/
Editors:
Jean Vanderdonckt, Louvain Interaction Laboratory, Université catholique de Louvain
Ricardo Tesoriero, Louvain Interaction Laboratory, Université catholique de Louvain
Nesrine Mezhoudi, Louvain Interaction Laboratory, Université catholique de Louvain
Vivian Motti, Louvain Interaction Laboratory, Université catholique de Louvain
François Beuvens, Louvain Interaction Laboratory, Université catholique de Louvain
Jérémie Melchior, Louvain Interaction Laboratory, Université catholique de Louvain

Abstract

Model-Based User Interface Design facilitates interchange of designs through a layered approach that separates out different levels of abstraction in user interface design. This document covers the specification of Abstract User Interface Models, by defining its semantics through a meta-model, and an interchange syntax (expressed as XML Schema) for exchanging Abstract User Interface Models between different user interface development environments.

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at http://www.w3.org/TR/.

This document defines a meta-model and XML serialization for abstract user interface models that describe user interfaces at a level that is independent of particular platforms or modes of interaction.

This document has been published as a Working Group Note to reflect the fact that the Model Based UI Working Group is no longer progressing it along the W3C Recommendation Track. A record of discussion relating to this specification can be found in the Model Based UI Working Group's email archive. The email list is public-mbui@w3.org.

Publication as a Working Group Note does not imply endorsement by the W3C Membership. This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document was produced by a group operating under the 5 February 2004 W3C Patent Policy. W3C maintains a public list of any patent disclosures made in connection with the deliverables of the group; that page also includes instructions for disclosing a patent. An individual who has actual knowledge of a patent which the individual believes contains Essential Claim(s) must disclose the information in accordance with section 6 of the W3C Patent Policy.

Table of Contents

Introduction

This document aims at defining a standard meta-model for expressing an Abstract User Interface (AUI) as specified in the Cameleon Reference Framework (CRF). Its specific goals include: reviewing the state-of-the-art in the domain of interest, defining the main concepts for the meta-model, as well as their properties and relationships, identifying its main requirements, proposing, describing and discussing a meta-model that provides a standard definition for AUI models. Such proposal will be validated by its instantiation according to the use case scenarios presented in the MBUI Introduction document. By defining a standard meta-model for AUIs, several potential benefits are expected: ensuring some compatibility and interoperability among formats for expressing AUIs, defining a unified vocabulary, and a consistent methodological approach for specifying an AUI.

The meta-model of this document represents both an abstraction and a generalisation of the meta-models existing in the literature. As an abstraction, it provides an abstract syntax based on a rationalised selection of main concepts, to which existing or futureUIDLs that are compliant tothis meta-model, can be mapped. This ensures that AUIs specified with different UIDLs could be related to each other, thus enabling interoperability. As a generalisation, the meta-model of this documentprovides an expressive set of constructs thatcan be directly exploited to develop tools by implementing and extending the classes of thismeta-model. Again, specification fragments developed with such tools would support interoperability with other fragments coming from compliant tools. A UIDL or a software for specifying an AUI is said to be AUI compliantif and only ifit translates, imports, or exports, without residuals, an AUI specified according to the XML Schema derived from the meta-model.

Definition

The Abstract User Interface (AUI) (corresponding to the Platform-Independent Model –PIM– in Model-Driven Engineering) is an expression of a UI in terms of interaction units without making any reference to implementation neitherin terms of interaction modalities nor in terms of technological space (e.g., computing platform, programming or markup language). Therefore, an AUI is said to be independent of any interaction modality (e.g., graphical, vocal, haptic, 3D) and independent of which interactors will be available for its implementation in any particular programming or markup language. An Abstract User Interface is composed of Abstract Interaction Units (AIUs) that supporta set of (sub-)tasks that are logicallyrelated from the user’s perspective in order to achieve a particular user’s goal. Different synonyms have been used over history to refer to an abstract interaction unit: presentation unit, interaction space, workspace.

An AUI maybe connected upwards to one or severaltask modelsand/or downwards to one or severalConcrete User Interface Models. This connection canbe achieved via different mechanisms, such as mapping or transformation either at design-time or at run-time. An AUI could also exist in isolation, independently of theexistence of any other related model. In that case, an AUI represents a possible entry-point for further design and development of the UI of an interactive application and gives rise to one or many Final User Interfaces.

Specific Requirements

This section revisits the common generic requirements defined for all meta-models by refining their definition in the scope of the AUI meta-model:

Meta-model

Figure 1 depicts the AUI meta-model represented as a UML2.2 Class Diagram. A definition of its classes, attributes, and relationships is provided below.

UML meta-modal diagram for the Abstract UI
Figure 1. Abstract User Interface Metamodel

UserInterfaceModel (UICommons)

Definition: defines a model for a UserInterfaceModel

Attributes:

Relationships:

AbstractUserInterfaceModel

Definition: this model describes an Abstract User Interface (AUI) in terms of its structure (see AbstractInteractionUnit) and its model (see UserInterfaceModel).

Attributes:

Relationships:

AbstractInteractionUnit

Definition: consists of the basic unit for expressing any piece of interaction in a recursive decompositionof an AUI in abstract terms. An Abstract Interaction Unit is typically configured in terms of Abstract Interaction Unit (AIU)based on a task model. This decomposition could be context-independent or linked to one to many context-dependent definitions. Since any level of the recursive decomposition is considered as an Abstract Interaction Unit, the same term is used both for elementary andcompound ones.

Attributes:

Methods:

Relationships:

UserinterfaceModelElement

Definition: defines the element for the user interface model.

Attributes:

Relationships:

Constraint (Behaviour)

Definition: defines a constraint to be satisfied by a AUI. For instance, a predicate to activate or deactivate an AIU or to generate an event.

Attributes:

Relationships:

PresentationSupport (interface)

Definition: defines the resource that supports the rendering of the AIU in terms of presentation

Attributes:

Relationships:

UpdateEvent (Event)

Definition: belongs to the package event and supports the state changes

Attributes:

Relationships:

Reader (Resource)

Definition: is an interface to support a resource to be read

Attributes:

Relationships:

DataInputOutputSupport

Definition: consists of an elementary AIU that is responsible for data input and/or output. This AIU could be linked to a domain via a domain reference in order to ensure data binding or could be left out to interact with data without necessarily giving the associated domain model.

Attributes:

Relationships:

DataSelectionSupport

Definition: represents a way to interact with the interface by selecting zero, one or many items among the options available in a list.

Attributes:

Relationships:

DataFilterSupport

Definition: provides support for filtering a data to be selected. A filter is defined as a higher-order function that processes a data structure (typically a list) in order to produce a new data structure containing exactly those elements of the original data structure for which a given filter condition is satisfied.

Attributes:

Relationships:

TriggerSupport

Definition: is an Interaction unit that allows to trigger an event.

Attributes:

Relationships:

EventSupport (interface)

Definition: is an interface that provides support to an event

Attributes:

Relationships:

Producer (Resource)

Definition: is an interface to define the production of a resource

Attributes:

Relationships:

InteractionEvent (Event)

Definition: defines an interaction event of the AbstractInteractionUnit

Attributes:

Relationships:

TriggerEvent (Event)

Definition: specific type of event to trigger

Attributes:

Relationships:

SelectionEvent (Event)

Definition: is a specific type of event for selection

Attributes:

Relationships:

DeselectionEvent (Event)

Definition: is a specific type of event for deselection

Attributes:

Relationships:

InputEvent (Event)

Definition: specific type of event for input

Attributes:

Relationships:

Composition

Definition: defines the specific composition of an AbstractInteractionUnit

Attributes:

Relationships:

Related work

This section identifies the correspondence between the concepts introduced in the AUI meta-model and their counterparts in various UIDLs. Note: N/D is used as an abbreviation for not defined.

The meta-model that defines the AUI level for the MBUI WG is based on the review of the submissions and related work.

UIModel

Definition: set of models describing the UI for a case study, that could be composed of different model types (Tasks, Domain, AUI, …).

Synonyms:

Attributes: none.

Relationships: inherits from Model.

Model

Definition: general conceptual representation of some reality for a specific purpose.

Synonyms:

Attributes

Relationships: none.

AbstractUIModel

Synonyms:

Definition: Main entity of the model, every abstract object is an AbstractInteractionUnit. The same term is used for elementary or compound.

Synonyms:

Relationships:

AbstractLocalization

Definition: Describes text attributes for AbstractInteractionUnits. It is useful for internationalization.

Synonyms:

Relationships: none

AbstractCompoundIU

Definition: Composition of one or several AbstractInteractionUnit.

Synonyms:

Attributes: none.

Relationships:

AbstractSelectionIU

Definition: Special type of AbstractCompoundIU representing a way to interact with the interface by selecting an item in a list.

Synonyms:

Attributes:

Relationships: inherits from AbstractCompoundIU

AbstractInputOutputData

Definition: Interaction unit allowing to link data from the Domain Model with elements of the abstract user interface.

Synonyms:

Attributes:

Relationships: inherits from AbstractElementaryIU

AbstractTriggerIU

Definition: Interaction unit allowing triggering an event.

Synonyms:

Attributes:

Relationships: inherits from AbstractElementaryIU

AbstractListener

Definition: Entity used to describe the behavior of the AbstractInteractionUnit by using Event-Condition-Action (ECA) rules.

Synonyms:

Attributes:

Relationships: none.

Rule

Definition: Represents a ECA rule.

Synonyms:

Attributes:

Relationships: none.

Justification

Definition: The justification is a kind of motivation for the ECA rules, it is not used for describing the interface itself but more for documentation purposes.

Synonyms:

Attributes:

Relationships: none.

EventExpression

Definition: Specifies a set of events with relationships between them. The events are represented by AtomicEvents and are related by TemporalEventExpressions.

Synonyms:

Attributes:

Relationships: none.

Condition

Definition: Logical test that, if satisfied or evaluates to true, causes the action to be carried out.

Synonyms:

Attributes:

Relationships: none.

ActionExpression

Definition: Specifies a set of actions with relationships between them. The actions are represented by AtomicActions and are related by TemporalActionExpressions.

Synonyms:

Attributes:

Relationships: none.

Appendix A. XML Schema Reference

The normative version of the XML Schema for the Abstract UI meta-model: aui.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:uic="http://www.w3.org/2013/mbui-uiCommons"
  elementFormDefault="qualified"
  targetNamespace="http://www.w3.org/2013/mbui-aui"
  xmlns="http://www.w3.org/2013/mbui-aui">
    <!-- importing the uiCommons package -->
    <xs:import namespace="http://www.w3.org/2013/mbui-uiCommons" 
    schemaLocation="./uiCommons.xsd"/>
    
    <!-- the root element -->
    
    <xs:element name="abstractUserInterfaceModel"
      type="AbstractUserInterfaceModel"/>
    
    <!-- AbstractUserInterfaceModel -->
    <xs:complexType name="AbstractUserInterfaceModel">
        <xs:sequence>
            <!-- list of the abstract interaction units in the AUI -->
            <xs:element name="abstractInteractionUnit"
              type="AbstractInteractionUnit" minOccurs="1"
              maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    
    <!-- AbstractInteractionUnit -->
    <xs:complexType name="AbstractInteractionUnit">
        <xs:sequence>
            <xs:element name="aggregatedIn"
              type="Composition" minOccurs="1" maxOccurs="1"/>
            <xs:element name="eventSupport" type="EventSupport"/>
            <xs:element name="presentationSupport" type="PresentationSupport"/>
        </xs:sequence>
        <xs:attribute name="id" type="xs:ID" use="required"/>
        <xs:attribute name="name" type="xs:string"/>
        <xs:attribute name="role" type="xs:string"/>
        <xs:attribute name="state" type="xs:string"/>
        <xs:attribute name="frequency" type="xs:float"/>
        <xs:attribute name="repetitionFactor" type="xs:int"/>
        <xs:attribute name="domainReference" type="xs:string"/>
        <xs:attribute name="compound" type="xs:boolean" default="false"/>
    </xs:complexType>
     
    <!-- Composition -->
    <xs:complexType name="Composition">
        <xs:sequence>
            <xs:element name="associatedWith"
              type="xs:IDREF" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
        <xs:attribute name="id" type="xs:ID"/>
        <xs:attribute name="compositionRole" type="xs:string"/>
        <xs:attribute name="compositionRationale" type="xs:string"/>
    </xs:complexType>
   
    <!--Trigger Support-->
    <xs:complexType name="TriggerSupport">
        <xs:complexContent>
            <xs:extension base="EventSupport">
                <xs:attribute name="triggerExpression" type="xs:string"/>
                <xs:attribute name="triggerType" type="xs:string"/>
                <xs:attribute name="requiresConfirmation" type="xs:boolean"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <!-- DataInputOutputSupport -->
    <xs:complexType name="DataInputOutputSupport">
        <xs:attribute name="id" type="xs:ID"/>
        <xs:attribute name="minCardinality" type="xs:int"/>
        <xs:attribute name="maxCardinality" type="xs:int"/>
        <xs:attribute name="defaultValue" type="xs:string"/>
        <xs:attribute name="dataType" type="enumDataType"/>
        <xs:attribute name="dataLength" type="xs:int"/>
        <xs:attribute name="dataFormat" type="xs:string"/>
        <xs:attribute name="range" type="xs:string"/>
        <xs:attribute name="IOFacet" type="xs:string"/>
        <xs:attribute name="isDynamic" type="xs:boolean"/>
        <xs:attribute name="isRelevant" type="xs:boolean"/>
        <xs:attribute name="patternMatching" type="xs:string"/>
    </xs:complexType>
    
    <xs:simpleType name="enumDataType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="in" id="enumDataType_in"/>
            <xs:enumeration value="out" id="enumDataType_out"/>
            <xs:enumeration value="in_out" id="enumDataType_in_out"/>
        </xs:restriction>
    </xs:simpleType>
    
    <!-- DataSelectionSupport-->
    <xs:complexType name="DataSelectionSupport">
       <xs:attribute name="id" type="xs:ID"/>
        <xs:attribute name="start" type="xs:string"/>
        <xs:attribute name="end" type="xs:string"/>
        <xs:attribute name="selectionStep" type="xs:string"/>
        <xs:attribute name="isExandable" type="xs:boolean"/>
        <xs:attribute name="isContinuous" type="xs:boolean"/>
        <xs:attribute name="isRating" type="xs:boolean"/>
        <xs:attribute name="isSecret" type="xs:boolean"/>
    </xs:complexType>
    
    <!-- DataFilterSupport -->
    <xs:complexType name="DataFilterSupport">
        <xs:complexContent>
            <xs:extension base="DataSelectionSupport">
                <xs:sequence>
                    <xs:element name="constraint" type="uic:Constraint"/>
                </xs:sequence>
                <xs:attribute name="filterType" type="xs:string"/>
                <xs:attribute name="filterProperty" type="xs:string"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <!-- EventSupport -->
    <xs:complexType name="EventSupport">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="triggerSupport" type="TriggerSupport"/>
            <xs:element name="dataSelectionSupport" type="DataSelectionSupport"/>
            <xs:element name="dataInputOutputSupport" type="DataInputOutputSupport"/>
        </xs:choice>
    </xs:complexType>
    
    <!--PresentationSupport -->
    <xs:complexType name="PresentationSupport">
        <xs:choice minOccurs="1" maxOccurs="unbounded">
            <xs:element name="dataSelectionSupport" type="DataSelectionSupport"/>
            <xs:element name="DataInputOutputSupport" type="DataInputOutputSupport"/>
        </xs:choice>
    </xs:complexType>
    
    <!-- Interaction Event -->
    <xs:complexType name="InteractionEvent">
       
    </xs:complexType>
    
    <!-- Trigger Event -->
    <xs:complexType name="TriggerEvent">
        <xs:complexContent>
            <xs:extension base="InteractionEvent">
                
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <!-- SelectionEvent -->
    <xs:complexType name="SelectionEvent">
        <xs:complexContent>
            <xs:extension base="InteractionEvent">
                <xs:attribute name="selected" type="xs:IDREF"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <!-- DeselectionEvent -->
    <xs:complexType name="DeselectionEvent">
        <xs:complexContent>
            <xs:extension base="InteractionEvent">
                <xs:attribute name="deselected" type="xs:IDREF"/>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <!-- InputEvent -->
    <xs:complexType name="InputEvent">
       
    </xs:complexType>
   
</xs:schema>
  

The schema normatively references the following sub-schema: uiCommons.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
  elementFormDefault="qualified"
  targetNamespace="http://www.w3.org/2013/mbui-uiCommons"
  xmlns="http://www.w3.org/2013/mbui-uiCommons">
    <!-- Constraint -->
    <xs:complexType name="Constraint">
        <xs:attribute name="id" type="xs:ID"/>
        <xs:attribute name="type" type="xs:string"/>
        <xs:attribute name="expression" type="xs:string"/>
        <xs:attribute name="criteria" type="xs:string"/>
        <xs:attribute name="message" type="xs:string"/>
    </xs:complexType>
</xs:schema>
  

Appendix B. References

B.1 Normative references

[RFC2119]

"Key words for use in RFCs to Indicate Requirement Levels", S. Bradner, March 1997.

[SOAP12]

"SOAP Version 1.2 Part 1: Messaging Framework", M. Gudgin, M. Hadley, J. Moreau, H. Nielsen, December 2001.

[XML10]

"Extensible Markup Language (XML) 1.0 (Second Edition)", T. Bray, J. Paoli, C. M. Sperberg-McQueen, E. Maler, October 2000.

[XMLSCHEMA1]

"XML Schema Part 1: Structures", H. Thompson, D. Beech, M. Maloney, N. Mendelsohn, May 2001.

[XPATH10]

"XML Path Language (XPath) Version 1.0", J. Clark, S. DeRose, November 1999.

B.2 Informative references

[DELEGATION]

Java(TM) AWT: Delegation Event Model, Sun Microsystems Inc., April 1999.

[DOM2EVENTS]

"Document Object Model (DOM) Level 2 Events Specification", T. Pixley, November 2000.

[PROTO]

XML Application - Prototype, P. Morel, April 1999.

[WML20]

"Wireless Markup Language Version", WAP Forum, September 2001.

[XHTML10]

"XHTML 1.0: The Extensible HyperText Markup Language - A Reformulation of HTML 4 in XML 1.0", S. Pemberton, et al., January 2000.

[XUL]

"XUL Programmer's Reference", The Mozilla Organization, April 2001.

Appendix C. Acknowledgements

In addition to the editors, the following people contributed to this specification: