CW 280

B. Demoen, G. Janssens and H. Vandecasteele
Executing Query Flocks for ILP


The aim of data mining is to derive rules that describe characteristics of sets of data. Inductive Logic Programming does this by repeatedly constructing sets of related queries and by determining the success or failure of all these queries for a given data set in order to select the best fitting query. In the ILP systems of the Leuven ML team, each query is actually a conjunction of calls to Prolog predicates appearing in the data set or appearing in the background knowledge. The number of related queries can be huge and queries with common prefixes occur frequently. This paper investigates the {\em flock} construct that makes this overlap between queries explicit and offers an opportunity to reduce the execution time for the set of queries. Three implementations of the flock construct are discussed: a meta-interpreter, a source-to-source transformation and an implementation in a WAM-setting. Preliminary experiments with the latter are very promising, e.g., in the case of a benchmark from an existing application the flock construct realises a speedup by an order of magnitude. We also discuss briefly ways to exploit the fact that a prefix succeeds.

report.pdf / mailto: B. Demoen