0

I wanna create an expert system with meta-interpreter with SWI-Prolog... what is the best and the easier way to make it? which is the procedure to make it?

false
  • 10,264
  • 13
  • 101
  • 209
Jane
  • 1
  • 2

1 Answers1

3

Many of the meta-interpreters for expert systems are based on the so called vanilla interpreter. This is an interpreter for Prolog without cut and without built-ins. it reads as follows:

solve(true) :- !.
solve((A,B)) :- !, solve(A), solve(B).
solve(H) :- clause(H,B), solve(B).

You can readily use it to solve the following knowledge base and query. In some Prolog systems, the more ISO compatible ones, you need to mark the predicates dynamic, so that clause/2 can find them:

pet(dog):- size(medium), noise(woof).
pet(cat):- size(medium), noise(meow).
pet(mouse):- size(small), noise(squeak).
size(medium).
noise(meow).

?- solve(pet(X)).
X=cat

Starting from the vanilla interpreter you can add various expert system like features:

  • Knowledge Acquisition
  • Explanations
  • Certainty Factors
  • Forward Chaining
  • Frame Representations
  • Etc...

Bye

P.S.: The following book shows how: http://www.amzi.com/ExpertSystemsInProlog/