id: https://nde.nl/ontology/hc/class/CustodianTimelineEvent name: CustodianTimelineEvent title: Custodian Timeline Event Class - Organizational Change Events prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ dcterms: http://purl.org/dc/terms/ prov: http://www.w3.org/ns/prov# xsd: http://www.w3.org/2001/XMLSchema# crm: http://www.cidoc-crm.org/cidoc-crm/ tooi: https://identifier.overheid.nl/tooi/def/ont/ skos: http://www.w3.org/2004/02/skos/core# rdfs: http://www.w3.org/2000/01/rdf-schema# org: http://www.w3.org/ns/org# imports: - linkml:types - ../slots/has_provenance - ../slots/degree_of_certainty - ../slots/has_description - ../slots/has_file_location - ../slots/has_level - ../slots/has_method - ../slots/has_note - ../slots/has_score - ../slots/has_type - ../slots/approximate - ../slots/retrieved_through - ../slots/based_on - ../slots/has_url - ../slots/temporal_extent - ../enums/OrganizationalChangeEventTypeEnum - ../enums/TimelineExtractionMethodEnum default_prefix: hc classes: CustodianTimelineEvent: class_uri: prov:Entity description: "An organizational change event for a heritage custodian.\n\n**PURPOSE**\n\nCaptures organizational change events (founding, mergers, name changes, etc.)\nas domain entities, independent of how they were discovered.\n\n**SOURCE-AGNOSTIC DESIGN**\n\nThis class models WHAT happened, not HOW we know. For source-specific\nprovenance, use observation classes:\n\n- `WebObservation` - For web-scraped data with XPath or API provenance\n- `CustodianObservation` - For institutional source documents\n\nThe optional `observation_ref` slot links events to their source observations\nwhen detailed provenance is needed.\n\n**DATA QUALITY**\n\nUse `has_level` (DataTierLevel) to indicate trustworthiness:\n- TIER_4_INFERRED: Initial extraction (LLM-generated, unverified)\n- TIER_3_CROWD_SOURCED: Verified against Wikipedia/Wikidata\n- TIER_2_VERIFIED: Verified against institutional website\n- TIER_1_AUTHORITATIVE: Verified against official registry\n\nUse `extraction_notes` to capture\ \ source-specific details:\n- API queries and responses\n- XPath locations in archived HTML\n- Wikidata property references\n- Manual research notes\n\n**EVENT TYPE MAPPING**\n\nEvents are classified using OrganizationalChangeEventTypeEnum:\n- FOUNDING: Institution creation (opgericht, gesticht)\n- MERGER: Multiple institutions combining (fusie, samenvoeging)\n- DISSOLUTION: Institution closure (opgeheven, gesloten)\n- RENAMING: Name change only (hernoemd, naamswijziging)\n- TRANSFER: Physical relocation (verhuisd, verplaatst)\n- EXPANSION: Absorbing other units (uitgebreid, geabsorbeerd)\n- SPLIT: Division into multiple units (opgesplitst)\n- SPIN_OFF: Parts becoming independent (afgesplitst)\n- REDUCTION: Scope decrease (ingekrompen)\n- REORGANIZATION: Complex restructuring (herstructurering)\n\n**EXCLUDED EVENT TYPES**\n\nSome patterns are NOT mapped to events:\n- predecessor: This is a relationship, not an event\n- friends_org: Separate organization (Vrienden van...)\n- reopening:\ \ Not in OrganizationalChangeEventTypeEnum\n\n**EXAMPLE USAGE**\n\n```yaml\ntimeline_events:\n - event_type: FOUNDING\n event_date: \"2005-04-30\"\n degree_of_certainty:\n has_code: DAY\n approximate:\n approximation_level: EXACT\n description: >-\n Het RHC Drents Archief werd opgericht op 30 april 2005.\n Het is de voortzetting van het Rijksarchief in Drenthe (sinds 2000).\n source_url:\n - \"https://nl.wikipedia.org/wiki/Drents_Archief\"\n - \"https://bizzy.ai/nl/nl/52454037/regionaal-historisch-centrum-rhc-drents-archief\"\n extraction_method: api_response_regex\n extraction_timestamp: \"2025-12-16T10:00:00Z\"\n extraction_notes: >-\n Query: \"Regionaal Historisch Centrum (RHC) Drents Archief\" Assen opgericht\n Answer archived at: web/0002/linkup/linkup_founding_20251215T160438Z.json\n archive_path: web/0002/linkup/linkup_founding_20251215T160438Z.json\n has_level:\n has_code:\ \ TIER_4_INFERRED\n```\n" broad_mappings: - prov:Entity close_mappings: - crm:E5_Event - tooi:Wijzigingsgebeurtenis - schema:Event slots: - approximate - has_provenance - has_level - degree_of_certainty - has_description - temporal_extent - has_type - has_method - has_note - retrieved_through - based_on - has_url - has_score slot_usage: has_type: required: true range: OrganizationalChangeEventTypeEnum temporal_extent: range: TimeSpan inlined: true examples: - value: begin_of_the_begin: '2005-04-30' end_of_the_end: '2005-04-30' degree_of_certainty: range: DatePrecision inlined: true required: true description: 'Precision level of the event date. Standard codes: DAY, MONTH, YEAR, DECADE, CENTURY, UNKNOWN' examples: - value: has_code: DAY has_description: Full date with day precision - value: has_code: YEAR has_description: Year-only precision approximate: range: ApproximationStatus inlined: true required: true examples: - value: has_status: EXACT - value: has_status: APPROXIMATE has_label: circa 1880 has_description: Founding date known only to year has_url: required: false has_method: required: true range: TimelineExtractionMethodEnum retrieved_through: range: RetrievalEvent inlined: true required: true has_note: required: false has_level: # range: string inlined: false # Fixed invalid inline for primitive type required: true description: 'Data quality tier indicating trustworthiness of this event data. Standard codes: TIER_1_AUTHORITATIVE, TIER_2_VERIFIED, TIER_3_CROWD_SOURCED, TIER_4_INFERRED' examples: - value: has_code: TIER_4_INFERRED has_description: Extracted via LLM - pending verification - value: has_code: TIER_2_VERIFIED has_description: Verified against institutional website based_on: required: false comments: - 'Source-agnostic design - see Rule 37: Provenance Separation' - Use observation_ref to link to detailed source provenance - Use extraction_notes for source-specific details (API queries, XPaths) - Event types constrained to OrganizationalChangeEventTypeEnum - Use CIDOC-CRM TimeSpan for fuzzy dates if needed see_also: - schemas/20251121/linkml/modules/classes/WebObservation.yaml - schemas/20251121/linkml/modules/classes/CustodianObservation.yaml - schemas/20251121/linkml/modules/classes/TimeSpan.yaml - .opencode/PROVENANCE_SEPARATION_RULE.md examples: - value: event_type: FOUNDING temporal_extent: begin_of_the_begin: '2005-04-30' end_of_the_end: '2005-04-30' degree_of_certainty: has_code: DAY has_description: Full date with day precision approximate: has_status: EXACT source_url: - https://nl.wikipedia.org/wiki/Drents_Archief has_method: api_response_regex extraction_timestamp: '2025-12-16T10:00:00Z' extraction_notes: 'Query: "Drents Archief" Assen opgericht OR gesticht API: Linkup. Archived at: web/0002/linkup/linkup_founding_20251215T160438Z.json' archive_path: web/0002/linkup/linkup_founding_20251215T160438Z.json has_level: has_code: TIER_4_INFERRED has_description: Extracted via API response - pending verification - value: has_type: MERGER temporal_extent: begin_of_the_begin: '2005' end_of_the_end: '2005' degree_of_certainty: has_code: YEAR has_description: Year-only precision approximate: has_status: EXACT source_url: - https://nl.wikipedia.org/wiki/Drents_Archief has_method: api_response_regex retrieved_through: temporal_extent: begin_of_the_begin: '2025-12-16T10:05:00Z' end_of_the_end: '2025-12-16T10:05:00Z' has_level: has_code: TIER_4_INFERRED has_description: Extracted via API - pending verification - value: has_type: FOUNDING temporal_extent: begin_of_the_begin: '1810' end_of_the_end: '1810' degree_of_certainty: has_code: YEAR has_description: Year-only precision approximate: has_status: EXACT source_url: - https://www.wikidata.org/wiki/Q190804 has_method: wikidata_sparql retrieved_through: temporal_extent: begin_of_the_begin: '2025-12-20T14:30:00Z' end_of_the_end: '2025-12-20T14:30:00Z' extraction_notes: Wikidata P571 (inception date) query has_level: has_code: TIER_3_CROWD_SOURCED has_description: Verified against Wikidata - value: has_type: TRANSFER temporal_extent: begin_of_the_begin: '1885' end_of_the_end: '1885' degree_of_certainty: has_code: YEAR has_description: Year-only precision approximate: has_status: EXACT source_url: has_method: web_scrape_xpath retrieved_through: temporal_extent: begin_of_the_begin: '2025-12-20T15:00:00Z' end_of_the_end: '2025-12-20T15:00:00Z' extraction_notes: 'XPath: /html/body/main/section[2]/div/p[3]' archive_path: web/0001/rijksmuseum.nl/about-us/rendered.html has_level: has_code: TIER_2_VERIFIED has_description: Verified against institutional website - value: has_type: FOUNDING temporal_extent: begin_of_the_begin: '1880' end_of_the_end: '1880' degree_of_certainty: has_code: YEAR has_description: Year-only precision approximate: has_status: APPROXIMATE has_label: circa 1880 has_description: Founding date derived from secondary sources, exact year uncertain has_method: manual_research retrieved_through: temporal_extent: begin_of_the_begin: '2025-12-20T16:00:00Z' end_of_the_end: '2025-12-20T16:00:00Z' has_level: has_code: TIER_4_INFERRED has_description: Manual research - pending verification annotations: specificity_score: 0.1 specificity_rationale: Generic utility class/slot created during migration custodian_types: "['*']"