Jump to content

The Principia Machina/Diagrams/Key for structure diagrams: Difference between revisions

From The Invariance Itself
m 1 revision imported
m 1 revision imported
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{DISPLAYTITLE:Key for structure diagrams}}
#REDIRECT [[The Principia Machina/Diagrams/Structure key]]
{{TPM map}}
''Key for the structure diagrams. Part of [[The Principia Machina/Hub|the TPM hub]]. Hand-authored at TPS 0.1.0; every structure diagram links here.''
* KIND: key
* LANGUAGE: DOT
* USED BY: diagrams 01, 06, 12, C1, C2
* SOURCE SHA-256: <code>0db0d1dc4cc55aaa3c5977498c376a6a25b5d8982b12bb49a09cd510c2d3006d</code>
* TERMS: [[The Principia Machina/Diagrams/Terms|definition of terms]]; [[The Principia Machina/TPS 0.1.0/Contents|contents of the specification]]; [[The Principia Machina/Diagrams/Key for process diagrams|key for process diagrams]]
 
Rendered live from the source, shown under the drawing.
 
<div style="overflow-x:auto; max-width:100%; border:1px solid #c8ccd1; background:#ffffff; padding:0.5em;">
<graphviz>
// K2 Key for structure diagrams (DOT, Bachman form). Every shape used by the structure diagrams, with its meaning.
digraph K2_key_for_structure_diagrams {
  graph [rankdir=TB, fontname="Helvetica", fontsize=10, labelloc=t, nodesep=0.5, ranksep=0.6,
        label="K2  KEY FOR STRUCTURE DIAGRAMS"];
  node [shape=plaintext, fontname="Helvetica", fontsize=9, fontcolor="#202122"]; edge [fontname="Helvetica", fontsize=8, arrowhead=vee, color="#54595d", fontcolor="#202122"];
  OWNER [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="3" BGCOLOR="#eaecf0"><B>RECORD TYPE OR PAGE CLASS</B>&nbsp;where it lives (page, row, staging)</TD></TR>
    <TR><TD>identity: how one is named</TD><TD>who writes it</TD><TD>how it is allocated</TD></TR>
    <TR><TD COLSPAN="3" ALIGN="LEFT">field | field | field &nbsp;&nbsp;(the fields TPS names, in TPS's words)</TD></TR>
    <TR><TD COLSPAN="3">TPS addresses that state the rules for this type</TD></TR></TABLE>>];
  MEMBER [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>RECORD CLASS</B>&nbsp;lighter header: a class of register record</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">its fields</TD></TR>
    <TR><TD COLSPAN="2">addresses</TD></TR></TABLE>>];
  REF [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD BGCOLOR="#eaecf0"><B>ANOTHER TYPE</B></TD></TR><TR><TD>addresses</TD></TR></TABLE>>];
  OWNER -> MEMBER [label="SET NAME
A solid arrow is a set: owner to member.
The label is the set's name, then the rule
(order, count, who allocates), then addresses"];
  OWNER -> REF [label="CHECKED AGAINST
A dashed arrow is a check or
verification relationship, not ownership", style=dashed];
  MEMBER -> REF [label="POINTER
A dotted arrow is a reference held in a
field: a back-pointer, a WORKLOAD pointer", style=dotted];
  MEMBER -> MEMBER [label="CITES
A loop is a set among records
of the same type"];
  REF -> L1 [style=invis];
  subgraph cluster_simple { label="Shapes in the simpler structure diagrams (01, 06, 12)"; style=filled; fillcolor="#f8f9fa";
    node [shape=box, style=""]; L1 [label="plain box: a layer, page or object"]; L2 [label="three-dimensional box:
the Public Recorder, the host", shape=box3d];
    L3 [label="octagon: a digest", shape=octagon]; L4 [label="note: a certificate or
a chain line", shape=note]; L5 [label="diamond: a gate or check", shape=diamond];
    L1 -> L2 [label="solid: the relation named on the label", arrowhead=vee]; L2 -> L3 [label="dashed: a parameter or an audit relation", style=dashed]; L3 -> L4 [label="dotted, no head: hosts or holds", style=dotted, arrowhead=none];
  }
}
</graphviz>
</div>
<!-- Fallback image, if H-OP uploads the rendering: [[File:TPM diagram K2 Key for structure diagrams.png|thumb|900px|Key for structure diagrams, rendered from the source above]] -->
<div class="mw-collapsible mw-collapsed" style="border:1px solid #c8ccd1; padding:0.3em;">'''Source''' (the text equivalent; DOT)
<div class="mw-collapsible-content">
<pre>
// K2 Key for structure diagrams (DOT, Bachman form). Every shape used by the structure diagrams, with its meaning.
digraph K2_key_for_structure_diagrams {
  graph [rankdir=TB, fontname="Helvetica", fontsize=10, labelloc=t, nodesep=0.5, ranksep=0.6,
        label="K2  KEY FOR STRUCTURE DIAGRAMS"];
  node [shape=plaintext, fontname="Helvetica", fontsize=9, fontcolor="#202122"]; edge [fontname="Helvetica", fontsize=8, arrowhead=vee, color="#54595d", fontcolor="#202122"];
  OWNER [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="3" BGCOLOR="#eaecf0"><B>RECORD TYPE OR PAGE CLASS</B>&nbsp;where it lives (page, row, staging)</TD></TR>
    <TR><TD>identity: how one is named</TD><TD>who writes it</TD><TD>how it is allocated</TD></TR>
    <TR><TD COLSPAN="3" ALIGN="LEFT">field | field | field &nbsp;&nbsp;(the fields TPS names, in TPS's words)</TD></TR>
    <TR><TD COLSPAN="3">TPS addresses that state the rules for this type</TD></TR></TABLE>>];
  MEMBER [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD COLSPAN="2" BGCOLOR="#f8f9fa"><B>RECORD CLASS</B>&nbsp;lighter header: a class of register record</TD></TR>
    <TR><TD COLSPAN="2" ALIGN="LEFT">its fields</TD></TR>
    <TR><TD COLSPAN="2">addresses</TD></TR></TABLE>>];
  REF [label=<<TABLE BORDER="1" CELLBORDER="1" CELLSPACING="0" CELLPADDING="3">
    <TR><TD BGCOLOR="#eaecf0"><B>ANOTHER TYPE</B></TD></TR><TR><TD>addresses</TD></TR></TABLE>>];
  OWNER -> MEMBER [label="SET NAME
A solid arrow is a set: owner to member.
The label is the set's name, then the rule
(order, count, who allocates), then addresses"];
  OWNER -> REF [label="CHECKED AGAINST
A dashed arrow is a check or
verification relationship, not ownership", style=dashed];
  MEMBER -> REF [label="POINTER
A dotted arrow is a reference held in a
field: a back-pointer, a WORKLOAD pointer", style=dotted];
  MEMBER -> MEMBER [label="CITES
A loop is a set among records
of the same type"];
  REF -> L1 [style=invis];
  subgraph cluster_simple { label="Shapes in the simpler structure diagrams (01, 06, 12)"; style=filled; fillcolor="#f8f9fa";
    node [shape=box, style=""]; L1 [label="plain box: a layer, page or object"]; L2 [label="three-dimensional box:
the Public Recorder, the host", shape=box3d];
    L3 [label="octagon: a digest", shape=octagon]; L4 [label="note: a certificate or
a chain line", shape=note]; L5 [label="diamond: a gate or check", shape=diamond];
    L1 -> L2 [label="solid: the relation named on the label", arrowhead=vee]; L2 -> L3 [label="dashed: a parameter or an audit relation", style=dashed]; L3 -> L4 [label="dotted, no head: hosts or holds", style=dotted, arrowhead=none];
  }
}
</pre>
</div></div>
 
; record box : a record type or page class, in Bachman form. Header: the name and where it lives (page, row, staging). Second row: identity, writer, allocation. Field rows: the fields TPS names. Last row: the TPS addresses.
; lighter header : a class of register record (withdrawal, corroboration, named-gap, verification, entry-status).
; solid arrow : a set, owner to member; the label is the set's name, then the rule (order, count, who allocates), then addresses.
; dashed arrow : a check or verification relationship, not ownership.
; dotted arrow : a reference held in a field, such as a back-pointer or the WORKLOAD pointer.
; loop : a set among records of the same type (CITES).
; in the simpler diagrams 01, 06 and 12 : plain box a layer, page or object; three-dimensional box the Public Recorder; octagon a digest; note a certificate or chain line; diamond a gate.
 
[[Category:The Principia Machina]]



Latest revision as of 06:09, 22 September 2026