使swi prolog返回谓词名称

使swi prolog返回谓词名称,prolog,Prolog,对不起,我只想返回谓词名称america america('kin'). novelist('kin'). writer(X):- novelist(X). 当我在下面查询swi时 作家(A)、小说家(A) 它正好相配 A=‘亲属’ 如何更改swi使其返回美国?美国(X)是否意味着“X生活在美国”?我建议将america作为原子而不是谓词,然后定义如下事实: lives_in(kin, america). 允许您定义如下规则: novelist_living_in(X, Y) :- nove

对不起,我只想返回谓词名称america

america('kin').
novelist('kin').
writer(X):- novelist(X).
当我在下面查询swi时
作家(A)、小说家(A)

它正好相配 A=‘亲属’ 如何更改swi使其返回美国?

美国(X)是否意味着“X生活在美国”?我建议将
america
作为原子而不是谓词,然后定义如下事实:

lives_in(kin, america).
允许您定义如下规则:

novelist_living_in(X, Y) :- novelist(X), lives_in(X, Y).
因此,您可以执行以下查询:

novelist_living_in(kin, Y).

确切地说,你为什么希望它衍生出“美国”?通过查询所有类型的谓词直到出现“命中”?这与从小说家、writer中执行
SELECT*操作完全相同,writer WHERE newister.name=writer.name
,您希望输出表的see the name
america
。那不行。