SWI-Prolog 5.10.5 Reference Manual
Jan Wielemaker Department of Computer Science VU University Amsterdam De Boelelaan 1081a, 1081 HV Amsterdam

Human-Computer Studies (HCS, formerly SWI) Kruislaan 419, 1098 VA Amsterdam The Netherlands

Abstract
SWI-Prolog started life in 1986 as a Prolog in the Edinburgh tradition. Its development has been guided from the very beginning by the desire to build large scale applications in Prolog. For this reason it stresses connectivity to the C-language, few system limits, comprehensive memory management, modules, multi-threading, coroutining, constraints and a fast and interactive development environment. Portable libraries for graphics, databases, networking, web-services, XML, RDF and many more complete the system.

SWI-Prolog is compliant to part one of ISO standard Prolog. In addition it provides functionality compatible with Quintus, SICStus, LPA, Ciao and many more.

Since version 5 the system and all bundled extensions are distributed under the Lesser General Public License (LGPL) and the system enjoys attention from a large community of academic researchers, students and commercial users.

This document gives an overview of the features, system limits and built-in predicates.

### About this document

This manual is written and maintained using LaTeX . The LaTeX source is included in the source distribution of SWI-Prolog. The manual is converted into HTML using a converter distributed with the SWI-Prolog sources. From the same source we generate the plain-text version and index used by the online help system (located in the file `MANUAL` in the library directory) as well as the PDF version. Sources, binaries and documentation can be downloaded from the SWI-Prolog download page.

The SWI-Prolog project home page is located here

Copyright © 1990-- 2011 , University of Amsterdam