# Competency Management

In the 2020 TLA Reference Implementation, the Competency Management System (CMS) includes two separate services: the Learner Profile and the Competency Framework.

# Learner Profile

The Learner Profile is currently tied to the Identity and User Management service as well as the Competency Management system. It subscribes to a Kafka stream that is populated by the CMS. This stream contains authoritative assertions of competence and awarded badges. The only way to cause these authoritative statements to be sent is by sending the appropriate xAPI statements to the Transactional LRS within the TLA. The Learner Profile also tracks a user’s roles and permissions within the TLA and uses the Learner’s OpenID as generated by Keycloak.

For more information on how to send statements to the Transactional LRS, see the LRS Section.

Currently access to the Learner Profile is limited to ADL Initiative staff and requires an OpenID Connect (OIDC) session. The ADL Initiative is currently working on a more flexible solution that will allow outside vendors safe access to the Learner Profile’s data.

# Querying from the Learner Profile

To query the Learner Profile, make a GET request to the LP endpoint.

Endpoint:

<profileURL>/me?secret=<secret>&user=<uuid>

Headers:

Currently no headers are required

On a successful query, the Learner Profile will return a large JSON object with all of the Learner’s current data:

{
   "id": 2,
   "uuid": "UserIRI",
   "handle": "HandleURI",
   "uxRoles": ["Administrator" and/or "Learner" and/or "Observer" and/or "Instructor" ],
   "learnerState": "asserted",
   "goals": [
      {
         "user": " UserIRI",
         "goal": "GoalURI",
         "type": "competency",
         "status": "satisfied"
      }
   ],
   "tasks": [
      {
         "id": 3,
         "uri": "TaskURI",
         "user": "UserIRI",
         "status": "new | completed"
      }
   ],
   "competencies": [
      {
         "user": "UserURI",
         "competencyID": "CompetencyURI",
         "confidence": "-1 to 1"
      }
   ]
}

# Competency Framework

The Competency Framework system is currently an implementation of the Competency and Skills System (CaSS). CaSS is an open-source competency management resource that provides an infrastructure enabling competencies, competency frameworks, and competency-based learner models to be managed and accessed independent of any given learning management system, course, training program, or credential. For full information on how to leverage CaSS to create and query frameworks please see the CaSS Documentation pages (opens new window). Currently, CaSS is only being used to create and store competencies, not to track a student’s competence or generate assertions.

To generate assertions of competence, the TLA Reference Implementation uses a simple listener service to consume xAPI statements related to learning events, and use these statements to generate assertions of competence that are consumed by the Learner Profile.

# Making a new Framework

Adding and editing Competency Frameworks in CaSS is simple. To make a new Competency Framework in the TLA Sandbox’s CaSS instance, navigate to https://tla-dev-cass.usalearning.net/ (opens new window) in your preferred internet browser. If you do not already have an account, create an account. Log-in then click on the CaSS Competency Editor, depicted in Figure 2. First-time users will be given a simple tutorial on creating, editing, and deleting a Competency Framework.

Figure 2 - CaSS Competency Editor

# Querying CaSS

A framework created in CaSS can be viewed by anyone but can only be edited or deleted by the original creator. To query the CaSS API, make a GET request to https://tla-dev-cass.usalearning.net/api/data (opens new window) and add a query using by adding ?q=@<query>. You can add an additional query argument by adding &q=<query>.

Here is an example query:

https://tla-dev-cass.usalearning.net/api/data?q=@type:competency

There are no required headers to make these queries.