SWI-Prolog
nkatz