This used to be Jan Wielemaker's publication list about SWI-Prolog. The time has come to add publications by others that target SWI-Prolog. Publications on this page should either explain some part of SWI-Prolog or explain how the system can be/has been used effectively.
If you use SWI-Prolog and write academic publications, please consider citing one of these papers. The [[star.gif]]-ed TPLP paper |SWI-Prolog| is the preferred `general purpose reference' [[BibTeX][swipub:tplp-swipl.bib]].
* [Boolean constraints in SWI-Prolog: A comprehensive system
description](https://www.metalevel.at/boolean.pdf) Markus Triska,
Science of Computer Programming, Volume 164, 2018
[BibTeX](https://www.metalevel.at/boolean.bib)
* [Lock-free atom garbage collection for multithreaded
Prolog](http://dx.doi.org/10.1017/S1471068416000272) Jan Wielemaker
and Keri Harris
[BibTeX](http://dblp.uni-trier.de/rec/bib2/journals/tplp/WielemakerH16.bib)
* [The Boolean Constraint Solver of
SWI-Prolog](https://www.metalevel.at/swiclpb.pdf) Markus Triska,
FLOPS-2016 [BibTeX](https://www.metalevel.at/swiclpb.bib)
* [SWISH: SWI-Prolog for
Sharing](https://research.vu.nl/en/publications/swish-swi-prolog-for-sharing)
Jan Wielemaker, Torbjörn Lager and Fabrizio Riguzzi, IULP-2015,
[BibTeX](http://dblp.uni-trier.de/rec/bibtex/journals/corr/WielemakerLR15)
* [Pengines: Web Logic Programming Made
Easy](http://dx.doi.org/10.1017/S1471068414000192) Torbjörn Lager
and Jan Wielemaker, ICLP-2014
[[BibTeX][<swipub:ICLP15-Pengines.bib>]]
* [SWI-Prolog version 7 extensions](<swipub:swi7.pdf>) Jan
Wielemaker, CICLOPS/WLPE-2014 [[BibTeX][<swipub:swi7.bib>]]
* [Correctness Considerations in CLP(FD)
Systems](https://www.metalevel.at/drt.pdf) Markus Triska. PhD
thesis explaining CLP(FD) as bundled with SWI-Prolog.
[BibTeX](https://www.metalevel.at/drt.bib)
* [Why It's Nice to be Quoted: Quasiquoting for Prolog](<swipub:quasiquoting.pdf>) Jan Wielemaker and Michael Hendricks, accepted for WLPE-2013 [[BibTeX][<swipub:quasiq.bib>]]
* [Extending the logical update view with transaction support](http://arxiv.org/abs/1301.7669) Jan Wielemaker CICLOPS-12 [[BibTeX][<swipub:transactions.bib>]]
* [[Syntactic integration of external languages in Prolog][<swipub:multilang.pdf>]]
Jan Wielemaker and Nicos Angelopoulos WLPE-12. [[BibTeX][<swipub:multilang.bib>]]
* [Delimited Continuations for Prolog](<swipub:iclp2013.pdf>)
Tom Schrijvers, Bart Demoen, Benoit Desouter and Jan Wielemaker.
[BibTeX](<swipub:iclp2013.bib>)
* [Porting and refactoring Prolog programs: the PROSYN case study](<swipub:prosyn.pdf>)
Edison Mera and Jan Wielemaker, ICLP-2023. [BibTeX](<swipub:prosyn.bib>)
* [The Finite Domain Constraint Solver of
SWI-Prolog](https://www.metalevel.at/swiclpfd.pdf) Markus Triska,
FLOPS-2012 [BibTeX](https://www.metalevel.at/swiclpfd.bib)
* [[Portability of Prolog programs: theory and case-studies][http://dx.doi.org/10.1007/978-3-642-18378-2_8]]
Jan Wielemaker and Vitor Santos Costa. PADL-11. Updated version of
CICLOPS-10 paper with the same title. [[BibTeX][<swipub:padl-porting.bib>]]
* [[SWI-Prolog][http://dx.doi.org/10.1017/S1471068411000494]] Jan Wielemaker,
Tom Schrijvers, Markus Triska, Torbjörn Lager. TPLP.
[[BibTeX][<swipub:tplp-swipl.bib>]] [[star.gif]]
* [[Coding Guidelines for Prolog][http://arxiv.org/abs/0911.2899]]
Michael A. Covington, Roberto Bagnara, Richard A. O'Keefe, Jan
Wielemaker, Simon Price. Submitted to TPLP.
[[BibTeX][<swipub:coding-tplp.bib>]]
* [[Portability of Prolog programs: theory and case-studies][<swipub:porting.pdf>]]
Jan Wielemaker and Vitor Santos Costa. CICLOPS-10 [[BibTeX][<swipub:porting.bib>]]
* [[Precise Garbage Collection in Prolog][<swipub:lifegc.pdf>]]
Jan Wielemaker and Ulrich Neumerkel CICLOPS-08. [[BibTeX][<swipub:lifegc.bib>]]
* [[Thesaurus-Based Search in Large Heterogeneous Collections][<swipub:iswc-08.pdf>]],
ISWC-08, [[BibTeX][<swipub:iswc-08.bib>]]
* [[Using Prolog as the fundament for applications on the semantic web][<swipub:mn9c.pdf>]],
ALPSWS-07, [[BibTeX][<swipub:alpsws-07.bib>]]
* [[PlDoc: Wiki style Literate Programming for Prolog][<swipub:pldoc.pdf>]],
WLPE-07, [[BibTeX][<swipub:wlpe-07.bib>]]
* [[SWI-Prolog and the Web][<swipub:TPLP-plweb.pdf>]],
TPLP [[BibTeX][<swipub:TPLP-plweb.bib>]]
* [[Using triples for implementation: the Triple20 ontology-manipulation tool][<swipub:ISWC05-Triple20.pdf>]],
ISWC-05 [[BibTeX][<swipub:ISWC05-Triple20.bib>]]
* [[An optimised Semantic Web query language implementation in Prolog][<swipub:ICLP05-SeRQL.pdf>]],
ICLP-05 [[BibTeX][<swipub:ICLP05-SeRQL.bib>]]
* [[Constraint Handling Rules for SWI-Prolog][<swipub:chr_for_swi.pdf>]],
Tom Schrijvers, Jan Wielemaker and Bart Demoen, Workshop on (Constraint) Logic Programming, Ulm, February, 2005
* [[Native Preemptive Threads in SWI-Prolog][<swipub:iclp-03.pdf>]],
ICLP-03, [[BibTeX][<swipub:iclp-03.bib>]]
* [[An Overview of the SWI-Prolog Programming Environment][<swipub:wlpe-03.pdf>]],
WLPE-03 [[BibTeX][<swipub:wlpe-03.bib>]]
* [[Prolog-based Infrastructure for RDF: Scalability and Performance][<swipub:iswc-03.pdf>]],
ISWC-03 [[BibTeX][<swipub:iswc-03.bib>]]
* [[An Architecture for Making Object-Oriented Systems Available from Prolog][<swipub:wlpe-02.pdf>]],
WLPE-02 [[BibTeX][<swipub:wlpe-02.bib>]]
Jan Wielemaker's PhD thesis, titled [[Logic programming for knowledge-intensive interactive applications][swipub:jan-phd.pdf]] (4.4MB) contains revised versions of most of the above papers supplemented with a broader overview of applying Prolog for the development of large-scale applications. [[BibTeX][swipub:jan-phd.bib]]
---++ Invited Talks
* _|Enabling serendipitous search on the Web of Data using Prolog|_
Invited tutorial, ICPL-09, Pasadena. Discusses using Prolog for
RDF handling and using Prolog as a webserver.
[[OpenOffice][<swipub:ICLP09-Tutorial.odp>]]
[[PowerPoint][<swipub:ICLP09-Tutorial.ppt>]]
* _|25 years of SWI-Prolog|_
Special event, ICPL-12, Budapest.
Provides a historical overview of SWI-Prolog, the state of Prolog
in general and models for sharing interfaces, design and code
within the Prolog community.
[[OpenOffice][<swipub:ICLP12-SWI25.odp>]]
[[PowerPoint][<swipub:ICLP12-SWI25.ppt>]]
* [LTC 2017, Poznań, Poland](http://ltc.amu.edu.pl/) Invited talk and tutorials in memorial of [Alain
Colmerauer](https://en.wikipedia.org/wiki/Alain_Colmerauer)
- [[A second life for Prolog][<swipub:LTC-2017-invited.pdf>]] (invited talk)
- Tutorials
- [[Declarative programming][<swipub:LTC-2017-tutorial-1.pdf>]]
- [[Algorithm = Logic + Control][<swipub:LTC-2017-tutorial-2.pdf>]]
- [[Prolog as unifying framework][<swipub:LTC-2017-tutorial-3.pdf>]]
SWI-Prolog 0.0.0 was based on [[A Portable Prolog Compiler][swipub:A_Portable_Prolog_Compiler.pdf]] by D.L. Bowen, L.H. Byrd and W.F. Clocksin.
- Tartarus: A Multi-agent Platform for Integrating Cyber-Physical Systems and Robots, Tushar Semwal, Manoj Bode, Vivek Singh, Shashi Shekhar Jha, and Shivashankar B. Nair. AIR-2015. Video, Github
- TARTARUS: A Multi-Agent Platform for Bridging the Gap between Cyber and Physical Systems (Demonstration), Tushar Semwal, Nikhil S., Shashi Shekhar Jha, and Shivashankar B. Nair. AAMAS-2016.
- AgPi: Agents on Raspberry Pi, Tushar Semwal, and Shivashankar B. Nair. MDPI Electronics 2016.
- On Ordering Multi-Robot Task Executions within a Cyber Physical System, Tushar Semwal, Shashi Shekhar Jha, Shivashankar B. Nair. ACM TAAS 2017.