Skip to content

Common Architecture Language Model (CALM)

LinkML representation of the FINOS Common Architecture Language Model (CALM) 1.2 specification. CALM is a declarative, JSON-based modeling language for describing complex software architectures (nodes, relationships, controls, flows, decorators, timelines, evidence, and units). This LinkML schema is generated from the CALM JSON-Schema meta files.

URI: https://w3id.org/lmodel/calm

Name: calm

Classes

Class Description
Architecture Top-level CALM architecture document
ComposedOfRelationship A composed-of containment relationship
ConnectsRelationship A connects relationship between two node interfaces
Control A named control attached to an architecture element
ControlDetail A single control requirement and its inline / referenced configuration
ControlRequirement Domain-defined control requirement that controls can reference
Decision A candidate decision within an options relationship
Decorator Cross-cutting annotation attached to nodes, relationships, or flows
DeployedInRelationship A deployed-in containment relationship
EvidenceDocument Top-level CALM evidence document linking control configurations to evidence a...
Flow Business flow mapped onto architecture relationships
InteractsRelationship An interacts relationship between an actor and one or more nodes
InterfaceDefinition Modular interface definition referencing an external schema
InterfaceType Inline (free-form) interface definition keyed by unique-id
Node A logical or physical element of an architecture (system, service, actor,
        NodeMoment An architecture moment - a point-in-time snapshot of the architecture
NodeInterface Reference to one or more interfaces exposed by a node
OptionList Wrapper around the list of Decision alternatives in an options relationsh...
RateUnit A rate (count per time unit), e
Relationship A typed link between architecture elements
RelationshipType Tagged-union container for the variant body of a relationship
Timeline CALM timeline document capturing architecture moments over time
TimeUnit A quantity of time expressed as a numeric value and a unit
Transition A single step in a flow, anchored on a relationship

Slots

Slot Description
actor
adrs External links to ADRs (Architecture Decision Records) or similar documents t...
applies_to Array of unique-ids referencing nodes, relationships, flows, or other archite...
composed_of
config Inline configuration of how the control requirement schema is met
config_url The configuration of how the control requirement schema is met
connects
container
control_config_url
control_id The unique identifier of this control, which has the potential to be used for...
controls
current_moment The unique-id of the current architecture moment within the timeline
data Free-form JSON object containing the decorator's data
decisions Alternative decisions under an options relationship
definition_url URI of the external schema this interface configuration conforms to
deployed_in
description Free-form description of the element
destination
details
direction Direction of flow on the transition
evidence
evidence_paths Paths (filesystem or URL) pointing at supporting evidence
flows
interacts
interfaces Interface definitions exposed by nodes
metadata
moments A list of significant architecture states or points in time, each represented...
name Short human-readable name
node
node_type Category of the node (system, service, actor, etc
nodes
options
per The time unit defining the rate interval
protocol
rate The numeric value representing the rate
relationship_type
relationship_unique_id Unique identifier for the relationship in the architecture
relationships
requirement_url The requirement schema that specifies how a control should be defined
sequence_number Indicates the sequence of the relationship in the flow
source
target Array of file paths or URLs referencing the CALM documents (patterns, archite...
transitions
type Type of decorator - a free-form string identifying the decorator category
unique_id Stable opaque identifier used to cross-link CALM elements
unit The unit of time (e
url
valid_from The date when this architecture moment came into effect
value The numeric value representing the amount of time

Enumerations

Enumeration Description
NodeType Category of architecture node
Protocol Wire-level protocol used by a relationship
RatePerUnit Time interval denominator used by RateUnit
RelationshipKind Discriminator for the variant of a relationship-type: exactly one of the ...
TimeUnitName Named unit of time used by TimeUnit
TransitionDirection Direction of flow on a transition

Types

Type Description
Boolean A binary (true or false) value
CronExpression A Unix-style cron expression (minute, hour, day, month, weekday)
Curie a compact URI
Date a date (year, month and day) in an idealized calendar
DateOrDatetime Either a date or a datetime
Datetime The combination of a date and time
Decimal A real number with arbitrary precision that conforms to the xsd:decimal speci...
Double A real number that conforms to the xsd:double specification
Float A real number that conforms to the xsd:float specification
Integer An integer
Jsonpath A string encoding a JSON Path
Jsonpointer A string encoding a JSON Pointer
Metadata Opaque key/value metadata payload
Ncname Prefix part of CURIE
Nodeidentifier A URI, CURIE or BNODE that represents a node in a model
Objectidentifier A URI or CURIE that represents an object in the model
Sparqlpath A string encoding a SPARQL Property Path
String A character string
Time A time object represents a (local) time of day, independent of any particular...
Uri a complete URI
Uriorcurie a URI or a CURIE

Subsets

Subset Description
ControlFramework Control framework: controls, requirements, evidence
Core Core architecture vocabulary (nodes, relationships, decisions)
Decorators Cross-cutting decorators that annotate elements
FlowModeling Business flow modeling: flows and transitions
InterfaceDefs Interface definitions exposed by nodes
Timeline Time-based architecture snapshots (moments)
Units Quantity and rate unit primitives