\chapter{Introduction to XSB Packages} \label{packages}
%====================================================

An XSB package is a piece of software that extends XSB functionality
but is not critical to programming in XSB.  Around a dozen packages
are distributed with XSB, ranging from simple meta-interpreters to
complex software systems.  Some packages provide interfaces from XSB
to other software systems, such as Perl, SModels or Web interfaces (as
in the libwww package).  Others, such as the CLP(R) and Flora
packages, extend XSB to different programming paradigms.

Each package is distributed in the {\tt \$XSB\_DIR/packages}
subdirectory, and has two parts: an initialization file, and a
subdirectory in which package source code files and executables are
kept.  For example, the {\tt xsbdoc} package has files {\tt xsbdoc.P},
{\tt xsbdoc.xwam}, and a subdirectory, {\tt xsbdoc}.  If a user
doesn't want to retain {\tt xsbdoc} (or any other package) he or she
may simply remove the initialization files and the associated
subdirectory without affecting the core parts of the XSB system.

Several of the packages are documented in this manual in the various
chapters that follow.  However, many of the packages contain their own
manuals.  For these packages, we provide only a summary of their
functionality in Chapter \ref{sec:otherpackages}.

