Tinderbox 8 Icon

Hierarchy of Content

Hierarchy of Content

A Tinderbox document has two basic kinds of structure: one is the structure formed by links between notes. The other is the hierarchical structure of the document. A Tinderbox note can contain other notes, which can contain other notes, and so on. The notes can thought of this as chapters containing sections containing divisions; or topics containing sub-topics; or in any way that fits the user's workflow.

Several terms are used to describe relationships within a hierarchy:

  • parent: the item one level up. A parent note contains one or more child notes (children), and thus contains one or more levels of sub-notes. A parent note may also be referred to as a 'container' as is contains other notes.
  • siblings: items that have the same parent.
  • child: an item one level down. In Tinderbox, when a note contains other notes, those notes are its children. A child note is thus any note that has a parent note — i.e. it is not a top level note.
  • descendant: a child, or a child of a child, and so on.
  • ancestor: a parent, or a parent of a parent, and so on.
  • grandparent: specifically the parent of a note's parent.
  • root: the item that has no parent. In a Tinderbox document, the document as a whole is the root: it contains the top-level notes, and nothing contains it. Root level notes have $OutlineDepth of 1.
  • cover: the top level note. If more than one root-level note, the cover it the oldest sibling.

In the image, notes named as for designators are in red. Note that designators are case-sensitive when used in export/action code; by convention designators are normally not quoted in action code, although they are strings.

There are several group terms to describe Tinderbox notes:

  • all: all notes in the current TBX file.
  • ancestors: all ancestors.
  • children: all children.
  • descendants: all descendants - i.e. all children and their children.
  • sibling: all siblings.

Any note containing other notes is a 'container'; put another way, a container is any note that has children/descendants. Agents are a special class of container, holding an alias to every note matching the query stored in their $AgentQuery attribute.