Branching Sequences

The currently implemented Sousa sequence (sousa/linear-seq) only handles a linear display of media elements (including Sousa page objects). Other kinds of sequencing are possible such as the branching sequence.

Sequence Flow

The proposed sequence is technically a "branching sequence with merges", as shown in Learning Structures, Process Flow. In this structure, flow may branch based on user choices. Later, these branches may merge back into mainline or shared sequence lines.

At each node, one of the following are possible:

  1. The line terminates. User must exit.
  2. The line branches. Up to four branches seems reasonable.
  3. The line merges into another note. Sequencing continues.

The Branch with merge structure allows alternatives to be explore

Navigation Elements

The linear sequencing in the current Sousa release uses next and previous buttons to move through the open sequence. Once branching is added, new approaches to navigation are necessary.

Forward Navigation

Two kinds of forward branch navigation are envisioned: a drop down selection where next appears (or next if only one choice exists), and navigation links embedded in the content.

Backwward Navigation

Since it is possible to reach a given page (or sequence node) from more than one place, the sequence tool needs to retain the current path through the sequence. This gives access to the last page viewed without worrying about backwards branching.

Termination

It is necessary to flag a sequence node (or page) as being a terminal node.