I have the following Prolog program.

Code:
male(jim).
male(pat).
male(bob).
female(alice).
female(diane).

single(jim).
single(pat).
single(alice).

married(bob).
married(diane).

parent(bob,jim).
parent(bob,pat).
parent(bob,alice).
parent(diane,jim).
parent(diane,pat).
parent(diane,alice).

mother(X,Y) :- female(X), parent(X,Y).
father(X,Y) :- male(X),   parent(X,Y).

siblings(X,Y) :- mother(M,X), mother(M,Y), father(F,X), father(F,Y).
brother(X,Y)  :- siblings(X,Y), male(X), X \= Y.
sister(X,Y)   :- siblings(X,Y), female(X), X \= Y.
When I run the query
Code:
sister(alice,jim)
it prints true and waits for input from user. I expected to print true and exit.

Code:
sister(alice,jim).
true ;
false.
Any solution to this problem please.