The SWI-Prolog C++ interface