- Added new aliases for existing slots to improve clarity and usability, including: - has_deadline: has_embargo_end_date - has_extent: has_extent_text - has_fonds: has_fond - has_laboratory: conservation_lab - has_language: has_iso_code639_1, has_iso_code639_3 - has_legal_basis: legal_basis - has_light_exposure: max_light_lux - has_measurement_unit: has_unit - has_note: has_custodian_observation - has_occupation: occupation - has_operating_hours: has_operating_hours - has_position: position - has_quantity: has_artwork_count, link_count - has_roadmap: review_date - has_skill: skill - has_speaker: speaker_label - has_specification: specification_url - has_statement: rights_statement_url, rights_statement - has_type: custodian_only - has_user_category: serves_visitors_only - hold_record_set: record_count - identified_by: has_index_number - in_period: has_period - in_place: has_place - in_series: has_series - measure: has_measurement - measured_on: measurement_date - organized_by: has_organizer - originate_from: has_origin - part_of: suborganization_of - published_on: has_publication_date - receive_investment: has_investment - related_to: connection_heritage_type - require: preservation_requirement - safeguarded_by: current_keeper, record_holder_note - state: states_or_stated - take_comission: takes_or_took_comission - take_place_at: takes_or_took_place_at - transmit_through: transmits_or_transmitted_through - warrant: warrants_or_warranted - Introduced a new slot definition for evaluated_through to capture evaluation methodologies and review statuses.
164 lines
6.9 KiB
YAML
164 lines
6.9 KiB
YAML
id: https://nde.nl/ontology/hc/class/SocialMediaContent
|
|
name: social_media_content_class
|
|
title: Social Media Content Base Class
|
|
imports:
|
|
- linkml:types
|
|
- ../slots/has_content
|
|
- ../slots/identified_by
|
|
- ../slots/has_url
|
|
- ../slots/has_description
|
|
- ../slots/has_endpoint
|
|
- ../slots/has_label
|
|
- ../slots/has_score
|
|
- ../slots/published_by
|
|
- ../slots/categorized_as
|
|
- ../slots/updated_at
|
|
- ../slots/published_at
|
|
- ../slots/in_language
|
|
- ../slots/has_type
|
|
- ../slots/posted_by
|
|
- ../slots/retrieved_at
|
|
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- `last_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_endpoint
|
|
- has_content
|
|
- identified_by
|
|
- has_url
|
|
- has_description
|
|
- published_by
|
|
- in_language
|
|
- has_type
|
|
- posted_by
|
|
- published_at
|
|
- retrieved_at
|
|
- has_type
|
|
- has_score
|
|
- has_url
|
|
- has_label
|
|
- updated_at
|
|
slot_usage:
|
|
identified_by:
|
|
# range: string
|
|
required: true
|
|
identifier: true
|
|
examples:
|
|
- value: FbIoC-Owy-M
|
|
has_url:
|
|
range: uri
|
|
required: true
|
|
pattern: ^https?://
|
|
examples:
|
|
- value: https://www.youtube.com/watch?v=FbIoC-Owy-M
|
|
has_type:
|
|
# range: string # uriorcurie
|
|
required: true
|
|
examples:
|
|
- value: YouTube
|
|
posted_by:
|
|
range: SocialMediaProfile
|
|
required: false
|
|
examples:
|
|
- value: https://nde.nl/ontology/hc/social-media/nationaal-onderduikmuseum-youtube
|
|
has_label:
|
|
# range: string
|
|
required: false
|
|
examples:
|
|
- value: "De Vrijheidsroute (aflevering 3) \u2013 Zevenaar, Duiven, Westervoort"
|
|
published_at:
|
|
range: PublicationEvent
|
|
required: true
|
|
inlined: true
|
|
examples:
|
|
- value:
|
|
temporal_extent:
|
|
begin_of_the_begin: '2025-07-30T18:05:15Z'
|
|
end_of_the_begin: '2025-07-30T18:05:15Z'
|
|
begin_of_the_end: '2025-07-30T18:05:15Z'
|
|
end_of_the_end: '2025-07-30T18:05:15Z'
|
|
updated_at:
|
|
range: datetime
|
|
required: false
|
|
examples:
|
|
- value: '2025-08-01T10:30:00Z'
|
|
in_language:
|
|
# range: string
|
|
required: false
|
|
examples:
|
|
- value: nl
|
|
has_type:
|
|
range: Tag
|
|
multivalued: true
|
|
inlined_as_list: true
|
|
required: false
|
|
examples:
|
|
- value:
|
|
- tag_value: 80 jaar vrijheid
|
|
- tag_value: wo2
|
|
- tag_value: vrijheidsroute
|
|
has_url:
|
|
range: uri
|
|
required: false
|
|
examples:
|
|
- value: https://i.ytimg.com/vi/FbIoC-Owy-M/hqdefault.jpg
|
|
published_by:
|
|
range: boolean
|
|
required: false
|
|
ifabsent: 'true'
|
|
examples:
|
|
- value: true
|
|
has_content:
|
|
# range: string
|
|
required: false
|
|
examples:
|
|
- value: '22'
|
|
retrieved_at:
|
|
range: datetime
|
|
required: true
|
|
examples:
|
|
- value: '2025-12-01T23:16:22.294232+00:00'
|
|
has_endpoint:
|
|
range: APIEndpoint
|
|
inlined: true
|
|
examples:
|
|
- value:
|
|
has_url: https://www.googleapis.com/youtube/v3
|
|
has_description: YouTube Data API v3
|
|
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
|
|
annotations:
|
|
specificity_score: 0.1
|
|
specificity_rationale: Generic utility class/slot created during migration
|
|
custodian_types: "['*']"
|