Skip to main content

JSON Schema Index

This page lists every JSON Schema in the Triodian/Triodian_Metamodel repository. Use these schemas for validation, code generation and API integration. Each description is taken from the schema's own title and description.

Schema Conventions​

AspectValue
JSON Schema DraftDraft-07 (http://json-schema.org/draft-07/schema#)
Schema $idhttps://triodian.com/schemas/ followed by the file's path under schemas/, e.g. https://triodian.com/schemas/capability.schema.json
File nameskebab-case, singular, ending .schema.json
Shared vocabularycommon.schema.json
LicenseApache License 2.0

All schemas follow the same rules:

  • One structure. The root of each domain schema is the domain's main record (a Capability, an Initiative, a Policy). Its element types (a Capability Function, a Program, a Value Stream Stage) are named, camelCase entries under definitions, referenced with $ref.
  • No undefined fields. Every object a schema defines sets "additionalProperties": false, so a misspelt or undocumented field fails validation.
  • Identifiers. Every record has a required identifier named after its entity, such as capabilityID, strategyID, orgUnitID or modelID (never id or …Id), using the shared identifier definition. Records link to each other by these identifiers; ID fields such as orgUnitID, parentCapabilityID and relatedStrategyIDs sit beside the corresponding name fields (orgUnitTitle, parent, relatedStrategies).
  • Shared value lists. Concepts such as priority, risk level, frequency, status, maturity and domain type are defined once in common.schema.json with camelCase values, and domains reference them with allOf/$ref.
  • camelCase everywhere. Definition names, property names and enumerated values are camelCase.
  • Descriptions. Every property has a description.
  • Validation in CI. scripts/validate.py checks every schema on each push and pull request, together with the documentation's worked examples in examples/doc-examples.

Shared Vocabulary​

SchemaDescription
common.schema.jsonShared Vocabulary Schema: controlled vocabularies and reusable structures shared by every Triodian domain. Defines no instance type of its own.

Its definitions include:

DefinitionPurpose
identifierUnique identifier of a record within its domain, e.g. "CAP-001"
entityReferenceA reference to an entity in any domain, by domainType and entityID
dependencyAn entity in another domain that a record depends on
domainTypeThe Triodian domains, used when one record refers to an entity in another
ratingLevel, priority, criticality, importance, riskLevel, severityFour-point scale low, medium, high, critical; a field may add values (relationship priority adds strategic)
simpleLevel, fivePointLevel, likelihood, confidenceLevel, alignmentLevelThree-, four- and five-point ratings (alignmentLevel is none, low, medium, high)
impactMagnitude, changeMagnitude, effectiveness, complexity, scale1to5Magnitude, effectiveness and complexity scales
frequency, timeHorizonHow often something happens; planning horizon (immediate to extended)
performanceTrend, quantityTrendDirection of a measure or an amount
workStatus, documentStatus, implementationStatus, complianceStatusStatus lists
lifecycleStage, adoptionStage, maturityLevel, automationLevelLifecycle, adoption, maturity (initial to optimizing) and automation
riskCategory, dependencyStrength, geographicScopeRisk categories, dependency strength, geographic reach
jurisdictionCodeISO 3166 jurisdiction code (AU, SG, EU, US-NY), or INT for international standards
currencyCode, moneyAmount, datePeriod, performanceIndicatorReusable structures for money, periods and measures

The repository's shared vocabulary report lists every shared value and the fields that use it.

Core Domain Schemas​

DomainSchemaDescription
Organizationorganization.schema.jsonOrganization Domain Schema: organizations and their organization units
Stakeholderstakeholder.schema.jsonStakeholder Domain Schema: people and groups with influence or interest, and their requirements
Capabilitiescapability.schema.jsonCapabilities Domain Schema, with capability functions, components and processes
Value Streamvalue-stream.schema.jsonValue Stream Domain Schema: end-to-end activities that create value for customers or internal stakeholders; stages are element records
Informationinformation.schema.jsonInformation Domain Schema, with information elements
Strategystrategy.schema.jsonStrategy Domain Schema, with strategic objectives
Performanceperformance.schema.jsonPerformance Domain Schema, with performance KPIs
Initiativesinitiative.schema.jsonInitiatives Domain Schema: Initiative > Program > Project, linked by parentInitiativeID and parentProgramID
Productsproduct.schema.jsonProducts Domain Schema: tangible and intangible offerings that address customer needs and deliver value
Servicesservice.schema.jsonServices Domain Schema, with service features
Policypolicy.schema.jsonPolicy Domain Schema: rules, guidelines and standards that govern operations and decision-making

Extended Domain Schemas​

DomainSchemaDescription
Customercustomer.schema.jsonCustomer Domain Schema: customer segments, with personas, journeys and relationships as element records linked by customerSegmentID
Marketmarket.schema.jsonMarket Domain Schema: the external business environment, market dynamics, competitive positioning and industry trends
Financefinance.schema.jsonFinance Domain Schema: economic resources, financial flows, structures and instruments (financial resources, budgets, investments, revenue streams, cost structures)
Risk Managementrisk-management.schema.jsonRisk Management Domain Schema: risk, assessment, control, response and monitoring
Technologytechnology.schema.jsonTechnology Domain Schema
Supply Chainsupply-chain.schema.jsonSupply Chain Domain Schema
Peoplepeople.schema.jsonPeople Domain Schema: workforce capabilities, organizational culture, leadership approaches and knowledge management
Channelchannel.schema.jsonChannel Domain Schema: the methods, pathways and networks through which an organization delivers products and services
Innovationinnovation.schema.jsonInnovation Domain Schema: creating, developing and implementing new ideas, products, services, processes and business models
Sustainabilitysustainability.schema.jsonSustainability Domain Schema
Intelligenceintelligence.schema.jsonIntelligence Domain Schema: organizational intelligence activities, sources, applications and attributes
Manufacturingmanufacturing.schema.jsonManufacturing Domain Schema, with work orders, production units and inventory
Social Changesocial-change.schema.jsonSocial Change Domain Schema: campaigns, movements and interventions addressing systemic injustice, inequality and exclusion

Model Risk Management​

SchemaDescription
model-risk-management.schema.jsonModel Risk Management Schema, a sub-domain of Risk Management. The root is a Model Profile in the model inventory; Model Governance, Model Validation, Model Monitoring and Regulatory Framework Mapping are element records linked to the model by modelID.

Semantic Library​

SchemaDescription
semantic-library/obligation.schema.jsonObligation Schema: a requirement captured at clause level from its governing source, with the context it applies to and who is accountable for it.
semantic-library/semantic-constraint.schema.jsonSemantic Constraint Schema: a governed constraint on what an AI system may say or emit, traced to the obligations it enforces, routed to an enforcement tier, with its stewardship, lifecycle and calibration or conformance evidence. See Semantic Library.

Compliance and Public Reporting​

SchemaDescription
compliance/compliance-requirement.schema.jsonCompliance Requirement Schema: a formal requirement from a regulator, professional or standards body, made up of clause-level obligations. See Compliance.
compliance/statement-of-compliance.schema.jsonStatement of Compliance Schema: an organization's approved declaration that it meets one or more requirements, with its evidence.
public-reporting/public-report.schema.jsonPublic Report Schema: a report the organization makes public, with its type, version, status and disclosures. See Public Reporting.
public-reporting/mandatory-disclosure.schema.jsonMandatory Disclosure Schema: information an obligation or requirement calls for the organization to publish.

Use Cases​

SchemaDescription
use-case.schema.jsonUse Case Schema: a standardised AI use case on the authority, boundary and confidentiality channel scales. UC1 to UC10 are in reference-data/use-cases.json. See Use Cases.

Dynamic and Time-Series​

SchemaDescription
extensions/dynamic-time-series/data-flow.schema.jsonData Flow Schema: a configured movement of data between systems, including monitored sources. See Dynamic and Time-Series.
extensions/dynamic-time-series/timebound-metric.schema.jsonTimebound Metric Schema: a metric measured as a time series.
extensions/dynamic-time-series/predictive-model.schema.jsonPredictive Model Schema: a model that predicts one timebound metric from others.

Governance Interface​

SchemaDescription
governance/submission.schema.jsonSubmission Schema: a batch of change proposals sent to a governing service. See Governance Interface.
governance/change-proposal.schema.jsonChange Proposal Schema: one proposed change to one record, with its evidence.
governance/submission-result.schema.jsonSubmission Result Schema: validity, match, conflicts, confidence and treatment for each proposal.
governance/review-decision.schema.jsonReview Decision Schema: a named person's decision on a queued proposal.
governance/governed-record.schema.jsonGoverned Record Schema: a published version of a record, with verification, approver and provenance.
governance/provenance-record.schema.jsonProvenance Record Schema: one append-only, hash-chained ledger entry.
governance/dataset-policy.schema.jsonDataset Policy Schema: the precedence, autonomy, freshness and language rules a dataset runs under.

Relationship Schemas​

SchemaDescription
cross-domain-relationship.schema.jsonCross-Domain Relationship Schema: a directional relationship between entities in different domains, from a source domain to a target domain, using one of 37 relationship types. Information, Performance, Product and Service never act as the source.
inter-unit-domain-relationship.schema.jsonInter-Unit Domain Relationship Schema: how an organization unit relates to a domain entity (owning, providing, consuming, governing and other roles)

Relationship directionality is part of the cross-domain relationship schema; there is no separate directionality schema.

Strategic Response Model​

SchemaDescription
trigger.schema.jsonTrigger Schema: what prompts change; affected entities are listed in affectedEntities
rationale.schema.jsonRationale Schema: the reasoning that connects a trigger to a specific response; related entities are listed in relatedEntities
strategic-intent.schema.jsonStrategic Intent Schema: a proactive aspiration or opportunity the organization intends to pursue, realised through strategic responses
strategic-response.schema.jsonStrategic Response Schema: a planned or enacted response to triggers or strategic intents, justified by rationales and measured by performance indicators
strategic-response-model.schema.jsonStrategic Response Model Schema: composite that groups triggers, rationales, strategicIntents and strategicResponses for exchange
performance-indicator.schema.jsonPerformance Indicator Schema: a measure with baseline, current and target values, thresholds and measurement details

Coverage Schemas​

SchemaDescription
coverage/coverage-template.schema.jsonCoverage Template Schema: a reusable pattern of coverage expectations for types of organisations or industries
coverage/organization-goal.schema.jsonOrganization Goal Schema: an organisation's business architecture goal, with domain weighting, coverage aspirations and tolerances
coverage/coverage-expectation.schema.jsonCoverage Expectation Schema: the desired coverage level for a domain within an organisation or business unit
coverage/coverage-status.schema.jsonCoverage Status Schema: derived record comparing actual domain coverage to expectations and identifying gaps

External Organization Schemas​

SchemaDescription
external-organization.schema.jsonExternal Organization Schema: third-party entities such as partners, regulators and customers
inter-organizational-relationship.schema.jsonInter-Organizational Relationship Schema: links between internal and external organizational units
shared-initiative.schema.jsonShared Initiative Schema: initiatives with multiple owning organizations
federated-governance-model.schema.jsonFederated Governance Model Schema: how multiple organizations co-own or co-steward resources
external-organization-composite.schema.jsonExternal Organizations Composite Schema: groups externalOrganizations, interOrganizationalRelationships, sharedInitiatives and federatedGovernanceModels

Extension Schemas​

SchemaDescription
extensions/business-analysis.schema.jsonBusiness Analysis Extension Schema: formalises BA activities, requirements and artefacts. Requirements, requirement artefacts, elicitation activities, analysis and design definitions, and solution evaluations are element types within this one file.
extensions/technology-one-well-architected-framework.schema.jsonTechnologyOne Well-Architected Framework Extension Schema: architectural principles and patterns inspired by the TechnologyOne Well-Architected Framework

Interoperability Mappings​

The interoperability mappings are JSON-LD contexts, not JSON Schemas. They live in the repository's interoperability folder and use one Triodian namespace, https://triodian.com/ontology# (prefix triodian:).

FrameworkContext file
BIANtriodian-bian.context.jsonld
SAP Enterprise Architecture Frameworktriodian-sap.context.jsonld (correspondences stated with skos:closeMatch)
FIBOtriodian-FIBO.context.jsonld

scripts/validate.py checks that each mapping is valid JSON-LD and maps only terms the schemas define.

Schema Structure​

Domain Schema Structure​

Each domain schema follows the same structure. This excerpt from capability.schema.json shows the root record, a required identifier, a shared value list and an element type under definitions:

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://triodian.com/schemas/capability.schema.json",
"title": "Capabilities Domain Schema",
"type": "object",
"required": ["capabilityID", "title", "description", "purpose", "owner"],
"additionalProperties": false,
"properties": {
"capabilityID": {
"description": "Unique identifier for the Capability",
"allOf": [{ "$ref": "common.schema.json#/definitions/identifier" }]
},
"title": {
"type": "string",
"description": "The name or title of the Capability"
},
"maturityLevel": {
"description": "Current maturity level of the Capability",
"allOf": [{ "$ref": "common.schema.json#/definitions/maturityLevel" }]
},
"capabilityFunctions": {
"type": "array",
"items": { "$ref": "#/definitions/capabilityFunction" }
}
},
"definitions": {
"capabilityFunction": {
"type": "object",
"additionalProperties": false,
"properties": {}
}
}
}

Composite Schema Structure​

Composite schemas group records defined in other schemas. strategic-response-model.schema.json refers to the four Strategic Response Model schemas:

{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://triodian.com/schemas/strategic-response-model.schema.json",
"title": "Strategic Response Model Schema",
"type": "object",
"additionalProperties": false,
"properties": {
"triggers": { "type": "array", "items": { "$ref": "trigger.schema.json" } },
"rationales": { "type": "array", "items": { "$ref": "rationale.schema.json" } },
"strategicIntents": { "type": "array", "items": { "$ref": "strategic-intent.schema.json" } },
"strategicResponses": { "type": "array", "items": { "$ref": "strategic-response.schema.json" } }
}
}

Using the Schemas​

Schemas refer to each other by relative $ref (for example common.schema.json#/definitions/riskLevel), so load every schema in the schemas/ folder before validating a record.

Validation Example (JavaScript)​

const Ajv = require('ajv');
const fs = require('fs');
const path = require('path');

const ajv = new Ajv({ allErrors: true });

// Load every schema so that $ref between files resolves
function loadSchemas(dir) {
for (const entry of fs.readdirSync(dir, { withFileTypes: true })) {
const file = path.join(dir, entry.name);
if (entry.isDirectory()) loadSchemas(file);
else if (entry.name.endsWith('.schema.json')) ajv.addSchema(JSON.parse(fs.readFileSync(file)));
}
}
loadSchemas('./schemas');

const validate = ajv.getSchema('https://triodian.com/schemas/capability.schema.json');

const capability = {
capabilityID: "CAP-001",
title: "Customer Onboarding",
description: "Capability to register new customers",
purpose: "Bring new customers into the bank quickly and compliantly",
owner: "Retail Banking"
};

if (!validate(capability)) {
console.log(validate.errors);
}

Validation Example (Python)​

import json
from pathlib import Path
from jsonschema import Draft7Validator
from referencing import Registry, Resource

# Load every schema so that $ref between files resolves
schemas = [json.loads(p.read_text()) for p in Path("schemas").rglob("*.schema.json")]
registry = Registry().with_resources(
(s["$id"], Resource.from_contents(s)) for s in schemas
)
schema = registry.contents("https://triodian.com/schemas/capability.schema.json")

capability = {
"capabilityID": "CAP-001",
"title": "Customer Onboarding",
"description": "Capability to register new customers",
"purpose": "Bring new customers into the bank quickly and compliantly",
"owner": "Retail Banking",
}

errors = list(Draft7Validator(schema, registry=registry).iter_errors(capability))
for e in errors:
print(f"Invalid: {e.message}")
if not errors:
print("Valid!")

Validating the Repository​

The repository's own validator runs the structural checks and validates the documentation's worked examples:

pip install -r scripts/requirements.txt
python scripts/validate.py # structural checks
python scripts/validate.py --doc-examples # plus the documentation's worked examples

Code Generation Example (TypeScript)​

Using json-schema-to-typescript, run from the schemas/ folder so relative references resolve:

cd schemas
npx json-schema-to-typescript capability.schema.json > ../types/capability.d.ts

Generated TypeScript (abridged):

export interface CapabilitiesDomainSchema {
capabilityID: string;
title: string;
description: string;
purpose: string;
owner: string;
maturityLevel?: 'initial' | 'repeatable' | 'defined' | 'managed' | 'optimizing';
// ...
}

Schema Versioning​

The schemas carry no version number. The main branch of the repository is the current version, and every change goes through a pull request that must pass the CI checks. To pin a version, refer to a specific commit or tag of the repository.

Getting the Schemas​

All schemas are maintained in the Triodian/Triodian_Metamodel repository on GitHub. Clone it, or download individual files from the links above:

git clone https://github.com/Triodian/Triodian_Metamodel.git

Schema Validation Tools​

Online Validators​

Online validators load one schema at a time, so they cannot follow references to common.schema.json unless you paste it in as well.

CLI Tools​

ToolLanguageInstallation
ajv-cliNode.jsnpm install -g ajv-cli
jsonschemaPythonpip install jsonschema
check-jsonschemaPythonpip install check-jsonschema

IDE Extensions​

IDEExtension
VS CodeBuilt-in JSON Schema support (json.schemas setting)
IntelliJBuilt-in JSON Schema support
SublimeSublimeLinter-json