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%).
283 lines
12 KiB
YAML
283 lines
12 KiB
YAML
id: https://nde.nl/ontology/hc/class/VideoTextContent
|
|
name: video_text_content_class
|
|
title: Video Text Content Class
|
|
imports:
|
|
- linkml:types
|
|
- ./VideoPost
|
|
# REMOVED 2026-01-18: ../slots/character_count - migrated to has_or_had_quantity + Quantity (Rule 53)
|
|
- ../slots/content_language
|
|
- ../slots/content_title
|
|
- ../slots/generated_by
|
|
- ../slots/generation_method
|
|
- ../slots/generation_timestamp
|
|
- ../slots/is_verified
|
|
- ../slots/model_provider
|
|
- ../slots/model_version
|
|
- ../slots/overall_confidence
|
|
- ../slots/processing_duration_seconds
|
|
- ../slots/source_video
|
|
- ../slots/source_video_url
|
|
- ../slots/specificity_annotation
|
|
- ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
|
- ../slots/temporal_extent # was: verification_date - migrated per Rule 53
|
|
- ./TimeSpan
|
|
# REMOVED 2026-01-14: verification_date - migrated to temporal_extent (Rule 53)
|
|
# REMOVED: ../slots/verified_by - migrated to is_or_was_verified_by with Verifier (2026-01-14, Rule 53)
|
|
- ../slots/is_or_was_verified_by
|
|
- ./Verifier
|
|
# REMOVED: ../slots/word_count - migrated to has_or_had_quantity with Quantity (2026-01-14, Rule 53)
|
|
# REMOVED 2026-01-18: ../slots/character_count - also migrated to has_or_had_quantity + Quantity (Rule 53)
|
|
- ../slots/has_or_had_quantity
|
|
- ./Quantity # was: ./WordCount - updated 2026-01-18 to use generic Quantity class
|
|
- ./SpecificityAnnotation
|
|
- ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17)
|
|
|
|
- ./TemplateSpecificityType
|
|
|
|
- ./TemplateSpecificityTypes
|
|
- ../enums/GenerationMethodEnum
|
|
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/
|
|
skos: http://www.w3.org/2004/02/skos/core#
|
|
oa: http://www.w3.org/ns/oa#
|
|
default_prefix: hc
|
|
classes:
|
|
VideoTextContent:
|
|
class_uri: crm:E73_Information_Object
|
|
abstract: true
|
|
description: "Abstract base class for all textual/derived content from videos.\n\n**DEFINITION**:\n\nVideoTextContent\
|
|
\ is the abstract parent for all text that is extracted,\ntranscribed, or derived from video content. This includes:\n\
|
|
\n| Subclass | Source | Description |\n|----------|--------|-------------|\n| VideoTranscript | Audio | Full text transcription\
|
|
\ of spoken content |\n| VideoSubtitle | Audio | Time-coded caption entries (SRT/VTT) |\n| VideoAnnotation | Visual\
|
|
\ | CV/multimodal-derived descriptions |\n\n**PROVENANCE REQUIREMENTS**:\n\nAll video-derived text MUST include comprehensive\
|
|
\ provenance:\n\n1. **Source**: Which video was processed (`source_video`)\n2. **Method**: How was content generated\
|
|
\ (`generation_method`)\n3. **Agent**: Who/what generated it (`generated_by`)\n4. **Time**: When was it generated (`generation_timestamp`)\n\
|
|
5. **Version**: Tool/model version (`model_version`)\n6. **Quality**: Overall confidence (`overall_confidence`)\n\n\
|
|
**PROV-O ALIGNMENT**:\n\nMaps to W3C PROV-O for provenance tracking:\n\n```turtle\n:transcript a hc:VideoTranscript\
|
|
\ ;\n prov:wasGeneratedBy :asr_activity ;\n prov:wasAttributedTo :whisper_model ;\n prov:generatedAtTime \"\
|
|
2025-12-01T10:00:00Z\" ;\n prov:wasDerivedFrom :source_video .\n```\n\n**CIDOC-CRM E73_Information_Object**:\n\n\
|
|
- E73 is the base for all identifiable immaterial items\n- Includes texts, computer programs, songs, recipes\n- VideoTextContent\
|
|
\ are E73 instances derived from video (E73)\n\n**GENERATION METHODS**:\n\n| Method | Description | Typical Confidence\
|
|
\ |\n|--------|-------------|-------------------|\n| ASR_AUTOMATIC | Automatic speech recognition | 0.75-0.95 |\n| ASR_ENHANCED\
|
|
\ | ASR with post-processing | 0.85-0.98 |\n| MANUAL_TRANSCRIPTION | Human transcription | 0.98-1.0 |\n| MANUAL_CORRECTION\
|
|
\ | Human-corrected ASR | 0.95-1.0 |\n| CV_AUTOMATIC | Computer vision detection | 0.60-0.90 |\n| MULTIMODAL | Combined\
|
|
\ audio+visual AI | 0.70-0.95 |\n| OCR | Optical character recognition | 0.80-0.98 |\n| PLATFORM_PROVIDED | From YouTube/Vimeo\
|
|
\ API | 0.85-0.95 |\n\n**HERITAGE INSTITUTION CONTEXT**:\n\nVideo text content is critical for:\n- **Accessibility**:\
|
|
\ Deaf/HoH users need accurate captions\n- **Discovery**: Full-text search over video collections\n- **Preservation**:\
|
|
\ Text outlasts video format obsolescence\n- **Research**: Analyzing spoken content at scale\n- **Translation**: Multilingual\
|
|
\ access to heritage content\n\n**LANGUAGE SUPPORT**:\n\n- `content_language`: Primary language of text content\n- May\
|
|
\ differ from video's default_audio_language if translated\n- ISO 639-1 codes (e.g., \"nl\", \"en\", \"de\")\n"
|
|
exact_mappings:
|
|
- crm:E73_Information_Object
|
|
close_mappings:
|
|
- prov:Entity
|
|
related_mappings:
|
|
- schema:CreativeWork
|
|
- dcterms:Text
|
|
slots:
|
|
# REMOVED 2026-01-18: character_count - migrated to has_or_had_quantity + Quantity (Rule 53)
|
|
- content_language
|
|
- content_title
|
|
- generated_by
|
|
- generation_method
|
|
- generation_timestamp
|
|
- is_verified
|
|
- model_provider
|
|
- model_version
|
|
- overall_confidence
|
|
- processing_duration_seconds
|
|
- source_video
|
|
- source_video_url
|
|
- specificity_annotation
|
|
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
|
- temporal_extent # was: verification_date - migrated per Rule 53
|
|
# REMOVED: verified_by - migrated to is_or_was_verified_by with Verifier (2026-01-14, Rule 53)
|
|
- is_or_was_verified_by
|
|
# REMOVED: word_count - migrated to has_or_had_quantity with WordCount (2026-01-14, Rule 53)
|
|
- has_or_had_quantity
|
|
slot_usage:
|
|
source_video:
|
|
range: string
|
|
required: true
|
|
examples:
|
|
- value: FbIoC-Owy-M
|
|
description: YouTube video ID as source reference
|
|
source_video_url:
|
|
range: uri
|
|
required: false
|
|
examples:
|
|
- value: https://www.youtube.com/watch?v=FbIoC-Owy-M
|
|
description: Full YouTube video URL
|
|
content_language:
|
|
range: string
|
|
required: true
|
|
examples:
|
|
- value: nl
|
|
description: Dutch language content
|
|
- value: en
|
|
description: English translation
|
|
content_title:
|
|
range: string
|
|
required: false
|
|
examples:
|
|
- value: De Vrijheidsroute Ep.3 - Dutch Transcript
|
|
description: Descriptive title for transcript
|
|
generated_by:
|
|
range: string
|
|
required: true
|
|
examples:
|
|
- value: openai/whisper-large-v3
|
|
description: OpenAI Whisper ASR model
|
|
- value: YouTube Auto-captions
|
|
description: Platform-provided captions
|
|
- value: manual:curator@rijksmuseum.nl
|
|
description: Human transcriber
|
|
generation_method:
|
|
range: GenerationMethodEnum
|
|
required: true
|
|
examples:
|
|
- value: ASR_AUTOMATIC
|
|
description: Automatic speech recognition
|
|
- value: MANUAL_TRANSCRIPTION
|
|
description: Human transcription
|
|
generation_timestamp:
|
|
range: datetime
|
|
required: true
|
|
examples:
|
|
- value: '2025-12-01T10:30:00Z'
|
|
description: Generated December 1, 2025 at 10:30 UTC
|
|
model_version:
|
|
range: string
|
|
required: false
|
|
examples:
|
|
- value: large-v3
|
|
description: Whisper model version
|
|
- value: v2.3.1
|
|
description: Software version number
|
|
model_provider:
|
|
range: string
|
|
required: false
|
|
examples:
|
|
- value: OpenAI
|
|
description: Model provider
|
|
- value: Google Cloud
|
|
description: Cloud service provider
|
|
overall_confidence:
|
|
range: float
|
|
required: false
|
|
minimum_value: 0.0
|
|
maximum_value: 1.0
|
|
examples:
|
|
- value: 0.92
|
|
description: High confidence ASR output
|
|
is_verified:
|
|
range: boolean
|
|
required: false
|
|
ifabsent: 'false'
|
|
examples:
|
|
- value: true
|
|
description: Human-verified transcript
|
|
# DEPRECATED: verified_by - migrated to is_or_was_verified_by with Verifier (2026-01-14, Rule 53)
|
|
# verified_by:
|
|
# range: string
|
|
# required: false
|
|
# examples:
|
|
# - value: curator@rijksmuseum.nl
|
|
# description: Staff member who verified
|
|
is_or_was_verified_by:
|
|
range: Verifier
|
|
required: false
|
|
inlined: true
|
|
description: |
|
|
Who verified the annotation.
|
|
MIGRATED from verified_by slot (2026-01-14) per Rule 53.
|
|
|
|
Uses Verifier class for structured verifier with name, type, and URI.
|
|
examples:
|
|
- value: |
|
|
verifier_name: curator@rijksmuseum.nl
|
|
verifier_type: PERSON
|
|
description: Staff member who verified
|
|
# DEPRECATED: verification_date - migrated to temporal_extent with TimeSpan (2026-01-14, Rule 53)
|
|
# verification_date:
|
|
# range: datetime
|
|
# required: false
|
|
# examples:
|
|
# - value: '2025-12-02T15:00:00Z'
|
|
# description: Verified December 2, 2025
|
|
temporal_extent: # was: verification_date - migrated per Rule 53
|
|
description: |
|
|
Verification date using CIDOC-CRM TimeSpan.
|
|
MIGRATED from verification_date per slot_fixes.yaml (Rule 53).
|
|
Use begin_of_the_begin for the verification timestamp.
|
|
range: TimeSpan
|
|
inlined: true
|
|
required: false
|
|
examples:
|
|
- value:
|
|
begin_of_the_begin: '2025-12-02T15:00:00Z'
|
|
description: Verified December 2, 2025
|
|
processing_duration_seconds:
|
|
range: float
|
|
required: false
|
|
minimum_value: 0.0
|
|
examples:
|
|
- value: 45.3
|
|
description: Processed in 45.3 seconds
|
|
# DEPRECATED: word_count - migrated to has_or_had_quantity with WordCount (2026-01-14, Rule 53)
|
|
# word_count:
|
|
# range: integer
|
|
# required: false
|
|
# minimum_value: 0
|
|
# examples:
|
|
# - value: 1523
|
|
# description: 1,523 words in transcript
|
|
has_or_had_quantity: # was: word_count + character_count - migrated per Rule 53 (2026-01-14, 2026-01-18)
|
|
range: Quantity
|
|
required: false
|
|
multivalued: true
|
|
inlined: true
|
|
inlined_as_list: true
|
|
description: |
|
|
Quantitative measurements of the text content.
|
|
MIGRATED: word_count (2026-01-14) and character_count (2026-01-18) per Rule 53.
|
|
|
|
Uses Quantity class for structured quantity with value, type, and unit.
|
|
Can represent word count, character count, or other text metrics.
|
|
examples:
|
|
- value:
|
|
- quantity_value: 1523
|
|
quantity_type: WORD_COUNT
|
|
has_or_had_measurement_unit:
|
|
has_or_had_type: WORD
|
|
has_or_had_symbol: "words"
|
|
has_or_had_description: Word count in transcript
|
|
- quantity_value: 8742
|
|
quantity_type: CHARACTER_COUNT
|
|
has_or_had_measurement_unit:
|
|
has_or_had_type: CHARACTER
|
|
has_or_had_symbol: "chars"
|
|
has_or_had_description: Character count including spaces
|
|
description: Text metrics (word and character count)
|
|
# DEPRECATED 2026-01-18: character_count - migrated to has_or_had_quantity + Quantity (Rule 53)
|
|
# character_count:
|
|
# range: integer
|
|
# required: false
|
|
# minimum_value: 0
|
|
# examples:
|
|
# - value: 8742
|
|
# description: 8,742 characters
|
|
comments:
|
|
- Abstract base for all video-derived text content
|
|
- Comprehensive PROV-O provenance tracking
|
|
- Confidence scoring for AI-generated content
|
|
- Verification workflow support
|
|
- Critical for heritage accessibility and discovery
|
|
see_also:
|
|
- https://www.w3.org/TR/prov-o/
|
|
- http://www.cidoc-crm.org/cidoc-crm/E73_Information_Object
|