Publications

Safe and Sound

By John Fox and Subrata Das

Jointly published by AAAI and MIT Press, 2000

326 pp., references, index, illus., $40.00 hardcover
ISBN 0-262-06211-9

Sample pages: Look inside this book at Amazon.com

 

 

Introduction

Computer science and artificial intelligence are increasingly used in hazardous and uncertain situations where small faults or errors can spell human catastrophe. This book describes a technology for supporting sound medical decision-making and safe patient management from the perspectives of the practical software developer and theoretical AI. It champions the achievements of the logic programming community, and the role of logic and logic programming as uniquely powerful tools for addressing such important and difficult problems.

The book grew out of a programme of research into AI and “cognitive” functions like reasoning, problem solving and decision-making. These are well-established research topics in cognitive science but the programme described here is unusual in its focus on the integration of such functions into a unified, well-founded model for building “intelligent agents”, and in the need to measure success in practical as well as theoretical terms, with many examples of real-world applications in medicine.

The approach combines techniques from logic programming with methods from conventional software engineering in a formal design framework and systematic engineering toolkit for constructing intelligent agents which are grounded in classical and non-classical logics. Building practical software agents may seem to require a purely engineering solution. By “engineering” is meant the use of well-established techniques, or solutions that are specific to the application, without needing to develop new theoretical principles. In fact, for reasons of necessity, curiosity and accident, the work described in this book addresses problems that are better thought of as “scientific”. Some of the medical problems turned out to be so hard that they demanded new concepts and principles, and powerful computational techniques to capture and support the ideas. Logic and logic programming provided the necessary theory and tools.

In many respects Fox and Das’ approach instantiates current ideas in the logic programming community on logical agents e.g. Alferes and Pereira) and shows how such agents can be put to practical use. Although the application focus is medicine, the method and many of the underlying ideas can be applied to many other application domains.

The authors were attracted to logic programming for a number of reasons. First, working in a cancer research institute the applications they were building were to be used in real patient care – and were therefore safety-critical. From the beginning they were interested in design tools that had a sufficiently strong formal foundation that they could provide some guarantees of quality and integrity. It seemed to them that the development of software using the concepts, formalisms, methods, results and technologies that have emerged from the study of mathematical logic as a computational paradigm had to be a good thing.

While logic programming is extensively used for teaching and research in academia they were surprised, and disappointed (like many readers no doubt), that LP has not been more widely adopted by industry – neither in medical informatics nor in commercial software generally. They feel that one reason for this lack of acceptance may be that in the early years the LP research community focused on technical elegance and theoretical virtues of the technology rather than addressing practical engineering needs. Whether this is a correct diagnosis or not the method that presented in the book sets out to combine insights and ideas from logic programming with lessons from software engineering. The result is PROforma, a logic-based specification language and a powerful and highly intuitive development environment for designing and testing applications of logical agents.

The book is divided into three parts, dealing with the motivation and development of the PROforma method, a discussion of safety issues and the role of logic in addressing them, and formalities. The first two parts are written in an informal style, beginning with the medical background and motivations, technical challenges, and solutions, before turning to a wide-ranging discussion of intelligent and autonomous agents, with particular reference to safety and hazard management. The final part provides a detailed discussion of the PROforma language and knowledge representation and other aspects of the agent model developed in the book, along with a rigorous formal treatment of the model.

There are reasons to be optimistic that logic programming is due for a resurgence of interest in the practical world, not least because complex software is increasingly reaching into technical realms that are mission- and safety-critical. If this is so then Fox and Das’ contribution provides considerable evidence of its practical power in a field that directly affects all of us, and proposes a set of engineering techniques that could bring logic programming to a much wider audience.