SWI-Prolog 
has a mechanism for incorporating community extensions called packs. 
See the
pack landing 
page for details and available packs. This chapter discusses how 
packages can be attached to the current Prolog process, how they can be 
installed as well as developing packages.
Packs are installed as self-containing directories that provide 
additional Prolog libraries and foreign modules, compiled 
native code plugins. In addition, a pack can define apps, 
command line tools that can be started using swipl app [args] 
(see section 
2.11.1.5). Packs are searched as sub-directories of the Prolog 
search path pack. Initially, this search path is the user's App 
data, followed by the system's App data. The searched 
directories can be found using
?- absolute_file_name(pack(.), Path, [solutions(all)]).
The search path can be managed using the environment variable
SWIPL_PACK_PATH, the -p command line 
option or using attach_packs/2.
Section Index