Preprocessing in Inductive Logic Programming
  Inductive logic programming is a type of machine learning in which logic
programs are learned from examples. This learning typically occurs relative to
some background knowledge provided as a logic program. This dissertation
introduces bottom preprocessing, a method for generating initial constraints on
the programs an ILP system must consider. Bottom preprocessing applies ideas
from inverse entailment to modern ILP systems. Inverse entailment is an
influential early ILP approach introduced with Progol. This dissertation also
presents $\bot$-Popper, an implementation of bottom preprocessing for the
modern ILP system Popper. It is shown experimentally that bottom preprocessing
can reduce learning times of ILP systems on hard problems. This reduction can
be especially significant when the amount of background knowledge in the
problem is large.
