Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OB 3.0: How should Skill Assertions be represented? #339

Closed
amiller-ims opened this issue Feb 10, 2022 · 10 comments · Fixed by #450
Closed

OB 3.0: How should Skill Assertions be represented? #339

amiller-ims opened this issue Feb 10, 2022 · 10 comments · Fixed by #450

Comments

@amiller-ims
Copy link
Collaborator

A Skill Assertion is an Assertion without an Achievement that asserts a single skill. This issue was created to capture a discussion about how to best represent a Skill Assertion in the Data Model.

@ottonomy
Copy link
Contributor

Joshua Marks, nominated to provide come context about use cases where an issuer wants to claim that a learner has achieved a particular level against a rubric.

I can work with @kayaelle to propose an example JSON for a skill assertion using the data model as it is now, or possibly different options. We should figure out how the URL of the skill is identified in the Result class (in order to validate that the Result class is an appropriate way to do this).

Others have suggested simpler methods (where achievement is binary):

"credentialSubject': {
  "achievement": {"type": "Skill", "description": "not necessarily an instance of the Achievement class"} // reuse achievement property to point to either an Achievement or a "Competency"/"Skill" that may not conform to all rules of Achievement
}

@amiller-ims amiller-ims added this to To do in OB 3.0 Kanban Feb 23, 2022
@kayaelle
Copy link
Contributor

Adding this for reference:

https://rsd.openskillsnetwork.org/

Here's a draft of a single skill assertion we can start looking at:

https://json.link/sKH8ONemZ7

It models the example in the proposal but includes more details about the skill. I wonder if we need more than the id if we are recommending the use of RSDs where the details can be accessed. In this example, the results are included.

@debeverhart
Copy link

CTDL supports 66 properties that can be used at the individual competency/skill level to create RSDs in CTDL-- see CTDL-ASN https://credreg.net/ctdlasn/terms#Competency

@kayaelle
Copy link
Contributor

kayaelle commented Mar 9, 2022

Similar to CLR model: https://www.imsglobal.org/sites/default/files/spec/clr/v1p0/InfoModel/clr_InfoModel.html#Data_Result

This is the same result object that would be added to a credentialSubject for a badge achievement

This example is closer to what was in the original proposal:

https://json.link/hZGvuaESnV

It doesn't contain an achievement object at all but instead just the result object aligned to an RSD, no link to a ResultDescription or what level is achieved.

This example includes a result aligned with an RSD and link to ResultDescription with achieved level:

https://json.link/7v1VXKy063

@justinpitcher
Copy link
Contributor

For next meeting, discuss:

"resultDescription": "urn:uuid:da72e42e-9f38-4c42-83ac-33f6cb9bb3b1",
"achievedLevel": "urn:uuid:f256d3a9-c117-43bf-9e25-dc69691e18a1"

Should we mock this with RSD object?

@justinpitcher
Copy link
Contributor

Nate volunteered to flesh out an example and PR.

@ottonomy
Copy link
Contributor

Here's a full example, followed by some discussion questions.

{
  "@context": [
    "https://www.w3.org/2018/credentials/v1",
    "https://w3id.org/openbadges/v3"
  ],
  "type": [
    "VerifiableCredential",
    "AchievementCredential"  // Do we want to use a different type for this or just continue using the AchievementCredential type?
  ],
  "id": "https://issuer-website.com/awards/abc123",
  "issuer": {
    "id": "did:example:issuer",
    "name": "An Example Issuer",
    "image": "https://example.org/logo.png",
    "url": "https://example.org",
    "email": "contact@example.org"
  },
  "issuanceDate": "2022-05-01T19:23:24Z",
  "credentialSubject": {
    "id": "did:example:learner",
    "result": {
      "alignment": {
        "targetFramework": "Alabama Course of Study: English Language Arts",
        "targetName": "Cite strong and thorough textual evidence to support analysis of what the text says explicitly as well as inferences drawn from the text, including determining where the text leaves matters uncertain",
        "targetType": "CFItem",  // What do we want to have for type support?
        "targetUrl": "https://caseregistry.imsglobal.org/uri/74f5bb7d-d7cc-11e8-824f-0242ac160002"
      },
      "achievedLevel": "urn:uuid:f256d3a9-c117-43bf-9e25-dc69691e18a1" // This might be potentially more complex.
    }
  },
  "proof": {
    "type": "Ed25519Signature2020",
    "created": "2010-01-01T19:23:24Z",
    "verificationMethod": "https://example.edu/issuers/565049#z6MknCCLeeHBUaHu4aHSVLDCYQW9gjVJ7a63FpMvtuVMy53T",
    "proofPurpose": "assertionMethod",
    "proofValue": "abc123VxzRzzpKF1HA11EjvfPZsN8NAb7kXBRfeTm3CBg2gcJLQM5hZNmj6Ccd9Lk4C1YueiFZvkSx4FuHVYVouQk"
  }
}

Decision points:

  • type: Do we want to use a different type for this or just continue using the AchievementCredential/OpenBadgesCredential type? I recommend continuing to use the same, because it allows better composability of skills results and achievement results into a single credential.
  • Result.alignment.targetType: What types would we want to support here? It is useful potentially to hint the user at what they would expect, and if they should attempt to fetch the URL to get more information, such as if that supports achievement levels/rubric.
  • Result.achievedLevel: should we support this when there isn't an embedded ResultDescription in the credential that would hold the possible levels?

@justinpitcher
Copy link
Contributor

Group: continue using the AchievementCredential

@justinpitcher
Copy link
Contributor

Implement skill assertions without Result.achievedLevel for now. May return to it later.

@amiller-ims
Copy link
Collaborator Author

There is a PR #450 for review.

OB 3.0 Kanban automation moved this from In progress to Done Jun 9, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Development

Successfully merging a pull request may close this issue.

6 participants