A collection of extending Schema.org to cover the domain of job market.
There's an associated repository for this extension proposal, which contains:
- RDF/Turtle serialization of the Schema.org extension proposal
- examples describing existing JobPostings (in RDF/Turtle)
- diagram of a data model for an application based on Schema.org + this extension
- diagram of implementation of this data model using common vocabularies + newly minted vocabulary terms
There's a Czech project about applying semantic web technologies for the "long-tail" of job market, for which this extension will be used. The main goal of the extension is to clean some of the issues with original Schema.org and provide data structure that is:
- easy to use for web developers to embed in HTML
- provides sufficiently detailed structure for "intelligent" match-making between job postings and job seekers to be feasible
The initial proposal was made by Jindřich Mynarz, Richard Cyganiak, Eliška Hutníková, Josef Šlerka, Vojtěch Hýža and Jakub Fiala.
The extension proposal is licensed with the Creative Commons Attribution-ShareAlike 3.0 Czech Republic License, in order to comply with the Schema.org's licence.
Thing > Intangible > QuantitativeValue > Compensation
Properties from QuantitativeValue:
Properties from Compensation:
- currency: Text (The currency (in 3-letter ISO 4217 format) of the compensation.)
- type: Text (The type of compensation. Recommended values are: annual, hourly, fixed.)
- PriceSpecification is close (a monetary value with a range), but the naming strongly implies its use as a price or charge for something, which seems inappropriate here.
Thing > Intangible > JobPosting
Properties from JobPosting:
- contact: ContactPoint
- experienceRequirements: WorkExperience
- industry: (Amend the original description to include also private employment etc. Labelling this property industry is too restrictive. A possible option to broaden its range is to use a label like category.)
- compensation: Compensation
- isRemoteWork: Boolean
- startDate: Date (Property reused from Event)
- JobPosting has hiringOrganization, but we also want to allow individual-to-individual job postings.
- Elsewhere, a property contactPoint exists. Calling it “contact” seems a bit more accurate than “contactPoint” here, but “contactPoint” could still be better to avoid a new property.
- experienceRequirements would be either Text (current situation) or a structured value (our proposal).
- The current JobPosting assumes salaried positions, which works poorly for fixed-payment contract employments or hourly pay.
Thing > Intangible > StructuredValue > WorkExperience
Properties from Thing:
Properties from WorkExperience:
- duration: Duration
- references: Boolean (Applicant must be able to provide references for this experience.)
Handling of localities and street addresses
When adding a locality and/or street address to job postings, schema.org requires adding two intermediate resources, a Place and a Postal Address. This can result in awkward markup. There can be a markup guidance document that will state that the intermediate <span itemprop=”jobLocation”> and <span itemprop=”address”> can be omitted, so that <span itemprop=”addressLocality”> or <span itemprop=”streetAddress”> would be used directly on a JobPosting. However, this is considered a non-standard implementation detail and is not part of this extension proposal.
Handling of Boolean values
There is an issue against schema.org regarding the representation of booleans: http://www.w3.org/2011/webschema/track/issues/14
We should recommend the solution: <meta itemprop=”...” content=”true”> or simply <span itemprop=”...”>true</span> because the option with href is unnecessarily complicated.