A Simple Table Space Design for Retroactive Call Subsumption

Flávio Cruz and Ricardo Rocha

October 2011


Abstract

Tabling is an implementation technique where answers from subgoals are stored in a table space area in order to be reused later by similar subgoals. Most tabling engines use call by variance to test subgoal similarity by means of simple variable renaming. Call by subsumption is a more sophisticated similarity test where subsumed subgoals can use answers from subsuming subgoals, therefore increasing answer reuse and attaining better execution times in general. However, call by subsumption is highly dependent on the call order of the subgoals. A recent strategy, called Retroactive Call Subsumption (RCS), supports call by subsumption by allowing full sharing of answers between subsumed/subsuming subgoals, independently on the order in which they are called. For this strategy, we propose a new table space design, the Single Time Stamped Trie (STST), that makes answer sharing across subsumed/subsuming subgoals simple and efficient. In this paper, we present the STST design and how it fits within the RCS framework. In experimental results, we observed some overheads in programs that stress the drawbacks of STST when RCS is not applied, but its design's simplicity outweighs these disadvantages when programs take advantage of RCS evaluation.

Bibtex

@InProceedings{cruz-epia11-local,
  author =    {F. Cruz and R. Rocha},
  title =     {{A Simple Table Space Design for Retroactive Call Subsumption}},
  booktitle = {Local Proceedings of the 15th Portuguese Conference on Artificial Intelligence (EPIA 2011)},
  pages =     {253--267},
  editor =    {L. Antunes and H. S. Pinto},
  month =     {October},
  year =      {2011},
  address =   {Lisboa, Portugal},
}

Download Paper

PDF file

Download Slides

PDF file