.SH 
GENERAL DESCRIPTION
.PP
The Khoros system integrates multiple user interface modes, code
generators, instructional aids, information processing, and data 
visualization to produce a comprehensive image/information processing 
research tool.  This system can easily be tailored to other application
domains because the tools of the system can modify themselves
as well as the system.  This attribute is important in a system that
is designed to be extensible and portable.
.PP
The Khoros infrastructure consists of several layers of interacting
subsystems.  A high-level user interface specification (UIS) combined with 
methods of software development, embedded in a code generation tool 
set, qualify as a user interface development system (UIDS).  An 
interoperable data exchange format and algorithm library contain
the application specific layer.  One of the most powerful
features of the system is its high-level, 
abstract visual language, \fBcantata\fP.
These basic facilities have been used to build a set 
of applications for performing image/signal processing research,
algorithm development, and data visualization.  
.SH 
DOCUMENTATION
.PP
There are several sources of documentation in Khoros.  
On-line documentation is provided via the HELP button that is provided 
within any of the applications with a graphical user interfaces.  If you
wish to print any of this text, you will find it 
in $KHOROS_HOME/doc/program_name but it is also available in
manual form (see below).  
.PP
Unix style man documentation is available via the \fBvman\fP command.
vman provides command searching capabilities with the -k option and
printing capabilities with the -p option.
.PP
User and application programmer documentation 
is available in the $KHOROS_HOME/manual
directory.  Here you will find Volume 1, Khoros User's Manual and
Volume II, Khoros Programmer's Manual,  documentation on the
major X Windows applications, the UIS and PS file formats, the VIFF data
structure, configuration management of the system, \fBghostwriter, 
conductor, preview, composer,\fP and writing new programs in the Khoros
environment.
.SH 
SOFTWARE ARCHITECTURE
.PP
The software development environment revolves around a User 
Interface Specification (UIS) that is used by interpreters and code
generators to create three user interfaces: a command line user interface
supported by the \fIvgparm\fP library, 
a graphical user interface (GUI) supported by the \fIxvforms\fP library, 
and a visual language user interface, \fBcantata\fP.
The rough diagram below describes the inter-relationships between
various components of the system.
.DS L
.nf
\f(CW

              +------------------------------+
              |      preview or composer     |
              +------------------------------+
                             |
                             |
                        +---------+
                        |+-------+|
                        ||  UIS  ||
                        |+-------+|        +------+
                        +---------+        |  PS  |
                       |     |     |       +------+
                       |     |     |          |   
 +--------------------+      |      +-------------------+
 |     conductor      |      |      |    ghostwriter    |
 +--------------------+      |      +-------------------+
           |                 |                |
           |                 |                |
 +--------------------+      |      +--------------------+
 |   X Applications   |      |      |      library       |
 +--------------------+      |      +--------------------+
              |              |               |     
              |              |               |    
              +------------------------------+
              |   cantata visual language    |
              +------------------------------+

\fP
.fi
.DE
.LP
\fBPreview, composer, ghostwriter (ghostcheck and ghostreader)\fP and
\fBconductor\fP represent specific User Interface Development tools
within the Khoros software structure.  The library of data processing 
algorithms and the X applications (\fBeditimage, xprism2, xprism3\fP) are 
supported by utility and development libraries (see \fBVolume 2, Khoros 
Programmer's Manual\fP).  
The UIS, along with the libraries, acts as input to the Khoros
tools which then generate programs.
These programs include many of the Khoros tools themselves,
in addition to programs created by application developers using the
Khoros system.  All applications developed 
using Khoros may be referenced from within \fBcantata\fP, the visual language
programming environment.
.PP
Because of the breadth of Khoros, a description of those who work with 
the system may be helpful.  While these are presented as
if they are separate individuals, in reality, many users find 
themselves working across several levels of the system.  
\fIApplication developers\fP (working from top to bottom in the Figure above)
use the various tools provided by the Khoros environment 
to extend the capabilities of the system,
add new routines to be accessed by the visual language, or create 
interactive graphical applications.  \fIEnd users\fP of the applications 
may use the visual language (shown at the bottom of the Figure) to program 
solutions to image processing problems.
