SWI-Prolog
davidkettle