教授要求我们建立一个Prolog程序,根据用户输入的症状诊断疾病。我的症状和疾病数据库是这样的:
causes_of(symptom1, Disease) :-
Disease = disease1;
Disease = disease2.
causes_of(symptom2, Disease) :-
Disease = disease3;
Disease = disease4.
causes_of(symptom3, Disease) :-
Disease = disease4.
我需要的是以交互方式询问用户症状并同时过滤可能的疾病,直到我没有更多症状需要验证。然后,我将向用户提供可能的疾病列表。
请注意,我还需要过滤出冲突的症状。为了说明这一点,请采用上面定义的关系,并在某个时刻考虑用户有症状2。如果发生这种情况,我不应再问用户是否有症状1,因为没有疾病同时引起症状1和症状2。
我不知道我是否正确地为此制定了规则,如果没有,请指出我正确的方向。
答案 0 :(得分:1)