{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,1]],"date-time":"2026-03-01T13:51:28Z","timestamp":1772373088519,"version":"3.50.1"},"reference-count":86,"publisher":"Cambridge University Press (CUP)","issue":"1-2","license":[{"start":{"date-parts":[[2011,12,30]],"date-time":"2011-12-30T00:00:00Z","timestamp":1325203200000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Theory and Practice of Logic Programming"],"published-print":{"date-parts":[[2012,1]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>The paradigm of Tabled Logic Programming (TLP) is now supported by a number of Prolog systems, including XSB, YAP Prolog, B-Prolog, Mercury, ALS, and Ciao. The reasons for this are partly theoretical: tabling ensures termination and optimal known complexity for queries to a large class of programs. However, the overriding reasons are practical. TLP allows sophisticated programs to be written concisely and efficiently, especially when mechanisms such as tabled negation and call and answer subsumption are supported. As a result, TLP has now been used in a variety of applications from program analysis to querying over the semantic web. This paper provides a survey of TLP and its applications as implemented in the XSB Prolog, along with discussion of how XSB supports tabling with dynamically changing code, and in a multi-threaded environment.<\/jats:p>","DOI":"10.1017\/s1471068411000500","type":"journal-article","created":{"date-parts":[[2011,12,30]],"date-time":"2011-12-30T12:09:42Z","timestamp":1325246982000},"page":"157-187","source":"Crossref","is-referenced-by-count":101,"title":["XSB: Extending Prolog with Tabled Logic Programming"],"prefix":"10.1017","volume":"12","author":[{"given":"TERRANCE","family":"SWIFT","sequence":"first","affiliation":[]},{"given":"DAVID S.","family":"WARREN","sequence":"additional","affiliation":[]}],"member":"56","published-online":{"date-parts":[[2011,12,30]]},"reference":[{"key":"S1471068411000500_ref86","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-30960-4_16"},{"key":"S1471068411000500_ref84","first-page":"671","volume-title":"ODBASE-2003","author":"Yang","year":"2003"},{"key":"S1471068411000500_ref81","doi-asserted-by":"publisher","DOI":"10.1145\/116825.116838"},{"key":"S1471068411000500_ref78","unstructured":"Swift T. and Warren D. S. 2003. Coherent Description Framework. Accessed December 2003. URL: xsb.sourceforge.net"},{"key":"S1471068411000500_ref77","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-15675-5_26"},{"key":"S1471068411000500_ref76","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-02846-5_46"},{"key":"S1471068411000500_ref75","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-02846-5_45"},{"key":"S1471068411000500_ref74","first-page":"275","volume-title":"Proceedings of 11th International Conference on Logic Programming and Nonmonotonic Reasoning","author":"Swift","year":"2004"},{"key":"S1471068411000500_ref73","doi-asserted-by":"publisher","DOI":"10.1023\/A:1018990308362"},{"key":"S1471068411000500_ref72","first-page":"163","volume-title":"EPIA '99: Proceedings of the 9th Portuguese Conference on Artificial Intelligence: Progress in Artificial Intelligence.","author":"Swift","year":"1999"},{"key":"S1471068411000500_ref69","first-page":"101","volume-title":"Proceedings of 20th Large Installation Systems Administration Conference (LISA '06)","author":"Shankar","year":"2006"},{"key":"S1471068411000500_ref68","unstructured":"Sarna-Starosta B. 2005. Constraint-Based Analysis of Security Protocols. PhD thesis, SUNY Stony Brook University, New York, USA."},{"key":"S1471068411000500_ref67","first-page":"81","volume-title":"Proceedings of IEA\/AIE","author":"Santana","year":"2006"},{"key":"S1471068411000500_ref65","doi-asserted-by":"publisher","DOI":"10.1016\/S0304-3975(99)00341-2"},{"key":"S1471068411000500_ref64","doi-asserted-by":"publisher","DOI":"10.1145\/291889.291897"},{"key":"S1471068411000500_ref63","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-65306-6_14"},{"key":"S1471068411000500_ref61","unstructured":"Rocha R. 2001. On Applying Or-Parallelism and Tabling to Logic Programs. PhD thesis, Universidade do Porto, Portugal."},{"key":"S1471068411000500_ref60","first-page":"238","volume-title":"International Conference on Very Large Data Bases","author":"Ramakrishnan","year":"1992"},{"key":"S1471068411000500_ref58","doi-asserted-by":"publisher","DOI":"10.1016\/S0743-1066(98)10013-4"},{"key":"S1471068411000500_ref57","doi-asserted-by":"publisher","DOI":"10.1017\/S026988890700118X"},{"key":"S1471068411000500_ref56","first-page":"576","volume-title":"Proceedings on the Conf. on Automated Verification","author":"Ramakrishnan","year":"2000"},{"key":"S1471068411000500_ref55","first-page":"143","volume-title":"Proceedings on the Conference on Automated Verification","author":"Ramakrishna","year":"1997"},{"key":"S1471068411000500_ref8","first-page":"11","volume-title":"Proceedings of International Conference on Logic Programming (ICLP 2001).","author":"Castro","year":"2001"},{"key":"S1471068411000500_ref7","first-page":"838","volume-title":"IEA\/AIE","author":"Castro","year":"2004"},{"key":"S1471068411000500_ref62","first-page":"2","volume-title":"Tabling in Parsing and Deduction (TAPD'98)","author":"Rocio","year":"1998"},{"key":"S1471068411000500_ref13","first-page":"155","volume-title":"Proceedings of the International Conference on Computer Languages (ICCL)","author":"Codognet","year":"1992"},{"key":"S1471068411000500_ref9","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45587-6_21"},{"key":"S1471068411000500_ref42","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-89982-2_24"},{"key":"S1471068411000500_ref28","first-page":"118","volume-title":"Proceedings of the 1st Workshop on Tabling in Parsing and Deduction","author":"Janssens","year":"1998"},{"key":"S1471068411000500_ref16","first-page":"155","volume-title":"Seventh International Conference on Information Quality (ICIQ-02)","author":"Davulcu","year":"2002"},{"key":"S1471068411000500_ref85","doi-asserted-by":"publisher","DOI":"10.1145\/888251.888277"},{"key":"S1471068411000500_ref50","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-45619-8_8"},{"key":"S1471068411000500_ref17","first-page":"1094","volume-title":"Proceedings of Computational Logic","author":"Davulcu","year":"2000"},{"key":"S1471068411000500_ref14","doi-asserted-by":"publisher","DOI":"10.1016\/S0004-3702(02)00185-6"},{"key":"S1471068411000500_ref32","doi-asserted-by":"publisher","DOI":"10.1145\/210332.210335"},{"key":"S1471068411000500_ref33","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(92)90007-P"},{"key":"S1471068411000500_ref83","first-page":"331","volume-title":"Proceedings of International Symposium on Practical Applications of Declarative Languages","author":"Wielemaker","year":"2003"},{"key":"S1471068411000500_ref41","unstructured":"Marques R. 2007. Concurrent Tabling: Algorithms and Implementation. PhD thesis, Universidade Nova de Lisboa, Portugal."},{"key":"S1471068411000500_ref70","doi-asserted-by":"crossref","DOI":"10.7551\/mitpress\/2123.001.0001","volume-title":"Constraint-based Grammar Formailsms","author":"Shieber","year":"1992"},{"key":"S1471068411000500_ref66","first-page":"117","volume-title":"Proceedings of Principles and Practice of Declarative Programming","author":"Saha","year":"2005"},{"key":"S1471068411000500_ref18","first-page":"117","volume-title":"Proceedings of the ACM PLDI Conference","author":"Dawson","year":"1996"},{"key":"S1471068411000500_ref52","first-page":"363","volume-title":"International Conference on Enterprise Information Systems","author":"Pereira","year":"2007"},{"key":"S1471068411000500_ref59","first-page":"255","volume-title":"Proceedings of Practical Applications of Prolog Conference","author":"Ramakrishnan","year":"1997"},{"key":"S1471068411000500_ref27","unstructured":"Grosof B. 2009. SILK: Semantic rules take the next big step in power. Accessed December 2010. URL: http:\/\/silk.semwebcentral.org"},{"key":"S1471068411000500_ref5","unstructured":"Boulanger D. 1997. Fine-grained goal-directed declarative analysis of logic programs. In International Workshop on Verification, Model Checking and Abstract Interpretation URL: http:\/\/www.dsi.unive.it\/bossi\/VMCAI.html"},{"key":"S1471068411000500_ref6","first-page":"714","volume-title":"Proceedings of JELIA","author":"Calejo","year":"2004"},{"key":"S1471068411000500_ref48","first-page":"673","article-title":"Formally describing dynamic software architectures with \u03c0-ADL","volume":"3","author":"Oquendo","year":"2004","journal-title":"World Scientific and Engineering Transactions on Systems"},{"key":"S1471068411000500_ref21","doi-asserted-by":"crossref","unstructured":"Drabent W. , Henriksson J. and Maluszy\u0144ski J. 2007. Hybrid reasoning with rules and constraints under well-founded semantics. In Web Reasoning and Rules. 348\u2013357.","DOI":"10.1007\/978-3-540-72982-2_29"},{"key":"S1471068411000500_ref71","doi-asserted-by":"publisher","DOI":"10.1016\/S0004-3702(02)00187-X"},{"key":"S1471068411000500_ref2","first-page":"1","volume-title":"Proceedings of the AISB Symposium on AI Planning and Intelligent Agents (AISB'00)","author":"Alferes","year":"2000"},{"key":"S1471068411000500_ref12","doi-asserted-by":"publisher","DOI":"10.1007\/s100090050016"},{"key":"S1471068411000500_ref36","first-page":"466","volume-title":"Proceedings of IEEE Intelligent Vehicles Symposium","author":"Lattner","year":"2005"},{"key":"S1471068411000500_ref82","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-02846-5_35"},{"key":"S1471068411000500_ref79","first-page":"706","volume-title":"Proceedings of 2nd International Semantic Web Conference","author":"Tangmunarunkit","year":"2003"},{"key":"S1471068411000500_ref54","first-page":"148","volume-title":"Proceedings of Second International Workshop on Declarative Agent Languages and Technologies","author":"Pokorny","year":"2004"},{"key":"S1471068411000500_ref40","doi-asserted-by":"publisher","DOI":"10.1145\/1526709.1526790"},{"key":"S1471068411000500_ref20","first-page":"1","article-title":"Heap memory management in prolog with tabling: Principles and practice","volume":"2001","author":"Demoen","year":"2001","journal-title":"Journal of Functional and Logic Programming"},{"key":"S1471068411000500_ref37","doi-asserted-by":"publisher","DOI":"10.1109\/KIMAS.2005.1427078"},{"key":"S1471068411000500_ref46","doi-asserted-by":"publisher","DOI":"10.1016\/j.datak.2004.03.010"},{"key":"S1471068411000500_ref31","first-page":"953","volume-title":"Eighteenth National Conference on Artificial Intelligence","author":"Kalantari","year":"2002"},{"key":"S1471068411000500_ref26","first-page":"25","volume-title":"Twelfth International Symposium on Practical Applications of Declarative Languages","author":"Gomes","year":"2010"},{"key":"S1471068411000500_ref23","first-page":"115","volume-title":"Proceedings of 7th International Symposium on Programming Language Implementation and Logic Programming.","author":"Freire","year":"1995"},{"key":"S1471068411000500_ref49","doi-asserted-by":"publisher","DOI":"10.1109\/ICALT.2001.943849"},{"key":"S1471068411000500_ref34","doi-asserted-by":"publisher","DOI":"10.1023\/A:1007681906490"},{"key":"S1471068411000500_ref1","doi-asserted-by":"publisher","DOI":"10.1007\/1-4020-8151-0_14"},{"key":"S1471068411000500_ref3","first-page":"4","volume-title":"Proceedings of ISIE 2007 \u2013 IEEE International Symposium on Industrial Electronics","author":"Barata","year":"2007"},{"key":"S1471068411000500_ref4","doi-asserted-by":"publisher","DOI":"10.1007\/11580072_10"},{"key":"S1471068411000500_ref10","doi-asserted-by":"publisher","DOI":"10.1145\/227595.227597"},{"key":"S1471068411000500_ref80","doi-asserted-by":"publisher","DOI":"10.1016\/0743-1066(86)90003-8"},{"key":"S1471068411000500_ref11","doi-asserted-by":"publisher","DOI":"10.1109\/69.50907"},{"key":"S1471068411000500_ref15","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-44652-4_66"},{"key":"S1471068411000500_ref19","first-page":"106","volume-title":"proceedings of Practical Applications of Declarative Languages (PADL'99)","author":"Demoen","year":"1999"},{"key":"S1471068411000500_ref22","first-page":"175","volume-title":"Proceedings of Real-Time Systems Symposium","author":"Du","year":"2000"},{"key":"S1471068411000500_ref24","first-page":"243","article-title":"Beyond depth-first: Improving tabled logic programs through alternative scheduling strategies","volume":"1998","author":"Freire","year":"1998","journal-title":"Journal of Functional and Logic Prog."},{"key":"S1471068411000500_ref25","first-page":"1362","volume-title":"First International Conference on Computational Logic","author":"Gartner","year":"2000"},{"key":"S1471068411000500_ref29","doi-asserted-by":"publisher","DOI":"10.1007\/10705424_19"},{"key":"S1471068411000500_ref30","first-page":"120","volume-title":"International Workshop on Agent Communication","author":"Kagal","year":"2004"},{"key":"S1471068411000500_ref35","volume-title":"Syntactica, Symantica","author":"Larson","year":"1995"},{"key":"S1471068411000500_ref38","first-page":"728","volume-title":"IEA\/AIE","author":"Letia","year":"2001"},{"key":"S1471068411000500_ref39","unstructured":"Li J. , Pease A. and Barbee C. 2002. Performance of Semantic Search. Technical Report, Teknowledge Corporation, East Palo Alto, California."},{"key":"S1471068411000500_ref43","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-11503-5_22"},{"key":"S1471068411000500_ref44","unstructured":"Motik B. 2006. Reasoning in Description Logics Using Resolution and Deductive Databases. PhD thesis. Univesit\u00e4t Karlsruhe (TH), Karlsruhe, Germany."},{"key":"S1471068411000500_ref45","first-page":"166","volume-title":"Proceedings of Tabling in Parsing and Deduction Conference (TAPD 2000)","author":"Mukund","year":"2000"},{"key":"S1471068411000500_ref47","doi-asserted-by":"publisher","DOI":"10.1023\/A:1018930122475"},{"key":"S1471068411000500_ref51","first-page":"254","volume-title":"Practical Applications of Declarative Languages","author":"Pereira","year":"2009"},{"key":"S1471068411000500_ref53","volume-title":"Proceedings of KRDB-98","author":"Peterson","year":"1998"}],"container-title":["Theory and Practice of Logic Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S1471068411000500","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,3,17]],"date-time":"2025-03-17T05:47:00Z","timestamp":1742190420000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S1471068411000500\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2011,12,30]]},"references-count":86,"journal-issue":{"issue":"1-2","published-print":{"date-parts":[[2012,1]]}},"alternative-id":["S1471068411000500"],"URL":"https:\/\/doi.org\/10.1017\/s1471068411000500","relation":{},"ISSN":["1471-0684","1475-3081"],"issn-type":[{"value":"1471-0684","type":"print"},{"value":"1475-3081","type":"electronic"}],"subject":[],"published":{"date-parts":[[2011,12,30]]}}}