• Stars
    star
    955
  • Rank 47,869 (Top 1.0 %)
  • Language
    C
  • License
    Other
  • Created over 10 years ago
  • Updated 2 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

SWI-Prolog Main development repository

CI

SWI-Prolog: A comprehensive Prolog implementation

SWI-Prolog is an open source (BSD-2) implementation of the Prolog language with many extensions. It is implemented in C (version 11) and Prolog and is available for many platforms (Linux, practically any POSIX like system, MacOS, Windows). All CPUs supported by Debian Linux are supported. A prototype running in your browser based on WASM (Web Assembly) is available.

(SWI-)Prolog is a versatile language. It is being used for business rule validation, natural language processing, software verification, software refactoring, network configuration, security, robotics, reasoning in legal and medical domains, graph processing, machine learning (ILP, PLP), linked data (RDF), mathematical proofs, and much more.

If you are interested in commercial assistence to make SWI-Prolog work in your organization, please contact SWI-Prolog Solutions b.v..

Forking, cloning and submitting patches

This repository uses many Git submodules. This causes the common issue that fork and clone doesn't work. Instead, clone from https://github.com/SWI-Prolog/swipl-devel.git and then associate your clone with your fork (replace me with your github user name).

git clone https://github.com/SWI-Prolog/swipl-devel.git
cd swipl-devel
git submodule update --init
git remote add myfork [email protected]:me/swipl-devel.git

See How to submit a patch for details.

See also the discussion at Being friendly to quick contributions

Building

See CMAKE.md and Build SWI-Prolog from source

Web home

Please find the up-to-date information on SWI-Prolog at https://www.swi-prolog.org.

Trying SWI-Prolog online

An online version of SWI-Prolog is provided by SWISH. Note that this version is subject to sandbox restrictions and does not provide the features most valued in SWI-Prolog such as its rich set of interfaces, multi-threading, modules, etc.

Alternatively, there is a WASM (Web Assembly) version available at http://dev.swi-prolog.org/wasm/shell. This version has no sandbox restrictions. The WASM build allows interaction with the browser's DOM, so it allows for interactive Prolog applications running inside the browser. It is otherwise rather limited though.

Forum/mailing list

Our forum is hosted at a Discourse site. The forum provides a mail list interface.

Documentation

Documentation is available from several locations and in several formats.

  • Several tutorials can be accessed from the Tutorials menu on the home page

  • A HTML version of the documentation is in the doc/Manual directory of the installation. Note that some packagers put this documentation elsewhere or require it to be installed separately.

    These docs can be searched using ?- apropos("query").. Help on a predicate can be disaplayed using e.g., ?- help(append/3).

  • A PDF version of the documentation is available from the download page

You can also install the website locally to use its complete functionality if you are offline. It is available at https://github.com/SWI-Prolog/plweb.

More Repositories

1

swish

SWI-Prolog for SHaring: a SWI-Prolog web IDE
Prolog
495
star
2

swipl

SWI-Prolog stable releases
C
215
star
3

swipl-wasm

Run SWI-Prolog in your browser using WebAssemply
HTML
74
star
4

pengines

Pengine and Prolog scratchpad
HTML
56
star
5

packages-jpl

JPL: The Prolog <-> Java interface
Java
53
star
6

packages-swipy

Python interface for SWI-Prolog
C
38
star
7

npm-swipl-wasm

SWI-Prolog WebAssembly build as a NPM package
JavaScript
35
star
8

packages-cpp

The SWI-Prolog C++ interface
C++
29
star
9

packages-semweb

The SWI-Prolog RDF store
Prolog
28
star
10

contrib-swiplcs

Interface from C# to SWI-Prolog
C#
24
star
11

packages-chr

CHR: Leuven Constraint Handling Rules
Prolog
23
star
12

tabled-prolog-book

Programming in Tabled Prolog by David S Warren
TeX
22
star
13

packages-http

The SWI-Prolog HTTP server and client libraries
Prolog
22
star
14

roadmap

Discuss future development
21
star
15

sCASP

Top-down interpreter for ASP programs with Constraints
Prolog
21
star
16

packages-mqi

Machine Query Interface
Python
16
star
17

plweb

SWI-Prolog web server sources for www.swi-prolog.org
Prolog
15
star
18

packages-xpce

The graphics toolkit for SWI-Prolog
C
15
star
19

bench

Prolog benchmarks (`van Roy' set)
Prolog
14
star
20

docker-swipl

Docker images for SWI-Prolog
Dockerfile
12
star
21

packages-pengines

Pengines: Prolog engines
Prolog
11
star
22

docker-swish

Docker file for SWISH
Shell
10
star
23

packages-swipl-win

Portable Qt-based console for SWI-Prolog by Carlo Capelli
C++
9
star
24

packages-plunit

The SWI-Prolog Unit Testing library
Prolog
9
star
25

packages-sweep

GNU-Emacs interface that embeds Prolog as an Emacs module
Emacs Lisp
9
star
26

packages-clpqr

CLP(Q,R): constraints over rational numbers and floats by Leslie de Koninck
Prolog
8
star
27

rclswi

ROS2 bridge for SWI-Prolog
Prolog
8
star
28

packages-R

SWI-Prolog to R Project for Statistical Computing interface
Prolog
8
star
29

contrib-protobufs

An interface to Google Protocol Buffers (protobuf)
Prolog
7
star
30

packages-inclpr

Constraint solver for nonlinear (polynomial) constraints over reals
Prolog
7
star
31

issues

Dummy repository for issue tracking
7
star
32

packages-nlp

The SWI-Prolog NLP support library (stemming, etc.)
C
7
star
33

packages-clib

Assorted external libraries: processes, sockets, MIME, CGI, etc.
C
7
star
34

webstat

Examine SWI-Prolog resources and data using your browser
JavaScript
6
star
35

packages-odbc

The SWI-Prolog ODBC interface
C
6
star
36

packages-cql

High level database interface
Prolog
6
star
37

packages-regex

Pure Prolog regex implementation
Prolog
6
star
38

packages-table

The SWI-Prolog library for accessing structured files
C
5
star
39

contrib-plfann

SWI-Prolog interface to FANN (http://leenissen.dk/fann/)
C
5
star
40

packages-indent

Reformatter for Prolog source code
Prolog
5
star
41

packages-pldoc

The SWI-Prolog documentation system
Prolog
5
star
42

packages-RDF

The SWI-Prolog RDF/XML parser
Prolog
5
star
43

plweb-examples

4
star
44

misc-emacs

Demo customization for PceEmacs
Prolog
4
star
45

packages-ssl

The SWI-Prolog SSL interface
C
4
star
46

packages-paxos

SWI-Prolog replicating key-value store
Prolog
4
star
47

packages-PDT

Support files for PDT: Prolog Development Tools
C
4
star
48

packages-pcre

SWI-Prolog package for access to Perl Regular Expressions
Prolog
4
star
49

docker-swipl-build-mingw

Docker to cross-compile SWI-Prolog for Windows
Dockerfile
4
star
50

contrib-space

SWI-Prolog spatial indexing package
C++
4
star
51

packages-utf8proc

Provide Unicode normalization and info using utf8proc
C
4
star
52

plweb-www

Submodule of plweb.git that contains the (wiki) web-pages
HTML
4
star
53

packages-sgml

The SWI-Prolog SGML/XML/HTML parser
C
4
star
54

contrib-plosc

Open Sound Control (OSC) for SWI-Prolog
C
3
star
55

packages-windows

Example DLL and windows registry access library
C
3
star
56

contrib-InterProlog

InterProlog, adusted for SWI-Prolog
Java
3
star
57

misc-winlibs

Required libraries for compiling on Windows (binaries)
C++
3
star
58

packages-cppproxy

A network-based SWI-Prolog <-> C++ interface
Prolog
3
star
59

packages-bdb

The SWI-Prolog BerkelyDB interface
C
3
star
60

packages-redis

Redis client library
Prolog
3
star
61

docker-swish-public

Docker spec used to run the public swish instance
Shell
3
star
62

packages-jasmine

The SWI-Prolog interface to the Jasmine OODB
C
3
star
63

SWI-Prolog.github.io

Organization pages
3
star
64

packages-zlib

The SWI-Prolog zlib compressed stream interface
Prolog
3
star
65

clpqr-examples

Examples and test cases for clp(QR)
Prolog
3
star
66

packages-yaml

YAML reader and writer
C
2
star
67

packages-ltx2htm

SWI-Prolog LaTeX to HTML translation for the documentation
Prolog
2
star
68

contrib-tipc

The SWI-Prolog TIPC interface
C
2
star
69

libXpm

XPM image library for xpce
C
2
star
70

dleak

Memory leak debugger
C
2
star
71

packages-prosqlite

Prolog to SQLite interface
Prolog
2
star
72

contrib-minisat

minisat solver by Michael Codish, Vitaly Lagoon, Peter J. Stuckey.
C++
1
star
73

distro-debian

Configuration files for creating a Debian package
Makefile
1
star
74

misc-libXpm

Modified version of libXpm used by XPCE on MS-Windows
C
1
star
75

plweb-blog

Blog posts on SWI-Prolog
1
star
76

misc-macos-build

Setup to make binaries for MacOS
1
star
77

misc-bdwgc

The Boehm-Demers-Weiser garbage collector for SWI-Prolog
C
1
star
78

misc-C-sicstus

Use SWI-Prolog foreign code on SICStus Prolog
C
1
star
79

py-swi-prolog

Build SWI-Prolog as a Python package
Python
1
star
80

packages-archive

Interface to libarchive
C
1
star
81

packages-stomp

STOMP client for message brokers
Prolog
1
star
82

docker-swipl-linux-ci

Docker files for testing builds on various Linux distros and versions
Prolog
1
star