Magic sets and other strange ways to implement logic programs (extended abstract)
PODS '86 Proceedings of the fifth ACM SIGACT-SIGMOD symposium on Principles of database systems
Journal of Logic Programming
Foundations of disjunctive logic programming
Foundations of disjunctive logic programming
ACM Transactions on Database Systems (TODS)
Principles of Database and Knowledge-Base Systems: Volume II: The New Technologies
Principles of Database and Knowledge-Base Systems: Volume II: The New Technologies
Foundations of Databases: The Logical Level
Foundations of Databases: The Logical Level
Extending and implementing the stable model semantics
Artificial Intelligence
Binding Propagation Techniques for the Optimization of Bound Disjunctive Queries
IEEE Transactions on Knowledge and Data Engineering
Ultimate Well-Founded and Stable Semantics for Logic Programs with Aggregates
Proceedings of the 17th International Conference on Logic Programming
Unfolding partiality and disjunctions in stable model semantics
ACM Transactions on Computational Logic (TOCL)
The DLV system for knowledge representation and reasoning
ACM Transactions on Computational Logic (TOCL)
Magic Sets and their application to data integration
Journal of Computer and System Sciences
Design and implementation of aggregate functions in the dlv system*
Theory and Practice of Logic Programming
A Logic-Based System for e-Tourism
Fundamenta Informaticae - On the Italian Conference on Computational Logic: CILC 2009
CMODELS: SAT-based disjunctive answer set solver
LPNMR'05 Proceedings of the 8th international conference on Logic Programming and Nonmonotonic Reasoning
Team-building with answer set programming in the gioia-tauro seaport
Theory and Practice of Logic Programming
Hi-index | 0.00 |
Disjunctive Logic Programming (DLP) is an extension of Datalog that allows for disjunction in rule head and nonmonotonic negation in bodies. All of the queries in the second level of the polynomial hierarchy can be expressed in this language. However, DLP does not allow for representing properties which involve sets of data in a natural way. Extending the language by introducing aggregate functions has been proposed in the literature to overcome this lack, then leading to the language DLPA,¬. In particular, DLPA,¬ allows for using recursive aggregates, which naturally arise in many practical application scenarios. An aggregate is recursive if its aggregate set depends on the evaluation of the aggregate itself. The evaluation of programs with aggregates is hard, especially when aggregates are recursive, optimization techniques are highly needed to make these programs usable in real-world applications. In this paper, we focus on the optimization of queries over programs with recursive aggregates. In particular, we design an extension of the Dynamic Magic Set (DMS) technique to programs with stratified negation and monotone recursive aggregates, and we demonstrate the correctness of the proposed technique. For assessing the effectiveness of the new technique, we consider a standard benchmark for recursive aggregates, referred to as Company Controls, along with a couple of benchmarks involving aggregates over the WordNet database. Experimental results confirm the effectiveness of our technique.