Using Prolog for Developing Real World Artificial Intelligence Applications

Using Prolog for Developing Real World Artificial Intelligence Applications

Athanasios Tsadiras (Technological Educational Institute of Thessaloniki, Greece)
DOI: 10.4018/978-1-60566-026-4.ch631
OnDemand PDF Download:
$37.50

Abstract

Artificial Intelligence Applications are becoming crucial for enterprises that want to be successful by having the advantage of using high information technology. The development of such applications is assisted by the use of high level computer programming languages that are closer to the programmer than to the computer. Such a programming language is Prolog. Prolog is a logic programming language (Clocksin & Mellish 2003) that was invented by Alain Colmerauer and Phillipe Roussel at the University of Aix-Marseille in 1971. The name Prolog comes from programmation en logique (i.e., “programming in logic” in French). Together with LISP, they are the most popular Artificial Intelligence programming languages. Prolog was generated by an attempt to develop a programming language that extensively uses expressions of logic instead of developing a program by providing a specific sequence of instructions to the computer. Theoretically, it is based on a subset of first-order predicate calculus that allows only Horn clauses (Bratko, 2000). The control of the program execution is based on Prolog’s built-in search mechanism that in fact is an application of theorem proving by first-order resolution.
Chapter Preview
Top

Introduction

Artificial Intelligence Applications are becoming crucial for enterprises that want to be successful by having the advantage of using high information technology. The development of such applications is assisted by the use of high level computer programming languages that are closer to the programmer than to the computer. Such a programming language is Prolog.

Prolog is a logic programming language (Clocksin & Mellish 2003) that was invented by Alain Colmerauer and Phillipe Roussel at the University of Aix-Marseille in 1971. The name Prolog comes from programmation en logique (i.e., “programming in logic” in French). Together with LISP, they are the most popular Artificial Intelligence programming languages. Prolog was generated by an attempt to develop a programming language that extensively uses expressions of logic instead of developing a program by providing a specific sequence of instructions to the computer. Theoretically, it is based on a subset of first-order predicate calculus that allows only Horn clauses (Bratko, 2000). The control of the program execution is based on Prolog’s built-in search mechanism that in fact is an application of theorem proving by first-order resolution.

Top

Background

Prolog has a clear contribution in solving a series of Artificial Intelligence (AI) problems (Sterling & Shapiro, 1986). There are many features that make Prolog suitable as a programming language for developing AI applications (Luger, 2002). Some of them are:

Key Terms in this Chapter

Unification: The process of finding the most general common instance of two expressions. This is the pattern matching technique used by Prolog computer language to match goals and subgoals in a program.

Don’t Care Nondetermination: Solving a problem having in mind that just any one solution is enough. We do not care if there are other solutions or which one of the solutions we find.

Don’t Know Nondetermination: Solving a problem having in mind that the execution of the program does not know how to find the solution, so all possible ways to find the solutions can be followed.

Generate and Test: A trial and error method of problem solving where a possible solution is generated and tested to check if it is successful. If it is not successful, then another possible solution is generated and tested and this goes on until a satisfactory solution is found. The solution found may not be optimal and not all possible scenarios are tested.

Iteration: The repeated execution of the same process a given number of times or until a specified result is obtained.

Backtracking: Backtracking occurs when in a search tree, the end of a search path is reached without a solution being found, and then the algorithm retreats back to a different path.

Recursion: The definition of a program in terms of itself. This gives the program the ability to call itself.

Declarative Programming: Programming in the form of passive data structures such as facts and rules which can afterwards be used by active inference mechanisms. On declarative programming, the programmer states what is to be computed, and not how this is to be computed.

Complete Chapter List

Search this Book:
Reset