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.
TSI Demo programs: (for Soar 7; won't work in Soar8)
analogy.s7
analogy.topspace.s7
analogy.toptwo.s7
default.s7
ht.s7
ht2.s7
../../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.