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 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, cantata. 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 command. 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, ghostwriter, conductor, preview, composer, and the writing programs 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 command line user interface (see command line input/output conventions 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 (editimage, xprism2, xprism3) are supported by utility and development 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 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 Cantata, 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 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. 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 consistent 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 (kinstall(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 environment variable that is used by UNIX and Khoros is the "TMPDIR" variable. Khoros uses this directory as the location 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.