Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Prolog知识库统一_Prolog - Fatal编程技术网

Prolog知识库统一

Prolog知识库统一,prolog,Prolog,我必须在prolog中解决以下问题,我必须构建规则: recestar\u a(X,Y),alivia(X,Y)和enfermo\u de(X,Y) 我知道我的enfermo__de(X,Y)的解决方案是有效的,但我不知道recestar_a(X,Y),alivia(X,Y)的解决方案是否正确,我很困惑,有人能帮助我在这些情况下统一是如何工作的吗?谢谢 enfermo_de(manuel,gripe). tiene_sintoma(alicia,cansancio). sintoma_de(

我必须在prolog中解决以下问题,我必须构建规则:

recestar\u a(X,Y)
alivia(X,Y)
enfermo\u de(X,Y)

我知道我的
enfermo__de(X,Y)
的解决方案是有效的,但我不知道
recestar_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

你能说出什么意思以及它们之间的关系吗?是的,我刚刚在上面的代码中编辑了它,enfermo_de=sick of tiene_sintoma=has symptom sintoma_de=symptom of elimina=cure rectar_a=prescription alivia=relieve为什么你不把谓词翻译成英语?还有一个更具体的问题会更好,比如“我期望统一X发生,但是我得到了Y,为什么?”