Debugging of wrong and missing answers for datalog programs with constraint handling rules

Rafael Caballero, Yolanda García-Ruiz, Fernando Sáenz-Pérez · 2015

This paper presents a proposal for debugging deductive database programs. Although inspired in the logic programming paradigm, these programs have the particularity of involving large sets of data. In this context, debugging tools employed usually in logic programs, such as traditional trace debuggers, become impractical. Our technique is based on the principles of algorithmic debugging but adapted to the particularities of the deductive database query language Datalog. The debugging process starts when the user detects an initial erroneous result. Then, the debugger asks questions about the validity/nonvalidity of some intermediate results until a bug is located. The debugger allows the user to report the existence of wrong or missing answers. This information is employed for simplifying the following questions using different forms of slicing. During the debugging process the information provided by the user or inferred by the debugger is stored in the form of constraints in a CHR program that combines all the data in order to detect the source of the error as soon as possible. The debugger has been implemented as part of the Datalog system DES.

Read the paper · More papers on PaperTik