Rule Rewriting Revisited: A Fresh Look at Static Filtering for Datalog and ASP
Philipp Hanisch, Markus Krötzsch
TL;DR
This work revisits static filtering, a data-independent optimization for Datalog, and extends it to modern rule engines and ASP. It formalizes a general filtering framework with expressive filter predicates, analyzes the inherent worst-case complexity (including double exponential growth in general and single exponential growth under bounded-arity restrictions), and proposes tractable approximations (CASF) based on conjunctive filters and approximate entailment. The authors also adapt static filtering to nonmonotonic negation, proving that admissible rewritings preserve output semantics via a bijection between stable models of the original and rewritten programs. Empirically, the approach demonstrates meaningful performance gains on real-world data, and the framework is positioned to synergize with other optimizations and to support modular and terminating reasoning in arithmetic-rich rule languages.
Abstract
Static filtering is a data-independent optimisation method for Datalog, which generalises algebraic query rewriting techniques from relational databases. In spite of its early discovery by Kifer and Lozinskii in 1986, the method has been overlooked in recent research and system development, and special cases are being rediscovered independently. We therefore recall the original approach, using updated terminology and more general filter predicates that capture features of modern systems, and we show how to extend its applicability to answer set programming (ASP). The outcome is strictly more general but also more complex than the classical approach: double exponential in general and single exponential even for predicates of bounded arity. As a solution, we propose tractable approximations of the algorithm that can still yield much improved logic programs in typical cases, e.g., it can improve the performance of rule systems over real-world data in the order of magnitude.
