ADR-004: Digital Twin Standards Alignment
Align MetaForge’s graph schema with Asset Administration Shell (AAS) conventions now; build export adapters in Phase 3+
Table of Contents
- ADR Header
- Context
- Decision
- Architecture
- Consequences
- Related Documents
ADR Header
| Field | Value |
|---|---|
| Status | Accepted |
| Date | 2026-03-06 |
| Decision | Add AAS-compatible properties (globalAssetId, supplier, compliance keys) to the graph schema now; defer AAS REST API and AASX export to Phase 3+; do not adopt DTDL, USD, or SysML v2 internally |
| Supersedes | N/A (initial decision) |
| Deciders | Architecture team |
| Categories | Standards, interoperability, graph schema, digital twin |
Context
The digital twin standards landscape is consolidating around several key frameworks. MetaForge needs to decide which standards to align with, when, and how deeply.
Full analysis is documented in the Digital Twin Standards Landscape research doc. This ADR captures the decisions.
Key Standards Evaluated
| Standard | Owner | Relevance |
|---|---|---|
| AAS (IEC 63278) | Plattform Industrie 4.0 | High — becoming mandatory in European manufacturing supply chains |
| USD | Alliance for OpenUSD / NVIDIA | Medium — relevant for factory-scale simulation twins |
| SysML v2 | OMG | Medium — relevant for MBSE tool interoperability |
| DTDL | Microsoft | Low — Azure-specific, not hardware manufacturing focused |
| ISO/IEC 30173 | ISO | Already adopted — L1-L4 maturity model |
| glTF/GLB | Khronos | Already adopted — viewer format |
| STEP AP242 | ISO | Already adopted — CAD input format |
Decision
Principle: Align the data model now, build export adapters later
MetaForge’s internal graph schema remains the source of truth. We do not adopt any external standard as our internal model. Instead, we ensure our schema properties align with key standards so that export adapters are trivial to build when needed.
Actions — Now (Phase 1)
1. Add globalAssetId to key graph nodes
Every asset that may need to be referenced externally gets a globally unique, resolvable identifier.
| Node | globalAssetId Format |
Example |
|---|---|---|
BOMItem |
urn:metaforge:bom:<manufacturer>:<mpn> |
urn:metaforge:bom:texas-instruments:TPS54302 |
DeviceInstance |
urn:metaforge:device:<serialNumber> |
urn:metaforge:device:MFG-2026-001234 |
TwinModel |
urn:metaforge:model:<productId>:<version> |
urn:metaforge:model:smartsensor-v2:1.3 |
Property definition:
| Property | Required | Type | Description |
|---|---|---|---|
globalAssetId |
No | String (IRI/URN) | Globally unique asset identifier, AAS-compatible |
This is an optional property on each node. It does not affect existing functionality.
2. Add supplier to BOMItem
| Property | Required | Type | Description |
|---|---|---|---|
supplier |
No | String | Primary supplier / distributor name |
Distinct from manufacturer — a component has one manufacturer but may have multiple suppliers.
3. Document AAS-aligned keys in specification maps
The existing BOMItem.specifications and DesignElement.parameters maps are flexible enough to carry AAS-required data. Document the expected keys:
BOMItem.specifications — recommended keys:
| Key | Type | AAS Submodel | Example |
|---|---|---|---|
countryOfOrigin |
String (ISO 3166-1) | Digital Nameplate | "US" |
rohsCompliance |
Enum | Digital Nameplate | "compliant" / "exempt" / "non-compliant" |
reachCompliance |
Enum | Digital Nameplate | "compliant" / "not-assessed" |
customsTariffNumber |
String | Digital Nameplate | "8542.31" |
weightGrams |
Float | Technical Data | 2.5 |
DesignElement.parameters — recommended keys:
| Key | Type | AAS Submodel | Example |
|---|---|---|---|
hardwareVersion |
String | Digital Nameplate | "rev-C" |
softwareVersion |
String | Digital Nameplate | "1.2.0" |
These are conventions, not schema constraints. Agents and IDE Assistants should populate these keys when data is available.
4. Add format and schemaVersion to conversion pipeline metadata
The STEP-to-GLB conversion metadata output (MET-151) must include versioning:
{
"format": "metaforge-twin-export",
"schemaVersion": "1.0",
"sourceFormat": "STEP-AP242",
"parts": [...]
}
This enables future consumers (AAS export, USD export) to parse metadata reliably.
Actions — Phase 3+
| Action | Priority | Trigger |
|---|---|---|
| AAS export adapter — serialize graph subsets as AASX packages | High | Customer demand from European manufacturing |
| AAS REST API (IDTA-02001) — expose twin data via standardized endpoints | High | When AAS registry integration is needed |
| SysML v2 import/export — bridge to MBSE tools (Cameo, Rhapsody) | Medium | Enterprise customer using MBSE workflow |
| USD export — Omniverse integration for factory simulation | Low | Only if L4 Simulation Twin targets factory-scale scenarios |
Standards Not Adopted
| Standard | Reason |
|---|---|
| DTDL | Azure-specific; MetaForge’s graph model is more expressive |
| NGSI-LD | Smart city / geospatial focus; not relevant for hardware design |
| IFC | AEC (architecture/construction); not relevant |
| USD (internal) | Too heavy for product-level twins; GLB is sufficient for viewing |
Architecture
How AAS Export Will Work (Phase 3+)
flowchart LR
GRAPH["Neo4j\nArtifact Graph"] --> QUERY["Cypher Query\nSubset Selection"]
QUERY --> MAP["AAS Mapper\ngraph → submodels"]
MAP --> PACK["AASX Packager\nJSON + files"]
PACK --> OUT["AASX File\nor AAS REST API"]
The AAS export adapter is a read-only projection of the graph — consistent with the architectural principle that all surfaces are projections of Digital Twin state.
Graph Schema Changes
graph TD
subgraph "Phase 1 Changes"
A["BOMItem\n+ globalAssetId\n+ supplier\n+ specifications keys"]
B["DeviceInstance\n+ globalAssetId"]
C["TwinModel\n+ globalAssetId"]
D["Conversion Metadata\n+ format\n+ schemaVersion"]
end
subgraph "Phase 3+ Additions"
E["AAS Export Adapter"]
F["AAS REST API"]
G["SysML v2 Adapter"]
end
A --> E
B --> E
C --> E
E --> F
Consequences
Positive
- Future-proofed for European market — AAS alignment is a sales differentiator with minimal upfront cost
- No schema disruption — changes are additive optional properties, not structural changes
- No vendor lock-in — internal model remains MetaForge-native; standards are export formats only
- Low effort now — 3 optional properties + documentation of map keys
Negative
- Slight schema complexity —
globalAssetIdis another property to populate (but it’s optional) - Convention enforcement — recommended
specificationskeys rely on agents/users to populate correctly
Risks and Mitigations
| Risk | Likelihood | Impact | Mitigation |
|---|---|---|---|
| AAS standard evolves, breaking alignment | Low | Low | Properties are optional; update conventions when AAS V4 ships |
| Customers demand full AAS compliance before Phase 3 | Medium | Medium | The globalAssetId + submodel alignment makes a fast MVP export feasible |
| SysML v2 tooling matures faster than expected | Low | Low | Graph schema is already structurally similar; adapter effort is bounded |
| USD becomes required for viewer (Apple/NVIDIA push) | Low | Medium | GLB-to-USDZ conversion is straightforward; does not affect internal model |
Related Documents
| Document | Relationship |
|---|---|
| Digital Twin Standards Landscape | Full research analysis informing this ADR |
| Graph Schema | Target of schema alignment changes |
| Digital Twin Evolution | Twin maturity layers (ISO/IEC 30173) |
| ADR-002: 3D Viewer & CAD Pipeline | GLB/STEP pipeline — metadata versioning applies here |
| ADR-003: Client Surface Strategy | Client architecture context |
| ADR-001: Agent Orchestration | Prior ADR in this series |