- 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.
750 lines
18 KiB
Markdown
750 lines
18 KiB
Markdown
# 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: <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)
|
|
|
|
```sparql
|
|
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
|