Element names and the shared namespace
explanations/element-namesNobody 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
Element names and the shared namespace
Section titled “Element names and the shared namespace”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.