I've found the code of a small prolog interpreter, and my plan is to improve it somewhat and turn it in an embeddable AI engine that could be easily used in various applications.
It currently has a very small footprint (exec size is less than 50k when stripped), but a really poor memory management. My first priority is to improve this, by adding a Garbage collector and efficient dynamic memory allocation.
This code is currently public domain and I will turn it in a GPL or LGPL library.
The funny thing to note about this interpreter is that it has been used by Microsoft, and modified version of it is hidden somewhere in Windows NT network setup code :-).