Inductive Logic Programming

Inductive logic programming (ILP) is a subfield of machine learning which uses logic programming as a uniform representation for examples, background knowledge and hypotheses. Given an encoding of the known background knowledge and a set of examples represented as a logical database of facts, an ILP system will derive a hypothesised logic program which entails all the positive and none of the negative examples.

Schema: positive examples + negative examples + background knowledge => hypothesis.

Inductive logic programming is particularly useful in bioinformatics and natural language processing. The term Inductive Logic Programming was first introduced in a paper by Stephen Muggleton in 1991.

Implementations

 * PROGOL (http://www.doc.ic.ac.uk/~shm/Software/progol5.0)
 * Golem (ILP) (http://www.doc.ic.ac.uk/~shm/Software/golem)
 * Aleph (http://web.comlab.ox.ac.uk/oucl/research/areas/machlearn/Aleph/)
 * FOIL (ftp://ftp.cs.su.oz.au/pub/foil6.sh)
 * TAL (https://github.com/kuramae/Inductive-Learning)
 * Claudien (http://dtai.cs.kuleuven.be/claudien/)
 * Lime (http://cs.anu.edu.au/people/Eric.McCreath/lime.html)
 * ACE (A Combined Engine) (http://dtai.cs.kuleuven.be/ACE/)
 * DMax (http://dtai.cs.kuleuven.be/dmax/)
 * Warmr (now included in ACE)
 * RSD (http://labe.felk.cvut.cz/~zelezny/rsd/)
 * Mio (http://kd.cs.uni-magdeburg.de/~pena/)
 * DL-Learner (http://dl-learner.org)
 * MIS (Model Inference System) by Ehud Shapiro