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 of a standards implementation recommendation document produced by the Open Skills Network in order to advise membors and collaborators about available web 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.

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.

Introduction

In order to create a ecosystem of recognition around skills, where Achievements, Pathways, and Learner Records make machine-readable references to skills and allow systems to react to the skills learners hold, it is important for implementers to use skills in common ways. RSDs build on CTDL-ASN to enable skill definers to offer 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 a listing of data models that may be useful in building interoperable systems that work with skills, and use cases for specific procedures and capabilities desired for implementation. Examples and usage notes provide guidance for how these concepts should be understood and used.

Publish a Rich Skill Descriptor

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.

Recipe: Publish a Rich Skill Descriptor with CTDL-ASN/CTDL

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.

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[String:URI] 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[String] indicates support for a skill by specific employers who employ people who hold the skill ceterms:employmentOutcome
skillEmbodied Source Skill Embodied Array[String] indicates alignment of this skill to data sources for professional standards or keywords that do not have canonical URIs ceasn:skillEmbodied
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. ceasn:ctid

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.

Skill Statement

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.

   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.osmt.dev/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": ["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"]
   }
          

Recipe: Publish a Rich Skill Descriptor with CASE-LD

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.

In order to publish an RSD using CASE, implement the CFItem endpoint to publish a single item and implement the CFDocument endpoint to express authorship information across one or more RSDs. Terms below are defined in the CASE JSON-LD context.

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
associationSet Associations (Alignments) Array of AssociationSets Associations (alignments) of this RSD to other entities case:associationSet

LinkURI Properties

A LinkURI object is a CASE-LD concept that expresses a relationship between the present document and another document.

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

A LinkURI object is a CASE-LD concept that expresses a relationship between the present document and another document.

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",
    "associationSet": [
        {
            "type": "AssociationLink",
            "targetId": "https://skillsource.example.com/base-skills/simple-compuhacking",
            "associationType": "isRelatedTo",
            "title": "Simple Compuhacking"
        }
    ]
}
           

Publish a Collection

A collection of skills bundles a number of skills together for a particular purpose or presentation.

Recipe: Publish a Collection with CTDL-ASN/CTDL

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 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
containsSkill Contains Skill Array[RichSkillDescriptor] The skills contained within a collection. They are all at the top level with no hierarchy. ceasn:hasTopChild

Example Collection

{
  "@context": "https://rsd.osmt.dev/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",
  "containsSkills": [{
     "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": ["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"]
   }]
}
         

Align a Credential to RSDs

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.

Recipe: Align a Credential to an RSD with Open Badges

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, and 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 term targetName is used alongside the canonical RSD term skillName.

{
  "@context": ["https://w3id.org/openbadges/v2", "https://rsd.osmt.dev/context-v1.json"],
  "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": [{
     "id": "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"]
   }]
}
         

Recipe: Align a Credential to a CASE-LD RSD with Open Badges

Open Badges may align to skills expressed in several different RSD flavors with almost no change within the Open Badges BadgeClass. In this exmple, the target of the alignment is published at the targetUrl in CASE-LD format. The data in the local BadgeClass is almost identical to how it would appear if the target were published in CTDL-ASN. Here, only properties native to the Open Badges vocabulary are shown in the example.

{
"@context": ["https://w3id.org/openbadges/v2"],
"id": "https://osmt.example.com/collections/35b6ff86-2974-4dc6-be17-68fef37c86cd",
"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": [{
   "id": "https://osmt.example.com/skills/9cd84455-2086-4f41-bcac-6d518beeb6ac",
   "type": "RichSkillDescriptor",
   "author": "https://osmt.example.com/organization",
   "skillName": "Document Saving",
   "targetName": "Document Saving"
 }]
}
       

Recipe: Align a Credential to an RSD with CTDL/CTDL-ASN

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.

 {"TODO": true} 

Recognize Achievement of an RSD

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.

Recipe: Recognize Achievement of a Credential Aligned to an RSD with Open Badges

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 targetName is used alongside the canonical RSD term skillName.

{
  "@context": ["https://w3id.org/openbadges/v2", "https://rsd.osmt.dev/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": [{
      "id": "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"
  }
}