PODS '87 Proceedings of the sixth ACM SIGACT-SIGMOD-SIGART symposium on Principles of database systems
Principles of database and knowledge-base systems, Vol. I
Principles of database and knowledge-base systems, Vol. I
Towards a theory of declarative knowledge
Foundations of deductive databases and logic programming
Algorithmic Program DeBugging
Knowledge Representation, Reasoning, and Declarative Problem Solving
Knowledge Representation, Reasoning, and Declarative Problem Solving
A Declarative Debugging Environment for DATALOG
Proceedings of the First Russian Conference on Logic Programming
A declarative debugger of incorrect answers for constraint functional-logic programs
Proceedings of the 2005 ACM SIGPLAN workshop on Curry and functional logic programming
Debugging ASP programs by means of ASP
LPNMR'07 Proceedings of the 9th international conference on Logic programming and nonmonotonic reasoning
Catching the ouroboros: On debugging non-ground answer-set programs
Theory and Practice of Logic Programming
DES: A Deductive Database System
Electronic Notes in Theoretical Computer Science (ENTCS)
VIDEAS: a development tool for answer-set programs based on model-driven engineering technology
LPNMR'11 Proceedings of the 11th international conference on Logic programming and nonmonotonic reasoning
A deductive database with datalog and SQL query languages
APLAS'11 Proceedings of the 9th Asian conference on Programming Languages and Systems
Outer Joins in a Deductive Database System
Electronic Notes in Theoretical Computer Science (ENTCS)
Algorithmic debugging of SQL views
PSI'11 Proceedings of the 8th international conference on Perspectives of System Informatics
Declarative debugging of wrong and missing answers for SQL views
FLOPS'12 Proceedings of the 11th international conference on Functional and Logic Programming
Declarative datalog debugging for mere mortals
Datalog 2.0'12 Proceedings of the Second international conference on Datalog in Academia and Industry
Hi-index | 0.00 |
The logic programming language Datalog has been extensively researched as a query language for deductive databases. Although similar to Prolog, the Datalog operational mechanisms are more intricate, leading to computations quite hard to debug by traditional approaches. In this paper, we present a theoretical framework for debugging Datalog programs based on the ideas of declarative debugging. In our setting, a debugging session starts when the user detects an unexpected answer for some query, and ends with the debugger pointing to either an erroneous predicate or to a set of mutually recursive predicates as the cause of the unexpected answer. Instead of representing the computations by means of trees, as usual in declarative debugging, we propose graphs as a more convenient structure in the case of Datalog, proving formally the soundness and completeness of the debugging technique. We also present a debugging tool implemented in the publicly available deductive database system DES following this theoretical framework.