Publisher Information
| Agent Oriented Software Pty. Ltd. | |
| P.O. Box 639, | |
| Carlton South, Victoria, 3053 | |
| AUSTRALIA | |
| Phone: | +61 3 9349 5055 |
| Fax: | +61 3 9349 5088 |
| Web: | http://www.agent-software.com |
If you find any errors in this document or would like to suggest improvements, please let us know.
The JACK documentation set includes the following manuals and practicals:
| Document | Description |
| Agent Manual | Describes the JACK programming language and infrastructure. JACK can be used to develop applications involving BDI agents. |
| Teams Manual | Describes the JACK Teams programming language extensions. JACK Teams can be used to develop applications that involve coordinated activity among teams of agents. |
| Development Environment Manual | Describes how to use the JACK Development Environment (JDE). The JDE is a graphical development environment that can be used to develop JACK agent and team-based applications. |
| JACOB Manual | Describes how to use JACOB. JACOB is an object modelling language that can be used for inter-process transport and object initialisation. |
| WebBot Manual | Describes how to use the JACK WebBot to develop JACK enabled web applications. |
| Design Tool Manual | Describes how to use the Design Tool to design and build an application within the JACK Development Environment. |
| Graphical Plan Editor Manual | Describes how to use the Graphical Plan Editor to develop graphical plans within the JACK Development Environment. |
| JACK Sim Manual | Describes how to use the JACK Sim framework for building and running repeatable agent simulations. |
| Tracing and Logging Manual | Describes the tracing and logging tools available with JACK. |
| Agent Practicals | A set of practicals designed to introduce the basic concepts involved in JACK programming. |
| Teams Practicals | A set of practicals designed to introduce the basic concepts involved in Teams programming. |
1 Introduction
1.1 JACK Development Environment (JDE)
The JACK Development Environment (JDE) is a cross-platform graphical editor suite written entirely in Java for developing JACK agent and team based applications. Extensive use of drag-and-drop and context-sensitive menus assist the construction of agents. The JDE allows the definition of projects, aggregate agents and teams, and their component parts under these projects.
The JDE is a purpose-built toolkit that facilitates the construction of agent/team models. In many situations an application will consist of a single model. However, the JDE also supports the co-operative development of the models required for an application. It also supports the reuse of model components and in the case of co-operative development, the sharing of components.

Figure 1-1: JDE
1.2 Readership
This manual is designed to complement the Agent Manual. It is assumed that the reader has an understanding of agent programming using the JACK framework.
Integral features of the JDE include the Design Tool, the Graphical Plan Editor and the Plan Tracing Tool, all accessible from within the JDE browser and tool bar. These features each have their own individual documentation in which they are more fully detailed. This documentation is available as part of the complete JACK Intelligent Agents (JACK) package.
1.3 Opening the JDE
There are two common ways to invoke the JDE:
- running the default configuration
- running a custom configuration.
On Unix platforms, running the default configuration is achieved by running the script, JACK_Developer. This is found in the directory in which the JDE has been installed. On Unix, the script can also be run with the name of a project file e.g. JACK_Developer NewProject.prj
On Windows platforms, selecting JACK Developer on the Start menu invokes the default configuration.
On Macintosh platforms, double-click on the JACK Developer icon. This is found in the directory in which the JDE is installed.
To start the JDE from the command line, type the following (where path_to_jack.jar is the path to the jack.jar file): java -classpath path_to_jack.jar -Xmx85m aos.main.Jack
If an out of memory error appears, the upper limit of memory available to the Java Virtual Machine may need to be increased. For example, to increase the amount of memory available to 120 megabytes, replace -Xmx85m with -Xmx120m in the above command line.
1.4 Layout of this manual
After this introductory section, an overview provides a brief sketch of the JDE, covering its functions, the interface elements, and the standard JDE interaction protocol. Subsequent sections delve into the JDE's features in greater depth.
1.5 Typographical conventions
Certain typographical conventions have been adopted in this manual:
- In the narrative sections of this manual, italics are used to denote text that would benefit from special emphasis (for example, new terms, mandatory instructions, and critical concepts).
- Samples of code and program output appear in this typeface.
- Items that appear in the JDE graphical user interface (GUI) appear in this typeface, for example: Select the Open Project option in the File menu. GUI items are capitalised in the text in an identical manner to their on-screen counterparts.
- Keys that the user must press on their computer keyboard are represented in THIS TYPEFACE, for example: Press the ESCAPE key.
1.6 Platform-specific GUI differences
In keeping with current GUI design practice, the JDE adopts the look and feel of the host operating system. Within this constraint, the JDE has been designed to be as cross-platform compatible as possible. For example, if the user is familiar with the JDE on a Windows platform, they will find that it is much the same on a Unix platform.
The screen snapshots in this manual were created on a Macintosh running Apple's Mac OS X operating system. On another platform, the JDE GUI will look slightly different, but these differences are only cosmetic, and will not affect the performance of the JDE in any way. In some cases, menu options may be found in different locations.
There are also some differences in operating system-specific conventions regarding mouse buttons and modifier keys. These are listed and explained below. Windows is the most common platforms for JDE users, so this document adopts Windows conventions as the default when describing actions within the JDE framework.
In this document, textual content refers to the JDE on a Windows platform. Where there are variations in menus, options and so on across platforms, a note will be provided explaining those differences.
1.6.1 Mouse buttons
Unix systems typically have a three button mouse, Windows systems have a two button mouse, and Macintosh systems have a single button mouse.
In the JDE, the left and right mouse buttons function in the same way on Unix and Windows systems. The middle button is unassigned, and not used for any purpose.
To access the functions of the right mouse button on a Macintosh system, hold down the COMMAND key while pressing the mouse button (unless a third-party two button mouse is available allowing the use of the right button as required).
1.6.2 Modifier keys
Generally, where a CTRL key is used in Windows and Unix, the COMMAND key is used on the Macintosh. For example, on Windows you use the CTRL key to make multiple selections. On the Macintosh you would use the COMMAND key. The SHIFT key performs the same function on all three platforms.
1.7 Further information
Useful information and updates relevant to the JDE are available at the Agent Oriented Software web site, http://www.agent-software.com.
2 Overview
JACK Intelligent Agents supports two agent reasoning models:
- a basic agent model
- a teams agent model.
These models are implemented as extensions of the Java language. These extensions:
- provide new base classes, interfaces and methods
- extend Java syntax to support the new classes, definitions and statements
- provide semantic extensions that change the execution engine to support a BDI execution model.

Figure 2-1: JDE menu bar and work area
The class level constructs provided by the two models are discussed in detail in the Agent Manual and Teams Manual. These constructs are the primary building blocks of every JACK application and can be defined in any text editor. For some, this is the preferred method of program development. However, others prefer to use graphical environments for code development. The JDE provides support for this mode of development through conventional drag-and-drop functionality and context sensitive menus.
The JDE also supports aspects of the software development life cycle other than code generation and execution. In particular, tools are provided to support the design process and the tracing of design and plan execution. These tools are fully integrated with the basic code generation/compilation/execution functionality of the JDE. The Design Tool, the Graphical Plan Editor and the Plan Tracing Tool are each explained separately within their own documents.
When the JDE is invoked, a window is created which initially consists of a menu bar and a work area.
Within the JDE a project consists of a collection of programming elements. Through the JDE menu bar, one can create a new project or open an existing project. When this occurs, a special instance of a JDE browser window is opened. This is known as the project window.
Directly below the JDE menu bar is the JDE Tool Bar. The JDE Tool Bar provides a series of shortcut buttons that can be clicked to bypass the drop-down menus of the menu bar for many of the basic functions of the JDE. The buttons available to the left perform various actions in the JDE, and are referred to as action buttons.
There are also three buttons to the right end of the JDE Tool Bar. These buttons toggle various modes on and off, and are referred to as toggle buttons.
Further details about these buttons and their functions are provided in the JDE Tool Bar chapter of this document.
The project window provides the primary interface for code development including access to the Graphical Plan Editor. It also enables the user to create and access design views for the JACK Agent Model or JACK Teams Model.
The project window is configured differently depending on whether one is developing an agent model or a teams model – the appropriate mode is selected via the View menu from the JDE menu bar. The JDE menu bar also provides access to the Compiler Utility which enables the user to compile and execute agent and teams models.
2.1 JDE menu bar
The JDE menu bar contains the following drop-down menus:
- JACK Developer menu (Macintosh only)
- File menu
- Edit menu
- View menu
- Entity menu
- Trace menu
- Tools menu
- Window menu
- Help menu.
These menus provide access to the high level functions of the JDE, such as loading and saving projects, and editing projects in various ways. These menus are outlined briefly below, and are explained in greater detail elsewhere in the Menu Bar chapter of this document.
2.1.1 JACK Developer menu (Macintosh only)
The JACK Developer menu exists only in the Macintosh environment. The JACK Developer menu contains the following options:
- About JACK Developer
- Preferences
- Services
- Hide JACK Developer
- Hide Others
- Show All
- Quit JACK Developer.
2.1.2 File menu
The File menu contains the following options:
- New Project
- Open Project
- Save Project
- Load External Edits
- Copy/Move Project
- Convert Old Project
- Close Project
- Update JACK Files
- Generate All JACK Files
- Remove JACK Files
- Generate Project Report...
- Page Setup...
- Print Project Report...
- Exit (non-Macintosh platforms only).
These options are discussed in detail in the JDE menu bar chapter of this document.
Note: To the left of the File menu on the Macintosh appears the JACK Developer menu. The Quit function is listed within this menu on the Macintosh rather than in the File menu.
2.1.3 Edit menu
The Edit menu contains the following options:
- Cut Text
- Copy Text
- Paste Text.
2.1.4 View menu
The View menu contains the following options:
- Full Package Path
- Documentation Nodes
- Teams Mode
- Show Tool Bar.
These options can all be toggled on or off providing alternatives affecting the various functions of the JDE. Checks indicate which of the options is currently toggled on.
2.1.5 Entity menu
The Entity menu contains the following options:
- Add Design...
- Add Agent...
- Add Capability...
- Add Plan...
- Add Event...
- Add Team...
- Add TeamPlan...
- Add Role...
- Add Named Role...
- Add Named Data...
- Add Beliefset...
- Add View...
- Add TeamData...
- Add External Class....
Note: Some of the above menu options are only enabled in Teams mode.
2.1.6 Trace menu
The Trace menu contains the following options:
- Connect To Nameserver...
- Connect To Portal...
- Configure Design Tracing...
- Design Tracing Controller
- Ping Agent....
2.1.7 Tools menu
The Tools menu contains the following options:
- Compiler Utility
- Design Palette
- Plan Editor Palette
- Error Log
- Preferences... (non-Macintosh platforms only).
Note: On the Macintosh, the Preferences option appears in the JACK Developer menu.
2.1.8 Window menu
The Window menu maintains a list of titles of all currently opened (not minimised) JDE browser windows. Initially, the Project window will be listed here. Selecting a title form the list will bring a particular window to the front of the JDE.
2.1.9 Help menu
The Help menu contains the following options:
- JACK Documentation
- JACK Frequently Asked Questions
- Agent Oriented Software Homepage
- Create Project from Example
- About JACK Intelligent Agents(non-Macintosh platforms only).
Note: On the Macintosh, the About JACK Intelligent Agents option is named About JACK Developer and is located in the JACK Developer menu.
2.2 Project window
Within a JDE session only one project can be active at a time. When a project is first opened, a special JDE browser window is opened which is known as the project window.
Additional JDE browser windows can be opened by selecting items from the project window, and dragging them onto the JDE work area. For example, if a subtree of the project window's folder hierarchy is dragged and dropped into the JDE work area, a new JDE browser window is opened for browsing the selected subtree.
Note: Additional JDE browser windows can be opened, but there can only be one project window.
2.2.1 Opening the project window
The project window is opened when an existing project is loaded or a new project is created. This is achieved via the File menu on the JDE menu bar. The project window displays the name of the current project in the title bar. It also displays a hierarchical tree structure of folders which contain the project components. The window may be moved around the JDE window and resized according to the needs of the user.
2.2.2 Closing the project window
The project can be closed via the File menu on the JDE menu bar. Note that closing the project window also closes the project. If a project has unsaved changes, a prompt will appear asking whether the changes should or should not be saved. A project can be explicitly saved via the File menu at any time during a JDE session.
Saving a project via the File menu causes any entities that have been changed (highlighted in red in the project window) to be saved. The project file is updated to include any references to newly created or loaded files and any new or updated entity files are saved. A project is stored as a file in JACOB syntax with a .prj extension. To learn more about JACOB, refer to the JACOB Manual. When saving a project, a prompt may appear asking the user to create all required folders necessary for that project.
2.2.3 Features of the project window
The project window contains project details (such as Project Name and Documentation) and the Design Views folder. It also holds the Agent Model container and the Data Model container, both of which contain folders for storing the various programming elements of the project. Finally, the project window also contains the Other Files folder, enumerating non-JACK files of interest.
These folders allow grouping of entities in a project. For large projects, some folders will contain many entities. In such situations, it is useful to group the entities within a folder into sub-folders. This is achieved through the use of nested containers. Containers can be nested within containers, without limit to the number of nesting levels. Entities of the same type can be moved between nested containers.
The elements in the project window's folder hierarchy can be expanded or contracted by clicking on the '+' symbol or arrow to the left of the element or by double-clicking on the element's folder or name. When an element is expanded, the '+' symbol becomes a '-' symbol, or the right arrow becomes a down-arrow on the Macintosh. Clicking on the '-' symbol or down-arrow (or, equivalently, double-clicking on the element next to the '-' symbol or down-arrow) collapses the expanded tree.
Context-sensitive menus are provided for performing operations on folders and folder elements. The menus are accessed by placing the mouse cursor over an item and pressing the right mouse button. A menu then appears providing operations that can be applied to that item.
Drag-and-drop is used to associate one entity with another (such as a plan with an agent). The element to be dragged is first selected by clicking and holding the left mouse button down while over the icon. The left button is then kept down while the mouse is moved until the cursor is over the destination item. Releasing the left mouse button will then associate the dragged element with the destination element. Multiple drag-and-drop can also be performed as described in the JDE Browser chapter.
Note that if a drop operation is permitted, the Drop Allowed cursor is displayed.

Figure 2-2: Drop Allowed cursor
If the operation is not permitted, the No Drop Allowed cursor is displayed.

Figure 2-3: No Drop Allowed cursor
2.2.3.1 Project details
A project as a whole encapsulates all of the resources related to an agent model and any extra (non-JACK) files such as regular Java files and data files required.
The project details are the first item in the project window. It has the following seven attributes:
| Attribute | Description |
| Project Name | The name of the project e.g. NewProject. |
| Documentation | Documentation associated with the project. |
| Root Package | The top-level Java package to which all project components belong. |
| Save-folder | This is where the G-Code is stored. G-Code is the graphical file format used by the JDE. The folder is called gcode_ProjectName by default. |
| Generated JACK Sub-folder | This is the sub-folder (of the folder where the project file is located) where the generated JACK code will be stored. |
| Generated Java Sub-folder | This is where the JACK compiler stores the Java files generated while compiling the JACK files. |
| Generated Class Sub-folder | This is where the java compiler stores the class files generated from the Java files. |
Table 2-1: Project attributes
The type definition files created within the JDE are stored as G-Code files in the Save folder. Compiling an application results firstly in JACK files being generated from the G-Code files. The JACK files are written to the Generated JACK Sub-folder. The files in the Generated JACK Sub-folder are then translated to Java code; these files are stored in the Generated Java Sub-folder. Finally, the generated Java code is compiled along with any other Java source files needed. The resulting class files are stored in the Generated Class Sub-folder. Note that the G-Code to JACK code step can be performed independent of the other steps if desired.
Applications that have been developed outside of the JDE can be imported into the JDE. This can be done through the Compiler Utility. Alternately, the G-Code and a project file can be generated by entering the following command in the directory which is the root of the application source tree:
java aos.main.JackBuild -r -x -E myproject.prj -dj backup
myproject can then be opened in the normal way from within the JDE.
The -dj option results in the application files being copied to a directory called backup. If this option is omitted, and the resulting G-Code was compiled with the default setting for the Generated JACK Sub-folder, the original JACK files would be overwritten.
The user can also import components from other projects into the current project. This is discussed in the JDE Browser chapter of this document.
2.2.3.2 Design Views folder
It is possible to design and build an application using the Design Tool. The Design Tool can be accessed by right-clicking on the Design Views folder. Existing designs can be accessed from within the Design Views folder. Entities that exist in the JDE browser can be incorporated into a design by dragging them onto the design canvas. Any new entities or links between entities that are created while building a design will result in corresponding changes to the contents of the JDE browser window.
The Design Tool is discussed in greater detail in the Design Tool Manual.
2.2.3.3 Agent Model container
The following folders are contained within the Agent Model container:
- Agent Types folder
Agents are added to the Agent Types folder in the Agent Model container. They are further elaborated by dragging plans, events, named data and capabilities from the other folders and dropping them onto the appropriate target folders within the Agent Types folder. - Capability Types folder
Capabilities are added to the Capability Types folder of the current project and are further elaborated by dragging plans, events, named data and other capabilities from the folders below and dropping them onto the appropriate target folders within the Capability Types folder. - Plan Types folder
Plans are added to the Plan Types folder in the Agent Model container. They are further elaborated by dragging events and named data from the folders below and dropping them onto the appropriate target folders within the Plan Types folder.
Plan reasoning methods can be edited using a text editor or the Graphical Plan Editor. The Graphical Plan Editor is discussed in more detail in the Graphical Plan Editor Manual.
If the plan reasoning methods were created using the Graphical Plan Editor, the Plan Tracing Tool can be used to display and trace the execution of Graphical Plans in JACK applications.
For further information on the Plan Tracing Tool, refer to the Plan Tracing Tool Technical Brief. - Event Types folder
Events are added to the Event Types folder in the Agent Model container. They are further elaborated by dragging named data from the other folders and dropping them onto the appropriate target folders within the Event Types folder. - Named Data folder
Named Data are added to the Named Data folder in the Agent Model container. The Named Data folder contains named data that can be used by JACK components. The type of the named data is any data model element. - Team Types folder
Teams are added to the Team Types folder in the Agent Model container. They are further elaborated by dragging plans, events, capabilities, team plans and named data from the other folders and dropping them onto the appropriate target folders within the Team Types folder. The Team Types folder is only visible within the JDE browser when the JDE is in Teams Mode (when the Teams Mode option in the View menu is checked). - TeamPlan Types folder
Teamplans are added to the TeamPlan Types folder in the Agent Model container. They are further elaborated by dragging events, roles, named data and named roles from the other folders and dropping them onto the appropriate target folders within the TeamPlan Types folder. The TeamPlan Types folder is only visible within the JDE browser when the JDE is in Teams Mode (when the Teams Mode option in the View menu is checked).
- Role Types folder
Roles are added to the Role Types folder in the Agent Model container. They are further elaborated by dragging events and named data from the other folders and dropping them onto the appropriate target folders within the Role Types folder. The Role Types folder is only visible within the JDE browser when the JDE is in Teams Mode (when the Teams Mode option in the View menu is checked). - Named Roles folder
The Named Roles folder contains named roles of a type defined in the Role Types folder.
Of these folders, Team Types, TeamPlan Types, Role Types and Named Roles are available only when the Teams mode option is checked in the View menu.
When the JDE is in Teams Mode, the Agent Types folder may be included or excluded (as per your preference settings).
2.2.3.4 Data Model container
The following folders are located within the Data Model container:
- Beliefset Types folder
Beliefsets are added to the Beliefset Types folder in the Data Model container. They may be further elaborated by dragging events from the other folders and dropping them onto the appropriate target folders within the Beliefset Types folder. - View Types folder
Views are added to the View Types folder in the Data Model container. They may be further elaborated by dragging named data from the other folders and dropping them onto the appropriate target folders within the View Types folder. - TeamData Types folder
TeamData are added to the TeamData Types folder in the Data Model container. The TeamData Types folder is only visible in the Data Model container when the JDE is in Teams Mode (when the Teams Mode option in the View menu is checked). - External Classes folder
This provides the ability to identify Java classes that are external to the project. The External Classes folder is used to provide a type for named data.
2.2.3.5 Other Files folder
-
Other files associated with the project are listed here. These files include regular Java files and data files of interest within the project.
2.3 Code Editor
The Code Editor appears whenever a text item is edited, unless an external editor is used. Using an external editor is discussed in the Preferences section.
The kinds of items that are edited with the Code Editor include:
- documentation
- Java code (contained in the Other Code folder of an entity)
- reasoning methods (only textual, not graphically edited reasoning methods)
- posting methods
- external files (contained in the Other Files folder).
The Code Editor has a number of features designed to facilitate writing JACK code. It has a tool bar located in the top-left corner of the Code Editor window. The functions of the Code Editor are discussed in further detail in the Code Editor chapter of this document.
2.3.1 Opening the Code Editor
To open the Code Editor:
- Right-click on a text item and choose the appropriate menu item from the context menu. For example, a reasoning method or any documentation of a programming element (pencil icon). Alternatively, use a double left-click on the element.
- The Code Editor will open, either as the default Code Editor supplied with the JDE package, or the external editor specified in the user's Preferences options.
2.3.2 Closing the Code Editor
2.3.2.1 Saving changes internally
When editing an internal JDE text item (i.e. not an external file), the Code Editor window has two buttons to the right: Save and Close.
- the Save button stores the user's work but leaves the window open so that work can be continued
- the Close button closes the window without storing work (after providing a confirmation prompt).
2.3.2.2 Saving changes to external files
Saving changes to external files is discussed in detail in the Code Editor chapter of this document.
2.4 Using an External Editor
The JDE allows the user to specify an alternative to the Code Editor. This is discussed in the Preferences section of this document.
2.5 Compiler Utility
JACK-based applications can be compiled and run from within the JDE with the Compiler Utility. It provides a graphical user interface to the standard command-line based aos.main.JackBuild utility provided with JACK. Refer to the relevant section of the Agent Manual for further details.
2.5.1 Opening the Compiler Utility
Open the Compiler Utility at any time by selecting Compiler Utility from the Tools menu on the JDE menu bar, or by clicking on the Compiler Utility icon in the tool bar. If the Compiler Utility is already open, its window will be brought to the front.

Figure 2-4: Compiler Utility icon
2.5.2 Closing the Compiler Utility
To close the window at any time, click the Close button.
2.5.3 Features of the Compiler Utility
The Compiler Utility window consists of the tabs listed below. Further details are provided in the Compiler Utility chapter of this document.
- Options tab
Use this tab to set options used in compiling JACK code with the Compiler Utility. - Compile application tab
Use this tab to convert an application from source code into an executable form. - Run application tab
Use this tab to execute a compiled application (or any other Java application). - Convert Non-JDE JACK tab
Use this option tab to generate a new JDE project from existing JACK code which was not developed using the JDE. - Output/Errors tab
This tab displays the output from compiling or running an application as well as any output associated with the generation of G-Code.
3 JDE menu bar
3.1 Main menus
The JDE menu bar contains the following menus:
- JACK Developer menu (Macintosh only)
- File menu
- Edit menu
- View menu
- Entity menu
- Trace menu
- Tools menu
- Window menu
- Help menu.
The JDE menu bar, located at the top of the JDE work area, provides access to major functions, as outlined below.
3.2 JACK Developer menu (Macintosh only)
The JACK Developer menu is used to perform application specific operations on the Mac OS X platform. The JACK Developer menu contains the following options:
- About JACK Developer
- Preferences...
- Services
- Hide JACK Developer
- Hide Others
- Show All
- Quit JACK Developer
The options from the above list that are specific to the JDE are discussed in detail below. The remaining options are standard for all Macintosh software.
3.3 About JACK Developer
The About JACK Developer option provides information about Agent Oriented Software Pty. Ltd. It also provides information about the particular release version of the JDE and JACK being used, and further copyright information.
3.4 Preferences...
The Preferences option is located in the JACK Developer menu on the Mac OS X platform, whereas in Windows it is located in the Tools menu. More information on Preferences is provided below.
3.5 Quit JACK Developer
This option quits the JACK Developer.
3.6 File menu
The File menu is used to perform project-level operations and to exit the JDE. The File menu contains the following options:
- New Project
- Open Project...
- Save Project
- Load External Edits
- Copy/Move Project...
- Convert Old Project
- Close Project
- Update JACK Files
- Generate All JACK Files
- Remove JACK Files
- Generate Project Report...
- Page Setup...
- Print Project Report...
- Exit (Windows only).
These options are discussed in detail below.
3.6.1 New Project
The New Project option creates a new project. By default, the location of this project is the directory in which the editor is invoked.
To create a new project:
- Click on the File menu in the JDE menu bar.
- Click on the New Project option on the File menu. A file chooser window will appear.
- Navigate through the files and directories until the appropriate place for the new project is located.
- Enter a name for the new project in the File name text box and click New, or click Cancel to cancel the operation.
3.6.2 Open Project...
The Open Project option opens an existing JDE project file (.prj).
To open an existing project:
- Click on the File menu in the JDE menu bar. The File menu will open, providing a series of options.
- Click on the Open Project option in the File menu.
- A user directory window will pop up. Navigate through the home directory structure until the desired project file is located.
- Click on the desired project file. It will become highlighted and will be visible in the File name text box.
- Click the Load button to load the project, or click Cancel to cancel the operation.
3.6.3 Save Project
The Save Project option saves all project components that have been modified or are unsaved (highlighted in red). If the component being saved already exists on the file system, the existing version is copied to a backup file with the extension .bak and the new version is saved in its place.
To save a project:
- Click on the File menu in the JDE menu bar.
- Select Save Project from the various options within the File menu.
- Any unsaved changes will be saved, changing from being highlighted text in the JDE browser to black default colour text (not highlighted).
Note: When saving a project, a prompt may appear asking the user whether to create all required folders necessary for the project.
3.6.4 Load External Edits
The Load External Edits option will cause any text which has been changed by an external editor and saved to its temporary file, to be loaded back into the appropriate JDE programming element.
The Load External Edits option will be inactive unless an external editor has been selected in the preferences. It will also be inactive if the preference to Load changes from an external editor as soon as the file is saved/written is set since it makes this option redundant.
3.6.5 Copy/Move Project...
The Copy/Move Project option moves the project to a different directory, or makes a copy of the current project.
To copy/move a project:
- Select Copy/Move Project from the File menu.
- The following options will appear: Cancel, Copy or Move.
- To cancel the operation, click Cancel.
- To copy, select Copy and then select a new directory for the copy of the project.
- To move, select Move and select a new directory.
3.6.6 Convert Old Project
If a project is being opened that was saved with an old version of the JDE, this option will load everything and update it to the new internal format. This is useful if you know ahead of time that the old project needs to be re-formatted.
3.6.7 Close Project
The Close Project option closes the current project. If the current project has any unsaved components, an option is provided in a pop-up dialog box to save them before closing.
To close a project:
- Click on the File menu in the JDE menu bar.
- Click on the Close Project option in the File menu.
- If no unsaved changes exist, the project will close.
- If unsaved changes exist within the current (open) project, a warning pop-up menu will appear, providing the options to either Save, Discard Changes or Cancel.
- Select the appropriate option to save new changes, discard unsaved changes or cancel the operation altogether and keep the current project open.
Note: When closing a project, a prompt may appear asking the user whether to create all required folders necessary for the project.
3.6.8 Update JACK Files
This will generate JACK code for any elements that require it; for example, JACK files for new elements or elements that have been modified (highlighted in red).
To update JACK files:
- Click on the Update JACK Files option in the File menu.
- The necessary JACK code will be generated, and a progress dialog will inform the user that the process is occurring.
- Any errors or warnings will be displayed in the Error Log.
3.6.9 Generate All JACK Files
The Generate All JACK Files option generates JACK code for all elements in the current project, regardless of whether they are up-to-date or not. In other words, the Generate All JACK Files option is a complete generation and updating option.
To generate all JACK files:
- Click on the File menu in the JDE menu bar.
- Click on the Generate All JACK Files option in the File menu.
- A progress dialog will inform the user that code is being generated.
- Any errors or warnings will be displayed in the Error Log.
3.6.10 Remove JACK Files
The Remove JACK Files option in the File menu removes any generated JACK files from the currently active project. The Remove JACK Files option actually renames old generated files to become *.bak files.
3.6.11 Generate Project Report
The Generate Project Report option in the File menu generates a project report containing the documentation and details of the selected project components.
3.6.12 Page Setup
The Page Setup option in the File menu provides various options relating to printing JDE projects. Depending on the platform, it provides options on paper size and source, orientation (landscape or portrait), and margin widths.
3.6.13 Print Project Report
The Print Project Report option in the File menu opens the Print Project Report window. This window allows the user to select the print format (text or XML). The various parts of the report that the user wishes to print can be selected individually with a variety of checkboxes, or all parts of the report can be printed at once.
3.6.14 Exit (Windows only)
The Exit option exits the JDE and provides a prompt to save any unsaved changes before exiting.
To exit the JDE:
- Click on the File menu in the JDE menu bar.
- Click the Exit option in the File menu.
- If there are no unsaved changes in the current project, the project will close and the JDE will close down.
- If unsaved changes exist, a pop-up prompt will appear, offering the options to either Save, Discard Changes or Cancel. Select the required option and unsaved changes will be saved or discarded and the JDE will shut down, or the operation will be cancelled accordingly.
3.7 Edit menu
This menu provides the following options for text in the editor windows:
- Cut Text
- Copy Text
- Paste Text.
3.7.1 Cut Text
The Cut Text option cuts highlighted text from a text editor window.
To cut text:
- Highlight the required text in the text editor window with the mouse.
- Click on the Cut Text option in the Edit menu.
- Alternatively, cut text and transfer it onto the clipboard using the keyboard shortcut CTRL+X, or COMMAND+X on the Macintosh.
3.7.2 Copy Text
This option copies highlighted text from a text editor window to the clipboard.
To copy text:
- Highlight the relevant text in the text editor window with the mouse.
- Click on the Copy Text option in the Edit menu.
- Alternatively, copy the text using the keyboard shortcut CTRL+C, or COMMAND+C on the Macintosh.
3.7.3 Paste Text
This option pastes text from the clipboard into the current text editor window at the current insertion point. Text that has been copied or cut can be pasted from the clipboard. Text must be copied or cut before the Paste Text option can be used.
To paste text:
- Click with the mouse at the desired insertion point to create a cursor mark where the copied or cut text is to be pasted.
- Click on the Paste Text option in the Edit menu.
- Alternatively, press CTRL+V (or COMMAND+V on the Macintosh) to paste the text using a keyboard shortcut.
3.8 View menu
The View menu on the JDE menu bar provides the following options:
- Full Package Path
- Documentation Nodes
- Teams Mode
- Show Tool Bar.
Check marks to the left of each option indicate whether that option has been selected or not.
3.8.1 Full Package Path
When the Full Package Path option is checked, the entire package path of the current project is displayed on elements in the project.
3.8.2 Documentation Nodes
When the Documentation Nodes option is checked, the user is able to view and edit documentation for types and files, including the current project.
3.8.3 Teams Mode
By clicking on the Teams Mode option in the View menu, the user can toggle between Teams mode and Agent mode. The results of toggling between the two modes are directly visible in both the JDE browser and the Design Palette.
The folders which are displayed within the JDE browser are mode dependent. In Agent mode the following folders can be accessed: Agent Types, Capability Types, Plan Types, Event Types, Named Data, Beliefset Types, View Types and External Classes.
In Teams mode the following folders can be accessed: Capability Types, Plan Types, Event Types, Team Types, TeamPlan Types, Role Types, Named Roles, Named Data, Beliefset Types, View Types, TeamData Types and External Classes.
Likewise, the contents of the Design Palette are mode dependent. Agent mode provides the following icons: Agent, Capability, Event, Plan, Named Data and Note while Teams mode provides all the icons of Agent mode, as well as Team, TeamPlan, Named Role and Role. The Agent icon is greyed out if the Agent Types folder is opted to be excluded in Preferences; otherwise it is functional.
3.8.4 Show Tool Bar
When this option in the View menu is checked, the JDE Tool Bar is visible. To hide the JDE Tool Bar, simply uncheck this option by clicking it.
3.9 Entity menu
The Entity menu provides the following options:
- Add Design...
- Add Agent...
- Add Capability...
- Add Plan...
- Add Event...
- Add Team...
- Add TeamPlan...
- Add Role...
- Add Named Role...
- Add Named Data...
- Add Beliefset...
- Add View...
- Add TeamData...
- Add External Class....
The options listed above all provide shortcuts that add an object of the selected type.
3.10 Trace menu
The Trace menu provides the following options:
- Connect To Nameserver...
- Connect To Portal...
- Configure Design Tracing...
- Design Tracing Controller
- Ping Agent...
3.10.1 Connect To Nameserver...
Use this menu option to connect to a DCI name server. For example, if the application had been started using the DCI arguments described in the previous section, the user would enter localhost:9999 or 9999 to connect to the application's nameserver. Name server connection is optional; however, without a nameserver, the Design Tracing Tool user needs to know explicit portal addresses in order to connect the Design Tracing Tool to each portal, rather than using portal names.
Note that the nameserver address can also be entered using the Connect To Portal... menu option.
Refer to the Design Tracing Tool chapter of the Tracing and Logging Manual for further information on this option.

Figure 3-1: Connect to Nameserver dialog
3.10.2 Connect To Portal...
Use this menu option to connect to a portal via the portal name or address. Once connected, the Tracing window will be displayed, showing all agents connected to that portal.
If already connected to a nameserver, you would normally connect by specifying a portal name. Otherwise, use an explicit address such as localhost:9999 or 9999.

Figure 3-2: Connect to Portal dialog
Once connected to a portal an application can be resumed from its suspension point and traced with the DTT.
3.10.3 Configure Design Tracing...
Use this menu option to configure settings for design tracing. Design tracing should be configured whilst an application is stopped or paused.
Designs can be traced for specific agent types and/or agent names. An asterisk can be used as a wildcard to indicate matching all agent types or agent names.
The Design Tracing Configuration window lists the following:
- Project:Design Name
- Agent Type
- Agent Name
- Trace Group.
Agents can be added or removed in the Design Tracing Configuration window by clicking the Add or Remove options to the right of the window, and the options to ApplyLoad...Save... or Close are available at the bottom of the screen. Refer to the Tracing and Logging Manual for more details on design tracing.
3.10.4 Design Tracing Controller
Use this menu option to control tracing of designs. Refer to the Tracing and Logging Manual for more details on design tracing.
3.10.5 Ping Agent...
Use this menu option to check if an agent is still responding. The number of attempts and the delay in seconds can be set between ping attempts. The agent name and portal name need to be entered, e.g. robot23@Server.

Figure 3-3: Ping Agent dialog
3.11 Tools menu
The Tools menu provides the following options:
- Compiler Utility
- Design Palette
- Plan Editor Palette
- Error Log
- Preferences...
3.11.1 Compiler Utility
The Compiler Utility and its various features and functionalities are discussed separately in the Compiler Utility chapter of this document.
3.11.2 Design Palette
The Design Palette provides access to the various elements of a design. It has two modes – Agent mode and Teams mode, and the user can toggle between these modes by clicking on the Teams Mode option in the View menu.

Figure 3-4: Design Palette – Agent mode

Figure 3-5: Design Palette – Teams mode
The icons on the Design Palette can be dragged and dropped from the palette onto a Design View canvas by clicking, dragging and releasing the icon with the mouse. In this way, designs can be built quickly and easily with the Design Tool, the JDE's graphical user interface (GUI), for creating project designs.
The Design Palette, its modes and its uses are described in greater detail in the Design Tool Manual.
3.11.3 Plan Editor Palette
The Plan Editor Palette provides access to the various reasoning method statements and components used within the Graphical Plan Editor environment. Icons can be dragged from the palette and dropped onto the Plan Graph Editor canvas, from which point they are used to build and develop graphical reasoning methods.
Note: The Plan Editor Palette has more options when running in Teams Mode.

Figure 3-6: Plan Editor Palette
The Plan Editor Palette and its functions are described in greater detail in the Graphical Plan Editor Manual.
3.11.4 Error Log
The Error Log shows errors and warnings related to JACK components, e.g. a plan does not handle any event type. It shows errors and warnings generated during JACK file generation.
The Clear Log button at the base of the Error Log window clears the text within the Error Log window.

Figure 3-7: Error Log
3.11.5 Preferences
The Preferences option allows the specification of JDE preferences. Various JDE configuration parameters can be set with the Preferences option in the Edit menu.
Clicking on the Preferences option in the Edit menu opens a window with a series of tabs providing various preference options.
The Preferences options window can also be opened using the Preferences shortcut in the JDE Tool Bar.

Figure 3-8: Preferences icon
3.11.5.1 Preferences tabs
The Preferences tabs are:
- Project View tab
- Text Editor tab
- Design Tool tab
- Graphical Plans tab
- Fonts tab
- Advanced tab.
The various options within each tab window are discussed in detail below.
Tab windows in the Preferences option are opened by clicking on the relevant window tab at the top of the Preferences window. Only one tab window is accessible at a time, but all tabs are visible to the user at any given time.
To select a preference in any of the tab windows:
- Click on the check box to the left of the desired option.
- Click the Apply Changes button at the base of the window, followed by the Close button to close the Preferences window.
- The relevant preference is now selected.
To save preferences in the configuration file .jack.properties in the user's home area (system dependent), click on Apply and Save Preferences. They will be used next time the JDE is started up. After Apply and Save Preferences has been clicked, the Close button must be clicked to close the Preferences window.
If the Close button is clicked instead of Apply and Save Preferences, default preferences will be used until the JDE is exited.
3.11.5.2 Project View tab
The Project View tab provides the various options listed and explained below. To select an option, click on the appropriate checkbox. The options available on the Project View tab are as follows:
- Prefix all top-level components by their Java package name
If this option is checked, each top-level component will be displayed with its package prefix. - Pop up dialog when creating new objects
If this option is checked, the user will be presented with a dialog box when defining a new element. If it is not checked, the new element is added to the JDE browser directly. - Use external windows for popups and dialogs
If this option is checked, all popups and dialogs will appear in their own external windows, separate from the JDE work area. - Automatically update references when a component is changed or deleted
This option automatically updates references when a component is changed or deleted, instead of providing a pop-up prompting the user. - Remove restrictions on top-level structure in project browser
Restrictions are introduced to avoid accidental changes to the overall structure. This option exists in order to be able to turn off these restrictions. If this option is checked, the user can remove top-level structures in the project browser. Top-level structures are the Agent Model container and the Data Model container. Selecting this preference also adds an extra option to the context-sensitive menus for these structures. For example, Remove "Agent Model" Container. - Sorting:
The Sorting: option includes several drop-down selections that can be chosen. These are:- When sorting a container, keep sub-containers at the top
- When sorting a container, keep sub-containers at the bottom
- Treat sub-containers the same as other entities.
- Use teaming mode by default
When the Use teaming mode by default option is checked, the JDE automatically starts in the Teams Mode, without the need to separately select the Teams Mode option in the View menu. - In teaming mode, show Agent types (Agent types must extend Team)
When selected, this option ensures that Agent Types are shown in Teams Mode. When programming with JACK Teams, the basic agent type is actually the Team so the Agent type is not usually needed in this mode. - Check the amount of available memory at startup
If this checkbox is ticked, the user will be warned if the JDE is started with less than the recommended amount of memory (this can only occur if the JDE is run from the command line). - Show main Tool Bar by default
If this checkbox is ticked, the JDE Tool Bar will be visible to the user by default.
3.11.5.3 Text Editor tab
The JDE allows you to use your own choice of text editor for viewing and/or modifying textual components such as code blocks and documentation. There are a number of preferences that can be set under the Text Editor tab of the Preferences dialog.
The options available on the Text Editor tab are as follows:
- Show line numbers in the internal editor
- Confirm changes made via "Edit As JACK File" (0=always, 0.5=usually, 5=never)
After making changes to an entity with Edit As JACK File, the JDE examines how much of the text has changed. The JDE notices how many chunks of text have been added, removed or changed and combines these numbers into a single metric that ranges roughly from 0 to 5. The higher the number, the larger the degree of change being represented. This preference simply sets the threshold required before confirmation will be requested in order to load the changes back into the JDE. The default value of 0.5 requests confirmation after most changes except the most trivial. The numbers given in the label are just a guide. - Use an external application for editing text (e.g. "Notepad", "open -e" or "gvim -f")
This option is used to specify an external editor (if any) to use in place of the JDE's inbuilt Code Editor. The text box should contain the command line required to invoke the external editor. If the text box is left blank (or the given external editor cannot be located), the JDE will use its inbuilt Code Editor as a default. - Prepend the following text to the temporary file created when using an external editor
This option enables the user to prepend specified text to any temporary filename created for an external editor. This option defaults to JACK. - Append the following text to the temporary file created when using an external editor
This option enables the user to append specified text to any temporary filename created for an external editor. This option defaults to .jack. This is very useful for editors that can recognise syntax based on the filename extension.
The following additional checkboxes are also available within the Text Editor tab:
- Load changes from an external editor as soon as the file is saved/written
When this option is checked, the JDE automatically loads changes made from an external editor. If unchecked, the user can load the changes
