A functional approach to integrating database and expert systems
Communications of the ACM
A new system architecture shares certain characteristics with database systems, expert systems, functional programming languages, and spreadsheet systems, but is very different from alzy of these. TOREI RISCH, RENi REBOH, PETER HART, and RICHARD DUDA Advances in computing sometimes flow from the recognition of fundamental similarities among disparate theories or system architectures. Once recognized. these similarities can be exploited to design a new architecture that combines selected aspects
... of its predecessors. opens new areas of applications. and may even lead to new insights into underlying theories. A new system architecture, called an active fu~~tio~~al system. shares certain characteristics with database systems, expert systems, functional programming languages, and spreadsheet systems. but is very different from any of these. It is based on a uniform-one might even say rigid-use of side effect-free functions that represent facts and knowledge in a nonprocedural programrning system. Database objects are represented by arbitrary extensional functions, i.e., tables, while domain knowledge is represented by side effect-free intensional functions composed from a suitable library. Both default and inexact information are accommodated by treating values of database objects as random variables with associated probability distributions. The uniformity that results from functional representations leads to a corresponding uniformity in database and knowledge-base operations. We call the system "active" because it is data driven: more specifically, changes in the distributions of the factual input data are propagated through the knowledge base to update the distributions of the derived output data. These concepts are embodied in the SynteP programming system , which. has been fully implemented and in commercial use since mid-1986.