- Apply Rule 39: RiC-O style hasOrHad*/isOrWas* for temporal slots - Apply Rule 43: Singular noun convention (keywords → keyword) - Update slot references to match renamed slot files - Maintain schema integrity across all class definitions
225 lines
7.5 KiB
YAML
225 lines
7.5 KiB
YAML
id: https://nde.nl/ontology/hc/class/WorkExperience
|
|
name: work_experience_class
|
|
title: Work Experience Class
|
|
version: 1.0.0
|
|
prefixes:
|
|
linkml: https://w3id.org/linkml/
|
|
hc: https://nde.nl/ontology/hc/
|
|
schema: http://schema.org/
|
|
org: http://www.w3.org/ns/org#
|
|
prov: http://www.w3.org/ns/prov#
|
|
crm: http://www.cidoc-crm.org/cidoc-crm/
|
|
xsd: http://www.w3.org/2001/XMLSchema#
|
|
imports:
|
|
- linkml:types
|
|
- ../metadata
|
|
- TimeSpan
|
|
- ../slots/employer_linkedin_url
|
|
- ../slots/employer_name
|
|
- ../slots/employment_dates_raw
|
|
- ../slots/employment_end_date
|
|
- ../slots/employment_start_date
|
|
- ../slots/heritage_employer
|
|
- ../slots/is_current_position
|
|
- ../slots/job_description
|
|
- ../slots/job_title
|
|
- ../slots/specificity_annotation
|
|
- ../slots/template_specificity
|
|
- ../slots/work_location
|
|
- ./SpecificityAnnotation
|
|
- ./TemplateSpecificityScores
|
|
default_range: string
|
|
classes:
|
|
WorkExperience:
|
|
class_uri: schema:OrganizationRole
|
|
description: |
|
|
A single work experience entry from a person's career history.
|
|
|
|
Models employment positions with job title, employer, dates, and location.
|
|
Uses simplified date representation (not full TimeSpan) since LinkedIn
|
|
data typically has precise month/year values.
|
|
|
|
**Schema.org Alignment**:
|
|
- Represents a schema:OrganizationRole (role at an organization)
|
|
- Related to org:Membership (W3C Organization Ontology)
|
|
|
|
**Use Cases**:
|
|
- LinkedIn profile experience entries
|
|
- CV/resume work history
|
|
- Staff has_or_had_affiliation tracking
|
|
|
|
**Heritage Relevance**:
|
|
- Each work experience can be tagged for heritage sector relevance
|
|
- Links to CustodianName if employer is a known heritage custodian
|
|
exact_mappings:
|
|
- schema:OrganizationRole
|
|
close_mappings:
|
|
- org:Membership
|
|
- crm:E7_Activity
|
|
related_mappings:
|
|
- schema:EmployeeRole
|
|
- prov:Association
|
|
slots:
|
|
- employer_linkedin_url
|
|
- employer_name
|
|
- employment_dates_raw
|
|
- employment_end_date
|
|
- employment_start_date
|
|
- heritage_employer
|
|
- is_current_position
|
|
- job_description
|
|
- job_title
|
|
- specificity_annotation
|
|
- template_specificity
|
|
- work_location
|
|
slot_usage:
|
|
job_title:
|
|
description: |
|
|
The job title or role held at this position.
|
|
Schema.org: schema:roleName
|
|
slot_uri: schema:roleName
|
|
range: string
|
|
required: true
|
|
examples:
|
|
- value: Staff Adviseur
|
|
description: Dutch job title
|
|
- value: Senior Curator, Asian Art
|
|
description: Curatorial role with specialization
|
|
employer_name:
|
|
description: |
|
|
Name of the employing organization.
|
|
Schema.org: schema:name of the schema:Organization
|
|
slot_uri: schema:memberOf
|
|
range: string
|
|
required: true
|
|
examples:
|
|
- value: The Dutch Inspectorate of Education
|
|
description: Full organization name
|
|
- value: Rijksmuseum
|
|
description: Heritage institution employer
|
|
employer_linkedin_url:
|
|
description: |
|
|
LinkedIn company page URL for the employer.
|
|
slot_uri: schema:url
|
|
range: uri
|
|
pattern: ^https://www\.linkedin\.com/company/[a-z0-9-]+/?$
|
|
examples:
|
|
- value: https://www.linkedin.com/company/rijksmuseum
|
|
employment_dates_raw:
|
|
description: |
|
|
Raw date string as extracted from LinkedIn.
|
|
Format varies: "Apr 2025 - Present", "2020 - 2023", etc.
|
|
Preserved for provenance; use parsed fields for queries.
|
|
slot_uri: schema:description
|
|
range: string
|
|
examples:
|
|
- value: Apr 2025 - Present
|
|
description: Current position with start month
|
|
- value: Aug 2017 - Apr 2025
|
|
description: Completed position with month precision
|
|
- value: 2015 - 2020
|
|
description: Year-only precision
|
|
employment_start_date:
|
|
description: |
|
|
Parsed start date of employment (ISO 8601).
|
|
May be year-only (YYYY) or month-precision (YYYY-MM).
|
|
slot_uri: schema:startDate
|
|
range: date
|
|
examples:
|
|
- value: 2025-04
|
|
description: April 2025 start
|
|
- value: '2017'
|
|
description: Year-only precision
|
|
employment_end_date:
|
|
description: |
|
|
Parsed end date of employment (ISO 8601).
|
|
Null/absent indicates current position.
|
|
slot_uri: schema:endDate
|
|
range: date
|
|
examples:
|
|
- value: 2025-04
|
|
description: Ended April 2025
|
|
- value: null
|
|
description: Current position (ongoing)
|
|
is_current_position:
|
|
description: |
|
|
Whether this is the person's current position.
|
|
True if employment_dates_raw contains "Present" or end_date is null.
|
|
slot_uri: schema:activeStatus
|
|
range: boolean
|
|
ifabsent: 'false'
|
|
examples:
|
|
- value: true
|
|
description: Currently employed at this position
|
|
work_location:
|
|
description: |
|
|
Location of the work position (city, region, country).
|
|
Raw string as extracted; use Location class for structured data.
|
|
slot_uri: schema:workLocation
|
|
range: string
|
|
examples:
|
|
- value: Utrecht, Netherlands
|
|
description: City and country
|
|
- value: Amsterdam, Noord-Holland, Netherlands
|
|
description: City, region, country
|
|
job_description:
|
|
description: |
|
|
Description of responsibilities and achievements (if available).
|
|
Often not present in LinkedIn basic profile data.
|
|
slot_uri: schema:description
|
|
range: string
|
|
heritage_employer:
|
|
description: |
|
|
Whether the employer is a known heritage custodian.
|
|
If true, employer_name should match a CustodianName.
|
|
slot_uri: hc:heritageRelevant
|
|
range: boolean
|
|
ifabsent: 'false'
|
|
comments:
|
|
- Set to true if employer is museum, archive, library, etc.
|
|
- Links to HeritageTypeEnum for classification
|
|
specificity_annotation:
|
|
range: SpecificityAnnotation
|
|
inlined: true
|
|
template_specificity:
|
|
range: TemplateSpecificityScores
|
|
inlined: true
|
|
comments:
|
|
- Inlined in LinkedInProfile.experience[] as multivalued list
|
|
- Preserves raw LinkedIn date formats for provenance
|
|
- Current positions have is_current_position=true and null end_date
|
|
- heritage_employer enables filtering for heritage sector careers
|
|
see_also:
|
|
- https://schema.org/OrganizationRole
|
|
- https://www.w3.org/TR/vocab-org/#class-membership
|
|
slots:
|
|
job_title:
|
|
description: Job title or role held at this position
|
|
range: string
|
|
employer_name:
|
|
description: Name of the employing organization
|
|
range: string
|
|
employer_linkedin_url:
|
|
description: LinkedIn company page URL for the employer
|
|
range: uri
|
|
employment_dates_raw:
|
|
description: Raw date string as extracted from LinkedIn
|
|
range: string
|
|
employment_start_date:
|
|
description: Parsed start date of employment
|
|
range: date
|
|
employment_end_date:
|
|
description: Parsed end date of employment
|
|
range: date
|
|
is_current_position:
|
|
description: Whether this is a current position
|
|
range: boolean
|
|
work_location:
|
|
description: Location of the work position
|
|
range: string
|
|
job_description:
|
|
description: Description of responsibilities and achievements
|
|
range: string
|
|
heritage_employer:
|
|
description: Whether employer is a known heritage custodian
|
|
range: boolean
|