CW 280

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.