Syntax 我正在做一项大学作业。我的Prolog程序有1个语法错误C150。如何调试语法,然后查询知识库?

Syntax 我正在做一项大学作业。我的Prolog程序有1个语法错误C150。如何调试语法,然后查询知识库?,syntax,prolog,Syntax,Prolog,你好 How do you query prolog? I also keep getting 1 syntax error. 多谢各位 How do you query prolog? I also keep getting 1 syntax error. 荣誉日 How do you query prolog? I also keep getting 1 syntax error. predicates. wife : -female(Y). daughter :

你好

How do you query prolog? I also keep getting 1 syntax error. 
多谢各位

How do you query prolog? I also keep getting 1 syntax error. 
荣誉日

How do you query prolog? I also keep getting 1 syntax error. 
predicates.
    wife : -female(Y).
    daughter : -female(Y).
    son : -male (X).
    wife (Mum). :-female(Y).
wife (Kydd). :-female(Y).
wife (Elizabeth). :-female(Y) parents (George, Mum).
    wife (Sarah). :-female(Y).
    wife (Anne). :-female(Y)  parents (Phillip, Elizabeth).
wife (Diana). :-female(Y) parents (Spencer, Kydd).
daughter (Zara). :-female(Y) parents (Mark, Anne).
daughter (Beatrice). :-female(Y) parents (Andrew, Sarah).
    son (Charles). :-male(X)  parents (Phillip, Anne).
    son (Andrew). :-male(X)  parents (Phillip, Elizabeth) .
    son (Edward). :-male(X) parents (Phillip, Elizabeth) .
son (William). :-male(X) parents (Charles, Diane).
son (Harry). :-male(X) parents (Charles, Diane).
    son (Peter). :-male(X)  parents (Mark, Anne).
    son (Eugenie). :-male(X) parents (Andrew, Sarah).
    brother(X, Y). :- male (X).
    parents (Pa, Ma, X).
    parents (Pa, Ma, Y).
    wife (Mum).
    wife (Kydd).
    wife (Elizabeth).
   wife (Sarah).
   wife (Anne).
   wife (Diana).
   daughter (Zara).
   daughter (Beatrice).
   son (Charles).
   son (Andrew).
   son (Edward).
   son (William).
   son (Harry).
   son (Peter).
   son (Eugenie).

   goal
r通过问以下问题来测试Prolog程序。注意,在某些情况下,可能无法避免一个查询多次获得相同的答案。谁是莎拉的丈夫? 伊丽莎白的孙子是谁?谁是Zara的曾祖父母?谁是戴安娜的嫂子?比阿特丽斯的叔叔是谁?
包括显示查询和程序响应的打印输出。您只需从SWI Prolog的主窗口复制即可

我对谓词演算也不熟悉,但根据我的一点知识,您的谓词为第一个问题提供了答案,如“我是谁,萨拉的丈夫?”?在你的谓词中有:-女性父母安德鲁,莎拉。儿子查尔斯。提供有关查尔斯父母安德鲁和莎拉的信息。莎拉将成为安德鲁的妻子,安德鲁将成为丈夫。
How do you query prolog? I also keep getting 1 syntax error. 

希望这可以帮助您解决更多的问题。首先,请看一看问题,其中说明了如何对代码进行格式化

How do you query prolog? I also keep getting 1 syntax error. 
因为我们不能真正使用您指定的代码,所以让我给您一个非常小的示例,说明您的任务包括什么。从那里,你应该能够弄清楚你应该改变什么

How do you query prolog? I also keep getting 1 syntax error. 

我们考虑下面的Prolog事实:

How do you query prolog? I also keep getting 1 syntax error. 
parent(bill,grandpa_bills).    % Grandpa_bills is the father of Bill
parent(billy_the_kid,bill).    % Bill is the father of billy_the_kid
请注意,我们不使用大写字母书写名称,因为Prolog使用大写单词作为变量名称

How do you query prolog? I also keep getting 1 syntax error. 
随后我们可以定义祖父母的概念。祖父母是孩子,那些孩子也有自己的孩子。我们可以很容易地写下:

How do you query prolog? I also keep getting 1 syntax error. 
grandparent(X,GrandParent) :-
    parent(X,Parent),                 % X has a parent
    parent(Parent,GrandParent).       % and that parent also has a parent
现在我们可以问序言:

How do you query prolog? I also keep getting 1 syntax error. 
?- grandparent(jezus,Y).
   false                          % There is no fact present about jezus

?- grandparent(X,Y).
   X = billy_the_kid,
   Y = grandpa_bills
在第二个查询中,我们说明了Prolog统一的威力。我们要求Prolog找到祖父母/2身体成功的每个X和每个Y。在本例中,这仅适用于billy_the_kid和爷爷_bills,但当您扩展事实集并添加更多人时,此查询将分别返回祖父母/2成功的所有结果

How do you query prolog? I also keep getting 1 syntax error. 

有关更多信息,请参阅教程。

Wh这是什么类型的序言?这既不是SWI也不是PDC。
How do you query prolog? I also keep getting 1 syntax error.