johnwdubois / rezonator

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

Clique stats - automatic #936

Open johnwdubois opened 3 years ago

johnwdubois commented 3 years ago

Background

  1. Clique stats represent basic descriptive information, automatically generated by Rezonator, about cliques and the rez chains they contain.
  2. Knowing the stats for a clique and its rez chains may be useful for:
    • aligning and mapping words to screen rows/columns
    • identifying the flaws and limitations of a given clique (or diagraph)
    • avoiding the race to infinity
    • evaluating cliques for scoring games
    • exporting clique stats for analysis in external tools (e.g. rezonateR)
    • understanding resonance
  3. Clique stats are part of the broader domain of graph stats, answering such questions as:
    • What are the dimensions of this clique - chain count, clique length, width, range, etc.?
    • What are the dimensions of each chain in the clique - chain length, width, range, etc.?

What to do

  1. Rezonator should automatically generate the following values for chains and cliques, as appropriate.
    • Chain stats should be saved in the node map as tags attached to the appropriate resonance chain.
    • Clique stats should be saved in the node map as tags attached to the appropriate clique.
  2. Calculate the relevant stats as follows:
Field Variable Description Domain Notes
ChainCount ChainCount Count of chains clique
PushCount PushCount Count of chains pushed by a given chain chain
LinkCount LinkCount Count of links chain, clique
EntryCount EntryCount Count of entries chain, clique
TokenCount TokenCount Count of tokens chain, clique
StretchCount StretchCount Count of stretches chain, clique
VoidCount VoidCount Count of voids chain, clique
Tilt see #79 chain, clique
Cross see #80 clique
Void see #77 #91 chain, clique
MaxTilt clique
MaxCross clique
MaxVoid clique
Length count of units Chain, clique
Range topUnitSeq sequence number of first unit chain, clique
Range bottomUnitSeq sequence number of last unit chain, clique
Range range bottomUnitSeq - topLineSeq chain, clique
Width startCol startmost column number of any token/entry chain, clique leftmost(LTR), rightmost (RTL)
Width endCol endmost column number of any token/entry chain, clique rightmost (LTR), leftmost (RTL)
Width chainWidth endCol - startCol +1 chain, clique ChainWidth = 1 (ideal)
Duration startTime lowest start time of any unit chain, clique If no time-stamps, ignore.
Duration endTime highest end time of any unit chain, clique (Note: not necessarily from last unit of chain)
Duration Duration endTime - startTime chain, clique

Additional context

  1. Show the relevant stats in:
    • left pane ("One" pane) of the relevant chain/clique
    • right pane (Many pane) of the relevant chain/clique
    • Node map (& REZ file)
    • CSV export of chain & clique tables
  2. Depending on the kind of stat involved, it may be easy or difficult to calculate them on the fly: Each stat evaluation should be assigned one of 2 conditions:
    • calculate on the fly (if easy)
    • calculate only when the user presses the SUBMIT button (if hard to calculate on the fly)
  3. In some cases, similar chain stats may be relevant to other chains as well, including trails and stacks.
  4. durationProper: calculated like duration, but should exclude flawUnits, as follows:
    • gapTime = sum of the duration (in seconds and milliseconds) of lines that are within the Range, but are not included in the clique, stack, or chain
  5. heightProper: calculated like range, but should exclude flawUnits, as follows:
    • flawUnitCount = count of units that are within the range, but are not included in the clique, stack or chain
    • heightProper = range - flawUnitCount|chain, clique|

Further development It may be useful to offer additional ways of measuring size, which are relevant for different types of units. For example, offer the user a choice between:

Related to

81

79

80

77 #91

terrydubois commented 3 years ago

ChainCount and UnitCount are complete, in left Clique pane.