glam/schemas/20251121/linkml/modules/classes/SocialMediaContent.yaml
kempersc 6c3fa6b5a3 Remove deprecated slots and add new slot definitions for enhanced data modeling
- Deleted obsolete slot definitions for work_location and workshop_space.
- Introduced new TaxonName class to represent scientific taxonomic names with detailed attributes.
- Archived existing slots related to surname_prefix, target_name, taxon_name, terminal_count, text_region_count, title, title_proper, total_chapter, total_characters_extracted, total_connections_extracted, track_name, transcript_format, traveling_venue, type_label, type_status, typical_responsibility, unesco_domain, unesco_inscription_year, unesco_list_status, uniform_title, unit_name, used_by_custodian, uv_filtered_required, valid_from_geo, valid_to_geo, validation_status, variant_of_name, verification_date, viability_status, within_auxiliary_place, and within_place.
- Updated slot descriptions and structures to improve clarity and compliance with standards.
2026-01-15 11:42:35 +01:00

207 lines
8 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

id: https://nde.nl/ontology/hc/class/SocialMediaContent
name: social_media_content_class
title: Social Media Content Base Class
imports:
- linkml:types
- ./SocialMediaProfile
- ./SocialMediaPlatformType
- ./TimeSpan
- ./WebObservation
- ../slots/language
- ../slots/has_or_had_api_endpoint
- ../slots/has_api_version
- ../slots/content_category
- ../slots/content_id
- ../slots/content_url
- ../slots/description
- ../slots/is_official_content
- ../slots/platform_type
- ../slots/posted_by_profile
- ../slots/published_at
- ../slots/retrieval_timestamp
- ../slots/specificity_annotation
- ../slots/tag
- ../slots/template_specificity
- ../slots/thumbnail_url
- ../slots/has_or_had_label # was: title - migrated per Rule 53
- ../slots/updated_at
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
foaf: http://xmlns.com/foaf/0.1/
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#
as: https://www.w3.org/ns/activitystreams#
default_prefix: hc
classes:
SocialMediaContent:
class_uri: as:Object
abstract: true
description: "Abstract base class for all social media content items.\n\n**DEFINITION**:\n\nSocialMediaContent represents\
\ discrete pieces of content published on social media\nplatforms. This includes videos, images, text posts, stories,\
\ and other content types.\nEach content item is posted by a SocialMediaProfile (the channel/account).\n\n**CRITICAL:\
\ CONTENT vs PROFILE vs PLATFORM**:\n\n| Class | Represents | Example | Cardinality |\n|-------|------------|---------|-------------|\n\
| SocialMediaPlatformType | Platform category | YouTube | ~25 types |\n| SocialMediaProfile | Account/channel | @rijksmuseum\
\ | Thousands |\n| **SocialMediaContent** | Individual content | A video, post | Millions |\n\n**ACTIVITY STREAMS 2.0\
\ ALIGNMENT**:\n\nMaps to `as:Object` from W3C Activity Streams 2.0 vocabulary:\n- as:Object is the base type for content\
\ in social media\n- Subclasses map to as:Video, as:Image, as:Note, etc.\n- Enables federation with ActivityPub-based\
\ platforms (Mastodon, PeerTube)\n\n**HERITAGE INSTITUTION CONTEXT**:\n\nSocial media content from heritage institutions\
\ includes:\n\n1. **Official content** (posted by the institution):\n - Collection highlights\n - Exhibition announcements\n\
\ - Educational videos\n - Behind-the-scenes content\n - Event recordings\n\n2. **Third-party content** (about\
\ the institution):\n - Visitor videos/photos\n - News coverage\n - Academic discussions\n - Review content\n\
\n3. **User-generated content** (mentions):\n - Tagged posts\n - Check-ins\n - Comments/discussions\n\n**PROVENANCE\
\ TRACKING**:\n\nContent items are OBSERVATIONAL data retrieved via:\n- Platform APIs (YouTube Data API, Twitter API,\
\ etc.)\n- Web scraping (when API unavailable)\n- Manual archival\n\nEach content record includes:\n- `retrieval_timestamp`:\
\ When content was fetched\n- `api_endpoint`: Which API/method was used\n- `metrics_observed_date`: When engagement\
\ metrics were recorded\n\n**TEMPORAL CONSIDERATIONS**:\n\nContent has multiple temporal dimensions:\n- `published_at`:\
\ When originally posted\n- `updated_at`: Last modification by author\n- `retrieval_timestamp`: When we fetched it\n\
- `metrics_observed_date`: When metrics (views, likes) were recorded\n\nEngagement metrics change constantly; always\
\ record observation timestamp.\n\n**SUBCLASSES**:\n\n- VideoPost: YouTube, TikTok, Vimeo videos\n- ImagePost: Instagram,\
\ Pinterest posts (future)\n- TextPost: Twitter/X, Mastodon posts (future)\n- StoryPost: Instagram/Facebook stories\
\ (future)\n"
exact_mappings:
- as:Object
close_mappings:
- schema:CreativeWork
- crm:E73_Information_Object
related_mappings:
- schema:SocialMediaPosting
- dcterms:BibliographicResource
slots:
- has_or_had_api_endpoint
- has_api_version
- content_category
- content_id
- content_url
- description
- is_official_content
- language
- platform_type
- posted_by_profile
- published_at
- retrieval_timestamp
- specificity_annotation
- tag
- template_specificity
- thumbnail_url
- has_or_had_label # was: title
- updated_at
slot_usage:
content_id:
range: string
required: true
identifier: true
examples:
- value: FbIoC-Owy-M
description: YouTube video ID
content_url:
range: uri
required: true
pattern: ^https?://
examples:
- value: https://www.youtube.com/watch?v=FbIoC-Owy-M
description: YouTube video URL
platform_type:
range: SocialMediaPlatformType
required: true
examples:
- value: YouTube
description: Content from YouTube platform
posted_by_profile:
range: SocialMediaProfile
required: false
examples:
- value: https://nde.nl/ontology/hc/social-media/nationaal-onderduikmuseum-youtube
description: Museum's YouTube channel profile
has_or_had_label: # was: title
range: string
required: false
examples:
- value: De Vrijheidsroute (aflevering 3) Zevenaar, Duiven, Westervoort
description: YouTube video title
description:
range: string
required: false
examples:
- value: De videoreeks De Vrijheidsroute is gebaseerd op de gelijknamige fietsroute...
description: YouTube video description
published_at:
range: datetime
required: true
examples:
- value: '2025-07-30T18:05:15Z'
description: Published July 30, 2025
updated_at:
range: datetime
required: false
examples:
- value: '2025-08-01T10:30:00Z'
description: Last edited August 1, 2025
language:
range: string
required: false
examples:
- value: nl
description: Dutch language content
tag:
range: string
multivalued: true
required: false
examples:
- value:
- 80 jaar vrijheid
- wo2
- vrijheidsroute
description: YouTube video tags
thumbnail_url:
range: uri
required: false
examples:
- value: https://i.ytimg.com/vi/FbIoC-Owy-M/hqdefault.jpg
description: YouTube video thumbnail
is_official_content:
range: boolean
required: false
ifabsent: 'true'
examples:
- value: true
description: Posted by official museum channel
content_category:
range: string
required: false
examples:
- value: '22'
description: YouTube category ID for People & Blogs
retrieval_timestamp:
range: datetime
required: true
examples:
- value: '2025-12-01T23:16:22.294232+00:00'
description: Retrieved December 1, 2025
has_or_had_api_endpoint:
range: string
required: false
examples:
- value: https://www.googleapis.com/youtube/v3
description: YouTube Data API v3
has_api_version:
range: string
required: false
examples:
- value: v3
description: YouTube API version 3
comments:
- Abstract base class - use specific subclasses (VideoPost, ImagePost, etc.)
- Represents individual CONTENT items, not profiles or platforms
- Activity Streams 2.0 alignment enables ActivityPub federation
- Metrics are observational - always include retrieval_timestamp
- Supports both official institutional content and third-party coverage
see_also:
- https://www.w3.org/ns/activitystreams#Object
- https://schema.org/CreativeWork
- https://schema.org/SocialMediaPosting