Reading the Chart
Inspecting Mode
Editing Mode
Testing Mode
Episode Statistics
Experimenting Mode
Summarizing Mode
Generalizing Mode

The chart is a kind of graph showing relations among actions.

Many charts fit within the standard window. Very large charts cause scrollbars to be added to the window so that you can examine all parts of the chart.

A Function menu appears in the dark area above the chart. The different functions that are available in the Function  menu are discussed below.

Reading the Chart

Actions are represented on the chart by their short names.

The program may truncate short names to prevent overlapping in a crowded chart. Clicking the mid-point of a truncated name while holding down the Control key shows the untruncated name in a dialog, plus the full action description if a description has been provided for the action.

A name may be dragged to a different position. Repositioning lasts until the program redraws the entire chart.

Font styles used to print action names convey information. A plain style is used for concrete actions with conjunctive prerequisites - that is, all prerequisites have to happen before the focal action can happen. Italic shows actions with disjunctive prerequisites - that is, only one prerequisite has to happen before the focal action can happen. Bold is used for generalized actions.

Lines represent relations between actions.

Black lines represent implications. Occurrence of the bottom action implies occurrence of the top action. In other words, the action at the top of a black line is a prerequisite for the action at the bottom, and the bottom action cannot occur until after an occurrence of the top action.

Magenta lines stand for a commutation relation, in which the bottom action becomes a prerequisite for the top action, after an initial occurrence of the top action.

An example of commutation is entering and leaving a room. Entering is required before leaving can occur. But having entered, one must leave before entering again. The two actions commute. An Event Structure Analysis  chart would represents this relation by a black line going down from enters room to represent the requirement of entering before leaving. The chart also would show a magenta line going up from leaves room to enters room to represent the requirement of leaving before entering again.

Yellow lines stand for a relation in which a concrete action instantiates a general action. When the concrete action occurs, we can say that the general action has occurred as well.

An example of instantiation is a corporate executive parking in the company garage. When this occurs, we can say the executive has gone to work. Parking in the company garage instantiates going to work.

Several procedures impose a dialog window over the chart. You may drag the dialog window to a different position to reveal the chart underneath.

Inspecting Mode

Tracing upward along black lines from a focal action reveals the set of actions that have to happen before the focal action can happen. Tracing downward is going "deeper": e.g., someone who engages in an action lower on the diagram is "deeply" involved in the incident.

The chart initially appears in Inspecting mode, and in this mode you may click an action to highlight its linkages. Actions linked to the clicked action - upward and downward, directly or indirectly - are displayed white-on-black. Click in any blank area to remove highlighting from all actions.

Editing Mode

Having selected Editing from the Function menu, you can operate directly on the chart to add, delete, or modify an implication. Click on an action and it will be highlighted. Click on a second action, and it, too, will be highlighted. The relation of interest is between these two actions.

A dialog window appears over the chart.

Hold down the Shift key while clicking the actions if you want to create, or eliminate, commutation between actions. The dialog window will ask if you want to toggle commutation. Answering okay adds commutation when the actions do not have commutation initially; answering okay removes commutation when they do have a commutative relation currently.

Testing Mode

The diagram looks different than usual after you select Testing from the Function menu. The name of the first action in the sequence will be printed on a red field. Names of other actions that are possible at that point will be printed on yellow fields. In general:

Red field
This action is occurring currently.
Yellow field
This action could be occurring; its prerequisites are fulfilled.
Aqua field
This action has been accomplished and is not yet depleted by a consequence.

The diagram changes after you click anywhere on the chart, causing the first action to be "done". The red action now is action 2 in the sequence. The first action is printed on an aqua field, indicating that it has happened and no other action has yet made use of its effects. As you continue clicking, you will see yellow fields appearing as new actions are enabled, and aqua fields disappearing as occurrence of later actions uses up the effects of earlier actions.

Keep clicking until the program informs you that you have reached the end of the action sequence.

To make actions in the sequence occur automatically, hold down the Shift key when you click on the chart.


You probably will be interrupted before you reach the end because some action violates assumptions of the process model. When the program comes to such a case, it superimposes an Amelioration dialog on the chart and tells you what's wrong. There are two basic possibilities.


Occurrence of the next action may be impossible because all of its prerequisites are not fulfilled. The program suggests ways of fixing this, which may or may not include all of the following.

Let's call the next action "action X" and the problematic prerequisite "action P". Then P may have been used up recently by some other action Y, and thus P's consequences no longer are available to enable X, or prime it. In this case the problem could be solved by changing the logical structure so that P isn't a prerequisite for Y. Then Y's occurrence wouldn't use up P, and P still would be available for X after the occurrence of Y. The program will suggest such possibilities if there was an action that used P since the last occurrence of X. The program also will suggest that the problem could be solved just by eliminating P as a prerequisite of X.

Another solution is possible by allowing that P is a prerequisite for Y, but Y does not use up P: then P's effects still would be available to enable X.

Instead of focusing on the model, we might suppose that the record of actions is inaccurate. Maybe there was an occurrence of P after Y, but it didn't get recorded. The program will suggest this possibility if an unfulfilled prerequisite is enabled and possible right before the occurrence of X.

It's possible that the logical structure has to be interpreted in a special way. Maybe P is one of the prerequisites of X but not necessary for P, because X can be enabled by any one of its prerequisites. That is, X is enabled by one of its prerequisites OR another, rather than by the combination of all of them. The program will suggest the possibility of disjunctive prerequisites if X has multiple prerequisites and at least one of them has occurred and not been used up. If X already has been made into an action with disjunctive prerequisites, then the program will list actions that happened recently and suggest that one of these might be another disjunctive prerequisite of X that enables X at the moment.

Possibly an action that depends on X also enables it. For example, suppose someone entered a room (X), then left the room (Q), then entered again. Q depends on X, but Q also enables the second occurrence of X - the two are connected in a commutation loop. When possible, Ethno will offer this solution to the problem of X being unprimed. Adopting the solution makes X into an action with disjunctive prerequisites and adds a relation from Q to X which is displayed in magenta.


Alternatively, the next action (X) may be impossible because it has gone unused since its last occurrence. The program has a number of ways of dealing with this problem, too.

Perhaps X is a prerequisite for one of the actions that occurred since the last occurrence of X. Then X would have been depleted, and it would make sense to do X again. The program will suggest this possibility for any actions that occurred just once since the last occurrence of X.

The program will ask if X can be repeated without regard to whether X was depleted by some other action. If repeatable, X may occur any number of times without another action making use of X'x consequences.

You might want to deplete X by adding a new action that makes use of X's products. The program will offer the opportunity to define the new action by entering its short name.

On the other hand, maybe the action record is wrong, and some action that uses X did occur but didn't get recorded. The program will list actions that require X and that are ready to occur just before X is to occur again.

Implementing a Solution

The Problem dialog tells you which action is problematic and what kind of problem has occurred. All solutions are listed in a scroll box so you can consider the different options before making a choice. One particular solution is presented below the scroll box, and this is the one that will be implemented if you click the Adopt this solution button. However, you can change the implementable solution by clicking the Go to next solution button.

A popup menu appears in some of the proposed solutions. It lists all the different actions that can be used with the given solution, and you must select the one you want before clicking the Adopt this solution button. (Sometimes there is only one item in the popup menu.)

A text field for entering a short name appears when the program offers the opportunity to add a new action. Type the name of a new action before clicking Adopt this solution. The Problem dialog will be replaced by the Relation dialog (described in the section above on Editing Mode), so you can define the relation between the problem action and the new action.

After you adopt a solution, click the Done button. The program reruns the analysis from the beginning of the action sequence to make sure the change doesn't create inconsistencies earlier in the sequence. It stops and waits for you to continue when it reaches the action you fixed.

You may forego all proposed solutions by clicking the Done button on the dialog window without clicking the Adopt this solution button. This allows you to look at the sequence or the definitions of some actions before making a decision about how to fix the problematic action.

Episode Statistics

A Completion Dialog appears when every action in the sequence has been tested successfully. The dialog announces that all actions have been tested, and tells you that action statistics are available on the Java console. Clicking the Cancel button makes the dialog disappear, leaving the chart as it was at the beginning of testing.

If you look at the Java console, you will see a table comprised as follows.

The topmost numerical entry in the table, Number of defined actions, reports how many entries currently are in Ethno's Actions menu. The next numerical entry, Number of action occurrences, reports how many lines currently are in the Sequence listing.

A three-column table with a row for each defined action appears below the first two numerical entries. The columns are labeled FREQUENCY, PRIORITY, and ACTION

ACTIONis the short name of the action considered on that row. The rows are sorted alphabetically by the actions' short names. Names of generalized actions are tagged with an underline as the first character.

FREQUENCY is the number of times the action appears in the Sequence listing.

PRIORITY is an indicator of an action's salience, of how soon individuals implemented an action once it was feasible. The priority indicator roughly corresponds to the percentage of times the action occurred out of all the times the action was primed and ready to occur. Precisely, the value is the number of times the action occurred (fe), divided by one plus the number of times the action occurred, plus the number of times the action was possible but its occurrence was preempted by some other action (fo), with the overall quotient multiplied by 100 to produce a percentage-like value. In algebraic terms, the priority indicator is the following: 100 f/ (1 + fe + fo).

One is added to the denominator to mute values based on small numbers. For example, suppose an action occurred immediately the one time it was possible. In this case, the action occurred 100% of the time that it was possible, but the priority indicator is 50 to reflect the fact that the computation is based on a single instance. On the other hand, suppose an action occurred immediately all nine times that it was possible. Again the action occurred 100% of the time it was possible, but the priority indicator is 90 in this case, reflecting the fact that the computation is based on more instances and therefore is a more dependable indicator of high priority.

The table may be selected by dragging through it, copying with a keystroke command (e.g., Control-C on Windows computers), and pasting into a text file. Then the text file can be imported into a spreadsheet to sort the rows of the table on frequency or on priority. Column entries are separated by tabs to facilitate importing into a spreadsheet.

Experimenting Mode

Selecting Experimenting from the Function menu produces a change similar to selection of Testing mode: actions that are feasible appear on a yellow field. However, no action is shown as occurring (on a red field) because Ethno ignores the stored sequence of actions while operating in Testing mode. Instead, you define a sequence of actions by clicking on one action after another.

Clicking on an action causes the action to be displayed on an aqua field, indicating that the action now has been accomplished, and its accomplishments are yet to be depleted by other actions. Clicking also causes actions that are enabled by the accomplished action to be shown on a yellow field, indicating that they could happen now.

Clicking only on yellow entries produces a string of actions that conforms to the rules defined in the model. Thus Experimenting mode allows you to see how the model defines a variety of episodes, each consisting of a "grammatical" string of actions.

If a model includes generalizations, then the generalized actions occur when their instantiations are clicked. Clicking generalized actions causes occurrence of the generalized action without causing any instantiation to occur.

Clicking in a blank area resets the chart to its initial state in Testing mode.

Clicking on an action alternatively may cause the Amelioration dialog to appear. This means that there is something doubtful about occurrence of the action at that point. The dialog indicates why there is a problem and suggests ways that the problem could be fixed, as discussed above under Testing mode.

Caution: Adopting a solution presented in the Amelioration dialog permanently changes the model, the same as in Testing mode.

Summarizing Mode

After you select Summarize in the Function menu, the program finds every network of actions that can be traced back to a single prerequisite, and that flows down to a single consequence, with at least one intervening action. A network of actions of this kind can be interpreted as a single action, and in principle such a network might be summarized by a single action name.

Computations take a noticeable amount of time if a large number of actions are in the model. They culminate in a dialog appearing above the chart.

A scrolling list titled Summarizable sequences records each of the networks, using the name of an action or two. Clicking on a line highlights the whole network on the chart.

You can use these results to simplify a model. Select the network that you want to summarize, type a name in the dialog field called Short name for summary action, then click the button labeled Summarize sequence permanently. The actions in the network are suppressed from view and a single action with the new name takes their place.

Caution: save your data with the Import-Export option in the Operations menu before summarizing, in case you want to see the detailed actions again.

The dialog window also contains a Done button. Click this button to leave the dialog without changing data.

Generalizing Mode

Generalized actions refer to more abstract kinds of people and actions than concrete actions. A concrete action instantiates a generalized action if occurrence of the concrete action is reason to say that the generalized action occurred as well.

For example, the concrete action, "John grounds Tommy," might correspond to the generalized action, "parent disciplines child." An occurrence of "John grounds Tommy" is an instantiation of "parent disciplines child."

The program allows you to formulate a model of generalized actions in parallel with a model of concrete actions.

Select the Generalizing option in the Function menu. This causes a dialog to appear above the chart.

Entering a name in the field titled Short name for new generalized action and clicking the Incorporate new action button adds a generalized action to the data. The generalized action will be listed in the Events menu when you leave the dialog.

Each generalized action that you define appears in a popup menu on the right of the dialog window. The popup menu on the left lists all concrete actions in the system.

Below each popup menu is a text box that presents the full description for the action selected in the popup menu above the box. In the case of generalized actions, you can type in the box, allowing you to create or edit descriptions for the generalized action selected in the popup menu above the box.

Instantiations are established by selecting a concrete action in the left popup menu, selecting a generalized action in the right popup menu, and clicking the Instantiates button. The button then changes to Delete link.

The Instantiates button appears when you align a concrete action and a generalized action that are unconnected. The Delete link button appears when you align a concrete action and a generalized action that are connected by an instantiation relation.

Enter all generalized actions and establish their instantiations. Click the Done button to leave the dialog.

The program sets the time ordering of the generalized actions to the time ordering of their instantiations. But the program does not presume that the logical relations among generalized actions can be computed from the logical relations of the instantiations. Instead, you must link the generalized actions one by one. Define instantiations so that the program knows the time ordering of the generalized actions. Then select the Link actions option in the Operations menu. The program will present questions about the generalized actions, allowing you to establish which are prerequisites for which.

The chart will show yellow instantiation lines connecting concrete and generalized actions, after the generalized actions have been linked. Generalized actions are displayed in boldface, and the names are printed somewhat lower than concrete actions to reveal instantiating lines.

You can refine the generalized model by selecting Testing in the Function menu, and clicking through the actions in the standard way. Generalized actions will happen along with their concrete instantiations.


Select Print in the Function menu to print the chart on paper. A Page Setup dialog will appear, followed by a Print dialog. Specifications of paper size, margins, and portrait-versus-landscape must be made on the Page Setup dialog rather than on the Print dialog. (The Print dialog can be used to cancel the print job, and to adjust the printer.)

Ethno formats the chart automatically to fit the printed page. Changing paper size, margins, and portrait-versus-landscape usually changes the formatting of the chart.

Saving the Chart

Here is a kludge to save the chart as a graphic.