Low-Level Notebook Structure

Like everything else in the Wolfram Language, notebooks are ultimately symbolic expressions. When you edit notebooksor apply high-level programmatic functionsthe Wolfram Language automatically updates these expressions. But if you look at the lowest levelsay by opening a notebook file as textyou will see the underlying expressions, in which formatting constructs are represented as a hierarchy of low-level symbolic "boxes".

toggle between formatted display and underlying symbolic expression

Notebook low-level symbolic representation for a notebook

Cell low-level representation for a cell in a notebook

CellGroupData low-level representation for a cell group in a notebook

BoxData low-level representation of the contents of a typesetting cell

TextData  ▪  RawData  ▪  StyleData

RowBox low-level representation for a row of arbitrary elements

GridBox low-level representation of an arbitrary 2D layout

SuperscriptBox  ▪  SubscriptBox  ▪  SubsuperscriptBox

OverscriptBox  ▪  UnderscriptBox  ▪  UnderoverscriptBox

FractionBox  ▪  SqrtBox  ▪  RadicalBox

StyleBox low-level wrapper specifying styles and style options to apply

FrameBox  ▪  AdjustmentBox

InterpretationBox representation of arbitrary boxes with a specific interpretation

TagBox representation of boxes with a tag expression to provide interpretation hints

TemplateBox representation of parameters substituted into specific display and interpretation functions

FormBox representation of boxes to be displayed and interpreted as a given form

ErrorBox representation of uninterpretable box contents

DisplayFunction  ▪  InterpretationFunction  ▪  CopyFunction  ▪  AutoDelete  ▪  DeletionWarning  ▪  StripWrapperBoxes  ▪  SyntaxForm