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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

33<br />

7. Architecture <strong>for</strong> a declarative modelling approach<br />

The key to realising the vision <strong>for</strong> environmental modelling is this: to think of a model as a design<br />

to be represented and processed rather than as a program to be run. This is the essence of the<br />

declarative modelling approach.<br />

Realising the vision thus depends on having two types of object: models; and modelling tools.<br />

The model will be represented in some language; the tools need to be capable of reading,<br />

processing and/or writing models represented in that language.<br />

It is important to reiterate that, by its very nature, a declarative modelling approach has no<br />

software core, no software package that users must install if they are to work with the approach.<br />

If a community of ecosystem modellers commit to such an approach, the only thing that they are<br />

committing to is a specification of the model-representation language. In effect, they are<br />

committing to a standard, expressed in a standards document. They can then obtain and use<br />

tools that adhere to this standard, but no individual tool is fundamentally required. There may be<br />

a variety of tools available <strong>for</strong> building models; a variety <strong>for</strong> generating runnable versions of the<br />

model and running simulations. In the near future, these tools will be available over the web, as<br />

web services, so they won't even need to be installed on one's own computer. It is a highly<br />

distributed and robust approach.<br />

Section 7.1 considers the specification of requirements <strong>for</strong> a declarative model-representation<br />

language. Sections 7.2 to 7.4 consider the development of an appropriate language: what<br />

elements should the language be built upon? In Section 7.5 we consider the development of tools<br />

<strong>for</strong> handling models represented in this language, while in Section 7.6 we consider one particular<br />

type of tool - tools <strong>for</strong> simulating the behaviour of the declaratively-represented model. Finally,<br />

Sections 7.7 and 7.8 are concerned with assembling a variety of tools together in a modelling<br />

environment, and with publishing models on the web.<br />

7.1 Requirements specification <strong>for</strong> a model-representation language<br />

We need to define the scope of the language - what range of models should the language be able<br />

to represent? At one extreme, we could restrict the language to sets of differential-algebraic<br />

equations (DAE's). At the other, we could aim to include every type of model that has ever been<br />

used in ecosystems research. Clearly, the more restricted the scope is, the easier it is to devise a<br />

suitable language - but the less use it will be.<br />

The Table 7.1 lists part of the requirements specification <strong>for</strong> the Simile visual modelling<br />

environment (see Section 8). Some parts of the specification are expressed in the sort of terms<br />

that modellers use to describe their models (e.g. "age-class model"). There is some overlap<br />

between these terms, and equally well there are some other terms that modellers would use that<br />

are not mentioned here. This does not matter too much, provided that the eventual design is<br />

capable of handling the range of requirements. Other parts (such as modularity) refer to more<br />

abstract features of the modelling language.<br />

Note that, as we shall see in the next subsection, there is no obligation on us to have an element in<br />

the language <strong>for</strong> each entry in the requirements specification. The point of the requirements<br />

specification is to define what the language must be capable of representing, not how it represents<br />

it. That comes next, when we define the ontology of the language.

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

Saved successfully!

Ooh no, something went wrong!