Compiling separable recursions

In this paper we consider evaluating queries on relations defined by a combination of recursive rules. We first define separable recursions. We then give a specialized algorithm for evaluating selections on separable recursions. Like the Generalized Magic Sets and Generalized Counting algorithms, thus algorithm uses selection constants to avoid examining irrelevant portions of the database, however, on some simple recursions this algorithm is <italic>&Ogr;</italic>(<italic>n</italic>), whereas Generalized Magic Sets is &OHgr;(<italic>n</italic><supscrpt>2</supscrpt>) and Generalized Counting is &OHgr;(2<supscrpt><italic>n</italic></supscrpt>)