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 an 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.
References
- S.H. Muggleton. Inductive Logic Programming. New Generation Computing, 8(4):295-318, 1991.
- S.H. Muggleton and L. De Raedt. Inductive logic programming: Theory and methods. Journal of Logic Programming, 19,20:629-679, 1994.
- N. Lavrac and S. Dzeroski. Inductive Logic Programming: Techniques and Applications. Ellis Horwood, New York, 1994, ISBN 0-13-457870-8 Publicly available online version.
Implementations
- PROGOL (http://www.doc.ic.ac.uk/~shm/Software/progol5.0)
- Golem (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)
- Lime (http://cs.anu.edu.au/people/Eric.McCreath/lime.html)
- ACE (http://www.cs.kuleuven.ac.be/~dtai/ACE/)
- DMax (http://www.pharmadm.com/dmax.asp)
- Warmr (http://www.cs.kuleuven.ac.be/~ml/Doc/TW_User/)
- RSD (http://labe.felk.cvut.cz/~zelezny/rsd/)
- Mio (http://kd.cs.uni-magdeburg.de/~pena/)