- 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.
207 lines
8 KiB
YAML
207 lines
8 KiB
YAML
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
|