Working and tested Implementation of a Prolog Interpreter in Java. Could be used to explain students how things work for this very nice AI language and the ideas behind it. Covers the core of Prolog, not al the optimizations, syntax sugering, etc.
It is very basic, but illustrative. There are many open source Prolog implementations on the Web, but I think this one is one of the best documented and structured ones (the author)