My Blog

XForms in Action


This two-day course provides a hands-on insight into how XForms works, how it can be used to code some of the classic Artificial Intelligence reasoning engines, and how it can underpin the model-driven development of application. It is presented by Steven Pemberton, one of the original Web pioneers and Editor of the XForms standard. Using the declarative and open programming style of XForms, Steven covers the basic introduction to XForms and introduces more advanced features on the second day. In between are hands-on exercises on the implementation of rule-based inference engines and Artificial Neural Networks, in a way which can be be easily understood. The course concludes with a hands-on exercise using an open source Electronic Health Records system.

If you are looking for introductory material on XML itself, with a brief look at XForms, you should try the “Hands-on Introduction to XML” course. The material in this two=day course is more advanced, following on from the Hands-on Introduction.

Basic Introduction to XForms

XForms is a standards activity from the World Wide Web Consortium (W3C), where it is described as:

…an XML markup for a new generation of forms and other applications on the Web. XForms is not primarily a free-standing document type, but is intended for integrating into other markup languages, such as XHTML, ODF or SVG. An XForms-based application gathers and processes data using an architecture that separates presentation, purpose and content; processing of data occurs using three mechanisms:

  • a declarative model composed of formulae for data calculations and constraints, data type and other property declarations, and data submission parameters
  • a view layer composed of intent-based user interface controls
  • an imperative controller for orchestrating data manipulations, interactions between the model and view layers, and data submissions.
Artificial Intelligence with XForms

We are currently at the start of the third wave of the discipline of Artificial Intelligence, a concept that was born when Alan Turing first posed the question ‘Can Machines Think?’. The first wave, and the birth of the academic discipline, started in 1956 with the Dartmouth summer research project, organised by John McCarthy and Claude Shannon, and attended by early pioneers such as Marvin Minsky, Allen Newell and Herb Simon.

The second wave, in the mid 1980’s, saw the emergence of ‘expert systems’ and ‘knowledge-based systems’ as a paradigm for reasoning with declarative, rather than procedural knowledge. Although the technology for pattern recognition and machine learning continued to develop throughout the two decades around the turn of the century, the widespread deployment of knowledge-based systems was hampered by a lack of robust, large-scale declarative knowledge bases and structured observational data.

The third wave of AI is driven by advances in speech recognition, natural language processing, speech synthesis, pattern matching and machine learning for mining unstructured or semi-structured Big Data sets. The world is now awash with data and the computing power needed to apply advanced AI techniques to large data sets id readily available. What are we waiting for!.

Rule-Based Reasoning with XForms

Rule-based, or Production Rule, systems were the technology that drove the emergence of ‘Expert Systems’ in the 1970’s and 80’s. The techniques are still used today to solve complex problems using declarative knowledge bases of rules, that fuel a reasoning engine as it searches for the best available solution or explanation.

XML can be used to represent the rule-based knowledge and XForms can be used to program both forward- and backward-chaining reasoning engines. You will find out how this is done and get some hands-on experience in developing your own XML-based expert system.

Artificial Neural Networks

Artificial Neural Networks (ANN) emerged in the 1990’s as a method of computer-based reasoning that mimics the operation of neurons in the human brain. The theory behind ANNs can be traced back to the 1940s with the work of McCulloch and Pitts in modelling the electrical activity of neurons in the central nervous system and Rosenblatt’s 1958 publication of “The perceptron: a probabilistic model for information storage and organization in the brain”.

With the ANN, networks of connected nodes can be ‘trained’ to perform tasks such as pattern recognition and classification. This is the technology that lies behind some of the most recent advances in machine learning and pattern recognition.

We will show you how XForms can be used to generate and train an Artificial Neural Network that can be used for problems of classification and diagnosis. Then you can try building your own!