Tachyon has several user interfaces. Tachyon's core temporal reasoning module can be embedded within another software package, run alone in batch mode on an input file, or run from Tachyon's graphical user interface (GUI). Output can be placed on stdout, in a file, or in the graphical representation as appropriate. Users can create and modify temporal constraint networks either in an ASCII flat file or through the GUI.
The graphical editor allows loading and saving of temporal data files that are compatible with the batch mode version's parser. Thus, one could use the GUI to test consistency of a network, fine tune it, or test it in ``What if...'' scenarios as desired, then save it in a file the batch-mode driver can use. The graphical interface provides a CAD-like direct-manipulation editor for the graph representation of the underlying network. The canvas on which the graph appears can be panned and sized as needed. Nodes and edges can be added, moved, and deleted as desired.
The menu bar has space reserved for describing button functions as the mouse pointer passes over them.
Nodes and edges are tied to dialog boxes that allow modification and entry of the associated values in the database. These boxes can be popped up by double-clicking on the desired node or edge.
The Node Information dialog box shown above is fairly straightforward, allowing direct changes to be made to the name-tag, temporal values of the event associated with the node, and verbose description of the event.
If any of the values entered are invalid, the 'Done' button will not function. If a tag name is entered with spaces between words, all spaces will be converted to underscores (Eat Lunch becomes Eat_Lunch). Duplicate tags are not allowed.
In contrast, the Edge Information dialog box is quite complex. The default representation for a temporal distance is an 8-tuple, and is shown in the right portion of the above figure. Allen relations are qualitative relationships between events. Each Allen relation has a corresponding 8-tuple, which the system substitutes for it at solve-time. For example, ``before'' would be represented by a minimum distance of e (epsilon) and maximum distance of +oo (positive infinity) on all four of the 8-tuple pairs. This says that a non-zero positive (but unknown) distance exists between the start and finish times of event 1 and the start and finish times of event 2.
The Allen button toggles the display between the two dialog boxes shown in the figure above. The dialog box on the right is used for entry of the 8-tuple values while the left most dialog box allows selection of Allen relations. Selection of Allen relations will disable other Allen relations in order to force convexity of the given distance. In the example in the above figure, Before and Meets are selected, disabling all but Before, Meets and Overlaps. Parameters for the Allen relations might be altered and/or disabled based on selection and de-selection of other relations. If Meets is selected, for instance, the minimum values of Before and Overlaps are set to e, to maintain convexity.
Non-convexity on an edge is entered by selecting the Add button after entering the first relationship. This produces a new set of tuples and Allen relations, which may be used in any combination on non-convex edges. Paging between multiple relations on a single edge is accomplished by the buttons with the left and right arrow on them ( & ). Displayed between these are the index and total number of relations on the edge (e.g., ``1 of 4'').
Annotations on the edges can be toggled on and off, and users can specify an arbitrary text description of the relation the constraint represents. The Annotation area at the bottom of the dialog box contains a text region and a ``cycle button''. The options for display are as follows:
| || |
|Display None||(Default) No information on edge.|
|Display Relations||Display all its tuples and Allen relations.|
Gantt charts are a common presentation format for project management and scheduling. Tachyon is capable of creating a view akin to a Gantt chart based on the current tuple values on each node. An example of this is shown below:
Figure 5.4: A time line view of the lunch example (instantiated)
The events are represented by blocks such as the one shown in the figure below. Each is appropriately positioned on the time line and stacked vertically. The length of the block corresponds to the possible length of the event. The left side corresponds to the earliest possible start time, while the right side corresponds to the latest possible finish time. The interval of uncertainty for the start time is represented by a green band in the top left corner. Similarly, a red band in the bottom right corner indicates the interval of potential finish times. The length of the two black bands across the center of the block show the minimum and maximum durations for the event. Infinities in all cases are drawn to the left and/or right side of the screen, as appropriate.
Our experience has been that this representation is extremely intuitive, requiring minimal explanation, and unambiguous. Thus, we are able to meaningfully display the events on a time line, without losing information.
To produce a TimeLine Tool, select the option from the Tools menu. If any nodes are selected, the data from these nodes will be used, otherwise if none have been selected, a timeline for the entire network will be created.
When this screen is invoked, an interval tree is created. The screen also allows point and interval queries to be made on the events in the time line. The events responding to the queries will invoke a screen of their own, providing the desired ``slice'' of the events to be examined. This is performed by META+MIDDLE-MB. A simple click will perform a point query across the events, while dragging an interval will perform an interval query. The subsequent window will have all the functionality of the original.
We also have enabled this screen to choose crisp intervals for events, which are then copied back to the network. The intent, is events which have occurred in a project can be explicitly set to their actual (certain) values, and incorporated into the model (allowing subsequent projection, etc.)
(c) 1996 General Electric Co.