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

Simplify how Skill Assertions work by reusing the Achievement class #458

Merged
merged 3 commits into from
Jul 18, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions ob_v3p0/common_credentials.lines
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ Package SharedCredentialDataModels DataModel
Property activityEndDate DateTime 0..1 "The datetime the activity ended."
Property activityStartDate DateTime 0..1 "The datetime the activity started."
Property creditsEarned Float 0..1 "The number of credits earned, generally in semester or quarter credit hours. This field correlates with the Achievement `creditsAvailable` field."
Property achievement Achievement 0..1 "The achievement being awarded."
Property achievement Achievement 1 "The achievement being awarded."
Property identifier IdentityObject 0..* "Other identifiers for the recipient of the achievement. Either `id` or at least one `identifier` MUST be supplied."
Property image Image 0..1 "An image representing this user's achievement. If present, this must be a PNG or SVG image, and should be prepared via the 'baking' instructions. An 'unbaked' image for the achievement is defined in the Achievement class and should not be duplicated here."
Property licenseNumber String 0..1 "The license number that was issued with this credential."
Expand Down Expand Up @@ -95,7 +95,7 @@ Package SharedCredentialDataModels DataModel

Include GeoCoordinates // From CDM
Property type IRI 1 "The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'GeoCoordinates'."

Include IdentifierEntry // From CDM
Property type IRI 1 "The value of the type property MUST be an unordered set. One of the items MUST be the IRI 'IdentifierEntry'."

Expand Down Expand Up @@ -279,7 +279,7 @@ Package SharedCredentialDataModels DataModel
Property Withdrew Term 1 "The learner withdrew from the activity described by the achievement before completion."

Package SharedProofDataModels DataModel "Data models shared by all proof formats."

Class Ed25519VerificationKey2020 Unordered false []
Property id URI 1 "The `id` of the verification method MUST be the JWK thumbprint calculated from the `publicKeyMultibase` property value according to [[?MULTIBASE]]."
Property type String 0..1 "The `type` of the verification method MUST be the string `Ed25519VerificationKey2020`."
Expand Down
26 changes: 20 additions & 6 deletions ob_v3p0/examples/basicOpenBadgeCredential.html
Original file line number Diff line number Diff line change
@@ -1,26 +1,40 @@
var basicCredential = `

<div class="note">
The following Credential is a minimal achievement assertion. The Achievement definition here is assumed
</div>
<pre class="json example vc" data-schema="org.1edtech.ob.v3p0.achievementcredential.class"
data-allowadditionalproperties="false" title="Sample OpenBadgeCredential">
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://imsglobal.github.io/openbadges-specification/context.json"
],
"id": "http://example.edu/credentials/3732",
"id": "http://example.com/credentials/3527",
"type": ["VerifiableCredential", "OpenBadgeCredential"],
"issuer": {
"id": "https://example.edu/issuers/565049",
"id": "https://example.com/issuers/876543",
"type": ["Profile"],
"name": "Example University"
"name": "Example Corp"
},
"issuanceDate": "2010-01-01T00:00:00Z",
"name": "Example University Degree",
"name": "Teamwork Badge",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"type": ["AchievementSubject"]
"type": ["AchievementSubject"],
"achievement": {
"id": "https://example.com/achievements/21st-century-skills/teamwork",
"type": [
"Achievement"
],
"criteria": {
"narrative": "Team members are nominated for this badge by their peers and recognized upon review by Example Corp management."
},
"description": "This badge recognizes the development of the capacity to collaborate within a group environment.",
"name": "Teamwork"
}
}
}
</pre>

`;
`;
2 changes: 1 addition & 1 deletion ob_v3p0/examples/fullOpenBadge.html
Original file line number Diff line number Diff line change
Expand Up @@ -704,4 +704,4 @@
}
</pre>

`;
`;
121 changes: 85 additions & 36 deletions ob_v3p0/examples/skillAssertionCase.html
Original file line number Diff line number Diff line change
@@ -1,45 +1,94 @@
var skillAssertionCase = `

<div class="note">
A Skill Assertion credential should only have one <code>Result</code> and one <code>Alignment</code>.
A Skill Assertion credential is just like a <a href=""#basic-openbadgecredential">basic OpenBadgeCredential</a> 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. The Achievement here is aligned to a CASE CFItem.
</div>
<pre class="json example vc" data-schema="org.1edtech.ob.v3p0.achievementcredential.class"
data-allowadditionalproperties="false" title="Skill Assertion (CASE)">
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://imsglobal.github.io/openbadges-specification/context.json"
],
"type": ["VerifiableCredential", "OpenBadgeCredential"],
"id": "https://issuer-website.com/awards/abc123",
"issuer": {
"id": "did:example:issuer",
"type": ["Profile"],
"name": "An Example Issuer",
"image": {
"id": "https://example.org/logo.png",
"type": "Image"
},
"url": "https://example.org",
"email": "[email protected]"
},
"issuanceDate": "2022-05-01T19:23:24Z",
"name": "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",
"credentialSubject": {
"id": "did:example:learner",
"type": ["AchievementSubject"],
"result": [{
"type": ["Result"],
"alignment": [{
"type": ["Alignment"],
"targetCode": "74f5bb7d-d7cc-11e8-824f-0242ac160002",
"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",
"targetUrl": "https://caseregistry.imsglobal.org/uri/74f5bb7d-d7cc-11e8-824f-0242ac160002"
}]
}]
}
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://imsglobal.github.io/openbadges-specification/context.json"
],
"id": "http://1edtech.edu/credentials/3732",
"type": [
"VerifiableCredential",
"OpenBadgeCredential"
],
"name": "Robot Programming Skill Credential",
"description": "A badge recognizing the development of skills in robot implementation, specifically the software",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"type": [
"AchievementSubject"
],
"achievement": {
"id": "https://example.com/achievements/robotics/robot-programming",
"type": [
"Achievement"
],
"alignment": [{
"type": [
"Alignment"
],
"targetDescription": "Robot software is a set of commands and procedures robots use to respond to input and perform autonomous tasks.",
"targetName": "Robot Programming",
"targetFramework": "Example Robotics Framework",
"targetType": "CFItem",
"targetUrl": "https://robotics-competencies.example.com/competencies/robot-programming"
}],
"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": "[email protected]"
},
"criteria": {
"narrative": "Learners must present source code showing the ability for a robot to accept manual or sensor input and perform conditional actions in response."
},
"description": "This achievement represents developing capability to develop software for robotic applications.",
"image": {
"id": "https://example.com/achievements/robotics/robot-programming/image",
"type": "Image",
"caption": "A robot filled with ones and zeroes representing its programming"
},
"name": "Robot Programming"
}
},
"evidence": [{
"id": "https://github.com/somebody/project",
"type": [
"Evidence"
],
"name": "Final Project Code",
"description": "The source code for the 'Beeper 1.0' robot project. It responds by saying 'beep' when the 'beep' button is pressed."
}],
"issuer": {
"id": "https://1edtech.edu/issuers/565049",
"type": [
"Profile"
],
"name": "1EdTech University",
"url": "https://1edtech.edu",
"phone": "1-222-333-4444",
"description": "1EdTech University provides online degree programs.",
"image": {
"id": "https://1edtech.edu/logo.png",
"type": "Image",
"caption": "1EdTech University logo"
},
"email": "[email protected]"
},
"issuanceDate": "2022-07-01T00:00:00Z",
"credentialSchema": [{
"id": "https://purl.imsglobal.org/spec/ob/v3p0/schema/achievementcredential.json",
"type": "1EdTechJsonSchemaValidator2019"
}]
}
</pre>
`;
`;
98 changes: 68 additions & 30 deletions ob_v3p0/examples/skillAssertionCtdl.html
Original file line number Diff line number Diff line change
@@ -1,45 +1,83 @@
var skillAssertionCtdl = `

<div class="note">
A Skill Assertion credential should only have one <code>Result</code> and one <code>Alignment</code>.
A Skill Assertion credential is just like a <a href=""#basic-openbadgecredential">basic OpenBadgeCredential</a> 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. The Achievement here is aligned to a Competency registered on the Credential Registry and described in CTDL.
</div>
<pre class="json example vc" data-schema="org.1edtech.ob.v3p0.achievementcredential.class"
data-allowadditionalproperties="false" title="Skill Assertion (Credential Registry)">
{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://imsglobal.github.io/openbadges-specification/context.json"
],
"type": ["VerifiableCredential", "OpenBadgeCredential"],
"id": "https://issuer-website.com/awards/abc123",
"issuer": {
"id": "did:example:issuer",
"type": ["Profile"],
"name": "An Example Issuer",
"image": {
"id": "https://example.org/logo.png",
"type": "Image"
},
"url": "https://example.org",
"email": "[email protected]"
},
"issuanceDate": "2022-05-01T19:23:24Z",
"name": "Solve and graph linear equations and inequalities",
"credentialSubject": {
"id": "did:example:learner",
"type": ["AchievementSubject"],
"result": [{
"type": ["Result"],
"alignment": [{
"@context": [
"https://www.w3.org/2018/credentials/v1",
"https://imsglobal.github.io/openbadges-specification/context.json"
],
"id": "http://1edtech.edu/credentials/3732",
"type": [
"VerifiableCredential",
"OpenBadgeCredential"
],
"name": Solve and graph linear equations and inequalities",
"credentialSubject": {
"id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
"type": [
"AchievementSubject"
],
"achievement": {
"id": "https://example.com/achievements/math/linear-1",
"type": [
"Achievement"
],
"alignment": [{
"type": ["Alignment"],
"targetCode": "ce-6369c51f-4d86-4592-a761-8b32ae70a045",
"targetFramework": "Ivy Tech Community College of Indiana, MATH 135, FINITE MATH",
"targetName": "Solve and graph linear equations and inequalities",
"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": "[email protected]"
},
"criteria": {
"narrative": "Learners must demonstrate understanding of linear algebra and graphic representation of linear equations."
},
"description": "This achievement represents developing capability to solve and graph linear equations and inequalities",
"image": {
"id": "https://example.com/achievements/math/linear-1/image",
"type": "Image",
"caption": "A line, sloping upward optimistically"
},
"name": "Linear equations and inequalities"
}
},
"issuer": {
"id": "https://1edtech.edu/issuers/565049",
"type": [
"Profile"
],
"name": "1EdTech University",
"url": "https://1edtech.edu",
"phone": "1-222-333-4444",
"description": "1EdTech University provides online degree programs.",
"image": {
"id": "https://1edtech.edu/logo.png",
"type": "Image",
"caption": "1EdTech University logo"
},
"email": "[email protected]"
},
"issuanceDate": "2022-07-01T00:00:00Z",
"credentialSchema": [{
"id": "https://purl.imsglobal.org/spec/ob/v3p0/schema/achievementcredential.json",
"type": "1EdTechJsonSchemaValidator2019"
}]
}
</pre>
`;
`;
Binary file not shown.
Binary file not shown.
Loading