SWI-Prolog
mike.elston