Consider this Prolog database: db(a,b). db(c,a). db(b,b). db(d,a). db(c,d). db(d,c). Now consider this Prolog query, and mentally trace through this goal: ?- db(X,Y), db(Y,Z), not(db(X,Z)). (a) How many times will a Prolog interpreter backtrack to the first query predicate expression db(X,Y) to find the first answer to this query? (b) And how many times to the second query? (c) And how many times to the third query? (d) Finally, how many further times will a Prolog interpreter backtrack to the first query predicate expression db(X,Y) to find the second answer to this query?