Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Layer 2: Dimensions

What Artifacts MEAN

Layer 2 defines extrinsic dimensions—calculated properties that interpret what artifacts mean in specific contexts. Unlike Layer 1 properties stored in frontmatter, Layer 2 dimensions are computed on-demand in dashboards and queries.

The Key Insight

Same artifact, different meanings:

A research note with refinement: 0.65 might be:

The intrinsic property (refinement: 0.65) doesn’t change. The extrinsic dimension (usefulness) depends on context (who’s the audience, what’s the quality gate).

This separation enables context-aware knowledge management without duplicate metadata.

16 Extrinsic Dimensions

Dimensions are organized into 5 categories:

CategoryDimensionsPurpose
Statehealth, usefulness, compliance_fit, trust_level, freshness, coverage_fitCurrent quality and fitness
Trajectorydrift, health_trend, adoptionChange over time
Networknetwork_position, propagation_riskRole in knowledge graph
Workflowstage, blocking_statusProcess position
Priorityattention_priority, retention_value, effort_to_improveDecision support

State Dimensions

Health

Purpose: Overall artifact quality
Calculation: Based on refinement score and stubs count

ValueRefinement RangeStubsInterpretation
excellent0.85 - 1.000Publication-ready, evergreen
good0.70 - 0.840-1High quality, minor gaps
fair0.50 - 0.690-3Usable, needs improvement
poor0.30 - 0.49anyDeveloping, significant work needed
critical0.00 - 0.29anyInitial capture, rough notes

Example query:

SELECT title, refinement, stubs_count
FROM notes
WHERE health IN ('poor', 'critical')
ORDER BY refinement ASC

Usefulness

Purpose: Fitness for intended audience
Calculation: refinement vs audience-specific quality gate

AudienceQuality GateInterpretation
personal0.30+Ready for personal use
internal0.60+Usable for team sharing
public0.80+Sufficient for external sharing
published0.90+Publication-ready

Usefulness values:

ValueMeaningExample
readyExceeds quality gate by 0.10+refinement: 0.75 for audience: internal (gate: 0.60)
usableMeets quality gaterefinement: 0.62 for audience: internal
developingBelow gate by < 0.20refinement: 0.45 for audience: internal
insufficientBelow gate by 0.20+refinement: 0.30 for audience: internal

Example implementation:

def calculate_usefulness(refinement, audience):
    gates = {
        'personal': 0.30,
        'internal': 0.60,
        'public': 0.80,
        'published': 0.90
    }
    
    gate = gates[audience]
    delta = refinement - gate
    
    if delta >= 0.10:
        return 'ready'
    elif delta >= 0:
        return 'usable'
    elif delta >= -0.20:
        return 'developing'
    else:
        return 'insufficient'

Compliance Fit

Purpose: Alignment with standards, policies, or requirements
Calculation: Based on refinement, stubs, required metadata presence

ValueCriteriaUse Case
compliantMeets all requirementsRegulatory docs, publication requirements
partialMeets core requirementsInternal policies, team standards
non-compliantMissing requirementsNeeds remediation

Example: Publication Requirements

RequirementCheckStatus
Refinement ≥ 0.90✅ 0.92Pass
No stubs✅ 0 stubsPass
Has DOI❌ MissingFail
Peer reviewed✅ YesPass
Resultpartial

Trajectory Dimensions

Drift

Purpose: How much has the artifact’s alignment with its original purpose decayed?
Calculation: Based on time since creation, edit frequency, refinement changes

ValueTime Since EditRefinement TrendInterpretation
none< 30 daysstable/improvingActively maintained
minimal30-90 daysstableRecently reviewed
moderate90-180 daysstableAging, review soon
significant180-365 daysdecliningNeeds attention
severe> 365 daysdecliningLikely outdated

Example query:

SELECT title, days_since_edit, refinement
FROM notes
WHERE drift IN ('significant', 'severe')
  AND form = 'evergreen'
ORDER BY days_since_edit DESC

Health Trend

Purpose: Is quality improving, stable, or declining?
Calculation: Compare recent refinement changes

ValueRefinement Δ (30 days)Interpretation
improving+0.10 or moreActive improvement
stable-0.05 to +0.10Consistent quality
declining-0.05 to -0.20Quality decay
deteriorating-0.20 or worseCritical decline

Example dashboard:

NoteRefinement (30d ago)Refinement (now)ΔTrend
Literature Review0.750.85+0.10improving
Methodology0.900.88-0.02stable ➡️
Experiment Log0.650.50-0.15declining ⚠️
Old Notes0.700.40-0.30deteriorating 🚨

Network Dimensions

Network Position

Purpose: What role does this artifact play in the knowledge graph?
Calculation: Based on incoming/outgoing links, citation count

ValueLinks InLinks OutInterpretation
hubHigh (10+)High (10+)Central knowledge node
connectorMedium (5-10)Medium (5-10)Bridges concepts
peripheralLow (1-5)Low (1-5)Specialized, narrow scope
isolated0-10-1Disconnected from graph

Example network analysis:

Note TypeAvg Links InAvg Links OutPosition
Concept Maps1512hub
Literature Reviews86connector
Experiment Logs32peripheral
Quick Notes00isolated

Propagation Risk

Purpose: If this artifact has errors, how many others are affected?
Calculation: Network position + health + outgoing links

ValueCriteriaImpact
criticalHub with poor healthErrors spread widely
highConnector with fair healthModerate propagation
moderatePeripheral, any healthLimited spread
lowIsolated, any healthContained impact
negligibleExcellent health, any positionNo risk

Example risk matrix:

HubConnectorPeripheralIsolated
excellentlownegligiblenegligiblenegligible
goodmoderatelownegligiblenegligible
fairhighmoderatelownegligible
poorcritical 🚨highmoderatelow
criticalcritical 🚨criticalhighmoderate

Workflow Dimensions

Stage

Purpose: Where is this artifact in its lifecycle?
Calculation: Based on form, refinement, stubs, workflow context

Standard workflow stages:

StageTypical CriteriaNext Actions
captureform: transient, low refinementDecide: develop or discard
developform: developing, moderate refinementIterate, refine, connect
reviewrefinement ≥ 0.70, some stubsPeer review, validate
polishrefinement ≥ 0.80, few stubsFinal edits, formatting
publishedrefinement ≥ 0.90, no stubsMaintain, update as needed
archivedform: archivedPreserve, no active work

Example workflow dashboard:

StageCountAvg RefinementActions
capture450.35Triage weekly
develop230.58Active work
review80.75Schedule reviews
polish30.85Final pass
published670.92Maintenance mode
archived1200.65Preserve only

Blocking Status

Purpose: Is progress on this artifact blocked?
Calculation: Based on stubs content, dependency tags, external factors

ValueCriteriaExample
blockedCan’t proceed“Awaiting IRB approval”, “Need dataset access”
at_riskPotential blockers“Co-author hasn’t responded in 2 weeks”
clearNo impedimentsNormal progress

Implementation example:

# Blocked artifact
---
refinement: 0.60
stubs:
  - "BLOCKED: Awaiting ethics approval"
  - "Need institutional access to dataset"
blocking_status: blocked  # calculated
---

Priority Dimensions

Attention Priority

Purpose: What should I work on next?
Calculation: Synthesis of health, usefulness, drift, network position, blocking status

ValueCriteriaRecommendation
criticalPoor health + hub position + high driftWork on this immediately
highBelow quality gate + approaching deadlineSchedule this week
mediumModerate health + some driftPlan for this month
lowGood health + stableMaintain as needed
deferExcellent health + isolatedNo action needed

Example priority calculation:

def calculate_attention_priority(note):
    score = 0
    
    # Health component
    if note.health in ['critical', 'poor']:
        score += 3
    elif note.health == 'fair':
        score += 2
        
    # Network component
    if note.network_position == 'hub':
        score += 2
    elif note.network_position == 'connector':
        score += 1
        
    # Drift component
    if note.drift in ['significant', 'severe']:
        score += 2
    elif note.drift == 'moderate':
        score += 1
        
    # Usefulness component
    if note.usefulness == 'insufficient':
        score += 2
    elif note.usefulness == 'developing':
        score += 1
        
    # Blocking component
    if note.blocking_status == 'blocked':
        score += 1
        
    # Map score to priority
    if score >= 7:
        return 'critical'
    elif score >= 5:
        return 'high'
    elif score >= 3:
        return 'medium'
    elif score >= 1:
        return 'low'
    else:
        return 'defer'

Priority dashboard example:

NoteHealthPositionDriftUsefulnessScorePriority
Core Methodologypoorhubsignificantinsufficient9🚨 critical
Literature Surveyfairconnectormoderatedeveloping6⚠️ high
Experiment Loggoodperipheralminimalready2✓ medium
Referencesexcellentisolatednoneready0✓ defer

Retention Value

Purpose: Should I keep or delete this artifact?
Calculation: Based on network position, age, refinement, recent access

ValueCriteriaRecommendation
essentialHub + high refinementMust retain
valuableReferenced often + good healthRetain
marginalRarely accessed + peripheralReview for archival
lowNot accessed in 6mo + isolatedConsider archiving
disposableTransient form + low refinementSafe to delete

Example retention analysis:

NotePositionLast AccessHealthLinks InRetentionAction
Theoretical Frameworkhub2 days agoexcellent23essentialKeep
2023 Lit Reviewconnector45 days agogood8valuableKeep
Old Draftperipheral180 days agofair2marginalArchive?
Scratch Notesisolated365 days agopoor0lowArchive
Meeting Notes (2022)isolated730 days agocritical0disposableDelete

Why Layer 2 Matters

Without Layer 2: You have properties but no interpretation
With Layer 2: Properties become actionable insights

The same artifact can be interpreted differently in different contexts. A research note at refinement: 0.65 might be “ready” for personal use but “insufficient” for public sharing—all without storing duplicate metadata.

Layer 2 transforms static metadata into dynamic knowledge management.


Next Steps