Programming in Prolog: Using The Iso Standard