Using SWISH to realize interactive web-based tutorials for logic-based languages. (English) Zbl 1486.68029

Summary: Programming environments have evolved from purely text based to using graphical user interfaces, and now we see a move toward web-based interfaces, such as Jupyter. Web-based interfaces allow for the creation of interactive documents that consist of text and programs, as well as their output. The output can be rendered using web technology as, for example, text, tables, charts, or graphs. This approach is particularly suitable for capturing data analysis workflows and creating interactive educational material. This article describes SWISH, a web front-end for Prolog that consists of a web server implemented in SWI-Prolog and a client web application written in JavaScript. SWISH provides a web server where multiple users can manipulate and run the same material, and it can be adapted to support Prolog extensions. In this article we describe the architecture of SWISH, and describe two case studies of extensions of Prolog, namely Probabilistic Logic Programming and Logic Production System, which have used SWISH to provide tutorial sites.


68N17 Logic programming
68U35 Computing methodologies for information systems (hypertext navigation, interfaces, decision support, etc.)
Full Text: DOI arXiv


[1] Alberti, M., Bellodi, E., Cota, G., Riguzzi, F. and Zese, R.2017. cplint on SWISH: Probabilistic logical inference with a web browser. Intelligenza Artificiale11, 1, 47-64. doi:10.3233/IA-170106
[2] Bellodi, E. and Riguzzi, F.2013. Expectation maximization over binary decision diagrams for probabilistic logic programs. Intelligent Data Analysis17, 2, 343-363. doi:10.3233/IDA-130582
[3] Bellodi, E. and Riguzzi, F.2015. Structure learning of probabilistic logic programs by searching the clause space. Theory and Practice of Logic Programming15, 2, 169-212. doi:10.1017/S1471068413000689 S1471068413000689 · Zbl 1379.68269
[4] Blackburn, P., Bos, J. and Striegnitz, K.2006. Learn Prolog Now!, vol. 7. College Publications, London, UK. · Zbl 1192.68117
[5] Byrd, L.1980. Understanding the control flow of Prolog programs. In Logic Programming Workshop. Department of Artificial Intelligence, University of Edinburgh, Debrecen, Hungary.
[6] De Raedt, L. and Kimmig, A.2015. Probabilistic (logic) programming concepts. Machine Learning100, 1, 5-47. doi:10.1007/s10994-015-5494-z · Zbl 1346.68050
[7] De Raedt, L., Kimmig, A. and Toivonen, H.2007. ProbLog: A probabilistic Prolog and its application in link discovery. In 20th International Joint Conference on Artificial Intelligence, Hyderabad, India (IJCAI-07), Veloso, M. M., Ed., vol. 7. AAAI Press, Palo Alto, California USA, 2462-2467.
[8] Denecker, M.2000. Extending classical logic with inductive definitions. In Computational logicCL 2000. Springer, Cham, 703-717. doi:10.1007/3-540-44957-4_47 · Zbl 0983.03024
[9] Di Mauro, N., Bellodi, E. and Riguzzi, F.2015. Bandit-based Monte-Carlo structure learning of probabilistic logic programs. Machine Learning100, 1, 127-156. doi:10.1007/s10994-015-5510-3 · Zbl 1346.68051
[10] Dries, A., Kimmig, A., Meert, W., Renkens, J., Van Den Broeck, G., Vlasselaer, J. and De Raedt, L.2015. Problog2: Probabilistic logic programming. In Machine Learning and Knowledge Discovery in Databases: European Conference, ECML PKDD 2015, Porto, Portugal, 7-11 Sept. 2015, Proceedings, Part III, Bifet, A., May, M., Zadrozny, B., Gavalda, R., Pedreschi, D., Bonchi, F., Cardoso, J. and Spiliopoulou, M., Eds. Springer International Publishing, Cham, 312-315. doi:10.1007/978-3-319-23461-8_37
[11] Fierens, D., Den Broeck, G. V., Renkens, J., Shterionov, D. S., Gutmann, B., Thon, I., Janssens, G. and De Raedt, L.2015. Inference and learning in probabilistic logic programs using weighted Boolean formulas. Theory and Practice of Logic Programming15, 3, 358-401. doi:10.1017/S1471068414000076 S1471068414000076 · Zbl 1379.68062
[12] Flach, P., Simply Logical: Intelligent Reasoning by Example, (1994), Wiley: Wiley, Chichester, UK · Zbl 0817.68049
[13] Gandrud, C., Reproducible Research with R and R Studio, (2013), CRC Press: CRC Press, Boca Raton, FL
[14] Knuth, D. E.1984. Literate programming. The Computer Journal 27, 2, 97-111. doi:10.1093/comjnl/27.2.97 · Zbl 0533.68005
[15] Kowalski, R. and Sadri, F.2015. Reactive computing as model generation. New Generation Computing33, 1, 33-67. doi:10.1007/s00354-015-0103-z · Zbl 1333.68108
[16] Kowalski, R. and Sadri, F.2016. Programming in logic without logic programming. Theory and Practice of Logic Programming16, 3, 269-295. doi:10.1017/S1471068416000041 S1471068416000041 · Zbl 1379.68095
[17] Kowalski, R. and Sergot, M.1986. A logic-based calculus of events. New Generation Computing4, 1, 67-95. doi:10.1007/BF03037383 · Zbl 1356.68221
[18] Lager, T. and Wielemaker, J.2014. Pengines: Web logic programming made easy. TPLP14, 4-5, 539-552. · Zbl 1307.68018
[19] Nguembang Fadja, A. and Riguzzi, F.2017. Probabilistic logic programming in action. In Towards Integrative Machine Learning and Knowledge Extraction, Holzinger, A., Goebel, R., Ferri, M. and Palade, V., Eds., vol. 10344. Springer, Heidelberg, Germany. · Zbl 07073621
[20] Riguzzi, F., MCINTYRE: A Monte Carlo system for probabilistic logic programming, Fundamenta Informaticae, 124, 4, 521-541, (2013)
[21] Riguzzi, F., Bellodi, E., Lamma, E., Zese, R. and Cota, G.2016. Probabilistic logic programming on the web. Software: Practice and Experience46, 10, 1381-1396. · Zbl 1347.68320
[22] Riguzzi, F. and Swift, T.2013. Well-definedness and efficient inference for probabilistic logic programming under the distribution semantics. Theory Pract. Log. Program. 13, Special Issue 02 - 25th Annual GULP Conference (March), Cambridge University Press, 279-302. · Zbl 1267.68084
[23] Rossant, C., Learning IPython for Interactive Computing and Data Visualization, (2013), Packt Publishing Ltd: Packt Publishing Ltd, Birmingham, UK
[24] Sato, T.1995. A statistical learning method for logic programs with distribution semantics. In 12th International Conference on Logic Programming, Sterling, L., Ed. MIT Press, Cambridge, MA, 715-729.
[25] Sergot, M. J., Sadri, F., Kowalski, R. A., Kriwaczek, F., Hammond, P. and Cory, H. T.1986. The British Nationality Act as a logic program. Communications of the ACM29, 5, 370-386. doi:10.1145/5689.5920
[26] Srinivasan, A.2007. Aleph. http://www.cs.ox.ac.uk/activities/machlearn/Aleph/aleph.html.
[27] Srinivasan, A., Muggleton, S., Sternberg, M. J. E. and King, R. D.1996. Theories for mutagenicity: A study in first-order and feature-based induction. Artificial Intelligence85, 1-2, 277-299.
[28] Vennekens, J., Verbaeten, S. and Bruynooghe, M.2004. Logic programs with annotated disjunctions. In Logic Programming: 20th International Conference, ICLP 2004, Saint-Malo, France, 6-10 Sept. 2004. Proceedings, Demoen, B. and Lifschitz, V., Eds. LNCS, vol. 3132. Springer, Berlin, Heidelberg, Germany, 431-445. · Zbl 1104.68391
[29] Wielemaker, J. and Anjewierden, A.2007. PlDoc: Wiki style literate programming for Prolog. In Proceedings of the 17th Workshop on Logic-Based Methods in Programming Environments, Hill, P. and Vanhoof, W., Eds. Cornell University Library, Ithaca, NY, 16-30.
[30] Wielemaker, J., Huang, Z. and Van Der Meij, L.2008. SWI-prolog and the web. TPLP8, 3, 363-392. · Zbl 1139.68012
[31] Worlfram, S.2016. How to teach computational thinking. http://blog.stephenwolfram.com/2016/09/how-to-teach-computational-thinking/.
This reference list is based on information provided by the publisher or from digital mathematics libraries. Its items are heuristically matched to zbMATH identifiers and may contain data conversion errors. It attempts to reflect the references listed in the original paper as accurately as possible without claiming the completeness or perfect precision of the matching.