NAME

Soar TSI: TclSoar Interface

DESCRIPTION

The TSI provides a graphical user interface for interacting with Soar. It is based on ideas from Frank Ritter's DSI, and the SCA2 work done by Doug Pearson. The Soar Command Line Interface window is essentially the one produced by Randy Jones as a development of Karl Schwamb's original GUI for Soar.

The TSI consists of a set of optional windows that include:

1.
A control panel to provide easy access to the basic functions that
are necessary or useful to run a Soar model. It also supports running multiple Soar agents at the same time.
2.
An interaction window for Soar, providing equivalent functionality
to the old command line interface, but with a set of menus and buttons available.
3.
A display of the match set of rules about to fire.
4.
A continuous display of the current state of the goal stack.
5.
A print window that supports the examination of objects selected
by the user. (The user either presses p, or double clicks with the middle mouse button once an object has been selected.)

The TSI is normally found in the $soar_library directory (folder), but can be moved anywhere, provided the global variable, tsi_library, is properly and accurately defined when running Wish. However, if the TSI is moved, it's possible (likely) that it will not be able to find the Soar help files or Soar demo files. Users should become quite familiar with the TSI code before trying to move it to another location. In $tsi_library is the main "tcl library" of code that implements the TSI. All tsi commands will be autoloaded from this directory or folder (assuming your tcl interpreter knows where this directory or folder is). See the file "start-soar.tcl" in the top-level directory of the Soar distribution for more information on what needs to be defined when starting Soar. Comments, questions, suggestions and discussions relevant to the TSI should be sent to soar-tsi@umich.edu.

LOADING THE TSI

Since Soar version 7.2, the TSI has been packaged with the Soar distribution. It will be invoked if Soar is started using the "start-soar.tcl" script found in the top-level directory (folder) of the Soar distribution. The "start-soar.tcl" script defines the $tsi_library variable and adds it to the auto_path so that the TSI commands are automatically available in Soar.

MODIFYING THE TSI

Users can change some settings for the TSI by creating their own tsi-defaults.tcl file. Users wishing to further modify the TSI, are encouraged to create a new folder or subdirectory in the $soar_library folder, and copy the TSI files into the new folder, and then redefine the $tsi_library variable. That way there will always be a distribution copy of the TSI, and there will be less confusion if the modified TSI is sent to other Soar users or TSI developers. If the working copy of the TSI is moved out of the $soar_library location, the TSI may not be able to find the Soar help pages or the Soar demos, unless it is specifically modified to look in the proper locations.

FILES

Unless otherwise noted, all files listed below are found in the library/tsi* directory (folder).
README
Description of the TSI, similar to this man page
tsi-defaults.tcl
This specifies some default values for the configuration of the TSI.
To override the defaults, you can make a file named tsi-defaults.tcl in the directory or folder from which you run Soar, and specify the values you want to override.
tsiInit.tcl
Provides the hooks to start up the TSI and to create
new agent (and other) interpreters.
tsiControlPanel.tcl
Creates a simple control panel to drive Soar.
Allows the creation of mutiple Soar agents.
tsiDialogs.tcl
A set of "standard" dialogs for user interaction.
tsiPopUp.tcl
Implements PopUp menus for interacting with Soar.
termText.tcl
A simple terminal widget for tcl/tk (which the TSI agent windows use).
tsiAgentText.tcl
Enhancements to termText for Soar agents
tsiAgentWindow.tcl
Implements a window for interacting with Soar agents.
Uses tsiAgentText for the main window, and adds a bunch of menus, buttons, and whirligigs.
tsiUtils.tcl
A collection of utilities supporting the interface,
including agent windows as well as other types of windows (such as monitor windows).
tclIndex
This file is used by Tcl to autoload various TSI commands and procedures. Do not mess with it or move it (unless you are making enhancements to the TSI code and know what you are doing).
tsi/demos subdirectory or subfolder:
This directory or folder contains a few Soar programs that make use (to varying degrees) of some of the features in the TSI. The TSI code assumes that this demos directory (folder) is a subdirectory (subfolder) of the directory (folder) holding the main TSI code. If you move this directory or folder somewhere else, or rename it, the menus for selecting these demo programs will probably fail to function.

../../demos
The Soar distribution demos that get loaded into
the TSI "Demos" pulldownMenu when in Soar8 mode.
../../demos_soar7
The Soar distribution demos that get loaded into
the TSI "Demos" pulldownMenu when in Soar7 mode.
start-soar.tcl
This file is located in the top level of the Soar distribution. It
defines soar_library and tsi_library, appends them to the Tcl auto_path, and starts the TSI.