glam/schemas/20251121/linkml/modules/classes/Timestamp.yaml
kempersc fc405445c6 Refactor and update schema definitions
- Removed obsolete slots: `has_or_had_custodian_observation`, `provider`, and `specificity_annotation`.
- Updated `has_or_had_score` slot to use `SpecificityScore` class and modified its description and examples.
- Added new slots: `end_seconds`, `end_time`, `has_archive_path`, `has_or_had_custodian_name`, `protocol_name`, and `protocol_version`.
- Introduced a script `check_annotation_types.py` to validate the presence and structure of `custodian_types` in YAML files.
- Added a script `update_specificity.py` to automate updates related to `SpecificityAnnotation` to `SpecificityScore`.
2026-02-01 19:55:38 +01:00

112 lines
No EOL
3.9 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/complies_or_complied_with
- ../slots/has_or_had_level # was: timestamp_precision
- ../slots/has_or_had_score # was: template_specificity
- ../slots/has_or_had_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` → is_or_was_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_or_had_timestamp # was: timestamp_value - migrated per Rule 53
- has_or_had_level # was: timestamp_precision - migrated per Rule 53
- complies_or_complied_with # was: calendar_system - migrated 2026-01-22
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
slot_usage:
has_or_had_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_or_had_level: # was: timestamp_precision - migrated per Rule 53
range: string
required: false
examples:
- value: year
- value: day
- value: second
complies_or_complied_with:
range: CalendarSystem
required: false
inlined: 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_or_had_timestamp: "1995"
has_or_had_level: year
- value: |
has_or_had_timestamp: "2024-06-15"
has_or_had_level: day
complies_or_complied_with:
- value: |
has_or_had_timestamp: "2024-06-15T14:30:00Z"
has_or_had_level: second
complies_or_complied_with: