glam/schemas/20251121/linkml/modules/classes/Timestamp.yaml

113 lines
No EOL
3.7 KiB
YAML

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
# 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: