glam/schemas/20251121/linkml/modules/classes/StaffRole.yaml
kempersc b61572f08a feat: Add CreationEvent, DatePrecision, IdentificationEvent, and Image classes with structured slots
- Introduced CreationEvent class to represent the creation of objects, including temporal extent, creator, and place of creation.
- Added DatePrecision class to indicate the precision level of date values, supporting various formats from day to century.
- Implemented IdentificationEvent class for taxonomic identification, capturing identification date, method, and confidence level.
- Created Image class for visual content representation, including URL and metadata for images used in collections.
- Archived previous slots related to card images and titles, replacing them with structured slots for better data representation.
- Enhanced slots for decommission dates, degree of certainty, and identification events to improve temporal data handling.
2026-01-23 23:15:43 +01:00

275 lines
9.9 KiB
YAML

id: https://nde.nl/ontology/hc/class/StaffRole
name: staff_role_class
title: Staff Role Base Class
prefixes:
linkml: https://w3id.org/linkml/
schema: http://schema.org/
org: http://www.w3.org/ns/org#
prov: http://www.w3.org/ns/prov#
dcterms: http://purl.org/dc/terms/
pico: https://personsincontext.org/model#
wd: http://www.wikidata.org/entity/
imports:
- linkml:types
- ../metadata
- ../slots/description
- ../slots/martyred
# REMOVED 2026-01-23: ../slots/deceased - migrated to is_deceased with DeceasedStatus (Rule 53)
# REMOVED 2026-01-23: ../slots/date_of_death - migrated to is_deceased.temporal_extent (Rule 53)
# REMOVED 2026-01-19: ../slots/circumstances_of_death - migrated to is_deceased with DeceasedStatus
- ../slots/is_deceased
- ./DeceasedStatus
- ./CauseOfDeath
- ../enums/CauseOfDeathTypeEnum
- ../slots/has_or_had_domain # was: typical_domain - migrated per Rule 53 (2026-01-15)
- ./Domain # for has_or_had_domain range
- ../slots/temporal_extent
- ./TimeSpan
# REMOVED 2026-01-22: ../slots/common_variant - migrated to has_or_had_type + VariantType + includes_or_included + VariantTypes (Rule 53)
- ../slots/has_or_had_type
- ./VariantType
- ./VariantTypes
- ../slots/includes_or_included
- ../slots/requires_qualification
- ../slots/role_category
- ../slots/role_id
- ../slots/role_name
- ../slots/role_name_local
- ../slots/specificity_annotation
- ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
# REMOVED 2026-01-14: ../slots/typical_responsibility - migrated to has_or_had_responsibility with Responsibility
- ../slots/has_or_had_responsibility
- ./Responsibility
- ./SpecificityAnnotation
- ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17)
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
- ../enums/RoleCategoryEnum
classes:
StaffRole:
class_uri: org:Role
abstract: true
description: 'Abstract base class for official staff role/job title classifications in heritage institutions.
**CRITICAL: FORMAL TITLE vs DE FACTO WORK**
These classes represent OFFICIAL JOB APPELLATIONS/TITLES - the formal designation
assigned to a position by the institution. This is the title that appears on:
- Employment contracts
- Business cards
- Organizational charts
- HR systems
- Official correspondence
**The ACTUAL DE FACTO WORK performed may differ or extend beyond these classifications.**
| Aspect | Official Title (This Class) | De Facto Work (PersonObservation) |
|--------|----------------------------|-----------------------------------|
| **Nature** | Formal job appellation | Actual tasks and responsibilities |
| **Scope** | Narrow, defined by HR | Often broader, cross-functional |
| **Stability** | Changes with promotion/reassignment | Evolves with projects and needs |
| **Documentation** | Contract, org chart | Work logs, project records |
**Examples of Title vs Reality**:
- **Title**: "Curator" → **Reality**: Also does collections management, grant writing, public speaking
- **Title**: "Archivist" → **Reality**: Also trains volunteers, manages digitization, writes blog posts
- **Title**: "IT Specialist" → **Reality**: Also manages digital preservation, trains staff, procures equipment
- **Title**: "Librarian" → **Reality**: Also curates exhibitions, teaches workshops, manages social media
**Multi-Role Handling**:
Staff may hold multiple official roles simultaneously:
- A person may be both "Curator" AND "Department Head"
- A person may be "Researcher" during 50% appointment AND "Educator" for 50%
- Roles may overlap in time with different temporal extents
Each role is captured as a separate PersonObservation record with its own temporal bounds.
- org:Role - W3C Organization Ontology role concept
- schema:Role - Schema.org role (for structured values)
- schema:roleName - The name of the role
- pico:PersonObservation - PiCo pattern for role observations
**Subclasses**:
Specific role types inherit from this base class:
- Curatorial: Curator, CollectionsManager
- Conservation: Conservator
- Archival: Archivist, RecordsManager
- Library: Librarian
- Digital: DigitalPreservationSpecialist, DigitizationSpecialist, DataManager, etc.
- Education: Educator, PublicEngagementSpecialist
- Governance: Chairperson, ViceChairperson, Secretary, Treasurer, BoardMember
- Leadership: Director, DeputyDirector, DepartmentHead
- Research: Researcher, ResearcherInResidence, Historian, Genealogist, OralHistorian
- Technical: FacilitiesManager, ITSpecialist, FrontendDeveloper, BackendDeveloper, etc.
- Support: SecurityGuard, Janitor, Cleaner, Receptionist, TourGuide, etc.
- Creative: ArtistInResidence
- External: Consultant, LegalConsultant, Lawyer, Volunteer, NewsletterEditor, EventCoordinator
'
exact_mappings:
- org:Role
- schema:Role
close_mappings:
- pico:PersonObservation
- schema:Occupation
related_mappings:
- schema:JobPosting
- schema:EmployeeRole
slots:
# REMOVED 2026-01-19: circumstances_of_death - migrated to is_deceased with DeceasedStatus
- is_deceased
# REMOVED 2026-01-22: common_variant - migrated to has_or_had_type + VariantType + VariantTypes (Rule 53)
- has_or_had_type
- includes_or_included
# REMOVED 2026-01-23: date_of_death - migrated to is_deceased.temporal_extent (Rule 53)
# REMOVED 2026-01-23: deceased - migrated to is_deceased with DeceasedStatus (Rule 53)
- description
- martyred
- requires_qualification
- role_category
- role_id
- role_name
- role_name_local
- specificity_annotation
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
- temporal_extent
- has_or_had_domain # was: typical_domain - migrated per Rule 53 (2026-01-15)
# REMOVED 2026-01-14: typical_responsibility - migrated to has_or_had_responsibility with Responsibility
- has_or_had_responsibility
slot_usage:
role_id:
identifier: true
required: true
role_name:
required: true
role_name_local:
required: false
role_category:
required: false
# REMOVED 2026-01-23: deceased - migrated to is_deceased with DeceasedStatus (Rule 53)
martyred:
required: false
# REMOVED 2026-01-23: date_of_death - migrated to is_deceased.temporal_extent (Rule 53)
# REMOVED 2026-01-19: circumstances_of_death - migrated to is_deceased
is_deceased:
required: false
range: DeceasedStatus
inlined: true
description: |
Structured death information using DeceasedStatus class.
Replaces simple circumstances_of_death string.
Captures cause (CauseOfDeath), date (TimeSpan), and narrative.
**Example - Gaza Heritage Worker**:
```yaml
is_deceased:
is_or_was_caused_by:
has_or_had_type: CONFLICT
has_or_had_description: |
Killed in Israeli airstrike on his home in Gaza City.
temporal_extent:
begin_of_the_begin: "2023-11-19T00:00:00Z"
end_of_the_end: "2023-11-19T23:59:59Z"
```
# MIGRATED 2026-01-22: common_variant → has_or_had_type + VariantType + VariantTypes (Rule 53)
has_or_had_type:
required: false
range: VariantType
multivalued: true
inlined: true
inlined_as_list: true
description: |
Common role title variants, synonyms, and alternative names.
MIGRATED from common_variant per slot_fixes.yaml (Rule 53, 2026-01-22).
Uses VariantType class hierarchy for structured representation:
- AbbreviationVariant: Abbreviated forms (e.g., "Dir." for "Director")
- SynonymVariant: Alternative names (e.g., "Keeper" for "Curator")
- RegionalVariant: Regional variations (e.g., British vs American)
- HistoricalVariant: Archaic/obsolete terms
- InformalVariant: Colloquial names
- TranslationVariant: Translations in other languages
examples:
- value:
has_or_had_label: "Keeper"
has_or_had_type: SynonymVariant
has_or_had_description: "British English alternative for Curator"
description: Regional synonym for Curator
- value:
has_or_had_label: "Conservateur"
has_or_had_type: TranslationVariant
has_or_had_language: "fr"
description: French translation
includes_or_included:
required: false
range: VariantType
multivalued: true
inlined: true
inlined_as_list: true
description: |
Included variant types for this role.
Used to express containment relationships in variant hierarchies.
comments:
- Abstract base class - use specific subclasses (Curator, Archivist, etc.)
- Represents OFFICIAL JOB TITLES, not de facto work performed
- Actual work may differ or extend beyond formal title classification
- A person may hold multiple roles simultaneously
- Each role observation has independent temporal extent
- Links to PersonObservation via role_type slot
- is_deceased with DeceasedStatus tracks vital status of staff member holding this role
- martyred flag specifically for information workers killed due to conflict or persecution
- DeceasedStatus.temporal_extent uses TimeSpan for fuzzy temporal bounds when exact date unknown
see_also:
- https://www.w3.org/TR/vocab-org/#class-role
- https://schema.org/Role
- https://github.com/FICLIT/PiCo