Progol
| Progol | |
|---|---|
| Developer | Stephen Muggleton |
| Stable release | 4.4
/ 16 May 2009 |
| Repository | https://www.doc.ic.ac.uk/~shm/Software/progol4.4/ |
| Written in | C |
| Engine | |
| Type | Inductive logic programming system |
| Website | https://www.doc.ic.ac.uk/~shm/progol.html |
Progol is an implementation of inductive logic programming that combines inverse entailment with general-to-specific search through a refinement graph.[1][2]
Features
[edit | edit source]Inverse entailment is used with mode declarations to derive the bottom clause, the most-specific clause within the mode language[definition needed] which subsume a given example. This clause is used to guide a refinement-graph search.
Unlike the searches of Ehud Shapiro's model inference system (MIS) and J. Ross Quinlan's FOIL, Progol's search has a provable guarantee of returning a solution having the maximum compression[definition needed] in the search-space. To do so it performs an admissible A*-like search, guided by compression, over clauses which subsume the most specific clause.
Progol deals with noisy data by using a compression measure to trade off the description of errors against the hypothesis description length. Progol allows arbitrary Prolog programs as background knowledge and arbitrary definite clauses as examples.
History
[edit | edit source]Progol was introduced by Stephen Muggleton in 1995. In 1996, it was used by Ashwin Srinivasan, Muggleton, Michael Sternberg and Ross King[3] to predict the mutagenic activity in nitroaromatic compounds. This was considered a landmark application for inductive logic programming, as a general purpose inductive learner had discovered results that were both novel and meaningful to domain experts.[4]
Progol proved very influential in the field, and the widely-used inductive logic programming system Aleph builds directly on Progol. [5]
References
[edit | edit source]- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
- ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).