Constructive Inductive Logic Programming