Skip to content

Modeling Languages Guide

This guide explains the modeling language ontologies in modelingLanguages/ — what each provides, how they relate through the arch:core foundation, how to choose and combine them, and how to author models using them.

For comparative analysis of the modeling notations themselves (ArchiMate vs C4 vs UML), see the articles in doc/articles/.


1. Overview

Each modeling language in this repository is formalized as an RDF/OWL ontology that imports arch:core. This means every language shares the same foundational concepts (arch:Element, arch:QualifiedRelationship, arch:View, arch:Viewpoint, arch:Metamodel) and the same relationship modeling pattern (three-declaration qualified relationships, SHACL validation, SKOS classification).

flowchart TD
    core["arch:core"]
    am["modelingLanguages/archimate/<br/>ArchiMate 3.2 + 4.0 — 62 elements, 11 relationships"]
    c4["modelingLanguages/c4/<br/>C4/Structurizr — 6 elements, 3 relationships"]
    bs["modelingLanguages/backstage/<br/>Backstage Catalog — 7 elements, 7 relationships"]
    bpmn["modelingLanguages/bpmn/<br/>BPMN 2.0.2 — full CMOF mapping (144 classes)"]
    bpmnlite["modelingLanguages/bpmn-lite/<br/>BPMN Lite — EA-level thin lift (29 classes)"]
    lx["modelingLanguages/leanIX/<br/>SAP LeanIX v3/v4"]
    bmc["modelingLanguages/bmc/<br/>Business Model Canvas"]

    core --> am & c4 & bs & bpmn & bpmnlite & lx & bmc

All languages can coexist in the same knowledge graph. An am:ApplicationComponent and a c4:SoftwareSystem and a bs:System can all describe the same real-world system, linked by shared IRIs or owl:sameAs.


2. Language Summaries

2.1 ArchiMate 3.2 (modelingLanguages/archimate/)

The most comprehensive metamodel. Covers the full enterprise architecture scope.

Aspect Content
Elements 62 types across 7 layers (Motivation, Strategy, Business, Application, Technology, Physical, I&M)
Relationships 11 types (Composition, Aggregation, Assignment, Realization, Serving, Access, Influence, Triggering, Flow, Specialization, Association)
Viewpoints 23 example viewpoints with stakeholders, concerns, aspects, perspectives
SHACL shapes Relationship validity (generated from matrix), element constraints (24 shapes), governance principles (20 shapes), viewpoint conformance
Derivation rules DR1-DR8 (valid) + PDR1-PDR12 (potential) from ArchiMate Appendix B
Taxonomy SKOS classification by layer and by aspect
Reference data Lifecycle states, environment types, criticality levels
Reference models Architecture patterns (Layered, Microservices, Event-Driven, SOA), industry models (BIAN, TM Forum, ACORD)
Deliverable templates Architecture Definition Document, Requirements Spec, Principles Document
Presentation contexts Executive, Architect, Developer, Operations, Governance themes

Files: See modelingLanguages/archimate/README.md for the complete file listing and versioning strategy.

Use when: You need enterprise-wide modeling with cross-layer traceability (strategy → business → application → technology), formal governance, impact analysis, or compliance validation.

2.2 C4/Structurizr (modelingLanguages/c4/)

Lightweight metamodel for software architecture visualization.

Aspect Content
Elements 6 types: Person, SoftwareSystem, Container, Component, DeploymentNode, InfrastructureNode
Relationships 3 types: Using, Containment (hasContainer, hasComponent), Deployment (deployedOn)
Viewpoints 10 viewpoints (SystemContext, ContainerView, ComponentView, DeploymentView, SystemLandscape, DynamicView, plus filtered variants)
SHACL shapes Per-relationship-type domain/range constraints
Taxonomy SKOS classification by C4 level
Deliverable templates System Architecture Document, Deployment Guide
Reference data Container types (service, database, queue, webapp), deployment environments
Presentation contexts Developer, Architect, Stakeholder themes

Use when: You need developer-friendly software architecture documentation with progressive zoom (Context → Container → Component → Code) and deployment views.

2.3 Backstage (modelingLanguages/backstage/)

Maps the Backstage developer portal catalog model.

Aspect Content
Elements 7 types: Component, System, API, Resource, Domain, User, Group
Relationships 7 types: Ownership, SystemMembership, APIProvision, APIConsumption, ResourceUsage, DomainMembership, GroupMembership
Viewpoints 5 viewpoints: ServiceCatalog, SystemDependency, APIDependency, OwnershipMatrix, DomainOverview
SHACL shapes Per-relationship-type domain/range constraints
Taxonomy Software entities vs organizational entities
Reference data Component lifecycle (experimental/production/deprecated), component types (service/website/library), API types (OpenAPI/AsyncAPI/GraphQL/gRPC)

Use when: You need to integrate a Backstage developer portal catalog into the knowledge graph, adding ownership, API tracking, lifecycle, and domain organization.

2.4 BPMN 2.0.2 (modelingLanguages/bpmn/)

Full OWL mapping of the BPMN 2.0.2 specification from the OMG XMI/CMOF source, validated against the normative XSD and CMOF artifacts.

Aspect Content
Ontologies Core BPMN (130+ classes), Infrastructure, BPMNDI (diagram interchange), DC (diagram common), DI (diagram interchange base)
SHACL shapes Per-ontology constraint sets
Viewpoints 4 viewpoints: Process, Collaboration, Choreography, Conversation
Alignment Suite-level alignment ontology connecting BPMN to Linked.Archi core
Reference OMG BPMN 2.0.2 formal/2013-12-09

Use when: You need detailed behavioral process modeling — lanes, gateways, events, sub-processes, message flows. Complements ArchiMate (which models processes at a higher abstraction) and C4 (which doesn't model processes at all).

2.4b BPMN Lite (modelingLanguages/bpmn-lite/)

Simplified BPMN profile for EA-level reasoning — a "thin lift" covering only constructs with cross-model semantic value.

Aspect Content
Ontologies 29 classes: Process, Task (7 types), Event (4 types), Gateway (4 types), Participant, Lane, DataObject, DataStore, Message
SHACL shapes Constraint set with eventType validation
Relationships SequenceFlow, MessageFlow, DataAssociation
Alignment Direct rdfs:subClassOf arch:Element; skos:exactMatch links to full BPMN classes

Use when: You need cross-model EA queries (BPMN + ArchiMate + C4), governance validation ("which processes handle PII?"), or a lightweight process layer in the knowledge graph. Layout stays in the original .bpmn file.

See also: BPMN Deep Dive for a detailed comparison of both profiles with examples.

2.5 LeanIX (modelingLanguages/leanIX/)

Maps the SAP LeanIX Meta Model (v3 and v4).

Aspect Content
Ontologies v3 and v4 element/relationship ontologies
Taxonomy LeanIX fact sheet types
Viewpoints Application landscape, IT component, business capability viewpoints

Use when: You need to integrate LeanIX data into the knowledge graph for portfolio management, TIME assessments, or technology lifecycle analysis.

2.6 Business Model Canvas (modelingLanguages/bmc/)

Maps the Business Model Canvas (Osterwalder) as a SKOS-based metamodel.

Use when: You need to connect business model elements (value propositions, customer segments, channels, revenue streams) to the architecture knowledge graph.

2.7 EDGY 23 (modelingLanguages/edgy/)

An open-source Enterprise Design language by Intersection Group. Provides four base elements (People, Outcome, Activity, Object), twelve facet/intersection elements across three facets (Identity, Architecture, Experience), three relationship types (Link, Flow, Tree), and two label types (Tagging, Metrics). 24 pre-defined core links connect elements across facets.

Asset Content
edgy-onto.ttl 21 classes, 24 core link properties, 5 base element properties, 2 label properties
edgy-tax.ttl SKOS taxonomy — base, facet (by category), intersection, relationships, labels
edgy-metamodel.ttl Metamodel manifest (entry point)
edgy-shapes.ttl SHACL shapes — element, relationship, and core link validation
edgy-viewpoints.ttl 9 viewpoints with stakeholders and concerns
edgy-notation.ttl Visual notation set (default, v2) — proper EDGY shapes
edgy-reference-data.ttl Asset types, metric categories, maturity levels, channel types
edgy-deliverable-templates.ttl 7 document templates (enterprise overview, capability map, journey, etc.)
icons/ SVG icons for all elements, relationships, and labels
notation-v1/ Alternative notation set (v1) — circle-based iconic style

Visual notation: Two notation sets are available, selectable via arch-vis:NotationSet:

  • Default (v2) — uses the canonical EDGY shapes: RoundedRectangle for Outcome-family, RightArrow (pentagon) for Activity-family, Rectangle for Object-family, and a person silhouette for People. Colors: green #75F0A5 (Identity), blue #9DB9F6 (Architecture), pink #F985B4 (Experience), with intersection colors cyan/orange/purple.
  • Alternative (v1) — all elements rendered as circles with facet-colored fills and centered glyphs inside. More compact and iconic, suitable for high-density maps.

Both sets follow the same color mapping and element semantics; they differ only in shape rendering.

Use when: You need a simple, accessible language for cross-disciplinary enterprise design — bridging business strategy, architecture, and customer experience teams. Complements ArchiMate with identity and experience perspectives.

References: - EDGY Modeling Guide — how to author EDGY models as Turtle with Linked.Archi, including a worked example (Meridian Insurance Group) - EDGY Official Wiki — element definitions, example maps, and visual language - Enterprise Design Cookbook with EDGY — comprehensive practical guide by Eero Hosiaisluoma covering facets, elements, methods, patterns, service blueprints, capability maps, and worked examples (PDF) - Intersection Group — the creators of EDGY, community, learning resources, and publications - EDGY 23 Language Foundations — the official EDGY book by Milan Guenther & Wolfgang Goebl


3. How the Languages Relate

3.1 Shared foundation

Every language imports arch:core. This means:

  • All elements are arch:Element subclasses → queryable with ?x a arch:Element
  • All relationships follow the three-declaration pattern → arch:source, arch:target, arch:unqualifiedForm
  • All elements carry skos:prefLabel → consistent labeling
  • All models reference arch:Metamodel → discoverable via arch:modelConformsToMetamodel
  • All viewpoints are arch:Viewpoint instances → consistent viewpoint framework
  • Core SHACL shapes apply to all → skos:prefLabel required, arch:source/arch:target required on relationships

3.2 Cross-language integration points

Integration Point Languages How
System identity ArchiMate am:ApplicationComponent ↔ C4 c4:SoftwareSystem ↔ Backstage bs:System Same IRI or owl:sameAs / skos:exactMatch
Deployable unit ArchiMate am:ApplicationComponent (nested) ↔ C4 c4:Container ↔ Backstage bs:Component Same IRI or naming convention
API contract ArchiMate am:ApplicationInterface + am:ApplicationService ↔ Backstage bs:API Same IRI or skos:exactMatch
Infrastructure ArchiMate am:Node / am:Device / am:SystemSoftware ↔ C4 c4:DeploymentNode ↔ Backstage bs:Resource Same IRI or naming convention
Business process ArchiMate am:BusinessProcess ↔ BPMN bpmn:Process arch:refines or owl:sameAs
Ownership Backstage bs:ownedBybs:Group Backstage is authoritative for ownership
Lifecycle Backstage bs:lifecycle Backstage is authoritative for runtime lifecycle

3.3 Choosing languages for your metamodel

If your concern is... Use
Full enterprise architecture (strategy → technology) ArchiMate
Developer-facing system documentation C4
Runtime service catalog with ownership Backstage
Detailed process/workflow modeling BPMN
Application portfolio management LeanIX or ArchiMate + TIME framework
Business model alignment BMC + ArchiMate Strategy layer
All of the above Compose them — they all share arch:core

4. Composing Multiple Languages

A metamodel can import multiple languages. For example, an organization using ArchiMate for enterprise modeling, C4 for developer documentation, and Backstage for the service catalog:

@prefix arch: <https://meta.linked.archi/core#> .
@prefix :     <https://model.example.com/metamodel#> .

:OurMetamodel a arch:Metamodel ;
    skos:prefLabel "Our Enterprise Metamodel"@en ;
    arch:modelConcepts
        <https://meta.linked.archi/archimate3/onto#>,
        <https://meta.linked.archi/c4/onto#>,
        <https://meta.linked.archi/backstage/onto#> ;
    arch:formalRules
        <https://meta.linked.archi/core-shapes#>,
        <https://meta.linked.archi/archimate3/shapes#>,
        <https://meta.linked.archi/c4/shapes#>,
        <https://meta.linked.archi/backstage/shapes#> .

Models conforming to this metamodel can use elements from all three languages in the same graph:

# ArchiMate: business context
ex:OrderFulfillment a am:Capability .
ex:OrderPlacement a am:BusinessService ;
    am:realizes ex:OrderFulfillment .

# C4: developer view
ex:OrderMgmt a c4:SoftwareSystem .
ex:OrdersAPI a c4:Container ;
    c4:technology "Spring Boot" .
ex:OrderMgmt c4:hasContainer ex:OrdersAPI .

# Backstage: operational catalog
ex:OrdersAPI a bs:Component ;
    bs:ownedBy ex:OrdersTeam ;
    bs:lifecycle "production" ;
    bs:providesAPI ex:OrdersOpenAPI .

# Cross-language link
ex:OrdersAPI am:assignedTo ex:OrderPlacementService .
ex:OrderPlacementService a am:ApplicationService ;
    am:realizes ex:OrderPlacement .

SPARQL queries traverse across all three seamlessly.


5. Authoring Models

Write .ttl files directly. See Semantic Architecture as Code for the full workflow with Makefile, CI/CD, and SPARQL views.

5.2 From existing tools via converters

Source Tool Converter Output
Archi, Sparx EA, BiZZdesign (ArchiMate) converters/archimate/ RDF typed with am: classes
Camunda, Signavio (BPMN) converters/bpmn/ RDF typed with bpmn: classes
PlantUML (class, component, sequence, use case) converters/plantuml/ RDF typed with appropriate classes

All converters produce three named graphs (semantic, views, provenance) and support YAML type-mapping overrides for custom ontology alignment.

5.3 From Structurizr DSL (with ArchiMate tags)

Use Structurizr archetypes and tags to carry ArchiMate type information, then convert the workspace JSON to RDF. See ArchiMate in Structurizr DSL for the approach, limitations, and alternatives.

5.4 Extending with custom concepts

Any language can be extended with organization-specific concepts:

@prefix am:   <https://meta.linked.archi/archimate3/onto#> .
@prefix arch: <https://meta.linked.archi/core#> .
@prefix :     <https://model.example.com/custom#> .

# Custom element extending ArchiMate
:Microservice
    a               owl:Class ;
    rdfs:subClassOf am:ApplicationComponent ;
    skos:prefLabel  "Microservice"@en ;
    skos:definition "A fine-grained, independently deployable service."@en .

# Custom property
:resilienceLevel
    a                   owl:DatatypeProperty ;
    skos:prefLabel      "Resilience Level"@en ;
    arch:domainIncludes :Microservice ;
    rdfs:range          xsd:string .

See the Fortis banking example for a real-world extension.


6. Validation

Every language has SHACL shapes that validate model data. Run validation via:

# Validate against a specific language
.scripts/validate.sh --shacl archimate
.scripts/validate.sh --shacl c4
.scripts/validate.sh --shacl backstage

# Validate custom model against multiple shape sets
.scripts/validate.sh --shacl mymodel.ttl \
    core/core-shapes.ttl \
    modelingLanguages/archimate/3.2/archimate3.2-relationship-shapes.ttl \
    modelingLanguages/backstage/backstage-shapes.ttl

# Full CI run
.scripts/validate.sh --ci

See Validation Guide for details on the two-layer shapes architecture and how to add custom profiles.


7. Further Reading

Topic Document
Core ontology classes and properties Ontology Reference
Qualified relationship pattern Relationship Modeling Guide
Design rationale Design Decisions
Creating a new metamodel Quick Start Guide
Validation pipeline Validation Guide
Real-world scenarios Use Cases
ArchiMate ontology details ArchiMate Ontology Suite
ArchiMate 4.0 modeling patterns ArchiMate 4.0 Modeling Guide
ArchiMate design decisions ArchiMate Design Decisions
EDGY modeling patterns EDGY Modeling Guide
Architecture-as-code workflow Semantic Architecture as Code
DSL options for authoring ArchiMate in Structurizr DSL and Beyond

Practice Guides

The following provide in-depth comparisons of the modeling notations themselves. They are maintained in doc/practice/: