A domain-specific language for models of landscape dynamics

Andrew Fall, Joseph Fall. A domain-specific language for models of landscape dynamics. Ecological Modelling, 141(1-3):1-18, 2001. [doi]

Abstract

Gaining insight into the dynamic nature of landscapes often involves the use of simulation models to explore potential changes over long time frames and extensive spatial areas. However, bridging the gap between conceptual models of landscape dynamics and their simulation on a computer can lead to many pitfalls. If implemented using a general-purpose programming language, the underlying model becomes hidden in the details of the computer code, making it difficult to compare the conceptual and implemented models, and to modify the model. Alternatively, previously built models may contain hidden assumptions and have limited adaptability. Domain-specific languages have been developed in a number of areas to facilitate the construction of models at a level closer to the conceptual model, thereby making model implementation more accessible to domain experts. Such tools to support modelling in the domain of landscape ecology can achieve a balance between the flexibility of programming and the structure and ease of using pre-built models. One of the goals of SELES (Spatially Explicit Landscape Event Simulator) has been to create a language for modelling landscape dynamics that provides ecologists and planners with an appropriate tool to address some of the problems that arise in model development. Our high-level, structured language separates the specification of model behaviour from the mechanics of its implementation, freeing landscape modellers from programming and allowing them to focus on the underlying model. This language is declarative and thus permits a clear representation of the conceptual model, which the SELES engine converts into a computer simulation of landscape change. Our structured framework guides the development of a broad class of spatio-temporal landscape models by aiding model prototyping, modification, verification, comparison, and re-use.