The Inductive Logic Programming examines different restrictions of
first-order logic and different inference operators in order to find
efficient ways of generating generalizations of data sets (usually a
set of ground facts, e.g. given in the form of a relational database),
or specializations of theories to no longer imply negative examples.
It should be possible to give certain guarantees for the results, to
make the methods more attractive for users.
The reason restrictions of first-order logic are examined is the demand
for tractable formalisms.
The main questions addressed by the Inductive Logic Programming are
which hypotheses space to choose,
which language to choose to represent examples,
how to restrict inference.
The hypotheses language is a restriction of first-order logic, most frequently a restriction of Horn clauses.
Note, that Horn clauses are particularly well suited for the representation of grammars (syntax).
One is especially interested to be able to guarantee
that the generalizations of a data set is most specific within the hypothesis space,
or
that a hypothesis is a spezialization of a formula that is as general as possible, given
some specific demands.