glam/frontend/public/schemas/20251121/linkml/modules/classes/YoutubeVideo.yaml
kempersc 776462de90 Migrate multiple slots to enhance semantic clarity and align with best practices
- Migrated catering_type to CateringType with subclasses for better classification.
- Updated certainty_level to has_or_had_level for improved metadata consistency.
- Addressed cessation_observed_in by confirming existing temporal data structure.
- Created NetAsset class and updated financial statements for richer financial modeling.
- Completed migrations for default_access_policy, default_audio_language, and default_language to structured classes.
- Migrated default_position to structured Alignment class for better representation.
- Updated defined_by_standard to broaden range for identifier standards.
- Migrated definition to structured Resolution class for video resolution modeling.
- Completed migrations for degree_name, deliverable, and departement_code to structured classes.
- Migrated deployment_date to structured DeploymentEvent with temporal extent.
- Migrated derived_from_entity and derived_from_observation to new reference structures.
- Completed description and description_text migrations to enhance content modeling.
- Migrated detection_count, detection_level, and detection_threshold to structured slots with classes.
- Migrated device-related slots to structured classes for better identification and classification.
- Added new slots and classes for historic building and web address modeling.
2026-01-25 12:47:38 +01:00

173 lines
6.6 KiB
YAML

# YoutubeVideo - Individual YouTube video metadata
# Extracted from custodian_source.yaml per Rule 38 (modular schema files)
# Extraction date: 2026-01-08
id: https://nde.nl/ontology/hc/classes/YoutubeVideo
name: YoutubeVideo
title: YoutubeVideo
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
xsd: http://www.w3.org/2001/XMLSchema#
imports:
- linkml:types
- ./Tag # for tag migration per Rule 53/56 (2026-01-16)
- ./Quantity # for comment_count migration per Rule 53 (2026-01-18)
- ./SourceCommentCount # for comments_fetched migration per Rule 53 (2026-01-22)
- ./Timestamp # for comments_fetched migration per Rule 53 (2026-01-22)
- ./YoutubeComment
- ./YoutubeTranscript
# ADDED 2026-01-24: for default_audio_language, default_language migration (Rule 53)
- ../slots/has_or_had_language
- ./Language
default_range: string
classes:
YoutubeVideo:
description: >-
Individual YouTube video metadata including video ID, title, description,
view/like/comment counts, duration, thumbnail, tags, and associated
comments and transcripts.
Ontology mapping rationale:
- class_uri is schema:VideoObject because this represents a video
as a media object on YouTube.
- close_mappings includes schema:MediaObject as the broader media
object category.
- related_mappings includes prov:Entity for provenance tracking and
schema:CreativeWork as videos are creative works.
class_uri: schema:VideoObject
close_mappings:
- schema:MediaObject
related_mappings:
- prov:Entity
- schema:CreativeWork
attributes:
video_id:
range: string
required: true
video_url:
range: uri
title:
range: string
published_at:
range: datetime
view_count:
range: integer
like_count:
range: integer
# MIGRATED 2026-01-18: comment_count → has_or_had_quantity + Quantity (Rule 53)
# comment_count:
# range: integer
has_or_had_quantity:
range: Quantity
multivalued: true
inlined_as_list: true
description: |
MIGRATED from comment_count (2026-01-18, Rule 53).
Quantified metrics for video content using structured Quantity class.
Supports measurement unit and temporal extent for point-in-time observation.
video_description:
range: string
duration:
range: string
description: ISO 8601 duration format
thumbnail_url:
range: uri
# MIGRATED 2026-01-24: definition → has_or_had_resolution + Resolution (Rule 53)
has_or_had_resolution:
range: Resolution
inlined: true
description: |
Video resolution/quality. MIGRATED from 'definition' slot per Rule 53.
Uses Resolution class with resolution_class (hd, sd, 4k, 8k), width, height.
caption_available:
range: boolean
description: Whether captions are available
# was: tag (string) - migrated per Rule 53/56 (2026-01-16)
is_or_was_categorized_as:
range: Tag
multivalued: true
inlined_as_list: true
description: |
Video tags - migrated from string tag attribute to structured Tag class.
Enables rich tag metadata including platform, hashtag flags, multilingual labels.
# MIGRATED 2026-01-24: default_language, default_audio_language → has_or_had_language (Rule 53)
# Use Language class with language_code and is_primary/language_purpose to distinguish
has_or_had_language:
range: Language
inlined: true
multivalued: true
description: |
Language information for video content.
MIGRATED from default_language and default_audio_language per Rule 53.
Use language_purpose to distinguish content vs audio language.
category_id:
range: string
description: YouTube category ID
live_broadcast_content:
range: string
description: Live broadcast status (none, live, upcoming)
comments:
range: YoutubeComment
multivalued: true
inlined_as_list: true
description: Comments on the video
# MIGRATED 2026-01-22: comments_fetched → was_fetched_at + is_or_was_part_of_total + SourceCommentCount (Rule 53)
# comments_fetched:
# range: integer
# description: Number of comments fetched
was_fetched_at:
range: Timestamp
inlined: true
description: |
MIGRATED from comments_fetched per slot_fixes.yaml (Rule 53, 2026-01-22).
Timestamp when comments were fetched from YouTube API.
is_or_was_part_of_total:
range: SourceCommentCount
inlined: true
description: |
MIGRATED from comments_fetched per slot_fixes.yaml (Rule 53, 2026-01-22).
Structured count metadata showing fetched vs total comments.
transcript:
range: YoutubeTranscript
description: Video transcript data
description:
range: string
description: Video description (legacy field name, prefer video_description)
tags:
range: string
multivalued: true
inlined_as_list: true
description: Video tags as simple strings (legacy field, prefer is_or_was_categorized_as)
channel_id:
range: string
description: YouTube channel ID that uploaded the video
channel_name:
range: string
description: YouTube channel name that uploaded the video
youtube_url:
range: uri
description: Full YouTube video URL
description_from_page:
range: string
description: Video description extracted from embedding page
heritage_topic:
range: string
description: Heritage topic classification (e.g., WWII_commemoration, archaeology)
ontology_type:
range: string
description: Ontology type annotation (e.g., schema:VideoObject)
status:
range: string
description: Video availability status (e.g., available, unavailable, private)
year:
range: Any
any_of:
- range: integer
- range: string
description: Year the video was published or the year of the heritage event covered (can be string or integer)