id: https://nde.nl/ontology/hc/class/LinkedInProfileData name: linkedin_profile_data_class title: LinkedIn Profile Data Class version: 1.0.0 prefixes: linkml: https://w3id.org/linkml/ hc: https://nde.nl/ontology/hc/ schema: http://schema.org/ foaf: http://xmlns.com/foaf/0.1/ imports: - linkml:types - ./WorkExperience - ./EducationCredential - ./LanguageProficiency - ./SpecificityAnnotation - ./TemplateSpecificityScores - ../slots/specificity_annotation - ../slots/template_specificity - ../slots/has_or_had_about_text - ../slots/connections_text - ../slots/education - ../slots/experience - ../slots/headline - ../slots/has_or_had_language - ../slots/languages_raw - ../slots/profile_image_url - ../slots/profile_linkedin_url - ../slots/profile_location - ../slots/profile_name - ../slots/skill default_range: string classes: LinkedInProfileData: class_uri: schema:Person description: | Core profile data extracted from a LinkedIn profile. Contains the person's professional information including: - Basic info (name, headline, location, connections) - About/summary text - Career history (experience array) - Education history (education array) - Skills and languages - Profile image URL **Note on Data Representation**: - Raw strings are preserved for provenance (e.g., connections text) - Nested objects use defined classes (WorkExperience, EducationCredential) - Skills are simple strings (not structured objects) - Languages may be raw strings or LanguageProficiency objects exact_mappings: - schema:Person close_mappings: - foaf:Person slots: - about_text - connections_text - education - experience - headline - has_or_had_language - languages_raw - profile_image_url - profile_linkedin_url - profile_location - profile_name - skill - specificity_annotation - template_specificity slot_usage: profile_name: description: | Full name of the person as displayed on LinkedIn. slot_uri: schema:name range: string required: true examples: - value: Sander Hulleman - value: Jan van der Berg profile_linkedin_url: description: | LinkedIn profile URL for this person. Duplicated from extraction_metadata for convenience. slot_uri: schema:url range: uri pattern: ^https://www\.linkedin\.com/in/[a-z0-9-]+/?$ examples: - value: https://www.linkedin.com/in/sander-hulleman-5017b9105 headline: description: | Professional headline/tagline from LinkedIn. Typically includes current job title and/or professional identity. slot_uri: schema:jobTitle range: string examples: - value: Stafadviseur PO description: Dutch job title - value: Senior Curator | Rijksmuseum description: Title with organization - value: Digital Archivist | Heritage Data Specialist description: Multiple roles profile_location: description: | Location as displayed on LinkedIn profile. Format varies: "City, Region, Country" or "City, Country" slot_uri: schema:homeLocation range: string examples: - value: Arnhem, Gelderland, Netherlands - value: Amsterdam, Netherlands connections_text: description: | Raw connections/followers text from LinkedIn. Format: "X connections • Y followers" Preserved as-is for provenance. slot_uri: schema:description range: string examples: - value: 246 connections • 248 followers - value: 500+ connections has_or_had_about_text: description: | About/summary section text from LinkedIn profile. May be absent if person hasn't written a summary. slot_uri: schema:description range: string examples: - value: Third year student at Stenden University... experience: description: | Work experience entries from LinkedIn. Array of WorkExperience objects with job title, company, dates, location. range: WorkExperience multivalued: true inlined_as_list: true education: description: | Education entries from LinkedIn. Array of EducationCredential objects with school, degree, years. range: EducationCredential multivalued: true inlined_as_list: true skill: description: | Skills listed on LinkedIn profile. Simple string array (not structured objects). slot_uri: schema:knowsAbout range: string multivalued: true examples: - value: - education - teaching - curriculum development languages_raw: description: | Raw language strings as extracted from LinkedIn. Format: "Language - Proficiency level" Use this when storing unprocessed data. range: string multivalued: true examples: - value: - English - Native or bilingual - Dutch - Native or bilingual has_or_had_language: description: | Parsed language proficiency entries. Array of LanguageProficiency objects with language name, code, level. Use this when storing processed/structured data. range: LanguageProficiency multivalued: true inlined_as_list: true profile_image_url: description: | URL to the LinkedIn profile photo. Should be the actual CDN URL (media.licdn.com), not overlay page. See AGENTS.md Rule 16 for photo URL requirements. slot_uri: schema:image range: uri pattern: ^https://media\.licdn\.com/.*$ examples: - value: https://media.licdn.com/dms/image/v2/C4E03AQHoGyR6G0kphA/profile-displayphoto-shrink_200_200/... specificity_annotation: range: SpecificityAnnotation inlined: true template_specificity: range: TemplateSpecificityScores inlined: true comments: - Inlined within LinkedInProfile as profile_data - experience and education use inlined_as_list for JSON array representation - languages_raw preserves original strings; languages has parsed objects - profile_image_url must be CDN URL per AGENTS.md Rule 16 slots: profile_name: description: Full name of the person range: string profile_linkedin_url: description: LinkedIn profile URL range: uri headline: description: Professional headline/tagline range: string profile_location: description: Location as displayed on profile range: string connections_text: description: Raw connections/followers text range: string has_or_had_about_text: description: About/summary section text range: string experience: description: Work experience entries range: WorkExperience multivalued: true education: description: Education entries range: EducationCredential multivalued: true skill: description: Skills listed on profile range: string multivalued: true languages_raw: description: Raw language strings range: string multivalued: true has_or_had_language: description: Parsed language proficiency entries range: LanguageProficiency multivalued: true profile_image_url: description: Profile photo URL range: uri