_(下划线)在 Prolog Amzi 的上下文中是什么意思

What does _ (Underscore) mean in this context in Prolog Amzi

我一直在尝试学习一些 Prolog Amzi。这是一个示例问题,我无法完全理解这个问题。

这是代码。

/* Facts */
parent(mary,tom).
parent(john,tom).
parent(mary,alice).
parent(john,alice).
sex(mary, female).
sex(john, male).
sex(tom, male).
sex(alice, female).
/* Rules */
mother(X):-
 sex(X,female),
 parent(X,_).
father(X):-
 sex(X, male),
 parent(X,_).
sibling(X,Y):-
 parent(M,X),
 sex(M,female),
 parent(F,X),
 sex(F,male),
 parent(M,Y),
 parent(F,Y).
sibling1(X,Y):-
 parent(M,X),
 sex(M,female),
 parent(F,X),
 sex(F,male),
 parent(M,Y),
 parent(F,Y),
 X \= Y.
go:-
 nl, nl,
 write('Hello there .....'), nl,
 write('Testing on Prolog2.'), nl,
 write('End Job'), n1.

题目是问规则mother(X)和father(X)中下划线的作用是什么,输出例子

我似乎不明白下划线在此上下文中的含义以及示例输出的含义。

在任何上下文中,匿名变量(用_表示)表示一个参数,其具体值无关紧要。

例如,规则 mother(X) :- sex(X, female), parent(X, _). 规定 XmotherX 必须是 女性 并且也是某人的 parent(名字无关紧要,必须由匿名代表变量)。

匿名变量 (_) 不绑定值,多次出现并不表示值相等。

例如,考虑以下事实:

parent(mary, tom).
parent(mary, alice).
parent(john, tom).
parent(john, alice).

想知道玛丽的children是谁,你可以问:

?- parent(mary, Who).
Who = tom ;
Who = alice.

想知道玛丽是否是某人的parent,你可以问:

?- parent(mary, _).
true .

想知道有没有人是别人的parent,可以问:

?- parent(_, _).
true .

想知道有没有属于自己parent的人,可以问:

?- parent(X, X).
false.