Inductive logic programming (ILP) is a form of machine learning. The goal of ILP is to induce a logic program (a set of logical rules) that generalises training examples. As ILP approaches 30, we provide a new introduction to the field. We introduce the necessary logical notation and the main ILP learning settings. We describe the main building blocks of an ILP system. We compare several ILP systems on several dimensions. We detail four systems (Aleph, TILDE, ASPAL, and Metagol). We contrast ILP with other forms of machine learning. Finally, we summarise the current limitations and outline promising directions for future research.
Scenario 1: concept learningSuppose you want to predict whether someone is happy. To do so, you ask four people (alice, bob, claire, and dave) whether they are happy. You also ask additional information, specifically their job, their company, and whether they like lego. Standard ML approaches would represent this data as a table, such as Table 1. Using standard ML terminology, each row represents a training example, the first three columns (name, job, and enjoys lego) represent features, and the final column (happy) represents the label or classification. Given this table, the goal of standard ML approaches is to induce a hypothesis to predict the label (the value for the column