glam/schemas/20251121/linkml/modules/classes/SocialMediaProfile.yaml
kempersc fcd1c21c63 Add aliases and enhance slot definitions across various modules
- 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.
2026-02-14 14:41:49 +01:00

225 lines
12 KiB
YAML

id: https://nde.nl/ontology/hc/class/social-media-profile
name: social_media_profile_class
title: SocialMediaProfile Class
imports:
- linkml:types
- ../slots/has_cover_image
- ../slots/begin_of_the_begin
- ../slots/has_engagement_metric
- ../slots/has_score
- ../slots/categorized_as
- ../slots/derive_from
- ../slots/generated_by
- ../slots/primary
- ../slots/in_language
- ../slots/observed_through
- ../slots/has_label
- ../slots/has_type
- ../slots/has_quantity
- ../slots/has_description
- ../slots/has_image
- ../slots/refer_to
- ../slots/identified_by
- ../slots/temporal_extent
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#
wd: http://www.wikidata.org/entity/
default_prefix: hc
classes:
SocialMediaProfile:
is_a: ReconstructedEntity
class_uri: foaf:OnlineAccount
description: "Represents a social media account or profile maintained by a heritage custodian.\n\n**FOAF ONTOLOGY ALIGNMENT**:\n\nMaps to `foaf:OnlineAccount` - \"An online account.\"\n\nKey FOAF properties used:\n- `foaf:accountName` - Username/handle on the platform\n- `foaf:accountServiceHomepage` - Homepage of the service provider (e.g., https://twitter.com)\n- `foaf:account` - Inverse property linking Agent to OnlineAccount\n\n**RELATIONSHIP TO DIGITAL PLATFORM HIERARCHY**:\n\nSocial media profiles exist in a three-tier digital presence model:\n\n```\n1. DigitalPlatform (PRIMARY digital presence)\n - Main website, primary API, flagship platform\n - Example: rijksmuseum.nl\n - Links to Custodian via refers_to_custodian\n \n2. AuxiliaryDigitalPlatform (SECONDARY digital properties)\n - Project sites, exhibition microsites, specialized tools\n - Example: Rijksstudio, Night Watch Experience\n - Links to DigitalPlatform via is_auxiliary_of\n \n3. SocialMediaProfile (THIRD-PARTY\
\ presence) - THIS CLASS\n - Accounts on external social media services\n - Example: @rijksmuseum on Instagram, Facebook, X\n - Links to BOTH Custodian AND optionally DigitalPlatform/AuxiliaryDigitalPlatform\n```\n\n**WHY SOCIAL MEDIA IS DISTINCT FROM AUXILIARY PLATFORMS**:\n\nUnlike AuxiliaryDigitalPlatform (owned/operated digital properties), social media profiles:\n- Are hosted on THIRD-PARTY platforms (not custodian-controlled)\n- Have standardized URL patterns per platform\n- Provide follower/engagement metrics\n- Subject to platform terms of service\n- Can be verified/authenticated by platform\n\n**RELATIONSHIP TO CUSTODIAN vs DIGITAL PLATFORM**:\n\nSocial media profiles can link to:\n\n1. **Custodian directly** (`refers_to_custodian`):\n - When social media is the PRIMARY or ONLY digital presence\n - Example: Small local heritage society with Facebook page as main presence\n \n2. **DigitalPlatform** (`associated_digital_platform`):\n - When social media SUPPORTS\
\ the main website\n - Example: Rijksmuseum Instagram supports rijksmuseum.nl\n \n3. **AuxiliaryDigitalPlatform** (`associated_auxiliary_platform`):\n - When social media is for a SPECIFIC project/exhibition\n - Example: Instagram account for a temporary exhibition\n\n**DECISION RULES**:\n\n\"Is social media this custodian's MAIN way to profile itself online?\"\n\n- **YES** \u2192 Link SocialMediaProfile directly to Custodian\n - is_primary_digital_presence: true\n - associated_digital_platform: null\n - Example: Local heritage group with only Facebook\n \n- **NO** \u2192 Link SocialMediaProfile to DigitalPlatform/AuxiliaryDigitalPlatform\n - is_primary_digital_presence: false\n - associated_digital_platform: (main website)\n - Example: Museum Instagram supporting main website\n\n**TEMPORAL VALIDITY**:\n\nSocial media profiles have lifecycles:\n- Account creation date\n- Account deactivation/deletion date\n- Platform migration (e.g., Twitter \u2192 X)\n- Account suspension/recovery\n\
\n**METRICS AND ANALYTICS**:\n\nSocial media profiles can track:\n- Follower/subscriber count\n- Post count\n- Engagement metrics\n- Verification status\n\nThese metrics are OBSERVATIONAL and should be timestamped.\n\n**Example - Museum with Social Media Supporting Website**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804\"\n preferred_label: \"Rijksmuseum\"\n \n digital_platform:\n - platform_name: \"Rijksmuseum Website\"\n homepage_web_address: \"https://www.rijksmuseum.nl/\"\n \n social_media_profiles:\n - platform_type: INSTAGRAM\n account_name: \"rijksmuseum\"\n profile_url: \"https://www.instagram.com/rijksmuseum/\"\n is_primary_digital_presence: false # Website is primary\n associated_digital_platform: \".../platform/rijksmuseum-website\"\n follower_count: 1200000\n verified: true\n \n - platform_type: X_TWITTER\n account_name: \"rijksmuseum\"\n profile_url: \"https://x.com/rijksmuseum\"\
\n is_primary_digital_presence: false\n associated_digital_platform: \".../platform/rijksmuseum-website\"\n```\n\n**Example - Local Society with Social Media as Primary Presence**:\n```yaml\nCustodian:\n identified_by: \"https://nde.nl/ontology/hc/nl-fr-123-s-hvn\"\n preferred_label: \"Historische Vereniging Nijeveen\"\n \n digital_platform: null # No formal website\n \n social_media_profiles:\n - platform_type: FACEBOOK\n account_name: \"HistorischeVerenigingNijeveen\"\n profile_url: \"https://www.facebook.com/HistorischeVerenigingNijeveen\"\n is_primary_digital_presence: true # Facebook IS their main presence\n associated_digital_platform: null\n follower_count: 450\n```\n"
exact_mappings:
- foaf:OnlineAccount
close_mappings:
- schema:ContactPoint
- schema:SocialMediaPosting
- crm:E73_Information_Object
related_mappings:
- foaf:account
- schema:sameAs
- dcterms:identifier
slots:
- has_cover_image
- begin_of_the_begin
- has_engagement_metric
- primary
- in_language
- observed_through
- has_label
- has_type
- has_quantity
- has_description
- has_image
- refer_to
- identified_by
- has_score
- temporal_extent
- derive_from
- generated_by
slot_usage:
identified_by:
# range: string # uriorcurie
required: true
identifier: true
examples:
- value: https://nde.nl/ontology/hc/social-media/rijksmuseum-instagram
has_type:
# range: string # uriorcurie
required: true
examples:
- value: INSTAGRAM
- value: FACEBOOK
has_label:
# range: string
required: false
examples:
- value: Instagram
- value: Mastodon (glammr.us)
has_description:
# range: string
required: false
examples:
- value: The museum of the Netherlands. Open daily 9-17h.
primary:
range: boolean
required: false
ifabsent: 'false'
examples:
- value: false
- value: true
has_quantity:
range: integer
required: false
examples:
- value: 2500
has_engagement_metric:
range: EngagementMetric
inlined: true
multivalued: true
examples:
- value:
has_type: Engagement Rate
has_value: 2.5
has_unit: '%'
observed_through:
range: datetime
required: false
examples:
- value: '2025-11-29T12:00:00Z'
has_image:
range: uri
required: false
examples:
- value: https://instagram.com/p/rijksmuseum/avatar.jpg
has_cover_image:
range: uri
required: false
examples:
- value: https://facebook.com/rijksmuseum/cover.jpg
begin_of_the_begin:
range: date
required: false
examples:
- value: '2012-03-15'
temporal_extent:
range: TimeSpan
inlined: true
required: false
examples:
- value:
begin_of_the_begin: '2012-03-15'
- value:
begin_of_the_begin: '2012-03-15'
end_of_the_end: '2024-06-01'
in_language:
# range: string
required: false
examples:
- value: nl
- value: en
derive_from:
range: CustodianObservation
multivalued: true
required: false
generated_by:
range: ReconstructionActivity
required: false
refer_to:
range: Custodian
required: true
examples:
- value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
comments:
- SocialMediaProfile models THIRD-PARTY social media accounts
- Distinct from DigitalPlatform (owned websites) and AuxiliaryDigitalPlatform (owned project sites)
- FOAF foaf:OnlineAccount as primary ontology alignment
- Supports both 'social media as primary presence' and 'social media supporting website' patterns
- Metrics (followers, posts) are observational and require timestamp
- Platform-specific subclasses (FacebookProfile, InstagramProfile, etc.) can extend this base class
- Links to Custodian via foaf:account pattern
see_also:
- http://xmlns.com/foaf/0.1/OnlineAccount
- http://xmlns.com/foaf/0.1/account
- https://schema.org/ContactPoint
- https://schema.org/sameAs
examples:
- value:
social_media_profile_id: https://nde.nl/ontology/hc/social-media/rijksmuseum-instagram
platform_type: INSTAGRAM
account_name: rijksmuseum
profile_url: https://www.instagram.com/rijksmuseum
profile_description: 'The museum of the Netherlands. Open daily 9-17h. #Rijksmuseum'
is_primary_digital_presence: false
post_count: 3500
has_engagement_metric:
- has_type: Engagement Rate
has_value: 2.5
has_unit: '%'
metrics_observed_date: '2025-11-29T12:00:00Z'
associated_digital_platform: https://nde.nl/ontology/hc/platform/rijksmuseum-website
account_status: ACTIVE
language: en
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
- value:
social_media_profile_id: https://nde.nl/ontology/hc/social-media/hvn-facebook
platform_type: FACEBOOK
account_name: HistorischeVerenigingNijeveen
profile_url: https://www.facebook.com/HistorischeVerenigingNijeveen
profile_description: Historische Vereniging Nijeveen - preserving local heritage since 1985
is_primary_digital_presence: true
post_count: 320
metrics_observed_date: '2025-11-29T10:00:00Z'
associated_digital_platform: null
account_status: ACTIVE
language: nl
refers_to_custodian: https://nde.nl/ontology/hc/nl-dr-nvn-s-hvn
- value:
social_media_profile_id: https://nde.nl/ontology/hc/social-media/rijksmuseum-x
platform_type: X_TWITTER
account_name: rijksmuseum
profile_url: https://x.com/rijksmuseum
is_primary_digital_presence: false
post_count: 12500
metrics_observed_date: '2025-11-29T12:00:00Z'
associated_digital_platform: https://nde.nl/ontology/hc/platform/rijksmuseum-website
created_date: '2009-02-05'
account_status: ACTIVE
language: en
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class/slot created during migration
custodian_types: "['*']"