Skip to main content

Relationship Directionality

Relationship directionality defines which entity is the source (initiator) and which is the target (recipient) in Orthogramic relationships. Consistent directionality is essential for accurate impact analysis, dependency tracking, and generating meaningful visualizations.

Schema Version: 2.1
Specification: JSON Schema Draft-07

Overview

Why Directionality Matters

In complex enterprise models, understanding the direction of relationships is critical:

  • Impact analysis — "What depends on this?" vs "What does this depend on?"
  • Change management — Trace downstream effects before making changes
  • Governance — Identify who governs whom, not just that governance exists
  • Visualization — Arrows in diagrams must point the right way to convey meaning

The Fundamental Principle

Relationships follow the direction of influence, action, or flow:

Source Entity  ──[relationship verb]──▶  Target Entity
↑ ↑
Initiator Recipient
Actor Acted-upon
Provider Receiver

The source is the entity that:

  • Performs the action described by the relationship verb
  • Initiates the influence or dependency
  • Provides something to another entity

The target is the entity that:

  • Receives the action
  • Is influenced or dependent
  • Receives something from the source

Cross-Domain Relationship Direction

For cross-domain relationships, the relationship verb indicates the direction:

Financial Relationships

RelationshipSource → TargetExample
fundsFinance → InitiativeBudget allocation flows TO the initiative
measuresFinance → CapabilityMeasurement is APPLIED TO the capability
reportsFinance → Value StreamReporting is ABOUT the value stream
forecastsFinance → InitiativeForecast is MADE FOR the initiative

Operational Relationships

RelationshipSource → TargetInterpretation
dependsA → BA requires B to function
enablesA → BA makes B possible
constrainsA → BA limits B's operation
consumesA → BA uses outputs from B
deliversA → BA provides outputs to B
Inverse Relationships

enables and depends are inverses. If "Technology enables Capability" then "Capability depends on Technology." Model only one direction to avoid redundancy.

Governance Relationships

RelationshipSource → TargetInterpretation
governsPolicy → CapabilityPolicy exercises control OVER capability
monitorsPerformance → Value StreamPerformance tracking is APPLIED TO value stream
auditsRisk Mgmt → ProcessAudit is PERFORMED ON process
accountableForStakeholder → InitiativeStakeholder bears accountability FOR initiative

Innovation and Transformation

RelationshipSource → TargetInterpretation
transformsInitiative → Value StreamInitiative changes the value stream
innovatesInnovation → CapabilityInnovation creates new capability
evolvesInitiative → TechnologyInitiative causes technology to change

Inter-Unit Relationship Direction

For inter-unit relationships, direction depends on whether the unit is acting on or being affected by the domain entity:

Unit Acts ON Entity

RelationshipDirectionMeaning
owningUnit → EntityUnit has control over entity
providingUnit → EntityUnit supplies the entity
custodianUnit → EntityUnit stewards the entity
governingUnit → EntityUnit controls the entity
supportingUnit → EntityUnit assists with the entity

Unit Receives FROM Entity

RelationshipDirectionMeaning
consumingUnit ← EntityUnit uses the entity
benefitingUnit ← EntityUnit gains value from entity
dependentUnit ← EntityUnit's ops depend on entity

Modeling Conventions

Convention 1: Active Voice Verbs

Relationship types use active voice verbs where the source performs the action:

✅ Correct❌ AvoidReason
fundsfundedByActive voice; source performs action
enablesenabledByActive voice
governsgovernedByActive voice

Convention 2: One Direction Only

Model each relationship once in the primary direction. Avoid redundant inverse relationships:

// ✅ CORRECT - Model one direction
{
"source": "capability-a",
"target": "technology-b",
"relationshipType": "depends"
}

// ❌ AVOID - Redundant inverse
{
"source": "technology-b",
"target": "capability-a",
"relationshipType": "supports" // This is just 'depends' reversed
}

Convention 3: Direction Follows the Question

Choose direction based on the question you're answering:

QuestionDirectionExample
"What does X need?"X → dependenciesCapability depends on Technology
"What enables X?"enabler → XTechnology enables Capability
"What does X produce?"X → outputsValue Stream delivers to Customer
"What controls X?"controller → XPolicy governs Capability

Convention 4: Consistent Direction Within Relationship Type

All instances of the same relationship type should follow the same directional convention:

// ✅ CONSISTENT - All 'funds' relationships flow from Finance
{"source": "finance", "target": "initiative-a", "relationshipType": "funds"}
{"source": "finance", "target": "initiative-b", "relationshipType": "funds"}
{"source": "finance", "target": "capability-x", "relationshipType": "funds"}

// ❌ INCONSISTENT - Mixed directions for same relationship type
{"source": "finance", "target": "initiative-a", "relationshipType": "funds"}
{"source": "initiative-b", "target": "finance", "relationshipType": "funds"} // Wrong!

Direction Reference Table

Cross-Domain Relationships

TypeSourceTargetMnemonic
fundsFunderFundedMoney flows to
measuresMeasurerMeasuredMetrics applied to
dependsDependentDependencyI need you
enablesEnablerEnabledI make you possible
constrainsConstraintConstrainedI limit you
governsGovernorGovernedI control you
informsInformerInformedInformation flows to
transformsTransformerTransformedI change you
consumesConsumerConsumedI use your output
deliversDelivererDelivered-toI give to you

Inter-Unit Relationships

TypeSourceTargetFlow
owningUnitEntityUnit → Entity
providingUnitEntityUnit → Entity
consumingEntityUnitEntity → Unit
custodianUnitEntityUnit → Entity
governingUnitEntityUnit → Entity
dependentEntityUnitEntity → Unit

Visualization Implications

When generating diagrams from relationship data:

  1. Arrow direction — Arrows point from source to target
  2. Label placement — Relationship verb labels the arrow
  3. Color coding — Consider coloring by relationship category
  4. Layout — Sources typically on left, targets on right for left-to-right flow

Querying by Direction

When building queries against the metamodel, direction determines the traversal path:

Downstream Impact (What does this affect?)

-- Find all entities affected by changing capability-x
SELECT target_entity, relationship_type
FROM cross_domain_relationships
WHERE source_entity = 'capability-x';

Upstream Dependencies (What does this need?)

-- Find all dependencies of capability-x
SELECT source_entity, relationship_type
FROM cross_domain_relationships
WHERE target_entity = 'capability-x'
AND relationship_type = 'depends';

Full Dependency Graph

-- Recursive query for full dependency tree
WITH RECURSIVE dep_tree AS (
SELECT source_entity, target_entity, relationship_type, 1 as depth
FROM cross_domain_relationships
WHERE source_entity = 'capability-x'

UNION ALL

SELECT r.source_entity, r.target_entity, r.relationship_type, dt.depth + 1
FROM cross_domain_relationships r
JOIN dep_tree dt ON r.source_entity = dt.target_entity
WHERE dt.depth < 5
)
SELECT * FROM dep_tree;

Common Mistakes

MistakeProblemCorrection
Reversing depends"Technology depends on Capability"Capability depends on Technology
Bidirectional modelingCreating both enables and dependsChoose one direction
Passive voice typesUsing fundedBy instead of fundsUse active voice
Inconsistent directionSame type pointing both waysStandardize direction