我正在阅读Learn Prolog Now , 1.1.2 Knowledge Base 2,他们在其中写了关于将 modus ponens 的使用链接在一起的内容。
KB2.pl 文件:
listensToMusic(mia).
happy(yolanda).
playsAirGuitar(mia) :- listensToMusic(mia).
playsAirGuitar(yolanda) :- listensToMusic(yolanda).
listensToMusic(yolanda) :- happy(yolanda).
查询时:
playsAirGuitar(yolanda).
提交给gprolog,它应该是response的yes
,因为它应该能够从yolanda高兴的事实中推断出来。
但 gprolog 以no
. 这是为什么?