Glossary¶
Minimal cross-cutting vocabulary. Terms appear here when several sections of the documentation use them and a single canonical definition avoids drift. Component-specific vocabulary stays in its component section.
The list will grow as the rest of the documentation is consolidated. For distribution names (DevKit, dsviper, Viper), see naming.
- DSM¶
The Digital Substrate Model — the declarative modeling language used to describe data structures: types, structures, attachments, function pools. Pure specification; runtime-independent. See DSM.
- Kibo¶
The code generator. Reads a DSM model plus a Kibo template and emits source code. Template-agnostic — the target language and runtime are determined by the template. See Kibo.
- Kibo template¶
A parameterized recipe consumed by Kibo. Defines what code is emitted and for which target.
kibo-template-viperis the official template that targets the dsviper runtime; other templates can target other runtimes.- dsviper¶
The Python runtime — strongly typed Python API over the Viper engine. Distributed exclusively on PyPI (
pip install dsviper). See DevKit, dsviper, Viper — what’s what for how dsviper relates to DevKit and Viper.- Viper¶
The C++ runtime engine that dsviper wraps. Carries the type system, commit DAG, and database tier. Currently not distributed standalone; See DevKit, dsviper, Viper — what’s what.
- DevKit¶
The Digital Substrate Python toolkit, distributed as a single ZIP. Carries the toolchain (Kibo, kibo-template-viper, dsviper-tools, offline docs) — not the dsviper runtime itself, which is fetched from PyPI. See DevKit, dsviper, Viper — what’s what.
- dsviper-tools¶
Tooling for the Database / CommitDatabase workflow of the dsviper ecosystem —
cdbe,dbe,dsm_util,commit_admin, and the commit-database server. Available as a Qt Widgets variant (dsviper-tools) and a QML variant (dsviper-tools-qml).- dsviper-components¶
Shared component library on top of dsviper — dialogs, views, helpers reusable by applications. Available as a Qt Widgets variant (
dsviper-components) and a QML variant (dsviper-components-qml).- concept¶
An abstract entity declared in DSM. A concept has no implementation of its own — it exists only through its keys and the attachments bound to those keys. See Concepts and Hierarchies.
- key¶
An instance identifier for a concept. Created at runtime, backed by a UUID, typed by the concept it instantiates. Anywhere typed data references a particular instance, it does so through a key.
- attachment¶
A DSM construct binding a typed payload to a key. The primary unit of data organization in a DSM model. See Attachments.
- function pool¶
A DSM construct grouping function prototypes associated with a concept or attachment — the callable side of the data model. See Function Pools.
- definitions¶
The runtime model — the metadata that mirrors a DSM file at runtime. What dsviper exposes through introspection (
DSMDefinitions,DefinitionsInspector, …) and what every typed operation consults.- type / value¶
The dual primitives of the metadata system. A type describes shape; a value is an instance carrying that type. Every value knows its type at runtime — that is what enables strong typing without boilerplate.
- static API / dynamic API¶
The two ways to use dsviper. Static API — a typed Python package generated by Kibo from your DSM model; gives you IDE autocompletion and type checking. Dynamic API — direct use of dsviper’s runtime metadata, loading definitions at runtime; no code generation needed. Both share the same engine.
- commit¶
A node in the versioned-data DAG. Captures a set of mutations against a parent commit. Conceptually similar to a git commit, but for typed data rather than text. See Commit System.
- commit DAG¶
The directed acyclic graph formed by commits and their parent links. Storage and history of versioned data; supports branching, merging, and synchronization across clients.
- mutation¶
An opcode-level change applied to a value (
set,update,insert,remove, …). Mutations are grouped atomically into a commit.- blob¶
Large opaque binary data stored alongside DSM-typed values. Indexed by a
BlobId; stored through blob layouts and packs. Used for images, files, serialized assets, or any payload that does not benefit from typed structure. See Binary Data (Blobs).- codec¶
A serialization strategy — how typed values are encoded to and from bytes. Different codecs trade readability against size and speed.
- reference application¶
An application bundled or distributed for the purpose of demonstrating ecosystem usage end-to-end.
cdbe.pyanddbe.pyexercise the dsviper API;ge-pyandge-qmlexercise the whole chain (DSM, Kibo, template, components, runtime). Not products in their own right.