follow the conventions of the other examples

Lists are named with an "s" at the end, and a blank separates predicate
arguments.
remove determinism declaration

A priori, we do not know how many solutions there are. There might be none.

It turns out that houses/1 is an fact multi.

det would be: zebra_owner__tea_drinker/2, using setof/3 to reason over
all possible house arrangements.