如何解决在prolog中构建专家系统的问题
在 prolog 中编译此代码时,我不断收到语法错误。我是编程新手,所以我不太明白。有人可以帮我调试我出错的地方吗?专家系统旨在将动物分类为脊椎动物和无脊椎动物。这是我目前拥有的代码:
:-dynamic kNown/3
top_goal(X):-animal(X).
%Animals and their classifications
animal(lion):-
type(vertebrate),color(brown).
animal(bee):-
type(invertebrate),color(yellow).
animal(crickets):-
type(invertebrate),color(green).
%background information about vertebrates and invertebrates.
animal(vertebrate):-
vertebral_column(present),nerve_cord(dorsal_and_hollow),skeleton(internal),heart(located_on_right_side),haemoglobin(present_in_red_blood_cells).
animal(invertebrate):-
vertebral_column(absent),skeleton(external),heart(located_on_dorsal_side),haemoglobin(dissolved_in_plasma).
%Ask rules
animal(X):-ask(type,X).
animal(X):-ask(color,X).
animal(X):-ask(sound,X).
ask(A,V):-
write(A:V),%ask user
write('?:'),read(Y),%get the answer
asserta(kNown(Y,A,V),%remember it
Y==yes.%succeed or fail
solve:-
retractall(kNown(_,_,)),top_goal(X),write('The animal is '),write(X),nl.
solve:-
write('This animal is unkNown '),nl.
解决方法
你有一些错别字。
ask(A,V):-
write(A:V),%ask user
write('?:'),read(Y),%get the answer
asserta(known(Y,A,V)),%remember it ***missing ')'
Y==yes.%succeed or fail
这里
solve:-
retractall(known(_,_,_)),% *** missing _
top_goal(X),write('The animal is '),write(X),nl.
然后缺少一些代码:color/1、haemoglobin/1、heart/1、 神经索/1、骨架/1、顶部目标/1、类型/1、椎骨列/1。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。