I’ve been trying to convince QUT to let me on the let me joing the w3c’s Web Application Formats Working Group (WAF WG). The WG is basically looking at the problem that I am interested in: a declarative language for user interfaces and web applications. Their current focus, however, seems is on the XML binding language (XBL), which was originally proposed to the w3c by America Online, and then the SVG working group (sXBL). A second version of XBL, XBL 2.0, is currently being prepared and proposed by the mozilla foundation (and has now been given to the WAF-WG to work on). XBL is a way of binding elements to other resources (such as style sheets, some data/content, components, and scripts). For anyone who has done any web development, the applicaitons of this technology are pretty obvious. XBL has been partially implemented in Firefox (see SVG examples), but to what extent, I don’t know… something else to look into.
At the 2006 World Wide Web Conference, Art Barstow of w3c/Nokia (and chair of the WAF WG), presented what the group had been doing since November 2005. He spoke about three proposals that had been put submitted to the working group.
The way I see it there are seven things that need to be considered when creating a declarative language for web applications:
- Structure – document structure, structural semantics
- Bindings – binding from structure to content, style, behaviour, metadata
- Content – data (that can be static or requests from services)
- Style – representation of data and structure
- Behaviour – code that enables interaction and business logic
- metadata – data about the application
- Architecture – the systematic architectural infrastracture, or simply the design pattern, that supports the development of the application
Structure refers to the data structure and the structural semantics of the language used to declare the application. Althought SGML does not seem to be limited in terms of the data structures used to build a particular SGML application, with XML, it is common to user either a tree data model, like in XML, or a linking model like that in RDFS, or a combinations of both like in SMIL. User interfaces are suited to both data models, as elements can be declared as self contained resources and then placed into the the right place on a tree.
Bindings are critical to any rich web application; particularly a binding format that supports asynchronous requests to a server. Binding can really take two forms: an explicit include or link, or a datasource connection.
Content is what is the conceptualisation of human percibable stuff prior to realisation… ie, the semantic stuff that needs to be rendered.
Style is the rendering instructions for content. Style is also a kind of content, as it determines the sematics of a content through aesthetics qualities.
Behaviour relates mostly to programming code.
Metadata relates to information about the particular application.
The architecture relates to the design patterns that are implied in the structural model being used in the language. For instance, the popular Model View Controller design pattern heavily influences heavily the way code is written for an application.