Glossary
Authoritative definitions for the Rho ecosystem. All docs unify their term references here.
A
AINP
AI-Native Interaction Protocol — the open protocol behind these guides, defining the standard for AI-generated declarative interactive content.
- License: CC BY 4.0
- Vendor-neutral; anyone can implement an AINP-conformant reader
- ⚠️ AINP ≠ Rho MD — AINP is the protocol; Rho MD is its reference implementation
AI-native
The protocol's primary design goal — reliable LLM generation. Concretely: compact syntax, unambiguous, machine-validatable, errors recover gracefully, safe (no eval). See AINP §1.2.
Anchor (STL)
Bracketed node [NodeName] in STL syntax. Used to express knowledge graph nodes.
See STL syntax.
Annotate
Capability: in-line multi-color annotation (label + color per fragment). See Annotate.
B
Blockquote (markdown)
Markdown blockquote, prefixed with >. AINP uses it for callout markers (> [!INFO]).
Build-time
The first half of an AINP reader's pipeline — markdown source parsed into static structure. Compare Runtime.
C
Callout
Capability: single-passage semantic highlight block (INFO / WARN / ZEN / GFM types). See Callout.
Capability
A feature defined by the AINP protocol — charts, interact scenes, structural blocks, and more.
Card (layout)
A single card inside a layout grid. Declared :::card accent=COLOR.
Carrier
AINP protocol's serialization format. v1 standard = Markdown. Other carriers (HTML / JSON) may come via future extensions. See AINP §1.5.
Computed
Capability: derived value declaration computed name = expression. Auto-recomputes when source controls change.
See Computed.
Conformance
A reader's degree of conformance to AINP — declares which capabilities are implemented + which fallback / safety requirements are met. 4 levels: Full / Static-only / Reader (no animation) / Partial. See AINP §11.1.
Container (DSL)
Capability that can contain other DSL blocks: callout / layout / tabs / stepper / modal / timeline. See Nested DSL.
Container directive
Markdown directive container syntax, :::name ... :::. AINP uses for layout cards / tabs / steps / events.
D
Declarative
AINP charter Article 4 — all interaction expressed via declaration ("here's a slider"), not imperative code. See AINP §2 Article 4.
Directive
See Container directive.
DSL block
Domain-specific language block — a source block embodying a capability (fenced code or directive container).
F
Fallback (carrier)
AINP charter Article 3 — protocol content degrades to legal carrier in non-supporting readers (markdown carrier: plain markdown / code-block literals). See Plain-text fallback.
Fallback reader
A reader without AINP support but supporting the carrier's base format (GitHub web / VS Code default preview / cat / default Obsidian / etc.).
Fenced code block
Markdown code block syntax ```. AINP uses lang label to trigger capabilities (e.g., ```layout).
Frame budget
AINP animation sub-protocol's recommended per-frame budget < 16ms (60fps target). See AINP §8.1.2.
H
Hydration
The runtime stage — turning parsed output into live interactive components (sliders / charts / animations).
I
Implementation
A specific reader / library / app implementing AINP protocol.
- Reference implementation: Rho MD (this app)
- Anyone can build a new implementation — the protocol is open
Inner processor
The mechanism enabling nested DSL — the inner content of a container block runs through the complete markdown + AINP pipeline again.
Interact
Capability: container of interactive controls + output template. The root of all AINP dynamic behavior. See Interact controls.
L
Layout
Capability: N-column grid + cards. See Layout.
M
Marker class
CSS class on AINP output HTML (prefix rho-), used by readers to identify + hydrate.
e.g., rho-callout, rho-tabs, rho-interact.
Mini DSL
The pure-function expression language inside AINP, used in {} placeholders + computed declarations.
Not JavaScript — no eval / no IO / no side effects.
See Computed §expression mini DSL or AINP Appendix A.
Modal
Capability: click-to-expand overlay. See Modal.
Modifier (STL)
In STL syntax, the ::mod(key=value, key=value) part attached to an edge expressing the edge's properties.
N
Namespace
Capability: makes multiple interact blocks share state — declared namespace finance.
See Shared state.
Nested DSL
Any DSL block can embed another DSL block. See Nested DSL.
P
Plain-text fallback
See Fallback (carrier).
Profile (scenario)
AINP protocol's typical application scenario capability set (Education / Calculator / Data viz / Animation / Documentation / AI-Generated). See AINP §7.
R
Reactive store
In-memory state container in AINP runtime, isolated by namespace. Source variables / computed all live here.
Reactive update
Source change → topological propagation to all dependent computeds → template re-renders. See AINP §4.4.
Reader (AINP-conformant)
A reader / library / app implementing AINP. Vendor-/language-agnostic.
Rho
scos-lab's AINP reference implementation — the Rho MD app you are reading this in (desktop + Android), plus the rho.md cloud for publishing and reading.
⚠️ Rho MD ≠ AINP — Rho MD is an implementation of AINP, not the protocol itself.
Runtime
The second half of AINP's pipeline — after HTML is injected into DOM, hydrate to interactive components. Must run in a browser. Compare Build-time.
S
Sanitizer (SVG)
Strips dangerous SVG elements / attributes (<script> / on* events / javascript: URLs / etc.).
See AINP §10.2.
scos-lab
The maintaining organization of the AINP protocol + the Rho MD reference implementation.
- GitHub: scos-lab
Slider
One of AINP's interact controls: slider name range=A..B step=S default=V label="...".
Spec
AINP's early versions were called the "Markview Display Spec" (Markview was Rho MD's open-source predecessor); later unified under the AINP name.
State container
The only state-mutable capability in AINP: interact. All other containers are structural (don't hold state).
Stepper
Capability: sequential step display with Prev/Next. See Stepper.
STL
Semantic Tension Language — another open protocol from scos-lab, expressing knowledge-graph relations via [A] -> [B] ::mod(...) syntax.
AINP includes one capability: STL syntax highlighting (highlight only; doesn't interpret STL semantics).
T
Tabs
Capability: same-space multi-view switching. See Tabs.
Template
The output portion of an interact block, three types:
template stl:— text / STL output (actually any plain text)template vega-lite:— Vega-Lite chart spectemplate svg:— SVG scene
Timeline
Capability: vertical timeline display of event sequences. See Timeline.
Timer
Capability: auto-stepping value that drives animation, with Play/Pause/Reset controls. loop=true|false and speed= (ticks per second) tune its behavior.
See Timer.
V
Vega-Lite
External chart library — AINP integrates via template vega-lite:.
See Interact + Vega-Lite chart or Vega-Lite official site.
Acronym lookup
| Acronym | Full name |
|---|---|
| AINP | AI-native Interaction Protocol |
| BNF | Backus-Naur Form (grammar notation) |
| CC BY 4.0 | Creative Commons Attribution 4.0 |
| CSP | Content Security Policy |
| DSL | Domain-Specific Language |
| GFM | GitHub-Flavored Markdown |
| LLM | Large Language Model |
| RFC | Request for Comments (IETF) |
| SaaS | Software as a Service |
| SemVer | Semantic Versioning |
| SSR | Server-Side Rendering |
| STL | Semantic Tension Language |
| SVG | Scalable Vector Graphics |
| WCAG | Web Content Accessibility Guidelines |
| XSS | Cross-Site Scripting |
See also
- Cheatsheet — one-page syntax reference
- Getting started — the app in five minutes
- FAQ