CONMAN:带有不确定性的专家系统外壳详解
1. CONMAN解释功能
在CONMAN咨询过程中,用户有两个时机可以要求解释。当CONMAN询问某个假设是否为真时,用户可以询问为何需要该信息;当CONMAN报告结论时,用户可以询问该结论是如何得出的。
1.1 探索假设时的操作
在探索假设时, confidence_in
程序经常调用 evidence_that
程序,而 evidence_that
程序会访问置信规则。在调用 evidence_that
之前, confidence_in
例程会向工作数据库谓词 current_hypothesis/1
添加一个事实。通过查看该谓词,CONMAN 可以了解正在探索哪些假设。由于每个置信规则的条件可能包含需要探索的新假设,因此 current_hypothesis
可能同时存在多个事实。 current_hypothesis
的子句就像一个工作假设栈,最新的假设位于集合的开头。如果用户对问题回答 “why?”, explain_question/0
会检索工作假设并显示,最新的假设优先显示。
1.2 结论解释功能
CONMAN 的第二个解释功能由谓词 explain_conclusion/1
组织,在向用户报告任何结论后会调用该谓词。它会询问用户是否需要解释,如果用户回答是,则由