books Eco-Logic: Logic-Based Approaches to Ecological Modelling D Robertson, A Bundy, R Muetzelfeldt, M Haggith and M Uschold MIT Press, USA (1991) ISBN 0262181436, 243pp Despite all the magic that is attached to the words 'logic programming', there are not too many writings that describe serious applications of logic in systematically developing a set of concepts for a problem domain. This is especially true for programming in a field as far away from computing as ecology. Now there is a book about applications of logic programming that is addressed to a wide range of people: simulation modellers, logic programmers, artificial-intelligence researchers, software engineers and ecological modellers. To be precise, this book is about simulation modelling in ecology, and it is based on the results of a rather large research project It fits perfectly into the Logic Programming series, and it covers the subject of the simulation of ecological systems, starting from the conceptual modelling of this field, and reaching to the efficiency of computation in the framework of logic programmlng. The subject of this book has to be placed somewhere in the intersection of artificial intelligence, logic programming, simulation and ecology. One could ask whether this intersection is nonempty. If it has been empty, this book fills it with sufficient content. The book is almost self-contained: Part 3 is a good and comprehensive introduction to PROLOG for nonprogrammers, based on ecological models as examples This part can also serve as an introduction to ecological modelhng for programmers and artificial-intelligence researchers However, for an ecologist, buying this book could be like buying a
Vol 5 No 2 June 1992
set of tools for building a car instead of buying a car. I am not sure that writing in PROLOG, in itself, makes simulation models more comprehensible to ecologists than the use of a conventional mathematical notation for representing the models. However, matenal has been presented in a systematic way, and, as soon as one obtains a necessary degree of understanding of the language and the technique of logic programming, one can really enjoy the book. The fattest part of it presents concepts useful in simulation modelling, and the computationally efficient implementation of these concepts. For the readers who are familiar with logic programming, this book can be recommended as a systematic bottom-up description of simulation tools written in PROLOG. It is also interesting as an example of extensive usage of metaprogramming in PROLOG. The authors are concerned with the problem of comprehending the structure of simulation problems. They address 'the understanding of the relationship between a simulation model and the real world system which it is intended to represent'. The high-level logic-programming language that is gradually explained and extended with concepts of the simulation domain is appropriate for the achievement of this goal. I do not necessarily agree with all the claims of lucidity of the systems described as examples in this book. This is especially true for the user-interface part in Chapters 7 and 8. After specifications of concepts have been hidden behind the screen windows
designed in the book, no obvious possibility remains to obtain (or refresh) a deeper understanding of the models by looking into the knowledge of the system. The user interface designed in Chapters 7 and 8 hides the logic from the user, and the language designed in previous chapters becomes an internal language of the system. There are other writings, including books, on knowledge-based programming that exploit the principle of the usage of domain-specific extensions of a high-level language for specifying problems. In this case, new concepts are defined and used for specifying problem conditions, i.e. for giving specifications from which programs can be built. These activities can be divided into two separate stages: the specification of concepts, and the specification of problems in terms of given concepts. In engineenng fields, this has already been a common practice for a number of years. It is a pity that, in the book, there are no references to more detailed descriptions of this technique, which is close to the approach taken in Eco-Logic. Summing up, one can say that this is an honest monograph on research results, produced in the new style that has emerged in the computing literature with the development of easy-to-use means of electronic publishing. What makes it valuable is the quality of the research and of the writing This is a book with rich contents that can be read with interest with several different levels of competence. The material is presented in such a way that it permits easy reading of the introductory parts of chapters, as well as deep study of the algorithms presented, including if necessary the reconstruction of actual programs.
E Tyugu lnstttute of Cybernetics Estoma
167