Original computational notebook (.nb = a Wolfram expression); confirms UC-84 notebook page shape is a genus. Refinements: nestable cell groups (outline tree), structured re-evaluable outputs (new opacity point). Manipulate/Dynamic = snapshot-only. Enrichment-only (UC-84/54/55). Marks T2 done. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
8.2 KiB
Mathematica Notebooks — deep dive (findings)
Date: 2026-06-14 · Source: SHARD-WP-0004 T2 · Subject: Wolfram Mathematica
Notebooks — the .nb format, the cell/expression model, symbolic evaluation.
Why this dive
Mathematica (1988) is the original computational notebook — the ancestor Jupyter (T3) descends from. This dive checks whether the notebook page-model conclusions from UC-84 hold at the genus level or need extension. It is medium priority / lineage: a candidate content type like Jupyter, but closed/proprietary, so the expected yield is reinforcement of UC-84 plus a couple of distinct wrinkles (the document is itself a Wolfram-language expression; symbolic, not just textual, results).
1. The .nb document model
A Mathematica notebook is itself a Wolfram Language expression — Notebook[{Cell[...], Cell[...], ...}, opts]. So the document format and the language are the same substrate:
- Cells are typed:
Input,Output,Text,Title/Section(structure),Code, with cell groups nesting into an outline tree (the document has real hierarchy, not just a flat list like.ipynb). - An
Inputcell holds an expression; evaluating it produces a linked **Outputcell** containing the **result expression** (symbolic, graphical viaGraphics[...]`, or typeset). The result is a first-class expression, not a MIME blob — it can be re-evaluated, edited, transcluded. - The whole
.nbis plain-text-serializable (it's an expression) but verbose and proprietary in conventions; output cells are cached results stored in the file.
So like Jupyter: source + cached computed output fused in one document, with out-of- band reproducibility (kernel + package/version state). Unlike Jupyter: nested cell groups (a tree) and results that are structured Wolfram expressions rather than MIME bundles.
2. Evaluation, provenance, reproducibility
- A kernel evaluates input cells;
In[n]/Out[n]counters mirror Jupyter'sexecution_countand carry the same fragility (out-of-order evaluation, hidden symbol/global state, kernel-version dependence). No environment capture in the file. - Dynamic/interactive output (
Manipulate,Dynamic) embeds live interactive widgets whose state is computed on view — these have no faithful static form beyond a snapshot frame (echoes Strudel T5's "live, time/interaction-based content" limit). - CDF (Computable Document Format) is Wolfram's projection-for-distribution: a notebook rendered with a free runtime so readers can interact without a full license — a derivation-projection (T1) with a reduced-capability viewer.
3. Capability profile (delta vs Jupyter UC-84)
| Dimension | Mathematica .nb (delta from Jupyter) |
|---|---|
| Structure | nested cell groups → outline tree (richer than .ipynb's flat cell list) |
| Output type | structured Wolfram expressions (symbolic/graphics), not MIME blobs |
| Document = language | the .nb is a Wolfram expression (format ≡ language) |
| Liveness | Manipulate/Dynamic = interactive widgets, snapshot-only when static |
| Opacity | proprietary serialization; results re-evaluable only with a Wolfram kernel |
| Projection-for-distribution | CDF = reduced-runtime interactive projection |
| Otherwise | same as UC-84: cells, cached outputs, fragile In/Out provenance, kernel-gated |
4. INTENT mapping
Reinforcements (mostly confirms UC-84)
- Notebook page shape (UC-84) is a genus, not a Jupyter quirk. Mathematica predates and
matches it: cells + cached computed outputs + fragile counter provenance + kernel-gated
re-execution. Confirms the page model should carry a notebook shape generically (T12),
not a
.ipynb-specific one. - Outputs as derivation-projection snapshots (UC-83/84). Cached
Outputcells are snapshots; honest treatment marks them "evaluated run N, kernel/env unguaranteed." - Derivation-projection for distribution (T1). CDF is a clean "reduced-capability interactive projection of a source" — a real-world instance of degrade-by-capability.
Distinct wrinkles (extend the notes, not new UCs)
- Nested cell-group outline — the notebook page model should allow hierarchical cell grouping, not just an ordered list (generalize UC-84's "ordered cells" to "ordered/ nestable cells"). Feeds T12.
- Structured (non-MIME) results — outputs can be typed structured values (symbolic expressions), not only MIME blobs; reinforces UC-55's "typed asset" reading over "opaque blob," and links the typed-record page model (UC-34) — the content-opacity spectrum needs a "structured re-evaluable value" point, not just text↔blob.
- Format ≡ language — a curiosity, not actionable for us beyond noting that some shards' document format is the same artifact as their computation (don't assume doc/code split).
- Live interactive widgets —
Manipulate/Dynamicjoin Strudel (T5) at the static-projection-impossible end: capture a snapshot frame, never imply interactivity.
Boundaries
- Proprietary + kernel-gated → default read/projection/snapshot; attach the
.nb(or an exported form), present cached outputs as snapshots, offer a static/CDF projection; no kernel host (same rule as Jupyter UC-84, GT T7).
5. UC disposition (enrichment-only — no new UC)
| Mechanism (findings §) | Catalog UC |
|---|---|
| Cells + cached computed outputs + fragile In/Out provenance; kernel-gated (§1, §2) | UC-84 (reinforced) |
Nested cell groups → outline tree (richer than flat .ipynb) (§1) |
UC-84 (enriched: nestable cells); links UC-34 |
| Output = structured re-evaluable Wolfram expression, not MIME blob (§1) | UC-55 (enriched: structured value point on opacity spectrum) |
| Input cell = computation-defined content (§1) | UC-54 (enriched) |
Manipulate/Dynamic interactive output = snapshot-only (§2) |
links UC-55, foreshadows T5 |
| CDF = reduced-runtime interactive distribution projection (§2) | links UC-83 (derivation-projection) |
Mathematica is a lineage/reinforcement dive — it adds no new UC, confirming UC-84's notebook page shape as a genus and contributing two refinements (nestable cells; a structured re-evaluable value point on the content-opacity spectrum).
6. Architecture notes for SHARD-WP-0002
- T12 (page model): generalize the notebook shape from "ordered cells" (UC-84) to ordered/nestable cell groups (an outline tree); allow code-cell outputs to be typed structured values, not only MIME blobs.
- T11/T15 (content opacity / fidelity): add a "structured re-evaluable value" point to the content-opacity spectrum between transparent-text and opaque-blob (Wolfram expression, symbolic result) — relevant to how outputs are stored/surfaced.
- T16 (projection): CDF is a reduced-capability interactive projection; with
Manipulate/Dynamic, static projection is a snapshot frame only (join the live-content limit recorded for Strudel T5).
7. Open questions
- Is a structured re-evaluable result (Wolfram expression) modeled as a typed value in the page model, or stored opaquely with provenance like other computed outputs? (Ties UC-55 open-Q #10 and UC-84 Q3.)
- Do interactive outputs (
Manipulate,Dynamic, and Jupyter widgets) deserve a shared "interactive, snapshot-only" content marker in the contract? (Recurs at T4/T5.)
8. Sources
- Wolfram documentation: notebook format (
Notebook/Cellexpressions), cell types & groups, evaluation (In/Out),Manipulate/Dynamic, CDF. - prior:
research/260614-jupyter-deep-dive/(UC-84 notebook shape; the descendant);research/260614-literate-programming-deep-dive/(derivation-projection, UC-83).
9. Traceability
No new UC (lineage/reinforcement). Reinforced: UC-84; enriched: UC-54, UC-55; links UC-34, UC-83. Architecture cross-refs: SHARD-WP-0002 T12 (nestable cell-group outline; typed structured outputs), T11/T15 (structured-re-evaluable-value point on the opacity spectrum), T16 (CDF reduced-capability projection; interactive = snapshot-only).