SCML
SCML, the Semantic Communication Model, is a storage and interchange format that separates meaning from form. The author records whát is communicated: semantic roles and canonical data values. The recipient then decides hów to perceive it.
The problem
In the formats we use every day, meaning is hidden inside the layout. An amount is bold because it matters. A condition sits in a box. A date is a piece of text that happens to look like a date. For anyone reading the document with their eyes, that works fine.
For every other way of perceiving it, this is a reconstruction after the fact: reading aloud, braille, a summary, a machine checking whether a condition was met. That reconstruction gets worse the more sophisticated the layout is. Accessibility therefore always arrives late, as a layer draped over a finished document.
SCML inverts this. The source holds the meaning; layout is one output channel among many, not the storage form.
Output channels
From a single source the renderer produces HTML, PDF/UA, SSML for speech synthesis, a summary, Markdown, LaTeX, easy-read, symbols for augmentative communication (AAC), fingerspelling, braille (also as a BRF file) and EPUB. These are not conversions of one another: each comes straight from the same semantic source, through a transducer that handles overlapping annotations.
Signing
A signature in SCML freezes the intent, not the pixels. That is the idea behind a legally final format: two people perceiving the same document in different ways can be shown to have signed the same content. Technically it is a content hash with an append-only ECDSA-P256 chain, and a level ladder (B, T, LT, LTA) modelled on PAdES.
To be precise: these are not PDF or PAdES signatures. It is a comparable ladder over the SCML container itself, and eIDAS recognition is deliberately constrained rather than a full RFC 5280 path validation.
What exists today
- Specification
- SCML v1.0, shipped with the source.
- Implementation
- A reference implementation in Rust, split into separate crates for the container, the catalog, rendering, style, signing, templates and import. Plus validation layers for legal reasoning, citation integrity and arithmetic consistency.
- Apps
- Four web applications: an editor, a reader, an import app and a template editor, all running on a WebAssembly build of the same engine.
- Server
- None. The apps run entirely in the browser. What you write never leaves it.