Prolog, bases théoriques et développements actuels