paper( { 'Bancilhon', 'Ullman', 'Zaniolo' }, 'Counting with Magic', 2 ). paper( { 'Shmueli', 'Tsur', 'Zaniolo' }, 'Compilation of LDL Set Terms', 1 ). paper( { 'Ohare', 'Zaniolo' }, 'Sets: Are They Worth It?', 1 ). paper( { 'Sacca', 'Zaniolo' }, 'Magic Counting Methods', 2 ). paper( { 'Ullman', 'Van Gelder' }, 'Top-Down Capture Rules', 2 ). paper( { 'Bancilhon', 'Maier', 'Ullman' }, 'Magic Sets and Other Stange Methods', 2 ). paper( { 'Aho', 'Ullman' }, 'Reasoning with Recursive Rules', 2 ). paper( { 'Aho', 'Ullman' }, 'Logic Programming with Sets', 1 ). paper( { 'Ullman', 'Zaniolo' }, 'Recursive Query Processing', 2 ). paper( { 'Naqvi', 'Krishnamurthy' }, 'Semantics of Updates', 3). paper( { 'Naqvi' }, 'A Logic for Negation', 4). paper( { 'Henschen', 'Naqvi', 'Ullman' }, 'Compiling Queries in Recursive First-Order Databases', 2 ). paper( { 'Van Gelder' }, 'Negation as Failure', 4). subject( 1, sets ). subject( 2, recursion ). subject( 3, updates ). subject( 4, negation ).