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.
7<br />
another <strong>for</strong> comparing the structure of two versions of the same original model. This allows us to<br />
develop tools <strong>for</strong> supporting many aspects of the modelling process, not just the running of simulations.<br />
The distinction between declarative knowledge (knowing that) and procedural<br />
knowledge (knowing how) has long been recognised in human cognition. I know that a<br />
bicycle has two wheels; I know how to ride a bicycle. This difference is even ascribed<br />
to different parts of the brain, with the bilateral temporal lobes being used <strong>for</strong><br />
semantic/conceptual knowledge, and the left frontal/basal-ganglia part being used <strong>for</strong><br />
cognitive and motor skills (Ullman: http://slate.lang.uiuc.edu/lectures01.html).<br />
Consider an IKEA wardrobe. We can describe it as a design - on paper, or in a<br />
computer-aided design package such as AutoCAD. The design says what bits we have,<br />
their properties, and how they are connected together. Or we can have instructions on<br />
how to construct it. The <strong>for</strong>mer is declarative, the latter procedural. The design is<br />
what was produced originally, to meet some specifications (size, cost, appearance, etc).<br />
And knowing the design, we can infer many things about the wardrobe: how big it is,<br />
how much it weighs, even possible procedures <strong>for</strong> constructing it. The instructions, on<br />
the other hand, serve a particular purpose - to get the flatpack into a functioning<br />
wardrobe - and are not an effective method <strong>for</strong> indicating what the wardrobe is actually<br />
like. If you simply gave the text instructions to someone, they would have a hard job<br />
making a drawing of what the finished wardrobe would look like.<br />
Box 1.1 The procedural vs declarative distinction<br />
This is a particularly opportune time <strong>for</strong> the research community to move towards a declarative<br />
modelling approach. First, there are a number of visual modelling environments, which prove the<br />
feasibility of having visual design tools, and simulation languages, which show that the mathematical<br />
structure of models can be represented in non-programming terms. Second, a number of groups are<br />
engaged in the process of designing a framework <strong>for</strong> their modelling activities in the field of<br />
environmental research, indicating a growing awareness within the community of the need to consider<br />
the way in which modelling is done. Third, there are similar initiatives in other domains, such as<br />
Modelica [see URLs 1 and Appendix 1] <strong>for</strong> physical systems modelling. Finally, the recent emergence of<br />
XML (the eXtensible Markup Language: see Appendix A2.1), a standard <strong>for</strong> the transfer of documents<br />
and data over the web, has spawned a large number of subject-specific markup languages. This makes it<br />
much easier to advocate the concept of a language <strong>for</strong> representing models, since there is now greater<br />
awareness of similar languages in other fields.<br />
We distinguish between modelling and simulation. Declarative modelling is specifically concerned<br />
with the modelling process itself: how we design models, how we present them to other people, how we<br />
analyse their (mathematical) structure, how we can trans<strong>for</strong>m one model into another. It is not directly<br />
concerned with simulating the behaviour of models, including such activities as bench-marking,<br />
validation, sensitivity analysis, backcasting and parameter estimation. Such activities are, of course,<br />
vitally important, and declarative modelling can help, by ensuring that all models are fully compatible<br />
with tools developed <strong>for</strong> undertaking simulations. But this applies equally to models developed within,<br />
<strong>for</strong> example, the sort of component-based frameworks discussed in Section 3, so it is not central to the<br />
argument <strong>for</strong> a declarative modelling approach.<br />
The aim of this paper is to consider the what, why and how of declarative modelling. What is meant by<br />
the term, and how does it differ from conventional approaches? Why should we consider adopting it?<br />
And how do we go about it - designing an appropriate language <strong>for</strong> representing models, building tools<br />
<strong>for</strong> handling these models, and putting in place the institutional structures required to make this work?<br />
1 [see URLs] refers to the list of URLs (web links) given after the References at the end of the paper.