Environmental modelling and Web 2.0: Using Connotea to share XML-represented information
Synopsis
Robert Muetzelfeldt
Environmental modelling is a widely-practised and highly-important activity. Many thousands of computer-based simulation models are constructed every year, at scales from the individual leaf through to the whole globe. Models are used to predict how the some aspect of the real world will change over time, often in response to human activity; to help us explore preferred management options; and to test our understanding about how we think nature works.
Since its inception in the 1960's, most models have been and continue to be implemented as computer programs in a conventional (procedural, imperative) programming language, such as Fortran or C++. This leads to all sorts of problems, including the cost of implementation, the lack of transparency of the resulting models, the difficulty of modifying or re-using model components, the rapid obsolescence of models produced during research projects, and a lack of guaranteed correspondence between the implemented model and its description in the scientific literature.
To address these problems, we need to separate the representation of the specification of the model from the code needed to simulate the behaviour of the model. The specification of the model (its variables, equations, objects and relationships) can be represented in a suitable symbolic language, such as XML or Prolog. The code needed to simulate model behaviour can then be generated from this specification, using a code generator which only needs to be written once and will work for any model expressed in an agreed language.
This approach, termed 'declarative modelling', opens up many exciting possibilities. Not only do we save on having to write code to run the model, but we can develop a whole range of tools that support the modelling process: tools for displaying models in a variety of formats (as HTML pages, or as a network of relationships, for example); tools to enable us to query the structure of a single model or to search a model library for models with certain characteristics; tools for undertaking comparison of the structure of two models; and tools for automatic transforming a complex model into a simpler one.
In this talk, I will describe MultiGuise, a web-based application which shows this approach in action. Environmental models can be published as XML documents by any model developer anywhere on the web. Similarly, tools for processing these models can be published as XSLT stylesheets anywhere on the web. MultiGuise presents the user with a list of available models and a list of the available tools, and shows the result of applying a chosen stylesheet to a chosen model. One stylesheet produces a summary of a model (title, abstract). Another generates an HTML listing of the model equations, with hyperlinks for navigating around, while another generates code for simulating model behaviour.
What has this got to do with Web 2.0? MultiGuise has to know what models and tools have been published on the web, so it can produce a single list. Several approaches are possible, but I have chosen to use Connotea as a cataloguing medium for models and tools. The XML-represented models and the XSLT-represented tools are simply bookmarked in Connotea, just like any other web resource. Connotea has an API (application programming interface) which enables information (such as a set of bookmarks) to be extracted as an XML document. Thus, all that MultiGuise has to do is to send a request to Connotea, and it gets a full list of models and tools, which it then presents to the user. Thus, MultiGuise is automatically up-to-date: as soon as anyone bookmarks a new model in Connotea, MultiGuise knows about it.
This approach fully exploits the full benefits of Connotea as a social-bookmarking environment. The Connotea site lists its benefits as follows:
All we need to do is replace the word 'references' with 'models and modelling tools', and we can start to see how this could revolutionise modelling as a social activity.
So far, we have concentrated on XML documents which represent environmental models, and XSLT documents as tools for displaying these in various formats. However, MultiGuise is simply an application for applying an XSLT stylesheet to an XML document, so the approach can be used in any domain. To support this, MultiGuise has a higher-level concept of a 'package', where one package references a compatible set of XML documents and XSLT stylesheets. Each package is itself an XML document, which can be bookmarked in Connotea. When MultiGuise starts up, it automatically goes to Connotea to pull out the titles for all bookmarked packages. Thus, new packages can be added by anyone, from any field, just as documents and stylesheets can be added. I will illustrate this with examples taken from systems biology and from philosophy.
I conclude with three observations: