Progol: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m improve link: C (programming language)
Structure and expand page with reliable independent secondary sources.
Line 10: Line 10:
| website = https://www.doc.ic.ac.uk/~shm/progol.html
| 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]].<ref>{{Cite journal | last1 = Muggleton | first1 = S. | title = Inverse entailment and progol | doi = 10.1007/BF03037227 | journal = New Generation Computing | volume = 13 | issue = 3–4 | pages = 245–286 | year = 1995 | citeseerx = 10.1.1.31.1630 | s2cid = 12643399 }}</ref><ref>{{Cite book | last1 = Muggleton | first1 = S. | title = Inductive Logic Programming | chapter = Learning from positive data | doi = 10.1007/3-540-63494-0_65 | volume = 1314 | pages = 358–376 | year = 1997 | series = Lecture Notes in Computer Science | isbn = 978-3-540-63494-2 }}</ref> It was developed by [[Stephen Muggleton]].
'''Progol''' is an implementation of [[inductive logic programming]] that combines [[inverse entailment]] with general-to-specific search through a [[refinement graph]].<ref>{{Cite journal | last1 = Muggleton | first1 = S. | title = Inverse entailment and progol | doi = 10.1007/BF03037227 | journal = New Generation Computing | volume = 13 | issue = 3–4 | pages = 245–286 | year = 1995 | citeseerx = 10.1.1.31.1630 | s2cid = 12643399 }}</ref><ref>{{Cite book | last1 = Muggleton | first1 = S. | title = Inductive Logic Programming | chapter = Learning from positive data | doi = 10.1007/3-540-63494-0_65 | volume = 1314 | pages = 358–376 | year = 1997 | series = Lecture Notes in Computer Science | isbn = 978-3-540-63494-2 }}</ref>


== Features ==
Inverse entailment is used with mode declarations to derive the most-specific clause within the mode language{{define?|date=April 2021}} which [[Theta-subsumption|subsume]] a given example. This clause is used to guide a refinement-graph search.
Inverse entailment is used with mode declarations to derive the bottom clause, the most-specific clause within the mode language{{define?|date=April 2021}} which [[Theta-subsumption|subsume]] a given example. This clause is used to guide a refinement-graph search.


Unlike the searches of [[Ehud Shapiro]]'s model inference system<ref>{{cite web|url=https://dl.acm.org/doi/10.5555/1623264.1623364 |title=The model inference system|year= 1981|page=1064 }}</ref> (MIS) and [[Ross Quinlan|J. Ross Quinlan]]'s [[First Order Inductive Learner|FOIL]], Progol's search has a provable guarantee of returning a solution having the maximum compression{{define?|date=April 2021}} in the search-space. To do so it performs an admissible [[A* search algorithm|A*]]-like search, guided by compression, over clauses which subsume the most specific clause.
Unlike the searches of [[Ehud Shapiro]]'s [[model inference system]] (MIS) and [[Ross Quinlan|J. Ross Quinlan]]'s [[First Order Inductive Learner|FOIL]], Progol's search has a provable guarantee of returning a solution having the maximum compression{{define?|date=April 2021}} in the search-space. To do so it performs an admissible [[A* search algorithm|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.
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 ==
Progol was introduced by [[Stephen Muggleton]] in 1995. In 1996, it was used by Ashwin Srinivasan, Muggleton, [[Michael Sternberg]] and Ross King<ref>{{Cite journal |last=Srinivasan |first=A. |last2=Muggieton |first2=S.H. |last3=Sternberg |first3=M.J.E. |last4=King |first4=R.D. |date=1996 |title=Theories for mutagenicity: a study in first-order and feature-based induction |url=http://dx.doi.org/10.1016/0004-3702(96)81369-5 |journal=Artificial Intelligence |volume=84 |issue=1-2 |pages=357 |doi=10.1016/0004-3702(96)81369-5 |issn=0004-3702}}</ref> to predict the [[Mutagenicity|mutagenic]] activity in [[Nitroaromatic compound|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.<ref>{{Citation |last=De Raedt |first=Luc |title=Logical and Relational Learning |page=5 |year=2008 |access-date= |place=Berlin, Heidelberg |publisher=Springer |isbn=978-3-540-20040-6}}</ref>

Progol proved very influential in the field, and the widely-used inductive logic programming system [[Aleph (ILP)|Aleph]] builds directly on Progol. <ref name=":3">{{Cite journal |last=Cropper |first=Andrew |last2=Dumančić |first2=Sebastijan |date=2022-06-15 |title=Inductive Logic Programming At 30: A New Introduction |url=http://dx.doi.org/10.1613/jair.1.13507 |journal=Journal of Artificial Intelligence Research |volume=74 |page=808 |pages= |doi=10.1613/jair.1.13507 |issn=1076-9757}}</ref>


==References==
==References==

Revision as of 21:24, 30 November 2023

Progol
Developer(s)Stephen Muggleton
Stable release
4.4 / 16 May 2009; 15 years ago (2009-05-16)
Repositoryhttps://www.doc.ic.ac.uk/~shm/Software/progol4.4/
Written inC
TypeInductive logic programming system
Websitehttps://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

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

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

  1. ^ Muggleton, S. (1995). "Inverse entailment and progol". New Generation Computing. 13 (3–4): 245–286. CiteSeerX 10.1.1.31.1630. doi:10.1007/BF03037227. S2CID 12643399.
  2. ^ Muggleton, S. (1997). "Learning from positive data". Inductive Logic Programming. Lecture Notes in Computer Science. Vol. 1314. pp. 358–376. doi:10.1007/3-540-63494-0_65. ISBN 978-3-540-63494-2.
  3. ^ Srinivasan, A.; Muggieton, S.H.; Sternberg, M.J.E.; King, R.D. (1996). "Theories for mutagenicity: a study in first-order and feature-based induction". Artificial Intelligence. 84 (1–2): 357. doi:10.1016/0004-3702(96)81369-5. ISSN 0004-3702.
  4. ^ De Raedt, Luc (2008), Logical and Relational Learning, Berlin, Heidelberg: Springer, p. 5, ISBN 978-3-540-20040-6
  5. ^ Cropper, Andrew; Dumančić, Sebastijan (15 June 2022). "Inductive Logic Programming At 30: A New Introduction". Journal of Artificial Intelligence Research. 74: 808. doi:10.1613/jair.1.13507. ISSN 1076-9757.