glam/schemas/20251121/linkml/modules/classes/VideoChapter.yaml
kempersc c51b3e1cbf Refactor chapter slots and migrate to generic slots
- Deleted obsolete chapter slots: chapter_description, chapter_end_seconds, chapter_end_time, chapter_id, chapter_index, chapter_source, chapter_start_seconds, chapter_start_time, humidity_tolerance, parent_chapter_id.
- Archived previous versions of deleted slots for reference.
- Introduced new generic slots: end_seconds, end_time, has_or_had_parent, has_or_had_sequence_index to streamline schema and improve consistency.
- Updated descriptions and mappings for new slots to ensure clarity and maintain functionality.
2026-01-28 12:16:48 +01:00

242 lines
10 KiB
YAML

id: https://nde.nl/ontology/hc/class/VideoChapter
name: video_chapter_class
title: Video Chapter Class
imports:
- linkml:types
- ./VideoTimeSegment
- ../slots/specificity_annotation
- ./SpecificityAnnotation
- ../slots/has_or_had_score
- ./TemplateSpecificityScore
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
- ./AutoGeneration
- ../enums/ChapterSourceEnum
- ../slots/is_or_was_created_through
- ../slots/has_or_had_description
- ../slots/end_seconds
- ../slots/end_time
- ../slots/has_or_had_identifier
- ../slots/has_or_had_sequence_index
- ../slots/has_or_had_source
- ../slots/start_seconds
- ../slots/start_time
- ../slots/has_or_had_thumbnail
- ./Thumbnail
- ./Video
- ./TimeInterval
- ../slots/has_or_had_label
- ./Label
- ../slots/nesting_level
- ../slots/has_or_had_parent
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
dcterms: http://purl.org/dc/terms/
prov: http://www.w3.org/ns/prov#
crm: http://www.cidoc-crm.org/cidoc-crm/
oa: http://www.w3.org/ns/oa#
ma: http://www.w3.org/ns/ma-ont#
wd: http://www.wikidata.org/entity/
default_prefix: hc
classes:
VideoChapter:
class_uri: schema:Clip
abstract: false
description: "A named chapter or section within a video, defined by temporal boundaries.\n\n**DEFINITION**:\n\nVideoChapter represents a titled segment of video content, typically used for\nnavigation and content organization. Chapters appear in video player interfaces\n(YouTube chapters, Vimeo chapters) allowing viewers to jump to specific sections.\n\n**PLATFORM SUPPORT**:\n\n| Platform | Chapter Support | Auto-Generated | Custom Thumbnails |\n|----------|-----------------|----------------|-------------------|\n| YouTube | Yes (2020+) | Yes | No (keyframe) |\n| Vimeo | Yes | No | Yes |\n| Facebook | Limited | No | No |\n| Wistia | Yes | No | Yes |\n\n**YOUTUBE CHAPTER REQUIREMENTS**:\n\nFor YouTube to recognize chapters:\n- First chapter MUST start at 0:00\n- Minimum 3 chapters required\n- Each chapter must be at least 10 seconds\n- Timestamps in description in `MM:SS` or `HH:MM:SS` format\n\n**HERITAGE INSTITUTION USE CASES**:\n\n| Content Type | Chapter Examples |\n|--------------|------------------|\n\
| Virtual tour | \"Main Hall\", \"Dutch Masters\", \"Gift Shop\" |\n| Conservation | \"Assessment\", \"Cleaning\", \"Retouching\", \"Varnishing\" |\n| Interview | \"Introduction\", \"Early Career\", \"Major Works\", \"Legacy\" |\n| Exhibition | \"Curator Introduction\", \"Theme 1\", \"Theme 2\", \"Conclusion\" |\n| Lecture | \"Overview\", \"Case Study 1\", \"Case Study 2\", \"Q&A\" |\n\n**AUTO-GENERATED VS MANUAL CHAPTERS**:\n\n| Source | Characteristics | Quality |\n|--------|-----------------|---------|\n| Manual (creator) | Semantic, meaningful titles | High |\n| YouTube AI | Scene-based, generic titles | Variable |\n| Third-party tools | Transcript-based, keyword titles | Medium |\n\nThe `auto_generated` flag distinguishes these sources.\n\n**RELATIONSHIP TO VideoTimeSegment**:\n\nVideoChapter USES VideoTimeSegment for temporal boundaries rather than\nextending it. This composition pattern allows:\n- Reuse of segment validation (start < end)\n- Consistent time representation across\
\ schema\n- Separation of structural (chapter) and temporal (segment) concerns\n\n**MEDIA FRAGMENTS URI**:\n\nChapters can be addressed via W3C Media Fragments:\n```\nhttps://youtube.com/watch?v=ABC123#t=120,300\n```\nCorresponds to chapter starting at 2:00, ending at 5:00.\n\n**NESTED CHAPTERS**:\n\nSome platforms support hierarchical chapters (parent/child).\nUse `parent_chapter_id` for nested structure:\n\n```\nChapter 1: Dutch Golden Age\n \u2514\u2500 1.1: Rembrandt\n \u2514\u2500 1.2: Vermeer\nChapter 2: Modern Art\n```\n"
exact_mappings:
- schema:Clip
close_mappings:
- ma:MediaFragment
- crm:E52_Time-Span
related_mappings:
- wikidata:Q1454986
slots:
- is_or_was_created_through
- has_or_had_description
- end_seconds
- end_time
- has_or_had_identifier
- has_or_had_sequence_index
- has_or_had_source
- start_seconds
- start_time
- has_or_had_thumbnail
- has_or_had_label
- nesting_level
- has_or_had_parent
- specificity_annotation
- has_or_had_score
slot_usage:
has_or_had_identifier:
range: string
required: true
description: 'MIGRATED from chapter_id per Rule 53 (2026-01-28).'
examples:
- value: ABC123_chapter_0
description: First chapter of video ABC123
- value: 550e8400-e29b-41d4-a716-446655440000
description: UUID-based chapter ID
has_or_had_label:
description: 'MIGRATED from chapter_title per slot_fixes.yaml (Rule 53/56, 2026-01-18).
Title of the chapter as displayed to viewers.
Uses Label class for structured chapter titles with optional language tagging.
'
range: Label
inlined: true
required: true
examples:
- value:
has_or_had_label: De Nachtwacht (The Night Watch)
language: nl
description: Chapter about specific artwork
- value:
has_or_had_label: 'Curator Interview: Conservation Process'
language: en
description: Interview segment chapter
has_or_had_sequence_index:
range: integer
required: true
minimum_value: 0
description: 'MIGRATED from chapter_index per Rule 53 (2026-01-28).'
examples:
- value: 0
description: First chapter
- value: 5
description: Sixth chapter (zero-indexed)
has_or_had_description:
range: string
required: false
description: 'MIGRATED from chapter_description per Rule 53 (2026-01-28).'
examples:
- value: Dr. Dibbits discusses the restoration of Rembrandt's masterpiece, including the controversial 2019 operation.
description: Detailed chapter description
start_seconds:
range: float
required: true
minimum_value: 0.0
description: 'MIGRATED from chapter_start_seconds per Rule 53 (2026-01-28).'
examples:
- value: 0.0
description: First chapter starts at video beginning
- value: 120.5
description: Chapter starts at 2:00.5
end_seconds:
range: float
required: false
minimum_value: 0.0
description: 'MIGRATED from chapter_end_seconds per Rule 53 (2026-01-28).'
examples:
- value: 120.0
description: Chapter ends at 2:00
start_time:
range: string
required: false
pattern: ^PT(\d+H)?(\d+M)?(\d+(\.\d+)?S)?$
description: 'MIGRATED from chapter_start_time per Rule 53 (2026-01-28).'
examples:
- value: PT0S
description: Start of video
- value: PT10M30S
description: 10 minutes 30 seconds
end_time:
range: string
required: false
pattern: ^PT(\d+H)?(\d+M)?(\d+(\.\d+)?S)?$
description: 'MIGRATED from chapter_end_time per Rule 53 (2026-01-28).'
examples:
- value: PT5M0S
description: 5 minutes
is_or_was_created_through:
description: Whether this chapter was auto-generated by AI/platform algorithms
range: boolean
required: false
examples:
- value: false
description: Manual creator-defined chapter
- value: true
description: YouTube AI auto-generated
has_or_had_source:
range: ChapterSourceEnum
required: false
description: 'MIGRATED from chapter_source per Rule 53 (2026-01-28).'
examples:
- value: MANUAL
description: Creator manually added chapters
has_or_had_thumbnail:
description: 'MIGRATED from chapter_thumbnail_url per slot_fixes.yaml (Rule 53, 2026-01-18).
UPDATED 2026-01-19: chapter_thumbnail_timestamp now captured via Thumbnail.has_or_had_time_interval.
Thumbnail image for this chapter, used for preview in video players.
Uses Thumbnail class for structured representation with:
- URL of the thumbnail image
- derives_or_derived_from: source Video reference
- has_or_had_time_interval: frame timestamp as TimeInterval
**Platform Behavior**:
- YouTube: Auto-selects keyframe from chapter start
- Vimeo: Allows custom chapter thumbnails
'
range: Thumbnail
inlined: true
required: false
examples:
- value:
has_or_had_url: https://i.ytimg.com/vi/ABC123/hq1.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 (was chapter_thumbnail_timestamp: 122.5)'
description: Thumbnail with source video and timestamp (replaces chapter_thumbnail_timestamp)
has_or_had_parent:
range: string
required: false
description: 'MIGRATED from parent_chapter_id per Rule 53 (2026-01-28).'
examples:
- value: ABC123_chapter_0
description: This is a sub-chapter of chapter 0
nesting_level:
range: integer
required: false
minimum_value: 0
examples:
- value: 0
description: Top-level chapter
- value: 1
description: Sub-chapter
comments:
- Models video chapters for navigation (YouTube chapters, etc.)
- Supports both manual and auto-generated chapters
- Temporal boundaries via composition with VideoTimeSegment pattern
- Hierarchical chapters supported via parent_chapter_id
- Schema.org Clip alignment for semantic web compatibility
see_also:
- https://support.google.com/youtube/answer/9884579
- https://schema.org/Clip
- https://www.w3.org/TR/media-frags/
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class/slot created during migration
custodian_types:
- '*'
custodian_types_rationale: Universal utility concept