All checks were successful
Deploy Frontend / build-and-deploy (push) Successful in 2m4s
Session 2026-01-19: Completed remaining migrations per Rules 53/56/60. Major migrations: 1. claim_type → has_or_had_type + ClaimType/ClaimTypes (60+ concrete types in 11 categories) 2. circumstances_of_death → is_deceased + DeceasedStatus + CauseOfDeath 3. claims_count → has_or_had_quantity + Quantity (with based_on_claim for provenance) 4. classification_status → has_or_had_type + ClassificationStatusType Created files: - ClaimType.yaml, ClaimTypes.yaml (abstract base + 60+ concrete subclasses) - DeceasedStatus.yaml, CauseOfDeath.yaml, CauseOfDeathTypeEnum.yaml - ClassificationStatus.yaml, ClassificationStatusType.yaml, ClassificationStatusTypes.yaml - CITESAppendix.yaml, City.yaml, CertaintyLevel.yaml - is_deceased.yaml, is_or_was_caused_by.yaml, based_on_claim.yaml Archived slots: - claim_type, circumstances_of_death, claims_count, classification_status Added Rule 60 to AGENTS.md: No Migration Deferral - agents MUST execute all migrations. All 527 slot_fixes.yaml entries now complete (100%).
140 lines
5.1 KiB
YAML
140 lines
5.1 KiB
YAML
# Thumbnail - Structured thumbnail media reference
|
|
#
|
|
# Created per slot_fixes.yaml thumbnail_url feedback migration (Rule 56)
|
|
# Creation date: 2026-01-16
|
|
# Updated: 2026-01-19 - Added derives_or_derived_from and has_or_had_time_interval
|
|
# for chapter_thumbnail_timestamp migration (Rule 53)
|
|
# Rule compliance: 50 (ontology mapping), 53 (no bespoke slots), 56 (semantic consistency)
|
|
|
|
id: https://nde.nl/ontology/hc/class/Thumbnail
|
|
name: Thumbnail
|
|
title: Thumbnail Media Reference
|
|
|
|
prefixes:
|
|
linkml: https://w3id.org/linkml/
|
|
hc: https://nde.nl/ontology/hc/
|
|
schema: http://schema.org/
|
|
foaf: http://xmlns.com/foaf/0.1/
|
|
prov: http://www.w3.org/ns/prov#
|
|
|
|
default_prefix: hc
|
|
|
|
imports:
|
|
- linkml:types
|
|
- ../slots/has_or_had_url
|
|
- ../slots/derives_or_derived_from
|
|
- ../slots/has_or_had_time_interval
|
|
- ./Video
|
|
- ./TimeInterval
|
|
|
|
classes:
|
|
Thumbnail:
|
|
class_uri: schema:ImageObject
|
|
description: |
|
|
Structured thumbnail media reference.
|
|
|
|
**DEFINITION**:
|
|
A thumbnail is a reduced-size version of an image or video frame,
|
|
typically used for preview purposes in search results, galleries,
|
|
and navigation interfaces.
|
|
|
|
**DERIVATION FROM VIDEO** (2026-01-19 migration):
|
|
When a thumbnail is extracted from a video, use:
|
|
- `derives_or_derived_from` → Video (source video reference)
|
|
- `has_or_had_time_interval` → TimeInterval (frame timestamp)
|
|
|
|
This replaces the deprecated `chapter_thumbnail_timestamp` float field
|
|
with a structured representation that supports:
|
|
- Explicit source video reference (provenance)
|
|
- Precise timestamp with ISO 8601 duration format
|
|
- Multiple timestamp formats (seconds, HH:MM:SS, ISO duration)
|
|
|
|
**CONSISTENCY PATTERN** (Rule 56):
|
|
Uses structured class rather than simple URL for consistency with
|
|
other media reference patterns and extensibility:
|
|
|
|
| Slot | Class | Purpose |
|
|
|------|-------|---------|
|
|
| has_or_had_image | Image | Full-size images |
|
|
| has_or_had_video | Video | Video resources |
|
|
| has_or_had_audio | Audio | Audio resources |
|
|
| has_or_had_thumbnail | Thumbnail | Preview images |
|
|
|
|
**EXTENSIBILITY**:
|
|
Structured class enables future metadata:
|
|
- Image dimensions (width, height)
|
|
- Alternative text for accessibility
|
|
- Format (JPEG, PNG, WebP)
|
|
- Generation timestamp
|
|
- Source image/video reference
|
|
|
|
**ONTOLOGY ALIGNMENT**:
|
|
- **Primary**: `schema:ImageObject` (Schema.org)
|
|
- **Close**: `foaf:Image` (FOAF)
|
|
- **Derivation**: `prov:wasDerivedFrom` (PROV-O)
|
|
|
|
slots:
|
|
- has_or_had_url
|
|
- derives_or_derived_from
|
|
- has_or_had_time_interval
|
|
|
|
slot_usage:
|
|
has_or_had_url:
|
|
required: true
|
|
description: URL of the thumbnail image
|
|
examples:
|
|
- value: "https://i.ytimg.com/vi/ABC123/hq1.jpg"
|
|
description: YouTube thumbnail URL
|
|
derives_or_derived_from:
|
|
description: |
|
|
Source video from which this thumbnail was extracted.
|
|
Use when the thumbnail represents a specific video frame.
|
|
range: Video
|
|
inlined: true
|
|
required: false
|
|
examples:
|
|
- value:
|
|
has_or_had_url: "https://www.youtube.com/watch?v=ABC123"
|
|
description: Thumbnail derived from YouTube video
|
|
has_or_had_time_interval:
|
|
description: |
|
|
Timestamp in the source video from which this thumbnail was extracted.
|
|
Captures the frame time as a duration from video start.
|
|
|
|
**MIGRATION NOTE**: Replaces deprecated `chapter_thumbnail_timestamp` float.
|
|
The float value (seconds) should be converted to ISO 8601 duration format.
|
|
|
|
Example conversions:
|
|
- 122.5 seconds → PT2M2.5S (2 minutes, 2.5 seconds)
|
|
- 3600 seconds → PT1H (1 hour)
|
|
range: TimeInterval
|
|
inlined: true
|
|
required: false
|
|
examples:
|
|
- value:
|
|
duration_value: "PT2M2.5S"
|
|
duration_description: "Thumbnail from 2:02.5 in video"
|
|
description: Frame extracted at 122.5 seconds
|
|
|
|
exact_mappings:
|
|
- foaf:Image
|
|
|
|
annotations:
|
|
specificity_score: "0.40"
|
|
specificity_rationale: "Medium specificity - thumbnails used broadly for media preview."
|
|
migration_date: "2026-01-16"
|
|
migration_updated: "2026-01-19"
|
|
migration_rule: "Rule 53 (no bespoke slots), Rule 56 (semantic consistency)"
|
|
|
|
examples:
|
|
- value:
|
|
has_or_had_url: "https://example.org/thumbnails/rijksmuseum-night-watch-thumb.jpg"
|
|
description: "Simple thumbnail with URL only"
|
|
- value:
|
|
has_or_had_url: "https://i.ytimg.com/vi/ABC123/hq1.jpg"
|
|
derives_or_derived_from:
|
|
has_or_had_url: "https://www.youtube.com/watch?v=ABC123"
|
|
has_or_had_time_interval:
|
|
duration_value: "PT2M2.5S"
|
|
duration_description: "Frame at 2:02.5"
|
|
description: "Video-derived thumbnail with timestamp (replaces chapter_thumbnail_timestamp: 122.5)"
|