FREE online courses on Expert Systems - Expert Systems- Prolog
The details of building expert systems are illustrated in
this course through the use of Prolog code. There is a small semantic gap
between Prolog code and the logical specification of a program. This means the
description of a section of code, and the code are relatively similar. Because
of the small semantic gap, the code examples are shorter and more concise than
they might be with another language.
The expressiveness of Prolog is due to three major features
of the language: rule-based programming, built-in pattern matching, and
backtracking execution. The rule-based programming allows the program code to be
written in a form which is more declarative than procedural. This is made
possible by the built-in pattern matching and backtracking which automatically
provide for the flow of control in the program. Together these features make it
possible to elegantly implement many types of expert systems.
There are also arguments in favor of using conventional
languages, such as C, for building expert system shells. Usually these arguments
center around issues of portability, performance, and developer experience. As
newer versions of commercial Prologs have increased sophistication, portability,
and performance, the advantages of C over Prolog decrease. However, there will
always be a need for expert system tools in other languages. (One mainframe
expert system shell is written entirely in COBOL.)
For those seeking to build systems in other languages, this
course is still of value. Since the Prolog code is close to the logical
specification of a program, it can be used as the basis for implementation in
another language.