Abstract
Newer Prolog implementations commonly offer support for multithreading, and many also offer support for tabling. However, most implementations do not yet integrate tabling with multi-threading, and in particular do not support the sharing of a tabled computation among threads. In this paper we present algorithms to share completed tables among threads based on Concurrent Local SLG evaluation (SLG CL ). SLG CL is based on the Local scheduling strategy, and is designed to support applications in which threads concurrently share tabled evaluations. Version 3.2 of XSB implements SLG CL in the SLG CL WAM, which fully supports well-founded tabled negation, construction of residual programs, tabled constraints and answer subsumption. The implementation of SLG CL requires significant additions to a single tabling operation only. As a result, SLG CL should be implementable by any tabling systems that uses Local evaluation based on the SLG-WAM or Chat engine, and may also be applicable to those using linear tabling.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Alferes, J.J., Knorr, M., Swift, T.: Queries to hybrid MKNF knowledge bases through oracular tabling. In: International Semantic Web Conference (2009)
Berman, K., Schlipf, J., Franco, J.: Computing the well-founded semantics faster. In: International Conference on Logic Programming and Non-Monotonic Reasoning, pp. 113–125 (1995)
Chen, W., Warren, D.S.: Tabled Evaluation with Delaying for General Logic Programs. Journal of the ACM 43(1), 20–74 (1996)
Freire, J., Swift, T., Warren, D.S.: Beyond depth-first: Improving tabled logic programs through alternative scheduling strategies. Journal of Functional and Logic Programming 1998(3), 243–268 (1998)
Gomes, S., Alferes, J.J., Swift, T.: Implementing query answering for hybrid mknf knowledge bases. In: Practical Applications of Declarative Languages (2010)
Grosof, B.: SILK: Semantic rules take the next big step in power (2009), http://silk.semwebcentral.org
Guo, H., Gupta, G.: A simple scheme for implementing tabled logic programming systems based on dynamic reordering of alternates. In: Codognet, P. (ed.) ICLP 2001. LNCS, vol. 2237, pp. 181–196. Springer, Heidelberg (2001)
Guzmán, P., Carro, M., Hermenegildo, M.: A tabling implementation based on variables with multiple bindings. In: International Conference on Logic Programming, pp. 190–204 (2009)
Marques, R., Swift, T.: Concurrent and local evaluation of normal programs. In: Garcia de la Banda, M., Pontelli, E. (eds.) ICLP 2008. LNCS, vol. 5366, pp. 206–222. Springer, Heidelberg (2008)
Ramakrishnan, I.V., Rao, P., Sagonas, K., Swift, T., Warren, D.S.: Efficient access mechanisms for tabled logic programs. Journal of Logic Programming 38(1), 31–55 (1999)
Rocha, R., Silva, F., Santos Costa, V.: On applying or-parallelism and tabling to logic programs. Theory and Practice of Logic Programming 5(1&2), 161–205 (2005)
Sagonas, K., Swift, T.: An abstract machine for tabled execution of fixed-order stratified logic programs. ACM TOPLAS 20(3), 586–635 (1998)
Somogyi, Z., Sagonas, K.: Tabling in Mercury: Design and implementation. In: Practical Applications of Declarative Languages, pp. 150–164 (2006)
Yang, G., Kifer, M., Zhao, C.: FLORA-2: A rule-based knowledge representation and inference infrastructure for the Semantic Web. In: Meersman, R., Tari, Z., Schmidt, D.C. (eds.) CoopIS 2003, DOA 2003, and ODBASE 2003. LNCS, vol. 2888, pp. 671–688. Springer, Heidelberg (2003)
Zhou, N., Shen, Y., Yuan, L., You, J.: Implementation of a linear tabling mechanism. Journal of Functional and Logic Programming 2001(10) (2001)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Marques, R., Swift, T., Cunha, J. (2010). A Simple and Efficient Implementation of Concurrent Local Tabling. In: Carro, M., Peña, R. (eds) Practical Aspects of Declarative Languages. PADL 2010. Lecture Notes in Computer Science, vol 5937. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11503-5_22
Download citation
DOI: https://doi.org/10.1007/978-3-642-11503-5_22
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-11502-8
Online ISBN: 978-3-642-11503-5
eBook Packages: Computer ScienceComputer Science (R0)