An End-to-End Demonstration of the Informative Authoring Semantics Profile
Complex writing benefits from having names for complexity.
— Informative Authoring Semantics Profile, Core Specification
This short essay demonstrates the Informative Authoring
Semantics Profile (IASP) across every target supported by
iasp-mcp: standalone HTML, XeLaTeX PDF (screen and print),
EPUB 3, and Ghost Markdown. Each semantic wrapper names what a
passage is doing in the argument rather than how a particular
format encodes it.
When authors revise a long-form manuscript or essay, their marginalia rarely speak in the language of HTML tags or LaTeX environments. Instead, an author asks: Is this paragraph part of the spine of the chapter, or is it a parallel digression? Is this aside offering a concrete example, stating a methodological premise, or warning against an easy misreading?
IASP separates those two questions into orthogonal axes that compose
with a dot (delivery.modifier):
chapter,
section, bridge, sidebar,
callout, note, footnote,
epigraph, appendix) describe how a passage
sits relative to the main narrative flow.thesis,
counterpoint, example,
definition, insight, warning,
methodology, scope, synthesis,
breadcrumb, closing, and others) describe the
intellectual move, expository support, or epistemic stance the passage
contributes.Compositional Intent
(delivery.modifier): A two-part (or multi-part)
Pandoc class token where the leftmost term names the delivery
role and subsequent terms qualify intent. Writing
note.insight does not mean “an insight is a subtype of
note”; it means “this ancillary note functions as an insight at this
point in the text.”1
Structural markup vs. authoring intent: EPUB
Structural Semantics (epub:type="aside") and DPUB-ARIA
(role="doc-example") name document structure for assistive
technologies and reading systems. IASP names the author’s rhetorical and
epistemic intent first, then lets the Lua filter
(iasp-semantics.lua) project that intent onto
epub:type, ARIA roles, LaTeX mdframed
environments, and Ghost HTML cards.
Not every supporting illustration belongs in the main column of an
argument. A sidebar signals that a reader can pause for
context or skip ahead without losing the thread. Composing
sidebar with example or
background records why the digression is
there.
Long-form works also reuse sidebars or case studies across chapters
and annexes via .include directives:
Unmarked prose is always assumed to be part of the main flow. Silence is a valid authorial decision; IASP exists to support thinking, not to enforce exhaustive tagging.
Having seen how delivery roles and modifiers compose on individual blocks, we can examine how note variants and stage guards behave during iterative drafting and verification.
While any Axis B modifier may compose with any Axis A delivery role,
the build pipeline recognizes twenty-two note-variants
(tracked as a profile set in terminology-mcp), each with
its own visual cadence:
Taxonomy as a living replica: Because
iasp-mcp follows terminology-mcp’s numbered
changelog for the iasp scheme, adding or refining a
modifier in terminology-mcp propagates automatically to the
local SQLite store, MCP lookup tools, and Markdown validator.
Static verification before Pandoc runs: The
validate_markdown tool checks fence balance
(:::), catches level-1 headers (#) inside
sidebars before they corrupt LaTeX mdframed badge
placement, verifies .include paths, and flags unknown or
retired IASP classes against terminology-mcp.
Avoid using level-1 headings (# Heading) inside
.sidebar or .aside wrappers. In XeLaTeX
builds, \section spacing interacts poorly with framed
sidebar boxes; use ## or ### instead.
note,
sidebar, bridge, callout).insight, contrast,
methodology, warning).::: has
a matching closing ::: on its own line.Takeaway: When authoring vocabulary, validation, and rendering share one semantic profile, writers can focus on prose and structure while agents handle verification and multi-format output.
End of the iasp-mcp reference demonstration. Use
render_document with source: "demo" to rebuild
this essay in html, ghost, pdf,
epub, docx, or rtf.
In Pandoc’s fenced-div syntax,
::: note.insight and ::: {.note .insight}
produce the same AST classes (["note", "insight"]) once
processed by iasp-semantics.lua.↩︎