johnwdubois / rezonator

Rezonator: Dynamics of human engagement
34 stars 1 forks source link

Nested Stacks #134

Open johnwdubois opened 5 years ago

johnwdubois commented 5 years ago

What is needed Nesting is about creating a tree structure for units of various types (Words, Chunks, Stacks, Chains). The Tree allows the user to include several units inside another unit, whether of the same type or a different type. For example:

How to make a Nested Stack

  1. Level 1 Stacks are the lowest level of Stack. These Stacks are displayed just as they are now. They are not considered nested (Nest = 0 Boolean), and/or NestLevel = 1)
  2. The user chooses the Group tool (similar to the GameMaker Studio function for grouping several scripts together).
  3. In the Nav Window, the user drags down across the labels for 2 or more Stacks. This groups these Stacks together into a single higher-order unit (creating the next higher level of Stack).
  4. Thus, dragging across a few Level 1 Stacks (ordinary Stacks) creates a Level 2 Stack; dragging across a few Level 2 Stacks creates a Level 3 Stack, etc.
  5. The same concept can be applied to nesting Chunks inside Chunks, etc.

Visualization

  1. In the following image, Level 1 is the basic Stack that we have now. Level 2 shows what it would mean to have several Level 1 Stacks nested inside a Level 2 Stack. At the next level, we see several Level 2 Stacks nested inside one Level 3 Stack. And so on, up to Level 4.
Nested stacks - sketch 4
  1. One possible visualization is to show this with bars in the right margin of the main screen, while another is to use colors in the Nav window.
  2. In the main screen version (shown in the image above), a Level 2 Stack is represented by a vertical bar of color along the right margin of the screen, extending vertically along the length of the Level 1 Stacks that are nested inside it. (Nest = 1, NestLevel = 2)
  3. If there is a Level 3 Stack, it is another vertical bar of color, to the right of the Level 2 bar, extending the full length of the Level 2 Stacks that are nested inside it. (Nest = 1, NestLevel = 3)
  4. Users should be able to click on a Level 2 Stack, rename it, delete it, etc.

Future development: Tree structure, Groups, and Nesting in general

  1. Nested Stacks can be used to mark a Tree structure: a hierarchy of discourse Topics (see #87).
  2. There are other potential contexts for nesting besides Nested Stacks. These include various hierarchical, one-to-many relationships:
    • A prosodic sentence contains several intonation units (lines)
    • A Turn contains several intonation units (lines)
    • An intonation unit contains several words, then letters,
    • A "side" of a conversation contains several turns, etc.

Additional context This is related to Topic (see #87 ).
For StackShow tutorials and games, each Stack nested inside a larger Stack can become an element in the StackShow (and can participate in game play, etc.).

johnwdubois commented 4 years ago

Updated the ticket to reflect @terrydubois suggestion to treat this like the Tree function in GameMakerStudio 2, that lets you group several scripts together.

johnwdubois commented 4 years ago

This is the perfect tool to implement Questions & Answers.