Skip to content

BPMN Deep Dive

1. What is BPMN

Business Process Model and Notation (BPMN) is the OMG standard for graphical representation of business processes. Version 2.0.2 (formal/2013-12-09) defines a rich metamodel with 130+ classes covering:

  • Process orchestration — activities, events, gateways, sequence flows
  • Collaboration — participants (pools), message flows between organisations
  • Choreography — expected message exchange sequences between parties
  • Conversation — logical groupings of message exchanges
  • Data — data objects, stores, inputs/outputs, associations
  • Diagram interchange — geometry, shapes, edges, labels, styles

The specification is available at omg.org/spec/BPMN/2.0.2.


2. BPMN vs ArchiMate — Different Density, Different Purpose

BPMN is execution-oriented. It was designed so that a process model can be directly executed by a BPMN engine (Camunda, jBPM, etc.). This means every detail matters: timer durations, conditional expressions, data mappings, correlation keys, multi-instance loop cardinalities.

ArchiMate is governance-oriented. A Business Process in ArchiMate is a single element with a name and maybe a description. It exists to show how processes relate to capabilities, applications, and technology — not to specify execution logic.

The density difference is dramatic. A single ArchiMate Business Process element might correspond to an entire BPMN model with 50+ elements (tasks, gateways, events, lanes, data objects, sequence flows, boundary events).

Dimension ArchiMate BPMN
Purpose Cross-layer governance Process execution
Process granularity 1 element per process 10–100 elements per process
Relationships Typed (Triggering, Flow, Access) Sequence Flow, Message Flow, Data Association
Events Not modeled 13 event types × 3 positions (start/intermediate/end)
Data DataObject (passive structure) DataObject, DataInput, DataOutput, DataStore, DataState, ItemDefinition, I/O Specifications
Diagram interchange Not in the standard Full geometry model (BPMNDI/DI/DC)

This density difference has direct implications for ontology design.


3. The Density Problem

A faithful 1:1 lift of every BPMN-XML element into RDF creates many triples whose semantic value at the enterprise architecture level is near zero:

  • Pool/lane geometry (x, y, width, height)
  • Sequence flow waypoints (arrays of coordinate pairs)
  • Marker styles (isExpanded, isMarkerVisible, participantBandKind)
  • I/O specifications (InputSet, OutputSet, DataInput, DataOutput bindings)
  • Correlation keys and subscriptions
  • Extension elements and attribute values

If the goal is rendering BPMN diagrams, RDF buys nothing over the native XML. The value of RDF materializes only when you intend to query, validate, or reason across BPMN and other models.

This is why Linked.Archi provides two BPMN profiles:

Profile Location Classes Properties Use case
BPMN Full modelingLanguages/bpmn/ 144 199 Spec fidelity, round-tripping, tooling, execution
BPMN Lite modelingLanguages/bpmn-lite/ 29 10 EA reasoning, cross-model queries, thin lift

The choice is a designer decision. Both are available as building blocks.


4. BPMN Full — Spec-Faithful Ontology

The full suite (modelingLanguages/bpmn/) is a 1:1 OWL mapping of the BPMN 2.0.2 XMI/CMOF, validated against the normative XSD artifacts. It preserves the compositional structure of the spec.

4.1 Example: Timer Start Event (Nobel Prize Process)

The BPMN 2.0.2 spec examples include a Nobel Prize nomination process that starts on a timer:

<!-- .reference/omg/bpmn202/2010-06-03/Nobel Prize/Nobel Prize Process.bpmn -->
<startEvent name="September Year n-1" id="_6-84">
    <timerEventDefinition>
        <timeDate/>
    </timerEventDefinition>
</startEvent>

In the full ontology, this becomes:

@prefix bpmn: <https://meta.linked.archi/bpmn/onto#> .
@prefix ex:   <https://example.org/nobel-prize/> .

ex:sept_start a bpmn:StartEvent ;
    bpmn:name "September Year n-1" ;
    bpmn:id "_6-84" ;
    bpmn:eventDefinitions ex:sept_start_timer .

ex:sept_start_timer a bpmn:TimerEventDefinition ;
    bpmn:timeDate [] .

The compositional pattern (event + event definition) supports events with multiple triggers without combinatorial subclass explosion.

4.2 Example: Collaboration with Message Flow

@prefix bpmn: <https://meta.linked.archi/bpmn/onto#> .
@prefix ex:   <https://example.org/order-process/> .

ex:customer_pool a bpmn:Participant ;
    bpmn:name "Customer" .

ex:supplier_pool a bpmn:Participant ;
    bpmn:name "Supplier" .

ex:order_collab a bpmn:Collaboration ;
    bpmn:name "Order Fulfillment" ;
    bpmn:participants ex:customer_pool, ex:supplier_pool ;
    bpmn:messageFlows ex:order_msg_flow .

ex:order_msg_flow a bpmn:MessageFlow ;
    bpmn:name "Purchase Order" ;
    bpmn:sourceRef ex:send_order_task ;
    bpmn:targetRef ex:receive_order_task ;
    bpmn:messageRef ex:purchase_order_msg .

ex:purchase_order_msg a bpmn:Message ;
    bpmn:name "Purchase Order" .

4.3 SPARQL: Find all tasks in a process

PREFIX bpmn: <https://meta.linked.archi/bpmn/onto#>

SELECT ?process ?task ?taskName WHERE {
    ?process a bpmn:Process ;
             bpmn:flowElements ?task .
    ?task a/rdfs:subClassOf* bpmn:Task ;
          bpmn:name ?taskName .
}

5. BPMN Lite — EA-Level Thin Lift

The lite profile (modelingLanguages/bpmn-lite/) converts only the BPMN constructs that carry semantic value at the EA level. Layout and notation detail stays in the original .bpmn file, referenced by URI.

5.1 Same Example: Timer Start Event

@prefix bpmnl: <https://meta.linked.archi/bpmn-lite/onto#> .
@prefix arch:  <https://meta.linked.archi/core#> .
@prefix ex:    <https://example.org/nobel-prize/> .

ex:sept_start a bpmnl:StartEvent ;
    arch:name "September Year n-1" ;
    bpmnl:eventType "timer" ;
    bpmnl:sourceRef <file:///models/nobel-prize.bpmn> .

Three triples instead of five. No separate EventDefinition instance. The eventType property captures the trigger type as a simple string. The sourceRef points back to the original BPMN file for full detail.

5.2 Same Example: Collaboration with Message Flow

@prefix bpmnl: <https://meta.linked.archi/bpmn-lite/onto#> .
@prefix arch:  <https://meta.linked.archi/core#> .
@prefix ex:    <https://example.org/order-process/> .

ex:customer a bpmnl:Participant ;
    arch:name "Customer" .

ex:supplier a bpmnl:Participant ;
    arch:name "Supplier" .

ex:order_msg a bpmnl:MessageFlow ;
    arch:source ex:customer ;
    arch:target ex:supplier ;
    arch:name "Purchase Order" .

Flat, queryable, and directly joinable with ArchiMate or C4 elements in the same graph.

5.3 SHACL Validation

The lite profile includes SHACL shapes (linkedarchi-bpmn-lite-shacl.ttl) that enforce basic constraints:

# From modelingLanguages/bpmn-lite/linkedarchi-bpmn-lite-shacl.ttl

:StartEventShape a sh:NodeShape ;
    sh:targetClass bpmnl:StartEvent ;
    sh:property [
        sh:path bpmnl:eventType ;
        sh:in ( "none" "timer" "message" "signal" "conditional" ) ;
        sh:message "A StartEvent eventType must be one of: none, timer, message, signal, conditional." ;
    ] ;
.

:SequenceFlowShape a sh:NodeShape ;
    sh:targetClass bpmnl:SequenceFlow ;
    sh:property [
        sh:path arch:source ;
        sh:minCount 1 ;
        sh:maxCount 1 ;
        sh:message "A SequenceFlow must have exactly one source." ;
    ] ;
    sh:property [
        sh:path arch:target ;
        sh:minCount 1 ;
        sh:maxCount 1 ;
        sh:message "A SequenceFlow must have exactly one target." ;
    ] ;
.

5.4 SPARQL: Cross-model query (BPMN Lite + ArchiMate)

The real value of the lite profile — querying across notations in a single graph:

PREFIX bpmnl: <https://meta.linked.archi/bpmn-lite/onto#>
PREFIX archi:  <https://meta.linked.archi/archimate3/onto#>
PREFIX arch:   <https://meta.linked.archi/core#>

# Find ArchiMate ApplicationServices that are realized by BPMN ServiceTasks
SELECT ?service ?serviceName ?task ?taskName WHERE {
    ?service a archi:ApplicationService ;
             arch:name ?serviceName .
    ?task a bpmnl:ServiceTask ;
          arch:name ?taskName .
    ?service arch:realizedBy ?task .
}
PREFIX bpmnl: <https://meta.linked.archi/bpmn-lite/onto#>
PREFIX archi:  <https://meta.linked.archi/archimate3/onto#>
PREFIX arch:   <https://meta.linked.archi/core#>

# Find all processes owned by a participant, with their tasks
SELECT ?participant ?participantName ?task ?taskName WHERE {
    ?participant a bpmnl:Participant ;
                 arch:name ?participantName .
    ?task a/rdfs:subClassOf* bpmnl:Task ;
          arch:name ?taskName ;
          arch:partOf ?participant .
}

6. When to Use Which

Scenario Recommended profile
Building a BPMN modeler or execution engine Full
Round-tripping BPMN XML ↔ RDF ↔ BPMN XML Full
Validating BPMN models against the spec Full
Cross-model EA queries (BPMN + ArchiMate + C4) Lite
Populating an architecture knowledge graph from Camunda/jBPM exports Lite (thin lift)
Tracing business capabilities to process tasks Lite
Governance: "which processes handle PII data?" Lite
Academic research on BPMN semantics Full

Nothing prevents using both in the same graph — the lite classes carry skos:exactMatch links to the full ontology classes, so data can be promoted or demoted between profiles.


7. Linking BPMN to Other Notations

Cross-notation linking is handled outside the BPMN ontologies themselves. Available mechanisms:

Mechanism Example When to use
skos:exactMatch ex:bpmn_task skos:exactMatch ex:archi_service Equivalent concepts across notations
arch:partOf / arch:hasPart ex:task arch:partOf ex:capability Structural decomposition
arch:refines / arch:refinedInto ex:bpmn_process arch:refines ex:archi_bp Refinement across abstraction levels
Project-specific IDs ex:task ex:camundaId "proc-123" Tool integration
Cross-mapping extensions Dedicated bridge ontology Reusable organisational standard

The choice depends on the organisation's integration strategy. Linked.Archi provides the building blocks; the organisation owns the model.


8. File Inventory

BPMN Full (modelingLanguages/bpmn/)

File Content
bpmn-metamodel.ttl Metamodel manifest
bpmn-viewpoints.ttl 4 viewpoints
bpmn-deliverable-templates.ttl Deliverable templates
linkedarchi-bpmn-onto.ttl Core ontology (144 classes, 199 properties)
linkedarchi-bpmn-shacl.ttl SHACL shapes
linkedarchi-bpmn-infra-onto.ttl Infrastructure (Definitions, Import)
linkedarchi-bpmn-infra-shacl.ttl Infrastructure shapes
linkedarchi-bpmndi-onto.ttl BPMN Diagram Interchange
linkedarchi-bpmndi-shacl.ttl BPMNDI shapes
linkedarchi-di-onto.ttl DI abstract classes
linkedarchi-di-shacl.ttl DI shapes
linkedarchi-dc-onto.ttl DC datatypes (Bounds, Point, Font)
linkedarchi-dc-shacl.ttl DC shapes
linkedarchi-bpmn-suite-alignment.ttl Alignment to arch:Element
linkedarchi-bpmn-suite-imports.ttl Import aggregator
linkedarchi-bpmn-suite-shapes.ttl Combined shapes

BPMN Lite (modelingLanguages/bpmn-lite/)

File Content
bpmn-lite-metamodel.ttl Metamodel manifest
linkedarchi-bpmn-lite-onto.ttl Lite ontology (29 classes, 10 properties)
linkedarchi-bpmn-lite-shacl.ttl SHACL shapes

9. References