{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,12]],"date-time":"2025-10-12T04:15:26Z","timestamp":1760242526768,"version":"build-2065373602"},"reference-count":38,"publisher":"MDPI AG","issue":"4","license":[{"start":{"date-parts":[[2017,10,19]],"date-time":"2017-10-19T00:00:00Z","timestamp":1508371200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"FCT - Funda\u00e7\u00e3o para a Ci\u00eancia e a Tecnologia","award":["SFRH\/BPD\/108018\/2015"],"award-info":[{"award-number":["SFRH\/BPD\/108018\/2015"]}]}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["Information"],"abstract":"<jats:p>Software testing and benchmarking are key components of the software development process. Nowadays, a good practice in large software projects is the continuous integration (CI) software development technique. The key idea of CI is to let developers integrate their work as they produce it, instead of performing the integration at the end of each software module. In this paper, we extend a previous work on a benchmark suite for the YAP Prolog system, and we propose a fully automated test bench environment for Prolog systems, named Yet Another Prolog Test Bench Environment (YAPTBE), aimed to assist developers in the development and CI of Prolog systems. YAPTBE is based on a cloud computing architecture and relies on the Jenkins framework as well as a new Jenkins plugin to manage the underlying infrastructure. We present the key design and implementation aspects of YAPTBE and show its most important features, such as its graphical user interface (GUI) and the automated process that builds and runs Prolog systems and benchmarks.<\/jats:p>","DOI":"10.3390\/info8040129","type":"journal-article","created":{"date-parts":[[2017,10,19]],"date-time":"2017-10-19T11:07:29Z","timestamp":1508411249000},"page":"129","update-policy":"https:\/\/doi.org\/10.3390\/mdpi_crossmark_policy","source":"Crossref","is-referenced-by-count":0,"title":["On the Implementation of a Cloud-Based Computing Test Bench Environment for Prolog Systems"],"prefix":"10.3390","volume":"8","author":[{"given":"Ricardo","family":"Gon\u00e7alves","sequence":"first","affiliation":[{"name":"CRACS &amp; INESC TEC and Faculty of Sciences, University of Porto, Rua do Campo Alegre, 1021\/1055, 4169-007 Porto, Portugal"}]},{"given":"Miguel","family":"Areias","sequence":"additional","affiliation":[{"name":"CRACS &amp; INESC TEC and Faculty of Sciences, University of Porto, Rua do Campo Alegre, 1021\/1055, 4169-007 Porto, Portugal"}]},{"given":"Ricardo","family":"Rocha","sequence":"additional","affiliation":[{"name":"CRACS &amp; INESC TEC and Faculty of Sciences, University of Porto, Rua do Campo Alegre, 1021\/1055, 4169-007 Porto, Portugal"}]}],"member":"1968","published-online":{"date-parts":[[2017,10,19]]},"reference":[{"key":"ref_1","doi-asserted-by":"crossref","unstructured":"Myers, G.J., Sandler, C., and Badgett, T. (2011). The Art of Software Testing, Wiley Publishing. [3rd ed.].","DOI":"10.1002\/9781119202486"},{"key":"ref_2","unstructured":"Duvall, P., Matyas, S.M., and Glover, A. (2007). Continuous Integration: Improving Software Quality and Reducing Risk, Addison-Wesley Professional."},{"key":"ref_3","doi-asserted-by":"crossref","first-page":"189","DOI":"10.1017\/S1471068411000445","article-title":"The Language Features and Architecture of B-Prolog","volume":"12","author":"Zhou","year":"2012","journal-title":"Theory Pract. Log. Program."},{"key":"ref_4","doi-asserted-by":"crossref","first-page":"219","DOI":"10.1017\/S1471068411000457","article-title":"An Overview of Ciao and its Design Philosophy","volume":"12","author":"Hermenegildo","year":"2012","journal-title":"Theory Pract. Log. Program."},{"key":"ref_5","doi-asserted-by":"crossref","unstructured":"Somogyi, Z., and Sagonas, K. (2006, January 9\u201310). Tabling in Mercury: Design and Implementation. Proceedings of the International Symposium on Practical Aspects of Declarative Languages, Charleston, SC, USA.","DOI":"10.1007\/11603023_11"},{"key":"ref_6","doi-asserted-by":"crossref","unstructured":"Zhou, N.F., Kjellerstrand, H., and Fruhman, J. (2015). Constraint Solving and Planning with Picat, Springer.","DOI":"10.1007\/978-3-319-25883-6"},{"key":"ref_7","doi-asserted-by":"crossref","first-page":"35","DOI":"10.1017\/S1471068411000482","article-title":"SICStus Prolog\u2014The first 25 years","volume":"12","author":"Carlsson","year":"2012","journal-title":"Theory Pract. Log. Program."},{"key":"ref_8","doi-asserted-by":"crossref","first-page":"67","DOI":"10.1017\/S1471068411000494","article-title":"SWI-Prolog","volume":"12","author":"Wielemaker","year":"2012","journal-title":"Theory Pract. Log. Program."},{"key":"ref_9","doi-asserted-by":"crossref","first-page":"157","DOI":"10.1017\/S1471068411000500","article-title":"XSB: Extending Prolog with Tabled Logic Programming","volume":"12","author":"Swift","year":"2012","journal-title":"Theory Pract Log. Program."},{"key":"ref_10","doi-asserted-by":"crossref","first-page":"5","DOI":"10.1017\/S1471068411000512","article-title":"The YAP Prolog System","volume":"12","author":"Rocha","year":"2012","journal-title":"Theory Pract. Log. Program."},{"key":"ref_11","unstructured":"ISO (1995). ISO\/IEC 13211-1:1995: Information Technology\u2014Programming Languages\u2014Prolog\u2014Part 1: General Core, ISO."},{"key":"ref_12","unstructured":"Wielemaker, J. (2014, January 17\u201318). SWI-Prolog version 7 extensions. Proceedings of the International Joint Workshop on Implementation of Constraint and Logic Programming Systems and Logic-Based Methods in Programming Environments, Vienna, Austria."},{"key":"ref_13","unstructured":"Wielemaker, J., and Costa, V.S. (2010). Portability of Prolog programs: Theory and case-studies. CoRR."},{"key":"ref_14","unstructured":"Wielemaker, J., and Costa, V.S. (2011, January 24\u201325). On the Portability of Prolog Applications. Proceedings of the 13th International Symposium on Practical Aspects of Declarative Languages, Austin, TX, USA."},{"key":"ref_15","doi-asserted-by":"crossref","first-page":"54","DOI":"10.1145\/122193.122197","article-title":"A Prolog Space Benchmark Suite: A New Tool to Compare Prolog Implementations","volume":"25","author":"Bothe","year":"1990","journal-title":"SIGPLAN Not."},{"key":"ref_16","doi-asserted-by":"crossref","unstructured":"Haygood, R. (1989). A Prolog Benchmark Suite for Aquarius, University of California at Berkeley. Technical Report.","DOI":"10.21236\/ADA211444"},{"key":"ref_17","unstructured":"Bagnara, R. (2017, March 05). China\u2014A Data-Flow Analyzer for CLP Languages. Available online: http:\/\/www.cs.unipr.it\/China\/."},{"key":"ref_18","doi-asserted-by":"crossref","unstructured":"Liang, S., Fodor, P., Wan, H., and Kifer, M. (2009, January 20\u201324). OpenRuleBench: An Analysis of the Performance of Rule Engines. Proceedings of the Internacional World Wide Web Conference, Madrid, Spain.","DOI":"10.1145\/1526709.1526790"},{"key":"ref_19","doi-asserted-by":"crossref","first-page":"681","DOI":"10.1017\/S147106841100024X","article-title":"On Combining Linear-Based Strategies for Tabled Evaluation of Logic Programs","volume":"11","author":"Areias","year":"2011","journal-title":"Theory Pract. Log. Program."},{"key":"ref_20","unstructured":"Sim\u00f5es, A., Queir\u00f3s, R., and Cruz, D. (2012, January 21\u201322). On Extending a Linear Tabling Framework to Support Batched Scheduling. Proceedings of the Symposium on Languages, Applications and Technologies, Braga, Portugal."},{"key":"ref_21","unstructured":"Gon\u00e7alves, R., Areias, M., and Rocha, R. (2017, January 26\u201327). Towards an Automated Test Bench Environment for Prolog Systems. Proceedings of the Symposium on Languages, Applications and Technologies, Vila do Conde, Portugal."},{"key":"ref_22","doi-asserted-by":"crossref","first-page":"50","DOI":"10.1145\/1721654.1721672","article-title":"A View of Cloud Computing","volume":"53","author":"Armbrust","year":"2010","journal-title":"Commun. ACM"},{"key":"ref_23","unstructured":"Smart, J.F. (2011). Jenkins: The Definitive Guide, O\u2019Reilly Media, Inc."},{"key":"ref_24","unstructured":"Torvalds, L. (2017, March 05). Git\u2014Version Control System. Available online: https:\/\/git-scm.com\/."},{"key":"ref_25","unstructured":"Colmerauer, A., Kanoui, H., Pasero, R., and Roussel, P. (1973). Un syst\u00e8me de Communication Homme-Machine en Fran\u00e7ais, Groupe Intelligence Artificielle, Universit\u00e9 Aix-Marseille II. Technical Report cri 72-18."},{"key":"ref_26","unstructured":"Warren, D.H.D. (1983). An Abstract Prolog Instruction Set, SRI International. Technical Note 309."},{"key":"ref_27","doi-asserted-by":"crossref","first-page":"752","DOI":"10.1145\/236114.236120","article-title":"Parameter Passing and Control Stack Management in Prolog Implementation Revisited","volume":"18","author":"Zhou","year":"1996","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"ref_28","first-page":"1240","article-title":"So Many WAM Variations, So Little Time","volume":"Volume 1861","author":"Demoen","year":"2000","journal-title":"Computational Logic"},{"key":"ref_29","first-page":"385","article-title":"1983\u20131993: The wonder years of sequential Prolog implementation","volume":"19","author":"Roy","year":"1994","journal-title":"J. Log. Program."},{"key":"ref_30","doi-asserted-by":"crossref","unstructured":"Lloyd, J.W. (1987). Foundations of Logic Programming, Springer.","DOI":"10.1007\/978-3-642-83189-8"},{"key":"ref_31","doi-asserted-by":"crossref","first-page":"20","DOI":"10.1145\/227595.227597","article-title":"Tabled Evaluation with Delaying for General Logic Programs","volume":"43","author":"Chen","year":"1996","journal-title":"J. ACM"},{"key":"ref_32","doi-asserted-by":"crossref","first-page":"586","DOI":"10.1145\/291889.291897","article-title":"An Abstract Machine for Tabled Execution of Fixed-Order Stratified Logic Programs","volume":"20","author":"Sagonas","year":"1998","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"ref_33","doi-asserted-by":"crossref","unstructured":"Zhou, N.F., Shen, Y.D., Yuan, L.Y., and You, J.H. (2000). Implementation of a Linear Tabling Mechanism. Practical Aspects of Declarative Languages, Springer.","DOI":"10.1007\/3-540-46584-7_8"},{"key":"ref_34","doi-asserted-by":"crossref","unstructured":"De Guzm\u00e1n, P.C., Carro, M., and Hermenegildo, M.V. (2009, January 19\u201320). Towards a Complete Scheme for Tabled Execution Based on Program Transformation. Proceedings of the International Symposium on Practical Aspects of Declarative Languages, Savannah, GA, USA.","DOI":"10.1007\/978-3-540-92995-6_16"},{"key":"ref_35","unstructured":"Rocha, R., Silva, F., and Santos Costa, V. (2000, January 19\u201321). YapTab: A Tabling Engine Designed to Support Parallelism. Proceedings of the Conference on Tabulation in Parsing and Deduction, Vigo, Spain."},{"key":"ref_36","unstructured":"Moura, P. (2008). ISO\/IEC DTR 13211-5:2007 Prolog Multi-Threading Predicates, Universidade da Beira Interior."},{"key":"ref_37","doi-asserted-by":"crossref","first-page":"427","DOI":"10.1017\/S1471068412000117","article-title":"Towards Multi-Threaded Local Tabling Using a Common Table Space","volume":"12","author":"Areias","year":"2012","journal-title":"J. Theory Pract. Log. Program."},{"key":"ref_38","doi-asserted-by":"crossref","first-page":"417","DOI":"10.1016\/j.jss.2016.06.060","article-title":"On Scaling Dynamic Programming Problems with a Multithreaded Tabling System","volume":"125","author":"Areias","year":"2017","journal-title":"J. Syst. Softw."}],"container-title":["Information"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.mdpi.com\/2078-2489\/8\/4\/129\/pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,10,11]],"date-time":"2025-10-11T18:47:47Z","timestamp":1760208467000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.mdpi.com\/2078-2489\/8\/4\/129"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,10,19]]},"references-count":38,"journal-issue":{"issue":"4","published-online":{"date-parts":[[2017,12]]}},"alternative-id":["info8040129"],"URL":"https:\/\/doi.org\/10.3390\/info8040129","relation":{},"ISSN":["2078-2489"],"issn-type":[{"type":"electronic","value":"2078-2489"}],"subject":[],"published":{"date-parts":[[2017,10,19]]}}}