Hostname: page-component-77c89778f8-sh8wx Total loading time: 0 Render date: 2024-07-22T01:28:04.576Z Has data issue: false hasContentIssue false

SWI-Prolog

Published online by Cambridge University Press:  12 September 2011

JAN WIELEMAKER
Affiliation:
Faculty of Sciences, Computer Science, VU University Amsterdam, De Boelelaan 1081a, 1081 HV Amsterdam, The Netherlands (e-mail: [email protected])
TOM SCHRIJVERS
Affiliation:
Department of Applied Mathematics and Computer Science, Ghent University, Krijgslaan 281 S9, 9000 Gent, Belgium (e-mail: [email protected])
MARKUS TRISKA
Affiliation:
Institut für Informationssysteme 184/2, Technische Universität Wien, Abteilung für Datenbanken und Artificial Intelligence, Favoritenstraße 9, A-1040 Wien, Austria (e-mail: [email protected])
TORBJÖRN LAGER
Affiliation:
Department of Philosophy, Linguistics and Theory of Science, University of Gothenburg, Box 200, S-40530 Göteborg (e-mail: [email protected])

Abstract

SWI-Prolog is neither a commercial Prolog system nor a purely academic enterprise, but increasingly a community project. The core system has been shaped to its current form while being used as a tool for building research prototypes, primarily for knowledge-intensive and interactive systems. Community contributions have added several interfaces and the constraint (CLP) libraries. Commercial involvement has created the initial garbage collector, added several interfaces and two development tools: PlDoc (a literate programming documentation system) and PlUnit (a unit testing environment).

In this article, we present SWI-Prolog as an integrating tool, supporting a wide range of ideas developed in the Prolog community and acting as glue between foreign resources. This article itself is the glue between technical articles on SWI-Prolog, providing context and experience in applying them over a longer period.

Type
Regular Papers
Copyright
Copyright © Cambridge University Press 2011

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

References

Ambler, S. W. 2002. Mapping objects to relational databases: What you need to know and why IBM developerWorks. Accessed 16 August 2011. URL: http://www.ibm.com/developerworks/library/ws-mapping-to-rdb/.Google Scholar
Anjewierden, A., Wielemaker, J. and Toussaint, C. 1990. Shelley – computer aided knowledge engineering. In Current Trends in Knowledge Acquisition, Wielinga, B., Boose, J., Gaines, B., Schreiber, G. and van Someren, M., Eds. IOS Press, Amsterdam, 4159.Google Scholar
Appleby, K., Carlsson, M., Haridi, S. and Sahlin, D. 1988. Garbage collection for Prolog based on WAM. Communications of the ACM 31 (6), 719741.CrossRefGoogle Scholar
Bellifemine, F., Poggi, A. and Rimassa, G. 2001. Developing multi-agent systems with a FIPA-compliant agent framework. Softw: Practice and Experience 31 (2), 103128.Google Scholar
Bendisposto, J., Endrijautzki, I., Leuschel, M. and Schneider, D. 2009. A semantics-aware editing environment for Prolog in Eclipse. CoRR. Accessed 17 August 2011. URL: http://arxiv.org/abs/0903.2252.Google Scholar
Bowen, D. L., Byrd, L. M. and Clocksin, W. 1983. A portable Prolog compiler. In Proc. Logic Programming Workshop '83, Pereira, L. M., Ed. Universidade Nova de Lisboa, Lisbon, Portugal.Google Scholar
Calejo, M. 2004. Interprolog: Towards a declarative embedding of logic programming in Java. In Proc. JELIA, Alferes, J. J. and Leite, J. A., Eds. Lecture Notes in Computer Science, vol. 3229. Springer-Verlag, Berlin, Germnay, 714717.Google Scholar
da Silva, A. F. and Costa, V. S. 2007. Design, implementation, and evaluation of a dynamic compilation framework for the YAP system. In Proc. ICLP, Dahl, V. and Niemelä, I., Eds. Lecture Notes in Computer Science, vol. 4670. Springer-Verlag, Berlin, Germany, 410424.Google Scholar
De Koninck, L., Schrijvers, T. and Demoen, B. 2006. INCLP() – Interval-based nonlinear constraint logic programming over the reals. In WLP '06: Proc. 20th Workshop on Logic Programming, Fink, M., Tompits, H. and Woltran, S., Eds. T.U.Wien, Austria, INFSYS Res. Rep. 1843-06-02. Vienna, Austria, 91100.Google Scholar
Demoen, B. 2002. Dynamic Attributes, Their hProlog Implementation, and a First Evaluation. Rep. CW 350. Department of Computer Science, K.U. Leuven, Leuven, Belgium. October. Accessed 16 August 2011. URL: http://www.cs.kuleuven.ac.be/publicaties/rapporten/cw/CW350.abs.html.Google Scholar
Draxler, C. 1991. Accessing relational and NF 2 databases through database set predicates. In ALPUK91: Proc. 3rd UK Annual Conference on Logic Programming, Edinburgh, UK, Wiggins, G. A., Mellish, C., and Duncan, T., Eds. Workshops in Computing. Springer-Verlag, Berlin, Germany, 156173.Google Scholar
Frühwirth, T. 1998. Theory and practice of constraint handling rules. Journal of Logic Programming, Special Issue on Constraint Logic Programming 37 (1–3), 95138.CrossRefGoogle Scholar
Graham, S. L., Kessler, P. B. and McKusick, M. K. 1982. gprof: A call graph execution profiler. In Proc. SIGPLAN Symposium on Compiler Construction. ACM, New York, USA, 120126. Accessed 17 August 2011. URL: http://doi.acm.org/10.1145/800230.806987.Google Scholar
Holzbaur, C. 1992. Metastructures vs. Attributed Variables in the Context of Extensible Unification. Tech. Rep. TR-92-23, Austrian Research Institute for Artificial Intelligence, Vienna, Austria.Google Scholar
Holzbaur, C. and Frühwirth, T. 2000. A Prolog constraint handling ules compiler and runtime system. Journal of Applied Artificial Intelligence, 14 (4), 369388.CrossRefGoogle Scholar
Lassila, O. and Swick, R. R. 1999. Resource description framework (RDF) model and specification. Recommendation, W3C Consortium. 22 February. URL: http://www.w3.org/TR/1999/REC-rdf-syntax-19990222.Google Scholar
Neumerkel, U. 1993. The Binary WAM, a Simplified Prolog Engine. Tech. Rep., Technische Universität Wien, Wien, Germany. URL: http://www.complang.tuwien.ac.at/ulrich/papers/PDF/binwam-nov93.pdf.Google Scholar
Oren, E., Delbru, R., Gerke, S., Haller, A. and Decker, S. 2007. Activerdf: Object-oriented semantic web programming. In WWW '07: Proc. 16th International Conference on World Wide Web. ACM, New York, NY, USA, 817824.CrossRefGoogle Scholar
Pereira, F. C. N. and Shieber, S. M. 1987. Prolog and Natural-Language Analysis. Number 10 in CSLI Lecture Notes. Center for the Study of Language and Information, Stanford, CA. Chicago University Press, Chicago, IL.Google Scholar
Raymond, E. S. 1999. Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary. O'Reilly Media, Sebastopol, CA.CrossRefGoogle Scholar
Schrijvers, T. 2005. Analyses, Optimizations and Extensions of Constraint Handling Rules. Ph.D. thesis, K.U. Leuven, Leuven, Belgium.CrossRefGoogle Scholar
Schrijvers, T., Costa, V. S., Wielemaker, J. and Demoen, B. 2008. Towards typed Prolog. In Proc. ICLP, de la Banda, M. G. and Pontelli, E., Eds. Lecture Notes in Computer Science, vol. 5366. Springer-Verlag, Berlin, Germany, 693697.Google Scholar
Schrijvers, T. and Demoen, B. 2004. The K.U.Leuven CHR system: Implementation and application. In Proc. CHR '04, Selected Contributions, Frühwirth, T. and Meister, M., Eds. Universität Ulm, Fakultät für Informatik, Ulm, Germany, 812.Google Scholar
Schrijvers, T. and Warren, D. S. 2004. Constraint handling rules and tabled execution. In Proc. ICLP '04, Saint-Malo, France, Demoen, B. and Lifschitz, V., Eds. Lecture Notes in Computer Science, vol. 3132. Springer-Verlag, Berlin, 120136.Google Scholar
Schrijvers, T., Wielemaker, J. and Demoen, B. 2005. Poster: Constraint handling rules for SWI-Prolog. In W(C)LP '05: Proc. 19th Workshop on (Constraint) Logic Programming, Wolf, A., Frühwirth, T., and Meister, M., Eds. Ulmer Informatik-Berichte, vol. 2005-01. Universität Ulm, Ulm, Germany.Google Scholar
Szabó, P. and Szeredi, P. 2006. Improving the ISO Prolog standard by analyzing compliance test results. In Proc. ICLP, Etalle, S. and Truszczynski, M., Eds. Lecture Notes in Computer Science, vol. 4079. Springer-Verlag, Berlin, Germany, 257269.Google Scholar
Tarau, P. 2008. Logic engines as interactors. CoRR. Accessed 17 August 2011. URL: http://arxiv.org/abs/0808.0556.Google Scholar
Triska, M., Neumerkel, U. and Wielemaker, J. 2009. Better termination for Prolog with constraints. CoRR. WLPE 2009, Udine, Italy. Accessed 17 August 2011. URL: http://arxiv.org/abs/0903.2168.Google Scholar
Wallace, M. and Schimpf, J. 1999. Eclipse: Declarative specification and scaleable implementation. In Proc. PADL, Gupta, G., Ed. Lecture Notes in Computer Science, vol. 1551. Springer, Berlin, Germany, 365366.Google Scholar
Wielemaker, J. 2003. Native preemptive threads in SWI-Prolog. In Practical Aspects of Declarative Languages, Palamidessi, C., Ed. Lecture Notes in Computer Science, vol. 1551. Springer-Verlag, Berlin, Germany, 331345.Google Scholar
Wielemaker, J. and Anjewierden, A. 2002. An architecture for making object-oriented systems available from Prolog. In Proc. WLPE. 97–110. Accessed 17 August 2011. URL: http://lanl.arxiv.org/abs/cs.SE/0207053.Google Scholar
Wielemaker, J. and Anjewierden, A. 2007. PlDoc: Wiki style literate programming for Prolog. In Proc. 17th Workshop on Logic-Based Methods in Programming Environments, Hill, P. and Vanhoof, W., Eds. 16–30. Accessed 17 August 2011. URL: http://arxiv.org/abs/0712.3116v1.Google Scholar
Wielemaker, J., Hildebrand, M., van Ossenbruggen, J. and Schreiber, G. 2008. Thesaurus-based search in large heterogeneous collections. In Proc. International Semantic Web Conference, Sheth, A. P., Staab, S., Dean, M., Paolucci, M., Maynard, D., Finin, T. W., and Thirunarayan, K., Eds. Lecture Notes in Computer Science, vol. 5318. Springer-Verlag, Berlin, Germany, 695708.Google Scholar
Wielemaker, J., Huang, Z. and van der Meij, L. 2008. SWI-Prolog and the web. Theory and Practice of Logic Programming 8 (3), 363392.CrossRefGoogle Scholar
Wielemaker, J. and Neumerkel, U. 2008. Precise garbage collection in Prolog. In Proc. CICLOPS '08. Linares, Manuel Carro and Demoen, Bart, Eds. Udine, Italy. Accessed 12 and 13 December 2008. URL: http://www.clip.dia.fi.upm.es/Conferences/CICLOPS-2008/.Google Scholar
Wielemaker, J., Schreiber, G. and Wielinga, B. 2003. Prolog-based infrastructure for RDF: Performance and scalability. In Semantic Web – Proc. ISWC '03, Sanibel Island, FL, Fensel, D., Sycara, K., and Mylopoulos, J., Eds. Lecture Notes in Computer Science, vol. 2870. Springer-Verlag, Berlin, Germany, 644658.Google Scholar