next up previous contents
Next: Future Enhancements Up: Tachyon 4.0 Alpha User Previous: Configuration

File output and Batch Processing

Specification of Tachyon File Format

There are three parts to the new (Version 3.0+) Tachyon file: a preamble, node information, and edge information. The preamble contains information about the temporal format Tachyon should use. Comments can be placed anywhere in the file. Those placed immediately before nodes or edges are considered to be annotations on those objects. Note, however, that at this time, all other comments are ignored at the time that the file is read in and will not be saved if you save a modified version of the file. For more information regarding node and edge field information, please refer to [3].

File Format Description

  1. Comments are denoted by prefixing the entire line with double-slash (e.g., this line ignored). Blocks of comments that come immediately before declaration of a node or edge will become the annotation for that node or edge, viewable in their respective pop-up editors.

  2. The only preamble information currently stored in Tachyon is the temporal format and the height and width of the nodes. The temporal format indicates the granularity at which the temporal units that follow should be interpreted, and is indicated by a whole number corresponding to the format type, e.g., format 1 would indicate ``minutes.'' The height and width of the nodes are specified in the same scale as the coordinates used to describe their location.

  3. The Nodes section follows the preamble. Coordinates of the center of each node are specified when a node is declared (e.g., node 100 200 indicates a node at x = 100, y = 200). If coordinate information is missing from any node the entire graph will be laid out automatically, and all coordinate information in the file will be ignored.

  4. Each node declaration is immediately followed by a declaration of the data associated with that node, or `` nodedata.'' This is placed on a separate line. Nodes have a name (or ``tag'') and a sixtuple which are read in the format specified in the preamble. (e.g., nodedata my_name 10 posinf 20 posinf e posinf) The tag must not contain whitespace, and must be unique.

  5. If a node is a ``hierarchical'' (parent) node, the `` nodedata'' keyword will be replaced with `` hnodedata'', and the line following hnodedata will contain a number and a space-separated list of the ``child-nodes'' of this hierarchical nodes (the nodes abstracted or hidden by this node). A sample line might be: 3 Child-A Child-B Child-C, for example.

  6. Edges are declared after nodes so that there are no forward references. Each edge has a pair of names which suffice as tags to look-up the corresponding nodes, read in previously (e.g., edge from_node to_node.) The endpoints of the edge are determined by the nodes, so no coordinate information is stored with the edges. Note that order of the node names is significant. A third, optional parameter may be specified. This is a number indicating whether the contraint will be displayed or not. If not specified, the default display mode, indicated by the user's resource file, will be used. The number 2 requests display, while 1 requests the constraint not be displayed.

  7. Data associated with each edge are stored on the line(s) immediately following the edge declaration. These lines are indicated by prefixing the line with the token `` edgedata.'' Each line should define a convex (see [1]) relation on the edge. Multiple lines indicate non-convex disjunction. Qualitative/Linguistic relationships (before, meets, overlaps, equals, during, contains, starts, startedby, finishes finishedby, overlappedby, metby, and after) are allowed, even more than one on each line, so long as they are convex (e.g., edgedata before). Also, (before/after,overlaps/overlappedby) can take parameters by specifying a number representing ``distance'' in the file's format (e.g., if the format is days, then the distance should also be days). They are appended to the linguistic relation (e.g., before3-4, before-4, or before3-) When linguistic relations are not used, lines may contain an eight-tuple, indicating the Min/Max distance (in the file's format as appropriate) interval between start and start, start and finish, finish and start, and finish and finish (e.g., edgedata e posinf e posinf 3 4 e posinf).

Qualitative Relations

Valid qualitative constraints are sets of the following basic relations:

before meets overlaps
after metby overlappedby
starts during finishes
startedby contains finishedby

These relations are exactly those discussed in [4,5]. Additionally, the relations before, overlaps, overlappedby, and after may be given parameters to quantify their meaning. These parameters should be in the appropriate format for the file. Formats that use dates (i.e. (mm/dd/yy, ddmonyy etc.), have distances specified in days (no months or years). The syntax is allenMIN-MAX, as exemplified below - assume format 7 (M/D/Y, therefore use days):

``at most five [days] after'' after-5
``overlapped by at least two [days]'' overlappedby2-
``three to five [days] before'' before3-5

Either MIN or MAX or both must be specified. The list of allen relations must appear on a single line, and the relations should be separated by spaces.

Sample Tachyon File

2: // This file created by Tachyon: Temporal Constraint Network Editor 3.0 Beta
3: format 3
4: [-NODES-]
5: height 40
6: width 120
7: node 368 536
8: nodedata unnamed_1 neginf posinf neginf posinf e posinf
9: // This comment will annotate the node on line a:
a: node 218 358
b: nodedata unnamed_2 1 1 3 3 e 2
c: node 530 359
d: nodedata unnamed_3 neginf posinf neginf posinf e posinf
e: node 530 359
f: hnodedata HierNode neginf posinf neginf posinf e posinf
g: 2 unnamed_2 unnamed_3
h: [-EDGES-]
i: // This comment goes with the next edge (below)
j: // This comment, too.  Note '1' below means constraint not displayed
k: edge unnamed_2 unnamed_1 1
l: edgedata  before
m: edgedata  after
n: // Note next edge forces constraint display
o: edge unnamed_1 unnamed_3 2
p: edgedata  before
q: edgedata  after
r: // Note next edge displays if *showEdgeLabels: true
s: edge unnamed_3 unnamed_2
t: edgedata 1 2 1 2 1 2 1 2

This file indicates that numbers in it should be interpreted as ``days'' (format 3 - line 3). Nodes are 40 (pixels) high (5) and 120 wide (6) There are 3 nodes (7,a,c). The first node is named `` unnamed_1'' and is centered at (x=368,y=536) on the canvas. The sixtuple associated with it is (-oo,+oo,-oo,+oo,e,+oo) (8). There is a hierarchical (parent) node HierNode (e) that abstracts (contains or hides) unnamed_2 and unnamed_3. There are three edges (k,o,s), connecting each (leaf) node with the other two. Two of the edges (k-m,o-q) are non-convex, disjoint qualitative relationships ( before or after), while the third (s-t) is a convex, quantitative relationship ( (1,2),(1,2),(1,2),(1,2)).

Using the Batch Process


unix% tach -h

Tachyon: command-line version 4.0alpha
Copyright (c) 1992-1995 General Electric Co. All Rights Reserved.
Usage: tach [stdin|-file inputfile] [-format type]
        stdin   Take input from stdin (yes, type that word)
Type    Example
0       130             (seconds)
2       130             (hours)
4       13:45           (hours:seconds)
5       13:45:59        (hours:minutes:seconds)
6       130+13:14:59    (days+hours:minutes:seconds)
7       11/30/92        (month/day/year)
8       daymonyear      (10jul92)

By default tach reads input from stdin and places its output on stdout, using the temporal format specified in the input. These default values may be modified by providing optional arguments as shown in the usage above. tach will display the usage if any unknown option is used as an argument.

If -pretty is specified, output will be in a pretty-printed format. If -pretty is not specified, output will be in Tachyon file format.

When output is generated in Tachyon file format, input-comments are lost, and ordering of the nodes and constraints is probably different. If the network was found to be inconsistent, the second line of the output file will look like this:

// Network was inconsistent last solve

Using the Master-Script


unix% tachyon -h
Usage: tachyon [-batch | -gui] -file <filename> [other arguments]
(Type 'tachyon -batch -h' or 'tachyon -gui -h' for help on those modes)

This script will default to running the gui version, but allows for a fairly uniform method of calling on either the gui (xtach) version or the batch (tach) version. It will pass on arguments to the chosen executable. Since the batch version does not read the resources file, this script will extract the DataDirectory from the resource file and use it for the relative path name of the -file.

next up previous contents
Next: Future Enhancements Up: Tachyon 4.0 Alpha User Previous: Configuration

(c) 1996 General Electric Co.
Mon Dec 18 16:53:07 EST 1995