¿Por qué esta consulta de prólogo es verdadera y falsa?

Mi base de conocimiento SWI-Prolog contiene los siguientes dos hechos:

f(a,b).
f(a,c).

Ahora si planteo la consulta

?- f(a,c).
true.

Pero

?- f(a,b).
true ;
false.

¿Por qué f (a, b) es verdadero y falso? Esto también sucede cuando hay tres hechos en el KB. Si agrego f (a, d). para KB, entonces f (a, d) es verdadero (solo), pero f (a, b) yf (a, c) son verdaderas y falsas. ¿Qué está pasando y qué puedo hacer para que Prolog responda (solo) fiel a estas consultas?

Respuestas a la pregunta(2)

Su respuesta a la pregunta