glam/ORGANIZATIONAL_STRUCTURE_EXAMPLES.md
kempersc 2761857b0d Add scripts for converting OWL/Turtle ontology to Mermaid and PlantUML diagrams
- Implemented `owl_to_mermaid.py` to convert OWL/Turtle files into Mermaid class diagrams.
- Implemented `owl_to_plantuml.py` to convert OWL/Turtle files into PlantUML class diagrams.
- Added two new PlantUML files for custodian multi-aspect diagrams.
2025-11-22 23:01:13 +01:00

18 KiB

OrganizationalStructure Examples and Best Practices

Version: 0.4.0
Date: 2025-11-22
Schema Module: schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml


Overview

This document provides comprehensive examples and guidance for modeling organizational structures in heritage custodian institutions. The OrganizationalStructure class captures informal operational units (departments, teams, divisions) that are NOT formally registered legal entities.


Key Concepts

Formal vs. Informal Structure

CRITICAL DISTINCTION:

Aspect GovernanceStructure OrganizationalStructure
Scope FORMAL legal structure INFORMAL operational units
Source Legal registration documents Organizational charts, internal policy
Examples "Agency under Ministry OCW" "Digital Preservation Team"
Location On CustodianLegalStatus On Custodian
Ontology org:OrganizationalUnit (formal) org:OrganizationalUnit (informal)
Changes Requires legal reorganization Can change without legal process

Rule: If the unit appears in legal registration documents (articles of incorporation, statutes, government orders), use GovernanceStructure. If it's an internal operational division, use OrganizationalStructure.


Unit Types (OrganizationalUnitTypeEnum)

1. DEPARTMENT

Definition: Major organizational division with broad mandate

Examples:

  • Collections Department
  • Conservation Department
  • Education and Outreach Department
  • Research and Documentation Department
  • IT Department

Typical Characteristics:

  • 10-50+ staff
  • Formal budget allocation
  • Department head/director
  • Permanent structure

2. TEAM

Definition: Smaller functional group within a department

Examples:

  • Digital Preservation Team
  • Metadata Management Team
  • Cataloging Team
  • Acquisitions Team
  • Web Development Team

Typical Characteristics:

  • 3-12 staff
  • Specific functional focus
  • Team leader
  • May be temporary or project-based

3. DIVISION

Definition: Large-scale organizational segment (larger than department)

Examples:

  • Collections Care Division
  • Public Services Division
  • Operations Division
  • Collections Division

Typical Characteristics:

  • 30-100+ staff
  • Multiple departments underneath
  • Division director (senior management)
  • Strategic organizational level

4. GROUP

Definition: Cross-functional working group or committee

Examples:

  • Metadata Standards Working Group
  • Digital Preservation Steering Group
  • Acquisitions Committee
  • DEIA Advisory Group

Typical Characteristics:

  • 0 staff (cross-functional membership)
  • Time-limited or ongoing
  • No dedicated budget
  • Advisory or coordination role

5. PROGRAM

Definition: Specific programmatic unit with defined goals

Examples:

  • Fellowship Program
  • School Programs
  • Digitization Program
  • Community Engagement Program
  • Artist-in-Residence Program

Typical Characteristics:

  • 2-10 staff
  • Grant-funded or special allocation
  • Time-limited (but may be renewed)
  • Specific deliverables

6. SERVICE

Definition: Service-oriented unit providing direct services

Examples:

  • Reading Room Services
  • Reference Services
  • Technical Services
  • Visitor Services
  • Research Services

Typical Characteristics:

  • 4-15 staff
  • Public-facing
  • Service hours/availability
  • Contact points (phone, email)

7. LAB

Definition: Technical or scientific unit with specialized facilities

Examples:

  • Conservation Lab
  • Digitization Lab
  • Photography Lab
  • Research Lab
  • Audio Restoration Lab

Typical Characteristics:

  • 3-15 staff
  • Specialized equipment
  • Technical expertise
  • Project-based work

8. OFFICE

Definition: Administrative or support unit

Examples:

  • Office of the Director
  • Communications Office
  • HR Office
  • Finance Office
  • Legal Office

Typical Characteristics:

  • 2-10 staff
  • Administrative functions
  • Support role
  • Internal focus

9. UNIT

Definition: Generic organizational unit (use when type unclear)

Examples:

  • Planning Unit
  • Quality Assurance Unit
  • Coordination Unit

Typical Characteristics:

  • Variable size
  • Ambiguous structure
  • Use sparingly (prefer specific types)

Organizational Patterns

Pattern 1: Hierarchical Nested Structure

Use Case: Large national institutions with formal divisions, departments, and teams

organizational_structure:
  # Level 1: Division
  - id: "...org-unit/collections-care-division"
    unit_name: "Collections Care Division"
    unit_type: "DIVISION"
    staff_count: 45
  
  # Level 2: Department under Division
  - id: "...org-unit/conservation-dept"
    unit_name: "Conservation Department"
    unit_type: "DEPARTMENT"
    parent_unit:
      id: "...org-unit/collections-care-division"
      unit_name: "Collections Care Division"
    staff_count: 18
  
  # Level 3: Lab under Department (3 levels deep!)
  - id: "...org-unit/paper-conservation-lab"
    unit_name: "Paper Conservation Lab"
    unit_type: "LAB"
    parent_unit:
      id: "...org-unit/conservation-dept"
      unit_name: "Conservation Department"
    staff_count: 6

Depth: Can nest to any level (3-4 levels typical for large institutions)


Pattern 2: Flat Structure (Small Institutions)

Use Case: Small archives, regional museums with limited staff

organizational_structure:
  # No parent units - all top-level
  - id: "...org-unit/archival-services"
    unit_name: "Archival Services"
    unit_type: "DEPARTMENT"
    staff_count: 8
  
  - id: "...org-unit/public-services"
    unit_name: "Public Services"
    unit_type: "SERVICE"
    staff_count: 4
  
  - id: "...org-unit/digitization-team"
    unit_name: "Digitization Team"
    unit_type: "TEAM"
    staff_count: 3

Characteristics: Simple structure, no nesting, 5-15 total staff


Pattern 3: Matrix Structure (Cross-functional Groups)

Use Case: Universities, research institutions with working groups

organizational_structure:
  # Functional department
  - id: "...org-unit/digital-scholarship"
    unit_name: "Digital Scholarship Division"
    unit_type: "DIVISION"
    staff_count: 25
  
  # Team within department
  - id: "...org-unit/research-data-team"
    unit_name: "Research Data Management Team"
    unit_type: "TEAM"
    parent_unit:
      id: "...org-unit/digital-scholarship"
    staff_count: 10
  
  # Cross-functional group (no parent!)
  - id: "...org-unit/metadata-standards-group"
    unit_name: "Metadata Standards Working Group"
    unit_type: "GROUP"
    staff_count: 0  # Cross-functional, no dedicated staff
    # Note: No parent_unit - reports to multiple departments

Key: Working groups often have NO parent unit and NO dedicated staff


Pattern 4: Temporal Reorganization

Use Case: Mergers, restructurings, name changes

organizational_structure:
  # Old unit (dissolved 2013)
  - id: "...org-unit/restoration-dept-old"
    unit_name: "Restoration Department"
    unit_type: "DEPARTMENT"
    staff_count: 12
    valid_from: "1885-07-13"
    valid_to: "2013-03-31"  # ← Dissolved
  
  # New unit (replacement, expanded scope)
  - id: "...org-unit/conservation-research"
    unit_name: "Conservation and Research Department"
    unit_type: "DEPARTMENT"
    staff_count: 28
    valid_from: "2013-04-01"  # ← Successor unit

Tracking Changes:

  • Use valid_to date for dissolved units
  • Create new unit with valid_from date matching successor
  • Document relationship in external change event model (future enhancement)

Field Usage Guidelines

id (Required)

Format: https://nde.nl/ontology/hc/org-unit/{custodian-code}-{unit-slug}

Examples:

  • https://nde.nl/ontology/hc/org-unit/na-digital-preservation
  • https://nde.nl/ontology/hc/org-unit/rijks-conservation-lab
  • https://nde.nl/ontology/hc/org-unit/ubu-special-collections

Rules:

  • Use lowercase, hyphen-separated
  • Include custodian abbreviation for uniqueness
  • Descriptive but concise

unit_name (Required)

Definition: Full name of organizational unit

Best Practices:

  • Use official name from org chart
  • Preserve language (don't translate)
  • Include full designation ("Department", "Team", "Division")

Examples:

  • "Digital Preservation Department" (full, clear)
  • "Département des Manuscrits" (French, official name)
  • "Digital Preservation" (incomplete, what kind of unit?)
  • "DigPres Dept" (abbreviation, not official)

unit_type (Required)

Definition: Type from OrganizationalUnitTypeEnum

Selection Guide:

  1. Check official org chart designation
  2. Consider staff count (Division > Department > Team)
  3. Consider scope (broad mandate vs. specific function)
  4. When in doubt, use DEPARTMENT or UNIT

parent_unit (Optional)

Definition: Parent unit in organizational hierarchy

Usage:

  • Omit for top-level units
  • Reference by id AND unit_name for clarity
  • Can nest to any depth (3-4 levels typical)

Example:

parent_unit:
  id: "https://nde.nl/ontology/hc/org-unit/na-collections-care"
  unit_name: "Collections Care Division"

staff_count (Optional)

Definition: Number of staff (FTE) in this unit

Best Practices:

  • Use approximate count if exact unknown
  • Full-Time Equivalent (FTE), not headcount
  • Omit if unknown (don't guess)
  • Cross-functional groups: use 0 (no dedicated staff)

Examples:

  • Division: 30-100 FTE
  • Department: 10-50 FTE
  • Team: 3-12 FTE
  • Group: 0 FTE (cross-functional)

contact_point (Optional)

Definition: Contact information for unit

Formats:

  • Email: digipres@nationalarchives.nl
  • URL: https://www.bnf.fr/fr/departement-des-manuscrits
  • Phone: +31 70 331 5400 (less common)

Best Practices:

  • Prefer functional email (not personal)
  • Include if unit has public-facing role
  • Omit for internal-only units

valid_from / valid_to (Optional)

Definition: Temporal validity of organizational unit

Use Cases:

  • Track founding date of unit
  • Track reorganizations, mergers, dissolutions
  • Model historical organizational structure

Examples:

# Active unit
valid_from: "2010-01-01"
valid_to: null

# Dissolved unit
valid_from: "1885-07-13"
valid_to: "2013-03-31"

Best Practices:

  • Use ISO 8601 date format (YYYY-MM-DD)
  • null for active units (no end date)
  • Document reason for dissolution in external documentation

refers_to_custodian (Required)

Definition: Links organizational unit back to custodian hub

Purpose: Hub architecture - every unit must reference its custodian

Example:

refers_to_custodian:
  hc_id: "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804"

Rules:

  • Always required (schema validation)
  • Must match custodian's hc_id
  • One unit → one custodian (no shared units across institutions)

Domain-Specific Examples

National Archives

Typical Structure:

  • 4-6 Divisions (Collections, Public Services, Digital, Operations)
  • 10-20 Departments
  • 20-40 Teams
  • 100-500 total staff

Key Units:

  • Digital Preservation Department
  • Conservation Department
  • Public Services Division
  • Acquisitions Team
  • Metadata Management Team

Example: See organizational_structure_examples.yaml - Example 1


Art Museums

Typical Structure:

  • 3-5 Divisions (Collections, Conservation, Education, Operations)
  • 8-15 Departments
  • 15-30 Teams
  • 50-300 total staff

Key Units:

  • Conservation Lab (paintings, objects, textiles)
  • Collections Division (curatorial departments by medium)
  • Education and Outreach Department
  • Exhibition Design Team

Example: See organizational_structure_examples.yaml - Example 2 (Rijksmuseum)


University Libraries

Typical Structure:

  • 3-4 Divisions (Collections, Digital Services, Public Services)
  • 6-12 Departments
  • 10-25 Teams
  • 30-150 total staff

Key Units:

  • Special Collections Department
  • Digital Scholarship Division
  • Research Data Management Team
  • Metadata Standards Working Group
  • Reference Services

Example: See organizational_structure_examples.yaml - Example 3


Regional Archives (Small)

Typical Structure:

  • 2-3 Departments (flat structure)
  • 2-5 Teams
  • 5-20 total staff

Key Units:

  • Archival Services
  • Public Services
  • Digitization Team

Example: See organizational_structure_examples.yaml - Example 4


Integration with Other Schema Components

Relationship to GovernanceStructure

GovernanceStructure (on CustodianLegalStatus):

CustodianLegalStatus:
  legal_name: "Stichting Nationaal Archief"
  legal_form: "9220"  # ISO 20275: Foundation
  governance_structure:
    structure_type: "hierarchical"
    governance_body: "Supervisory Board, Management Board"
    organizational_hierarchy: "Reports to Ministry of OCW"

OrganizationalStructure (on Custodian):

Custodian:
  organizational_structure:
    - unit_name: "Digital Preservation Department"
      unit_type: "DEPARTMENT"
      # Operational unit, not in legal docs

Key: GovernanceStructure = legal docs; OrganizationalStructure = org chart


Relationship to PiCo (Person Observations)

Future Enhancement: Link staff roles to organizational units

# PiCo PersonObservation (future)
- person_name: "Dr. Jane Smith"
  role: "Head of Digital Preservation"
  affiliation:
    id: "https://nde.nl/ontology/hc/org-unit/na-digital-preservation"
    unit_name: "Digital Preservation Department"
  valid_from: "2018-01-01"

Use Case: Track who leads which units over time


Relationship to CustodianCollection

Potential Link: Collections managed by specific units

CustodianCollection:
  collection_name: "Manuscripts Collection"
  custodian_department:
    id: "https://nde.nl/ontology/hc/org-unit/bnf-manuscripts"
    unit_name: "Département des Manuscrits"

Use Case: Document which department curates which collection


Validation Rules

Schema Validation

# Validate organizational structure examples
linkml-validate \
  -s schemas/20251121/linkml/01_custodian_name_modular.yaml \
  schemas/20251121/examples/organizational_structure_examples.yaml

Data Quality Checks

Required Fields:

  • id - Unique identifier
  • unit_name - Full unit name
  • unit_type - From OrganizationalUnitTypeEnum
  • refers_to_custodian - Link back to custodian

Logical Consistency:

  • If parent_unit specified, parent must exist
  • If valid_to specified, must be after valid_from
  • If staff_count = 0, should be GROUP type
  • parent_unit.id should reference another unit in same custodian

Completeness:

  • Top-level units (no parent) should have unit_type = DIVISION or DEPARTMENT
  • Leaf units (no children) often TEAM, LAB, or SERVICE
  • Large institutions should have 3+ levels (Division → Department → Team)

Migration from Existing Data

From Organizational Charts

Process:

  1. Identify top-level units (no parent)
  2. Map unit types (Division, Department, Team)
  3. Document parent-child relationships
  4. Extract staff counts from HR data
  5. Add temporal validity if known

Tools: Manual data entry or scraping from institutional websites


WARNING: Legal documents describe GovernanceStructure, NOT OrganizationalStructure

Example:

  • Articles of incorporation: "Board of Directors, Executive Committee" → GovernanceStructure
  • Org chart: "Digital Preservation Team" → OrganizationalStructure

Rule: Never use OrganizationalStructure for units from legal registration


Query Examples

SPARQL: Find all departments in an institution

PREFIX hc: <https://nde.nl/ontology/hc/>
PREFIX org: <http://www.w3.org/ns/org#>

SELECT ?unit ?unitName
WHERE {
  ?custodian hc:hc_id "https://nde.nl/ontology/hc/nl-zh-haa-a-na" .
  ?custodian org:hasUnit ?unit .
  ?unit hc:unit_name ?unitName .
  ?unit hc:unit_type "DEPARTMENT" .
}

SPARQL: Find organizational hierarchy (nested units)

PREFIX hc: <https://nde.nl/ontology/hc/>
PREFIX org: <http://www.w3.org/ns/org#>

SELECT ?division ?dept ?team
WHERE {
  ?custodian hc:hc_id "https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804" .
  
  # Top-level division
  ?custodian org:hasUnit ?division .
  ?division hc:unit_type "DIVISION" .
  
  # Department under division
  ?custodian org:hasUnit ?dept .
  ?dept org:unitOf ?division .
  ?dept hc:unit_type "DEPARTMENT" .
  
  # Team under department
  ?custodian org:hasUnit ?team .
  ?team org:unitOf ?dept .
  ?team hc:unit_type "TEAM" .
}

Future Enhancements

Phase 1 (Implemented)

  • Basic OrganizationalStructure class
  • 9 unit types (DEPARTMENT, TEAM, etc.)
  • Hierarchical nesting via parent_unit
  • Temporal validity (valid_from/to)

Phase 2 (Planned)

  • Change events: Track mergers, reorganizations, dissolutions
  • Staff roles: Link to PiCo person observations
  • Reporting lines: Explicit manager relationships
  • Budget data: Financial allocation per unit

Phase 3 (Future)

  • Inter-unit collaboration: Cross-functional project teams
  • Location mapping: Map units to physical buildings/floors
  • Workflow modeling: Process flows between units
  • KPIs and metrics: Performance tracking per unit

References

Schema Files

  • OrganizationalStructure class: schemas/20251121/linkml/modules/classes/OrganizationalStructure.yaml
  • Custodian class: schemas/20251121/linkml/modules/classes/Custodian.yaml
  • Enum: schemas/20251121/linkml/modules/enums/OrganizationalUnitTypeEnum.yaml
  • Test instances: schemas/20251121/examples/organizational_structure_examples.yaml

Documentation

  • Session summary: ORGANIZATIONAL_STRUCTURE_ADDITION_20251122.md
  • Schema modules: docs/SCHEMA_MODULES.md
  • W3C ORG ontology: data/ontology/org.rdf

Ontology Alignment

  • W3C ORG: org:OrganizationalUnit, org:hasUnit, org:unitOf
  • PROV-O: prov:qualifiedAttribution (links unit to custodian)

Changelog

Version 0.4.0 (2025-11-22)

  • Initial OrganizationalStructure class implementation
  • 9 unit types defined
  • Hierarchical nesting via parent_unit
  • Temporal validity tracking
  • 5 comprehensive test instances
  • Documentation complete

Status: Complete
Next Steps: Validate test instances, create additional examples for edge cases