Programming in Prolog: Using the ISO Standard