Knowledge graph schema
Node labels and edges.
Every Atlas node carries :Cdx plus a CycloneDX class. Properties stay close to the spec; relationships are the graph interpretation of nested arrays and bom-ref pointers.
(BomDocument)-[:OF_TYPE]->(BomType) (BomDocument)-[:DESCRIBES]->(Component) (BomDocument)-[:INCLUDES]->(Component) (BomDocument)-[:INCLUDES_SERVICE]->(Service) (Component)-[:DEPENDS_ON]->(Component) (Component)-[:USES_CRYPTO]->(CryptoAsset) (Vulnerability)-[:AFFECTS]->(Component) (VexAnalysis)-[:ANALYZES]->(Vulnerability) (Component)-[:PRODUCED_BY]->(Formula)-[:HAS_WORKFLOW]->(Workflow)-[:HAS_TASK]->(Task) (Attestation)-[:CLAIMS]->(Claim)-[:SATISFIES]->(Requirement) (n:Cdx)-[:MAPS_TO]->(KnowledgeConcept)
Document
The BOM itself, its type, and notes attached to it.
:BomDocument
10 liveBOM document. root document (bomFormat, specVersion, serialNumber, metadata).
- id — Stable Atlas key, e.g. cdx:bom:harborpulse-sbom
- serialNumber — CycloneDX serialNumber URN
- bomType — SBOM | SaaSBOM | HBOM | ML-BOM | CBOM | OBOM | MBOM | VDR | VEX | CDXA
- specVersion — CycloneDX spec version (1.6)
- lifecyclePhase — design | pre-build | build | post-build | operations | discovery
- name — Human title of this BOM
:Annotation
3 liveAnnotation. annotations[].
- text — Note, review comment, or context
Inventory
Things the BOM enumerates: software, hardware, services, crypto, models, data.
:Component
26 liveComponent. components[] / metadata.component.
- bomRef — Document-scoped bom-ref
- componentType — application | library | framework | firmware | device | container | os | machine-learning-model | cryptographic-asset | file | platform
- name — Component name
- version — Version string
- purl — Package URL when applicable
- scope — required | optional | excluded
:Service
6 liveService. services[].
- bomRef — Service bom-ref
- name — Service name
- authenticated — Whether callers must authenticate
- trustBoundary — true if the service sits across a trust boundary
:Endpoint
6 liveEndpoint. services[].endpoints.
- url — URI of the endpoint
:DataClassification
5 liveData classification. services[].data.
- name — PII, credentials, telemetry, …
- flow — inbound | outbound | bi-directional
:CryptoAsset
7 liveCryptographic asset. components[].cryptoProperties.
- assetType — algorithm | protocol | certificate | key | related-crypto-material
- primitive — AES, ECDSA, SHA-2, TLS, …
- oid — Algorithm OID when known
:ModelCard
1 liveModel card. components[].modelCard.
- approach — Learning approach
- problemType — anomaly-detection, classification, …
- intendedUse — Declared intended use
:Dataset
2 liveDataset. components[type=data] / modelCard.trainingData.
- contentsType — records, images, telemetry, …
- classification — public | internal | confidential
Identity
Who made, supplied, licensed, or authored the inventory.
:Organization
12 liveOrganization. metadata.supplier / manufacturer / publisher.
- name — Legal or common name
- orgType — manufacturer | supplier | publisher | operator | issuer
- url — Homepage
:Person
2 livePerson. metadata.authors, annotations.annotator.
- name — Display name
- email — Contact
- role — Author, reviewer, …
:Tool
5 liveTool. metadata.tools.
- name — Tool name
- vendor — Vendor
- version — Version
:License
5 liveLicense. components[].licenses.
- spdxId — SPDX license identifier
- name — Display name
Risk
Vulnerabilities and VEX exploitability statements.
:Vulnerability
5 liveVulnerability. vulnerabilities[].
- vulnId — CVE / GHSA identifier
- source — NVD, OSV, …
- cvssScore — Numeric CVSS
- severity — critical | high | medium | low
:VexAnalysis
5 liveVEX analysis. vulnerabilities[].analysis.
- state — exploitable | in_triage | not_affected | resolved
- justification — CycloneDX justification code
- response — workaround | update | will_not_fix | can_not_fix
Process
How it was built, configured, or operated.
:Formula
1 liveFormula. formulation[].
- name — Named manufacturing/deploy formula
:Workflow
2 liveWorkflow. formulation[].workflows.
- name — Workflow name
:Task
5 liveTask. formulation[].workflows[].tasks.
- name — Task name
:Configuration
5 liveConfiguration. components[].properties / configuration.
- keyName — Config key
- value — Observed or declared value
Trust
Attestations, claims, evidence, and standards.
:Standard
2 liveStandard. definitions.standards.
- name — OWASP SCVS, NIST SSDF, …
- version — Standard version
:Requirement
3 liveRequirement. definitions.standards[].requirements.
- identifier — Requirement id inside the standard
- text — Requirement text
:Attestation
2 liveAttestation. declarations.attestations.
- summary — What is being attested
- conformance — full | partial | none | unknown
:Claim
3 liveClaim. declarations.claims.
- statement — The claim text
:Evidence
3 liveEvidence. declarations.evidence.
- description — How the claim is evidenced
Ontology
Atlas knowledge concepts that sit above the CycloneDX classes.
:BomType
10 liveBOM type. Atlas taxonomy (not a CDX class; classifies documents).
- code — Short code used in bomType
- name — Full name
- specFocus — Primary CycloneDX object-model region
:KnowledgeConcept
12 liveKnowledge concept. Atlas extension — ontology overlay on CycloneDX.
- name — Concept name
- category — supply-chain | trust | risk | process | inventory
Relationships
| Type | From | To | Meaning |
|---|---|---|---|
| OF_TYPE | BomDocument | BomType | Classifies the document into a BOM variety |
| DESCRIBES | BomDocument | Component | metadata.component — the subject of the BOM |
| INCLUDES | BomDocument | Component | components[] membership |
| INCLUDES_SERVICE | BomDocument | Service | services[] membership |
| CREATED_BY | BomDocument | Tool | metadata.tools that produced the BOM |
| AUTHORED_BY | BomDocument | Person | metadata.authors |
| DECLARED_BY | BomDocument | Organization | metadata.supplier of the document |
| RELATED_BOM | BomDocument | BomDocument | VEX↔VDR↔SBOM, OBOM↔SBOM, MBOM↔HBOM, … |
| DEPENDS_ON | Component | Component | dependencies[] edge |
| LICENSED_UNDER | Component | License | Declared license |
| SUPPLIED_BY | Component | Organization | Supplier / publisher |
| MANUFACTURED_BY | Component | Organization | Hardware manufacturer |
| COMPOSED_OF | Component | Component | Physical or logical composition |
| CONTAINS | Component | Component | Parent assembly contains a part |
| RUNS_ON | Component | Component | Firmware/app runs on a device or OS |
| CALLS | Component | Service | Runtime or declared service consumption |
| PROVIDES | Service | Endpoint | Service exposes an endpoint |
| PROCESSES | Service | DataClassification | Data flowing through the service |
| AFFECTS | Vulnerability | Component | vulnerabilities[].affects |
| FOUND_IN | BomDocument | Vulnerability | VDR membership |
| HAS_ANALYSIS | BomDocument | VexAnalysis | VEX document owns an analysis |
| ANALYZES | VexAnalysis | Vulnerability | Which CVE the VEX statement is about |
| USES_CRYPTO | Component | CryptoAsset | Component implements or invokes crypto |
| ISSUED_BY | CryptoAsset | Organization | Certificate or key issuer |
| SIGNS | CryptoAsset | Component | Signing key signs firmware or artifacts |
| HAS_MODEL_CARD | Component | ModelCard | ML model documentation |
| TRAINED_ON | Component | Dataset | Training / fine-tune lineage |
| PRODUCED_BY | Component | Formula | Component was manufactured via formula |
| HAS_WORKFLOW | Formula | Workflow | Formula contains a workflow |
| HAS_TASK | Workflow | Task | Workflow step |
| USES_TOOL | Task | Tool | Task executed by a tool |
| CONFIGURES | Configuration | Component | Observed/declared configuration |
| ATTESTS | Attestation | Standard | Attestation is against a standard |
| CLAIMS | Attestation | Claim | Attestation makes a claim |
| SATISFIES | Claim | Requirement | Claim addresses a requirement |
| SUPPORTED_BY | Claim | Evidence | Evidence backing a claim |
| ANNOTATES | Annotation | BomDocument | Human or tool annotation |
| MAPS_TO | Component | KnowledgeConcept | Ontology overlay (Atlas extension) |