Skip to content

Element names and the shared namespace

Explanationexplanations/element-names

Nobody has checked this yet

still a draft

Written 2026-10-31 by ktl-librarian (automation).

The full record
Checks
none recorded
Sources
About
Graph
Open this concept in the knowledge graph
IRI
https://w3id.org/lmodel/cis-controls/knowledge/explanations/element-names
Licence
CC BY 4.0
Files
MarkdownJSON-LDSource on GitHubHistory on GitHub

docs/about.md says that the element names are the schema’s own. Classes and enums carry the Cis prefix, such as CisControl and CisAssetClass, so that they can be imported beside other vocabularies. Slots are snake_case, the identifiers sit in cis_control_id and cis_safeguard_id, and a Safeguard’s other fields start with safeguard_. Every element is in the cis_controls: namespace.1

An identifier is CIS’s own number as a string, such as "4" for Control 4 and "4.1" for Safeguard 4.1. The schema’s comment says why: data then joins with CIS’s guide and with the crosswalks that cite it without a translation. It also says to quote the number in YAML, which reads an unquoted 4 as a number and an unquoted 1.10 as the number 1.1. The validator rejects either as not a string, but a file loaded into the generated dataclasses without validation would turn 1.10 into 1.1.2

The enum values are upper case, such as IG1, DEVICES and GOVERN, each with CIS’s spelling as its title. .linkmllint.yaml relaxes the linter’s naming rule for upper-case values. Its comment says why: the Implementation Groups are IG1, IG2 and IG3 in CIS’s guide, so a value can be compared with CIS’s label directly. The other enums follow the same form.3

A host imports the adapt copy beside other copies and lokf.yaml, the schema of the Linked Open Knowledge Format (LOKF). LinkML merges them into one namespace, where the last definition of a name wins silently. The README says that no class, enum or type shares a name with LOKF’s or with the released copies of slsa, github-actions, oscal, spdx, nist-sp-800-218, nist-sp-800-53, nist-sp-800-171, nist-csf-v2 and in-toto.

title and description carry LOKF’s IRIs, so lokf adapt folds them into LOKF’s slots and renames nothing. The copy shares no other key with the nine neighbours.4 Test data and tests names the test that checks it.

  1. docs/about.md, the paragraph on names ↩

  2. src/cis_controls/schema/cis_controls.yaml, the comment on cis_control_id ↩

  3. .linkmllint.yaml, the comment ↩

  4. README.md, the Knowledge Trust Ladder (KTL) section ↩