id: https://nde.nl/ontology/hc/class/PrimaryDigitalPresenceAssertion name: primary_digital_presence_assertion title: PrimaryDigitalPresenceAssertion Class imports: - linkml:types - ./WebObservation - ./TimeSpan # MIGRATED 2026-01-25: DigitalPresenceTypeEnum → DigitalPresence class hierarchy (Rule 53) # - ../enums/DigitalPresenceTypeEnum # REMOVED - ../slots/supersedes_or_superseded # was: supersede - migrated per Rule 53/56 (2026-01-17) # REMOVED 2026-01-19: ../slots/confidence_score - migrated to is_or_was_generated_by + GenerationEvent + ConfidenceScore (Rule 53) - ../slots/is_or_was_generated_by - ./GenerationEvent - ./ConfidenceScore - ./ConfidenceMethod - ../slots/is_or_was_superseded_by # was: superseded_by - migrated per Rule 53/56 (2026-01-16) - ../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 # MIGRATED 2026-01-25: digital_presence_type → asserts_or_asserted + DigitalPresence (Rule 53) # - ../slots/digital_presence_type # REMOVED - ../slots/asserts_or_asserted - ./DigitalPresence - ./DigitalPresenceType - ./DigitalPresenceTypes - ../slots/specificity_annotation - ../slots/has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - ../slots/temporal_extent - ./SpecificityAnnotation - ./TemplateSpecificityScore # was: TemplateSpecificityScores - migrated per Rule 53 (2026-01-17) - ./TemplateSpecificityType - ./TemplateSpecificityTypes # 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 # REMOVED 2026-01-19: confidence_score - migrated to is_or_was_generated_by (Rule 53) - is_or_was_generated_by # MIGRATED 2026-01-25: digital_presence_type → asserts_or_asserted (Rule 53) - asserts_or_asserted - specificity_annotation - is_or_was_superseded_by # was: superseded_by - migrated per Rule 53/56 (2026-01-16) - supersedes_or_superseded # was: supersede - migrated per Rule 53/56 (2026-01-17) - has_or_had_score # was: template_specificity - migrated per Rule 53 (2026-01-17) - 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 # MIGRATED 2026-01-25: digital_presence_type → asserts_or_asserted (Rule 53) asserts_or_asserted: range: DigitalPresence required: false inlined: true description: | The digital presence classification being asserted. MIGRATED from digital_presence_type per slot_fixes.yaml (Rule 53, 2026-01-25). Uses DigitalPresence wrapper with typed classification (WebsitePresenceType, SocialMediaPresenceType, etc.). examples: - value: has_or_had_type: has_or_had_label: "Social Media Profile" has_or_had_identifier: "https://nde.nl/ontology/hc/type/social-media" description: Characterizing a social media profile - value: has_or_had_type: has_or_had_label: "Website" has_or_had_identifier: "https://nde.nl/ontology/hc/type/website" description: Characterizing main website 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) # REMOVED 2026-01-19: confidence_score - migrated to is_or_was_generated_by (Rule 53) is_or_was_generated_by: range: GenerationEvent required: false inlined: true description: >- Generation event containing confidence score for this assertion. MIGRATED 2026-01-19: Replaces confidence_score slot with structured pattern. examples: - value: has_or_had_score: has_or_had_score: 0.95 has_or_had_method: "evidence_analysis" description: High confidence - no website exists, Facebook only presence - value: has_or_had_score: has_or_had_score: 0.65 has_or_had_method: "comparative_analysis" description: Medium confidence - both presences active, unclear primary is_or_was_superseded_by: # was: superseded_by - migrated per Rule 53/56 (2026-01-16) range: uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/assertion/club-facebook-primary-2023 supersedes_or_superseded: # was: supersede - migrated per Rule 53/56 (2026-01-17) range: uriorcurie required: false examples: - value: https://nde.nl/ontology/hc/assertion/club-facebook-secondary-2020 comments: - 'MIGRATED 2026-01-19: confidence_score → is_or_was_generated_by + GenerationEvent + ConfidenceScore (Rule 53)' - Models primary presence status as temporal assertion, not static boolean - Based on CIDOC-CRM E13_Attribute_Assignment pattern - Supports change tracking via supersedes_or_superseded/is_or_was_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/