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