pdf: 600KB - Potsdam Institute for Climate Impact Research
pdf: 600KB - Potsdam Institute for Climate Impact Research
pdf: 600KB - Potsdam Institute for Climate Impact Research
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.