Abstract
In my thesis, I present problems and techniques in tabling Transaction Logic (\(\mathcal{TR}\)). \(\mathcal{TR}\) is an extension of classical logic programming with backtrackable state updates and it has a top-down evaluation algorithm similar to Prolog’s SLD derivation extended with execution paths of states instead of a single global state. This backward chaining algorithm can be very inefficient by re-computing the same transactional queries more than once, or can enter into infinite loops by visiting the same paths of states an infinite number of times when computing answers to recursive programs. We solve these problems by memoizing (caching) the calls, call initial states, unifications (answers) and return states in a searchable structure for the Sequential Transaction Logic, respective building a graph for the query and tabling the nodes ready for current execution for the Concurrent Transaction Logic. Important problems of tabling \(\mathcal{TR}\) are to store, index, update, query and resume states into memory. I implemented and measured the efficiency of multiple data structures used in tabling programs with backtrackable updates in XSB Prolog. My thesis studies the data structures and their performance for various applications of TR, such as, artificial intelligence planning, NP-complete graph algorithms (Hamiltonian cycle, clique, shortest consuming paths, connected components) and active databases. One of the most promising techniques was storing logs (i.e., inserts and deletes relative to a materialized state) into individual tries (optimized for querying), while keeping a global page trie as a common index for restarting.
This is a preview of subscription content, log in via an institution.
Buying options
Tax calculation will be finalised at checkout
Purchases are for personal use only
Learn about institutional subscriptionsReferences
Bonner, A.J., Kifer, M.: An overview of transaction logic. Theoretical Computer Science 133(2), 205–265 (1994)
Bonner, A.J., Kifer, M.: Transaction logic programming (or, a logic of procedural and declarative knowledge). Technical report, University of Toronto (1995)
Bonner, A.J., Kifer, M.: Concurrency and communication in transaction logic. In: JICSLP, pp. 142–156 (1996)
Tamaki, H., Sato, T.: Old resolution with tabulation. In: ICLP (1988)
Warren, D.S.: Memoing for logic programs. Communications ACM 35(3), 93–111 (1992)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Fodor, P. (2009). Research Summary: Tabled Evaluation for Transaction Logic Programs. In: Hill, P.M., Warren, D.S. (eds) Logic Programming. ICLP 2009. Lecture Notes in Computer Science, vol 5649. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-02846-5_47
Download citation
DOI: https://doi.org/10.1007/978-3-642-02846-5_47
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-02845-8
Online ISBN: 978-3-642-02846-5
eBook Packages: Computer ScienceComputer Science (R0)