- Introduced dual_class_role, emic_name, employer_linkedin_url, employer_name, employment_dates_raw, employment_end_date, employment_start_date, end_date, end_seconds, end_time, ended_at_time, endowment_draw, engagement_rate, enriched_date, enrichment_metadata_whatsapp, enrichment_method_whatsapp, exhibition_timespan, has_timespan, policy_effective_from, policy_effective_to, start_date, can_or_could_be_retrieved_from, documents_or_documented, has_or_had_contributor, has_or_had_drawer, has_or_had_email, has_or_had_endowment_draw, has_or_had_engagement_metric, has_or_had_metadata, has_or_had_summary, is_or_was_employed_by, and is_or_was_expired_at slots. - Each slot includes detailed descriptions, ranges, and mappings to ensure compliance with ontology standards.
405 lines
18 KiB
YAML
405 lines
18 KiB
YAML
id: https://nde.nl/ontology/hc/class/social-media-profile
|
|
name: social_media_profile_class
|
|
title: SocialMediaProfile Class
|
|
imports:
|
|
- linkml:types
|
|
- ./Custodian
|
|
- ./DigitalPlatform
|
|
- ./AuxiliaryDigitalPlatform
|
|
- ./CustodianObservation
|
|
- ./ReconstructionActivity
|
|
- ./TimeSpan
|
|
- ./WebObservation
|
|
- ./PrimaryDigitalPresenceAssertion
|
|
- ./SocialMediaPlatformType
|
|
- ../slots/language
|
|
- ../slots/platform_type
|
|
- ../slots/platform_name
|
|
- ./ReconstructedEntity
|
|
- ../slots/has_or_had_account_name
|
|
- ../slots/has_or_had_account_status
|
|
- ../slots/has_or_had_associated_auxiliary_platform
|
|
- ../slots/has_or_had_associated_digital_platform
|
|
- ../slots/cover_image_url
|
|
- ../slots/is_or_was_categorized_as
|
|
- ../slots/has_or_had_engagement_metric
|
|
- ./EngagementMetric
|
|
- ../slots/average_likes
|
|
- ../slots/following_count
|
|
- ../slots/is_primary_digital_presence
|
|
- ../slots/metrics_observed_date
|
|
- ../slots/post_count
|
|
- ../slots/has_or_had_primary_presence_assertion
|
|
- ../slots/profile_description
|
|
- ../slots/profile_image_url
|
|
- ../slots/profile_url
|
|
- ../slots/refers_to_custodian
|
|
- ../slots/social_media_profile_id
|
|
- ../slots/specificity_annotation
|
|
- ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
|
- ../slots/temporal_extent # was: valid_from + valid_to - migrated per Rule 53
|
|
# REMOVED 2026-01-14: valid_from + valid_to - migrated to temporal_extent (Rule 53)
|
|
# REMOVED 2026-01-15: verified - migrated to has_or_had_verification_status (Rule 53)
|
|
# - ../slots/verified
|
|
- ../slots/has_or_had_verification_status
|
|
- ./VerificationStatus
|
|
- ../slots/is_or_was_derived_from # was: was_derived_from - migrated per Rule 53
|
|
- ../slots/is_or_was_generated_by # was: was_generated_by - migrated per Rule 53
|
|
- ./SpecificityAnnotation
|
|
- ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17)
|
|
|
|
- ./TemplateSpecificityType
|
|
|
|
- ./TemplateSpecificityTypes
|
|
- ../slots/has_or_had_account_identifier
|
|
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 \n\
|
|
3. 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** → 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** → 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 → 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 hc_id: \"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 hc_id: \"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_or_had_account_identifier
|
|
- has_or_had_account_name
|
|
- has_or_had_account_status
|
|
- has_or_had_associated_auxiliary_platform
|
|
- has_or_had_associated_digital_platform
|
|
- cover_image_url
|
|
- created_date
|
|
- has_or_had_engagement_metric
|
|
- follower_count
|
|
- following_count
|
|
- is_primary_digital_presence
|
|
- language
|
|
- metrics_observed_date
|
|
- platform_name
|
|
- platform_type
|
|
- post_count
|
|
- has_or_had_primary_presence_assertion
|
|
- profile_description
|
|
- profile_image_url
|
|
- profile_url
|
|
- refers_to_custodian
|
|
- social_media_profile_id
|
|
- specificity_annotation
|
|
- has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17)
|
|
- temporal_extent # was: valid_from + valid_to - migrated per Rule 53
|
|
# REMOVED: verified - migrated to has_or_had_verification_status (Rule 53)
|
|
- has_or_had_verification_status # was: verified
|
|
- is_or_was_derived_from # was: was_derived_from - migrated per Rule 53
|
|
- is_or_was_generated_by # was: was_generated_by - migrated per Rule 53
|
|
slot_usage:
|
|
social_media_profile_id:
|
|
range: uriorcurie
|
|
required: true
|
|
identifier: true
|
|
examples:
|
|
- value: https://nde.nl/ontology/hc/social-media/rijksmuseum-instagram
|
|
description: Rijksmuseum Instagram profile ID
|
|
platform_type:
|
|
range: SocialMediaPlatformType
|
|
required: true
|
|
examples:
|
|
- value: INSTAGRAM
|
|
description: Instagram platform
|
|
- value: FACEBOOK
|
|
description: Facebook platform
|
|
platform_name:
|
|
range: string
|
|
required: false
|
|
examples:
|
|
- value: Instagram
|
|
description: Instagram platform name
|
|
- value: Mastodon (glammr.us)
|
|
description: Mastodon instance specification
|
|
has_or_had_account_name:
|
|
range: string
|
|
required: true
|
|
examples:
|
|
- value: rijksmuseum
|
|
description: Rijksmuseum username
|
|
has_or_had_account_identifier:
|
|
range: string
|
|
required: false
|
|
examples:
|
|
- value: '123456789'
|
|
description: Twitter user ID
|
|
profile_url:
|
|
range: uri
|
|
required: true
|
|
pattern: ^https?://
|
|
examples:
|
|
- value: https://www.instagram.com/rijksmuseum
|
|
description: Rijksmuseum Instagram URL
|
|
profile_description:
|
|
range: string
|
|
required: false
|
|
examples:
|
|
- value: The museum of the Netherlands. Open daily 9-17h.
|
|
description: Rijksmuseum Instagram bio
|
|
is_primary_digital_presence:
|
|
range: boolean
|
|
required: false
|
|
ifabsent: 'false'
|
|
examples:
|
|
- value: false
|
|
description: Instagram supports main website
|
|
- value: true
|
|
description: Facebook IS the main digital presence
|
|
has_or_had_primary_presence_assertion:
|
|
range: PrimaryDigitalPresenceAssertion
|
|
multivalued: true
|
|
inlined_as_list: true
|
|
required: false
|
|
has_or_had_verification_status: # was: verified - migrated per Rule 53
|
|
description: |
|
|
Platform verification status (e.g., verified checkmark).
|
|
MIGRATED from verified boolean to structured VerificationStatus class.
|
|
range: VerificationStatus
|
|
inlined: true
|
|
required: false
|
|
examples:
|
|
- value:
|
|
status: VERIFIED
|
|
verified_date: "2024-06-15T00:00:00Z"
|
|
description: Verified account with blue checkmark
|
|
follower_count:
|
|
range: integer
|
|
required: false
|
|
examples:
|
|
- value: 1200000
|
|
description: 1.2M Instagram followers
|
|
following_count:
|
|
range: integer
|
|
required: false
|
|
examples:
|
|
- value: 250
|
|
description: Following 250 accounts
|
|
post_count:
|
|
range: integer
|
|
required: false
|
|
examples:
|
|
- value: 2500
|
|
description: 2,500 posts
|
|
has_or_had_engagement_metric:
|
|
range: EngagementMetric
|
|
inlined: true
|
|
multivalued: true
|
|
description: >-
|
|
Metrics tracking engagement (rates, counts).
|
|
MIGRATED from engagement_rate per Rule 53 (2026-01-26).
|
|
examples:
|
|
- value:
|
|
has_or_had_type: "Engagement Rate"
|
|
has_or_had_value: 2.5
|
|
has_or_had_unit: "%"
|
|
description: Average engagement rate
|
|
metrics_observed_date:
|
|
range: datetime
|
|
required: false
|
|
examples:
|
|
- value: '2025-11-29T12:00:00Z'
|
|
description: Metrics observed November 29, 2025
|
|
profile_image_url:
|
|
range: uri
|
|
required: false
|
|
examples:
|
|
- value: https://instagram.com/p/rijksmuseum/avatar.jpg
|
|
description: Profile image URL
|
|
cover_image_url:
|
|
range: uri
|
|
required: false
|
|
examples:
|
|
- value: https://facebook.com/rijksmuseum/cover.jpg
|
|
description: Facebook cover image
|
|
has_or_had_associated_digital_platform:
|
|
range: DigitalPlatform
|
|
required: false
|
|
examples:
|
|
- value: https://nde.nl/ontology/hc/platform/rijksmuseum-website
|
|
description: Linked to main Rijksmuseum website
|
|
has_or_had_associated_auxiliary_platform:
|
|
range: AuxiliaryDigitalPlatform
|
|
required: false
|
|
examples:
|
|
- value: https://nde.nl/ontology/hc/aux-platform/night-watch-exhibition
|
|
description: Instagram for Night Watch exhibition
|
|
created_date:
|
|
range: date
|
|
required: false
|
|
examples:
|
|
- value: '2012-03-15'
|
|
description: Account created March 2012
|
|
temporal_extent: # was: valid_from + valid_to - migrated per Rule 53
|
|
description: |
|
|
Validity period using CIDOC-CRM TimeSpan.
|
|
MIGRATED from valid_from + valid_to per slot_fixes.yaml (Rule 53).
|
|
range: TimeSpan
|
|
inlined: true
|
|
required: false
|
|
examples:
|
|
- value:
|
|
begin_of_the_begin: '2012-03-15'
|
|
description: Active from March 2012
|
|
- value:
|
|
begin_of_the_begin: '2012-03-15'
|
|
end_of_the_end: '2024-06-01'
|
|
description: Account active March 2012 to June 2024
|
|
has_or_had_account_status:
|
|
range: string
|
|
required: false
|
|
examples:
|
|
- value: ACTIVE
|
|
description: Account is actively maintained
|
|
- value: MIGRATED
|
|
description: Moved to new platform
|
|
language:
|
|
range: string
|
|
required: false
|
|
examples:
|
|
- value: nl
|
|
description: Dutch language profile
|
|
- value: en
|
|
description: English language profile
|
|
is_or_was_derived_from: # was: was_derived_from - migrated per Rule 53
|
|
range: CustodianObservation
|
|
multivalued: true
|
|
required: false
|
|
is_or_was_generated_by: # was: was_generated_by - migrated per Rule 53
|
|
range: ReconstructionActivity
|
|
required: false
|
|
refers_to_custodian:
|
|
range: Custodian
|
|
required: true
|
|
examples:
|
|
- value: https://nde.nl/ontology/hc/nl-nh-ams-m-rm-q190804
|
|
description: Rijksmuseum custodian hub
|
|
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
|
|
has_or_had_verification_status: # was: verified: true
|
|
status: VERIFIED
|
|
follower_count: 1200000
|
|
post_count: 3500
|
|
has_or_had_engagement_metric:
|
|
- has_or_had_type: "Engagement Rate"
|
|
has_or_had_value: 2.5
|
|
has_or_had_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
|
|
description: Rijksmuseum Instagram (supports main website)
|
|
- 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
|
|
has_or_had_verification_status: # was: verified: false
|
|
status: UNVERIFIED
|
|
follower_count: 450
|
|
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
|
|
description: Local heritage society with Facebook as primary presence
|
|
- value:
|
|
social_media_profile_id: https://nde.nl/ontology/hc/social-media/rijksmuseum-x
|
|
platform_type: X_TWITTER
|
|
account_name: rijksmuseum
|
|
has_or_had_account_identifier: '20137141'
|
|
profile_url: https://x.com/rijksmuseum
|
|
is_primary_digital_presence: false
|
|
has_or_had_verification_status: # was: verified: true - migrated per Rule 53
|
|
status: VERIFIED
|
|
follower_count: 350000
|
|
following_count: 150
|
|
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
|
|
description: Rijksmuseum X/Twitter profile
|