Deduction and induction are unified on the basis of a generalized notion of logical consequence, having classical first-order logic as a particular case. RichProlog is a natural extension of Prolog rooted in this generalized logic, in the same way as Prolog is rooted in classical logic. Prolog can answer Σ_1 queries as a side effect of a deductive inference. RichProlog can answer Σ_1 queries, ∏_1 queries (as a side effect of an inductive inference), and Σ_2 queries (as a side effect of an inductive inference followed by a deductive inference). RichProlog can be used to learn: a learning problem is expressed as a usual logic program, supplemented with data, and solved by asking a Σ_2 query. The output is correct in the limit, i.e., when sufficient data have been provided.
展开▼