Some checks failed
Deploy Frontend / build-and-deploy (push) Successful in 5m10s
DSPy RAG Evaluation / Layer 1 - Unit Tests (push) Failing after 8m6s
DSPy RAG Evaluation / Layer 2 - DSPy Module Tests (push) Has been skipped
DSPy RAG Evaluation / Layer 3 - Integration Tests (push) Has been skipped
DSPy RAG Evaluation / Layer 4 - Comprehensive Evaluation (push) Has been skipped
DSPy RAG Evaluation / Quality Gate (push) Failing after 2s
330 lines
14 KiB
YAML
330 lines
14 KiB
YAML
id: https://nde.nl/ontology/hc/class/PersonObservation
|
|
name: PersonObservation
|
|
title: Person Observation (Staff Role Context)
|
|
prefixes:
|
|
linkml: https://w3id.org/linkml/
|
|
hc: https://nde.nl/ontology/hc/
|
|
schema: http://schema.org/
|
|
pico: https://personsincontext.org/model#
|
|
pnv: https://w3id.org/pnv#
|
|
crm: http://www.cidoc-crm.org/cidoc-crm/
|
|
foaf: http://xmlns.com/foaf/0.1/
|
|
prov: http://www.w3.org/ns/prov#
|
|
dcterms: http://purl.org/dc/terms/
|
|
sdo: https://schema.org/
|
|
imports:
|
|
- linkml:types
|
|
- ../slots/id
|
|
- ../slots/person_name
|
|
- ../slots/has_person_name
|
|
# REMOVED - migrated to has_or_had_date_of_birth (Rule 53)
|
|
# - ../slots/birth_date
|
|
- ../slots/has_or_had_date_of_birth
|
|
- ./BirthDate
|
|
# REMOVED - migrated to has_or_had_place_of_birth (Rule 53)
|
|
# - ../slots/birth_place
|
|
- ../slots/has_or_had_place_of_birth
|
|
- ./BirthPlace
|
|
- ../slots/death_place
|
|
- ../slots/date_of_death
|
|
- ../slots/deceased
|
|
- ../slots/has_age
|
|
- ../slots/occupation
|
|
- ../slots/religion
|
|
- ../slots/gender_identity
|
|
- ../slots/pronoun
|
|
- ../slots/staff_role
|
|
- ../slots/role_title
|
|
# REMOVED: unit_affiliation - migrated to is_or_was_affiliated_with (Rule 53)
|
|
# - ../slots/unit_affiliation
|
|
- ../slots/is_or_was_affiliated_with
|
|
- ./OrganizationUnit
|
|
- ../slots/role_start_date
|
|
- ../slots/role_end_date
|
|
- ../slots/observation_source
|
|
- ../slots/has_or_had_observation_source_document
|
|
- ../slots/is_or_was_affected_by_event
|
|
- ../slots/contact_email
|
|
- ../slots/expertise_area
|
|
- ../slots/refers_to_person
|
|
- ../slots/has_or_had_web_claim
|
|
- ../slots/linkedin_profile_path
|
|
- ../slots/linkedin_profile_url
|
|
- ../slots/extraction_metadata
|
|
- ../slots/created
|
|
- ../slots/modified
|
|
- ./PersonWebClaim
|
|
- ./PersonName
|
|
- ./ExtractionMetadata
|
|
- ./Person
|
|
- ../slots/specificity_annotation
|
|
- ../slots/template_specificity
|
|
- ./OrganizationalChangeEvent
|
|
- ./OrganizationalStructure
|
|
- ./SpecificityAnnotation
|
|
- ./StaffRole
|
|
- ./TemplateSpecificityScores
|
|
- ./TimeSpan
|
|
classes:
|
|
PersonObservation:
|
|
class_uri: pico:PersonObservation
|
|
description: "An observation of a person serving in a staff role at a heritage custodian institution,\nas documented in\
|
|
\ a specific source at a specific point in time.\n\n**PiCo Pattern Adaptation**:\nThe PiCo (Persons in Context) ontology\
|
|
\ distinguishes between:\n- **PersonObservation**: Data about a person as found in a source (evidence-based)\n- **PersonReconstruction**:\
|
|
\ Aggregated identity from multiple observations (inferred)\n\nFor heritage custodian staff tracking, we adapt this\
|
|
\ pattern:\n- **PersonObservation**: Staff role as documented in institutional sources\n (annual reports, org charts,\
|
|
\ staff directories, archival records)\n- Focus on ROLES and AFFILIATIONS rather than biographical details\n- Temporal\
|
|
\ validity tracks employment period in specific position\n\n**Key Distinction from General Person Data**:\nThis class\
|
|
\ models INSTITUTIONAL ROLES, not complete biographical data:\n- Emphasis: Role, title, unit affiliation, employment\
|
|
\ dates\n- NOT: Full biographical reconstruction (birth, death, family, etc.)\n- Sources: Institutional records (not\
|
|
\ vital records, census, etc.)\n- PiCo: `pico:PersonObservation` (primary - person data from sources)\n- Schema.org:\
|
|
\ `schema:Person` (for person identity)\n- Schema.org: `schema:Role` (for organizational role)\n- CIDOC-CRM: `crm:E21_Person`\
|
|
\ (person as cultural heritage actor)\n- PROV-O: `prov:Agent` (person as responsible agent)\n- FOAF: `foaf:Person` (person\
|
|
\ in social network)\n\n**Hub Architecture Integration**:\n- PersonObservation refers to Person hub via `refers_to_person`\
|
|
\ (PICO pattern)\n- PersonObservation refers to OrganizationUnit via `is_or_was_affiliated_with`\n- OrganizationalStructure\
|
|
\ refers back via `staff_members` (bidirectional)\n- PersonObservation affected by OrganizationalChangeEvent via `affected_by_event`\n\
|
|
- Person hub links to Event via `participated_in_events`\n- Temporal alignment: employment dates vs. organizational\
|
|
\ unit validity\n\n**Use Cases**:\n1. **Staff directories**: Document current and historical staff roles\n2. **Organizational\
|
|
\ provenance**: Track who managed departments/collections\n3. **Workforce history**: Analyze staffing patterns over\
|
|
\ time\n4. **Expertise tracking**: Find conservators, curators by specialization\n5. **Reorganization impact**: Track\
|
|
\ staff transitions during structural changes\n\n**Example - Conservation Staff**:\n\n```yaml\nPersonObservation:\n\
|
|
\ person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title: \"Senior Paintings Conservator\"\n is_or_was_affiliated_with:\
|
|
\ \".../org-unit/rm-conservation-division\"\n role_start_date: \"2013-03-01\"\n role_end_date: null # Still employed\n\
|
|
\ observation_source:\n source_type: \"Staff directory\"\n source_uri: \"https://rijksmuseum.nl/staff/jane-smith\"\
|
|
\n observation_date: \"2024-11-22\"\n```\n\n**Example - Staff Through Organizational Change**:\n\n```yaml\n# Before\
|
|
\ merger (2013-02-28)\nPersonObservation:\n person_name: \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title:\
|
|
\ \"Head, Paintings Conservation Department\"\n is_or_was_affiliated_with: \".../org-unit/rm-paintings-conservation\"\n role_start_date:\
|
|
\ \"2010-01-01\"\n role_end_date: \"2013-02-28\"\n\n# After merger (2013-03-01)\nPersonObservation:\n person_name:\
|
|
\ \"Dr. Jane Smith\"\n staff_role: CONSERVATOR\n role_title: \"Deputy Director, Conservation Division\"\n is_or_was_affiliated_with:\
|
|
\ \".../org-unit/rm-conservation-division\"\n role_start_date: \"2013-03-01\"\n role_end_date: null\n affected_by_event:\
|
|
\ \".../event/rm-conservation-merger-2013\"\n```\n"
|
|
exact_mappings:
|
|
- pico:PersonObservation
|
|
close_mappings:
|
|
- schema:Person
|
|
- schema:Role
|
|
- crm:E21_Person
|
|
- foaf:Person
|
|
- prov:Agent
|
|
slots:
|
|
- is_or_was_affected_by_event
|
|
- has_age
|
|
# REMOVED: birth_date - migrated to has_or_had_date_of_birth (Rule 53)
|
|
- has_or_had_date_of_birth
|
|
# REMOVED: birth_place - migrated to has_or_had_place_of_birth (Rule 53)
|
|
- has_or_had_place_of_birth
|
|
- contact_email
|
|
- created
|
|
- date_of_death
|
|
- death_place
|
|
- deceased
|
|
- expertise_area
|
|
- extraction_metadata
|
|
- gender_identity
|
|
- has_person_name
|
|
- id
|
|
- linkedin_profile_path
|
|
- linkedin_profile_url
|
|
- modified
|
|
- observation_source
|
|
- has_or_had_observation_source_document
|
|
- occupation
|
|
- person_name
|
|
- pronoun
|
|
- refers_to_person
|
|
- religion
|
|
- role_end_date
|
|
- role_start_date
|
|
- role_title
|
|
- specificity_annotation
|
|
- staff_role
|
|
- template_specificity
|
|
# REMOVED: unit_affiliation - migrated to is_or_was_affiliated_with (Rule 53)
|
|
- is_or_was_affiliated_with # was: unit_affiliation
|
|
- has_or_had_web_claim
|
|
slot_usage:
|
|
id:
|
|
range: uriorcurie
|
|
required: true
|
|
identifier: true
|
|
pattern: ^https://nde\.nl/ontology/hc/person-obs/[a-z0-9-]+/[a-z0-9-]+/[a-z0-9-]+$
|
|
person_name:
|
|
range: string
|
|
required: true
|
|
has_person_name:
|
|
range: PersonName
|
|
required: false
|
|
inlined: true
|
|
refers_to_person:
|
|
range: Person
|
|
required: false
|
|
comments:
|
|
- Required is false initially to allow PersonObservation without hub linkage
|
|
- Production data SHOULD always have this link for full PICO compliance
|
|
- 'Inverse relationship: Person.has_person_observation (implemented v0.9.8)'
|
|
has_or_had_date_of_birth:
|
|
description: >-
|
|
Birth date of the person using structured BirthDate class.
|
|
MIGRATED from birth_date slot (Rule 53).
|
|
|
|
Supports EDTF notation for uncertain/incomplete dates and
|
|
tracks provenance for inferred dates per Rule 45.
|
|
range: BirthDate
|
|
inlined: true
|
|
required: false
|
|
examples:
|
|
- value: |
|
|
birth_edtf: "1970-08-15"
|
|
is_inferred: false
|
|
confidence: HIGH
|
|
description: Full date known
|
|
- value: |
|
|
birth_edtf: "197X"
|
|
is_inferred: true
|
|
confidence: LOW
|
|
description: Decade inferred from career start
|
|
has_or_had_place_of_birth:
|
|
description: >-
|
|
Birth place of the person using structured BirthPlace class.
|
|
MIGRATED from birth_place slot (Rule 53).
|
|
|
|
Supports historical vs. modern place names and links to
|
|
GeoNames/Wikidata for geographic resolution.
|
|
range: BirthPlace
|
|
inlined: true
|
|
required: false
|
|
examples:
|
|
- value: |
|
|
place_name: Amsterdam
|
|
country_code: NL
|
|
geonames_id: 2759794
|
|
description: Birth place with geographic identifiers
|
|
- value: |
|
|
place_name: Batavia
|
|
modern_place_name: Jakarta
|
|
country_code: ID
|
|
description: Historical place name
|
|
death_place:
|
|
range: string
|
|
required: false
|
|
date_of_death:
|
|
range: TimeSpan
|
|
required: false
|
|
deceased:
|
|
range: boolean
|
|
required: false
|
|
has_age:
|
|
range: string
|
|
required: false
|
|
occupation:
|
|
range: string
|
|
multivalued: true
|
|
required: false
|
|
religion:
|
|
range: string
|
|
required: false
|
|
gender_identity:
|
|
range: string
|
|
required: false
|
|
pronoun:
|
|
range: string
|
|
required: false
|
|
staff_role:
|
|
range: StaffRole
|
|
required: true
|
|
role_title:
|
|
range: string
|
|
required: false
|
|
is_or_was_affiliated_with: # was: unit_affiliation - migrated per Rule 53
|
|
range: OrganizationUnit
|
|
required: false
|
|
description: |
|
|
The organizational unit this person is/was affiliated with.
|
|
MIGRATED from unit_affiliation per slot_fixes.yaml (Rule 53, 2026-01-15).
|
|
role_start_date:
|
|
range: date
|
|
required: false
|
|
role_end_date:
|
|
range: date
|
|
required: false
|
|
observation_source:
|
|
range: string
|
|
required: false
|
|
description: Simple text reference to source (use has_or_had_observation_source_document for structured data)
|
|
has_or_had_observation_source_document:
|
|
range: SourceDocument
|
|
required: false
|
|
inlined: true
|
|
is_or_was_affected_by_event:
|
|
range: OrganizationalChangeEvent
|
|
required: false
|
|
contact_email:
|
|
range: string
|
|
required: false
|
|
pattern: ^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
|
|
expertise_area:
|
|
range: string
|
|
multivalued: true
|
|
required: false
|
|
has_or_had_web_claim:
|
|
range: PersonWebClaim
|
|
multivalued: true
|
|
required: false
|
|
inlined: true
|
|
inlined_as_list: true
|
|
linkedin_profile_path:
|
|
range: string
|
|
required: false
|
|
linkedin_profile_url:
|
|
range: uri
|
|
required: false
|
|
extraction_metadata:
|
|
range: ExtractionMetadata
|
|
inlined: true
|
|
required: false
|
|
created:
|
|
range: datetime
|
|
modified:
|
|
range: datetime
|
|
comments:
|
|
- PiCo PersonObservation pattern adapted for institutional staff role tracking
|
|
- Focus on ROLES and AFFILIATIONS within heritage organizations
|
|
- NOT general biographical reconstruction (PiCo PersonReconstruction is separate concept)
|
|
- refers_to_person links observation to Person hub (core PICO pattern)
|
|
- Multiple observations from different sources can refer to same Person hub
|
|
- Temporal validity enables tracking staff through organizational changes
|
|
- 'Bidirectional links: staff → unit (is_or_was_affiliated_with), unit → staff (staff_members)'
|
|
- Person hub → Event via participated_in_events enables career event tracking
|
|
- 'Rule 26 compliance: web_claims slot enables verifiable provenance for person data'
|
|
- LinkedIn data stored separately in person/entity/ files (Rule 12, Rule 20)
|
|
examples:
|
|
- value: 'id: https://nde.nl/ontology/hc/person-obs/nl-nh-ams-m-rm/jane-smith/conservator-2013
|
|
|
|
person_name: Dr. Jane Smith
|
|
|
|
refers_to_person: https://nde.nl/ontology/hc/person/jane-smith
|
|
|
|
staff_role: CONSERVATOR
|
|
|
|
role_title: Deputy Director, Conservation Division
|
|
|
|
is_or_was_affiliated_with: https://nde.nl/ontology/hc/org-unit/rm-conservation-division
|
|
|
|
role_start_date: ''2013-03-01''
|
|
|
|
role_end_date: null
|
|
|
|
affected_by_event: https://nde.nl/ontology/hc/event/rm-conservation-merger-2013
|
|
|
|
'
|
|
description: Conservator promoted during department merger, linked to Person hub
|
|
- value: "id: https://nde.nl/ontology/hc/person-obs/nl-nh-ams-m-rm/taco-dibbits/director-2016\nperson_name: Taco Dibbits\n\
|
|
refers_to_person: https://nde.nl/ontology/hc/person/taco-dibbits\nstaff_role: DIRECTOR\nrole_title: General Director\n\
|
|
role_start_date: '2016-09-01'\nrole_end_date: null\nlinkedin_profile_url: https://www.linkedin.com/in/taco-dibbits\n\
|
|
linkedin_profile_path: data/custodian/person/entity/taco-dibbits_20250115T103000Z.json\nhas_or_had_web_claim:\n- person_claim_type:\
|
|
\ full_name\n person_claim_value: Taco Dibbits\n source_url: https://www.rijksmuseum.nl/en/about-us/organisation\n\
|
|
\ person_xpath: /html/body/main/section[2]/div[1]/h2\n retrieved_on: '2025-01-15T10:30:00Z'\n retrieval_agent:\
|
|
\ firecrawl\n person_xpath_match_score: 1.0\n- person_claim_type: role_title\n person_claim_value: General Director\n\
|
|
\ source_url: https://www.rijksmuseum.nl/en/about-us/organisation\n person_xpath: /html/body/main/section[2]/div[1]/p[1]\n\
|
|
\ retrieved_on: '2025-01-15T10:30:00Z'\n retrieval_agent: firecrawl\n person_xpath_match_score: 1.0\n"
|
|
description: Museum director with Person hub link and full web claim provenance (Rule 26 compliant)
|