Another extremely well-documented reference for Prolog can be PAIP- Peter Norvig's terrific Paradigms of Artificial Intelligence Programming in Lisp. Lisp is a good language to implement Prolog in, because Lisp also likes lists and generally complex data structures are simpler in it. Norvig includes in his book, along with a whole chapter explaining the motivation of learning Prolog, a nearly full implementation of the language in Lisp. I saw some complete implementations on the web based on the book's code.