10 or 11 years ago, David Warren was working on an extension called Tabled Logic Programming; his implementation was called XSB. He seems to have abandoned it, which I find disappointing; it looked interesting. In a nutshell, instead of a goal acting like a procedure call as in Prolog, it acts like a coroutine.
Here's a link: http://www.cs.sunysb.edu/~warren/xsbbook/book.html