Skip to content
🚧 Early alpha — building the foundation. See the roadmap →

Terminology

Updated

A glossary, not a textbook: one or two lines per term, with a link to the page that owns the depth. Formal words carry a plain-English gloss in italics.

Status last verified: 2026-10-30 — referenced-framework note row checked against src/import/stack/referenced-frameworks.ts and tests/cli/referenced-framework-takeover.test.ts; 2026-10-03 — MappingSet record row checked against spec/tier1.schema.json SchemaVer 1.7.0 $defs.mapping_set_frontmatter; 2026-09-23 — implied concept checked against spec/recipe.schema.json $defs/layout_entry.implied_concept, src/generation/enrich.ts, and src/generation/generation-engine.ts; earlier glossary checked against spec/tier1.schema.json, spec/recipe.schema.json, and the current generation/reconciliation modules under src/generation/.

Looking for the two kinds of link (concept ↔ concept crosswalks vs. document → concept evidence links)? The side-by-side diagram lives on Mapping into Obsidian · the two kinds of link; the definitions are in Core terms below.

Crosswalker separates what an artifact means from where or how it is stored. Owning page: artifact roles and authority.

TermPlain EnglishDefinition
Schema Contractthe rules for what counts as validPlainly: the machine-checked rulebook that spells out which properties a valid note or recipe may carry — the plugin, an outside script, and an agent all validate against the same rulebook before writing, which is what makes external producers first-class. Formally: a normative, versioned representation contract answering “what is valid?” The JSON Schema files in spec/ carry these. A Schema Contract governs artifacts; it is not content itself.
Knowledge Setthe actual content — what existsA named, versioned, governed collection of concepts or assertions. A conceptual superclass, not a claimed generalized KnowledgeSet file format.
Recipethe instructions — what should be doneA portable, schema-validated declaration of repeatable behavior. ImportRecipe is the concrete source-to-Tier-1 subtype. A Recipe is not a Knowledge Set, a run receipt, generated output, or a package.
Referenced-framework notean identifier known from a crosswalk, not a copy of the frameworkAn ordinary concept note containing only a target identifier, framework label and the explanation that full text has not been imported. It is not a new artifact authority or schema kind. Identity and explicit import-set ownership allow a later full import to replace its managed content without replacing links. Private-demo binding and takeover limits
Import setthe collection of notes one import ownsA durable ownership boundary with a meaningless id minted at first import and stamped into every note that run produces. Refreshes select and reuse the set; ownership is never derived from recipe, source, destination, or note identity. Decision and rationale
Execution Recordthe receipt — what actually happenedA future historical record of one run: verified inputs, exact recipe identity, outcomes, validation, warnings, output inventory. Today’s per-note provenance is not yet a complete Execution Record.
Package Manifestthe shipping label — what was distributedA future distribution and attestation envelope: resolved artifacts, dependencies, hashes, licenses, signatures, install rules. No normative contract is claimed yet.
Tier 1the real copy, on diskCrosswalker’s canonical managed Markdown representation of Knowledge Sets. A representation and authority tier, not a peer root artifact class. See tiers.

Roles around the Recipe family — not four new artifact classes.

RoleMeaning
Recipe specificationThe canonical machine-evaluable declaration, governed by a Recipe Schema Contract.
Recipe templateParameterized or default policy to instantiate a specification from. A Shape Preset is one.
Recipe bindingA recipe reference plus concrete parameters, source identity, or other selected bindings.
Recipe executionOne run of a bound recipe. The Recipe states intent; a separate Execution Record reports the outcome.
TermDefinition
MappingSetPlainly: one published crosswalk release — the whole collection of mapping assertions shipped together (e.g. NIST’s 800-53 Rev 4 → Rev 5 mapping). Formally: a Knowledge Set subtype with its own identity, version, membership, provenance, license, and publication state. Not an ImportRecipe, and not a folder inferred from edge rows. Record: kind: mapping-set (source: spec/tier1.schema.json), one release record per set.
MappingAssertion — also: assertionPlainly: one claimed fact about how two things relate — a single crosswalk row, “AC-2 is equivalent to A.9.2.1.” Someone asserted it, so it can be right, wrong, disputed, or superseded — which is why every assertion carries where it came from. Formally: one subject–predicate–object correspondence inside a MappingSet, optionally carrying confidence, justification, provenance, and review metadata.
Release record — also: release filePlainly: the one note or header that says which crosswalk release a mapping set is (id, version, both frameworks with versions, provider, license, how many mappings, and two fingerprints that say whether the set is intact). Formally: the Tier 1 kind: mapping-set record (source: spec/tier1.schema.json), stored as one note per set in notes form and as the mapping_set header key in table form; exported beside a typed mapping table as the release file <name>.mapping-set.json. See the slice 1 and slice 2 decision logs.
ImportMappingAn editable, source-bound workbench projection of how source fields map into Recipe-owned regions. Implementation state around an ImportRecipe — not a MappingSet or a portable artifact.
TermDefinition
Live viewA query-backed view recomputed from current data on read or refresh. Bases views are live views, not stored results.
Materialized snapshotQuery results computed once and persisted — reproducible, potentially stale. Useful for publishing, audit, and comparison; storing one does not make it canonical.
PackageA semantically resolved release described by a Package Manifest: selected artifacts plus dependency, integrity, license, and install meaning.
CarrierThe physical container that moves the bytes — a zip, directory, or git repo. A carrier is not a Package by itself.
ProjectionAlways use with a qualifier: field projection, read/view projection, Tier 1 → Tier 2 projection, or editable UI projection. ImportRecipe generation is broader than projection — it decodes and re-embodies source structure.
TermDefinition
OntologyA structured representation of knowledge — categories, relationships, rules. A governed one is a kind of Knowledge Set.
Reification (plain: making implied structure into first-class things)Turning structure that is only latent in a source, such as a hierarchy encoded in an ID column, a crosswalk encoded in a “maps to” column, or a category encoded in a tags column, into addressable vault objects: concept notes, junction notes (edges as notes), tags, and typed wikilinks. Crosswalker’s core verb; the ontology lifecycle page states the product in these terms. Honest scope: hierarchy, tags, frontmatter, body, inbound cross-mapping columns, nested record lists, and nested levels folded into their parent note as sections now reify through the wizard; the tag and wikilink layout mechanisms remain deferred to v0.2. The import wizard is the control surface for reification: what becomes a folder, a tag, a link, an edge note, a nested note, or a section inside a note is decided there.
FrameworkA specific ontology: NIST 800-53, CIS Controls, MITRE ATT&CK.
CURIEA compact URI — prefix:local, e.g. nist-800-53:AC-2. Crosswalker’s stable concept identity: the same CURIE means the same concept no matter where the note sits. W3C CURIE Syntax 1.0 · mapping into Obsidian
ConceptIdentityA concept’s CURIE plus its source attributes — the input to render(). Identity is fixed; vault layout is a recipe choice.
ImportRecipeA Recipe subtype governing deterministic source-to-Tier-1 generation: the closed 5-mechanism grammar (folder | file | heading | tag | wikilink) × ordered layout × also_emit × enrichment × graph_edges. Distinct from a SavedConfig, a MappingSet, and the generated notes. Recipe grammar · fidelity boundary
render()The pure function render(Recipe, ConceptIdentity) → Address — the single coupling point turning a concept + recipe into its path, heading anchor, wikilink target, tags, frontmatter, and body regions. Deterministic and reproducible. System model
Tier 0 / 1 / 2Storage tiers, not peer artifact classes. T0 = upstream source data · T1 = the canonical Markdown in your vault (the real copy) · T2 = a deletable SQLite cache derived from T1. System architecture
managed / user_preserveThe frontmatter ownership split: managed keys belong to the recipe (overwritten on re-import); user_preserve keys are yours (never overwritten). Rationale
Data morphologyThe output-layer language: data shape plus three knobs — transform · reshape · draw — for describing any view or query. More
LensA subgraph of the vault read for one purpose. General capability; the GRC application is the Control / Assurance / Risk lenses of the Unified Risk Model.
CrosswalkAn edge where both ends are ontology concepts: “these two correspond.” NIST 800-53/AC-2 ↔ ISO 27001/A.9.2.1, or a framework mapped onto a synthetic spine. Committed edge vocabulary: STRM predicates inside an SSSOM envelope. Diagram · interlingua pattern
Crosswalk column roleA source column that says which concepts in another framework each row maps to. The import wizard offers this role and lets the user name the target framework and relationship. Generation reifies each cell as separate Crosswalk edge notes rather than as concept-note frontmatter. Machine contract: target.crosswalks[] in schema spec §4.13.
Nested record levelOne record type that lives inside another in the source, such as controls inside groups. Each emitted row carries its lineage in the reserved _cw object: its level, root-first identity path, immediate parent, and carried ancestor fields. Machine contract: source.nest[] in schema spec §4.15.
Section record — also: body projection of a nested levelA nested record written as a heading with text inside its parent’s note, not as a note of its own. A nest level declaring leaf: section attaches each record to its nearest emitted ancestor; the record renders as a heading region inside that note’s managed body and gets no note, CURIE, provenance, Tier 2 row, or orphan tracking, because it is content of its host concept, not a concept. Chosen in the wizard with Below the note or a nested row’s Placement. Machine contract: leaf: section in schema spec §4.16.
Evidence link — also: implementation link, junction note, link metadata, dotKey metadata (legacy)An edge from a user-authored document to an ontology concept: “this note attests to that concept, at such-and-such status.” Not a crosswalk. Stored as junction notes — one markdown file per edge, 13-field flat YAML isomorphic to OSCAL’s by-component, with three orthogonal status dimensions (status · freshness · evidence_type); git history is the audit trail. Decision log · Challenge 07 · diagram. Supersedes the inline-field link metadata system.
Typed linkUmbrella term for any link carrying relationship metadata. Covers both crosswalks and evidence links.
EndpointThe two things at either end of a relationship — in “MFA-Policy implements AC-2,” the policy and the control are the endpoints. The shipped contract keeps clickable addresses separate from stable identity: concept hierarchy uses parent + parent_curie; junction notes use subject/object + optional subject_curie/object_curie; crosswalk edges use identity CURIEs directly. Identity decision
Facet noteA generated index note collecting every concept that shares one property value — in a GRC vault, all controls carrying a given theme tag. Carries kind: facet and a members list of wikilinks. Emitted by import enrichment (source: src/generation/enrich.ts) when facet hubs are enabled. Honest status: these notes are written by the generator but have no branch in the note contract yet and skip validation — closing that gap is open decision P4.
Implied concept — a first-class thing named inside other rows, without a row of its ownA source may encode an upper-level concept only as an identifier prefix in its child records. The recipe can make that level an addressable concept note with its own stable CURIE, provenance, children, and parent links, rather than a hub note. Recipe contract §4.17.
Hub note — also: level hubA generated table-of-contents note for one folder level, listing that folder’s direct children as wikilinks. Carries kind: hub. Emitted by import enrichment (source: src/generation/enrich.ts) when level hubs are enabled. Same contract gap and same open decision P4 as facet notes.
Hierarchy columnA source column whose values define nesting levels.
FrontmatterYAML properties at the top of a markdown note. Obsidian calls them properties.
FingerprintA hash of a data file’s structure, used to match a source against saved configs.

Objects that support editors and runtimes. They do not become first-class artifacts merely by being persisted or passed between functions.

TermDefinition
ParsedDataParser output: columns plus eager or streamed rows. Not a tier, not a contract.
ColumnInfoAnalysis of one source column — type, unique count, samples.
CrosswalkerConfigLegacy full import configuration shape. Not the portable Recipe authority.
SavedConfigLegacy fingerprint-bound wizard convenience state in plugin settings. May restore a past mapping; is not an ImportRecipe, a Recipe binding, or a share/open lifecycle.
WizardDraftResume state for an unfinished interaction. Workflow state, not a Recipe or Execution Record.
RecipeDocumentThe preservation/editor transaction boundary: original validated ImportRecipe + editable ImportMapping + session-only origin/dirty state. It patches workbench-owned regions into the original rather than rebuilding it and dropping opaque fields. More
GeneratedNote, Address, RenderedBodyRegion, RenderReport, GenerationResultRuntime results and diagnostics produced while applying a Recipe. Not separately governed artifacts.
TermExample
Control familyAC (Access Control) in NIST 800-53
ControlAC-2 (Account Management)
EnhancementAC-2(1) (Automated System Account Management)
SafeguardCIS Controls’ equivalent of a control
TechniqueT1059 (Command and Scripting Interpreter) in MITRE ATT&CK
Diagnostic statementCRI Profile’s equivalent of a control — a testable assertion
Informative referenceNIST’s term for a crosswalk between frameworks

Owning pages: ontology evolution · framework versioning.

TermDefinition
Ontology evolutionHow a knowledge system changes over time — concepts added, removed, restructured. Distinct from versioning (which release you have). More
Schema evolutionChanges to the structure of data (fields added, columns renamed) rather than to the data itself.
Deprecation chainA sequence of revoked-by links from old concepts to their replacements. MITRE ATT&CK does this with STIX 2.1. More
SemVerMAJOR.MINOR.PATCH. OSCAL guarantees content valid under a MAJOR version stays valid in later releases of it. More
SchemaVerMODEL-REVISION-ADDITION versioning for data (Snowplow). MODEL = can old consumers read new data? REVISION = the reverse? ADDITION = non-breaking. More
SCD (Slowly Changing Dimensions)Warehouse pattern for records that change over time: Type 1 overwrite · Type 2 keep history · Type 3 alias column · Type 6 hybrid. More
SKOSSimple Knowledge Organization System (W3C). Natural fit on paper — ConceptScheme = framework, broader/narrower = hierarchy — but its 5 predicates carry no confidence, provenance, or negation, so it was rejected as the crosswalk base. Why
SSSOMSimple Standard for Sharing Ontological Mappings. The row-schema envelope for crosswalk edges: required mapping_justification plus optional confidence, author_id, mapping_date, mapping_tool, predicate_modifier. Predicate-agnostic — you supply the vocabulary (see STRM). More
STRM — Set Theory Relationship MappingThe 5-relationship edge vocabulary — equivalent-to · subset-of · superset-of · intersects-with · no-relationship — that NIST IR 8477, SCF, and OSCAL’s Control Mapping Model converged on independently. Crosswalker’s predicate_id vocabulary, paired with SSSOM as envelope. More
OSCALOpen Security Controls Assessment Language (NIST). Machine-readable controls with built-in versioning; also adopts STRM in its Control Mapping Model. Registry
OLIROnline Informative References (NIST) — a submission-based crosswalk registry using the same STRM relationship types. Registry
Interlingua / pivot — also: pivot ontology, synthetic spine, hub-and-spoke mapping, meta-frameworkOne “universal” framework everything else maps through, like a pivot language in translation. Map to SCF once, get crosswalks to 175+ frameworks. The five names are the same pattern from five disciplines. Open question: Challenge 06 · more

From the Foundation phase research. Each carries aliases that appear across the knowledge base.

TermAliasesDefinition
Ontology diff primitivesGraph change atoms, structural change primitives, structural diff engineThe 9 provably complete atomic operations describing what changed between two versions of a labeled directed graph — the mathematical answer to “what changed?” (graph edit distance, algebraic graph transformation).
EvolutionPatternFramework handling profile, stewardship profile, evolution taxonomyPer-framework classification of how an ontology evolves; sets defaults for handling strategies. Open: may be replaced by transformation recipes.
Transformation recipeVersion transition map, migration specThe record of what changed between two specific versions and how to handle each change — “NIST r5→r6: AC-19(2) merged into AC-19, AC-24 added.”
Handling strategy—What to do when a change type is detected: overwrite, archive, alias, merge, split, skip, or flag for review.
DecisioningStrategy selectionChoosing handling strategies per change type — by default, per framework, or per user/org. Layered model
Pluggable layerExtension point, opinionated layerAny behavior that is opinionated and swappable rather than first-principles. Keeps the system tight to first principles while allowing extension of opinionation.
Progressive depthProgressive complexityStart with guided UI, graduate to config-as-code, add CLI — each interface wrapping the same core primitives. Applies to import and migration alike.
EntityUser, agentAny actor using the system — people or agents. Both must be first-class.

Owning pages: file-based graph database · consistency models.

TermDefinition
Property graphA graph where both nodes and edges carry key-value properties. An Obsidian vault is one: notes = nodes, wikilinks = edges, frontmatter = properties. More
Edge metadata — also: link metadata, typed link metadata, inline field metadata, dotKey metadataStructured data attached to the relationship between two notes rather than to either note. The umbrella data-model concept behind both crosswalks and evidence links; both now have committed shapes. Diagram
DenormalizationDeliberately duplicating data to make reads fast at the cost of write complexity — e.g. storing both forward links and frontmatter arrays. More
Referential integrityThe guarantee that every link points at something that exists. Obsidian vaults have none — delete a note and the links stay broken. More
ACIDAtomicity, Consistency, Isolation, Durability. File-based systems give you only Durability. More
CAP theoremA distributed system gets at most two of Consistency, Availability, Partition tolerance. Vaults are AP. More
Eventual consistencyCopies converge given enough time. In Crosswalker, re-import achieves it — but you have to run it. More
Event sourcingStoring the sequence of changes rather than only the current state. A future _crosswalker.history field would enable it. More

Owning page: schema matching.

TermDefinition
Schema matching / schema alignment / ontology matching / ontology alignment / crosswalking / data integration / framework mappingSeven names for one broad concept: finding correspondences between elements of different structured datasets. Each name comes from a different discipline — databases, semantic web, library science, ETL, GRC. Within one field they have precise distinct meanings (distinctions table); Crosswalker straddles all of them, so which name a page uses depends on which community it’s drawing from.
Schema matching (narrow)Database sense: finding corresponding elements (columns, fields, keys) between schemas. Crosswalker’s column-type detection is a simple case.
Schema mapping (narrow)The executable transformation implementing a match — “split column A by comma, map each into column B.”
Ontology alignment (narrow)Semantic-web sense: finding corresponding concepts with confidence scores. “AC-2 corresponds to CIS 5.2 at 0.85” is ontology alignment.
Ontology mergingCombining two ontologies into one. SCF folding 175+ frameworks into a single canonical set is the example.
Crosswalk edge semantics stackCrosswalker’s layered commitment: STRM as the required predicate vocabulary + SSSOM as the required envelope + SKOS rejected as base but kept as an export format. Decision
OAEIOntology Alignment Evaluation Initiative — the annual benchmark for alignment algorithms. Recent LLM-based systems hit 0.83–0.95 F1. More
Formal Concept AnalysisLattice-theory approach to finding structural correspondences between hierarchies without string similarity. Candidate for spine distillation. More

The query engine keeps three orthogonal layers apart (settled 2026-05-08; synthesis):

LayerWhat it isConcept page
A — Query primitivesThe 8 irreducible query verbs: filter · traverse · bind · project · aggregate · anti-join · set-op · diff (locked by Ch 29)Query primitives
B — View shapesMechanism-neutral presentations: table · list · pivot · graph · hierarchy · timelineView shapes
C — Recipes / reportsInstances composing primitives + a view shape — “Coverage Matrix” = filter + traverse + anti-join, drawn as a pivotRecipe registry

Query primitives is the single source for the verb definitions; this page does not restate them. Two names that used to live here are gone: standalone closure folded into traverse(depth=*), and pivot is a Layer B view shape, not a primitive.

TermDefinition
registerBasesViewObsidian 1.10+ API letting a plugin register custom Bases view types. API reference
crosswalkerPivotThe one custom Bases view shipped in v0.1.6 — renders the pivot shape, parameterized by recipe. “Coverage Matrix” is the launch recipe.
CQRS framingCommand Query Responsibility Segregation. Here: the query layer (Bases + codeblock + sqlite sidecar) is not the snapshot layer (materialization + timestamping + git). Don’t conflate a live read with point-in-time evidence.

Query language & engine terms (engine internals)

Section titled “Query language & engine terms (engine internals)”

Recurring in the Tier 2/3 engine research wave. Quick reference only.

TermDefinition
DatalogDeclarative logic programming — write rules (derived(a,c) :- mapping(a,b), mapping(b,c)) and the engine derives all consequences. “SQL with built-in recursion.” Used for SSSOM chain rules; engine choice is Nemo. Verbose entry
SPARQLThe W3C query language for RDF — the SQL of the semantic web. Native fit for SSSOM (which is RDF-shaped); supports federation via SERVICE.
Recursive CTESQL’s WITH RECURSIVE for transitive closure and graph walks. The fallback when Datalog isn’t available; tractable to ~10⁵ mappings, collapses on full SSSOM expressivity. Ch 18
Stratified negationDatalog’s ability to negate another layer’s conclusions in a defined order — “find A→C mappings NOT derivable through any intermediate B.” Recursive CTE can fake it; Datalog optimizes it natively.
SPARQL property pathsRecursive operators inside SPARQL (?x (skos:exactMatch)+ ?y). Datalog-lite: no stratified negation, no rule-level aggregation. Ch 14
OWL inferenceReasoning that derives implicit class/property relationships. Crosswalker does not currently rely on it.
SHACLShapes Constraint Language — W3C standard for validating RDF graphs (“every mapping_set MUST have a creator_id”). Used for SSSOM validation at the Tier 2/3 boundary.
WOQLTerminusDB’s Datalog dialect (path(), dot(), slice()). Relevant only if TerminusDB is adopted.
HDTHeader-Dictionary-Triples — binary RDF distribution format, ~10–20× smaller than Turtle. Used by Comunica federation.

Owning page: metadata ecosystem.

TermDefinition
Inline fieldLegacy key:: value syntax in a note body. Not queryable by Bases; Crosswalker uses YAML properties and explicit edge records instead.
PropertiesObsidian’s native YAML frontmatter system (since v1.4). First-class and Bases-queryable.
Obsidian BasesNative .base live views over vault properties. Bases filters and presents frontmatter; it does not by itself do multi-hop typed-edge traversal. More