pdf: 600KB - Potsdam Institute for Climate Impact Research
pdf: 600KB - Potsdam Institute for Climate Impact Research
pdf: 600KB - Potsdam Institute for Climate Impact Research
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
38<br />
7.5 Software tools <strong>for</strong> processing models<br />
With conventional modelling, the program used to implement the model is at the same time the<br />
tool used to do one particular task with the model: simulate its behaviour.<br />
With declarative modelling, we separate the representation of the model from the tools available<br />
to process it in some way. One such tool can be a simulator; but there are many other useful<br />
ways of processing a model apart from simulating its behaviour. The same tool can be re-used <strong>for</strong><br />
any model expressed in our model-representation language. Conversely, the same model can be<br />
processed by a wide variety of tools, depending on what we want to do with the model.<br />
What do is meant by 'processing the model'? Well, one major aspect is to produce a runnable<br />
version of the model: this enables us to simulate the behaviour of the model. This is what we<br />
normally think of doing with a model and, because it is so important, it will be discussed in more<br />
detail below, in Section 7.6. Other <strong>for</strong>ms of processing are considered here:<br />
Designing and editing a model<br />
When a model is considered as a declaratively-represented design, we can envisage software tools<br />
to support the process of designing and editing the model - a computer-aided design (CAD)<br />
package <strong>for</strong> ecosystem modelling. There are a number of visual modelling environments that<br />
support System Dynamics modelling, such as Stella, Vensim, Modelmaker and Powersim.<br />
Simile is another example, and is described in Section 8. In Simile's case, the resulting model can<br />
be saved in an open, text-based model-representation language, and thus available <strong>for</strong> processing<br />
by other, independently-developed tools.<br />
Displaying model structure<br />
Tools can be developed <strong>for</strong> displaying model structure in a variety of ways. Section 8.3 gives<br />
examples of tools <strong>for</strong> displaying any Simile model as HTML (a web page, viewable in a web<br />
browser, with hyperlinks between different parts of the model), as a diagram viewable in a web<br />
browser, and even as spoken text, <strong>for</strong> people with impaired vision.<br />
Comparing two models<br />
Consider the case of groups within a research programme developing a joint model, then work on<br />
it independently <strong>for</strong> 6 months. They then want to compare the two versions, with a view to<br />
possibly merging them or discussing differences. If the model is a program, then at best they can<br />
use text-comparison ('diff') software. It would be far better if the actual design of the models<br />
could be compared, and this is only possible if the models are represented declaratively.<br />
Trans<strong>for</strong>ming one model into another<br />
The declarative representation of a model consists of a set of symbols. These symbols can be<br />
manipulated by an appropriate computer program to produce another set of symbols, which can<br />
represent the design <strong>for</strong> a different model. In other words, it is possible to trans<strong>for</strong>m one model<br />
into another. Muetzelfeldt and Yanai (1996) introduce this concept in the field of ecological<br />
modelling.<br />
There are two main uses <strong>for</strong> this in ecosystem modelling. The first is to explore alternative<br />
designs automatically. Any model embodies a large number of design choices, many of which<br />
could well have been different if the model had been developed by a different but equally-skilled<br />
researcher. Do these differences matter? The only way is to build a variety of models and try<br />
them out. Conventionally, this would require hand-coding the changes into the model program<br />
(and thus is rarely done), but a model-trans<strong>for</strong>mation tool, drawing on a body of knowledge about<br />
legitimate alternative designs, could do this automatically.<br />
The second is in scaling, and simplifying complex models. There is frequently a need to simplify<br />
complex models in order to make them computationally tractable, and to enable general principles<br />
of their behaviour to be analysed (see Dieckmann et al 2000 <strong>for</strong> a detailed study of this in the