
khoros(1)                    Khoros                     khoros(1)

NAME
     Khoros - A software environment for data processing and
     visualization.

GENERAL DESCRIPTION
     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.

     The Khoros infrastructure consists of several layers of
     interacting subsystems.  A high-level user interface specif-
     ication (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 applica-
     tion specific layer.  One of the most powerful features of
     the system is its high-level, abstract visual language, can-
     tata.  These basic facilities have been used to build a set
     of applications for performing image processing research,
     algorithm development, and data visualization.

DOCUMENTATION
     There are several sources of documentation in Khoros. On-
     line documentation is the HELP 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/manual/program_name.

     Unix style man documentation is available via the vman com-
     mand.  vman provides command searching capabilities with the
     -k option and printing capabilities with the -p option.

     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
     application, the UIS and PS file formats, the viff data
     structure, configuration management of the system, ghost-
     writer, conductor, preview, composer, and the writing pro-
     grams in Khoros.  The prnmanual command is an interactive
     command for printing out specific sections of the manual.

SOFTWARE ARCHITECTURE
     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 com-
     mand line user interface (see command line input/output con-
     ventions below), a graphical user interface (GUI) (see
     graphical user interface organization below), and a visual
     language user interface (see cantata(1) and cantata on-line
     help).  The rough diagram below describes the inter-
     relationships between various components of the system.

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

     Preview, composer, ghostwriter (ghostcheck and ghostreader)
     and conductor represent specific User Interface Development
     tools within the Khoros software structure.  The library of
     data processing algorithms and the X applications (editim-
     age, xprism2, xprism3) are supported by utility and develop-
     ment libraries (see vman 3, and Volume 2, The Khoros
     Programmer's Manual). The UIS, along with the libraries,
     acts as input to the Khoros tools which then generate pro-
     grams. These programs include many of the Khoros tools them-
     selves, in addition to programs created by application
     developers using the Khoros system.  All applications
     developed using Khoros may be referenced from within Can-
     tata, the visual language programming environment.

     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. Application developers (working from top to bot-
     tom 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.  End
     users of the applications may use the visual language (shown
     at the bottom of the Figure) to program solutions to image
     processing problems.

INPUT/OUTPUT CONVENTIONS
     All command line user interfaces in Khoros were created
     using ghostwriter(1).  Because of this they provide a con-
     sistent set of conventions. (The X Windows applications also
     accept standard X windows command line inputs such as -font,
     see X11(1).)

     Usage can always be obtained for a routine by routine -U or
     by using the vman utility, vman routine.  Answer files can
     be created, -A, and then used -a as a way of customizing the
     command line user interface for the various Khoros programs.

     Stdin can be used for any input file but must be specified
     by using a "-" for the file name.  Stdout can be used for
     any output file but must be specified by using a "-" for the
     file name.  Stderr can be used for an ascii output file but
     must be specified using "#" for the file name

     The program will log its execution occurrence into a command
     log file if the "KHOROS_LOG" environment variable is set to
     a valid filename (for example, "setenv KHOROS_LOG
     $KHOROS_HOME/repos/khoros.cmdlog").

     The program will print out a warning message and a default
     value for each option that is not used if the
     "KHOROS_VERBOSE" (verbose) flag is set in the environment
     variable (for example, "setenv KHOROS_VERBOSE no").

     The environment variables mentioned above are typically put
     in a file ".khoros_env" and sourced at login.  The variable
      $KHOROS_HOME must be set for any of the system to work
     correctly (for example, "setenv KHOROS_HOME ~khaos").
     Several of the maintenance and installation procedures (kin-
     stall(1) and ksrcconf(1)) send mail to indicate their
     status, if you want this mail sent to a specific user, then
     "setenv KHOROS_MAIL khaos".  Another very important environ-
     ment variable that is used by UNIX and Khoros is the
     "TMPDIR" variable.  Khoros uses this directory as the loca-
     tion of all temporary files and images (for example, "setenv
     TMPDIR /research/temp").

     If you are involved in extending Khoros, you will need to
     set the variable KHOROS_TOOLBOX to the file that specifies
     all toolbox information.

     If you want to customize the use of keywords for input
     files, set the variable KHOROS_KEYWORDS to the file that
     holds the shorthand keywords definitions.

     To take advantage of the data transport mechanism, set the
     variable KHOROS_HOSTS to the file that holds the list of
     available computers.

     All the above environment variables for the Khoros system
     are explained in detail in Chapter 1 ("Getting Started") of
     Volume 1 ("The Khoros User's Manual") of the Khoros system
     documentation.

COPYRIGHT
     Copyright 1990, University of New Mexico. All rights
     reserved.

Khoros                    Release: 1.0                          1

