- Created AuxiliaryDigitalPlatformTypeEnum.yaml to classify types of secondary digital platforms. - Created AuxiliaryPlaceTypeEnum.yaml to classify types of secondary physical locations. - Added OrganizationBranchTypeEnum.yaml for formal organizational branches at auxiliary locations. - Introduced auxiliary_places.yaml slot to link CustodianPlace to subordinate physical locations. - Introduced auxiliary_platforms.yaml slot to link DigitalPlatform to subordinate digital properties. - Added located_at.yaml slot to connect OrganizationalStructure to physical locations.
517 lines
22 KiB
YAML
517 lines
22 KiB
YAML
# OrganizationalStructure Class
|
|
# Informal organizational units (departments, teams, groups)
|
|
# NOT formally registered, but operational/functional structure
|
|
|
|
id: https://nde.nl/ontology/hc/class/OrganizationalStructure
|
|
name: OrganizationalStructure
|
|
|
|
imports:
|
|
- linkml:types
|
|
- ./AuxiliaryPlace
|
|
- ../slots/located_at
|
|
|
|
classes:
|
|
OrganizationalStructure:
|
|
class_uri: org:OrganizationalUnit
|
|
description: >-
|
|
Informal organizational structure of a heritage custodian, representing
|
|
operational departments, teams, divisions, or groups that are NOT formally
|
|
registered as separate legal entities.
|
|
|
|
**Distinction from GovernanceStructure**:
|
|
- **GovernanceStructure**: Formal structure from legal registration
|
|
(e.g., "National Archives is agency under Ministry OCW")
|
|
- **OrganizationalStructure**: Informal/operational units
|
|
(e.g., "Digital Preservation Team", "Public Services Department")
|
|
|
|
**W3C ORG Alignment**:
|
|
Maps to `org:OrganizationalUnit` - "An Organization such as a University
|
|
Support Unit which is part of some larger FormalOrganization and only has
|
|
full recognition within the context of that FormalOrganization, it is not
|
|
a Legal Entity in its own right."
|
|
|
|
**Scope**:
|
|
- Departments (Collections, Education, Research, IT)
|
|
- Teams (Digital Preservation, Conservation, Cataloging)
|
|
- Programs (Outreach programs, fellowship programs)
|
|
- Working groups (Metadata standards group, acquisitions committee)
|
|
- Service units (Reading room, reference desk, storage facilities)
|
|
|
|
**NOT in Scope** (use GovernanceStructure instead):
|
|
- Formal sub-organizations with legal registration
|
|
- Legally recognized branches or subsidiaries
|
|
- Governance bodies from articles of incorporation
|
|
|
|
**Temporal Dynamics**:
|
|
Organizational units can be created, renamed, merged, or dissolved
|
|
independently of the custodian's legal status. Track changes with
|
|
`valid_from`/`valid_to` dates.
|
|
|
|
**Example - National Archives**:
|
|
```yaml
|
|
CustodianLegalStatus:
|
|
governance_structure: # FORMAL (from legal registration)
|
|
structure_type: "Government agency"
|
|
governance_body: "Reports to Ministry of OCW"
|
|
|
|
Custodian:
|
|
organizational_structure: # INFORMAL (operational)
|
|
- unit_name: "Digital Preservation Department"
|
|
unit_type: "department"
|
|
description: "Manages born-digital archives"
|
|
- unit_name: "Public Services Team"
|
|
unit_type: "team"
|
|
description: "Reading room, reference services"
|
|
```
|
|
|
|
slots:
|
|
- id
|
|
- unit_name
|
|
- unit_type
|
|
- parent_unit
|
|
- staff_count
|
|
- staff_members
|
|
- managed_collections
|
|
- located_at
|
|
- contact_point
|
|
- valid_from
|
|
- valid_to
|
|
- refers_to_custodian
|
|
|
|
slot_usage:
|
|
id:
|
|
identifier: true
|
|
required: true
|
|
description: "Unique identifier for this organizational unit"
|
|
examples:
|
|
- value: "https://nde.nl/ontology/hc/org-unit/na-digital-preservation"
|
|
description: "URI for National Archives Digital Preservation Dept"
|
|
|
|
unit_name:
|
|
required: true
|
|
range: string
|
|
description: >-
|
|
Name of the organizational unit (department, team, division, group).
|
|
|
|
Examples:
|
|
- "Digital Preservation Department"
|
|
- "Collections Management Team"
|
|
- "Education and Outreach Division"
|
|
- "Conservation Lab"
|
|
examples:
|
|
- value: "Digital Preservation Department"
|
|
- value: "Public Services Team"
|
|
- value: "Research and Documentation Division"
|
|
|
|
unit_type:
|
|
range: OrganizationalUnitTypeEnum
|
|
description: >-
|
|
Type of organizational unit.
|
|
|
|
Types:
|
|
- DEPARTMENT: Major organizational division (Collections, Education)
|
|
- TEAM: Smaller functional group within department
|
|
- DIVISION: Large-scale organizational segment
|
|
- GROUP: Cross-functional working group or committee
|
|
- PROGRAM: Specific programmatic unit (fellowship program, digitization project)
|
|
- SERVICE: Service-oriented unit (reading room, reference desk)
|
|
- LAB: Technical/scientific unit (conservation lab, digitization lab)
|
|
examples:
|
|
- value: "DEPARTMENT"
|
|
- value: "TEAM"
|
|
|
|
parent_unit:
|
|
range: OrganizationalStructure
|
|
description: >-
|
|
Parent unit in organizational hierarchy.
|
|
Allows nested organizational structures.
|
|
|
|
Example:
|
|
- "Conservation Team" is parent_unit of "Paper Conservation Lab"
|
|
- "Collections Division" is parent_unit of "Acquisitions Department"
|
|
examples:
|
|
- value:
|
|
unit_name: "Collections Division"
|
|
description: "Parent of Acquisitions Dept"
|
|
|
|
staff_count:
|
|
range: integer
|
|
description: >-
|
|
Number of staff (FTE) in this unit (approximate).
|
|
examples:
|
|
- value: 12
|
|
description: "12 FTE in Digital Preservation Dept"
|
|
|
|
staff_members:
|
|
slot_uri: org:hasMember
|
|
range: PersonObservation
|
|
multivalued: true
|
|
inlined_as_list: true
|
|
description: >-
|
|
Staff members (PersonObservation instances) affiliated with this organizational unit.
|
|
|
|
**W3C ORG Property**: `org:hasMember` - "Indicates a person who is a member of the subject Organization."
|
|
- Domain: org:Organization (OrganizationalStructure)
|
|
- Range: foaf:Agent (PersonObservation)
|
|
- Inverse: `org:memberOf` (PersonObservation.unit_affiliation)
|
|
|
|
**Bidirectional Relationship**:
|
|
- **Forward**: OrganizationalStructure → PersonObservation (staff_members)
|
|
- **Reverse**: PersonObservation → OrganizationalStructure (unit_affiliation)
|
|
- Enables queries from both directions:
|
|
- "Who works in this department?" (org unit → staff)
|
|
- "Which department does this person work for?" (staff → org unit)
|
|
|
|
**Temporal Consistency**:
|
|
Person's employment dates should align with organizational unit validity:
|
|
- PersonObservation.role_start_date >= OrganizationalStructure.valid_from
|
|
- PersonObservation.role_end_date <= OrganizationalStructure.valid_to (if unit dissolved)
|
|
|
|
**Use Cases**:
|
|
1. **Department staffing analysis**: "How many conservators in Conservation Division?"
|
|
2. **Expertise location**: "Which unit has manuscript conservation expertise?"
|
|
3. **Reorganization impact**: "Track staff before/after merger event"
|
|
4. **Contact directory**: "Find department head for Digital Services"
|
|
|
|
**Data Quality**:
|
|
- Complete staff rosters (all positions documented) = high-quality data
|
|
- Partial rosters (only senior staff) = acceptable for historical analysis
|
|
- Empty staff_members (no data) = indicates missing personnel records
|
|
|
|
**Example - Conservation Division**:
|
|
```yaml
|
|
OrganizationalStructure:
|
|
id: ".../org-unit/rm-conservation-division"
|
|
unit_name: "Conservation Division"
|
|
staff_count: 28 # Total FTE
|
|
staff_members:
|
|
- id: ".../person-obs/.../jane-smith/conservator-2013"
|
|
person_name: "Dr. Jane Smith"
|
|
staff_role: CONSERVATOR
|
|
role_title: "Deputy Director, Conservation Division"
|
|
- id: ".../person-obs/.../john-doe/conservator-2015"
|
|
person_name: "John Doe"
|
|
staff_role: CONSERVATOR
|
|
role_title: "Senior Objects Conservator"
|
|
```
|
|
|
|
**Example - Staff Through Organizational Change**:
|
|
```yaml
|
|
# Before merger (2013-02-28)
|
|
OrganizationalStructure:
|
|
id: ".../org-unit/rm-paintings-conservation"
|
|
unit_name: "Paintings Conservation Department"
|
|
valid_to: "2013-02-28"
|
|
staff_members:
|
|
- person_name: "Dr. Jane Smith"
|
|
role_end_date: "2013-02-28" # Ends with unit dissolution
|
|
|
|
# After merger (2013-03-01)
|
|
OrganizationalStructure:
|
|
id: ".../org-unit/rm-conservation-division"
|
|
unit_name: "Conservation Division"
|
|
valid_from: "2013-03-01"
|
|
staff_members:
|
|
- person_name: "Dr. Jane Smith"
|
|
role_start_date: "2013-03-01" # Starts with new unit
|
|
affected_by_event: ".../event/rm-conservation-merger-2013"
|
|
```
|
|
|
|
**Query Pattern (SPARQL)**:
|
|
```sparql
|
|
# Find all conservators in an institution
|
|
SELECT ?unitName ?personName ?roleTitle WHERE {
|
|
?custodian hc:organizational_structure ?unit .
|
|
?unit hc:unit_name ?unitName ;
|
|
hc:staff_members ?person .
|
|
?person hc:person_name ?personName ;
|
|
hc:staff_role "CONSERVATOR" ;
|
|
hc:role_title ?roleTitle .
|
|
}
|
|
```
|
|
examples:
|
|
- value:
|
|
- id: "https://nde.nl/ontology/hc/person-obs/nl-na/john-doe/archivist-2015"
|
|
person_name: "John Doe"
|
|
staff_role: ARCHIVIST
|
|
role_title: "Digital Preservation Manager"
|
|
description: "Staff member in Digital Preservation Department"
|
|
|
|
managed_collections:
|
|
slot_uri: org:hasUnit
|
|
range: CustodianCollection
|
|
multivalued: true
|
|
inlined_as_list: true
|
|
description: >-
|
|
Heritage collections managed by this organizational unit.
|
|
|
|
**W3C ORG Pattern Extension**:
|
|
W3C ORG's `org:hasUnit` typically models organizational hierarchy (organization → sub-unit).
|
|
We extend this conceptually to organizational unit → managed collections.
|
|
Rationale: Collections are "units" in the sense of organizational responsibilities.
|
|
|
|
**Alternative Ontology Mappings**:
|
|
- `crm:P50i_is_current_keeper_of` (CIDOC-CRM - inverse of P50_has_current_keeper)
|
|
- `rico:isManagerOf` (RiC-O manages relationship)
|
|
- `schema:isRelatedTo` (Schema.org general relationship)
|
|
|
|
**Bidirectional Relationship**:
|
|
- **Forward**: OrganizationalStructure → CustodianCollection (managed_collections)
|
|
- **Reverse**: CustodianCollection → OrganizationalStructure (managing_unit)
|
|
- Enables queries from both directions:
|
|
- "What collections does this department manage?" (unit → collections)
|
|
- "Which department manages this collection?" (collection → unit)
|
|
|
|
**Temporal Consistency**:
|
|
Collection custody dates should align with organizational unit validity:
|
|
- CustodianCollection.valid_from >= OrganizationalStructure.valid_from
|
|
- CustodianCollection.valid_to <= OrganizationalStructure.valid_to (if unit dissolved)
|
|
|
|
**Use Cases**:
|
|
1. **Collection Management Analysis**: "What collections does Paintings Department manage?"
|
|
2. **Staffing + Collections Cross-Reference**: "Find curators AND collections in a department"
|
|
3. **Organizational Change Impact**: "Track which collections were affected by merger"
|
|
4. **Workload Analysis**: "How many collections per department?"
|
|
|
|
**Data Quality**:
|
|
- Complete collection inventory = high-quality data
|
|
- Major collections only = acceptable for institutional overview
|
|
- Empty managed_collections = unit has no collection management responsibilities
|
|
|
|
**Example - Paintings Department**:
|
|
```yaml
|
|
OrganizationalStructure:
|
|
id: ".../org-unit/rm-paintings-dept"
|
|
unit_name: "Paintings Department"
|
|
unit_type: DEPARTMENT
|
|
staff_count: 15
|
|
staff_members:
|
|
- ".../person-obs/.../curator-dutch-paintings"
|
|
- ".../person-obs/.../curator-flemish-paintings"
|
|
managed_collections:
|
|
- id: ".../collection/rm-dutch-paintings"
|
|
collection_name: "Dutch Golden Age Paintings"
|
|
extent: "1,200 objects"
|
|
- id: ".../collection/rm-flemish-paintings"
|
|
collection_name: "Flemish Baroque Paintings"
|
|
extent: "450 objects"
|
|
```
|
|
|
|
**Example - Organizational Change (Collection Custody Transfer)**:
|
|
```yaml
|
|
# Before merger (2013-02-28)
|
|
OrganizationalStructure:
|
|
id: ".../org-unit/rm-paintings-conservation"
|
|
unit_name: "Paintings Conservation Department"
|
|
valid_to: "2013-02-28"
|
|
managed_collections:
|
|
- id: ".../collection/rm-paintings-in-conservation"
|
|
collection_name: "Paintings Undergoing Conservation"
|
|
valid_to: "2013-02-28" # Custody period ends
|
|
|
|
# After merger (2013-03-01)
|
|
OrganizationalStructure:
|
|
id: ".../org-unit/rm-conservation-division"
|
|
unit_name: "Conservation Division"
|
|
valid_from: "2013-03-01"
|
|
managed_collections:
|
|
- id: ".../collection/rm-paintings-in-conservation"
|
|
collection_name: "Paintings Undergoing Conservation"
|
|
valid_from: "2013-03-01" # Custody transferred to new unit
|
|
- id: ".../collection/rm-objects-in-conservation"
|
|
collection_name: "Objects Undergoing Conservation"
|
|
valid_from: "2013-03-01"
|
|
# Collections consolidated under merged unit
|
|
```
|
|
|
|
**Query Pattern (SPARQL)**:
|
|
```sparql
|
|
# Find all collections + curators in a department
|
|
PREFIX org: <http://www.w3.org/ns/org#>
|
|
PREFIX hc: <https://nde.nl/ontology/hc/class/>
|
|
PREFIX dcterms: <http://purl.org/dc/terms/>
|
|
PREFIX schema: <http://schema.org/>
|
|
|
|
SELECT ?collection_name ?extent ?curator_name ?role_title
|
|
WHERE {
|
|
<.../org-unit/rm-paintings-dept>
|
|
org:hasUnit ?collection ;
|
|
org:hasMember ?curator .
|
|
|
|
?collection dcterms:title ?collection_name ;
|
|
dcterms:extent ?extent .
|
|
|
|
?curator hc:staff_role hc:CURATOR ;
|
|
schema:name ?curator_name ;
|
|
schema:jobTitle ?role_title .
|
|
|
|
FILTER NOT EXISTS { ?curator schema:endDate ?end } # Still employed
|
|
FILTER NOT EXISTS { ?collection time:hasEnd ?coll_end } # Active collection
|
|
}
|
|
```
|
|
|
|
**Integration with PersonObservation**:
|
|
Combining staff + collections enables queries like:
|
|
- "Which curator manages the Medieval Manuscripts collection?"
|
|
→ CustodianCollection.managing_unit → staff_members (role = CURATOR)
|
|
- "What collections does Dr. Smith's department manage?"
|
|
→ PersonObservation.unit_affiliation → managed_collections
|
|
|
|
**Notes**:
|
|
- Multivalued: Units typically manage multiple collections or sub-collections
|
|
- Collections may transfer between units during reorganizations
|
|
- Use temporal validity (valid_from/valid_to) to track custody history
|
|
- Collections can be hierarchical: sub-collections inherit managing_unit from parent
|
|
|
|
examples:
|
|
- value:
|
|
- id: "https://nde.nl/ontology/hc/collection/rm-dutch-paintings"
|
|
collection_name: "Dutch Golden Age Paintings"
|
|
extent: "1,200 objects"
|
|
description: "Collection managed by Paintings Department"
|
|
|
|
located_at:
|
|
slot_uri: org:basedAt
|
|
range: AuxiliaryPlace
|
|
multivalued: true
|
|
inlined_as_list: true
|
|
description: >-
|
|
Physical location (AuxiliaryPlace) where this organizational unit operates.
|
|
|
|
**W3C ORG Alignment**:
|
|
|
|
`org:basedAt` - "Indicates the site at which the Organization has its main
|
|
administrative/operational presence."
|
|
|
|
**Optional Slot**:
|
|
|
|
Many organizational units don't have fixed locations:
|
|
- Strategic Planning Committee (meets virtually)
|
|
- Research Fellowship Program (no physical space)
|
|
|
|
Only use when organizational unit has identifiable physical location.
|
|
|
|
**Use Cases**:
|
|
|
|
1. **Departments at Branch Locations**:
|
|
- Conservation Team → located at Amersfoort Depot
|
|
- Digitization Team → located at off-site facility
|
|
|
|
2. **Teams Spanning Multiple Locations**:
|
|
- IT Department → located at main building AND data center
|
|
- Public Services → located at main reading room AND annex
|
|
|
|
**Relationship to OrganizationBranch**:
|
|
|
|
OrganizationalStructure.located_at provides OPTIONAL location link.
|
|
OrganizationBranch.has_operational_unit provides hierarchical structure.
|
|
|
|
```
|
|
AuxiliaryPlace
|
|
└── hosts_branch → OrganizationBranch
|
|
└── has_operational_unit → OrganizationalStructure
|
|
|
|
OrganizationalStructure
|
|
└── located_at → AuxiliaryPlace (optional, direct link)
|
|
```
|
|
|
|
**Example**:
|
|
```yaml
|
|
OrganizationalStructure:
|
|
unit_name: "Conservation Division"
|
|
unit_type: DIVISION
|
|
located_at:
|
|
- place_name: "Conservation Lab - Main Building"
|
|
- place_name: "Climate-Controlled Storage - Depot"
|
|
```
|
|
examples:
|
|
- value:
|
|
- place_name: "Depot Amersfoort"
|
|
auxiliary_place_type: STORAGE_FACILITY
|
|
description: "Organizational unit located at off-site storage"
|
|
|
|
contact_point:
|
|
range: string
|
|
description: >-
|
|
Contact information for unit (email, phone, URL).
|
|
Can be structured as vCard in future versions.
|
|
examples:
|
|
- value: "digitization@nationalarchives.nl"
|
|
- value: "https://nationalarchives.nl/services/reading-room"
|
|
|
|
valid_from:
|
|
range: date
|
|
description: >-
|
|
Date this organizational unit was established.
|
|
Tracks organizational restructuring over time.
|
|
examples:
|
|
- value: "2015-01-01"
|
|
description: "Digital Preservation Dept founded 2015"
|
|
|
|
valid_to:
|
|
range: date
|
|
description: >-
|
|
Date this organizational unit was dissolved or merged.
|
|
NULL if still active.
|
|
examples:
|
|
- value: "2020-12-31"
|
|
description: "Unit dissolved in 2020 reorganization"
|
|
|
|
refers_to_custodian:
|
|
required: true
|
|
range: Custodian
|
|
slot_uri: prov:qualifiedAttribution
|
|
description: >-
|
|
Links this organizational unit back to the custodian hub entity.
|
|
Every organizational unit MUST refer to exactly one custodian.
|
|
examples:
|
|
- value:
|
|
hc_id: "https://nde.nl/ontology/hc/cust/national-archives"
|
|
description: "Unit belongs to National Archives"
|
|
|
|
comments:
|
|
- "OrganizationalStructure models INFORMAL operational units"
|
|
- "GovernanceStructure models FORMAL legal structure"
|
|
- "Both use org:OrganizationalUnit but at different levels"
|
|
- "Units can be nested via parent_unit (hierarchical structure)"
|
|
- "Temporal validity tracks organizational changes"
|
|
- "NOT for legally registered sub-organizations (use CustodianLegalStatus)"
|
|
- "NEW: located_at links organizational units to AuxiliaryPlace locations (optional)"
|
|
- "Enables tracking which departments/teams operate at which physical sites"
|
|
|
|
examples:
|
|
- value:
|
|
id: "https://nde.nl/ontology/hc/org-unit/na-digital-pres"
|
|
unit_name: "Digital Preservation Department"
|
|
unit_type: "DEPARTMENT"
|
|
staff_count: 15
|
|
contact_point: "digipres@nationalarchives.nl"
|
|
valid_from: "2010-01-01"
|
|
refers_to_custodian:
|
|
hc_id: "https://nde.nl/ontology/hc/cust/national-archives-nl"
|
|
description: "Digital preservation department example"
|
|
|
|
- value:
|
|
id: "https://nde.nl/ontology/hc/org-unit/rijks-conservation"
|
|
unit_name: "Conservation Lab"
|
|
unit_type: "LAB"
|
|
parent_unit:
|
|
unit_name: "Collections Care Division"
|
|
staff_count: 8
|
|
valid_from: "1885-07-13"
|
|
refers_to_custodian:
|
|
hc_id: "https://nde.nl/ontology/hc/cust/national-archives-nl"
|
|
description: "Digital preservation department example"
|
|
|
|
- value:
|
|
id: "https://nde.nl/ontology/hc/org-unit/rijks-conservation"
|
|
unit_name: "Conservation Lab"
|
|
unit_type: "LAB"
|
|
parent_unit:
|
|
unit_name: "Collections Care Division"
|
|
description: "Painting, paper, and textile conservation"
|
|
staff_count: 8
|
|
valid_from: "1885-07-13"
|
|
refers_to_custodian:
|
|
hc_id: "https://nde.nl/ontology/hc/cust/rijksmuseum"
|
|
description: "Museum conservation lab with parent division"
|