# 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 ```yaml 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 ```yaml 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 ```yaml 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 ```yaml 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**: ```yaml 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**: ```yaml # 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**: ```yaml 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`): ```yaml 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`): ```yaml 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 ```yaml # 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 ```yaml 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 ```bash # 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 --- ### From Legal Documents **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 ```sparql PREFIX hc: PREFIX 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) ```sparql PREFIX hc: PREFIX 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