The past few months I've been working on implementing Prolog in Common Lisp. The current code is here. It's an implementation of the Warren Abstract Machine, which is what most real-world, modern Prologs use (SWIProlog, gprolog, YAP, Eclipse, etc).
It's not done yet, but it's coming along nicely. It's missing a few key pieces,