An introduction to Prolog Programming - Ulle Endriss