Open Badges Assessment

Open Badges Assessment Extension

Candidate Final Public
Spec Version 2.0
Candidate Final Public
Document Version: 1.0
Date Issued: July 8th, 2025
Status: This document is for review and adoption by the 1EdTech membership.
This version: https://www.imsglobal.org/spec/ob-assessment/v2p0/
Latest version: https://www.imsglobal.org/spec/ob-assessment/latest/
Errata: https://www.imsglobal.org/spec/ob-assessment/v2p0/errata/

IPR and Distribution Notice

Recipients of this document are requested to submit, with their comments, notification of any relevant patent claims or other intellectual property rights of which they may be aware that might be infringed by any implementation of the specification set forth in this document, and to provide supporting documentation.

1EdTech takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; neither does it represent that it has made any effort to identify any such rights. Information on 1EdTech's procedures with respect to rights in 1EdTech specifications can be found at the 1EdTech Intellectual Property Rights webpage: https://www.1edtech.org/sites/default/files/media/docs/2023/imsipr_policyFinal.pdf .

Use of this specification to develop products or services is governed by the license with 1EdTech found on the 1EdTech website: https://www.1edtech.org/standards/specification-license.

Permission is granted to all parties to use excerpts from this document as needed in producing requests for proposals.

The limited permissions granted above are perpetual and will not be revoked by 1EdTech or its successors or assigns.

THIS SPECIFICATION IS BEING OFFERED WITHOUT ANY WARRANTY WHATSOEVER, AND IN PARTICULAR, ANY WARRANTY OF NONINFRINGEMENT IS EXPRESSLY DISCLAIMED. ANY USE OF THIS SPECIFICATION SHALL BE MADE ENTIRELY AT THE IMPLEMENTER'S OWN RISK, AND NEITHER THE CONSORTIUM, NOR ANY OF ITS MEMBERS OR SUBMITTERS, SHALL HAVE ANY LIABILITY WHATSOEVER TO ANY IMPLEMENTER OR THIRD PARTY FOR ANY DAMAGES OF ANY NATURE WHATSOEVER, DIRECTLY OR INDIRECTLY, ARISING FROM THE USE OF THIS SPECIFICATION.

Public contributions, comments and questions should be directed to support@1edtech.org .

© 2026 1EdTech™ Consortium, Inc. All Rights Reserved.

Trademark information: https://www.1edtech.org/about/legal

Abstract

An extension to Open Badges that allows issuers to define assessment(s) related to the award process.

1. Overview

1.1 Introduction

This section is non-normative.

This extension provides information about single or multiple assessments that would be completed by the recipient as part of the requirements for earning an OpenBadge. There could be multiple assessments of different types for each badge earned. Separate, independent evaluations of a single assessment could result in multiple assessment/evaluation records, all included in a single instance of the extension. Please note that this extension is in draft mode and may not be ready for production.

1.2 Use cases

This section is non-normative.

  • Describe an assessment so a potential recipient understands the process.
  • Describe assessment(s) so badge consumers better know what recipients did to earn the badge.
  • Include explicit application information to build an automated application form for the badge.
Note: New in OB v3.0
New in Open Badges 3.0 is the ability to include a rubric for an Achievement with multiple criterion in the form of ResultDescription. The adaptation of this extension to this new version implies the limitation of defining only one rubric and rubric criterion per assessment.

1.3 Extendable Badge Objects

ResultDescription, with the new type AssessmentResultDescription

1.4 Terminology

The terminology used in this document is consistent with the terminology established in the Open Badges 3.0 specification [OB-30].

1.5 Conformance Statements

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words MAY, MUST, MUST NOT, OPTIONAL, RECOMMENDED, REQUIRED, SHALL, SHALL NOT, SHOULD, and SHOULD NOT in this document $are to be interpreted as described in $[object Object].

An implementation of this specification that fails to implement a MUST/REQUIRED/SHALL requirement or fails to abide by a MUST NOT/SHALL NOT prohibition is considered nonconformant. SHOULD/SHOULD NOT/RECOMMENDED statements constitute a best practice. Ignoring a best practice does not violate conformance but a decision to disregard such guidance should be carefully considered. MAY/OPTIONAL statements indicate that implementers are entirely free to choose whether or not to implement the option.

1.6 Document Set

1.6.1 Normative Documents

JSON Schema
The JSON Schema defines the syntactical restrictions of this extension: https://purl.imsglobal.org/spec/ob-assessment/v2p0/schema.
JSON-LD Context
The JSON-LD context defines mappings for the terms used in this specification to their canonical IRIs: https://purl.imsglobal.org/spec/ob-assessment/v2p0/context.
Errata
The errata details any erratum registered for this version of this specification since its publication [OB-ASSMT-20-ERRATA].

2. Data Model

This extension has a more deeply nested data structure than many other available extensions. At the top level is a very simple AssessmentExtension object that contains an overall description and one or more detailed assessment descriptors.

2.1 Data Models

2.1.1 AssessmentResultDescription

ResultDescription extension with assessment information

Property Type Description Multiplicity
description String Description of the single assessment. [1]
assessmentType AssesmentTypeEnum Assessment type. [1]
assessmentOutput String This field provides additional details about assessment type. Values for assessmentOutput are expected to be words or phrases that describe the key features of the evidence that are produced in earning the badge. [1]
hasGroupParticipation Boolean Completing the assessment activity being referenced requires two or more participants. [1]
hasGroupEvaluation Boolean Participants in the assessment activity being referenced are scored as a group. [1]
evaluationMethod String Information about how the assessment is scored. What do the scores represent in a range of scores? If a rubric was used, what are the score ranges for each criteria?. [0..1]
assessmentExample URI An example based on the assessment type. [0..1]
scoringMethodExampleDescription String The text of an example of the method or tool used to score the assessment. [0..1]
assessmentEvaluation URI Link to studies or other information about research or calculations of reliability and validity for the assessment or the scoring methods. [0..1]
sections Section A listing of sections, each with questions, that make up the assessment. Typically included if the issuer wishes to make available applications for the badge. [0..*]

2.1.2 Section

Property Type Description Multiplicity
type IRI MUST be the IRI 'Section'. [1]
title String The name of the section. [1]
description String A short description of the section. [1]
questions Question The questions that make up this section. [0..*]
required String Indicates whether this section is considered to be required for completion of the assessment. Default: true. [0..1]
url URI An external URL that represents this section. [0..1]
rubricCriterionLevelId IRI A listing of RubricCriterionLevel identifiers related to this section [0..*]

2.1.3 Question

Property Type Description Multiplicity
type IRI The type of question. One of the following type identifiers defined in the extension context: 'ExternalQuestion', 'FileQuestion' or 'TextQuestion'. [1]
text String The actual text of the question. [1]
required String Indicates whether this question is considered to be required for completion of the section. Default: true. [0..1]
wordLimit NonNegativeInteger For TextQuestions, specifies a maximum length in words that may be enforced as a suggestion or requirement, depending on the application. [0..1]
characterLimit NonNegativeInteger For TextQuestions, specifies a maximum length in characters that may be enforced as a suggestion or requirement, depending on the application. [0..1]
url URI An external URL that represents this question. [0..1]
rubricCriterionLevelId IRI A listing of RubricCriterionLevel identifiers related to this question [0..*]

3. Enumerations

3.1 AssesmentTypeEnum Enumeration

The type of assessment.

Term Description
Exam
Performance
Artifact

4. Derived Types

The derived types in this section are shared by all 1EdTech specifications.

Type Description
IRI A NormalizedString that represents an Internationalized Resource Identifier (IRI), which extends the ASCII characters subset of the Uniform Resource Identifier (URI).
Term A term in an enumeration. The lexical constraints are the same as for Token.
URI A NormalizedString that respresents a Uniform Resource Identifier (URI).

5. Primitive Types

The primitive types in this section are shared by all 1EdTech specifications.

Type Description
Boolean A boolean, expressed as true or false
Namespace A namespace data type for defining data from a context other than that as the default for the data model. This is used for importing other data models.
NonNegativeInteger
NormalizedString A String conforming to the normalizedString definition in [XMLSCHEMA-2].
String Character strings.

A. Examples

Example 1: Sample OpenBadgeCredential with Assessment extension
{
    "@context": [
        "https://www.w3.org/ns/credentials/v2",
        "https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.1.json",
        "https://purl.imsglobal.org/spec/ob-assessment/v2p0/context/"
    ],
    "id": "http://example.com/credentials/3527",
    "type": ["VerifiableCredential", "OpenBadgeCredential"],
    "issuer": {
        "id": "https://example.com/issuers/876543",
        "type": ["Profile"],
        "name": "Example Corp"
    },
    "validFrom": "2010-01-01T00:00:00Z",
    "name": "Teamwork Badge",
    "credentialSubject": {
        "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
        "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",
        "resultDescription": [
            {
            "id": "urn:uuid:f6ab24cd-86e8-4eaf-b8c6-ded74e8fd41c",
            "type": ["ResultDescription", "AssessmentResultDescription"],
            "alignment": [
                {
                "type": ["Alignment"],
                "targetCode": "project",
                "targetDescription": "Project description",
                "targetName": "Final Project",
                "targetFramework": "1EdTech University Program and Course Catalog",
                "targetType": "CFItem",
                "targetUrl": "https://1edtech.edu/catalog/degree/project"
                }
            ],
            "allowedValue": ["D", "C", "B", "A"],
            "name": "Final Project Grade",
            "requiredValue": "C",
            "resultType": "LetterGrade",
            "description": "The assessment presents a hypertension scenario with simulated lab results. It is administered to pathophysiology students in an undergraduate nursing program. Completing the assessment requires analytical writing describing and justifying the diagnoses and eliminating alternative diagnoses. See the Pathology of High Blood Pressure assignment and the hypertension scenario used for this assessment.",
            "assessmentType": "Artifact",
            "assessmentOutput": "Written responses to the questions posed in the hypertension scenario",
            "hasGroupParticipation": false,
            "hasGroupEvaluation": false,
            "evaluationMethod": "No studies have been done on reliability or validity but the hypertension scenario is consistent with scenarios encountered in nursing clinical practice.",
            "assessmentExample": "http://placeholderurl.com",
            "scoringMethodExampleDescription": "Placeholder text",
            "assessmentEvaluation": "http://placeholderurl.com"
            },
            {
            "id": "urn:uuid:a70ddc6a-4c4a-4bd8-8277-cb97c79f40c5",
            "type": ["ResultDescription", "AssessmentResultDescription"],
            "alignment": [
                {
                "type": ["Alignment"],
                "targetCode": "project",
                "targetDescription": "Project description",
                "targetName": "Final Project",
                "targetFramework": "1EdTech University Program and Course Catalog",
                "targetType": "CFItem",
                "targetUrl": "https://1edtech.edu/catalog/degree/project"
                }
            ],
            "allowedValue": ["D", "C", "B", "A"],
            "name": "Final Project Grade",
            "requiredLevel": "urn:uuid:d05a0867-d0ad-4b03-bdb5-28fb5d2aab7a",
            "resultType": "RubricCriterionLevel",
            "rubricCriterionLevel": [
                {
                "id": "urn:uuid:d05a0867-d0ad-4b03-bdb5-28fb5d2aab7a",
                "type": ["RubricCriterionLevel"],
                "alignment": [
                    {
                    "type": ["Alignment"],
                    "targetCode": "project",
                    "targetDescription": "Project description",
                    "targetName": "Final Project",
                    "targetFramework": "1EdTech University Program and Course Catalog",
                    "targetType": "CFRubricCriterionLevel",
                    "targetUrl": "https://1edtech.edu/catalog/degree/project/rubric/levels/mastered"
                    }
                ],
                "level": "Mastered",
                "name": "Mastery",
                "points": "4",
                "description": "The assessment presents a hypertension scenario with simulated lab results. It is administered to pathophysiology students in an undergraduate nursing program. Completing the assessment requires analytical writing describing and justifying the diagnoses and eliminating alternative diagnoses. See the Pathology of High Blood Pressure assignment and the hypertension scenario used for this assessment."
                },
                {
                "id": "urn:uuid:6b84b429-31ee-4dac-9d20-e5c55881f80e",
                "type": ["RubricCriterionLevel"],
                "alignment": [
                    {
                    "type": ["Alignment"],
                    "targetCode": "project",
                    "targetDescription": "Project description",
                    "targetName": "Final Project",
                    "targetFramework": "1EdTech University Program and Course Catalog",
                    "targetType": "CFRubricCriterionLevel",
                    "targetUrl": "https://1edtech.edu/catalog/degree/project/rubric/levels/basic"
                    }
                ],
                "level": "Basic",
                "name": "Basic",
                "points": "4"
                }
            ],
            "description": "The assessment presents a hypertension scenario with simulated lab results. It is administered to pathophysiology students in an undergraduate nursing program. Completing the assessment requires analytical writing describing and justifying the diagnoses and eliminating alternative diagnoses. See the Pathology of High Blood Pressure assignment and the hypertension scenario used for this assessment.",
            "assessmentType": "Artifact",
            "assessmentOutput": "Written responses to the questions posed in the hypertension scenario",
            "hasGroupParticipation": false,
            "hasGroupEvaluation": false,
            "evaluationMethod": "No studies have been done on reliability or validity but the hypertension scenario is consistent with scenarios encountered in nursing clinical practice.",
            "assessmentExample": "http://placeholderurl.com",
            "scoringMethodExampleDescription": "Placeholder text",
            "assessmentEvaluation": "http://placeholderurl.com"
            }
        ]
        }
    },
    "credentialSchema": [
        {
        "id": "https://purl.imsglobal.org/spec/ob/v3p0/schema/json/ob_v3p0_achievementcredential_schema.json",
        "type": "1EdTechJsonSchemaValidator2019"
        },
        {
        "id": "http://purl.imsglobal.org/spec/ob-assessment/v3p0/schema/",
        "type": "1EdTechJsonSchemaValidator2019"
        }
    ]
}
undefined
---------------- JWT header ---------------
{
  "alg": "RS256",
  "typ": "JWT",
  "jwk": {
    "e": "AQAB",
    "kty": "RSA",
    "n": "liTxxruEYKhxqTtGpzG4BcwGSWmbwTWQrqSzS9uAFD6jow3IwXpjMZ7D_QcIJZ0rHGo6H-
dfzy57TQGOzsXnBXurqE81EKLHYmr0m95fNJk-7tggrl6KmAZktelhIk-IrdI495T6wOqOPOQEF59nyz
xaDO_B6wuMueUZtWLYCWpWizKcOBlxwMva6bDsWuf-klXiNAIWEWhRFjX4u-8Pr_OgRvq6VMtI_Kxdxn
ufZAgLSkJ8UZwoBlY5koywPPLK6MhBsUEhn9qG0n3jwvghSTVdxceTqaAYzwWrXwcNA5d0dUEXw9kNE5
AHW4XvDxrO3Dsy6M1UDEXTnw5dvzg-FQ"
  }
}
--------------- JWT payload ---------------
// NOTE: The example below uses a valid VC-JWT serialization
//       that duplicates the iss, nbf, jti, and sub fields in the
//       Verifiable Credential (vc) field.
{
  "@context": [
    "https://www.w3.org/ns/credentials/v2",
    "https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.1.json",
    "https://purl.imsglobal.org/spec/ob-assessment/v2p0/context/"
  ],
  "id": "http://example.com/credentials/3527",
  "type": [
    "VerifiableCredential",
    "OpenBadgeCredential"
  ],
  "issuer": {
    "id": "https://example.com/issuers/876543",
    "type": [
      "Profile"
    ],
    "name": "Example Corp"
  },
  "validFrom": "2010-01-01T00:00:00Z",
  "name": "Teamwork Badge",
  "credentialSubject": {
    "id": "did:example:ebfeb1f712ebc6f1c276e12ec21",
    "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 a
nd recognized upon review by Example Corp management."
      },
      "description": "This badge recognizes the development of the capacity to c
ollaborate within a group environment.",
      "name": "Teamwork",
      "resultDescription": [
        {
          "id": "urn:uuid:f6ab24cd-86e8-4eaf-b8c6-ded74e8fd41c",
          "type": [
            "ResultDescription",
            "AssessmentResultDescription"
          ],
          "alignment": [
            {
              "type": [
                "Alignment"
              ],
              "targetCode": "project",
              "targetDescription": "Project description",
              "targetName": "Final Project",
              "targetFramework": "1EdTech University Program and Course Catalog"
,
              "targetType": "CFItem",
              "targetUrl": "https://1edtech.edu/catalog/degree/project"
            }
          ],
          "allowedValue": [
            "D",
            "C",
            "B",
            "A"
          ],
          "name": "Final Project Grade",
          "requiredValue": "C",
          "resultType": "LetterGrade",
          "description": "The assessment presents a hypertension scenario with s
imulated lab results. It is administered to pathophysiology students in an under
graduate nursing program. Completing the assessment requires analytical writing 
describing and justifying the diagnoses and eliminating alternative diagnoses. S
ee the Pathology of High Blood Pressure assignment and the hypertension scenario
 used for this assessment.",
          "assessmentType": "Artifact",
          "assessmentOutput": "Written responses to the questions posed in the h
ypertension scenario",
          "hasGroupParticipation": false,
          "hasGroupEvaluation": false,
          "evaluationMethod": "No studies have been done on reliability or valid
ity but the hypertension scenario is consistent with scenarios encountered in nu
rsing clinical practice.",
          "assessmentExample": "http://placeholderurl.com",
          "scoringMethodExampleDescription": "Placeholder text",
          "assessmentEvaluation": "http://placeholderurl.com"
        },
        {
          "id": "urn:uuid:a70ddc6a-4c4a-4bd8-8277-cb97c79f40c5",
          "type": [
            "ResultDescription",
            "AssessmentResultDescription"
          ],
          "alignment": [
            {
              "type": [
                "Alignment"
              ],
              "targetCode": "project",
              "targetDescription": "Project description",
              "targetName": "Final Project",
              "targetFramework": "1EdTech University Program and Course Catalog"
,
              "targetType": "CFItem",
              "targetUrl": "https://1edtech.edu/catalog/degree/project"
            }
          ],
          "allowedValue": [
            "D",
            "C",
            "B",
            "A"
          ],
          "name": "Final Project Grade",
          "requiredLevel": "urn:uuid:d05a0867-d0ad-4b03-bdb5-28fb5d2aab7a",
          "resultType": "RubricCriterionLevel",
          "rubricCriterionLevel": [
            {
              "id": "urn:uuid:d05a0867-d0ad-4b03-bdb5-28fb5d2aab7a",
              "type": [
                "RubricCriterionLevel"
              ],
              "alignment": [
                {
                  "type": [
                    "Alignment"
                  ],
                  "targetCode": "project",
                  "targetDescription": "Project description",
                  "targetName": "Final Project",
                  "targetFramework": "1EdTech University Program and Course Cata
log",
                  "targetType": "CFRubricCriterionLevel",
                  "targetUrl": "https://1edtech.edu/catalog/degree/project/rubri
c/levels/mastered"
                }
              ],
              "level": "Mastered",
              "name": "Mastery",
              "points": "4",
              "description": "The assessment presents a hypertension scenario wi
th simulated lab results. It is administered to pathophysiology students in an u
ndergraduate nursing program. Completing the assessment requires analytical writ
ing describing and justifying the diagnoses and eliminating alternative diagnose
s. See the Pathology of High Blood Pressure assignment and the hypertension scen
ario used for this assessment."
            },
            {
              "id": "urn:uuid:6b84b429-31ee-4dac-9d20-e5c55881f80e",
              "type": [
                "RubricCriterionLevel"
              ],
              "alignment": [
                {
                  "type": [
                    "Alignment"
                  ],
                  "targetCode": "project",
                  "targetDescription": "Project description",
                  "targetName": "Final Project",
                  "targetFramework": "1EdTech University Program and Course Cata
log",
                  "targetType": "CFRubricCriterionLevel",
                  "targetUrl": "https://1edtech.edu/catalog/degree/project/rubri
c/levels/basic"
                }
              ],
              "level": "Basic",
              "name": "Basic",
              "points": "4"
            }
          ],
          "description": "The assessment presents a hypertension scenario with s
imulated lab results. It is administered to pathophysiology students in an under
graduate nursing program. Completing the assessment requires analytical writing 
describing and justifying the diagnoses and eliminating alternative diagnoses. S
ee the Pathology of High Blood Pressure assignment and the hypertension scenario
 used for this assessment.",
          "assessmentType": "Artifact",
          "assessmentOutput": "Written responses to the questions posed in the h
ypertension scenario",
          "hasGroupParticipation": false,
          "hasGroupEvaluation": false,
          "evaluationMethod": "No studies have been done on reliability or valid
ity but the hypertension scenario is consistent with scenarios encountered in nu
rsing clinical practice.",
          "assessmentExample": "http://placeholderurl.com",
          "scoringMethodExampleDescription": "Placeholder text",
          "assessmentEvaluation": "http://placeholderurl.com"
        }
      ]
    }
  },
  "credentialSchema": [
    {
      "id": "https://purl.imsglobal.org/spec/ob/v3p0/schema/json/ob_v3p0_achieve
mentcredential_schema.json",
      "type": "1EdTechJsonSchemaValidator2019"
    },
    {
      "id": "http://purl.imsglobal.org/spec/ob-assessment/v3p0/schema/",
      "type": "1EdTechJsonSchemaValidator2019"
    }
  ],
  "iss": "https://example.com/issuers/876543",
  "jti": "http://example.com/credentials/3527",
  "sub": "did:example:ebfeb1f712ebc6f1c276e12ec21"
}
--------------- JWT ---------------
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCIsImp3ayI6eyJlIjoiQVFBQiIsImt0eSI6IlJTQSIsIm4i
OiJsaVR4eHJ1RVlLaHhxVHRHcHpHNEJjd0dTV21id1RXUXJxU3pTOXVBRkQ2am93M0l3WHBqTVo3RF9R
Y0lKWjBySEdvNkgtZGZ6eTU3VFFHT3pzWG5CWHVycUU4MUVLTEhZbXIwbTk1Zk5Kay03dGdncmw2S21B
Wmt0ZWxoSWstSXJkSTQ5NVQ2d09xT1BPUUVGNTlueXp4YURPX0I2d3VNdWVVWnRXTFlDV3BXaXpLY09C
bHh3TXZhNmJEc1d1Zi1rbFhpTkFJV0VXaFJGalg0dS04UHJfT2dSdnE2Vk10SV9LeGR4bnVmWkFnTFNr
SjhVWndvQmxZNWtveXdQUExLNk1oQnNVRWhuOXFHMG4zand2Z2hTVFZkeGNlVHFhQVl6d1dyWHdjTkE1
ZDBkVUVYdzlrTkU1QUhXNFh2RHhyTzNEc3k2TTFVREVYVG53NWR2emctRlEifX0.eyJAY29udGV4dCI6
WyJodHRwczovL3d3dy53My5vcmcvbnMvY3JlZGVudGlhbHMvdjIiLCJodHRwczovL3B1cmwuaW1zZ2xv
YmFsLm9yZy9zcGVjL29iL3YzcDAvY29udGV4dC0zLjAuMS5qc29uIiwiaHR0cHM6Ly9wdXJsLmltc2ds
b2JhbC5vcmcvc3BlYy9vYi1hc3Nlc3NtZW50L3YycDAvY29udGV4dC8iXSwiaWQiOiJodHRwOi8vZXhh
bXBsZS5jb20vY3JlZGVudGlhbHMvMzUyNyIsInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJP
cGVuQmFkZ2VDcmVkZW50aWFsIl0sImlzc3VlciI6eyJpZCI6Imh0dHBzOi8vZXhhbXBsZS5jb20vaXNz
dWVycy84NzY1NDMiLCJ0eXBlIjpbIlByb2ZpbGUiXSwibmFtZSI6IkV4YW1wbGUgQ29ycCJ9LCJ2YWxp
ZEZyb20iOiIyMDEwLTAxLTAxVDAwOjAwOjAwWiIsIm5hbWUiOiJUZWFtd29yayBCYWRnZSIsImNyZWRl
bnRpYWxTdWJqZWN0Ijp7ImlkIjoiZGlkOmV4YW1wbGU6ZWJmZWIxZjcxMmViYzZmMWMyNzZlMTJlYzIx
IiwidHlwZSI6WyJBY2hpZXZlbWVudFN1YmplY3QiXSwiYWNoaWV2ZW1lbnQiOnsiaWQiOiJodHRwczov
L2V4YW1wbGUuY29tL2FjaGlldmVtZW50cy8yMXN0LWNlbnR1cnktc2tpbGxzL3RlYW13b3JrIiwidHlw
ZSI6WyJBY2hpZXZlbWVudCJdLCJjcml0ZXJpYSI6eyJuYXJyYXRpdmUiOiJUZWFtIG1lbWJlcnMgYXJl
IG5vbWluYXRlZCBmb3IgdGhpcyBiYWRnZSBieSB0aGVpciBwZWVycyBhbmQgcmVjb2duaXplZCB1cG9u
IHJldmlldyBieSBFeGFtcGxlIENvcnAgbWFuYWdlbWVudC4ifSwiZGVzY3JpcHRpb24iOiJUaGlzIGJh
ZGdlIHJlY29nbml6ZXMgdGhlIGRldmVsb3BtZW50IG9mIHRoZSBjYXBhY2l0eSB0byBjb2xsYWJvcmF0
ZSB3aXRoaW4gYSBncm91cCBlbnZpcm9ubWVudC4iLCJuYW1lIjoiVGVhbXdvcmsiLCJyZXN1bHREZXNj
cmlwdGlvbiI6W3siaWQiOiJ1cm46dXVpZDpmNmFiMjRjZC04NmU4LTRlYWYtYjhjNi1kZWQ3NGU4ZmQ0
MWMiLCJ0eXBlIjpbIlJlc3VsdERlc2NyaXB0aW9uIiwiQXNzZXNzbWVudFJlc3VsdERlc2NyaXB0aW9u
Il0sImFsaWdubWVudCI6W3sidHlwZSI6WyJBbGlnbm1lbnQiXSwidGFyZ2V0Q29kZSI6InByb2plY3Qi
LCJ0YXJnZXREZXNjcmlwdGlvbiI6IlByb2plY3QgZGVzY3JpcHRpb24iLCJ0YXJnZXROYW1lIjoiRmlu
YWwgUHJvamVjdCIsInRhcmdldEZyYW1ld29yayI6IjFFZFRlY2ggVW5pdmVyc2l0eSBQcm9ncmFtIGFu
ZCBDb3Vyc2UgQ2F0YWxvZyIsInRhcmdldFR5cGUiOiJDRkl0ZW0iLCJ0YXJnZXRVcmwiOiJodHRwczov
LzFlZHRlY2guZWR1L2NhdGFsb2cvZGVncmVlL3Byb2plY3QifV0sImFsbG93ZWRWYWx1ZSI6WyJEIiwi
QyIsIkIiLCJBIl0sIm5hbWUiOiJGaW5hbCBQcm9qZWN0IEdyYWRlIiwicmVxdWlyZWRWYWx1ZSI6IkMi
LCJyZXN1bHRUeXBlIjoiTGV0dGVyR3JhZGUiLCJkZXNjcmlwdGlvbiI6IlRoZSBhc3Nlc3NtZW50IHBy
ZXNlbnRzIGEgaHlwZXJ0ZW5zaW9uIHNjZW5hcmlvIHdpdGggc2ltdWxhdGVkIGxhYiByZXN1bHRzLiBJ
dCBpcyBhZG1pbmlzdGVyZWQgdG8gcGF0aG9waHlzaW9sb2d5IHN0dWRlbnRzIGluIGFuIHVuZGVyZ3Jh
ZHVhdGUgbnVyc2luZyBwcm9ncmFtLiBDb21wbGV0aW5nIHRoZSBhc3Nlc3NtZW50IHJlcXVpcmVzIGFu
YWx5dGljYWwgd3JpdGluZyBkZXNjcmliaW5nIGFuZCBqdXN0aWZ5aW5nIHRoZSBkaWFnbm9zZXMgYW5k
IGVsaW1pbmF0aW5nIGFsdGVybmF0aXZlIGRpYWdub3Nlcy4gU2VlIHRoZSBQYXRob2xvZ3kgb2YgSGln
aCBCbG9vZCBQcmVzc3VyZSBhc3NpZ25tZW50IGFuZCB0aGUgaHlwZXJ0ZW5zaW9uIHNjZW5hcmlvIHVz
ZWQgZm9yIHRoaXMgYXNzZXNzbWVudC4iLCJhc3Nlc3NtZW50VHlwZSI6IkFydGlmYWN0IiwiYXNzZXNz
bWVudE91dHB1dCI6IldyaXR0ZW4gcmVzcG9uc2VzIHRvIHRoZSBxdWVzdGlvbnMgcG9zZWQgaW4gdGhl
IGh5cGVydGVuc2lvbiBzY2VuYXJpbyIsImhhc0dyb3VwUGFydGljaXBhdGlvbiI6ZmFsc2UsImhhc0dy
b3VwRXZhbHVhdGlvbiI6ZmFsc2UsImV2YWx1YXRpb25NZXRob2QiOiJObyBzdHVkaWVzIGhhdmUgYmVl
biBkb25lIG9uIHJlbGlhYmlsaXR5IG9yIHZhbGlkaXR5IGJ1dCB0aGUgaHlwZXJ0ZW5zaW9uIHNjZW5h
cmlvIGlzIGNvbnNpc3RlbnQgd2l0aCBzY2VuYXJpb3MgZW5jb3VudGVyZWQgaW4gbnVyc2luZyBjbGlu
aWNhbCBwcmFjdGljZS4iLCJhc3Nlc3NtZW50RXhhbXBsZSI6Imh0dHA6Ly9wbGFjZWhvbGRlcnVybC5j
b20iLCJzY29yaW5nTWV0aG9kRXhhbXBsZURlc2NyaXB0aW9uIjoiUGxhY2Vob2xkZXIgdGV4dCIsImFz
c2Vzc21lbnRFdmFsdWF0aW9uIjoiaHR0cDovL3BsYWNlaG9sZGVydXJsLmNvbSJ9LHsiaWQiOiJ1cm46
dXVpZDphNzBkZGM2YS00YzRhLTRiZDgtODI3Ny1jYjk3Yzc5ZjQwYzUiLCJ0eXBlIjpbIlJlc3VsdERl
c2NyaXB0aW9uIiwiQXNzZXNzbWVudFJlc3VsdERlc2NyaXB0aW9uIl0sImFsaWdubWVudCI6W3sidHlw
ZSI6WyJBbGlnbm1lbnQiXSwidGFyZ2V0Q29kZSI6InByb2plY3QiLCJ0YXJnZXREZXNjcmlwdGlvbiI6
IlByb2plY3QgZGVzY3JpcHRpb24iLCJ0YXJnZXROYW1lIjoiRmluYWwgUHJvamVjdCIsInRhcmdldEZy
YW1ld29yayI6IjFFZFRlY2ggVW5pdmVyc2l0eSBQcm9ncmFtIGFuZCBDb3Vyc2UgQ2F0YWxvZyIsInRh
cmdldFR5cGUiOiJDRkl0ZW0iLCJ0YXJnZXRVcmwiOiJodHRwczovLzFlZHRlY2guZWR1L2NhdGFsb2cv
ZGVncmVlL3Byb2plY3QifV0sImFsbG93ZWRWYWx1ZSI6WyJEIiwiQyIsIkIiLCJBIl0sIm5hbWUiOiJG
aW5hbCBQcm9qZWN0IEdyYWRlIiwicmVxdWlyZWRMZXZlbCI6InVybjp1dWlkOmQwNWEwODY3LWQwYWQt
NGIwMy1iZGI1LTI4ZmI1ZDJhYWI3YSIsInJlc3VsdFR5cGUiOiJSdWJyaWNDcml0ZXJpb25MZXZlbCIs
InJ1YnJpY0NyaXRlcmlvbkxldmVsIjpbeyJpZCI6InVybjp1dWlkOmQwNWEwODY3LWQwYWQtNGIwMy1i
ZGI1LTI4ZmI1ZDJhYWI3YSIsInR5cGUiOlsiUnVicmljQ3JpdGVyaW9uTGV2ZWwiXSwiYWxpZ25tZW50
IjpbeyJ0eXBlIjpbIkFsaWdubWVudCJdLCJ0YXJnZXRDb2RlIjoicHJvamVjdCIsInRhcmdldERlc2Ny
aXB0aW9uIjoiUHJvamVjdCBkZXNjcmlwdGlvbiIsInRhcmdldE5hbWUiOiJGaW5hbCBQcm9qZWN0Iiwi
dGFyZ2V0RnJhbWV3b3JrIjoiMUVkVGVjaCBVbml2ZXJzaXR5IFByb2dyYW0gYW5kIENvdXJzZSBDYXRh
bG9nIiwidGFyZ2V0VHlwZSI6IkNGUnVicmljQ3JpdGVyaW9uTGV2ZWwiLCJ0YXJnZXRVcmwiOiJodHRw
czovLzFlZHRlY2guZWR1L2NhdGFsb2cvZGVncmVlL3Byb2plY3QvcnVicmljL2xldmVscy9tYXN0ZXJl
ZCJ9XSwibGV2ZWwiOiJNYXN0ZXJlZCIsIm5hbWUiOiJNYXN0ZXJ5IiwicG9pbnRzIjoiNCIsImRlc2Ny
aXB0aW9uIjoiVGhlIGFzc2Vzc21lbnQgcHJlc2VudHMgYSBoeXBlcnRlbnNpb24gc2NlbmFyaW8gd2l0
aCBzaW11bGF0ZWQgbGFiIHJlc3VsdHMuIEl0IGlzIGFkbWluaXN0ZXJlZCB0byBwYXRob3BoeXNpb2xv
Z3kgc3R1ZGVudHMgaW4gYW4gdW5kZXJncmFkdWF0ZSBudXJzaW5nIHByb2dyYW0uIENvbXBsZXRpbmcg
dGhlIGFzc2Vzc21lbnQgcmVxdWlyZXMgYW5hbHl0aWNhbCB3cml0aW5nIGRlc2NyaWJpbmcgYW5kIGp1
c3RpZnlpbmcgdGhlIGRpYWdub3NlcyBhbmQgZWxpbWluYXRpbmcgYWx0ZXJuYXRpdmUgZGlhZ25vc2Vz
LiBTZWUgdGhlIFBhdGhvbG9neSBvZiBIaWdoIEJsb29kIFByZXNzdXJlIGFzc2lnbm1lbnQgYW5kIHRo
ZSBoeXBlcnRlbnNpb24gc2NlbmFyaW8gdXNlZCBmb3IgdGhpcyBhc3Nlc3NtZW50LiJ9LHsiaWQiOiJ1
cm46dXVpZDo2Yjg0YjQyOS0zMWVlLTRkYWMtOWQyMC1lNWM1NTg4MWY4MGUiLCJ0eXBlIjpbIlJ1YnJp
Y0NyaXRlcmlvbkxldmVsIl0sImFsaWdubWVudCI6W3sidHlwZSI6WyJBbGlnbm1lbnQiXSwidGFyZ2V0
Q29kZSI6InByb2plY3QiLCJ0YXJnZXREZXNjcmlwdGlvbiI6IlByb2plY3QgZGVzY3JpcHRpb24iLCJ0
YXJnZXROYW1lIjoiRmluYWwgUHJvamVjdCIsInRhcmdldEZyYW1ld29yayI6IjFFZFRlY2ggVW5pdmVy
c2l0eSBQcm9ncmFtIGFuZCBDb3Vyc2UgQ2F0YWxvZyIsInRhcmdldFR5cGUiOiJDRlJ1YnJpY0NyaXRl
cmlvbkxldmVsIiwidGFyZ2V0VXJsIjoiaHR0cHM6Ly8xZWR0ZWNoLmVkdS9jYXRhbG9nL2RlZ3JlZS9w
cm9qZWN0L3J1YnJpYy9sZXZlbHMvYmFzaWMifV0sImxldmVsIjoiQmFzaWMiLCJuYW1lIjoiQmFzaWMi
LCJwb2ludHMiOiI0In1dLCJkZXNjcmlwdGlvbiI6IlRoZSBhc3Nlc3NtZW50IHByZXNlbnRzIGEgaHlw
ZXJ0ZW5zaW9uIHNjZW5hcmlvIHdpdGggc2ltdWxhdGVkIGxhYiByZXN1bHRzLiBJdCBpcyBhZG1pbmlz
dGVyZWQgdG8gcGF0aG9waHlzaW9sb2d5IHN0dWRlbnRzIGluIGFuIHVuZGVyZ3JhZHVhdGUgbnVyc2lu
ZyBwcm9ncmFtLiBDb21wbGV0aW5nIHRoZSBhc3Nlc3NtZW50IHJlcXVpcmVzIGFuYWx5dGljYWwgd3Jp
dGluZyBkZXNjcmliaW5nIGFuZCBqdXN0aWZ5aW5nIHRoZSBkaWFnbm9zZXMgYW5kIGVsaW1pbmF0aW5n
IGFsdGVybmF0aXZlIGRpYWdub3Nlcy4gU2VlIHRoZSBQYXRob2xvZ3kgb2YgSGlnaCBCbG9vZCBQcmVz
c3VyZSBhc3NpZ25tZW50IGFuZCB0aGUgaHlwZXJ0ZW5zaW9uIHNjZW5hcmlvIHVzZWQgZm9yIHRoaXMg
YXNzZXNzbWVudC4iLCJhc3Nlc3NtZW50VHlwZSI6IkFydGlmYWN0IiwiYXNzZXNzbWVudE91dHB1dCI6
IldyaXR0ZW4gcmVzcG9uc2VzIHRvIHRoZSBxdWVzdGlvbnMgcG9zZWQgaW4gdGhlIGh5cGVydGVuc2lv
biBzY2VuYXJpbyIsImhhc0dyb3VwUGFydGljaXBhdGlvbiI6ZmFsc2UsImhhc0dyb3VwRXZhbHVhdGlv
biI6ZmFsc2UsImV2YWx1YXRpb25NZXRob2QiOiJObyBzdHVkaWVzIGhhdmUgYmVlbiBkb25lIG9uIHJl
bGlhYmlsaXR5IG9yIHZhbGlkaXR5IGJ1dCB0aGUgaHlwZXJ0ZW5zaW9uIHNjZW5hcmlvIGlzIGNvbnNp
c3RlbnQgd2l0aCBzY2VuYXJpb3MgZW5jb3VudGVyZWQgaW4gbnVyc2luZyBjbGluaWNhbCBwcmFjdGlj
ZS4iLCJhc3Nlc3NtZW50RXhhbXBsZSI6Imh0dHA6Ly9wbGFjZWhvbGRlcnVybC5jb20iLCJzY29yaW5n
TWV0aG9kRXhhbXBsZURlc2NyaXB0aW9uIjoiUGxhY2Vob2xkZXIgdGV4dCIsImFzc2Vzc21lbnRFdmFs
dWF0aW9uIjoiaHR0cDovL3BsYWNlaG9sZGVydXJsLmNvbSJ9XX19LCJjcmVkZW50aWFsU2NoZW1hIjpb
eyJpZCI6Imh0dHBzOi8vcHVybC5pbXNnbG9iYWwub3JnL3NwZWMvb2IvdjNwMC9zY2hlbWEvanNvbi9v
Yl92M3AwX2FjaGlldmVtZW50Y3JlZGVudGlhbF9zY2hlbWEuanNvbiIsInR5cGUiOiIxRWRUZWNoSnNv
blNjaGVtYVZhbGlkYXRvcjIwMTkifSx7ImlkIjoiaHR0cDovL3B1cmwuaW1zZ2xvYmFsLm9yZy9zcGVj
L29iLWFzc2Vzc21lbnQvdjNwMC9zY2hlbWEvIiwidHlwZSI6IjFFZFRlY2hKc29uU2NoZW1hVmFsaWRh
dG9yMjAxOSJ9XSwiaXNzIjoiaHR0cHM6Ly9leGFtcGxlLmNvbS9pc3N1ZXJzLzg3NjU0MyIsImp0aSI6
Imh0dHA6Ly9leGFtcGxlLmNvbS9jcmVkZW50aWFscy8zNTI3Iiwic3ViIjoiZGlkOmV4YW1wbGU6ZWJm
ZWIxZjcxMmViYzZmMWMyNzZlMTJlYzIxIn0.EzCs3-bOtTEBByCGL9qket0SFgGHyI6guziCPEpWqwoX
VtFzUaogHsiIEhetOXmuhhWQqL7HjksAjwWdDNqf7E0XqxQTVgeA0CxGpamnPECOFsSuzgQprq_MhLNt
O_R3CV-Xqut8UImNcZSxvNJhVey6kYnN448IW9Urmo_CvzEdD81sDLqJsCdyxpbss5qCi-HNU-8jrLt5
et5XUDm6MbzB6iWr0iX9MHSNOH0HRDmjkn3Z5fEjYKOq_t21ATXwX4LlvJCmTMdixfnuK1CTDzQhOPQe
SYItpSq49MavsTLI2nyM52Nq4tGJ1Pvk4ZAPQOdFIBB0dW360gGap_9Ckg

B. Schema

B.1 Context

        
{
  "@context": {
    "@protected": true,
    "id": "@id",
    "type": "@type",
    "extensions": "https://w3id.org/openbadges/extensions#",
    "schema": "http://schema.org/",
    "AssessmentResultDescription": {
      "@id": "https://purl.imsglobal.org/spec/vc/ob/vocab.html#AssessmentResultDescription",
      "@context": {
        "schema": "http://schema.org/",
        "Artifact": "extensions:AssessmentExtensionArtifact",
        "Exam": "extensions:AssessmentExtensionExam",
        "ExternalQuestion": "extensions:AssessmentExtensionExternalQuestion",
        "FileQuestion": "extensions:AssessmentExtensionFileQuestion",
        "Performance": "extensions:AssessmentExtensionPerformance",
        "TextQuestion": "extensions:AssessmentExtensionTextQuestion",
        "assessmentEvaluation": "extensions:assessmentEvaluation",
        "assessmentType": "extensions:assessmentType",
        "assessmentExample": "extensions:assessmentExample",
        "assessmentOutput": "extensions:assessmentOutput",
        "characterLimit": "extensions:assessmentCharacterLimit",
        "evaluationMethod": "extensions:assessmentEvaluationMethod",
        "hasGroupEvaluation": "extensions:assessmentHasGroupEvaluation",
        "hasGroupParticipation": "extensions:assessmentHasGroupParticipation",
        "questions": "extensions:assessmentQuestions",
        "sections": "extensions:assessmentSections",
        "scoringMethodExampleDescription": "extensions:assessmentScoringMethodExampleDescription",
        "text": "schema:text",
        "wordLimit": "extensions:assessmentWordLimit"
      }
    }
  }
}

B.2 Open Badges Assessment Extension JSON Schema

B.2.1 JSON Schema

B.2.2 AchievementCredential

{
  "$schema": "https://json-schema.org/draft/2019-09/schema#",
  "$id": "https://purl.imsglobal.org/spec/ob-assmt/v2p0/schema/json/ob-assmt_v2p0_achievementcredential-jsonschema1.json",
  "title": "JSON Schema for the AchievementCredential class.",
  "description": "No description supplied.",
  "type": "object",
  "properties": {
    "credentialSubject": {
      "$ref": "#/$defs/AchievementSubject"
    }
  },
  "required": [
    "credentialSubject"
  ],
  "additionalProperties": true,
  "$defs": {
    "AchievementSubject": {
      "description": "No description supplied.",
      "type": "object",
      "properties": {
        "achievement": {
          "$ref": "#/$defs/Achievement"
        }
      },
      "required": [
        "achievement"
      ],
      "additionalProperties": true
    },
    "Achievement": {
      "description": "No description supplied.",
      "type": "object",
      "properties": {
        "resultDescription": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AssessmentResultDescription"
          }
        }
      },
      "required": [],
      "additionalProperties": true
    },
    "AssessmentResultDescription": {
      "description": "ResultDescription extension with assessment information",
      "type": "object",
      "properties": {
        "description": {
          "description": "Description of the single assessment.",
          "$comment": "Origin: String (PrimitiveType); Character strings.",
          "type": "string"
        },
        "assessmentType": {
          "description": "Assessment type.",
          "$comment": "Origin: AssesmentTypeEnum (Enum); The type of assessment.",
          "type": "string",
          "enum": [
            "Exam",
            "Performance",
            "Artifact"
          ]
        },
        "assessmentOutput": {
          "description": "This field provides additional details about assessment type. Values for assessmentOutput are expected to be words or phrases that describe the key features of the evidence that are produced in earning the badge.",
          "$comment": "Origin: String (PrimitiveType); Character strings.",
          "type": "string"
        },
        "hasGroupParticipation": {
          "description": "Completing the assessment activity being referenced requires two or more participants.",
          "$comment": "Origin: Boolean (PrimitiveType); A boolean, expressed as `true` or `false`",
          "type": "boolean"
        },
        "hasGroupEvaluation": {
          "description": "Participants in the assessment activity being referenced are scored as a group.",
          "$comment": "Origin: Boolean (PrimitiveType); A boolean, expressed as `true` or `false`",
          "type": "boolean"
        },
        "evaluationMethod": {
          "description": "Information about how the assessment is scored. What do the scores represent in a range of scores? If a rubric was used, what are the score ranges for each criteria?.",
          "$comment": "Origin: String (PrimitiveType); Character strings.",
          "type": "string"
        },
        "assessmentExample": {
          "description": "An example based on the assessment type.",
          "$comment": "Origin: URI (DerivedType); A `NormalizedString` that respresents a Uniform Resource Identifier (URI).",
          "type": "string"
        },
        "scoringMethodExampleDescription": {
          "description": "The text of an example of the method or tool used to score the assessment.",
          "$comment": "Origin: String (PrimitiveType); Character strings.",
          "type": "string"
        },
        "assessmentEvaluation": {
          "description": "Link to studies or other information about research or calculations of reliability and validity for the assessment or the scoring methods.",
          "$comment": "Origin: URI (DerivedType); A `NormalizedString` that respresents a Uniform Resource Identifier (URI).",
          "type": "string"
        },
        "sections": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Section"
          }
        }
      },
      "required": [
        "description",
        "assessmentType",
        "assessmentOutput",
        "hasGroupParticipation",
        "hasGroupEvaluation"
      ],
      "additionalProperties": false
    },
    "Section": {
      "description": "No description supplied.",
      "type": "object",
      "properties": {
        "type": {
          "description": "MUST be the IRI 'Section'.",
          "$comment": "Origin: IRI (DerivedType); A `NormalizedString` that represents an Internationalized Resource Identifier (IRI), which extends the ASCII characters subset of the Uniform Resource Identifier (URI).",
          "type": "string"
        },
        "title": {
          "description": "The name of the section.",
          "$comment": "Origin: String (PrimitiveType); Character strings.",
          "type": "string"
        },
        "description": {
          "description": "A short description of the section.",
          "$comment": "Origin: String (PrimitiveType); Character strings.",
          "type": "string"
        },
        "questions": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/Question"
          }
        },
        "required": {
          "description": "Indicates whether this section is considered to be required for completion of the assessment. Default: true.",
          "$comment": "Origin: String (PrimitiveType); Character strings.",
          "type": "string"
        },
        "url": {
          "description": "An external URL that represents this section.",
          "$comment": "Origin: URI (DerivedType); A `NormalizedString` that respresents a Uniform Resource Identifier (URI).",
          "type": "string"
        },
        "rubricCriterionLevelId": {
          "type": "array",
          "items": {
            "description": "A listing of RubricCriterionLevel identifiers related to this section",
            "$comment": "Origin: IRI (DerivedType); A `NormalizedString` that represents an Internationalized Resource Identifier (IRI), which extends the ASCII characters subset of the Uniform Resource Identifier (URI).",
            "type": "string"
          }
        }
      },
      "required": [
        "type",
        "title",
        "description"
      ],
      "additionalProperties": false
    },
    "Question": {
      "description": "No description supplied.",
      "type": "object",
      "properties": {
        "type": {
          "description": "The type of question. One of the following type identifiers defined in the extension context: 'ExternalQuestion', 'FileQuestion' or 'TextQuestion'.",
          "$comment": "Origin: IRI (DerivedType); A `NormalizedString` that represents an Internationalized Resource Identifier (IRI), which extends the ASCII characters subset of the Uniform Resource Identifier (URI).",
          "type": "string"
        },
        "text": {
          "description": "The actual text of the question.",
          "$comment": "Origin: String (PrimitiveType); Character strings.",
          "type": "string"
        },
        "required": {
          "description": "Indicates whether this question is considered to be required for completion of the section. Default: true.",
          "$comment": "Origin: String (PrimitiveType); Character strings.",
          "type": "string"
        },
        "wordLimit": {
          "description": "For TextQuestions, specifies a maximum length in words that may be enforced as a suggestion or requirement, depending on the application.",
          "$comment": "Origin: NonNegativeInteger (PrimitiveType)",
          "type": "integer"
        },
        "characterLimit": {
          "description": "For TextQuestions, specifies a maximum length in characters that may be enforced as a suggestion or requirement, depending on the application.",
          "$comment": "Origin: NonNegativeInteger (PrimitiveType)",
          "type": "integer"
        },
        "url": {
          "description": "An external URL that represents this question.",
          "$comment": "Origin: URI (DerivedType); A `NormalizedString` that respresents a Uniform Resource Identifier (URI).",
          "type": "string"
        },
        "rubricCriterionLevelId": {
          "type": "array",
          "items": {
            "description": "A listing of RubricCriterionLevel identifiers related to this question",
            "$comment": "Origin: IRI (DerivedType); A `NormalizedString` that represents an Internationalized Resource Identifier (IRI), which extends the ASCII characters subset of the Uniform Resource Identifier (URI).",
            "type": "string"
          }
        }
      },
      "required": [
        "type",
        "text"
      ],
      "additionalProperties": false
    }
  }
}

C. Revision History

This section is non-normative.

C.1 Version History

Version No. Release Date Comments
Working Document 1.0 July 24th, 2024 Initial proof of concept.
Candidate Final Public 1.0 July 8th, 2025 Candidate Final Public version.

D. References

D.1 Normative references

[OB-30]
Open Badges Specification v3.0. 1EdTech. 1EdTech Final Release. URL: https://www.imsglobal.org/spec/ob/v3p0/
[OB-ASSMT-20-ERRATA]
Open Badges Asessment Extension v2.0: Errata. URL: https://www.imsglobal.org/spec/ob-assessment/v2p0/errata/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
[XMLSCHEMA-2]
XML Schema Part 2: Datatypes Second Edition. Paul V. Biron; Ashok Malhotra. W3C. 28 October 2004. W3C Recommendation. URL: https://www.w3.org/TR/xmlschema-2/

E. List of Contributors

The following individuals contributed to the development of this document:

Name Organization Role
Nate OttoSkybridge SkillsInvited Expert
Justin PitcherAnthologyCo-chair, OB
Xavi Aracil1EdtechEditor
Rob Coyle1EdtechEditor

1EdTech™ Consortium, Inc. ("1EdTech") is publishing the information contained in this document ("Specification") for purposes of scientific, experimental, and scholarly collaboration only.

1EdTech makes no warranty or representation regarding the accuracy or completeness of the Specification.

This material is provided on an "As Is" and "As Available" basis.

The Specification is at all times subject to change and revision without notice.

It is your sole responsibility to evaluate the usefulness, accuracy, and completeness of the Specification as it relates to you.

1EdTech would appreciate receiving your comments and suggestions.

Please contact 1EdTech through our website at www.1edtech.org

Please refer to Document Name: Open Badges Assessment Extension 2.0

Date: July 8th, 2025