{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2022,3,30]],"date-time":"2022-03-30T00:16:45Z","timestamp":1648599405651},"reference-count":10,"publisher":"Cambridge University Press (CUP)","issue":"4-5","license":[{"start":{"date-parts":[[2011,7,6]],"date-time":"2011-07-06T00:00:00Z","timestamp":1309910400000},"content-version":"unspecified","delay-in-days":5,"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":[[2011,7]]},"abstract":"<jats:title>Abstract<\/jats:title><jats:p>Tabled evaluation is an implementation technique that solves some problems of traditional Prolog systems in dealing with recursion and redundant computations. Most tabling engines determine if a tabled subgoal will produce or consume answers by using variant checks. A more refined method, named call subsumption, considers that a subgoal <jats:italic>A<\/jats:italic> will consume from a subgoal <jats:italic>B<\/jats:italic> if <jats:italic>A<\/jats:italic> is subsumed by (an instance of) <jats:italic>B<\/jats:italic>, thus allowing greater answer reuse. We recently developed an extension, called <jats:italic>Retroactive Call Subsumption<\/jats:italic>, that improves upon call subsumption by supporting bidirectional sharing of answers between subsumed\/subsuming subgoals. In this paper, we present both an algorithm and an extension to the table space data structures to efficiently implement instance retrieval of subgoals for subsumptive tabled evaluation of logic programs. Experiments results using the YapTab tabling system show that our implementation performs quite well on some complex benchmarks and is robust enough to handle a large number of subgoals without performance degradation.<\/jats:p>","DOI":"10.1017\/s1471068411000251","type":"journal-article","created":{"date-parts":[[2011,7,6]],"date-time":"2011-07-06T09:15:37Z","timestamp":1309943737000},"page":"697-712","source":"Crossref","is-referenced-by-count":0,"title":["Efficient instance retrieval of subgoals for subsumptive tabled evaluation of logic programs"],"prefix":"10.1017","volume":"11","author":[{"given":"FL\u00c1VIO","family":"CRUZ","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"RICARDO","family":"ROCHA","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"56","published-online":{"date-parts":[[2011,7,6]]},"reference":[{"key":"S1471068411000251_ref6","first-page":"112","volume-title":"Proc. of Joint International Conference and Symposium on Logic Programming","author":"Rao","year":"1996"},{"key":"S1471068411000251_ref1","doi-asserted-by":"publisher","DOI":"10.1145\/227595.227597"},{"key":"S1471068411000251_ref4","doi-asserted-by":"publisher","DOI":"10.1007\/10705424_19"},{"key":"S1471068411000251_ref8","unstructured":"Rocha R. , Silva F. and Santos Costa V. 2000. YapTab: A tabling engine designed to support parallelism. In Proc. of Conference on Tabulation in Parsing and Deduction, 77\u201387."},{"key":"S1471068411000251_ref5","doi-asserted-by":"publisher","DOI":"10.1016\/S0743-1066(98)10013-4"},{"key":"S1471068411000251_ref7","first-page":"431","volume-title":"Proc. of International Conference on Logic Programming and Non-Monotonic Reasoning","author":"Rao","year":"1997"},{"key":"S1471068411000251_ref10","first-page":"1078","volume-title":"Proc. of Computational Logic","author":"Yang","year":"2000"},{"key":"S1471068411000251_ref2","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-15675-5_13"},{"key":"S1471068411000251_ref9","doi-asserted-by":"publisher","DOI":"10.1017\/S1471068404002030"},{"key":"S1471068411000251_ref3","unstructured":"Johnson E. 2000. Interfacing a tabled-WAM engine to a tabling subsystem supporting both variant and subsumption checks. In Proc. of Conference on Tabulation in Parsing and Deduction, 155\u2013162."}],"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\/S1471068411000251","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,4,27]],"date-time":"2019-04-27T08:02:23Z","timestamp":1556352143000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S1471068411000251\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2011,7]]},"references-count":10,"journal-issue":{"issue":"4-5","published-print":{"date-parts":[[2011,7]]}},"alternative-id":["S1471068411000251"],"URL":"https:\/\/doi.org\/10.1017\/s1471068411000251","relation":{},"ISSN":["1471-0684","1475-3081"],"issn-type":[{"value":"1471-0684","type":"print"},{"value":"1475-3081","type":"electronic"}],"subject":[],"published":{"date-parts":[[2011,7]]}}}