id: https://nde.nl/ontology/hc/class/Timestamp name: timestamp_class title: Timestamp Class prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ time: http://www.w3.org/2006/time# xsd: http://www.w3.org/2001/XMLSchema# crm: http://www.cidoc-crm.org/cidoc-crm/ schema: http://schema.org/ default_prefix: hc imports: - linkml:types - ../metadata - ../slots/comply_with - ../slots/has_level # was: timestamp_precision - ../slots/has_score # was: template_specificity - ../slots/has_timestamp # was: timestamp_value classes: Timestamp: class_uri: time:Instant description: | A point in time with optional precision and calendar metadata. **Purpose**: Timestamp provides a reusable class for representing temporal instants with explicit precision indicators. This supports EDTF-style partial dates (year-only, year-month, full date, datetime) and calendar system annotation for non-Gregorian dates. **Ontological Alignment**: - **Primary**: `time:Instant` - OWL Time instant - **Close**: `crm:E61_Time_Primitive` - CIDOC-CRM time primitive - **Related**: `xsd:dateTime` - XML Schema dateTime **Use Cases**: - Beginning/ending of time spans (TimeSpan.begin_of_the_begin, etc.) - Validity dates (valid_from, valid_to) - Update timestamps (updated_at, created_at) - Historical dates with varying precision **Precision Levels**: - year: "1995" (EDTF: "1995") - month: "1995-06" (EDTF: "1995-06") - day: "1995-06-15" (EDTF: "1995-06-15") - datetime: "1995-06-15T10:30:00" (full precision) **Replaces** (per slot_fixes.yaml): - `valid_to_geo` → TimeSpan.end_of_the_end: Timestamp - `valid_to` → TimeSpan.end_of_the_end: Timestamp - `valid_from_geo` → TimeSpan.begin_of_the_begin: Timestamp - `valid_from` → TimeSpan.begin_of_the_begin: Timestamp - `updated_at` → last_updated_at: TimeSpan - `unesco_inscription_year` → TimeSpan.begin_of_the_begin: Timestamp exact_mappings: - time:Instant close_mappings: - crm:E61_Time_Primitive related_mappings: - xsd:dateTime - schema:DateTime slots: - has_timestamp # was: timestamp_value - migrated per Rule 53 - has_level # was: timestamp_precision - migrated per Rule 53 - comply_with # was: calendar_system - migrated 2026-01-22 - has_score # was: template_specificity - migrated per Rule 53 (2026-01-17) slot_usage: has_timestamp: # was: timestamp_value - migrated per Rule 53 has_score: # range: string required: true pattern: "^-?\\d{4}(-\\d{2})?(-\\d{2})?(T\\d{2}:\\d{2}(:\\d{2})?(\\.\\d+)?(Z|[+-]\\d{2}:\\d{2})?)?$" has_level: # was: timestamp_precision - migrated per Rule 53 # range: string required: false examples: - value: year - value: day - value: second comply_with: range: CalendarSystem required: false inlined: true inlined_as_list: true examples: - value: - value: annotations: custodian_types: '["*"]' custodian_types_rationale: Generic timestamp class applicable to all types. custodian_types_primary: null specificity_score: 0.15 specificity_rationale: Very broadly applicable generic class for temporal points. examples: - value: | has_timestamp: "1995" has_level: year - value: | has_timestamp: "2024-06-15" has_level: day comply_with: - value: | has_timestamp: "2024-06-15T14:30:00Z" has_level: second comply_with: