glam/schemas/20251121/linkml/modules/classes/StaffRole.yaml
kempersc fcd1c21c63 Add aliases and enhance slot definitions across various modules
- Added new aliases for existing slots to improve clarity and usability, including:
  - has_deadline: has_embargo_end_date
  - has_extent: has_extent_text
  - has_fonds: has_fond
  - has_laboratory: conservation_lab
  - has_language: has_iso_code639_1, has_iso_code639_3
  - has_legal_basis: legal_basis
  - has_light_exposure: max_light_lux
  - has_measurement_unit: has_unit
  - has_note: has_custodian_observation
  - has_occupation: occupation
  - has_operating_hours: has_operating_hours
  - has_position: position
  - has_quantity: has_artwork_count, link_count
  - has_roadmap: review_date
  - has_skill: skill
  - has_speaker: speaker_label
  - has_specification: specification_url
  - has_statement: rights_statement_url, rights_statement
  - has_type: custodian_only
  - has_user_category: serves_visitors_only
  - hold_record_set: record_count
  - identified_by: has_index_number
  - in_period: has_period
  - in_place: has_place
  - in_series: has_series
  - measure: has_measurement
  - measured_on: measurement_date
  - organized_by: has_organizer
  - originate_from: has_origin
  - part_of: suborganization_of
  - published_on: has_publication_date
  - receive_investment: has_investment
  - related_to: connection_heritage_type
  - require: preservation_requirement
  - safeguarded_by: current_keeper, record_holder_note
  - state: states_or_stated
  - take_comission: takes_or_took_comission
  - take_place_at: takes_or_took_place_at
  - transmit_through: transmits_or_transmitted_through
  - warrant: warrants_or_warranted

- Introduced a new slot definition for evaluated_through to capture evaluation methodologies and review statuses.
2026-02-14 14:41:49 +01:00

119 lines
6.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
- ../enums/CauseOfDeathTypeEnum
- ../enums/RoleCategoryEnum
- ../metadata
- ../slots/has_description
- ../slots/has_domain
- ../slots/responsible_for
- ../slots/has_score
- ../slots/has_type
- ../slots/include
- ../slots/deceased
- ../slots/martyred_through
- ../slots/require
- ../slots/categorized_as
- ../slots/identified_by
- ../slots/has_label
- ../slots/temporal_extent
classes:
StaffRole:
class_uri: org:Role
abstract: true
description: "Abstract base class for official staff role/job title classifications in heritage institutions.\n\n**CRITICAL: FORMAL TITLE vs DE FACTO WORK**\n\nThese classes represent OFFICIAL JOB APPELLATIONS/TITLES - the formal designation\nassigned to a position by the institution. This is the title that appears on:\n- Employment contracts\n- Business cards\n- Organizational charts\n- HR systems\n- Official correspondence\n\n**The ACTUAL DE FACTO WORK performed may differ or extend beyond these classifications.**\n\n| Aspect | Official Title (This Class) | De Facto Work (PersonObservation) |\n|--------|----------------------------|-----------------------------------|\n| **Nature** | Formal job appellation | Actual tasks and responsibilities |\n| **Scope** | Narrow, defined by HR | Often broader, cross-functional |\n| **Stability** | Changes with promotion/reassignment | Evolves with projects and needs |\n| **Documentation** | Contract, org chart | Work logs, project records |\n\n\
**Examples of Title vs Reality**:\n\n- **Title**: \"Curator\" \u2192 **Reality**: Also does collections management, grant writing, public speaking\n- **Title**: \"Archivist\" \u2192 **Reality**: Also trains volunteers, manages digitization, writes blog posts\n- **Title**: \"IT Specialist\" \u2192 **Reality**: Also manages digital preservation, trains staff, procures equipment\n- **Title**: \"Librarian\" \u2192 **Reality**: Also curates exhibitions, teaches workshops, manages social media\n\n**Multi-Role Handling**:\n\nStaff may hold multiple official roles simultaneously:\n- A person may be both \"Curator\" AND \"Department Head\"\n- A person may be \"Researcher\" during 50% appointment AND \"Educator\" for 50%\n- Roles may overlap in time with different temporal extents\n\nEach role is captured as a separate PersonObservation record with its own temporal bounds.\n\n- org:Role - W3C Organization Ontology role concept\n- schema:Role - Schema.org role (for structured values)\n- schema:roleName\
\ - The name of the role\n- pico:PersonObservation - PiCo pattern for role observations\n\n**Subclasses**:\n\nSpecific role types inherit from this base class:\n- Curatorial: Curator, CollectionsManager\n- Conservation: Conservator\n- Archival: Archivist, RecordsManager\n- Library: Librarian\n- Digital: DigitalPreservationSpecialist, DigitizationSpecialist, DataManager, etc.\n- Education: Educator, PublicEngagementSpecialist\n- Governance: Chairperson, ViceChairperson, Secretary, Treasurer, BoardMember\n- Leadership: Director, DeputyDirector, DepartmentHead\n- Research: Researcher, ResearcherInResidence, Historian, Genealogist, OralHistorian\n- Technical: FacilitiesManager, ITSpecialist, FrontendDeveloper, BackendDeveloper, etc.\n- Support: SecurityGuard, Janitor, Cleaner, Receptionist, TourGuide, etc.\n- Creative: ArtistInResidence\n- External: Consultant, LegalConsultant, Lawyer, Volunteer, NewsletterEditor, EventCoordinator\n"
exact_mappings:
- org:Role
- schema:Role
close_mappings:
- pico:PersonObservation
- schema:Occupation
related_mappings:
- schema:JobPosting
- schema:EmployeeRole
slots:
- deceased
- has_type
- include
- has_description
- martyred_through
- require
- categorized_as
- identified_by
- has_label
- has_label
- has_score
- temporal_extent
- has_domain
- responsible_for
slot_usage:
identified_by:
identifier: true
required: true
has_label:
required: true
has_label:
required: false
categorized_as:
required: false
martyred_through:
required: false
deceased:
required: false
# range: string # uriorcurie
# range: DeceasedStatus
inlined: false # Fixed invalid inline for primitive type
description: "Structured death information using DeceasedStatus class.\nReplaces simple circumstances_of_death string.\nCaptures cause (CauseOfDeath), date (TimeSpan), and narrative.\n\n**Example - Gaza Heritage Worker**:\n```yaml\nis_deceased:\n caused_by:\n has_type: CONFLICT\n has_description: |\n Killed in Israeli airstrike on his home in Gaza City.\n temporal_extent:\n begin_of_the_begin: \"2023-11-19T00:00:00Z\"\n end_of_the_end: \"2023-11-19T23:59:59Z\"\n```\n"
has_type:
required: false
# range: string # uriorcurie
# range: VariantType
multivalued: true
inlined: false # Fixed invalid inline for primitive type
inlined_as_list: false # Fixed invalid inline for primitive type
examples:
- value:
has_label: Keeper
has_type: SynonymVariant
has_description: British English alternative for Curator
- value:
has_label: Conservateur
has_type: TranslationVariant
has_language: fr
include:
required: false
# range: string # uriorcurie
# range: VariantType
multivalued: true
inlined: false # Fixed invalid inline for primitive type
inlined_as_list: false # Fixed invalid inline for primitive type
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
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class/slot created during migration
custodian_types: "['*']"