glam/schemas/20251121/linkml/modules/classes/PrimaryDigitalPresenceAssertion.yaml
kempersc 3fb27c15e2 Refactor and archive deprecated slots; update migration records
- Removed deprecated slots: storage_security_level, version_number, video_comment, visiting_hour, was_asserted_by, was_revision_of, writing_system.
- Archived corresponding YAML files for deprecated slots with detailed migration notes.
- Updated slot definitions for has_collection and encompassing_body to reflect new naming conventions and temporal patterns.
- Enhanced metadata extraction in index_persons_qdrant.py to include WCMS registration and data sources.
- Modified hybrid_retriever and multi_embedding_retriever to support filtering by WCMS registration status.
2026-01-15 13:16:59 +01:00

225 lines
12 KiB
YAML

id: https://nde.nl/ontology/hc/class/PrimaryDigitalPresenceAssertion
name: primary_digital_presence_assertion
title: PrimaryDigitalPresenceAssertion Class
imports:
- linkml:types
- ./WebObservation
- ./TimeSpan
- ../enums/DigitalPresenceTypeEnum
- ../slots/supersede
- ../slots/confidence_score
- ../slots/superseded_by
- ../slots/is_or_was_about_digital_presence
# REMOVED - migrated to is_or_was_asserted_by (Rule 53)
# - ../slots/asserted_by
- ../slots/is_or_was_asserted_by
- ./Asserter
- ../slots/has_assertion_date
- ../slots/has_or_had_identifier
- ../slots/has_assertion_rationale
- ../slots/has_assertion_value
- ../slots/has_or_had_based_on_observation
- ../slots/digital_presence_type
- ../slots/specificity_annotation
- ../slots/template_specificity
- ../slots/temporal_extent
- ./SpecificityAnnotation
- ./TemplateSpecificityScores
# was_asserted_by REMOVED - fully migrated to is_or_was_asserted_by (Rule 53, 2026-01-15)
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
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#
default_prefix: hc
classes:
PrimaryDigitalPresenceAssertion:
class_uri: crm:E13_Attribute_Assignment
description: "A temporal assertion about whether a digital presence (SocialMediaProfile,\nDigitalPlatform, AuxiliaryDigitalPlatform,\
\ or InternetOfThings) serves as \nthe PRIMARY or MAIN digital presence for a heritage custodian.\n\n**SUPPORTED DIGITAL\
\ PRESENCE TYPES**:\n\n1. **DigitalPlatform** - Primary websites, discovery portals, repositories\n2. **AuxiliaryDigitalPlatform**\
\ - Project sites, exhibition microsites\n3. **SocialMediaProfile** - Third-party platform accounts (Facebook, Instagram)\n\
4. **InternetOfThings** - Physical devices with digital connectivity\n\nUse `digital_presence_type` slot to classify\
\ which TYPE of presence is\nbeing characterized, using DigitalPresenceTypeEnum values.\n\n**WHY TEMPORAL ASSERTIONS?**\n\
\nThe \"primary digital presence\" status can change over time:\n\n- 2020: Heritage society has ONLY Facebook → Facebook\
\ is primary (true)\n- 2022: Society launches website → Facebook becomes secondary (false)\n- 2024: Website abandoned,\
\ back to Facebook → Facebook is primary again (true)\n\nEach change is documented via WebObservation provenance.\n\n\
**CIDOC-CRM ALIGNMENT**:\n\nMaps to `crm:E13_Attribute_Assignment`:\n- \"Comprises the actions of making assertions\
\ about one particular property \n of an object or any single relation between two items or concepts.\"\n- Allows temporal\
\ scoping of the assertion\n- Provides provenance for WHO made the assertion and WHEN\n\nKey CRM properties:\n- `P140_assigned_attribute_to`\
\ → The digital presence being characterized\n- `P141_assigned` → The boolean value (true/false for is_primary)\n- `P4_has_time-span`\
\ → When this assertion is valid\n- `P17_was_motivated_by` → The WebObservation(s) supporting this assertion\n\n**PROVENANCE\
\ CHAIN**:\n\n```\nWebObservation (prov:Activity)\n │\n ├── observed website/social media → SourceDocument\n\
\ │\n └── prov:generated → PrimaryDigitalPresenceAssertion\n │\n \
\ ├── assertion_value: true/false\n ├── temporal_extent: TimeSpan\n\
\ └── about_digital_presence: SocialMediaProfile\n```\n\n**RELATIONSHIP TO SOCIALMEDIACLAIMS**:\n\
\nThis is similar to how WebClaim works for extracting specific facts:\n- WebClaim: \"The organization name is X\" (extracted\
\ from HTML at XPath)\n- PrimaryDigitalPresenceAssertion: \"This is the primary presence\" (inferred from observations)\n\
\nThe key difference is that primary presence status is INFERRED, not directly stated:\n- Check if custodian has a website\
\ (DigitalPlatform)\n- Compare follower counts, engagement, update frequency\n- Observe which URLs are promoted in communications\n\
\n**TEMPORAL VALIDITY**:\n\nUses TimeSpan (crm:E52_Time-Span) for fuzzy temporal boundaries:\n\n- `begin_of_the_begin`:\
\ Earliest possible start of primary status\n- `end_of_the_begin`: Latest possible start of primary status\n- `begin_of_the_end`:\
\ Earliest possible end of primary status\n- `end_of_the_end`: Latest possible end of primary status\n\nFor ongoing\
\ assertions, leave end bounds as null.\n\n**EXAMPLES**:\n\n1. **Facebook as Only Presence (Clear Primary)**:\n ```yaml\n\
\ PrimaryDigitalPresenceAssertion:\n assertion_id: \".../assertion/hvn-facebook-primary-2020\"\n about_digital_presence:\
\ \".../social-media/hvn-facebook\"\n assertion_value: true\n assertion_rationale: \"No website exists; Facebook\
\ is only digital presence\"\n temporal_extent:\n begin_of_the_begin: \"2015-03-01\" # Facebook page created\n\
\ # No end bounds - still primary\n based_on_observations:\n - \".../observation/hvn-website-check-2025-11\"\
\ # Confirms no website\n - \".../observation/hvn-facebook-scrape-2025-11\"\n ```\n\n2. **Instagram Supporting\
\ Website (Secondary)**:\n ```yaml\n PrimaryDigitalPresenceAssertion:\n assertion_id: \".../assertion/rijksmuseum-instagram-secondary\"\
\n about_digital_presence: \".../social-media/rijksmuseum-instagram\"\n assertion_value: false\n assertion_rationale:\
\ >-\n Website (rijksmuseum.nl) is primary. Instagram supports and promotes\n website content. Instagram\
\ bio links to website.\n temporal_extent:\n begin_of_the_begin: \"2012-03-15\" # Instagram account created\n\
\ based_on_observations:\n - \".../observation/rijksmuseum-website-2025-11\"\n - \".../observation/rijksmuseum-instagram-2025-11\"\
\n ```\n\n3. **Status Change (Website Abandoned)**:\n ```yaml\n # Previous assertion (now superseded)\n PrimaryDigitalPresenceAssertion:\n\
\ assertion_id: \".../assertion/club-facebook-secondary-2020\"\n about_digital_presence: \".../social-media/club-facebook\"\
\n assertion_value: false\n temporal_extent:\n begin_of_the_begin: \"2018-01-01\"\n end_of_the_end:\
\ \"2023-06-30\" # Website abandoned\n superseded_by: \".../assertion/club-facebook-primary-2023\"\n \n # Current\
\ assertion\n PrimaryDigitalPresenceAssertion:\n assertion_id: \".../assertion/club-facebook-primary-2023\"\n\
\ about_digital_presence: \".../social-media/club-facebook\"\n assertion_value: true\n assertion_rationale:\
\ \"Website no longer maintained; Facebook now primary\"\n temporal_extent:\n begin_of_the_begin: \"2023-07-01\"\
\n based_on_observations:\n - \".../observation/club-website-404-2023-07\"\n - \".../observation/club-facebook-active-2023-07\"\
\n ```\n"
exact_mappings:
- crm:E13_Attribute_Assignment
close_mappings:
- prov:Activity
- schema:AssessAction
related_mappings:
- crm:P140_assigned_attribute_to
- crm:P141_assigned
- prov:wasGeneratedBy
slots:
- is_or_was_about_digital_presence
# REMOVED - migrated to is_or_was_asserted_by (Rule 53)
# - asserted_by
- is_or_was_asserted_by
- has_assertion_date
- has_or_had_identifier
- has_assertion_rationale
- has_assertion_value
- has_or_had_based_on_observation
- confidence_score
- digital_presence_type
- specificity_annotation
- superseded_by
- supersede
- template_specificity
- temporal_extent
slot_usage:
has_or_had_identifier:
range: uriorcurie
required: true
identifier: true
examples:
- value: https://nde.nl/ontology/hc/assertion/primary-presence/hvn-facebook-2025
is_or_was_about_digital_presence:
range: uriorcurie
required: true
examples:
- value: https://nde.nl/ontology/hc/social-media/hvn-facebook
- value: https://nde.nl/ontology/hc/platform/rijksmuseum-website
- value: https://nde.nl/ontology/hc/iot/museum-beacon-network
digital_presence_type:
range: DigitalPresenceTypeEnum
required: false
examples:
- value: SOCIAL_MEDIA
description: Characterizing a social media profile
- value: WEBSITE
description: Characterizing main website
- value: IOT_BEACON
description: Characterizing beacon network
has_assertion_value:
range: boolean
required: true
examples:
- value: true
description: Facebook IS the primary digital presence
- value: false
description: Instagram is secondary to main website
has_assertion_rationale:
range: string
required: false
examples:
- value: No formal website exists for this heritage society. Facebook page is the only discoverable online presence
with 450 followers and regular updates about local history events.
temporal_extent:
range: TimeSpan
required: false
inlined: true
examples:
- value:
begin_of_the_begin: '2015-03-01T00:00:00Z'
end_of_the_begin: '2015-03-01T00:00:00Z'
description: Primary status began precisely on March 1, 2015
has_or_had_based_on_observation:
range: WebObservation
multivalued: true
inlined_as_list: true
required: false
examples:
- value:
- observation_id: '.../observation/hvn-website-check-2025-11'
- observation_id: '.../observation/hvn-facebook-scrape-2025-11'
has_assertion_date:
range: datetime
required: false
examples:
- value: '2025-11-29T14:30:00Z'
is_or_was_asserted_by:
range: Asserter
inlined: true
required: false
description: >-
The agent responsible for making this assertion.
MIGRATED from asserted_by (Rule 53) - changed from string to Asserter
class for richer provenance tracking.
examples:
- value:
has_or_had_identifier: https://nde.nl/ontology/hc/asserter/primary-presence-analyzer
has_or_had_label: primary-presence-analyzer
asserter_type: AUTOMATED_SYSTEM
asserter_version: "1.0"
description: Automated system asserter
- value:
has_or_had_identifier: https://nde.nl/ontology/hc/asserter/jane-doe
has_or_had_label: Jane Doe
asserter_type: HUMAN_ANALYST
asserter_contact: jane.doe@heritage-org.nl
description: Human analyst asserter
# was_asserted_by REMOVED - fully migrated to is_or_was_asserted_by (Rule 53, 2026-01-15)
confidence_score:
range: float
required: false
minimum_value: 0.0
maximum_value: 1.0
examples:
- value: 0.95
description: High confidence - no website exists
- value: 0.65
description: Medium confidence - both active, unclear primary
superseded_by:
range: uriorcurie
required: false
examples:
- value: https://nde.nl/ontology/hc/assertion/club-facebook-primary-2023
supersede:
range: uriorcurie
required: false
examples:
- value: https://nde.nl/ontology/hc/assertion/club-facebook-secondary-2020
comments:
- Models primary presence status as temporal assertion, not static boolean
- Based on CIDOC-CRM E13_Attribute_Assignment pattern
- Supports change tracking via supersedes/superseded_by links
- Provenance via WebObservation references
- TimeSpan allows fuzzy temporal boundaries
- Confidence scores reflect evidence quality
- 'Supports ALL digital presence types: DigitalPlatform, AuxiliaryDigitalPlatform, SocialMediaProfile, InternetOfThings'
see_also:
- https://cidoc-crm.org/html/cidoc_crm_v7.1.3.html#E13
- https://www.w3.org/TR/prov-o/