EDGY Primer & Modeling Guide — Enterprise Design with Linked.Archi¶
This guide introduces the EDGY 23 enterprise design language, explains how its concepts are formalised as Linked.Archi semantic assets, and demonstrates practical modeling through a worked example.
EDGY Concepts and Visual Notation¶
What is EDGY?¶
EDGY (Enterprise Design Graph InterplaY) is an open-source enterprise design language created by the Intersection Group. It provides a simple but expressive visual language for describing what an enterprise consists of and how its parts form a whole.
EDGY is: - Simple — only four base elements, three relationship types, two label types - Holistic — covers identity, experience, and architecture in one coherent model - Human-centric — designed for cross-disciplinary collaboration, not just architects - Visual — colourful, intuitive notation that everyone can read immediately
"An enterprise is an endeavour of people with a shared ambition." — EDGY Language Foundations
The Facet Model¶
Enterprise Design organises the enterprise through three facets and three intersections. The classic EDGY representation is the Facet Circle — a Venn diagram where the three facets overlap at their intersections:
graph TD
subgraph venn[" "]
direction TB
I(("IDENTITY<br/>Purpose · Story · Content"))
A(("ARCHITECTURE<br/>Capability · Process · Asset"))
E(("EXPERIENCE<br/>Task · Journey · Channel"))
I --- O["Organisation"]
I --- B["Brand"]
A --- O
A --- P["Product"]
E --- P
E --- B
end
style I fill:#75F0A5,stroke:#333,color:#000,font-size:12px
style A fill:#9DB9F6,stroke:#333,color:#000,font-size:12px
style E fill:#F985B4,stroke:#333,color:#000,font-size:12px
style O fill:#76D9EA,stroke:#333,color:#000
style P fill:#DA7AF4,stroke:#333,color:#000
style B fill:#FFD47D,stroke:#333,color:#000
style venn fill:none,stroke:none
The facets and their elements in detail:
graph TD
subgraph Identity["🟢 IDENTITY — Why do we exist?"]
Purpose["╭ Purpose ╮"]
Story["► Story"]
Content["[ Content ]"]
end
subgraph Architecture["🔵 ARCHITECTURE — How do we run?"]
Capability["╭ Capability ╮"]
Process["► Process"]
Asset["[ Asset ]"]
end
subgraph Experience["🩷 EXPERIENCE — What role in lives?"]
Task["╭ Task ╮"]
Journey["► Journey"]
Channel["[ Channel ]"]
end
Identity --- Organisation["Organisation<br/>(Identity ∩ Architecture)"]
Architecture --- Organisation
Architecture --- Product["Product<br/>(Architecture ∩ Experience)"]
Experience --- Product
Identity --- Brand["Brand<br/>(Identity ∩ Experience)"]
Experience --- Brand
style Identity fill:#75F0A5,stroke:#333,color:#000
style Architecture fill:#9DB9F6,stroke:#333,color:#000
style Experience fill:#F985B4,stroke:#333,color:#000
style Organisation fill:#76D9EA,stroke:#333,color:#000
style Product fill:#DA7AF4,stroke:#333,color:#000
style Brand fill:#FFD47D,stroke:#333,color:#000
| Facet | Questions | Elements |
|---|---|---|
| Identity | Why do we exist? Who are we? What matters to us? | Purpose, Story, Content |
| Architecture | How do we run? What are we capable of? | Capability, Process, Asset |
| Experience | What role do we play in people's lives? | Task, Journey, Channel |
| Intersection | Connects | Element |
|---|---|---|
| Organisation | Identity ∩ Architecture | Organisation |
| Product | Architecture ∩ Experience | Product |
| Brand | Identity ∩ Experience | Brand |
Base Elements¶
EDGY is built on four generic base elements:
People perform activities, using and creating objects, to achieve outcomes.
Facet Elements¶
Each facet specialises the base elements — outcomes are rounded, activities are arrows, objects are rectangles — coloured by facet.
Identity Facet (green #75F0A5)¶
Architecture Facet (blue #9DB9F6)¶
Experience Facet (pink #F985B4)¶
Intersection Elements¶
Relationships¶
EDGY has three relationship types:
Core Links¶
EDGY defines 24 named link types that connect specific element pairs across facets:
Identity facet links: - Story contextualises Purpose - Content expresses Purpose - Content conveys Story
Experience facet links: - Task is part of Journey - Task uses Channel - Journey traverses Channel
Architecture facet links: - Capability requires Asset - Process realises Capability - Process requires Asset
Intersection links (Organisation): - Organisation pursues Purpose · authors Story · has Capability · performs Process · builds Brand · makes Product
Intersection links (Product): - Product serves Task · features in Journey · requires Capability · Process creates Product
Intersection links (Brand): - Brand represents Purpose · evokes Story · supports Task · appears in Journey · Product embodies Brand
Labels¶
Labels add information to elements without changing their type:
| Label | Visual Notation | Purpose |
|---|---|---|
| Tagging | Differentiate elements by type, priority, category | |
| Metrics | Add measurable quantity or quality (RAG status, KPIs) |
The Enterprise Design Sentence¶
All EDGY maps can be read as sentences:
People perform activities, using and creating objects, to achieve outcomes.
Specialised per facet:
Customers experience journeys, using channels, to achieve tasks.
Organisations perform processes, using assets, to enable capabilities.
Enterprises communicate stories, producing content, to achieve purposes.
Semantic Assets¶
From Visual Notation to Formal Semantics¶
Linked.Archi formalises EDGY concepts as RDF/OWL — machine-readable, queryable, and validatable while preserving the same semantics.
graph LR
A["EDGY Visual Map<br/>(Draw.io, Miro)"] -->|"formalises"| B["Linked.Archi RDF/OWL<br/>(Turtle files in Git)"]
A --- C["Shapes + Colours"]
A --- D["Lines + Labels"]
B --- E["Classes + Properties"]
B --- F["Triples + SHACL"]
Concept-to-Asset Mapping¶
| EDGY Concept | Semantic Representation | File |
|---|---|---|
| Element types (People, Capability, etc.) | owl:Class rdfs:subClassOf arch:Element |
edgy-onto.ttl |
| Abstract groupings (BaseElement, FacetElement) | owl:Class with arch:isAbstractClass true |
edgy-onto.ttl |
| Relationship types (Link, Flow, Tree) | Three-declaration pattern | edgy-onto.ttl |
| Core links (24 named associations) | owl:ObjectProperty with arch:domainIncludes/arch:rangeIncludes |
edgy-onto.ttl |
| Element classification | skos:ConceptScheme — 5 top concepts with skos:narrower |
edgy-tax.ttl |
| Validation rules | sh:NodeShape with property constraints |
edgy-shapes.ttl |
| Viewpoints | arch:Viewpoint with arch:includesConcept |
edgy-viewpoints.ttl |
| Visual appearance | arch-vis:VisualNotation + arch-vis:Style |
edgy-notation.ttl |
| Asset types, metric categories | skos:ConceptScheme enumerations |
edgy-reference-data.ttl |
| Document templates | arch:DeliverableTemplate |
edgy-deliverable-templates.ttl |
| Entry point | arch:Metamodel instance |
edgy-metamodel.ttl |
The Complete Asset Set¶
modelingLanguages/edgy/
├── edgy-metamodel.ttl ← Entry point: arch:Metamodel
├── edgy-onto.ttl ← OWL classes + properties
├── edgy-tax.ttl ← SKOS taxonomy
├── edgy-shapes.ttl ← SHACL validation
├── edgy-viewpoints.ttl ← 9 viewpoints + stakeholders + concerns
├── edgy-notation.ttl ← Visual notation descriptors
├── edgy-reference-data.ttl ← Enumerations (asset types, metrics, maturity)
├── edgy-deliverable-templates.ttl ← 7 document templates
├── icons/ ← SVG element icons
│ └── glyphs/ ← Small badge glyphs
└── notation-v1/ ← Alternative circle-based notation
Abstract vs Concrete Classes¶
| Abstract (not instantiable) | Concrete (palette items) |
|---|---|
edgy:EnterpriseElement |
edgy:People |
edgy:BaseElement |
edgy:Outcome, edgy:Activity, edgy:Object |
edgy:FacetElement |
(parent of facet groups) |
edgy:IdentityElement |
edgy:Purpose, edgy:Story, edgy:Content |
edgy:ArchitectureElement |
edgy:Capability, edgy:Process, edgy:Asset |
edgy:ExperienceElement |
edgy:Task, edgy:Journey, edgy:Channel |
edgy:IntersectionElement |
edgy:Organisation, edgy:Product, edgy:Brand |
edgy:EnterpriseRelationship |
edgy:Link, edgy:Flow, edgy:Tree |
edgy:EnterpriseLabel |
edgy:Tagging, edgy:Metrics |
Three-Declaration Relationship Pattern¶
| Declaration | Example (Tree) | Purpose |
|---|---|---|
| Unqualified predicate | edgy:partOf |
Direct triple for graph traversal |
| Qualified class | edgy:Tree (subClassOf arch:QualifiedRelationship) |
Reified resource for metadata |
| Qualified property | edgy:qualifiedTree (range edgy:Tree) |
Navigation to qualified resource |
# Always: direct triple
ex:SubCapability edgy:partOf ex:ParentCapability .
# When metadata needed: qualified resource
ex:SubCapability edgy:qualifiedTree ex:tree-001 .
ex:tree-001 a edgy:Tree ;
arch:source ex:SubCapability ;
arch:target ex:ParentCapability ;
skos:prefLabel "Sub is part of Parent"@en .
Viewpoints¶
| Viewpoint | Focus | Key Elements |
|---|---|---|
| Full Enterprise Map | Everything | All 16 elements + all relationships |
| Identity Map | Why we exist | Purpose, Story, Content, Organisation, Brand |
| Architecture Map | How we run | Capability, Process, Asset, Organisation, Product |
| Experience Map | Role in lives | Task, Journey, Channel, Product, Brand |
| Capability Map | What we can do | Capability, Process, Asset, Organisation, Product |
| Journey Map | Customer experience | Task, Journey, Channel, Product, Brand, People |
| Organisation Map | How we are structured | Organisation, Purpose, Story, Capability, Process |
| Product Map | What we offer | Product, Capability, Task, Journey, Organisation |
| Brand Map | What we stand for | Brand, Purpose, Story, Task, Journey |
Worked Example: Meridian Insurance Group¶
Prerequisites¶
Load the EDGY semantic assets in this order:
core/core-onto.ttl # Foundation
modelingLanguages/edgy/edgy-onto.ttl # Elements, relationships, core links
modelingLanguages/edgy/edgy-tax.ttl # SKOS taxonomy
modelingLanguages/edgy/edgy-shapes.ttl # SHACL validation
modelingLanguages/edgy/edgy-viewpoints.ttl # Viewpoints, stakeholders, concerns
modelingLanguages/edgy/edgy-reference-data.ttl # Asset types, metrics, maturity
modelingLanguages/edgy/edgy-notation.ttl # Visual notation
modelingLanguages/edgy/edgy-metamodel.ttl # Metamodel manifest (entry point)
Validate with:
.scripts/validate.sh --shacl your-model.ttl \
core/core-shapes.ttl \
modelingLanguages/edgy/edgy-shapes.ttl
About Meridian¶
Meridian Insurance Group is a multinational property and casualty insurer headquartered in Zurich, operating across 12 European markets. Founded in 1903 as a mutual, it has grown through acquisitions into a group with multiple brands, 15,000 employees, and 8 million policyholders.
The complete, validatable example model is available at examples/meridian/meridian-model.ttl.
Model File Header¶
@prefix owl: <http://www.w3.org/2002/07/owl#> .
@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
@prefix skos: <http://www.w3.org/2004/02/skos/core#> .
@prefix dcterms: <http://purl.org/dc/terms/> .
@prefix arch: <https://meta.linked.archi/core#> .
@prefix edgy: <https://meta.linked.archi/edgy/onto#> .
@prefix edgyrd: <https://meta.linked.archi/edgy/reference-data#> .
@prefix edgyvp: <https://meta.linked.archi/edgy/viewpoints#> .
@prefix : <https://meta.linked.archi/examples/meridian/> .
:MeridianModel
a arch:Model ;
skos:prefLabel "Meridian Insurance Group — Enterprise Design Model"@en ;
arch:modelConformsToMetamodel <https://meta.linked.archi/edgy/metamodel#EDGY23> ;
dcterms:created "2025-06-27"^^xsd:date ;
.
Element Patterns¶
Each concrete EDGY element requires rdf:type + skos:prefLabel (minimum for SHACL validation):
## People
:Policyholder a edgy:People ; skos:prefLabel "Policyholder"@en .
:ClaimsAdjuster a edgy:People ; skos:prefLabel "Claims Adjuster"@en .
## Identity facet
:ProtectWhatMatters a edgy:Purpose ; skos:prefLabel "Protect What Matters"@en .
:FromMutualToDigital a edgy:Story ; skos:prefLabel "From Mutual to Digital"@en .
:RiskPreventionAdvice a edgy:Content ; skos:prefLabel "Risk Prevention Advice"@en .
## Architecture facet
:ClaimsManagement a edgy:Capability ; skos:prefLabel "Claims Management"@en .
:ClaimsAssessmentProcess a edgy:Process ; skos:prefLabel "Claims Assessment Process"@en .
:FraudDetectionEngine a edgy:Asset ; skos:prefLabel "Fraud Detection Engine"@en .
## Experience facet
:FileAClaim a edgy:Task ; skos:prefLabel "File a Claim"@en .
:ClaimsJourney a edgy:Journey ; skos:prefLabel "Claims Journey"@en .
:MobileApp a edgy:Channel ; skos:prefLabel "Mobile App"@en .
## Intersections
:MeridianGroup a edgy:Organisation ; skos:prefLabel "Meridian Insurance Group"@en .
:HomeInsurance a edgy:Product ; skos:prefLabel "Home Insurance"@en .
:MeridianBrand a edgy:Brand ; skos:prefLabel "Meridian"@en .
Relationship Patterns¶
Tree (child partOf parent)¶
:FNOL edgy:partOf :ClaimsManagement .
:ClaimsAssessmentCap edgy:partOf :ClaimsManagement .
:Settlement edgy:partOf :ClaimsManagement .
:MeridianNordics edgy:partOf :MeridianGroup .
:HomeInsurance edgy:partOf :PersonalLinesPortfolio .
Flow (source influences target)¶
Link (structural association)¶
Core Links (typed predicates with SHACL-enforced domain/range)¶
## Identity
:FromMutualToDigital edgy:contextualisesPurpose :ProtectWhatMatters .
:RiskPreventionAdvice edgy:expressesPurpose :ProtectWhatMatters .
:RiskPreventionAdvice edgy:conveysStory :FromMutualToDigital .
## Experience
:FileAClaim edgy:isPartOfJourney :ClaimsJourney .
:FileAClaim edgy:usesChannel :MobileApp .
:ClaimsJourney edgy:traversesChannel :MobileApp .
## Architecture
:ClaimsManagement edgy:requiresAsset :FraudDetectionEngine .
:ClaimsAssessmentProcess edgy:realisesCapability :ClaimsManagement .
## Intersections
:MeridianGroup edgy:pursuesPurpose :ProtectWhatMatters .
:MeridianGroup edgy:hasCapability :ClaimsManagement .
:MeridianGroup edgy:makesProduct :HomeInsurance .
:HomeInsurance edgy:servesTask :FileAClaim .
:HomeInsurance edgy:requiresCapability :ClaimsManagement .
:HomeInsurance edgy:embodiesBrand :MeridianBrand .
:MeridianBrand edgy:supportsTask :FileAClaim .
Identity Map¶
Why does Meridian exist? What does it stand for?
graph TD
MG["Meridian Insurance Group"] -->|"pursues"| PWM(["Protect What Matters"])
MG -->|"authors"| FMD{{"From Mutual to Digital"}}
MG -->|"builds"| MB["Meridian Brand"]
FMD -->|"contextualises"| PWM
RPA["Risk Prevention Advice"] -->|"expresses"| PWM
RPA -->|"conveys"| FMD
MB -->|"represents"| PWM
MB -->|"evokes"| FMD
style MG fill:#76D9EA,stroke:#fff,color:#000
style PWM fill:#75F0A5,stroke:#fff,color:#000
style FMD fill:#75F0A5,stroke:#fff,color:#000
style RPA fill:#75F0A5,stroke:#fff,color:#000
style MB fill:#FFD47D,stroke:#fff,color:#000
Capability Map¶
What is Meridian able to do?
graph TD
subgraph MG["Meridian Insurance Group"]
UW(["Underwriting"])
CM(["Claims Management"])
PA(["Policy Administration"])
RA(["Risk Assessment"]) -.->|"partOf"| UW
PR(["Pricing"]) -.->|"partOf"| UW
FNOL(["FNOL"]) -.->|"partOf"| CM
CA(["Claims Assessment"]) -.->|"partOf"| CM
ST(["Settlement"]) -.->|"partOf"| CM
QB(["Quote & Bind"]) -.->|"partOf"| PA
RN(["Renewal"]) -.->|"partOf"| PA
end
style MG fill:#76D9EA,stroke:#333,color:#000
style UW fill:#9DB9F6,stroke:#fff,color:#000
style CM fill:#9DB9F6,stroke:#fff,color:#000
style PA fill:#9DB9F6,stroke:#fff,color:#000
style RA fill:#9DB9F6,stroke:#fff,color:#000
style PR fill:#9DB9F6,stroke:#fff,color:#000
style FNOL fill:#9DB9F6,stroke:#fff,color:#000
style CA fill:#9DB9F6,stroke:#fff,color:#000
style ST fill:#9DB9F6,stroke:#fff,color:#000
style QB fill:#9DB9F6,stroke:#fff,color:#000
style RN fill:#9DB9F6,stroke:#fff,color:#000
Claims Journey Map¶
What does a policyholder experience when filing a claim?
graph TD
PH["👤 Policyholder"] --> CJ
subgraph CJ{{"Claims Journey"}}
direction LR
T1(["Report Incident"])
T2(["Provide Evidence"])
T3(["Track Progress"])
T4(["Receive Payment"])
T5(["Rate Service"])
end
T1 -->|"uses"| MA["Mobile App"]
T1 -->|"uses"| CC["Call Centre"]
T2 -->|"uses"| MA
T3 -->|"uses"| CP["Customer Portal"]
T3 -->|"uses"| MA
T5 -->|"uses"| MA
style PH fill:#FFFFFF,stroke:#000,color:#000
style CJ fill:#F985B4,stroke:#fff,color:#000
style T1 fill:#F985B4,stroke:#fff,color:#000
style T2 fill:#F985B4,stroke:#fff,color:#000
style T3 fill:#F985B4,stroke:#fff,color:#000
style T4 fill:#F985B4,stroke:#fff,color:#000
style T5 fill:#F985B4,stroke:#fff,color:#000
style MA fill:#F985B4,stroke:#fff,color:#000
style CC fill:#F985B4,stroke:#fff,color:#000
style CP fill:#F985B4,stroke:#fff,color:#000
Architecture Detail¶
How does Claims Management work internally?
graph TD
CAP{{"Claims Assessment Process"}} -->|"realises"| CM(["Claims Management"])
CM -->|"requires"| FDE["Fraud Detection Engine"]
CM -->|"requires"| CDP["Customer Data Platform"]
CM -->|"requires"| CWS["Claims Workflow System"]
CDP -->|"flowsTo"| FDE
CO["Claims Operations"] -->|"performs"| CAP
style CAP fill:#9DB9F6,stroke:#fff,color:#000
style CM fill:#9DB9F6,stroke:#fff,color:#000
style FDE fill:#9DB9F6,stroke:#fff,color:#000
style CDP fill:#9DB9F6,stroke:#fff,color:#000
style CWS fill:#9DB9F6,stroke:#fff,color:#000
style CO fill:#76D9EA,stroke:#fff,color:#000
Product Map¶
What does Meridian offer, and how does it connect to capabilities and tasks?
graph TD
HI["Home Insurance"] -->|"serves"| FC(["File a Claim"])
HI -->|"serves"| GI(["Get Insured"])
MI["Motor Insurance"] -->|"serves"| GI
HI -->|"requires"| CM(["Claims Management"])
MI -->|"requires"| CM
HI -->|"embodies"| MB["Meridian Brand"]
MI -->|"embodies"| MB
MG["Meridian Group"] -->|"makes"| HI
MG -->|"makes"| MI
MB -->|"supports"| FC
MB -->|"supports"| GI
style HI fill:#DA7AF4,stroke:#fff,color:#000
style MI fill:#DA7AF4,stroke:#fff,color:#000
style FC fill:#F985B4,stroke:#fff,color:#000
style GI fill:#F985B4,stroke:#fff,color:#000
style CM fill:#9DB9F6,stroke:#fff,color:#000
style MB fill:#FFD47D,stroke:#fff,color:#000
style MG fill:#76D9EA,stroke:#fff,color:#000
Tags and Metrics¶
## Tagging — differentiates elements by type
:FraudDetectionEngine edgy:hasTag [
a edgy:Tagging ; skos:prefLabel "Application"@en ;
rdfs:seeAlso <https://meta.linked.archi/edgy/reference-data#Application> ;
] .
## Metrics — adds measurable value
:ClaimsManagement edgy:hasMetric [
a edgy:Metrics ; skos:prefLabel "Maturity: Managed"@en ;
rdfs:seeAlso <https://meta.linked.archi/edgy/reference-data#Managed> ;
] .
:FraudDetectionEngine edgy:hasMetric [
a edgy:Metrics ; skos:prefLabel "Risk: Amber"@en ;
rdfs:seeAlso <https://meta.linked.archi/edgy/reference-data#Amber> ;
] .
Views and Viewpoints¶
:MeridianCapabilityMapView
a arch:View ;
skos:prefLabel "Meridian Capability Map"@en ;
arch:viewConformsToViewpoint edgyvp:CapabilityMap ;
.
:MeridianClaimsJourneyView
a arch:View ;
skos:prefLabel "Meridian Claims Journey Map"@en ;
arch:viewConformsToViewpoint edgyvp:JourneyMap ;
.
:MeridianIdentityView
a arch:View ;
skos:prefLabel "Meridian Identity Map"@en ;
arch:viewConformsToViewpoint edgyvp:IdentityMap ;
.
| Viewpoint | Use when |
|---|---|
edgyvp:FullEnterpriseMap |
Holistic workshop — all facets visible |
edgyvp:IdentityMap |
Purpose, brand strategy, storytelling |
edgyvp:ArchitectureMap |
Capability planning, operating model |
edgyvp:ExperienceMap |
Customer experience, service design |
edgyvp:CapabilityMap |
Capability decomposition, investment decisions |
edgyvp:JourneyMap |
Customer journey mapping, touchpoint analysis |
edgyvp:OrganisationMap |
Org design, operating model, governance |
edgyvp:ProductMap |
Product portfolio, product-capability alignment |
edgyvp:BrandMap |
Brand architecture, brand-experience alignment |
Validation¶
.scripts/validate.sh --shacl meridian-model.ttl \
core/core-shapes.ttl \
modelingLanguages/edgy/edgy-shapes.ttl
The shapes enforce:
- Every element has skos:prefLabel (language-tagged string)
- Every qualified relationship has exactly one arch:source and arch:target
- Core links respect domain/range (e.g. contextualisesPurpose only from Story → Purpose)
Further Reading¶
- Modeling Languages Guide — how EDGY relates to ArchiMate, C4, Backstage, BPMN
- Build Your Own Modeling Tool — how tools consume these semantic assets
- Relationship Modeling Guide — the three-declaration pattern in depth
- Validation Guide — SHACL validation pipeline
- EDGY Official Wiki — element definitions and example maps
- Enterprise Design Cookbook with EDGY — practical guide by Eero Hosiaisluoma (PDF)
- Intersection Group — EDGY creators, community, and learning
- EDGY 23 Language Foundations — the official book