glam/schemas/20251121/linkml/modules/classes/ConnectionSourceMetadata.yaml

153 lines
4.7 KiB
YAML

id: https://nde.nl/ontology/hc/class/ConnectionSourceMetadata
name: connection_source_metadata_class
title: Connection Source Metadata Class
version: 1.0.0
prefixes:
linkml: https://w3id.org/linkml/
hc: https://nde.nl/ontology/hc/
schema: http://schema.org/
prov: http://www.w3.org/ns/prov#
dct: http://purl.org/dc/terms/
dcterms: http://purl.org/dc/terms/
crm: http://www.cidoc-crm.org/cidoc-crm/
skos: http://www.w3.org/2004/02/skos/core#
rdfs: http://www.w3.org/2000/01/rdf-schema#
org: http://www.w3.org/ns/org#
xsd: http://www.w3.org/2001/XMLSchema#
imports:
- linkml:types
- ./SpecificityAnnotation
- ./TemplateSpecificityScore
- ./TemplateSpecificityType
- ./TemplateSpecificityTypes
- ../enums/ScrapeMethodEnum
- ../slots/connections_extracted
- ../slots/note
- ../slots/scrape_method
- ../slots/scraped_timestamp
- ../slots/source_url
- ../slots/specificity_annotation
- ../slots/has_or_had_label
- ./Label
- ../slots/has_or_had_profile
- ./SocialMediaProfile
- ../slots/has_or_had_score
default_prefix: hc
classes:
ConnectionSourceMetadata:
class_uri: prov:Activity
description: 'Provenance metadata about how the connections were extracted.
Records the extraction context including:
- Source URL (LinkedIn search or profile page)
- When the extraction occurred
- Which method was used (manual browse, automated scrape)
- Target profile being analyzed
- Count of connections extracted
**Scrape Methods**:
- manual_linkedin_browse: Manual copy-paste while logged in
- linkedin_html_parser: Parsed from saved HTML file
- exa_search: Extracted via Exa API
'
exact_mappings:
- prov:Activity
slots:
- connections_extracted
- note
- scrape_method
- scraped_timestamp
- source_url
- specificity_annotation
- has_or_had_label
- has_or_had_profile
- has_or_had_score
slot_usage:
source_url:
range: uri
required: true
examples:
- value: https://www.linkedin.com/search/results/people/?network=%5B%22F%22%2C%22S%22%2C%22O%22%5D
description: LinkedIn connection search URL
scraped_timestamp:
range: datetime
required: true
examples:
- value: '2025-12-09T22:00:00Z'
scrape_method:
range: ScrapeMethodEnum
required: true
examples:
- value: alexandr-belov-bb547b46
has_or_had_label:
range: Label
inlined: true
description: 'Target name of the connection source (person name).
MIGRATED 2026-01-14: Replaces target_name slot.
'
required: true
examples:
- value: "Label:\n label_value: \"Giovanna Fossati\"\n label_type: \"person_name\"\n"
description: Person name for connection source
has_or_had_profile:
description: 'LinkedIn profile of the person whose connections were extracted.
MIGRATED 2026-01-16: Replaces target_profile slot per Rule 53/56.
The SocialMediaProfile class provides structured representation
including platform type, account name, and profile URL rather than
just a string slug.
'
range: SocialMediaProfile
inlined: true
required: true
examples:
- value:
social_media_profile_id: https://nde.nl/ontology/hc/social-media/giovanna-fossati-linkedin
platform_type: LINKEDIN
has_or_had_account_name: giovanna-fossati-12345
profile_url: https://www.linkedin.com/in/giovanna-fossati-12345/
refers_to_custodian: https://nde.nl/ontology/hc/nl-nh-ams-m-efm
description: LinkedIn profile for connection extraction source
- value:
social_media_profile_id: https://nde.nl/ontology/hc/social-media/alexandr-belov-linkedin
platform_type: LINKEDIN
has_or_had_account_name: alexandr-belov-bb547b46
profile_url: https://www.linkedin.com/in/alexandr-belov-bb547b46/
description: LinkedIn profile with minimal required fields
connections_extracted:
range: integer
required: true
minimum_value: 0
examples:
- value: 776
note:
range: string
examples:
- value: Raw scrape in giovannafossati_connections_20251209T220000Z_note-max100p-1st2nd3th.md
comments:
- Aligns with PROV-O Activity pattern
- scraped_timestamp maps to prov:endedAtTime
- has_or_had_profile links to SocialMediaProfile representing the LinkedIn profile analyzed
annotations:
specificity_score: 0.1
specificity_rationale: Generic utility class/slot created during migration
custodian_types: "['*']"
custodian_types_rationale: Universal utility concept