glam/schemas/20251121/linkml/modules/classes/Person.yaml
kempersc 626bd3a095 refactor(schemas): apply naming conventions to 261 class files
- Apply Rule 39: RiC-O style hasOrHad*/isOrWas* for temporal slots
- Apply Rule 43: Singular noun convention (keywords → keyword)
- Update slot references to match renamed slot files
- Maintain schema integrity across all class definitions
2026-01-10 15:36:33 +01:00

229 lines
11 KiB
YAML

id: https://nde.nl/ontology/hc/class/Person
name: Person
title: Person Hub Class
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
crm: http://www.cidoc-crm.org/cidoc-crm/
prov: http://www.w3.org/ns/prov#
schema: http://schema.org/
pico: https://personsincontext.org/model#
foaf: http://xmlns.com/foaf/0.1/
dcterms: http://purl.org/dc/terms/
skos: http://www.w3.org/2004/02/skos/core#
default_prefix: hc
imports:
- linkml:types
- ../slots/person_id
- ../slots/preferred_label
- ../slots/has_or_had_participated_in_event
- ../slots/has_person_observation
- ../slots/created
- ../slots/modified
- ./Event
- ../slots/preferred_name
- ../slots/specificity_annotation
- ../slots/template_specificity
- ./PersonObservation
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
classes:
Person:
class_uri: crm:E21_Person
description: "An abstract hub class that serves as the central connection point\
\ for all\ninformation about an individual person. The Person itself contains\
\ minimal\ninformation - essentially just its persistent identifier (person_id)\
\ and\npreferred name - and acts as a node to which all observations attach.\n\
\nThis hub pattern allows multiple observations from different sources to be\n\
connected to a single logical person without asserting which observation\nis\
\ \"correct\" or \"primary\".\n\n**HUB ARCHITECTURE**:\n\n```\nPersonObservation\
\ ──refers_to_person──> Person ──participated_in_events──> Event\n │ \
\ ↑\n │ \
\ │\n(source: LinkedIn 2024) (source: Annual Report 2020)\n \
\ │ │\n └───────────────────────────────────┘\n\
\ Multiple observations → Single hub\n```\n\n- The Person hub is\
\ identified by: https://nde.nl/ontology/hc/person/{person-slug}\n- All PersonObservations\
\ refer to the hub via refers_to_person\n- The hub persists while observations\
\ and interpretations evolve\n\n**DISTINCTION FROM PersonObservation**:\n\n\
| Aspect | Person (Hub) | PersonObservation |\n|--------|--------------|-------------------|\n\
| **Purpose** | Abstract identity | Evidence-based data |\n| **Contains** |\
\ Minimal: ID, preferred name | Rich: role, affiliation, dates |\n| **Temporal**\
\ | Timeless identity | Point-in-time snapshot |\n| **Source** | Canonical |\
\ From specific source |\n| **Count** | One per person | Many per person |\n\
\n**USE CASES**:\n\n1. **Cross-Custodian Career Tracking**:\n Person worked\
\ at Rijksmuseum (observation 1), then at Van Gogh Museum (observation 2).\n\
\ Both observations link to same Person hub.\n \n2. **Source Reconciliation**:\n\
\ LinkedIn says \"Director\", annual report says \"General Director\".\n \
\ Both are valid observations of the same Person.\n \n3. **Event Participation**:\n\
\ Person participated in merger event, relocation event, etc.\n Events link\
\ to Person hub, not individual observations.\n\n**PICO ALIGNMENT**:\n\nThe\
\ PiCo (Persons in Context) ontology establishes this hub/observation pattern:\n\
- `pico:Person`: The abstract identity (hub) - this class\n- `pico:PersonObservation`:\
\ Evidence-based data about a person\n\nKey relationships:\n- PersonObservation\
\ → Person via pico:observationOf (refers_to_person)\n- Person → PersonObservation\
\ via pico:hasObservation (inverse)\n\n**CIDOC-CRM ALIGNMENT**:\n\nMaps to crm:E21_Person\
\ which is defined as:\n\"This class comprises real persons who live or are\
\ assumed to have lived.\"\n\nE21_Person is a subclass of:\n- E39_Actor (shared\
\ superclass with organizations)\n- E20_Biological_Object\n\nKey relationships:\n\
- P48_has_preferred_identifier → person_id\n- P11i_participated_in → Event (via\
\ participated_in_events)\n\n**RELATIONSHIP TO Custodian**:\n\nPerson and Custodian\
\ are parallel hub classes, both subclasses of crm:E39_Actor:\n\n```\ncrm:E39_Actor\n\
├── crm:E21_Person (Person hub)\n│ └── PersonObservation refers to Person\n\
└── crm:E74_Group (Custodian hub)\n └── CustodianObservation refers to Custodian\n\
```\n\nA Custodian can BE a Person (private collector), but typically:\n- Person\
\ = individual human\n- Custodian = organization/group/institution\n\n**EXAMPLE\
\ - Director with Multiple Roles**:\n\n```yaml\nPerson:\n person_id: \"https://nde.nl/ontology/hc/person/taco-dibbits\"\
\n preferred_name: \"Taco Dibbits\"\n participated_in_events:\n - \"https://nde.nl/ontology/hc/event/dibbits-appointed-director-2020\"\
\n\n# Observations from different sources:\nPersonObservation: # From LinkedIn\n\
\ person_name: \"Taco Dibbits\"\n role_title: \"General Director\"\n unit_affiliation:\
\ \"Executive Board\"\n refers_to_person: \"https://nde.nl/ontology/hc/person/taco-dibbits\"\
\n observation_source: \"LinkedIn profile, 2025-01-15\"\n\nPersonObservation:\
\ # From annual report\n person_name: \"T.J.S. Dibbits\"\n role_title: \"\
Algemeen Directeur\"\n refers_to_person: \"https://nde.nl/ontology/hc/person/taco-dibbits\"\
\n observation_source: \"Rijksmuseum Jaarverslag 2023\"\n```\n\n**EXAMPLE -\
\ Person Across Multiple Institutions**:\n\n```yaml\nPerson:\n person_id: \"\
https://nde.nl/ontology/hc/person/maria-garcia\"\n preferred_name: \"Maria\
\ Garcia\"\n participated_in_events:\n - \"https://nde.nl/ontology/hc/event/garcia-curator-appointment-2015\"\
\n - \"https://nde.nl/ontology/hc/event/garcia-director-appointment-2022\"\
\n\nPersonObservation: # Earlier role\n role_title: \"Curator of European\
\ Art\"\n unit_affiliation: \"Rijksmuseum\"\n role_start_date: \"2015-03-01\"\
\n role_end_date: \"2021-12-31\"\n refers_to_person: \"https://nde.nl/ontology/hc/person/maria-garcia\"\
\n\nPersonObservation: # Current role\n role_title: \"Director\"\n unit_affiliation:\
\ \"Mauritshuis\"\n role_start_date: \"2022-01-01\"\n refers_to_person: \"\
https://nde.nl/ontology/hc/person/maria-garcia\"\n```\n"
exact_mappings:
- crm:E21_Person
- pico:Person
- foaf:Person
close_mappings:
- schema:Person
- prov:Person
broad_mappings:
- crm:E39_Actor
- prov:Agent
- foaf:Agent
slots:
- created
- has_person_observation
- modified
- has_or_had_participated_in_event
- person_id
- preferred_name
- specificity_annotation
- template_specificity
slot_usage:
person_id:
slot_uri: dcterms:identifier
description: |
The persistent identifier for this Person hub.
Format: https://nde.nl/ontology/hc/person/{person-slug}
Example: https://nde.nl/ontology/hc/person/taco-dibbits
range: uriorcurie
required: true
identifier: true
pattern: ^https://nde\.nl/ontology/hc/person/[a-z0-9-]+$
preferred_name:
slot_uri: skos:prefLabel
description: |
The preferred name for this person - the canonical form used for display.
This is the PREFERRED name, not necessarily the full legal name.
Other name forms appear in PersonObservation entries.
**EXAMPLES**:
- "Taco Dibbits" (preferred)
- NOT: "Taco Jacobus Sergio Dibbits" (full legal)
- NOT: "T.J.S. Dibbits" (formal abbreviation)
range: string
required: false
has_or_had_participated_in_event:
description: |
Events in which this person participated.
This enables bidirectional navigation:
- Event → Person: "Who participated in this event?"
- Person → Event: "What events did this person participate in?"
**EXAMPLES**:
- Appointment events (hired, promoted)
- Organizational events (merger where person was involved)
- Career milestones (retirement, award)
range: Event
multivalued: true
required: false
has_person_observation:
slot_uri: pico:hasObservation
description: |
All PersonObservation entities that refer to this Person hub.
This is the inverse of `refers_to_person` and enables bidirectional navigation:
- PersonObservation → Person via `refers_to_person`
- Person → PersonObservation via `has_person_observation`
**NAVIGATION PATTERN**:
```
Person ──has_person_observation──> PersonObservation[1..n]
<──refers_to_person────────
```
**USE CASES**:
- Retrieve all observations about a person
- Find all sources that mention this person
- Track career across multiple institutions
**NOTE**: This slot is populated automatically via the inverse relationship.
When a PersonObservation sets `refers_to_person`, this slot is updated.
range: PersonObservation
multivalued: true
required: false
inlined: false
specificity_annotation:
range: SpecificityAnnotation
inlined: true
template_specificity:
range: TemplateSpecificityScores
inlined: true
comments:
- Person is the hub class for individual humans in the HC ontology
- PersonObservation entities attach to Person via refers_to_person
- Parallel architecture to Custodian hub class
- Enables linking same person across multiple institutions and sources
- preferred_name is minimal - rich data lives in PersonObservation
- participated_in_events links person to life/career events
examples:
- value:
person_id: https://nde.nl/ontology/hc/person/taco-dibbits
preferred_name: Taco Dibbits
has_or_had_participated_in_event:
- https://nde.nl/ontology/hc/event/dibbits-appointed-director-2020
has_person_observation:
- https://nde.nl/ontology/hc/observation/dibbits-linkedin-2025
- https://nde.nl/ontology/hc/observation/dibbits-rijksmuseum-annual-report-2024
description: Director of Rijksmuseum as Person hub with multiple observations
- value:
person_id: https://nde.nl/ontology/hc/person/jan-de-vries-1985
preferred_name: Jan de Vries
description: Person with disambiguator (birth year)
- value:
person_id: https://nde.nl/ontology/hc/person/maria-garcia
preferred_name: Maria Garcia
has_person_observation:
- https://nde.nl/ontology/hc/observation/garcia-rijksmuseum-2015
- https://nde.nl/ontology/hc/observation/garcia-mauritshuis-2022
has_or_had_participated_in_event:
- https://nde.nl/ontology/hc/event/garcia-curator-appointment-2015
- https://nde.nl/ontology/hc/event/garcia-director-appointment-2022
description: Person with career spanning multiple institutions - observations
from each role
slots:
preferred_name:
slot_uri: skos:prefLabel
description: |
The preferred (canonical) name for this entity.
Used for display purposes and as the primary label.
range: string
required: false
exact_mappings:
- skos:prefLabel
- foaf:name
- schema:name