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%).
147 lines
5.1 KiB
YAML
147 lines
5.1 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)
|
|
- ./YoutubeComment
|
|
- ./YoutubeTranscript
|
|
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
|
|
definition:
|
|
range: string
|
|
description: Video quality (hd, sd)
|
|
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.
|
|
default_language:
|
|
range: string
|
|
description: Default language code
|
|
default_audio_language:
|
|
range: string
|
|
description: Default audio language code
|
|
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
|
|
comments_fetched:
|
|
range: integer
|
|
description: Number of comments fetched
|
|
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)
|