Theory and Practice of Logic Programming vol:15 issue:6 pages:783 -817
This paper provides a gentle introduction to problem solving with the IDP3 system.
The core of IDP3 is a finite model generator that supports first order logic enriched
with types, inductive denitions, aggregates and partial functions. It offers its users a
modeling language that is a slight extension of predicate logic and allows them to solve
a wide range of search problems. Apart from a small introductory example, applications
are selected from problems that arose within machine learning and data mining research.
These research areas have recently shown a strong interest in declarative modeling and
constraint solving as opposed to algorithmic approaches. The paper illustrates that the
IDP3 system can be a valuable tool for researchers with such an interest.
The first problem is in the domain of stemmatology, a domain of philology concerned
with the relationship between surviving variant versions of text. The second problem is
about a somewhat related problem within biology where phylogenetic trees are used to
represent the evolution of species. The third and final problem concerns the classical
problem of learning a minimal automaton consistent with a given set of strings. For this
last problem, we show that the performance of our solution comes very close to that
of a state-of-the art solution. For each of these applications, we analyze the problem,
illustrate the development of a logic-based model and explore how alternatives can affect