Prolog知识库统一

时间:2015-09-16 21:17:39

标签: prolog

我必须在prolog中提出以下问题,我必须建立规则:

recetar_a(X,Y)alivia(X,Y)enfermo_de(X,Y)

我知道我的enfermo_de(X,Y)解决方案有效,但我不知道recetar_a(X,Y)alivia(X,Y)的解决方案是否正确而且我很困惑,有人请帮助我统一适用于这些情况?谢谢!

enfermo_de(manuel,gripe).

tiene_sintoma(alicia,cansancio).

sintoma_de(fiebre,gripe).
sintoma_de(tos,gripe).
sintoma_de(cansancio,anemia).

elimina(vitaminas,cansancio).
elimina(aspirinas,fiebre).
elimina(jarabe,tos).

recetar_a(X,Y) :- 
    enfermo_de(Y,A),
    alivia(X,A).

alivia(X,Y) :-
    elimina(X,A),
    sintoma_de(A,Y).

enfermo_de(X,Y) :- 
    tiene_sintoma(X,Z),
    sintoma_de(Z,Y).

每个谓词的含义是:

  enfermo_de=sickof
  tiene_sintoma=hassymptom
  sintoma_de=symptomof
  elimina=cure
  recetar_a=prescribe
  alivia=relieve

0 个答案:

没有答案