“Expert systems” are a significant subset of what is known as “decision support systems” (DSS). This article suggests a different paradigm for expert systems than what is commonly used. Most often, expert systems are developed with a tool called an “expert system shell.” For the more adventurous, an expert system might be developed with Prolog, a language for artificial intelligence. Both Prolog and expert system shells stem from technology that is approximately 30 years old.1 There have been updates to these platforms, such as GUI interfaces, XML interfaces, and other “bells and whistles.” However, the technology is still fundamentally old. As an analogy, the current technology is akin to updating a 30-year-old car with new paint (a gooey interface), new upholstery, GPS, and so forth. However, the car is fundamentally still a 30-year-old car. It may be in far better shape than another 30-year-old car without the updates, but it cannot compete from an engineering perspective with current models.2 Similarly, the reasoning power of current expert system technology cannot compete with the reasoning power of the state of the art in logic programming. These advances that have taken place in the logic programming community since the advent of Prolog and expert system shells include: a well developed theory of multiple forms of negation, an understanding of open domains, and the closed world assumption, default reasoning with exceptions, reasoning with respect to time (i.e., a solution to the frame problem and introspection with regard to previous beliefs), reasoning about actions, introspection, and maintaining multiple views of the world simultaneously (i.e., reasoning with uncertainty). This article examines a family of logic programming languages. This article in conjunction with a companion article this volume, Knowledge Representation That Can Empower Expert Systems, suggest that logic programs employing recent advances in semantics and in knowledge representation provide a more robust framework in which to develop expert systems. The author has successfully applied this paradigm and these ideas to financial applications, security applications, and enterprise information systems.
Key Terms in this Chapter
Knowledge Representation: A field of research within artificial intelligence that seeks to methodically identify ways in which to represent and reason about knowledge of a particular domain.
Common Sense Reasoning: A Field of research in the artificial intelligence community that seeks to endow a computer with “common sense.” Many applications of artificial intelligence are highly successful. As an example, consider the fact that IBM’s “Big Blue” has defeated the world chess champion on multiple occasions. Yet, all computer applications perform miserably fail when required to perform outside of the realm for which they were designed. Put differently, the performance of humans degrades gracefully, while the performance of computers plummets rapidly when performing unanticipated tasks.
Logic Programming: A field of research within artificial intelligence that seeks to use logic to represent and reason about knowledge. Initially, pure mathematical logic was used (aka “first order logic”). However, as the need to mimic human thought processes became prevalent (such as “rules of thumb,” or “jumping to conclusions”), the field broke away from first order logic. The field still has a very strong relationship to first order logic. However, the field employs nonmonotonic techniques and higher orders of logic.
Expert Systems: A field of research within artificial intelligence that seeks to design systems that can perform tasks equal to the reasoning ability of experts in a chosen field.
Artificial Intelligence: The field of research aimed at getting a computer to perform tasks which one would normally associate with intelligence. Mathematician Alan Turing proposed what is now called “the Turing test” to define artificial intelligence. Loosely speaking, place a computer in one secluded room and a human in another secluded room. If an observer queried these two entities and could not identify which entity was the computer, then the computer had achieved intelligence on a par with a human.