- Make SWI-Prolog and its libraries `as free as possible'.
- Allow for easy integration of contributions. See section
- Free software can build on SWI-Prolog without limitations.
- Non-free (open or proprietary) software can be produced using SWI-Prolog, although contributed pure GPL-ed components cannot be used.
To achieve this, different parts of the system have different licenses. SWI-Prolog programs consist of a mixture of `native' code (source compiled to machine instructions) and `virtual machine' code (Prolog source compiled to SWI-Prolog virtual machine instructions, covering both compiled SWI-Prolog libraries and your compiled application).
For maximal coherence between free licenses, we start with the two prime licenses from the Free Software Foundation, the GNU General Public License (GPL) and the Lesser GNU General Public License (LGPL), after which we add a proven (used by the GNU C compiler runtime library as well as the GNU ClassPath project) exception to deal with the specific nature of compiled virtual machine code in a saved state.