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

63 lines
3.7 KiB
YAML

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/derive_from
- ../slots/has_time_interval
- ../slots/has_url
classes:
Thumbnail:
class_uri: schema:ImageObject
description: "Structured thumbnail media reference.\n\n**DEFINITION**:\nA thumbnail is a reduced-size version of an image or video frame,\ntypically used for preview purposes in search results, galleries,\nand navigation interfaces.\n\n**DERIVATION FROM VIDEO** (2026-01-19 migration):\nWhen a thumbnail is extracted from a video, use:\n- `derive_from` \u2192 Video (source video reference)\n- `has_time_interval` \u2192 TimeInterval (frame timestamp)\n\nThis replaces the deprecated `chapter_thumbnail_timestamp` float field\nwith a structured representation that supports:\n- Explicit source video reference (provenance)\n- Precise timestamp with ISO 8601 duration format\n- Multiple timestamp formats (seconds, HH:MM:SS, ISO duration)\n\n**CONSISTENCY PATTERN** (Rule 56):\nUses structured class rather than simple URL for consistency with\nother media reference patterns and extensibility:\n\n| Slot | Class | Purpose |\n|------|-------|---------|\n| has_image | Image\
\ | Full-size images |\n| has_video | Video | Video resources |\n| has_audio | Audio | Audio resources |\n| has_thumbnail | Thumbnail | Preview images |\n\n**EXTENSIBILITY**:\nStructured class enables future metadata:\n- Image dimensions (width, height)\n- Alternative text for accessibility\n- Format (JPEG, PNG, WebP)\n- Generation timestamp\n- Source image/video reference\n\n**ONTOLOGY ALIGNMENT**:\n- **Primary**: `schema:ImageObject` (Schema.org)\n- **Close**: `foaf:Image` (FOAF)\n- **Derivation**: `prov:wasDerivedFrom` (PROV-O)\n"
slots:
- has_url
- derive_from
- has_time_interval
slot_usage:
has_url:
required: true
examples:
- value: https://i.ytimg.com/vi/ABC123/hq1.jpg
derive_from:
range: Video
inlined: true
required: false
examples:
- value:
has_url: https://www.youtube.com/watch?v=ABC123
has_time_interval:
description: "Timestamp in the source video from which this thumbnail was extracted.\nCaptures the frame time as a duration from video start.\n\n**MIGRATION NOTE**: Replaces deprecated `chapter_thumbnail_timestamp` float.\nThe float value (seconds) should be converted to ISO 8601 duration format.\n\nExample conversions:\n- 122.5 seconds \u2192 PT2M2.5S (2 minutes, 2.5 seconds)\n- 3600 seconds \u2192 PT1H (1 hour)\n"
range: TimeInterval
inlined: true
required: false
examples:
- value:
duration_description: Thumbnail from 2:02.5 in video
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)
custodian_types: "['*']"
examples:
- value:
has_url: https://example.org/thumbnails/rijksmuseum-night-watch-thumb.jpg
- value:
has_url: https://i.ytimg.com/vi/ABC123/hq1.jpg
derive_from:
has_url: https://www.youtube.com/watch?v=ABC123
has_time_interval:
duration_description: Frame at 2:02.5
description: 'Video-derived thumbnail with timestamp (replaces chapter_thumbnail_timestamp: 122.5)'