how to create Meta-rules and/or meta-interpreter f

2019-02-21 01:52发布

问题:

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?

回答1:

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:

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/

(c) 2010, Jan Burse, 8004 Zürich



标签: prolog meta