Technical Report: DCC-2003-03

On the Implementation of an ILP System with Prolog

Nuno Fonseca(1), Vitor Santos Costa(2), Fernando Silva(1), Rui Camacho(3)


(1) DCC-FC & LIACC, Universidade do Porto
R. do Campo Alegre 823, 4150-180 Porto, Portugal
nf,fds@ncc.up.pt

(2) COPPE/Sistemas, Universidade Federal do Rio de Janeiro
Centro de Tecnologia, Bloco H-319, Cx. Postal 68511 Rio de Janeiro, Brasil
vitor@cos.ufrj.br
(3) Faculdade de Engenharia & LIACC, Universidade do Porto
Rua Dr. Roberto Frias, s/n 4200-465 Porto, Portugal
rcamacho@fe.up.pt

October 2003

Abstract

Inductive Logic Programming (ILP) systems is a set of Machine Learning techniques that have been quite successful in knowledge discovery in relational domains. These systems implemented in Prolog are among the most successfull ILP systems. They challenge the limits of Prolog systems due to heavy usage of resources, such as database accesses and memory usage, and very long execution times. In this work we discuss the fundamental performance issues found in an ILP engine -- the April system. Namely, we evaluate the impact of a fundamental technique, called coverage caching, that stores previous results in order to avoid recomputation. To understand the results obtained we profiled April's execution and present initial results. We advocate that the indexing mechanisms used in YAP Prolog database are inefficient and that improvement of these mechanisms may lead to significant improvements in Prolog based ILP systems.