Domain Model
The Altium Common Data Model (CDM) describes the data of the Altium platform as a
LinkML schema. Its classes are grouped into bounded contexts (LinkML subsets), and each
schema file holds one context (system.yaml holds two); the root schema common_data_model.yaml imports them all. This
documentation and the generated artifacts (JSON Schema, OWL, SHACL, GraphQL, Python and others) are produced
from the root schema, and cdm-lint checks it against the naming and documentation conventions.
Building blocks
- Base classes. Every domain class other than a mixin specialises an abstract base class from the
coresubset:core_Artifactorcore_Activity(both entities with a GRID),core_Resource(a lightweight part of an entity) orcore_Event. Mixins add annotations and slots. See Entity Classification. - Relations. Relations between domain classes should specialise abstract relations defined in
core, such as has part, has input or derived from; 28 entity-valued slots do not yet. See Relation Types. - Identity. Entities are identified on the platform by a GRID (Global Resource ID); each class can declare the GRID template of its instances. See GRIDs.
- Names. Class names carry a short context prefix and a PascalCase name (
lib_Component,des_Project,system_ESDDocument); each class also has an IRI in its context's namespace (lib:Component). Class-specific slots add a camelCase field name (req_Project_specifications). The prefixes are listed on the GRIDs page.
Bounded contexts
Each page below describes the context, links its product documentation where it has any, and lists its classes.
- core —
core.yaml - platform —
platform.yaml - configuration —
configuration.yaml - collaboration —
collaboration.yaml - customization —
customization.yaml - design —
design.yaml - deviceModel —
device_model.yaml - insights —
insights.yaml - library —
library.yaml - ota —
ota.yaml - procurement —
procurement.yaml - supply —
supply.yaml - software —
software.yaml - system and system-sdm — both in
system.yaml - requirements —
requirement.yaml
Finding your way
- Glossary — product terms and class names, including terms that mean different things in different contexts.
- MODEL-FINDINGS.md — open questions where the model and the product documentation or standards disagree.