Popper
Popper copied to clipboard
An inductive logic programming system
If I have bk `edge(1,2). edge(2,3). edge(3,4). edge(5,5). geq(A,B):- nonvar(A), nonvar(B), A >= B.` with bias `head_pred(path,2). body_pred(edge,2).` and examples `pos(path(1,2)). pos(path(1,3)). pos(path(2,4)). neg(path(1,5)). neg(path(2,5)). ` then Popper will find...
I am trying to learn a program that does addition by succession, and I am trying to limit the number of rules generated (which is supposedly what max_clauses(N) is for)...
Thanks for making Popper! An extra feature i would find useful is the ability to handle noise. I tried this but i get no theory. bias.pl ``` max_vars(3). max_body(2). head_pred(grandparent,2)....
Resolves #47 or at least helps to mitigate confusion
If would be good if --stats showed the percentage of overall time spent doing each step, in addition to the absolute value.
Suppose Popper generates this rule: ```prolog f(A):- has_car(A,B), has_car(A,C), long(B), long(C). ``` Then Popper's [subsumption check](https://github.com/logic-and-learning-lab/Popper/blob/46fe4dc66928240eb1d9b977d44609ae47bfb8b5/popper/lp/test.pl#L63) will detect that two of the body literals are logically redundant. Popper will then...
Self-explanatory. The only tricky part is continually adding and removing rules from the Clingo instance, but @rolfmorel knows how to do this by disabling rules.
It would be great if the examples contains a description of the example. In earlier versions of Popper, most examples was quite clear (to me), but some of the newer...
There is a problem with predicate invention. When directions are given for background relations, predicate invention does not work.