Specifying a Learning Task

ILASP is used to solve a learning task, which consists of three main components: the background knowledge, the mode bias and the examples.

The background knowledge B is an ASP program, which describes a set of concepts that are already known before learning. ILASP accepts a subset of ASP (described in the next subsection) – this subset is growing with each version.

In addition to the background knowledge, which describes the rules which are already known, the user must specify the space of all rules which is it possible for ILASP to learn. This is commonly expressed using some form of language bias. There are several ways of expressing such a language bias in ILASP, including both mode declarations and metarules, which are the most common forms of language bias used by other systems. The four methods for expressing the hypothesis space in ILASP are formalised in Section 2.2.

The final component of a learning task are the examples. Examples describe a set of semantic properties that the learned program should satisfy. When the semantic property of an individual example is satisfied, we say that it is covered. If we temporarily disregard the possibility of noisy (incorrectly labelled) examples, the goal of an ILP system, such as ILASP, is to find a program (often called a hypothesis) such that when it is combined with the background knowledge, it covers every example in the task. Many ILP systems (including ILASP) follow the principle of Occam’s Razor, that the simplest solution should be preferred, and therefore search for an optimal program, which is the shortest in terms of the number of literals. Section 2.3 describes the various types of example supported by ILASP.

In addition to the three main components described above, this section concludes with a subsection describing two advanced features allowing a user to customise and extend the way in which the ILASP system works.

The remainder of this section is structured as follows:

  1. Background Knowledge
  2. Hypothesis Space
    1. Explicitly Defining the Hypothesis Space
    2. Mode Declarations
    3. Meta-level ASP Definition of the Hypothesis Space
    4. Metarules
  3. Examples
    1. (Context Dependent) Partial Interpretations
    2. Ordering Examples
    3. Noise
  4. Advanced Features
    1. Meta-program injection
    2. PyLASP