24.05.2014 Views

pdf: 600KB - Potsdam Institute for Climate Impact Research

pdf: 600KB - Potsdam Institute for Climate Impact Research

pdf: 600KB - Potsdam Institute for Climate Impact Research

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!