This document provides an overview of SWI-Prolog, a comprehensive and portable implementation of the Prolog programming language. It aims to be a robust and scalable implementation supporting a wide range of applications, with extensive support for interfaces to other languages, databases, graphics and networking. The document covers topics like getting started with SWI-Prolog, developing Prolog projects, the integrated development environment, built-in predicates, and system limits.