Copyright © 2020. This document is licensed under a
Creative Commons Attribution 4.0 (CC-BY)
License. Join the Open Skills Network to contribute.
This document describes the Rich Skill Descriptor (RSD) class and how RSDs should be published for
compatibility with services that process machine readable representations of skills and competencies. Each
RSD is primarily identified by a canonical URL and consists of a skillStatement and supporting metadata to
identify alignment to other skills or job categories.
This document is a working draft produced by the Open Skills Network
in order to advise members and collaborators about available data standards and how to use them in a coordinated
fashion to accomplish key use cases around the publication, recognition, and consumption of skills for learning
and employment. The OSN is not a Standards Development Organization, but we advise our members in how to best
adopt web standards for interoperability.
There is no conformance testing for implementers of these recommendations. Specific referenced standards often
have their own normative requirements that are required for interoperability using those standards.
In order to create an ecosystem of recognition around skills, where Achievements, Pathways, and Learner
Records make machine-readable references to skills and allow systems to take action based on the skills
learners hold, it is important for implementers to use skills in common ways. RSDs build on
CTDL-ASN to enable skill authors to publish
definitions that can be referenced from digital credentials (including those that appear in learner records),
pathways, and job profiles. Partners in an interoperable skills ecosystem may use CTDL/CTDL-ASN and/or other
vocabularies and web standards to present skills descriptors and related concepts. This document provides the
Open Skills Network's technical guidance on approaches for publishing and making use of this data, taking best
advantage of available data standards.
Below are examples of use cases that sytems working with skills may implement, with recipes for how OSN
members recommend those sytems might implement those use cases in a harmonized interoperable manner. Examples
and usage notes provide guidance for how these concepts should be understood and used.
As an educational institution, I would like to publish a skill that is taught, assessed, and recognized
by the organization in machine-readable interoperable format so that it can be referenced in other resources
by the organization and employers
The concept of a single skill or competency, expressed with rich metadata and alignment, is the foundation of
a skills vocabulary. Organizations or individuals in different roles in the skills ecosystem may find it
useful to publish a skill definition. That includes employers, individual educators, educational institutions,
industry consortia or professional associations, or collaborations between these different roles.
Some of these publishers may at times describe the concept of a skill using different terminology, such as
competency, learning outcome or standard, but what is shared between all of these models is the possibility
for each skill to be associated with a canonical URL where it is made available and the ability to retrieve
descriptive metadata that expresses the full meaning of the skill definition.
CTDL-ASN and CTDL are published by Credential Engine. These vocabularies provide extensive attributes
with which to describe credentials, competencies or skills, organizations and other related concepts.
Available alignment types include majorAlignment,
broadAlignment,
exactAlignment,
minorAlignment,
narrowAlignment,
and prerequisiteAlignment.
The most simple or default recommendation is majorAlignment, which implies a close but not exact match.
A skill statement is a string that expresses information about who the skill applies to, the nature of the
skill itself,
and the context in which it is applied, together, e.g.: "{Subject} {Predicate} {Context}". Consistent
formatting assists
interoperability of RSDs across organizations and the development of common usage of RSDs valued in common.
CASE is a specification published by IMS Global that enables organizations to describe a competency or
skill framework. The "CASE-LD" JSON-LD binding
for the CASE service definition enables CASE data to be published as JSON-LD for semantic web needs
without any significant modification to the JSON expressed by the various endpoints.
To publish an RSD with CASE-LD, return the data described by the CASE-LD CFItem endpoint from the RSD's canonical
URL.
To express information about a framework in which a skill appears, you may also implement the CFDocument
endpoint to express authorship information across one or more RSDs. Terms below are defined in the CASE JSON-LD
context.
If the implementer is also implemnting the CASE
1.0 REST API, the canonical URL of the RSD should be the value of the A LinkURI object is a CASE-LD concept that expresses a relationship between the present document and another
document.
A LinkURI object is a CASE-LD concept that expresses a relationship between the present document and
another document. One such relationship type might be to reference a work from which the present RSD is
derived.
A collection of skills bundles a number of skills together for a particular purpose or presentation.
CTDL-ASN and CTDL are published by Credential Engine. These vocabularies provide extensive attributes
with which to describe credentials, competencies or skills, organizations and other related concepts. Terms
from CTDL appear below with the prefix
As an issuer of credentials that recognize the achievement of skills, I would like to include a reference
to one or more RSDs that a credential recognizes in the credential achievement description metadata.
There are many contexts in which alignment is useful. Higher ed institutions would like to describe the skills
recognized by a credential they issue. This serves the purpose of communicating to potential earners what
skills are taught in curriculum, as well as communicating to the potential employers of learners who gain this
credential what skills have been achieved. For most purposes of alignment, the achievement level of a skill is
binary, rather than on a sliding scale. That means there is a threshold level of attainment that is required
in order to award a credential that recognizes that skill, and this is the same basic level that is referenced
in other objects that align to a skill, such as a job position description. There may be more advanced use
cases for alignment of skills that indicate an achievement level of the skill that the credential recognizes
that will be described separately.
There are multiple approaches in different web standards communities for interoperable, portable, and
verifiable digital credentials, but a common pattern is an assertion awarded to an individual who the issuer
asserts has achieved a particular learning goal, whether that is a skill, learning objective, assessment,
certification, or other criteria. In the below example, an Open Badges achievement definition is a BadgeClass with criteria that represents
the assessment of an underlying RSD, which the credential aligns to. Note that the OB vocabulary terms
CTDL-ASN has no classes for Credentials, so we fall back to CTDL for that data. These Credentials use CTDL's
alignment system to indicate alignment to a RSD expressed as a CTDL-ASN Competency.
As an educational institution, I want to
award a defined achievement credential to a single learner. As my organization defined this specific
achievement, which is tied to a particular learning experience and/or assessment, my organization is the only
one that may recognize that learners have achieved its criteria. Other organizations may recognize the same
skill by defining their own credentials that are aligned to it.
There are multiple approaches in different web standards communities for interoperable, portable, and
verifiable digital credentials, but a common pattern is an assertion awarded to an individual who the issuer
asserts has achieved a particular learning goal, whether that is a skill, learning objective, assessment,
certification, or other criteria. In the below example, there is an assertion of an Open Badges achievement
definition that is a BadgeClass
with criteria that represents the assessment of an underlying RSD, which the credential aligns to. Note that
the OB vocabulary term
In OB 3.0, the skill can be represented more directly in the model. A Skill Assertion credential is just like
a basic OpenBadgeCredential in how an Achievement is included, except that it makes a claim referencing an
Achievement that is generic to allow for use by many possible issuers. It is likely of achievementType
Competency. The Achievement here is aligned to a Competency registered on the Credential Registry and
described in CTDL. A Skill might have been defined by one organization (the creator of the Achievemeent) and
then issued by another. In OB 3.0, image is optional. The Achievement might not even have one, in which case,
often a placeholder image will be rendered.
As an organization that makes use of open skills, I would like to offer my support to an RSD that is a good
fit for my community's needs.
As an employer, I want to endorse a specific skill, so that educational institutions teach, assess, and
recognize those skills for their learners.
In order for skills data to be interoperable, common usage of the same skills across multiple producer and
consumer roles in the ecosystem is needed. Endorsement can be a valuable signal of support for the use of certain
existing skill definitions.
Any issuer may produce an EndorsementCredential targeting a skill. See documentation
Introduction
Publish a Rich Skill Descriptor
Recipe: Publish a Rich Skill Descriptor with CTDL-ASN/CTDL
RSD Property
Field Name
Data Type
Description
Term IRI
id
ID
URI
Canonical URL that uniquely identifies the skill, from which more information may be retrieved.
@id
skillName
Skill Name
String
Short name or label for the skill.
ceasn:competencyLabel
skillStatement
Skill Statement
String[SkillStatement]
Skills description written in standard syntax.
ceasn:competencyText
keywords
Keywords
Array[String]
List of keyword strings to enhance searchability.
ceterms:keyword
category
Category
String
A category in which this RSD is filed, in the local vocabulary defined by the issuer
ceasn:competencyCategory
author
Author
String
A person or organization chiefly responsible for the intellectual or artistic content of this skill
ceasn:author
creator
Creator
URI
A person or organization primarily responsible for making this resource. This is the canonical
identifier of the source of the skill.
ceasn:creator
alignments
Alignments
Array[String:URI]
indicates alignment or overlap of this RSD to one or more underlying standards, skills, or
competencies identified in other frameworks or data sources (i.e.,Emsi; Burning Glass; LinkedIn;
Workday), each of which is uniquely identified by a URI. Each entry may be just the URI or may
contain descriptive metadata about the alignment target.
ceasn:majorAlignment
*
certifications
Certifications
Array[Credential]
Field for associating external certifications to RSDs
ceasn:alignFrom
occupations
Occuption Data Categories
Array[String:JobCode]
indicates skill alignment to releveant job roles/occupations aligned to an external categorization
like BLS SOC or O*NET
ceterms:occupationType
employers
Employers
Array [Employment Outcome Profile]
indicates support for a skill by specific employers who employ people who hold the skill
ceterms:employmentOutcome
ctid
Credential Transparency Identifier
Array[String]
Unique Credential Transparency Identifier assigned by the creator perhaps through publication to
the Credential Engine Registry. Uniqueness can only be guaranteed for entities submitted to the
Credential Engine Registry.
ceterms:ctid
license
License
URI
A legal document giving official permission to do something with this resource.
ceasn:license
derivedFrom
Derived From
URI or RSD
An indicator that the present RSD is a derivative work of another RSD.
ceasn:derivedFrom
Skill Statement
The learner saves copies of documents to their local machine.
Component
Description
subject
Who this skill applies to, e.g "the learner"
predicate
The part of the statement that shows the action, knowledge, or ability at the core of the skill, e.g.
"saves copies"
context
Supporting descriptive language to clarify the context in which the skill applies, e.g. "to their
local machine"
Example RSD
{
"@context": "https://rsd.openskillsnetwork.org/context-v1.json",
"id": "https://osmt.example.com/skills/9cd84455-2086-4f41-bcac-6d518beeb6ac",
"type": "RichSkillDescriptor",
"author": "https://osmt.example.com/organization",
"skillName": "Document Saving",
"skillStatement": "The learner saves copies of documents to their local machine.",
"alignments": [{"id": "https://skillsource.example.com/base-skills/simple-compuhacking", "name": "Simple Compuhacking"}],
"employers": [{"name": "Acme, Inc."}],
"keywords": ["documents", "file operations", "computer basics"],
"category": "Productivity Software",
"certifications": [{"id": "https://credentials.example.com/supersaver", "name": "DocumentAlliance SuperSaver"}],
"occupations": [{"codedNotation": "13-2080", "targetNodeName": "Tax Examiners, Collectors and Preparers, and Revenue Agents"}],
"license": "https://creativecommons.org/licenses/by/4.0/",
"derivedFrom": {
"id": "https://anotherosmt.example.com/skills/ee5dc142-ad25-4153-ab7f-2960e3e07639",
"author": "https://anotherosmt.example.com/organization",
"license": "https://creativecommons.org/licenses/by/4.0/"
}
}
Recipe: Publish a Rich Skill Descriptor with CASE-LD
url
property in the
CFItem objects expressed in those REST endpoints, in order to inform REST API clients of the canonical
URLs.
RSD Property
Field Name
Data Type
Description
Term IRI
id
ID
URI
Canonical URL that uniquely identifies the skill, from which more information may be retrieved.
@id
identifier
Code
String
An identifying code, local to the RSD's publisher for this item.
case:identifier
lastChangeDateTime
Code
String
A timestamp in ISO-8601 format, fully qualified with time zone indicator of the last point in time a
change was reflected in this published object.
case:lastChangeDateTime
CFDocumentURI
Framework
LinkURI
A link back to the Framework/Collection object, which describes the authorship of this RSD.
case:CFDocumentURI
educationLevel
Education Level
Array of Strings
A list of education levels like
"03"
that are the level at which this RSD is expressed.
case:educationLevel
fullStatement
Code
String
The full skill statement, expressing a learner's capability, knowledge, and/or experience.
case:fullStatement
abbreviatedStatement
Code
String
A short label for the skill.
case:abbreviatedStatement
language
Language
String (Language Code)
A language identifier code such as
en
or es-mx
describing the language in
which the RSD is published.case:abbreviatedStatement
licenseURI
License
LinkURI
A link to a legal document controlling permission to do something with the CFItem.
case:licenseURI
associationSet
Associations (Alignments)
Array of AssociationSets
Associations (alignments) of this RSD to other entities
case:associationSet
LinkURI Properties
LinkURI Property
Field Name
Data Type
Description
Term IRI
type
type
LinkURI
The exact string
LinkURI
, expressing that this link is a LinkURI@type
targetId
Target ID
URI
URI of the object that is the target of this link, such as a CFDocument that is the target of a
CFDocumentURI link from a CFItem.
case:targetId
identifier
Code
String
An identifying code, local to the RSD's publisher for this item.
case:identifier
title
Title
String
The name of the linked entity.
case:title
AssociationLink Properties
LinkURI Property
Field Name
Data Type
Description
Term IRI
type
type
AssociationLink
The exact string
AssociationLink
, expressing that this link is an association/alignment.
@type
targetId
Target ID
URI
URI of the object that is the target of this link, such as another CFItem.
case:targetId
identifier
Code
String
An identifying code, local to the RSD's publisher for this item.
case:identifier
title
Title
String
The name of the linked entity.
case:title
Example RSD published using CASE-LD
{
"@context": "https://purl.imsglobal.org/spec/case/v1p0/context/imscasev1p0_context_v1p0.jsonld",
"type": "CFItem",
"id": "https://case.example.com/skills/9cd84455-2086-4f41-bcac-6d518beeb6ac",
"identifier": "9cd84455-2086-4f41-bcac-6d518beeb6ac",
"lastChangeDateTime": "2020-01-10T18:40:58+00:00",
"CFDocumentURI": {
"type": "LinkURI",
"title": "IMS CLR Demo Framework",
"identifier": "17927658-3246-11ea-97fb-0242c0a83003",
"targetId": "https://case.example.com/skills/framework1"
},
"abbreviatedStatement": "Document Saving",
"fullStatement": "The learner saves copies of documents to their local machine.",
"conceptKeywords": ["documents", "file operations", "computer basics"],
"language": "en",
"licenseURI" : {
"title" : "Creative Commons Attribution (CC-BY) 4.0",
"identifier" : "CC-BY 4.0",
"uri" : "https://creativecommons.org/licenses/by/4.0/"
},
"associationSet": [
{
"type": "AssociationLink",
"targetId": "https://skillsource.example.com/base-skills/simple-compuhacking",
"associationType": "isRelatedTo",
"title": "Simple Compuhacking"
}
]
}
Publish a Collection
Recipe: Publish a Collection with CTDL-ASN/CTDL
ceterms
and terms from CTDL-ASN appear with the prefix
ceasn
. This document provides the Open Skills Network's technical guidance on approaches for
publishing and making use of this data, taking best advantage of available data standards.
Collection Property
Field Name
Data Type
Description
Term IRI
id
ID
URI
Canonical URL that uniquely identifies the collection, from which more information may be retrieved.
@id
name
Name
String
A descriptive name for the collection
@id
description
Description
URI
Brief explanation of the scope and purpose of the collection.
ceasn:description
author
Author
URI
A person or organization chiefly responsible for the content of this collection
ceasn:author
skills
Skills
Array[RichSkillDescriptor]
The skills contained within a collection. They are all at the top level with no hierarchy.
ceasn:hasTopChild
license
License
URI
A legal document giving official permission to do something with this resource.
ceasn:license
Example Collection
{
"@context": "https://rsd.openskillsnetwork.org/context-v1.json",
"id": "https://osmt.example.com/collections/35b6ff86-2974-4dc6-be17-68fef37c86cd",
"type": "Collection",
"name": "Office Productivity Skills",
"description": "Skills for people who work in offices, generally at desks, on office chairs, often using computers.",
"author": "https://osmt.example.com/organization",
"skills": [
{
"id": "https://osmt.example.com/skills/9cd84455-2086-4f41-bcac-6d518beeb6ac",
"type": "RichSkillDescriptor",
"author": "https://osmt.example.com/organization",
"skillName": "Document Saving",
"skillStatement": "The learner saves copies of documents to their local machine.",
"isMemberOf": "https://osmt.example.com/collections/35b6ff86-2974-4dc6-be17-68fef37c86cd",
"alignments": [{"id": "https://skillsource.example.com/base-skills/simple-compuhacking", "name": "Simple Compuhacking"}],
"employers": [{"name": "Acme, Inc."}],
"keywords": ["documents", "file operations", "computer basics"],
"category": "Productivity Software",
"certifications": [{"id": "https://credentials.example.com/supersaver", "name": "DocumentAlliance SuperSaver"}],
"occupations": [{"codedNotation": "13-2080", "targetNodeName": "Tax Examiners, Collectors and Preparers, and Revenue Agents"}],
"license": "https://creativecommons.org/licenses/by/4.0/"
}
]
}
Align a Credential to RSDs
Recipe: Align a Credential to an RSD with Open Badges 2.0
targetName
and targetDescription
are used to represent the RSD terms
skillName
and skillStatement
respectively. When processing an example that may
contain extra information such as this, the relying party is encouraged to separately fetch the RSD itself
from the targetUrl to ensure that a canonical set of metadata is saved, based on the latest expression of the
RSD author's intent. This approach may be used within an Open Badges BadgeClass to align to an RSD expressed
using any recipe to Publish a Rich Skill Descriptor as long as
there is a canonical URL for that RSD where it may be retrieved in machine-readable format. The native Open
Badges terms are recommended for best compatibility with systems designed to read that format.
{
"@context": ["https://w3id.org/openbadges/v2"],
"id": "https://badges.example.com/badges/document-saving-1",
"type": "BadgeClass",
"name": "Document Savvy",
"description": "A basic skill of working on a computer is managing files. Recipients of this badge can save documents.",
"criteria": {"narrative": "Pass the document saving performance demonstration assessment."},
"issuer": "https://osmt.example.com/organization",
"alignment": [{
"targetUrl": "https://osmt.example.com/skills/9cd84455-2086-4f41-bcac-6d518beeb6ac",
"targetName": "Document Saving",
"targetDescription": "The learner saves copies of documents to their local machine."
}]
}
Recipe: Align a Credential to an RSD with CTDL/CTDL-ASN
{"TODO": true}
Recognize Achievement of an RSD
Recipe: Recognize Achievement of a Credential Aligned to an RSD with Open
Badges 2.0
targetName
is used alongside the canonical RSD term
skillName
.
{
"@context": ["https://w3id.org/openbadges/v2", "https://rsd.openskillsnetwork.org/context-v1.json"],
"recipient": {
"type": "email",
"salt": "yUv2eMsVpQ1Y2uIU",
"hashed": true,
"identity": "sha256$0fdde2f81fcb3b06e50ca0d53d6bc2f5b576d027ddc7b4200455b99ce42e08c9"
},
"id": "https://badges.example.com/assertions/document-saving-1/abc123",
"badge": {
"id": "https://badges.example.com/badges/document-saving-1",
"type": "BadgeClass",
"name": "Document Savvy",
"description": "A basic skill of working on a computer is managing files. Recipients of this badge can save documents.",
"criteria": {
"narrative": "Pass the document saving performance demonstration assessment."
},
"issuer": "https://badges.example.com/organization",
"alignment": [{
"targetUrl": "https://osmt.example.com/skills/9cd84455-2086-4f41-bcac-6d518beeb6ac",
"type": "RichSkillDescriptor",
"author": "https://osmt.example.com/organization",
"skillName": "Document Saving",
"targetName": "Document Saving",
"skillStatement": "The learner saves copies of documents to their local machine.",
"alignments": ["https://skillsource.example.com/base-skills/simple-compuhacking"],
"keywords": ["documents", "file operations", "computer basics"],
"category": "Productivity Software",
"occupations": ["13-0000", "13-2000", "13-2010", "13-2030", "13-2040", "13-2060", "13-2080"]
}]
},
"verification": {
"type": "hosted"
}
}
Recipe: Recognize Achievement of a Credential Aligned to an RSD with Open
Badges 3.0
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.1.json",
"https://purl.imsglobal.org/spec/ob/v3p0/extensions.json",
"https://w3id.org/security/suites/ed25519-2020/v1"
],
"id": "http://1edtech.edu/credentials/3732",
"type": [
"VerifiableCredential",
"OpenBadgeCredential"
],
"name": "Document Savvy",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"type": "AchievementSubject",
"achievement": {
"id": "https://example.com/achievements/math/linear-1",
"type": "Achievement",
"alignment": [
{
"type": "Alignment",
"targetName": "DocumentSaving",
"targetType": "ceasn:Competency",
"targetUrl": "https://credentialfinder.org/competency/ce-6369c51f-4d86-4592-a761-8b32ae70a045"
}
],
"achievementType": "Competency",
"creator": {
"id": "https://example.com/issuers/123767",
"type": "Profile",
"name": "Example Industry Group",
"url": "https://example.com",
"description": "Example Industry Group is a consortium of luminaries who publish skills data for common usage.",
"email": "info@exammple.com"
},
"criteria": {
"narrative": "Pass the document saving performance demonstration assessment."
},
"description": "A basic skill of working on a computer is managing files. Recipients of this badge can save documents.",
"name": "Document Savvy"
}
},
"issuer": {
"id": "did:web:badges.example.com:organization",
"type": "Profile",
"name": "Example Issuer",
"url": "https://example.com/",
"description": "Example Issuer is a well-known recognizer of skills",
"image": {
"id": "https://example.com/logo.png",
"type": "Image",
"caption": "Example Issuer Logo"
},
"email": "example@example.com"
},
"issuanceDate": "2022-07-01T00:00:00Z",
"credentialSchema": [
{
"id": "https://purl.imsglobal.org/spec/ob/v3p0/schema/json/ob_v3p0_achievementcredential_schema.json",
"type": "1EdTechJsonSchemaValidator2019"
}
],
"proof": [
{
"type": "Ed25519Signature2020",
"created": "2023-03-10T08:44:41Z",
"verificationMethod": "did:web:badges.example.com:organization",
"proofPurpose": "assertionMethod",
"proofValue": "z3n3prnXsp6GDaJ2zKerQgd5qB7cE2Z4dynvnddgCLbs6hy3a5kcQPeTniVFcHSLwZ7A6ihh2FYxKJvBCPSQihcfP"
}
]
}
Endorse a Skill
Recipe: Endorse a Skill with Open Badges 3.0 EndorsementCredential
{
"@context": [
"https://rsd.openskillsnetwork.org/context-v1.json",
"https://www.w3.org/2018/credentials/v1",
"https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.1.json",
"https://purl.imsglobal.org/spec/ob/v3p0/extensions.json"
],
"type": [
"VerifiableCredential",
"EndorsementCredential"
],
"issuer": {
"id": "did:example:statedepartmentofed",
"type": [
"Profile"
],
"name": "Big State Department of Education"
},
"issuanceDate": "2022-01-01T00:00:00Z",
"credentialSubject": {
"id": "https://exampleframework.example.com/skills/123",
"type": [
"EndorsementSubject"
],
"endorsementComment": "Example Framework's 'SharePoint Collaboration' skill definition is widely used in enterprise organizations.",
"starRating": {"ratingValue": 5}
},
"credentialSchema": [
{
"id": "https://purl.imsglobal.org/spec/ob/v3p0/schema/endorsementcredential.json",
"type": "1EdTechJsonSchemaValidator2019"
},
{
"id": "https://state.gov/schema/endorsementcredential.json",
"type": "1EdTechJsonSchemaValidator2019"
}
]
}