IMS Public Candidate Final

IMS Global Logo

IMS Computer Adaptive Testing (CAT) Service Version 1.0

IMS Public Candidate Final
Version 1.0

Date Issued: 2021-02-01
Latest version: http://www.imsglobal.org/cat/latest/

IPR and Distribution Notices

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.

IMS takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the 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 IMS's procedures with respect to rights in IMS specifications can be found at the IMS Intellectual Property Rights web page: http://www.imsglobal.org/ipr/imsipr_policyFinal.pdf.

Copyright © 2021 IMS Global Learning Consortium. All Rights Reserved.

Use of this specification to develop products or services is governed by the license with IMS found on the IMS website: http://www.imsglobal.org/speclicense.html.

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 IMS 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 can be posted here: www.imsglobal.org/forums/ims-glc-public-forums-and-resources.

Trademark information: http://www.imsglobal.org/copyright.html

Document Name: IMS Computer Adaptive Testing (CAT) Service v1.0

Revision: 2021-02-01

toc | top

Executive Summary

The Computer Adaptive Testing (CAT) specification defines how to implement adaptive testing based upon assessments defined using the IMS Question and Test Interoperability® (QTI®) specification. This specification defines the data that is exchanged, and how the data is exchanged, between an Assessment delivery system and a CAT engine. The CAT engine is responsible for identifying and supplying the set of Items (the encoded questions) to be delivered in an assessment. This approach allows the use of protected algorithms (black box) with different sets of data such as psychometric data, constraints, stopping criteria, etc.

This document is the abstract description of the IMS CAT Service Model. This description uses the Unified Modelling Language (UML, to provide a diagrammatically-based solution. This description defines the set of operations that realise the data exchange and the data models that define the actual data being exchanged. The corresponding API solutions are derived from this service model through a sequence of machine-transformations [I-BAT, 06].

toc | top

Table of Contents

Executive Summary

1. Introduction

1.1 Scope and Context

1.2 Conventions

1.3 Structure of this Document

1.4 Nomenclature

2. The Use Cases

2.1 Use-case 1 (Initialize CAT Engine)

2.2 Use-case 2 (Initialize Candidate Session)

2.3 Use-case 3 (Select Next Items)

2.4 Use-case 4 (Terminate Candidate Session)

3. The Conceptual Model

4. Service Architecture and Specification Model

4.1 An Abstract Representation

4.2 Service Architecture and Specification Model

4.3 Service Objects

4.4 The CAT Service Choreography

5. The Behavior Model

5.1 Service Definition

5.2 "SectionsManager" Interface Description

5.2.1 "createSection" Operation

5.2.2 "getSection" Operation

5.2.3 "endSection" Operation

5.3 "SessionsManager" Interface Description

5.3.1 "createSession" Operation

5.3.2 "endSession" Operation

5.3.3 "submitResults" Operation

6. The Interface Model

6.1 "AssessmentResult" Class Description

6.1.1 "context" Attribute Description

6.1.2 "testResult" Attribute Description

6.1.3 "itemResult" Attribute Description

6.2 "ItemSet" Class Description

6.2.1 "itemIdentifiers" Attribute Description

6.3 "LUID" Class Description

6.4 "NextItemSet" Class Description

6.4.1 "itemIdentifiers" Attribute Description

6.4.2 "stageLength" Attribute Description

6.5 "Results" Class Description

6.5.1 "assessmentResult" Attribute Description

6.5.2 "sessionState" Attribute Description

6.6 "Section" Class Description

6.6.1 "qtiMetadata" Attribute Description

6.6.2 "qtiUsagedata" Attribute Description

6.6.3 "sectionConfiguration" Attribute Description

6.7 "Session" Class Description

6.7.1 "personalNeedsAndPreferences" Attribute Description

6.7.2 "demographics" Attribute Description

6.7.3 "priorData" Attribute Description

6.8 "SessionState" Class Description

6.9 "imsx_StatusInfo" Class Description

6.9.1 "imsx_codeMajor" Attribute Description

6.9.2 "imsx_severity" Attribute Description

6.9.3 "imsx_description" Attribute Description

6.9.4 "imsx_codeMinor" Attribute Description

7. Data Model

7.1 Data Class Descriptions

7.1.1 "AssessmentResult" Class Description

7.1.1.1 "context" Attribute Description

7.1.1.2 "testResult" Attribute Description

7.1.1.3 "itemResult" Attribute Description

7.1.2 "CandidateResponse" Class Description

7.1.2.1 "value" Attribute Description

7.1.3 "Context" Class Description

7.1.3.1 "sourcedId" Attribute Description

7.1.3.2 "sessionIdentifiers" Attribute Description

7.1.4 "CorrectResponse" Class Description

7.1.4.1 "interpretation" Attribute Description

7.1.4.2 "value" Attribute Description

7.1.5 "ItemResult" Class Description

7.1.5.1 "identifier" Attribute Description

7.1.5.2 "sequenceIndex" Attribute Description

7.1.5.3 "datestamp" Attribute Description

7.1.5.4 "sessionStatus" Attribute Description

7.1.5.5 "responseVariables" Attribute Description

7.1.5.6 "templateVariables" Attribute Description

7.1.5.7 "outcomeVariables" Attribute Description

7.1.5.8 "candidateComment" Attribute Description

7.1.6 "ItemSet" Class Description

7.1.6.1 "itemIdentifiers" Attribute Description

7.1.7 "KeyValuePair" Class Description

7.1.7.1 "glossaryURI" Attribute Description

7.1.7.2 "key" Attribute Description

7.1.7.3 "value" Attribute Description

7.1.8 "NextItemSet" Class Description

7.1.8.1 "itemIdentifiers" Attribute Description

7.1.8.2 "stageLength" Attribute Description

7.1.9 "OutcomeVariable" Class Description

7.1.9.1 "identifier" Attribute Description

7.1.9.2 "cardinality" Attribute Description

7.1.9.3 "baseType" Attribute Description

7.1.9.4 "view" Attribute Description

7.1.9.5 "interpretation" Attribute Description

7.1.9.6 "longInterpretation" Attribute Description

7.1.9.7 "normalMaximum" Attribute Description

7.1.9.8 "normalMinimum" Attribute Description

7.1.9.9 "masteryValue" Attribute Description

7.1.9.10 "value" Attribute Description

7.1.10 "PCIContext" Class Description

7.1.10.1 "customTypeIdentifier" Attribute Description

7.1.10.2 "interactionKind" Attribute Description

7.1.11 "QTIMetadata" Class Description

7.1.11.1 "itemTemplate" Attribute Description

7.1.11.2 "timeDependent" Attribute Description

7.1.11.3 "composite" Attribute Description

7.1.11.4 "interactionType" Attribute Description

7.1.11.5 "portableCustomInteractionContext" Attribute Description

7.1.11.6 "feedbackType" Attribute Description

7.1.11.7 "solutionAvailable" Attribute Description

7.1.11.8 "scoringMode" Attribute Description

7.1.11.9 "toolName" Attribute Description

7.1.11.10 "toolVersion" Attribute Description

7.1.11.11 "toolVendor" Attribute Description

7.1.12 "ResponseVariable" Class Description

7.1.12.1 "identifier" Attribute Description

7.1.12.2 "cardinality" Attribute Description

7.1.12.3 "baseType" Attribute Description

7.1.12.4 "choiceSequence" Attribute Description

7.1.12.5 "correctResponse" Attribute Description

7.1.12.6 "candidateResponse" Attribute Description

7.1.13 "Results" Class Description

7.1.13.1 "assessmentResult" Attribute Description

7.1.13.2 "sessionState" Attribute Description

7.1.14 "Section" Class Description

7.1.14.1 "qtiMetadata" Attribute Description

7.1.14.2 "qtiUsagedata" Attribute Description

7.1.14.3 "sectionConfiguration" Attribute Description

7.1.15 "Session" Class Description

7.1.15.1 "personalNeedsAndPreferences" Attribute Description

7.1.15.2 "demographics" Attribute Description

7.1.15.3 "priorData" Attribute Description

7.1.16 "SessionIdentifier" Class Description

7.1.16.1 "sourceID" Attribute Description

7.1.16.2 "identifier" Attribute Description

7.1.17 "TemplateVariable" Class Description

7.1.17.1 "identifier" Attribute Description

7.1.17.2 "cardinality" Attribute Description

7.1.17.3 "baseType" Attribute Description

7.1.17.4 "value" Attribute Description

7.1.18 "TestResult" Class Description

7.1.18.1 "identifier" Attribute Description

7.1.18.2 "datestamp" Attribute Description

7.1.18.3 "responseVariables" Attribute Description

7.1.18.4 "templateVariables" Attribute Description

7.1.18.5 "outcomeVariables" Attribute Description

7.1.19 "Value" Class Description

7.1.19.1 "fieldIdentifier" Attribute Description

7.1.19.2 "baseType" Attribute Description

7.1.19.3 "value" Attribute Description

7.1.20 "imsx_CodeMinor" Class Description

7.1.20.1 "imsx_codeMinorField" Attribute Description

7.1.21 "imsx_CodeMinorField" Class Description

7.1.21.1 "imsx_codeMinorFieldName" Attribute Description

7.1.21.2 "imsx_codeMinorFieldValue" Attribute Description

7.1.22 "imsx_StatusInfo" Class Description

7.1.22.1 "imsx_codeMajor" Attribute Description

7.1.22.2 "imsx_severity" Attribute Description

7.1.22.3 "imsx_description" Attribute Description

7.1.22.4 "imsx_codeMinor" Attribute Description

7.2 Derived Class Descriptions

7.2.1 "IdentifierList" Class Description

7.2.2 "LUID" Class Description

7.2.3 "SessionState" Class Description

7.2.4 "String256" Class Description

7.2.4.1 "maxLength" Attribute Description

7.3 Enumerated Vocabulary Descriptions

7.3.1 "BaseTypeEnum" Vocabulary Description

7.3.2 "CardinalityEnum" Vocabulary Description

7.3.3 "FeedbackTypeEnum" Vocabulary Description

7.3.4 "InteractionTypeEnum" Vocabulary Description

7.3.5 "ScoringModeEnum" Vocabulary Description

7.3.6 "SessionStatus" Vocabulary Description

7.3.7 "ViewEnum" Vocabulary Description

7.3.8 "imsx_CodeMajorEnum" Vocabulary Description

7.3.9 "imsx_CodeMinorValueEnum" Vocabulary Description

7.3.10 "imsx_SeverityEnum" Vocabulary Description

8. Link Data Definitions

9. Extending and Profiling the Service

9.1 Extending the Service

9.1.1 Proprietary Operations

9.1.2 Proprietary Data Elements

9.2 Profiling the Service

References

Appendix A Modeling Concepts and Terms

A1 Behavior Descriptions Explanations

A1.1 Service Diagrams

A1.2 Operation Descriptions

A2 Interface Descriptions Explanations

A2.1 Parameter Model Diagrams

A2.2 Class Descriptions

A2.3 Attribute Descriptions

A3 Data Model Descriptions Explanations

A3.1 Data Model Diagrams

A3.2 Class Descriptions

A3.3 Attribute and Characteristic Descriptions

A3.4 Enumerated Vocabulary Descriptions

A3.5 External Vocabulary Descriptions

A3.6 Import Class Descriptions

A3.7 Link Data Descriptions

Appendix B Service Status Codes

B1 Definition of the Status Codes

B1.1 Definition of the "CodeMajor" Values

B1.2 Definition of the "Severity" Values

B1.3 Definition of the "CodeMinor" Values

About this Document

List of Contributors

Revision History

toc | top

List of Figures

Figure 5.1 Service interface definitions

Figure 6.1 AssessmentResult class definitions

Figure 6.2 ItemSet class definitions

Figure 6.3 LUID class definitions

Figure 6.4 NextItemSet class definitions

Figure 6.5 Results class definitions

Figure 6.6 Section class definitions

Figure 6.7 Session class definitions

Figure 6.8 SessionState class definitions

Figure 6.9 imsx_StatusInfo class definitions

Figure 7.1.1 AssessmentResult class definitions

Figure 7.1.2 CandidateResponse class definitions

Figure 7.1.3 Context class definitions

Figure 7.1.4 CorrectResponse class definitions

Figure 7.1.5 ItemResult class definitions

Figure 7.1.6 ItemSet class definitions

Figure 7.1.7 KeyValuePair class definitions

Figure 7.1.8 NextItemSet class definitions

Figure 7.1.9 OutcomeVariable class definitions

Figure 7.1.10 PCIContext class definitions

Figure 7.1.11 QTIMetadata class definitions

Figure 7.1.12 ResponseVariable class definitions

Figure 7.1.13 Results class definitions

Figure 7.1.14 Section class definitions

Figure 7.1.15 Session class definitions

Figure 7.1.16 SessionIdentifier class definitions

Figure 7.1.17 TemplateVariable class definitions

Figure 7.1.18 TestResult class definitions

Figure 7.1.19 Value class definitions

Figure 7.1.20 imsx_CodeMinor class definitions

Figure 7.1.21 imsx_CodeMinorField class definitions

Figure 7.1.22 imsx_StatusInfo class definitions

Figure 7.2.1 IdentifierList class definitions

Figure 7.2.2 LUID class definitions

Figure 7.2.3 SessionState class definitions

Figure 7.2.4 String256 class definitions

Figure 7.3.1 BaseTypeEnum class definitions

Figure 7.3.2 CardinalityEnum class definitions

Figure 7.3.3 FeedbackTypeEnum class definitions

Figure 7.3.4 InteractionTypeEnum class definitions

Figure 7.3.5 ScoringModeEnum class definitions

Figure 7.3.6 SessionStatus class definitions

Figure 7.3.7 ViewEnum class definitions

Figure 7.3.8 imsx_CodeMajorEnum class definitions

Figure 7.3.9 imsx_CodeMinorValueEnum class definitions

Figure 7.3.10 imsx_SeverityEnum class definitions

toc | top

List of Tables

Table 5.1 The set of interfaces.

Table 5.2 The set of operations for the "SectionsManager" interface.

Table 5.3 The set of operations for the "SessionsManager" interface.

Table 6.1 "AssessmentResult" Class Description

Table 6.1.1 "context" Attribute Description

Table 6.1.2 "testResult" Attribute Description

Table 6.1.3 "itemResult" Attribute Description

Table 6.2 "ItemSet" Class Description

Table 6.2.1 "itemIdentifiers" Attribute Description

Table 6.3 "LUID" Class Description

Table 6.4 "NextItemSet" Class Description

Table 6.4.1 "itemIdentifiers" Attribute Description

Table 6.4.2 "stageLength" Attribute Description

Table 6.5 "Results" Class Description

Table 6.5.1 "assessmentResult" Attribute Description

Table 6.5.2 "sessionState" Attribute Description

Table 6.6 "Section" Class Description

Table 6.6.1 "qtiMetadata" Attribute Description

Table 6.6.2 "qtiUsagedata" Attribute Description

Table 6.6.3 "sectionConfiguration" Attribute Description

Table 6.7 "Session" Class Description

Table 6.7.1 "personalNeedsAndPreferences" Attribute Description

Table 6.7.2 "demographics" Attribute Description

Table 6.7.3 "priorData" Attribute Description

Table 6.8 "SessionState" Class Description

Table 6.9 "imsx_StatusInfo" Class Description

Table 6.9.1 "imsx_codeMajor" Attribute Description

Table 6.9.2 "imsx_severity" Attribute Description

Table 6.9.3 "imsx_description" Attribute Description

Table 6.9.4 "imsx_codeMinor" Attribute Description

Table 7.1.1 AssessmentResult class definitions

Table 7.1.1.1 Description of the "context" attribute for the "AssessmentResult" class

Table 7.1.1.2 Description of the "testResult" attribute for the "AssessmentResult" class

Table 7.1.1.3 Description of the "itemResult" attribute for the "AssessmentResult" class

Table 7.1.2 CandidateResponse class definitions

Table 7.1.2.1 Description of the "value" attribute for the "CandidateResponse" class

Table 7.1.3 Context class definitions

Table 7.1.3.1 Description of the "sourcedId" attribute for the "Context" class

Table 7.1.3.2 Description of the "sessionIdentifiers" attribute for the "Context" class

Table 7.1.4 CorrectResponse class definitions

Table 7.1.4.1 Description of the "interpretation" attribute for the "CorrectResponse" class

Table 7.1.4.2 Description of the "value" attribute for the "CorrectResponse" class

Table 7.1.5 ItemResult class definitions

Table 7.1.5.1 Description of the "identifier" attribute for the "ItemResult" class

Table 7.1.5.2 Description of the "sequenceIndex" attribute for the "ItemResult" class

Table 7.1.5.3 Description of the "datestamp" attribute for the "ItemResult" class

Table 7.1.5.4 Description of the "sessionStatus" attribute for the "ItemResult" class

Table 7.1.5.5 Description of the "responseVariables" attribute for the "ItemResult" class

Table 7.1.5.6 Description of the "templateVariables" attribute for the "ItemResult" class

Table 7.1.5.7 Description of the "outcomeVariables" attribute for the "ItemResult" class

Table 7.1.5.8 Description of the "candidateComment" attribute for the "ItemResult" class

Table 7.1.6 ItemSet class definitions

Table 7.1.6.1 Description of the "itemIdentifiers" attribute for the "ItemSet" class

Table 7.1.7 KeyValuePair class definitions

Table 7.1.7.1 Description of the "glossaryURI" attribute for the "KeyValuePair" class

Table 7.1.7.2 Description of the "key" attribute for the "KeyValuePair" class

Table 7.1.7.3 Description of the "value" attribute for the "KeyValuePair" class

Table 7.1.8 NextItemSet class definitions

Table 7.1.8.1 Description of the "itemIdentifiers" attribute for the "NextItemSet" class

Table 7.1.8.2 Description of the "stageLength" attribute for the "NextItemSet" class

Table 7.1.9 OutcomeVariable class definitions

Table 7.1.9.1 Description of the "identifier" attribute for the "OutcomeVariable" class

Table 7.1.9.2 Description of the "cardinality" attribute for the "OutcomeVariable" class

Table 7.1.9.3 Description of the "baseType" attribute for the "OutcomeVariable" class

Table 7.1.9.4 Description of the "view" attribute for the "OutcomeVariable" class

Table 7.1.9.5 Description of the "interpretation" attribute for the "OutcomeVariable" class

Table 7.1.9.6 Description of the "longInterpretation" attribute for the "OutcomeVariable" class

Table 7.1.9.7 Description of the "normalMaximum" attribute for the "OutcomeVariable" class

Table 7.1.9.8 Description of the "normalMinimum" attribute for the "OutcomeVariable" class

Table 7.1.9.9 Description of the "masteryValue" attribute for the "OutcomeVariable" class

Table 7.1.9.10 Description of the "value" attribute for the "OutcomeVariable" class

Table 7.1.10 PCIContext class definitions

Table 7.1.10.1 Description of the "customTypeIdentifier" attribute for the "PCIContext" class

Table 7.1.10.2 Description of the "interactionKind" attribute for the "PCIContext" class

Table 7.1.11 QTIMetadata class definitions

Table 7.1.11.1 Description of the "itemTemplate" attribute for the "QTIMetadata" class

Table 7.1.11.2 Description of the "timeDependent" attribute for the "QTIMetadata" class

Table 7.1.11.3 Description of the "composite" attribute for the "QTIMetadata" class

Table 7.1.11.4 Description of the "interactionType" attribute for the "QTIMetadata" class

Table 7.1.11.5 Description of the "portableCustomInteractionContext" attribute for the "QTIMetadata" class

Table 7.1.11.6 Description of the "feedbackType" attribute for the "QTIMetadata" class

Table 7.1.11.7 Description of the "solutionAvailable" attribute for the "QTIMetadata" class

Table 7.1.11.8 Description of the "scoringMode" attribute for the "QTIMetadata" class

Table 7.1.11.9 Description of the "toolName" attribute for the "QTIMetadata" class

Table 7.1.11.10 Description of the "toolVersion" attribute for the "QTIMetadata" class

Table 7.1.11.11 Description of the "toolVendor" attribute for the "QTIMetadata" class

Table 7.1.12 ResponseVariable class definitions

Table 7.1.12.1 Description of the "identifier" attribute for the "ResponseVariable" class

Table 7.1.12.2 Description of the "cardinality" attribute for the "ResponseVariable" class

Table 7.1.12.3 Description of the "baseType" attribute for the "ResponseVariable" class

Table 7.1.12.4 Description of the "choiceSequence" attribute for the "ResponseVariable" class

Table 7.1.12.5 Description of the "correctResponse" attribute for the "ResponseVariable" class

Table 7.1.12.6 Description of the "candidateResponse" attribute for the "ResponseVariable" class

Table 7.1.13 Results class definitions

Table 7.1.13.1 Description of the "assessmentResult" attribute for the "Results" class

Table 7.1.13.2 Description of the "sessionState" attribute for the "Results" class

Table 7.1.14 Section class definitions

Table 7.1.14.1 Description of the "qtiMetadata" attribute for the "Section" class

Table 7.1.14.2 Description of the "qtiUsagedata" attribute for the "Section" class

Table 7.1.14.3 Description of the "sectionConfiguration" attribute for the "Section" class

Table 7.1.15 Session class definitions

Table 7.1.15.1 Description of the "personalNeedsAndPreferences" attribute for the "Session" class

Table 7.1.15.2 Description of the "demographics" attribute for the "Session" class

Table 7.1.15.3 Description of the "priorData" attribute for the "Session" class

Table 7.1.16 SessionIdentifier class definitions

Table 7.1.16.1 Description of the "sourceID" attribute for the "SessionIdentifier" class

Table 7.1.16.2 Description of the "identifier" attribute for the "SessionIdentifier" class

Table 7.1.17 TemplateVariable class definitions

Table 7.1.17.1 Description of the "identifier" attribute for the "TemplateVariable" class

Table 7.1.17.2 Description of the "cardinality" attribute for the "TemplateVariable" class

Table 7.1.17.3 Description of the "baseType" attribute for the "TemplateVariable" class

Table 7.1.17.4 Description of the "value" attribute for the "TemplateVariable" class

Table 7.1.18 TestResult class definitions

Table 7.1.18.1 Description of the "identifier" attribute for the "TestResult" class

Table 7.1.18.2 Description of the "datestamp" attribute for the "TestResult" class

Table 7.1.18.3 Description of the "responseVariables" attribute for the "TestResult" class

Table 7.1.18.4 Description of the "templateVariables" attribute for the "TestResult" class

Table 7.1.18.5 Description of the "outcomeVariables" attribute for the "TestResult" class

Table 7.1.19 Value class definitions

Table 7.1.19.1 Description of the "fieldIdentifier" attribute for the "Value" class

Table 7.1.19.2 Description of the "baseType" attribute for the "Value" class

Table 7.1.19.3 Description of the "value" attribute for the "Value" class

Table 7.1.20 imsx_CodeMinor class definitions

Table 7.1.20.1 Description of the "imsx_codeMinorField" attribute for the "imsx_CodeMinor" class

Table 7.1.21 imsx_CodeMinorField class definitions

Table 7.1.21.1 Description of the "imsx_codeMinorFieldName" attribute for the "imsx_CodeMinorField" class

Table 7.1.21.2 Description of the "imsx_codeMinorFieldValue" attribute for the "imsx_CodeMinorField" class

Table 7.1.22 imsx_StatusInfo class definitions

Table 7.1.22.1 Description of the "imsx_codeMajor" attribute for the "imsx_StatusInfo" class

Table 7.1.22.2 Description of the "imsx_severity" attribute for the "imsx_StatusInfo" class

Table 7.1.22.3 Description of the "imsx_description" attribute for the "imsx_StatusInfo" class

Table 7.1.22.4 Description of the "imsx_codeMinor" attribute for the "imsx_StatusInfo" class

Table 7.2.1 IdentifierList class definitions

Table 7.2.2 LUID class definitions

Table 7.2.3 SessionState class definitions

Table 7.2.4 String256 class definitions

Table 7.2.4.1 Description of the "maxLength" attribute for the "String256" class

Table 7.3.1 BaseTypeEnum class definitions

Table 7.3.2 CardinalityEnum class definitions

Table 7.3.3 FeedbackTypeEnum class definitions

Table 7.3.4 InteractionTypeEnum class definitions

Table 7.3.5 ScoringModeEnum class definitions

Table 7.3.6 SessionStatus class definitions

Table 7.3.7 ViewEnum class definitions

Table 7.3.8 imsx_CodeMajorEnum class definitions

Table 7.3.9 imsx_CodeMinorValueEnum class definitions

Table 7.3.10 imsx_SeverityEnum class definitions

Table A3.1 The key to the descriptions of data model diagrams

Table A3.2 The key to the descriptions of the data class tables

Table A3.3 The key to the descriptions of the data attribute/characteristic tables

Table A3.4 The key to the descriptions of the enumerated vocabulary tables

Table A3.5 The key to the descriptions of the external vocabulary tables

Table A3.6 The key to the descriptions of the import class tables

toc | top

1. Introduction

1.1. Scope and Context

This document is the Computer Adaptive Testing (CAT) Service Model v1.0 and as such it is used as the basis for the development of the following documents:

This information model defines the CAT Abstract Application Programming Interface (a-API). This service model is described using the Unified Modeling Language (UML) based upon the IMS Global Model Driven Specification approach and the associated modeling toolkit [I-BAT, 06]. This means that this specification is based upon the concepts of:

1.2. Conventions

All sections marked as non-normative, all authoring guidelines, diagrams (with the exception of the UML diagrams), examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC 2119]. This means that from the perspective of conformance:

The Conformance and Certification Guide for this specification may introduce greater normative constraints than those defined here for specific service or implementation categories.

The SHOULD/SHOULD NOT/RECOMMENDED statements MUST NOT be used in any document, or section of a document, that is responsible for defining the information model and/or the associated bindings and/or conformance and certification.

1.3. Structure of this Document

The structure of the rest of this document is:

2. The Use Cases The set of core use cases supported by this specification. This includes the exchange of QTI based items or tests intended to be adaptive;
3. The Conceptual Model The conceptual model underlying this computer adaptive testing service. This includes definition of the end-systems that are exchanging this data;
4. Service Architecture and Specification Model An overview of the service including the key use cases and the underlying service architecture and end-system service objects.
5. The Behavior Model The definition of the operations of the service. This focuses on the description of the behaviors supported by the service. The behaviors are grouped as interfaces;
6. The Interface Model The definition of the data models exchanged between the service End Systems. These are the parameters exchanged across the interoperability interface. These are an abbreviated description with the full set of details in the corresponding data class description;
7. Data Model The definition of the data classes for the full data exchange. This addresses the data classes used to supplement the interface parameters. The descriptions are grouped according to their type e.g. data, enumeration, derived, etc;
8. Link Data Definitions The set of descriptions for the link data definitions that are used to establish the intra- and inter- specification relationships;
9. Extending and Profiling the Service An explanation of how the service can be extended, using the permitted points of extension, and/or profiled. Profiling is the process by which the specification is tailored to a specific set of market/domain requirements;
References The set of cited documents, normative and informative, that are used to support the technical details in this document;
Appendix A Modeling Concepts and Terms An overview of the model driven approach, the concepts and the terms used by IMS to create the service model representations (based upon a profile of UML), the corresponding set of bindings and the accompanying documentation (including this information model);
Appendix B Service Status Codes A summary list of the status codes, and their causes, that can be returned by each of the operations forming the service. These describe the end-to-end status of the transaction.

1.4. Nomenclature

API Application Programming Interface
Adaptive/CAT Engine Engine responsible for selecting next item(s) to present to the candidate based on the data provided.
AfAPNP Access for All Personal Needs and Preferences
CAT Computer Adaptive Testing
Candidate The individual taking the (adaptive) test.
GUID Globally Unique Identifier
ISO International Standards Organization
Item Pool The pool of items the Adaptive Engine can select from to present to the candidate.
JSON JavaScript Object Notation
LUID Locally Unique Identifier
PNP Personal Needs and Preferences
QTI Question and Test Interoperability
REST Representational State Transfer
Section A section of the test that can be configured to be adpative.
Session The period in which the candidate is taking the test.
Test Driver/Test Delivery Engine Test Delivery Engine responsible for the presentation of the graphical user interface and test content.
UML Unified Modeling Language
URI Uniform Resource Identifier
URL Uniform Resource Locator
XML Exchange Markup Language
XSD XML Schema Definition

toc | top

2. The Use Cases

The set of uses cases that can be supported by the use of the CAT service are:

2.1. Use-case 1 (Initialize CAT Engine)

The summary description for this use case is given in Table 2.1.

Table 2.1 Initialize CAT Engine
Title: Initialize CAT Engine
Local ID: CAT-01
Description: A Test Driver wants to initialize a third party CAT engine for item selection.
Level Sub-function
Actors: Primary - Test Delivery Driver
Secondary - Adaptive Engine
Stakeholder: Administrator, Candidate
Interest: Test Delivery Driver and CAT Engine have established communication path.
Preconditions: Credentials/Keys have been exchanged between Test Driver and CAT Engine.
Minimal Guarantees: The adaptive sectionTest Driver does not start section unless initialization is successful.
Success Guarantees: The Test Driver establishes communication with CAT engine and CAT engine is ready to receive Candidate sessions.
Triggers: Test Driver encounters "adaptive callout" within content package (see section 3.1).
Basic Flow of Events: 1. Test Driver encounters adaptive section
2. Test Driver requests section initialization from CAT Engine and provides required data
a. At a minimum, the Test Driver would only provide the adaptive settings (black box). This would allow the engine to be initialized up-front; the ID of the pre-initialized section would then reside in the adaptive settings.
b. In full, the test driver would provide the (byte-encoded) QTI usagedata and metadata alongside the adaptive settings; all required data would then reside within the content package.
3. CAT engine initializes and returns Section ID.
Postconditions: Test Driver receives Section ID from CAT Engine.
Exception Handling: 1. Authentication Failure
2. Section Initialization Failure

2.2. Use-case 2 (Initialize Candidate Session)

The summary description for this use case is given in Table 2.2.

Table 2.2 Initialize Candidate Session
Title: Initialize Candidate Session
Local ID: CAT-02
Description: A Test Driver wants to initialize a session with a third-party CAT engine with Candidate information.
Level: Sub-function
Actors: Primary - Test Delivery Driver
Secondary - Adaptive Engine
Stakeholder: Administrator, Candidate
Preconditions: Credentials/Keys have been exchanged between Test Driver and CAT Engine.
CAT Engine has been initialized by Test Driver.
Minimal Guarantees: The Test Driver does not start section unless a Candidate session can be established within the CAT Engine.
Success Guarantees: The CAT engine has received relevant Candidate information and is ready to begin item selection.
Triggers: Test Driver encounters "adaptive callout" within content package (see section 3.1).
Basic Flow of Events: 1. Test Driver requests session initialization from CAT Engine utilizing previously initialized section.
2. CAT Engine initializes and returns Session ID.
Postconditions: Test Driver receives Session ID from CAT Engine.
Exception Handling: 1. Authentication Failure
2. Session Initialization Failure

2.3. Use-case 3 (Select Next Items)

The summary description for this use case is given in Table 2.3.

Table 2.3 Select Next Items.
Title: Select Next Items
Local ID: CAT-03
Description: A Test Driver wants to determine the next item(s) to present to Candidate.
Level Sub-function
Actors: Primary - Test Driver
Secondary - Adaptive Engine
Stakeholder: Administrator, Candidate
Preconditions: Credentials/Keys have been exchanged between Test Driver and CAT Engine.
CAT Engine has been initialized by Test Driver.
CAT Engine has been initialized with Candidate Session.
Minimal Guarantees: CAT Engine user session state is returned to state prior to invocation.
Success Guarantees: 0...N items are returned to present to Candidate. Zero items indicates implicit end of sectiontest.
Triggers: Test Driver requests an item(s) to present from CAT Engine.
Basic Flow of Events: 1. Test Driver gathers Candidate response from previous item if this is not the beginning of the test.
2. Test Driver requests next items from CAT Engine.
3. Test Driver receives list of items to present to Candidate and optional stage length.
4. Test Driver present item(s) until stage length is met.
Postconditions: Test Driver receives 0...N items to present to Candidate.
Exception Handling: 1. Authentication Failure
2. Adaptive Engine Response Failure

2.4. Use-case 4 (Terminate Candidate Session)

The summary description for this use case is given in Table 2.4.

Table 2.4 Terminate Candidate Session
Title: Terminate Candidate Session
Local ID: CAT-04
Description: A Test Delivery Driver wants to terminate a Candidate session within the CAT engine.
Level Sub-function
Actors: Primary - Test Delivery Driver
Secondary - Adaptive Engine
Stakeholder: Administrator, Candidate
Preconditions: Credentials/Keys have been exchanged between Test Driver and CAT Engine.
A Candidate session has been established.
Minimal Guarantees: CAT Engine Candidate session state is returned to state prior to invocation.
Success Guarantees: CAT Engine terminates Candidate session and cleans up resources related to it.
Triggers: No more items are available to present.
Basic Flow of Events: 1. Test Driver requests session termination from CAT Engine utilizing previously initialized Candidate session.
2. CAT Engine cleans up all resources related to Candidate session.
Postconditions: Test Driver has completed AssessmentSection and is ready to deliver next AssessmentSection.
Exception Handling: 1. Authentication Failure
2. Adaptive Engine Response Failure

toc | top

3. The Conceptual Model

This Section is NOT NORMATIVE.

The CAT service defines how adaptive engines can be used with other delivery engines in presenting adaptive tests to candidates. It does not specify the adative algorithms. Instead the internal functionality of the adaptive engine is treated as a 'black box'. A schematic representation of the service provided by the CAT specification is shown in Figure 3.1.

Diagram of the conceptual model for the interoperability supplied by the CAT service.

Figure 3.1 - The conceptual model for the interoperability supplied by the CAT service.

The CAT is realized as a set of Web Services (the actual implementation is defined by the associated binding specification and, currently, only a REST/JSON based binding is available).

toc | top

4. Service Architecture and Specification Model

4.1. An Abstract Representation

It is important to remember that this document contains a description of the underlying information model in terms of the abstract Application Programming Interface (API). The manner in which this abstract representation is visualized is not intended to dictate the implementation form of the Service. The breakdown of the service into its interface classes is a convenient way to document the set of behaviors. The objective for producing these interfaces is to identify and define the messages that are exchanged between the end-systems to realize the system behaviors required of the service.

The internal organization of an implementation of the full abstract API is beyond the scope of this specification. The only constraint is that the external behavior of the abstract API complies with this specification. This means that a .NET, J2EE, etc. physical implementation of this abstract API does not have to represent the functionality using the same breakdown of operations/methods. This physical implementation is not subject to the conformance specification.

It is important to note that the UML representation of the interfaces is used to help develop and document the Information Model and various Bindings. It is not a requirement for a system to implement this interface as defined i.e. to use the same parameters, etc. Conformance against this specification will be confirmed by inspecting the appropriate binding of the information model and ensuring that the relevant information is present and that different sequences of activity result in the predicted and mandated behavior. It is essential that the behaviors described by each of the operations are fully supported and that the behaviors described by different sequences are also maintained.

4.2. Service Architecture and Specification Model

The basic architectural model for the CAT Service specification is shown in Figure 4.1. In this architecture the scope of the IMS CAT Service specification is shown as the dotted line. The scope of the interoperability is the data and behavioral models of the objects being exchanged.

Diagram of the CAT service architecture.

Figure 4.1 - The CAT service architecture.

It is important to remember that the structure of the exchanged information has NO bearing on how the same information is contained within the 'consumer' and 'provider' CAT systems (the CAT repositories in the two end-systems). It is simply a representation of the data used to facilitate exchange between the end-systems. The only constraint on the end-system repositories is that they provide data persistence consistent with the required behavior.

4.3. Service Objects

The set of service objects that are exchanged between end-systems are:

The set of service collection objects that are exchanged between end-systems are:

4.4. The CAT Service Choreography

The CAT Service consists of a set of synchronous message exchanges, i.e. the consumer is blocked until the response from the provider is received. This means that a consumer can only have one outstanding request with a CAT Engine. A typical sequence of actions is shown in Figure 4.2.

Diagram of the action sequence for the CAT synchronous service.

Figure 4.2 - The set of message exchanges for the CAT synchronous service.

Figure 4.2 shows the supported message exchanges from the perspective of the consumer but it must be noted that a CAT Engine will be expected to support concurrent requests (perhaps hundreds to thousands) from many consumers. The sequence of actions shown in Figure 4.2 are:

toc | top

5. The Behavior Model

This Section is NORMATIVE

5.1 Service Definition

The model for the service representation is shown in Figure 5.1 and Table 5.1 (the syntax and semantics for this representation is described in Appendix A1.1). Following the service definition are the descriptions for the set of corresponding service operations (the syntax and semantics for these descriptions is described in Appendix A1.2).

UML model of the service.

Figure 5.1 - Service interface definitions.

Table 5.1 The set of interfaces.
Interface Description
SectionsManager The set of service operations that manage access to the adaptive Sections being handled by the CAT Engine.
SessionsManager The set of service operations that manage access to the adaptive Sessions being handled by the CAT Engine.

5.2 SectionsManager Interface Description

The set of service operations that manage access to the adaptive Sections being handled by the CAT Engine.

The set of operations for this interface are summarized in Table 5.2.

Table 5.2 The set of operations for the "SectionsManager" interface.
Operation Description
createSection This is a request to the CAT Engine to create a new adaptive Section. The CAT Engine is responsible for assigning the unique identifier to be used for this Section in other exchanges. This request is NOT idempotent.
getSection This request returns the parameters which were used by the CAT engine to create the adaptive section, and the list of the items in the adaptive section's item pool, as configured by the CAT engine. It is recommended that assessment platforms and/or delivery engines use this request to verify that the item pool, as configured by the CAT engine, corresponds exactly to the list of items in the QTI source for the adaptive section. It is also recommended that test administrators verify that each item in the item pool is accessible and deliverable before commencing delivery of candidate sessions. The Get Section request may be used for this, and may be made at any time after a successful Create Section request, as many times as required.
endSection This request ends all candidate sessions for the section which have not already ended, and ends the section. The sectionIdentifier, sessionIdentifiers, and sessionStates returned from previous requests related to the section become invalid. The delivery engine should not make any further requests related to the section or any session for the section. For a REST-based binding this request uses the DELETE HTTP method because of REST conventions, but the CAT engine is not required to physically delete any session or section data. This request should not be repeated once it has succeeded.

5.2.1 "createSection" Operation

Name: createSection ()
Return Function Parameter: statusInfo : imsx_StatusInfo - the status information report for the request. This report has end-to-end significance and must map between the messaging technology approach and the business transaction API.
Supplied (in) Parameters: section : Section - the data for the configuration of the new adaptive Section.
Returned (out) Parameters: sectionIdentifier : LUID - the LUID that has been assigned by the CAT Engine to the new Section (this has no significance in the context of a QTI Section definition).
Behavior: This is a request to the CAT Engine to create a new adaptive Section. The CAT Engine is responsible for assigning the unique identifier to be used for this Section in other exchanges. This request is NOT idempotent.

5.2.2 "getSection" Operation

Name: getSection ()
Return Function Parameter: imsx_StatusInfo : imsx_StatusInfo - the status information report for the request. This report has end-to-end significance and must map between the messaging technology approach and the business transaction API.
Supplied (in) Parameters: sectionIdentifier : LUID - the LUID that identifies the Section for which the data on the CAT Engine is to be obtained.
Returned (out) Parameters: items : ItemSet - the list of Items (the identifiers) in the Section's item pool.
section : Section - the set of parameters that were used to create the adaptive Section.
Behavior: This request returns the parameters which were used by the CAT engine to create the adaptive section, and the list of the items in the adaptive section's item pool, as configured by the CAT engine. It is recommended that assessment platforms and/or delivery engines use this request to verify that the item pool, as configured by the CAT engine, corresponds exactly to the list of items in the QTI source for the adaptive section. It is also recommended that test administrators verify that each item in the item pool is accessible and deliverable before commencing delivery of candidate sessions. The Get Section request may be used for this, and may be made at any time after a successful Create Section request, as many times as required.

5.2.3 "endSection" Operation

Name: endSection ()
Return Function Parameter: statusInfo : imsx_StatusInfo - the status information report for the request. This report has end-to-end significance and must map between the messaging technology approach and the business transaction API.
Supplied (in) Parameters: sectionIdentifier : LUID - the LUID that identifies the Section to be deleted on the CAT Engine.
Returned (out) Parameters: None.
Behavior: This request ends all candidate sessions for the section which have not already ended, and ends the section. The sectionIdentifier, sessionIdentifiers, and sessionStates returned from previous requests related to the section become invalid. The delivery engine should not make any further requests related to the section or any session for the section. For a REST-based binding this request uses the DELETE HTTP method because of REST conventions, but the CAT engine is not required to physically delete any session or section data. This request should not be repeated once it has succeeded.

5.3 SessionsManager Interface Description

The set of service operations that manage access to the adaptive Sessions being handled by the CAT Engine.

The set of operations for this interface are summarized in Table 5.3.

Table 5.3 The set of operations for the "SessionsManager" interface.
Operation Description
createSession This request initializes a candidate session for the adaptive section. The request optionally provides the CAT engine with information related to the candidate. The CAT engine returns the initial stage (list of items) to be presented to the candidate. This request may be made multiple times after a successful Create Section request, once per candidate, when each candidate enters the adaptive section on the test. This request is NOT idempotent.
endSession This request ends the candidate session. The sessionIdentifier, and the sessionState returned from any previous request in the session, become invalid. The delivery engine should not make any further requests related to the session. For a REST-based binding this request uses the DELETE HTTP method because of REST conventions; but it is not required that CAT engines physically delete data or resources associated with the session. If the identified session cannot be found then the 'unknownobject' status code must be reported.
submitResults This request sends the results from the current item stage in a candidate session to the CAT engine. The CAT engine returns its computed outcome variable values for the current stage and the test as a whole. It also returns the next item stage to be presented to the candidate. Instead of the next item stage, it may also return an indication that the adaptive section has ended, by returning an empty list for nextItems. If the identified Section/Session cannot be found then the 'unknownobject' status code must be reported.

5.3.1 "createSession" Operation

Name: createSession ()
Return Function Parameter: imsx_StatusInfo : imsx_StatusInfo - the status information report for the request. This report has end-to-end significance and must map between the messaging technology approach and the business transaction API.
Supplied (in) Parameters: sectionIdentifier : LUID - the LUID that identifies the Section in the CAT Engine to which this new Session is to be assigned.
session : Session - the Session configuration data including the information about the examinee.
Returned (out) Parameters: sessionIdentifier : LUID - the LUID that has been assigned by the CAT Engine to the new Session.
nextItems : NextItemSet - the initial sequence of Items to administer to this examinee.
sessionState : SessionState - the session state to send back on subsequent calls within this session.
Behavior: This request initializes a candidate session for the adaptive section. The request optionally provides the CAT engine with information related to the candidate. The CAT engine returns the initial stage (list of items) to be presented to the candidate. This request may be made multiple times after a successful Create Section request, once per candidate, when each candidate enters the adaptive section on the test. This request is NOT idempotent.

5.3.2 "endSession" Operation

Name: endSession ()
Return Function Parameter: imsx_StatusInfo : imsx_StatusInfo - the status information report for the request. This report has end-to-end significance and must map between the messaging technology approach and the business transaction API.
Supplied (in) Parameters: sectionIdentifier : LUID - the LUID that identifies the Section to be deleted on the CAT Engine.
sessionIdentifier : LUID - the LUID that identifies the Session, in the context of the identified Section, to be deleted on the CAT Engine.
Returned (out) Parameters: None.
Behavior: This request ends the candidate session. The sessionIdentifier, and the sessionState returned from any previous request in the session, become invalid. The delivery engine should not make any further requests related to the session. For a REST-based binding this request uses the DELETE HTTP method because of REST conventions; but it is not required that CAT engines physically delete data or resources associated with the session. If the identified session cannot be found then the 'unknownobject' status code must be reported.

5.3.3 "submitResults" Operation

Name: submitResults ()
Return Function Parameter: imsx_StatusInfo : imsx_StatusInfo - the status information report for the request. This report has end-to-end significance and must map between the messaging technology approach and the business transaction API.
Supplied (in) Parameters: sectionIdentifier : LUID - the LUID that identifies the Section in the CAT Engine to be used.
sessionIdentifier : LUID - the LUID that identifies the Session, in the context of the Section, in the CAT Engine to be used.
resultSet : Results - the set of results that have been obtained, so far, by the examinee for the identified session.
Returned (out) Parameters: nextItems : NextItemSet - the next set of Items to administer to this examinee.
assessmentResult : AssessmentResult - the assessment results but these are usually only at the end of the session when there are no next items to administer.
sessionState : SessionState - the session state to send back on subsequent calls within this session.
Behavior: This request sends the results from the current item stage in a candidate session to the CAT engine. The CAT engine returns its computed outcome variable values for the current stage and the test as a whole. It also returns the next item stage to be presented to the candidate. Instead of the next item stage, it may also return an indication that the adaptive section has ended, by returning an empty list for nextItems. If the identified Section/Session cannot be found then the 'unknownobject' status code must be reported.

toc | top

6. The Interface Model

This Section is NORMATIVE

The set of operations described within the behavior model (The Behavior Model) are based upon class descriptions specific to the parameters of the operations. All parameters are mandatory. The syntax and semantics for this representation is described in Appendix A2.

6.1 AssessmentResult Class Description

The data model for the "AssessmentResult" class is shown in Figure 6.1 and the accompanying definition in Table 6.1.

UML diagram of the AssessmentResult class.

Figure 6.1 - AssessmentResult class definitions.

Table 6.1 Description of the "AssessmentResult" class.
Descriptor Definition
Class Name AssessmentResult
Class Type Container [ Sequence ]
Parents Service parameter data-type used in the following operations:
Characteristics There are no characteristics.
Children The set of children attributes are:
Description An Assessment Result is used to report the results of a candidate's interaction with a test and/or one or more items attempted. Information about the test is optional, in some systems it may be possible to interact with items that are not organized into a test at all. For example, items that are organized with learning resources and presented individually in a formative context.

6.1.1 "context" Attribute Description

The description of the "context" attribute for the "AssessmentResult" class is given in Table 6.1.1.

Table 6.1.1 Description of the "context" attribute for the "AssessmentResult" class.
Descriptor Definition
Attribute Name context
Data Type Context
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description Contains contextual information for the associated testResult and itemResults.

6.1.2 "testResult" Attribute Description

The description of the "testResult" attribute for the "AssessmentResult" class is given in Table 6.1.2.

Table 6.1.2 Description of the "testResult" attribute for the "AssessmentResult" class.
Descriptor Definition
Attribute Name testResult
Data Type TestResult
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description A summary report for a test is represented by an assessment result containing a testResult but no itemResults.

6.1.3 "itemResult" Attribute Description

The description of the "itemResult" attribute for the "AssessmentResult" class is given in Table 6.1.3.

Table 6.1.3 Description of the "itemResult" attribute for the "AssessmentResult" class.
Descriptor Definition
Attribute Name itemResult
Data Type ItemResult
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description When a test result is given the following item results must relate only to items that were selected for presentation as part of the corresponding test session. Furthermore, all items selected for presentation should be reported with a corresponding itemResult.

6.2 ItemSet Class Description

The data model for the "ItemSet" class is shown in Figure 6.2 and the accompanying definition in Table 6.2.

UML diagram of the ItemSet class.

Figure 6.2 - ItemSet class definitions.

Table 6.2 Description of the "ItemSet" class.
Descriptor Definition
Class Name ItemSet
Class Type Container [ Unordered ]
Parents Service parameter data-type used in the following operations:
Characteristics There are no characteristics.
Children The set of children attributes are:
Description A set of Item identfiers.

6.2.1 "itemIdentifiers" Attribute Description

The description of the "itemIdentifiers" attribute for the "ItemSet" class is given in Table 6.2.1.

Table 6.2.1 Description of the "itemIdentifiers" attribute for the "ItemSet" class.
Descriptor Definition
Attribute Name itemIdentifiers
Data Type LUID
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1.. unbounded]
Description The Identifiers for the set of Items. These should be the GUIDs that have been assigned to AssessmentItems when defined using IMS QTI.

6.3 LUID Class Description

The data model for the "LUID" class is shown in Figure 6.3 and the accompanying definition in Table 6.3.

UML diagram of the LUID class.

Figure 6.3 - LUID class definitions.

Table 6.3 Description of the "LUID" class.
Descriptor Definition
Class Name LUID
Class Type Container [ DerivedType ]
Parents Service parameter data-type used in the following operations:
Characteristics There are no characteristics.
Children There are no children.
Description The data-type for establishing a Locally Unique Identifier (LUID) - this must be unique for the set of Section and Session interactions between the consumer and the CAT Engine. The form of the LUID is unrestricted.

6.4 NextItemSet Class Description

The data model for the "NextItemSet" class is shown in Figure 6.4 and the accompanying definition in Table 6.4.

UML diagram of the NextItemSet class.

Figure 6.4 - NextItemSet class definitions.

Table 6.4 Description of the "NextItemSet" class.
Descriptor Definition
Class Name NextItemSet
Class Type Container [ Unordered ]
Parents Service parameter data-type used in the following operations:
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The container for the information about the set of next Items that should be presented to the examinee.

6.4.1 "itemIdentifiers" Attribute Description

The description of the "itemIdentifiers" attribute for the "NextItemSet" class is given in Table 6.4.1.

Table 6.4.1 Description of the "itemIdentifiers" attribute for the "NextItemSet" class.
Descriptor Definition
Attribute Name itemIdentifiers
Data Type LUID
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1.. unbounded]
Description The Identifiers for the set of Items that should be presented next. These should be the GUIDs that have been assigned to AssessmentItems when defined using IMS QTI.

6.4.2 "stageLength" Attribute Description

The description of the "stageLength" attribute for the "NextItemSet" class is given in Table 6.4.2.

Table 6.4.2 Description of the "stageLength" attribute for the "NextItemSet" class.
Descriptor Definition
Attribute Name stageLength
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description The (minimum) number of items the CAT Engine can present before requesting next items

6.5 Results Class Description

The data model for the "Results" class is shown in Figure 6.5 and the accompanying definition in Table 6.5.

UML diagram of the Results class.

Figure 6.5 - Results class definitions.

Table 6.5 Description of the "Results" class.
Descriptor Definition
Class Name Results
Class Type Container [ Unordered ]
Parents Service parameter data-type used in the following operations:
Characteristics There are no characteristics.
Children The set of children attributes are:
Description This is the container for the results that have been accrued by the examinee. These are passed to the CAT Engine to support the selection of the next set of Items.

6.5.1 "assessmentResult" Attribute Description

The description of the "assessmentResult" attribute for the "Results" class is given in Table 6.5.1.

Table 6.5.1 Description of the "assessmentResult" attribute for the "Results" class.
Descriptor Definition
Attribute Name assessmentResult
Data Type AssessmentResult
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [1]
Description The set of actual results achieved by the examinee (this is equivalent to the IMS QTI 2.2 Results Reporting data model [QTI, 20b]).

6.5.2 "sessionState" Attribute Description

The description of the "sessionState" attribute for the "Results" class is given in Table 6.5.2.

Table 6.5.2 Description of the "sessionState" attribute for the "Results" class.
Descriptor Definition
Attribute Name sessionState
Data Type SessionState
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0..1]
Description The session state information. This is the data that was supplied by the CAT Engine when the session was created or the next set of Items was requested.

6.6 Section Class Description

The data model for the "Section" class is shown in Figure 6.6 and the accompanying definition in Table 6.6.

UML diagram of the Section class.

Figure 6.6 - Section class definitions.

Table 6.6 Description of the "Section" class.
Descriptor Definition
Class Name Section
Class Type Container [ Unordered ]
Parents Service parameter data-type used in the following operations:
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The container for the definition of the Section that is to be created in the CAT Engine. A Section is aligned to a QTI AssessmentSection [QTI, 20a].

6.6.1 "qtiMetadata" Attribute Description

The description of the "qtiMetadata" attribute for the "Section" class is given in Table 6.6.1.

Table 6.6.1 Description of the "qtiMetadata" attribute for the "Section" class.
Descriptor Definition
Attribute Name qtiMetadata
Data Type QTIMetadata
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description This is the container for the QTI metadata. Part of this metadata uses the IMS QTI 3.0 Metadata model [QTI, 20d].

6.6.2 "qtiUsagedata" Attribute Description

The description of the "qtiUsagedata" attribute for the "Section" class is given in Table 6.6.2.

Table 6.6.2 Description of the "qtiUsagedata" attribute for the "Section" class.
Descriptor Definition
Attribute Name qtiUsagedata
Data Type String (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description This is the Base64 encoded XML conforming to IMS QTI 3.0 Usage Date data model [QTI, 20c].

6.6.3 "sectionConfiguration" Attribute Description

The description of the "sectionConfiguration" attribute for the "Section" class is given in Table 6.6.3.

Table 6.6.3 Description of the "sectionConfiguration" attribute for the "Section" class.
Descriptor Definition
Attribute Name sectionConfiguration
Data Type String (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [1]
Description This is the Base64 encoded data containing section configuration, aligned with adaptive engine (black box). This format will be proprietary to each adaptive CAT Engine.

6.7 Session Class Description

The data model for the "Session" class is shown in Figure 6.7 and the accompanying definition in Table 6.7.

UML diagram of the Session class.

Figure 6.7 - Session class definitions.

Table 6.7 Description of the "Session" class.
Descriptor Definition
Class Name Session
Class Type Container [ Unordered ]
Parents Service parameter data-type used in the following operations:
Characteristics There are no characteristics.
Children The set of children attributes are:
Description This is the container for the session configuration data that must be supplied to the CAT Engine when the session is to be created.

6.7.1 "personalNeedsAndPreferences" Attribute Description

The description of the "personalNeedsAndPreferences" attribute for the "Session" class is given in Table 6.7.1.

Table 6.7.1 Description of the "personalNeedsAndPreferences" attribute for the "Session" class.
Descriptor Definition
Attribute Name personalNeedsAndPreferences
Data Type NormalizedString (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description This is the Base64 encoded XML data for the Personal Needs and Preferences (PNP) for the examinee. This data conforms to the XML as defined in the IMS Access for All Personal Needs and Preferences (AfAPNP) 3.0 XML Binding specification [AFAPNP, 20].

6.7.2 "demographics" Attribute Description

The description of the "demographics" attribute for the "Session" class is given in Table 6.7.2.

Table 6.7.2 Description of the "demographics" attribute for the "Session" class.
Descriptor Definition
Attribute Name demographics
Data Type NormalizedString (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description The Base64 encoding of the JSON data for the Demographics information for the examinee. This data conforms to the JSON as defined in the IMS OneRoster 1.1 specification [OR, 17].

6.7.3 "priorData" Attribute Description

The description of the "priorData" attribute for the "Session" class is given in Table 6.7.3.

Table 6.7.3 Description of the "priorData" attribute for the "Session" class.
Descriptor Definition
Attribute Name priorData
Data Type KeyValuePair
Value Space Container [ Unordered ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description This is proprietary data that is supplied to the CAT Engine as a key/value pairs.

6.8 SessionState Class Description

The data model for the "SessionState" class is shown in Figure 6.8 and the accompanying definition in Table 6.8.

UML diagram of the SessionState class.

Figure 6.8 - SessionState class definitions.

Table 6.8 Description of the "SessionState" class.
Descriptor Definition
Class Name SessionState
Class Type Container [ DerivedType ]
Parents Service parameter data-type used in the following operations:
Characteristics There are no characteristics.
Children There are no children.
Description This is the container for the Base64 encoded session data, aligned with the adaptive CAT Engine (black box). In general this will be a proprietary format.

6.9 imsx_StatusInfo Class Description

The data model for the "imsx_StatusInfo" class is shown in Figure 6.9 and the accompanying definition in Table 6.9.

UML diagram of the imsx_StatusInfo class.

Figure 6.9 - imsx_StatusInfo class definitions.

Table 6.9 Description of the "imsx_StatusInfo" class.
Descriptor Definition
Class Name imsx_StatusInfo
Class Type Container [ Sequence ]
Parents Service parameter data-type used in the following operations:
Characteristics There are no characteristics.
Children The set of children attributes are:
Description This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider.

6.9.1 "imsx_codeMajor" Attribute Description

The description of the "imsx_codeMajor" attribute for the "imsx_StatusInfo" class is given in Table 6.9.1.

Table 6.9.1 Description of the "imsx_codeMajor" attribute for the "imsx_StatusInfo" class.
Descriptor Definition
Attribute Name imsx_codeMajor
Data Type imsx_CodeMajorEnum
Value Space Enumerated value set of: { success | processing | failure | unsupported }
Scope Local ("-")
Multiplicity [1]
Description The code major value (from the corresponding enumerated vocabulary).

6.9.2 "imsx_severity" Attribute Description

The description of the "imsx_severity" attribute for the "imsx_StatusInfo" class is given in Table 6.9.2.

Table 6.9.2 Description of the "imsx_severity" attribute for the "imsx_StatusInfo" class.
Descriptor Definition
Attribute Name imsx_severity
Data Type imsx_SeverityEnum
Value Space Enumerated value set of: { status | warning | error }
Scope Local ("-")
Multiplicity [1]
Description The severity value (from the corresponding enumerated vocabulary).

6.9.3 "imsx_description" Attribute Description

The description of the "imsx_description" attribute for the "imsx_StatusInfo" class is given in Table 6.9.3.

Table 6.9.3 Description of the "imsx_description" attribute for the "imsx_StatusInfo" class.
Descriptor Definition
Attribute Name imsx_description
Data Type String (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description A human readable description supplied by the entity creating the status code information.

6.9.4 "imsx_codeMinor" Attribute Description

The description of the "imsx_codeMinor" attribute for the "imsx_StatusInfo" class is given in Table 6.9.4.

Table 6.9.4 Description of the "imsx_codeMinor" attribute for the "imsx_StatusInfo" class.
Descriptor Definition
Attribute Name imsx_codeMinor
Data Type imsx_CodeMinor
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description The set of reported code minor status codes.

toc | top

7. Data Model

7.1. Data Class Descriptions

This Section is NORMATIVE.

All of the data classes used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A3.2.

7.1.1 AssessmentResult Class Description

The data model for the "AssessmentResult" class is shown in Figure 7.1.1 and the accompanying definition in Table 7.1.1.

UML diagram of the AssessmentResult class.

Figure 7.1.1 - AssessmentResult class definitions.

Table 7.1.1 Description of the "AssessmentResult" class.
Descriptor Definition
Class Name AssessmentResult
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description An Assessment Result is used to report the results of a candidate's interaction with a test and/or one or more items attempted. Information about the test is optional, in some systems it may be possible to interact with items that are not organized into a test at all. For example, items that are organized with learning resources and presented individually in a formative context.

7.1.1.1 "context" Attribute Description

The description of the "context" attribute for the "AssessmentResult" class is given in Table 7.1.1.1.

Table 7.1.1.1 Description of the "context" attribute for the "AssessmentResult" class.
Descriptor Definition
Attribute Name context
Data Type Context
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description Contains contextual information for the associated testResult and itemResults.

7.1.1.2 "testResult" Attribute Description

The description of the "testResult" attribute for the "AssessmentResult" class is given in Table 7.1.1.2.

Table 7.1.1.2 Description of the "testResult" attribute for the "AssessmentResult" class.
Descriptor Definition
Attribute Name testResult
Data Type TestResult
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description A summary report for a test is represented by an assessment result containing a testResult but no itemResults.

7.1.1.3 "itemResult" Attribute Description

The description of the "itemResult" attribute for the "AssessmentResult" class is given in Table 7.1.1.3.

Table 7.1.1.3 Description of the "itemResult" attribute for the "AssessmentResult" class.
Descriptor Definition
Attribute Name itemResult
Data Type ItemResult
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description When a test result is given the following item results must relate only to items that were selected for presentation as part of the corresponding test session. Furthermore, all items selected for presentation should be reported with a corresponding itemResult.

7.1.2 CandidateResponse Class Description

The data model for the "CandidateResponse" class is shown in Figure 7.1.2 and the accompanying definition in Table 7.1.2.

UML diagram of the CandidateResponse class.

Figure 7.1.2 - CandidateResponse class definitions.

Table 7.1.2 Description of the "CandidateResponse" class.
Descriptor Definition
Class Name CandidateResponse
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The response given by the candidate.

7.1.2.1 "value" Attribute Description

The description of the "value" attribute for the "CandidateResponse" class is given in Table 7.1.2.1.

Table 7.1.2.1 Description of the "value" attribute for the "CandidateResponse" class.
Descriptor Definition
Attribute Name value
Data Type Value
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The value(s) of the response variable. A NULL value, resulting from no response, is indicated by the absence of any value. The order of the values is significant only if the response was declared with ordered cardinality.

7.1.3 Context Class Description

The data model for the "Context" class is shown in Figure 7.1.3 and the accompanying definition in Table 7.1.3.

UML diagram of the Context class.

Figure 7.1.3 - Context class definitions.

Table 7.1.3 Description of the "Context" class.
Descriptor Definition
Class Name Context
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description This is the context for the 'assessmentResult'. It provides the corresponding set of identifiers.

7.1.3.1 "sourcedId" Attribute Description

The description of the "sourcedId" attribute for the "Context" class is given in Table 7.1.3.1.

Table 7.1.3.1 Description of the "sourcedId" attribute for the "Context" class.
Descriptor Definition
Attribute Name sourcedId
Data Type LUID
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0..1]
Description A unique identifier for the test candidate.

7.1.3.2 "sessionIdentifiers" Attribute Description

The description of the "sessionIdentifiers" attribute for the "Context" class is given in Table 7.1.3.2.

Table 7.1.3.2 Description of the "sessionIdentifiers" attribute for the "Context" class.
Descriptor Definition
Attribute Name sessionIdentifiers
Data Type SessionIdentifier
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The system that creates the result (for example, the test delivery system) should assign a session identifier that it can use to identify the session. Subsequent systems that process the result might assign their own identifier to the session which should be added to the context if the result is modified and exported for transport again.

7.1.4 CorrectResponse Class Description

The data model for the "CorrectResponse" class is shown in Figure 7.1.4 and the accompanying definition in Table 7.1.4.

UML diagram of the CorrectResponse class.

Figure 7.1.4 - CorrectResponse class definitions.

Table 7.1.4 Description of the "CorrectResponse" class.
Descriptor Definition
Class Name CorrectResponse
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The correct response may be output as part of the report if desired. Systems are not limited to reporting correct responses declared in responseDeclarations. For example, a correct response may be set by a templateRule or may simply have been suppressed from the declaration passed to the delivery engine e.g. for security.

7.1.4.1 "interpretation" Attribute Description

The description of the "interpretation" attribute for the "CorrectResponse" class is given in Table 7.1.4.1.

Table 7.1.4.1 Description of the "interpretation" attribute for the "CorrectResponse" class.
Descriptor Definition
Attribute Name interpretation
Data Type String (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description A human readable interpretation of the correct value.

7.1.4.2 "value" Attribute Description

The description of the "value" attribute for the "CorrectResponse" class is given in Table 7.1.4.2.

Table 7.1.4.2 Description of the "value" attribute for the "CorrectResponse" class.
Descriptor Definition
Attribute Name value
Data Type Value
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The order of the values is signficant only when the response is of ordered cardinality.

7.1.5 ItemResult Class Description

The data model for the "ItemResult" class is shown in Figure 7.1.5 and the accompanying definition in Table 7.1.5.

UML diagram of the ItemResult class.

Figure 7.1.5 - ItemResult class definitions.

Table 7.1.5 Description of the "ItemResult" class.
Descriptor Definition
Class Name ItemResult
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The result of an item session is reported with an itemResult. A report may contain multiple results for the same instance of an item representing multiple attempts, progression through an adaptive item or even more detailed tracking. In these cases, each item result must have a different datestamp.

7.1.5.1 "identifier" Attribute Description

The description of the "identifier" attribute for the "ItemResult" class is given in Table 7.1.5.1.

Table 7.1.5.1 Description of the "identifier" attribute for the "ItemResult" class.
Descriptor Definition
Attribute Name identifier
Data Type LUID
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The identifier of the item for which this is a result. For item results that are reported as part of a test result this is the identifier used to refer to the item in the test (see assessmentItemRef). For item results that are reported on their own, this can be any suitable identifier for the item. Where possible, the value should match the identifier attribute on the associated assessmentItem.

7.1.5.2 "sequenceIndex" Attribute Description

The description of the "sequenceIndex" attribute for the "ItemResult" class is given in Table 7.1.5.2.

Table 7.1.5.2 Description of the "sequenceIndex" attribute for the "ItemResult" class.
Descriptor Definition
Attribute Name sequenceIndex
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description For item results that are reported as part of a test, this attribute must be used to indicate the position of the item within the specific instance of the test. The first item of the first part of the test is defined to have sequence index 1.

7.1.5.3 "datestamp" Attribute Description

The description of the "datestamp" attribute for the "ItemResult" class is given in Table 7.1.5.3.

Table 7.1.5.3 Description of the "datestamp" attribute for the "ItemResult" class.
Descriptor Definition
Attribute Name datestamp
Data Type DateTime (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [1]
Description The date stamp of when this result was recorded.

7.1.5.4 "sessionStatus" Attribute Description

The description of the "sessionStatus" attribute for the "ItemResult" class is given in Table 7.1.5.4.

Table 7.1.5.4 Description of the "sessionStatus" attribute for the "ItemResult" class.
Descriptor Definition
Attribute Name sessionStatus
Data Type SessionStatus
Value Space Enumerated value set of: { final | initial | pendingResponseProcessing | pendingSubmission }
Scope Local ("-")
Multiplicity [1]
Description The session status is used to interpret the values of the item variables. See the sessionStatus vocabulary.

7.1.5.5 "responseVariables" Attribute Description

The description of the "responseVariables" attribute for the "ItemResult" class is given in Table 7.1.5.5.

Table 7.1.5.5 Description of the "responseVariables" attribute for the "ItemResult" class.
Descriptor Definition
Attribute Name responseVariables
Data Type ResponseVariable
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description Indicates that a Response Variable is being reported. This is the value of one of the responses associated with an Item in the corresponding ASI instance.

7.1.5.6 "templateVariables" Attribute Description

The description of the "templateVariables" attribute for the "ItemResult" class is given in Table 7.1.5.6.

Table 7.1.5.6 Description of the "templateVariables" attribute for the "ItemResult" class.
Descriptor Definition
Attribute Name templateVariables
Data Type TemplateVariable
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description Indicates that a Template Variable is being reported. This is the value of one of the template variables associated with an Item in the corresponding ASI instance.

7.1.5.7 "outcomeVariables" Attribute Description

The description of the "outcomeVariables" attribute for the "ItemResult" class is given in Table 7.1.5.7.

Table 7.1.5.7 Description of the "outcomeVariables" attribute for the "ItemResult" class.
Descriptor Definition
Attribute Name outcomeVariables
Data Type OutcomeVariable
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description Indicates that an Outcome Variable is being reported. This is the value of one of the outcomes associated with either an Item or Test and defined in the corresponding ASI instance.

7.1.5.8 "candidateComment" Attribute Description

The description of the "candidateComment" attribute for the "ItemResult" class is given in Table 7.1.5.8.

Table 7.1.5.8 Description of the "candidateComment" attribute for the "ItemResult" class.
Descriptor Definition
Attribute Name candidateComment
Data Type String (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description An optional comment supplied by the candidate (see the allowComment in the ASI documentation [QTI, 20a]).

7.1.6 ItemSet Class Description

The data model for the "ItemSet" class is shown in Figure 7.1.6 and the accompanying definition in Table 7.1.6.

UML diagram of the ItemSet class.

Figure 7.1.6 - ItemSet class definitions.

Table 7.1.6 Description of the "ItemSet" class.
Descriptor Definition
Class Name ItemSet
Class Type Container [ Unordered ]
Parents There are no parent classes.
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description A set of Item identfiers.

7.1.6.1 "itemIdentifiers" Attribute Description

The description of the "itemIdentifiers" attribute for the "ItemSet" class is given in Table 7.1.6.1.

Table 7.1.6.1 Description of the "itemIdentifiers" attribute for the "ItemSet" class.
Descriptor Definition
Attribute Name itemIdentifiers
Data Type LUID
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1.. unbounded]
Description The Identifiers for the set of Items. These should be the GUIDs that have been assigned to AssessmentItems when defined using IMS QTI.

7.1.7 KeyValuePair Class Description

The data model for the "KeyValuePair" class is shown in Figure 7.1.7 and the accompanying definition in Table 7.1.7.

UML diagram of the KeyValuePair class.

Figure 7.1.7 - KeyValuePair class definitions.

Table 7.1.7 Description of the "KeyValuePair" class.
Descriptor Definition
Class Name KeyValuePair
Class Type Container [ Unordered ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The container for the values assigned to the Key/Value pair.

7.1.7.1 "glossaryURI" Attribute Description

The description of the "glossaryURI" attribute for the "KeyValuePair" class is given in Table 7.1.7.1.

Table 7.1.7.1 Description of the "glossaryURI" attribute for the "KeyValuePair" class.
Descriptor Definition
Attribute Name glossaryURI
Data Type AnyURI (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description This is a URI to the definition of the data being supplied in this accompanying key/value pair. This definition should provide a human readable description of the data-type and value space for the value being identified by its key.

7.1.7.2 "key" Attribute Description

The description of the "key" attribute for the "KeyValuePair" class is given in Table 7.1.7.2.

Table 7.1.7.2 Description of the "key" attribute for the "KeyValuePair" class.
Descriptor Definition
Attribute Name key
Data Type String (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [1]
Description The key for the value to be supplied.

7.1.7.3 "value" Attribute Description

The description of the "value" attribute for the "KeyValuePair" class is given in Table 7.1.7.3.

Table 7.1.7.3 Description of the "value" attribute for the "KeyValuePair" class.
Descriptor Definition
Attribute Name value
Data Type String (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [1]
Description The value being supplied.

7.1.8 NextItemSet Class Description

The data model for the "NextItemSet" class is shown in Figure 7.1.8 and the accompanying definition in Table 7.1.8.

UML diagram of the NextItemSet class.

Figure 7.1.8 - NextItemSet class definitions.

Table 7.1.8 Description of the "NextItemSet" class.
Descriptor Definition
Class Name NextItemSet
Class Type Container [ Unordered ]
Parents There are no parent classes.
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The container for the information about the set of next Items that should be presented to the examinee.

7.1.8.1 "itemIdentifiers" Attribute Description

The description of the "itemIdentifiers" attribute for the "NextItemSet" class is given in Table 7.1.8.1.

Table 7.1.8.1 Description of the "itemIdentifiers" attribute for the "NextItemSet" class.
Descriptor Definition
Attribute Name itemIdentifiers
Data Type LUID
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1.. unbounded]
Description The Identifiers for the set of Items that should be presented next. These should be the GUIDs that have been assigned to AssessmentItems when defined using IMS QTI.

7.1.8.2 "stageLength" Attribute Description

The description of the "stageLength" attribute for the "NextItemSet" class is given in Table 7.1.8.2.

Table 7.1.8.2 Description of the "stageLength" attribute for the "NextItemSet" class.
Descriptor Definition
Attribute Name stageLength
Data Type NonNegativeInteger (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description The (minimum) number of items the CAT Engine can present before requesting next items

7.1.9 OutcomeVariable Class Description

The data model for the "OutcomeVariable" class is shown in Figure 7.1.9 and the accompanying definition in Table 7.1.9.

UML diagram of the OutcomeVariable class.

Figure 7.1.9 - OutcomeVariable class definitions.

Table 7.1.9 Description of the "OutcomeVariable" class.
Descriptor Definition
Class Name OutcomeVariable
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The Item result information related to an 'Outcome Variable'.

7.1.9.1 "identifier" Attribute Description

The description of the "identifier" attribute for the "OutcomeVariable" class is given in Table 7.1.9.1.

Table 7.1.9.1 Description of the "identifier" attribute for the "OutcomeVariable" class.
Descriptor Definition
Attribute Name identifier
Data Type LUID
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The identifier of the Outcome Variable.

7.1.9.2 "cardinality" Attribute Description

The description of the "cardinality" attribute for the "OutcomeVariable" class is given in Table 7.1.9.2.

Table 7.1.9.2 Description of the "cardinality" attribute for the "OutcomeVariable" class.
Descriptor Definition
Attribute Name cardinality
Data Type CardinalityEnum
Value Space Enumerated value set of: { multiple | ordered | record | single }
Scope Local ("-")
Multiplicity [1]
Description The cardinality of the Outcome Variable, taken from the corresponding declaration or definition.

7.1.9.3 "baseType" Attribute Description

The description of the "baseType" attribute for the "OutcomeVariable" class is given in Table 7.1.9.3.

Table 7.1.9.3 Description of the "baseType" attribute for the "OutcomeVariable" class.
Descriptor Definition
Attribute Name baseType
Data Type BaseTypeEnum
Value Space Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope Local ("-")
Multiplicity [0..1]
Description The base type of the Outcome Variable, taken from the corresponding declaration of definition. This value is omitted only for variables with record cardinality.

7.1.9.4 "view" Attribute Description

The description of the "view" attribute for the "OutcomeVariable" class is given in Table 7.1.9.4.

Table 7.1.9.4 Description of the "view" attribute for the "OutcomeVariable" class.
Descriptor Definition
Attribute Name view
Data Type ViewEnum
Value Space Enumerated value set of: { author | candidate | proctor | scorer | testConstructor | tutor }
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The views (if any) declared for the outcome must be copied to the report to enable systems that render the report to hide information not relevant in a specific situation. If no values are given, the outcome's value should be considered relevant in all views.

7.1.9.5 "interpretation" Attribute Description

The description of the "interpretation" attribute for the "OutcomeVariable" class is given in Table 7.1.9.5.

Table 7.1.9.5 Description of the "interpretation" attribute for the "OutcomeVariable" class.
Descriptor Definition
Attribute Name interpretation
Data Type String (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description A human readable interpretation of the default value.

7.1.9.6 "longInterpretation" Attribute Description

The description of the "longInterpretation" attribute for the "OutcomeVariable" class is given in Table 7.1.9.6.

Table 7.1.9.6 Description of the "longInterpretation" attribute for the "OutcomeVariable" class.
Descriptor Definition
Attribute Name longInterpretation
Data Type AnyURI (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description An optional link to an extended interpretation of the outcome variable's value.

7.1.9.7 "normalMaximum" Attribute Description

The description of the "normalMaximum" attribute for the "OutcomeVariable" class is given in Table 7.1.9.7.

Table 7.1.9.7 Description of the "normalMaximum" attribute for the "OutcomeVariable" class.
Descriptor Definition
Attribute Name normalMaximum
Data Type Double (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description The normalMaximum attribute optionally defines the maximum magnitude of numeric outcome variables, it must be a positive value. If given, the outcome's value can be divided by normalMaximum and then truncated (if necessary) to obtain a normalized score in the range [-1.0,1.0]. normalMaximum has no affect on responseProcessing or the values that the outcome variable itself can take.

7.1.9.8 "normalMinimum" Attribute Description

The description of the "normalMinimum" attribute for the "OutcomeVariable" class is given in Table 7.1.9.8.

Table 7.1.9.8 Description of the "normalMinimum" attribute for the "OutcomeVariable" class.
Descriptor Definition
Attribute Name normalMinimum
Data Type Double (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description The normalMinimum attribute optionally defines the minimum value of numeric outcome variables, it may be negative.

7.1.9.9 "masteryValue" Attribute Description

The description of the "masteryValue" attribute for the "OutcomeVariable" class is given in Table 7.1.9.9.

Table 7.1.9.9 Description of the "masteryValue" attribute for the "OutcomeVariable" class.
Descriptor Definition
Attribute Name masteryValue
Data Type Double (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description The masteryValue attribute optionally defines a value for numeric outcome variables above which the aspect being measured is considered to have been mastered by the candidate.

7.1.9.10 "value" Attribute Description

The description of the "value" attribute for the "OutcomeVariable" class is given in Table 7.1.9.10.

Table 7.1.9.10 Description of the "value" attribute for the "OutcomeVariable" class.
Descriptor Definition
Attribute Name value
Data Type Value
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The value(s) of the outcome variable. The order of the values is significant only if the outcome was declared with ordered cardinality.

7.1.10 PCIContext Class Description

The data model for the "PCIContext" class is shown in Figure 7.1.10 and the accompanying definition in Table 7.1.10.

UML diagram of the PCIContext class.

Figure 7.1.10 - PCIContext class definitions.

Table 7.1.10 Description of the "PCIContext" class.
Descriptor Definition
Class Name PCIContext
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description This is the container for the contextual information that can be supplied for a PCI used within an Item. The contained information is only relevant when there is an 'interactionType' of 'portableCustomInteraction'.

7.1.10.1 "customTypeIdentifier" Attribute Description

The description of the "customTypeIdentifier" attribute for the "PCIContext" class is given in Table 7.1.10.1.

Table 7.1.10.1 Description of the "customTypeIdentifier" attribute for the "PCIContext" class.
Descriptor Definition
Attribute Name customTypeIdentifier
Data Type NormalizedString (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description This is used alongside an 'interactionType' value of 'portableCustomInteraction' to disambiguate which class of PCI is in use as PCIs can vary widely in terms of how they might need to be psychometrically analyzed. This field could potentially also be used to identify which type of a traditional customInteraction is in use by the item.

7.1.10.2 "interactionKind" Attribute Description

The description of the "interactionKind" attribute for the "PCIContext" class is given in Table 7.1.10.2.

Table 7.1.10.2 Description of the "interactionKind" attribute for the "PCIContext" class.
Descriptor Definition
Attribute Name interactionKind
Data Type NormalizedString (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description This is used to provide insight into the nature of the PCI e.g. this is a PCI which allows a user to add notes to a musical stave to author some music that might be given a description of 'authoring'. This information could be used by a psychometrician, etc. as an indication of a similar type of standard interaction.

7.1.11 QTIMetadata Class Description

The data model for the "QTIMetadata" class is shown in Figure 7.1.11 and the accompanying definition in Table 7.1.11.

UML diagram of the QTIMetadata class.

Figure 7.1.11 - QTIMetadata class definitions.

Table 7.1.11 Description of the "QTIMetadata" class.
Descriptor Definition
Class Name QTIMetadata
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description This contains the new category of metadata for the recording of QTI specific information.

7.1.11.1 "itemTemplate" Attribute Description

The description of the "itemTemplate" attribute for the "QTIMetadata" class is given in Table 7.1.11.1.

Table 7.1.11.1 Description of the "itemTemplate" attribute for the "QTIMetadata" class.
Descriptor Definition
Attribute Name itemTemplate
Data Type Boolean (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description True if the item is actually an item template, in other words, the item changes its appearance based on some random or external factor. An assessmentItem that contains a templateProcessing section.

7.1.11.2 "timeDependent" Attribute Description

The description of the "timeDependent" attribute for the "QTIMetadata" class is given in Table 7.1.11.2.

Table 7.1.11.2 Description of the "timeDependent" attribute for the "QTIMetadata" class.
Descriptor Definition
Attribute Name timeDependent
Data Type Boolean (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description Whether or not the item is time dependent. A time dependent item takes the length of time taken for an attempt into consideration when scoring.

7.1.11.3 "composite" Attribute Description

The description of the "composite" attribute for the "QTIMetadata" class is given in Table 7.1.11.3.

Table 7.1.11.3 Description of the "composite" attribute for the "QTIMetadata" class.
Descriptor Definition
Attribute Name composite
Data Type Boolean (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description True if the item comprises more than one interaction, for example, an assessmentItem that contains more than one interaction.

7.1.11.4 "interactionType" Attribute Description

The description of the "interactionType" attribute for the "QTIMetadata" class is given in Table 7.1.11.4.

Table 7.1.11.4 Description of the "interactionType" attribute for the "QTIMetadata" class.
Descriptor Definition
Attribute Name interactionType
Data Type InteractionTypeEnum
Value Space Enumerated value set of: { associateInteraction | choiceInteraction | customInteraction | drawingInteraction | endAttemptInteraction | extendedTextInteraction | gapMatchInteraction | graphicAssociateInteraction | graphicGapMatchInteraction | graphicOrderInteraction | hotspotInteraction | hottextInteraction | inlineChoiceInteraction | matchInteraction | mediaInteraction | orderInteraction | portableCustomInteraction | positionObjectInteraction | selectPointInteraction | sliderInteraction | textEntryInteraction | uploadInteraction }
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The interaction type(s) of the item. The vocabulary is comprised of the names, as defined in the information model, of the leaf classes derived from interaction.

7.1.11.5 "portableCustomInteractionContext" Attribute Description

The description of the "portableCustomInteractionContext" attribute for the "QTIMetadata" class is given in Table 7.1.11.5.

Table 7.1.11.5 Description of the "portableCustomInteractionContext" attribute for the "QTIMetadata" class.
Descriptor Definition
Attribute Name portableCustomInteractionContext
Data Type PCIContext
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description When the Item uses a Portable Custom Interaction (PCI), this attribute is used to provide further contextual information about that PCI.

7.1.11.6 "feedbackType" Attribute Description

The description of the "feedbackType" attribute for the "QTIMetadata" class is given in Table 7.1.11.6.

Table 7.1.11.6 Description of the "feedbackType" attribute for the "QTIMetadata" class.
Descriptor Definition
Attribute Name feedbackType
Data Type FeedbackTypeEnum
Value Space Enumerated value set of: { adaptive | nonadaptive | none }
Scope Local ("-")
Multiplicity [0..1]
Description Describes the type of feedback, if any, available in the item. If feedback is available then it is described as being non-adaptive or adaptive depending on whether the item is itself adaptive. A non-adaptive item generates feedback based on the responses submitted as part of (the last) attempt only. An adaptive item generates feedback that takes into consideration the path taken through the item, in other words, feedback based on the accumulation of all attempts and not just the last.

7.1.11.7 "solutionAvailable" Attribute Description

The description of the "solutionAvailable" attribute for the "QTIMetadata" class is given in Table 7.1.11.7.

Table 7.1.11.7 Description of the "solutionAvailable" attribute for the "QTIMetadata" class.
Descriptor Definition
Attribute Name solutionAvailable
Data Type Boolean (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description Set to true if a model solution is available for the item. For example, an assessmentItem that provides correct responses for all declared response variables.

7.1.11.8 "scoringMode" Attribute Description

The description of the "scoringMode" attribute for the "QTIMetadata" class is given in Table 7.1.11.8.

Table 7.1.11.8 Description of the "scoringMode" attribute for the "QTIMetadata" class.
Descriptor Definition
Attribute Name scoringMode
Data Type ScoringModeEnum
Value Space Enumerated value set of: { human | externalmachine | responseprocessing }
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The scoringMode is used to denote that the way in which the scoring is achieved. If the Item includes the response processing then the mode is 'responseprocessing'. If human scoring is required the value is 'human' and if some form of machine processing is required then the value is 'externalmachine'.

7.1.11.9 "toolName" Attribute Description

The description of the "toolName" attribute for the "QTIMetadata" class is given in Table 7.1.11.9.

Table 7.1.11.9 Description of the "toolName" attribute for the "QTIMetadata" class.
Descriptor Definition
Attribute Name toolName
Data Type String256
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0..1]
Description The name of the tool used to author the evaluation object.

7.1.11.10 "toolVersion" Attribute Description

The description of the "toolVersion" attribute for the "QTIMetadata" class is given in Table 7.1.11.10.

Table 7.1.11.10 Description of the "toolVersion" attribute for the "QTIMetadata" class.
Descriptor Definition
Attribute Name toolVersion
Data Type String256
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0..1]
Description The version of the tool used to author the evaluation object.

7.1.11.11 "toolVendor" Attribute Description

The description of the "toolVendor" attribute for the "QTIMetadata" class is given in Table 7.1.11.11.

Table 7.1.11.11 Description of the "toolVendor" attribute for the "QTIMetadata" class.
Descriptor Definition
Attribute Name toolVendor
Data Type String256
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0..1]
Description The company which produced the tool used to author the evaluation object.

7.1.12 ResponseVariable Class Description

The data model for the "ResponseVariable" class is shown in Figure 7.1.12 and the accompanying definition in Table 7.1.12.

UML diagram of the ResponseVariable class.

Figure 7.1.12 - ResponseVariable class definitions.

Table 7.1.12 Description of the "ResponseVariable" class.
Descriptor Definition
Class Name ResponseVariable
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The Item result information related to a 'Response Variable'.

7.1.12.1 "identifier" Attribute Description

The description of the "identifier" attribute for the "ResponseVariable" class is given in Table 7.1.12.1.

Table 7.1.12.1 Description of the "identifier" attribute for the "ResponseVariable" class.
Descriptor Definition
Attribute Name identifier
Data Type LUID
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The identifier of the Response Variable.

7.1.12.2 "cardinality" Attribute Description

The description of the "cardinality" attribute for the "ResponseVariable" class is given in Table 7.1.12.2.

Table 7.1.12.2 Description of the "cardinality" attribute for the "ResponseVariable" class.
Descriptor Definition
Attribute Name cardinality
Data Type CardinalityEnum
Value Space Enumerated value set of: { multiple | ordered | record | single }
Scope Local ("-")
Multiplicity [1]
Description The cardinality of the Response Variable, taken from the corresponding declaration or definition.

7.1.12.3 "baseType" Attribute Description

The description of the "baseType" attribute for the "ResponseVariable" class is given in Table 7.1.12.3.

Table 7.1.12.3 Description of the "baseType" attribute for the "ResponseVariable" class.
Descriptor Definition
Attribute Name baseType
Data Type BaseTypeEnum
Value Space Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope Local ("-")
Multiplicity [0..1]
Description The base type of the Response Variable, taken from the corresponding declaration of definition. This value is omitted only for variables with record cardinality.

7.1.12.4 "choiceSequence" Attribute Description

The description of the "choiceSequence" attribute for the "ResponseVariable" class is given in Table 7.1.12.4.

Table 7.1.12.4 Description of the "choiceSequence" attribute for the "ResponseVariable" class.
Descriptor Definition
Attribute Name choiceSequence
Data Type IdentifierList
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description When a response variable is bound to an interaction that supports the shuffling of choices, the sequence of choices experienced by the candidate will vary between test instances. When shuffling is in effect, the sequence of choices should be reported as a sequence of choice identifiers using this attribute.

7.1.12.5 "correctResponse" Attribute Description

The description of the "correctResponse" attribute for the "ResponseVariable" class is given in Table 7.1.12.5.

Table 7.1.12.5 Description of the "correctResponse" attribute for the "ResponseVariable" class.
Descriptor Definition
Attribute Name correctResponse
Data Type CorrectResponse
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description The correct response may be output as part of the report if desired. Systems are not limited to reporting correct responses declared in responseDeclarations. For example, a correct response may be set by a templateRule or may simply have been suppressed from the declaration passed to the delivery engine e.g. for security.

7.1.12.6 "candidateResponse" Attribute Description

The description of the "candidateResponse" attribute for the "ResponseVariable" class is given in Table 7.1.12.6.

Table 7.1.12.6 Description of the "candidateResponse" attribute for the "ResponseVariable" class.
Descriptor Definition
Attribute Name candidateResponse
Data Type CandidateResponse
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [1]
Description The response given by the candidate.

7.1.13 Results Class Description

The data model for the "Results" class is shown in Figure 7.1.13 and the accompanying definition in Table 7.1.13.

UML diagram of the Results class.

Figure 7.1.13 - Results class definitions.

Table 7.1.13 Description of the "Results" class.
Descriptor Definition
Class Name Results
Class Type Container [ Unordered ]
Parents There are no parent classes.
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description This is the container for the results that have been accrued by the examinee. These are passed to the CAT Engine to support the selection of the next set of Items.

7.1.13.1 "assessmentResult" Attribute Description

The description of the "assessmentResult" attribute for the "Results" class is given in Table 7.1.13.1.

Table 7.1.13.1 Description of the "assessmentResult" attribute for the "Results" class.
Descriptor Definition
Attribute Name assessmentResult
Data Type AssessmentResult
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [1]
Description The set of actual results achieved by the examinee (this is equivalent to the IMS QTI 2.2 Results Reporting data model [QTI, 20b]).

7.1.13.2 "sessionState" Attribute Description

The description of the "sessionState" attribute for the "Results" class is given in Table 7.1.13.2.

Table 7.1.13.2 Description of the "sessionState" attribute for the "Results" class.
Descriptor Definition
Attribute Name sessionState
Data Type SessionState
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0..1]
Description The session state information. This is the data that was supplied by the CAT Engine when the session was created or the next set of Items was requested.

7.1.14 Section Class Description

The data model for the "Section" class is shown in Figure 7.1.14 and the accompanying definition in Table 7.1.14.

UML diagram of the Section class.

Figure 7.1.14 - Section class definitions.

Table 7.1.14 Description of the "Section" class.
Descriptor Definition
Class Name Section
Class Type Container [ Unordered ]
Parents There are no parent classes.
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The container for the definition of the Section that is to be created in the CAT Engine. A Section is aligned to a QTI AssessmentSection [QTI, 20a].

7.1.14.1 "qtiMetadata" Attribute Description

The description of the "qtiMetadata" attribute for the "Section" class is given in Table 7.1.14.1.

Table 7.1.14.1 Description of the "qtiMetadata" attribute for the "Section" class.
Descriptor Definition
Attribute Name qtiMetadata
Data Type QTIMetadata
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description This is the container for the QTI metadata. Part of this metadata uses the IMS QTI 3.0 Metadata model [QTI, 20d].

7.1.14.2 "qtiUsagedata" Attribute Description

The description of the "qtiUsagedata" attribute for the "Section" class is given in Table 7.1.14.2.

Table 7.1.14.2 Description of the "qtiUsagedata" attribute for the "Section" class.
Descriptor Definition
Attribute Name qtiUsagedata
Data Type String (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description This is the Base64 encoded XML conforming to IMS QTI 3.0 Usage Date data model [QTI, 20c].

7.1.14.3 "sectionConfiguration" Attribute Description

The description of the "sectionConfiguration" attribute for the "Section" class is given in Table 7.1.14.3.

Table 7.1.14.3 Description of the "sectionConfiguration" attribute for the "Section" class.
Descriptor Definition
Attribute Name sectionConfiguration
Data Type String (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [1]
Description This is the Base64 encoded data containing section configuration, aligned with adaptive engine (black box). This format will be proprietary to each adaptive CAT Engine.

7.1.15 Session Class Description

The data model for the "Session" class is shown in Figure 7.1.15 and the accompanying definition in Table 7.1.15.

UML diagram of the Session class.

Figure 7.1.15 - Session class definitions.

Table 7.1.15 Description of the "Session" class.
Descriptor Definition
Class Name Session
Class Type Container [ Unordered ]
Parents There are no parent classes.
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description This is the container for the session configuration data that must be supplied to the CAT Engine when the session is to be created.

7.1.15.1 "personalNeedsAndPreferences" Attribute Description

The description of the "personalNeedsAndPreferences" attribute for the "Session" class is given in Table 7.1.15.1.

Table 7.1.15.1 Description of the "personalNeedsAndPreferences" attribute for the "Session" class.
Descriptor Definition
Attribute Name personalNeedsAndPreferences
Data Type NormalizedString (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description This is the Base64 encoded XML data for the Personal Needs and Preferences (PNP) for the examinee. This data conforms to the XML as defined in the IMS Access for All Personal Needs and Preferences (AfAPNP) 3.0 XML Binding specification [AFAPNP, 20].

7.1.15.2 "demographics" Attribute Description

The description of the "demographics" attribute for the "Session" class is given in Table 7.1.15.2.

Table 7.1.15.2 Description of the "demographics" attribute for the "Session" class.
Descriptor Definition
Attribute Name demographics
Data Type NormalizedString (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description The Base64 encoding of the JSON data for the Demographics information for the examinee. This data conforms to the JSON as defined in the IMS OneRoster 1.1 specification [OR, 17].

7.1.15.3 "priorData" Attribute Description

The description of the "priorData" attribute for the "Session" class is given in Table 7.1.15.3.

Table 7.1.15.3 Description of the "priorData" attribute for the "Session" class.
Descriptor Definition
Attribute Name priorData
Data Type KeyValuePair
Value Space Container [ Unordered ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description This is proprietary data that is supplied to the CAT Engine as a key/value pairs.

7.1.16 SessionIdentifier Class Description

The data model for the "SessionIdentifier" class is shown in Figure 7.1.16 and the accompanying definition in Table 7.1.16.

UML diagram of the SessionIdentifier class.

Figure 7.1.16 - SessionIdentifier class definitions.

Table 7.1.16 Description of the "SessionIdentifier" class.
Descriptor Definition
Class Name SessionIdentifier
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The system that creates the result (for example, the test delivery system) should assign a session identifier that it can use to identify the session.

7.1.16.1 "sourceID" Attribute Description

The description of the "sourceID" attribute for the "SessionIdentifier" class is given in Table 7.1.16.1.

Table 7.1.16.1 Description of the "sourceID" attribute for the "SessionIdentifier" class.
Descriptor Definition
Attribute Name sourceID
Data Type AnyURI (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [1]
Description A unique identifier of the system which added this identifier to the result.

7.1.16.2 "identifier" Attribute Description

The description of the "identifier" attribute for the "SessionIdentifier" class is given in Table 7.1.16.2.

Table 7.1.16.2 Description of the "identifier" attribute for the "SessionIdentifier" class.
Descriptor Definition
Attribute Name identifier
Data Type LUID
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The system that creates the report should add a session identifier. Subsequent systems that process the results might use their own identifier for the session and should add this too if the result is exported again for further transport.

7.1.17 TemplateVariable Class Description

The data model for the "TemplateVariable" class is shown in Figure 7.1.17 and the accompanying definition in Table 7.1.17.

UML diagram of the TemplateVariable class.

Figure 7.1.17 - TemplateVariable class definitions.

Table 7.1.17 Description of the "TemplateVariable" class.
Descriptor Definition
Class Name TemplateVariable
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The Item result information related to a 'Template Variable'.

7.1.17.1 "identifier" Attribute Description

The description of the "identifier" attribute for the "TemplateVariable" class is given in Table 7.1.17.1.

Table 7.1.17.1 Description of the "identifier" attribute for the "TemplateVariable" class.
Descriptor Definition
Attribute Name identifier
Data Type LUID
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The identifier of the Template Variable.

7.1.17.2 "cardinality" Attribute Description

The description of the "cardinality" attribute for the "TemplateVariable" class is given in Table 7.1.17.2.

Table 7.1.17.2 Description of the "cardinality" attribute for the "TemplateVariable" class.
Descriptor Definition
Attribute Name cardinality
Data Type CardinalityEnum
Value Space Enumerated value set of: { multiple | ordered | record | single }
Scope Local ("-")
Multiplicity [1]
Description The cardinality of the Template Variable, taken from the corresponding declaration or definition.

7.1.17.3 "baseType" Attribute Description

The description of the "baseType" attribute for the "TemplateVariable" class is given in Table 7.1.17.3.

Table 7.1.17.3 Description of the "baseType" attribute for the "TemplateVariable" class.
Descriptor Definition
Attribute Name baseType
Data Type BaseTypeEnum
Value Space Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope Local ("-")
Multiplicity [0..1]
Description The base type of the Template Variable, taken from the corresponding declaration of definition. This value is omitted only for variables with record cardinality.

7.1.17.4 "value" Attribute Description

The description of the "value" attribute for the "TemplateVariable" class is given in Table 7.1.17.4.

Table 7.1.17.4 Description of the "value" attribute for the "TemplateVariable" class.
Descriptor Definition
Attribute Name value
Data Type Value
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description The value(s) of the template variable. The order of the values is significant only if the template variable was declared with ordered cardinality.

7.1.18 TestResult Class Description

The data model for the "TestResult" class is shown in Figure 7.1.18 and the accompanying definition in Table 7.1.18.

UML diagram of the TestResult class.

Figure 7.1.18 - TestResult class definitions.

Table 7.1.18 Description of the "TestResult" class.
Descriptor Definition
Class Name TestResult
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description The container for the Test result. When a test result is given the following item results must relate only to items that were selected for presentation as part of the corresponding test session. Furthermore, all items selected for presentation should be reported with a corresponding itemResult.

7.1.18.1 "identifier" Attribute Description

The description of the "identifier" attribute for the "TestResult" class is given in Table 7.1.18.1.

Table 7.1.18.1 Description of the "identifier" attribute for the "TestResult" class.
Descriptor Definition
Attribute Name identifier
Data Type LUID
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [1]
Description The identifier of the test for which this is a result.

7.1.18.2 "datestamp" Attribute Description

The description of the "datestamp" attribute for the "TestResult" class is given in Table 7.1.18.2.

Table 7.1.18.2 Description of the "datestamp" attribute for the "TestResult" class.
Descriptor Definition
Attribute Name datestamp
Data Type DateTime (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [1]
Description The date stamp of when this result was recorded.

7.1.18.3 "responseVariables" Attribute Description

The description of the "responseVariables" attribute for the "TestResult" class is given in Table 7.1.18.3.

Table 7.1.18.3 Description of the "responseVariables" attribute for the "TestResult" class.
Descriptor Definition
Attribute Name responseVariables
Data Type ResponseVariable
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description Indicates that a Response Variable is being reported. This is the value of one of the responses associated with an Item in the corresponding ASI instance [QTI, 20a].

7.1.18.4 "templateVariables" Attribute Description

The description of the "templateVariables" attribute for the "TestResult" class is given in Table 7.1.18.4.

Table 7.1.18.4 Description of the "templateVariables" attribute for the "TestResult" class.
Descriptor Definition
Attribute Name templateVariables
Data Type TemplateVariable
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description Indicates that a Template Variable is being reported. This is the value of one of the template variables associated with an Item in the corresponding ASI instance [QTI, 20a].

7.1.18.5 "outcomeVariables" Attribute Description

The description of the "outcomeVariables" attribute for the "TestResult" class is given in Table 7.1.18.5.

Table 7.1.18.5 Description of the "outcomeVariables" attribute for the "TestResult" class.
Descriptor Definition
Attribute Name outcomeVariables
Data Type OutcomeVariable
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0.. unbounded]
Description Indicates that an Outcome Variable is being reported. This is the value of one of the outcomes associated with either an Item or Test and defined in the corresponding ASI instance [QTI, 20a].

7.1.19 Value Class Description

The data model for the "Value" class is shown in Figure 7.1.19 and the accompanying definition in Table 7.1.19.

UML diagram of the Value class.

Figure 7.1.19 - Value class definitions.

Table 7.1.19 Description of the "Value" class.
Descriptor Definition
Class Name Value
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description A class that can represent a single value of any baseType in variable declarations and result reports. The base-type is defined by the baseType attribute of the declaration except in the case of variables with record cardinality.

7.1.19.1 "fieldIdentifier" Attribute Description

The description of the "fieldIdentifier" attribute for the "Value" class is given in Table 7.1.19.1.

Table 7.1.19.1 Description of the "fieldIdentifier" attribute for the "Value" class.
Descriptor Definition
Attribute Name fieldIdentifier
Data Type LUID
Value Space Container [ DerivedType ]
Scope Local ("-")
Multiplicity [0..1]
Description This attribute is only used for specifying the field identifier for a value that forms part of a record.

7.1.19.2 "baseType" Attribute Description

The description of the "baseType" attribute for the "Value" class is given in Table 7.1.19.2.

Table 7.1.19.2 Description of the "baseType" attribute for the "Value" class.
Descriptor Definition
Attribute Name baseType
Data Type BaseTypeEnum
Value Space Enumerated value set of: { boolean | directedPair | duration | file | float | identifier | integer | pair | point | string | uri }
Scope Local ("-")
Multiplicity [0..1]
Description This attribute is only used for specifying the base-type of a value that forms part of a record.

7.1.19.3 "value" Attribute Description

The description of the "value" attribute for the "Value" class is given in Table 7.1.19.3.

Table 7.1.19.3 Description of the "value" attribute for the "Value" class.
Descriptor Definition
Attribute Name value
Data Type NormalizedString (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [1]
Description The value being supplied.

7.1.20 imsx_CodeMinor Class Description

The data model for the "imsx_CodeMinor" class is shown in Figure 7.1.20 and the accompanying definition in Table 7.1.20.

UML diagram of the imsx_CodeMinor class.

Figure 7.1.20 - imsx_CodeMinor class definitions.

Table 7.1.20 Description of the "imsx_CodeMinor" class.
Descriptor Definition
Class Name imsx_CodeMinor
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description This is the container for the set of code minor status codes reported in the responses from the Service Provider.

7.1.20.1 "imsx_codeMinorField" Attribute Description

The description of the "imsx_codeMinorField" attribute for the "imsx_CodeMinor" class is given in Table 7.1.20.1.

Table 7.1.20.1 Description of the "imsx_codeMinorField" attribute for the "imsx_CodeMinor" class.
Descriptor Definition
Attribute Name imsx_codeMinorField
Data Type imsx_CodeMinorField
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [1.. unbounded]
Description Each reported code minor status code.

7.1.21 imsx_CodeMinorField Class Description

The data model for the "imsx_CodeMinorField" class is shown in Figure 7.1.21 and the accompanying definition in Table 7.1.21.

UML diagram of the imsx_CodeMinorField class.

Figure 7.1.21 - imsx_CodeMinorField class definitions.

Table 7.1.21 Description of the "imsx_CodeMinorField" class.
Descriptor Definition
Class Name imsx_CodeMinorField
Class Type Container [ Sequence ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description This is the container for a single code minor status code.

7.1.21.1 "imsx_codeMinorFieldName" Attribute Description

The description of the "imsx_codeMinorFieldName" attribute for the "imsx_CodeMinorField" class is given in Table 7.1.21.1.

Table 7.1.21.1 Description of the "imsx_codeMinorFieldName" attribute for the "imsx_CodeMinorField" class.
Descriptor Definition
Attribute Name imsx_codeMinorFieldName
Data Type NormalizedString (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [1]
Description This should contain the identity of the system that has produced the code minor status code report.

7.1.21.2 "imsx_codeMinorFieldValue" Attribute Description

The description of the "imsx_codeMinorFieldValue" attribute for the "imsx_CodeMinorField" class is given in Table 7.1.21.2.

Table 7.1.21.2 Description of the "imsx_codeMinorFieldValue" attribute for the "imsx_CodeMinorField" class.
Descriptor Definition
Attribute Name imsx_codeMinorFieldValue
Data Type imsx_CodeMinorValueEnum
Value Space Enumerated value set of: { fullsuccess | forbidden | invaliddata | unauthorisedrequest | internal_server_error | server_busy | unknownobject }
Scope Local ("-")
Multiplicity [1]
Description The code minor status code (this is a value from the corresponding enumerated vocabulary).

7.1.22 imsx_StatusInfo Class Description

The data model for the "imsx_StatusInfo" class is shown in Figure 7.1.22 and the accompanying definition in Table 7.1.22.

UML diagram of the imsx_StatusInfo class.

Figure 7.1.22 - imsx_StatusInfo class definitions.

Table 7.1.22 Description of the "imsx_StatusInfo" class.
Descriptor Definition
Class Name imsx_StatusInfo
Class Type Container [ Sequence ]
Parents There are no parent classes.
Derived Classes There are no derived classes.
Super Classes This class is not derived from another class.
Characteristics There are no characteristics.
Children The set of children attributes are:
Description This is the container for the status code and associated information returned within the HTTP messages received from the Service Provider.

7.1.22.1 "imsx_codeMajor" Attribute Description

The description of the "imsx_codeMajor" attribute for the "imsx_StatusInfo" class is given in Table 7.1.22.1.

Table 7.1.22.1 Description of the "imsx_codeMajor" attribute for the "imsx_StatusInfo" class.
Descriptor Definition
Attribute Name imsx_codeMajor
Data Type imsx_CodeMajorEnum
Value Space Enumerated value set of: { success | processing | failure | unsupported }
Scope Local ("-")
Multiplicity [1]
Description The code major value (from the corresponding enumerated vocabulary).

7.1.22.2 "imsx_severity" Attribute Description

The description of the "imsx_severity" attribute for the "imsx_StatusInfo" class is given in Table 7.1.22.2.

Table 7.1.22.2 Description of the "imsx_severity" attribute for the "imsx_StatusInfo" class.
Descriptor Definition
Attribute Name imsx_severity
Data Type imsx_SeverityEnum
Value Space Enumerated value set of: { status | warning | error }
Scope Local ("-")
Multiplicity [1]
Description The severity value (from the corresponding enumerated vocabulary).

7.1.22.3 "imsx_description" Attribute Description

The description of the "imsx_description" attribute for the "imsx_StatusInfo" class is given in Table 7.1.22.3.

Table 7.1.22.3 Description of the "imsx_description" attribute for the "imsx_StatusInfo" class.
Descriptor Definition
Attribute Name imsx_description
Data Type String (Primitive-type)
Value Space See Appendix A3.3.
Scope Local ("-")
Multiplicity [0..1]
Description A human readable description supplied by the entity creating the status code information.

7.1.22.4 "imsx_codeMinor" Attribute Description

The description of the "imsx_codeMinor" attribute for the "imsx_StatusInfo" class is given in Table 7.1.22.4.

Table 7.1.22.4 Description of the "imsx_codeMinor" attribute for the "imsx_StatusInfo" class.
Descriptor Definition
Attribute Name imsx_codeMinor
Data Type imsx_CodeMinor
Value Space Container [ Sequence ]
Scope Local ("-")
Multiplicity [0..1]
Description The set of reported code minor status codes.

7.2. Derived Class Descriptions

All of the derived data classes used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A3.2.

7.2.1 IdentifierList Class Description

The data model for the "IdentifierList" class is shown in Figure 7.2.1 and the accompanying definition in Table 7.2.1.

UML diagram of the IdentifierList class.

Figure 7.2.1 - IdentifierList class definitions.

Table 7.2.1 Description of the "IdentifierList" class.
Descriptor Definition
Class Name IdentifierList
Class Type Container [ DerivedType ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes The set of classes from which this class is derived:
Characteristics There are no characteristics.
Children There are no children.
Description This denotes a list of identifiers. The identifiers are separated by a space. An identifier is simply a logical reference to another object in the item, section or assessment. An identifier is a string of characters that must start with a Letter or an underscore ('_') and contain only Letters, underscores, hyphens ('-'), period ('.', a.k.a. full-stop), Digits, CombiningChars and Extenders.

7.2.2 LUID Class Description

The data model for the "LUID" class is shown in Figure 7.2.2 and the accompanying definition in Table 7.2.2.

UML diagram of the LUID class.

Figure 7.2.2 - LUID class definitions.

Table 7.2.2 Description of the "LUID" class.
Descriptor Definition
Class Name LUID
Class Type Container [ DerivedType ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes The set of classes from which this class is derived:
Characteristics There are no characteristics.
Children There are no children.
Description The data-type for establishing a Locally Unique Identifier (LUID) - this must be unique for the set of Section and Session interactions between the consumer and the CAT Engine. The form of the LUID is unrestricted.

7.2.3 SessionState Class Description

The data model for the "SessionState" class is shown in Figure 7.2.3 and the accompanying definition in Table 7.2.3.

UML diagram of the SessionState class.

Figure 7.2.3 - SessionState class definitions.

Table 7.2.3 Description of the "SessionState" class.
Descriptor Definition
Class Name SessionState
Class Type Container [ DerivedType ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes The set of classes from which this class is derived:
Characteristics There are no characteristics.
Children There are no children.
Description This is the container for the Base64 encoded session data, aligned with the adaptive CAT Engine (black box). In general this will be a proprietary format.

7.2.4 String256 Class Description

The data model for the "String256" class is shown in Figure 7.2.4 and the accompanying definition in Table 7.2.4.

UML diagram of the String256 class.

Figure 7.2.4 - String256 class definitions.

Table 7.2.4 Description of the "String256" class.
Descriptor Definition
Class Name String256
Class Type Container [ DerivedType ]
Parents The set of parent classes are:
Derived Classes There are no derived classes.
Super Classes The set of classes from which this class is derived:
Characteristics There are no characteristics.
Children The set of children attributes are:
Description This is a constrained form of the string primitiveType. Such a string must not have more than 256 characters.

7.2.4.1 "maxLength" Attribute Description

The description of the "maxLength" attribute for the "String256" class is given in Table 7.2.4.

Table 7.2.4 Description of the "maxLength" attribute for the "String256" class.
Descriptor Definition
Attribute Name maxLength
Data Type Integer (Primitive-type)
Value Space See Appendix A3.3.
Default = "256".
Scope Local ("-")
Multiplicity [1]
Description The maximum number of characters permitted in the string (256).

7.3. Enumerated Vocabulary Descriptions

All of the enumerated vocabularies used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A3.4.

7.3.1 BaseTypeEnum Vocabulary Description

A base-type is simply a description of a set of atomic values (atomic to this specification). Note that several of the baseTypes used to define the runtime data model have identical definitions to those of the basic data types used to define the values for attributes in the specification itself. The use of an enumeration to define the set of baseTypes used in the runtime model, as opposed to the use of classes with similar names, is designed to help distinguish between these two distinct levels of modelling. The data model for the "BaseTypeEnum" enumerated class is shown in Figure 7.3.1 and the accompanying vocabulary definition in Table 7.3.1.

UML diagram of the BaseTypeEnum class.

Figure 7.3.1 - BaseTypeEnum class definitions.

Table 7.3.1 Description of the "BaseTypeEnum" enumerated vocabulary terms.
Term Definition
boolean The set of boolean values is the same as the set of values defined by the boolean primitveType.
directedPair A directedPair value represents a pair of identifiers corresponding to a directed association between two objects. The two identifiers correspond to the source and destination objects.
duration A duration value specifies a distance (in time) between two time points. In other words, a time period as defined by [ISO 8601], but represented as a single float that records time in seconds. Durations may have a fractional part. Durations are represented using the xsd:double datatype rather than xsd:dateTime for convenience and backward compatibility.
file A file value is any sequence of octets (bytes) qualified by a content-type and an optional filename given to the file (for example, by the candidate when uploading it as part of an interaction). The content type of the file is one of the MIME types defined by [RFC 2045].
float The set of float values is the same as the set of values defined by the float primitiveType.
identifier The set of identifier values is the same as the set of values defined by the identifier class.
integer The set of integer values is the same as the set of values defined by the integer primitiveType.
pair A pair value represents a pair of identifiers corresponding to an association between two objects. The association is undirected so (A,B) and (B,A) are equivalent.
point A point value represents an integer tuple corresponding to a graphic point. The two integers correspond to the horizontal (x-axis) and vertical (y-axis) positions respectively. The up/down and left/right senses of the axes are context dependent.
string The set of string values is the same as the set of values defined by the string primitiveType.
uri A URI value is a Uniform Resource Identifier as defined by [URI, 98].

7.3.2 CardinalityEnum Vocabulary Description

An expression or itemVariable can either be single-valued or multi-valued. A multi-valued expression (or variable) is called a container. A container contains a list of values, this list may be empty in which case it is treated as NULL. All the values in a multiple or ordered container are drawn from the same value set, however, containers may contain multiple occurrences of the same value. In other words, [A,B,B,C] is an acceptable value for a container. A container with cardinality multiple and value [A,B,C] is equivalent to a similar one with value [C,B,A] whereas these two values would be considered distinct for containers with cardinality ordered. When used as the value of a response variable this distinction is typified by the difference between selecting choices in a multi-response multi-choice task and ranking choices in an order objects task. In the language of [ISO 11404] a container with multiple cardinality is a "bag-type", a container with ordered cardinality is a "sequence-type" and a container with record cardinality is a "record-type". The record container type is a special container that contains a set of independent values each identified by its own identifier and having its own base-type. This specification does not make use of the record type directly however it is provided to enable customInteractions to manipulate more complex responses and customOperators to return more complex values, in addition to the use for detailed information about numeric responses described in the stringInteraction abstract class.The data model for the "CardinalityEnum" enumerated class is shown in Figure 7.3.2 and the accompanying vocabulary definition in Table 7.3.2.

UML diagram of the CardinalityEnum class.

Figure 7.3.2 - CardinalityEnum class definitions.

Table 7.3.2 Description of the "CardinalityEnum" enumerated vocabulary terms.
Term Definition
multiple A multi-valued expression (or variable) is called a container. A container contains a list of values, this list may be empty in which case it is treated as NULL. All the values in a multiple or ordered container are drawn from the same value set, however, containers may contain multiple occurrences of the same value. In other words, [A,B,B,C] is an acceptable value for a container.
ordered A ordered valued expression (or variable) is also a container but ordered. A container contains a list of values, this list may be empty in which case it is treated as NULL. All the values in an ordered container are drawn from the same value set, however, containers may contain multiple occurrences of the same value.
record The record container type is a special container that contains a set of independent values each identified by its own identifier and having its own base-type. This specification does not make use of the record type directly however it is provided to enable customInteractions to manipulate more complex responses and customOperators to return more complex values, in addition to the use for detailed information about numeric responses described in the stringInteraction abstract class.
single An expression or itemVariable that is single-valued.

7.3.3 FeedbackTypeEnum Vocabulary Description

The set of permitted values for the type of feedback in QTI MetadataThe data model for the "FeedbackTypeEnum" enumerated class is shown in Figure 7.3.3 and the accompanying vocabulary definition in Table 7.3.3.

UML diagram of the FeedbackTypeEnum class.

Figure 7.3.3 - FeedbackTypeEnum class definitions.

Table 7.3.3 Description of the "FeedbackTypeEnum" enumerated vocabulary terms.
Term Definition
adaptive Feedback is available and is adaptive. In other words, the item is an adaptive item.
nonadaptive Feedback is available but it is non-adaptive. In other words, the item is a non-adaptive item.
none No feedback is available.

7.3.4 InteractionTypeEnum Vocabulary Description

The set of permitted values for the type of interaction in the QTI Metadata.The data model for the "InteractionTypeEnum" enumerated class is shown in Figure 7.3.4 and the accompanying vocabulary definition in Table 7.3.4.

UML diagram of the InteractionTypeEnum class.

Figure 7.3.4 - InteractionTypeEnum class definitions.

Table 7.3.4 Description of the "InteractionTypeEnum" enumerated vocabulary terms.
Term Definition
associateInteraction States that the Item includes at least one 'associateInteraction'.
choiceInteraction States that the Item includes at least one 'choiceInteraction'.
customInteraction States that the Item includes at least one 'customInteraction'.
drawingInteraction States that the Item includes at least one 'drawingInteraction'.
endAttemptInteraction States that the Item includes at least one 'endAttemptInteraction'.
extendedTextInteraction States that the Item includes at least one 'extendedTextInteraction'.
gapMatchInteraction States that the Item includes at least one 'gapMatchInteraction'.
graphicAssociateInteraction States that the Item includes at least one 'graphicAssociateInteraction'.
graphicGapMatchInteraction States that the Item includes at least one 'graphicGapMatchInteraction'.
graphicOrderInteraction States that the Item includes at least one 'graphicOrderInteraction'.
hotspotInteraction States that the Item includes at least one 'hotspotInteraction'.
hottextInteraction States that the Item includes at least one 'hottextInteraction'.
inlineChoiceInteraction States that the Item includes at least one 'inlineChoiceInteraction'.
matchInteraction States that the Item includes at least one 'matchInteraction'.
mediaInteraction States that the Item includes at least one 'mediaInteraction'.
orderInteraction States that the Item includes at least one 'orderInteraction'.
portableCustomInteraction States that the Item is supplied as a Portable Custom Interaction (PCI).
positionObjectInteraction States that the Item includes at least one 'positionOrderInteraction'.
selectPointInteraction States that the Item includes at least one 'selectPointInteraction'.
sliderInteraction States that the Item includes at least one 'sliderInteraction'.
textEntryInteraction States that the Item includes at least one 'textEntryInteraction'.
uploadInteraction States that the Item includes at least one 'uploadInteraction'.

7.3.5 ScoringModeEnum Vocabulary Description

The set of permitted values for the scoring mode in the QTI Metadata.The data model for the "ScoringModeEnum" enumerated class is shown in Figure 7.3.5 and the accompanying vocabulary definition in Table 7.3.5.

UML diagram of the ScoringModeEnum class.

Figure 7.3.5 - ScoringModeEnum class definitions.

Table 7.3.5 Description of the "ScoringModeEnum" enumerated vocabulary terms.
Term Definition
externalmachine Scoring uses some form of special machine processing e.g AI.
human Human scoring is required.
responseprocessing Scoring using the response processing rules supplied in the Item.

7.3.6 SessionStatus Vocabulary Description

The session status is used to keep track of the status of the item variables in an item session. The data model for the "SessionStatus" enumerated class is shown in Figure 7.3.6 and the accompanying vocabulary definition in Table 7.3.6.

UML diagram of the SessionStatus class.

Figure 7.3.6 - SessionStatus class definitions.

Table 7.3.6 Description of the "SessionStatus" enumerated vocabulary terms.
Term Definition
final The value to use when the item variables represent the values at the end of an attempt after response processing has taken place. In other words, after the outcome values have been updated to reflect the values of the response variables.
initial The value to use for sessions in the initial state, as described above. This value can only be used to describe sessions for which the response variable numAttempts is 0. The values of the variables are set according to the rules defined in the appropriate declarations (see responseDeclaration, outcomeDeclaration and templateDeclaration).
pendingResponseProcessing The value to use when the item variables represent the values of the response variables after submission but before response processing has taken place. Again, the outcomes are those assigned at the end of the previous attempt as they are awaiting response processing.
pendingSubmission The value to use when the item variables represent a snapshot of the current values during an attempt (in other words, while interacting or suspended). The values of the response variables represent work in progress that has not yet been submitted for response processing by the candidate. The values of the outcome variables represent the values assigned during response processing at the end of the previous attempt or, in the case of the first attempt, the default values given in the variable declarations.

7.3.7 ViewEnum Vocabulary Description

The intended audience for the associated object can be set with the view attribute. If no view is specified the outcome is treated as relevant to all views. Objects may have content that is of no interest to the candidate at all, but are merely used to hold intermediate values or other information useful during the item or test session. Where more than one class of user should be able to view the content the view attribute should contain a comma delimited list. The data model for the "ViewEnum" enumerated class is shown in Figure 7.3.7 and the accompanying vocabulary definition in Table 7.3.7.

UML diagram of the ViewEnum class.

Figure 7.3.7 - ViewEnum class definitions.

Table 7.3.7 Description of the "ViewEnum" enumerated vocabulary terms.
Term Definition
author Viewable by an 'author'.
candidate Viewable by a 'candidate'.
proctor Viewable by a 'proctor' (sometimes referred to as an 'invigilator'.
scorer Viewable by a 'scorer'.
testConstructor Viewable by someone is responsible for composing a test.
tutor Viewable by a 'tutor'.

7.3.8 imsx_CodeMajorEnum Vocabulary Description

This is the set of primary status report values i.e. the major code assigned to the status block. This is used in conjunction with the 'Severity' structure in the status object.The data model for the "imsx_CodeMajorEnum" enumerated class is shown in Figure 7.3.8 and the accompanying vocabulary definition in Table 7.3.8.

UML diagram of the imsx_CodeMajorEnum class.

Figure 7.3.8 - imsx_CodeMajorEnum class definitions.

Table 7.3.8 Description of the "imsx_CodeMajorEnum" enumerated vocabulary terms.
Term Definition
failure Denotes that the transaction request has failed. The detailed reason will be reported in the accompanying 'codeMinor' fields.
processing Denotes that the request is being processed at the destination or there has been a local transmission failure. This value is used in asynchronous services.
success Denotes that the request has been successfully completed. If the associated 'severity' value is 'warning' then the request has been partially successful i.e. best effort by the service provider. Other parts of the status information may provide more insight into a partial success response.
unsupported Denotes that the service provider does not support the requested operation. This is the required default response for an unsupported operation by an implementation.

7.3.9 imsx_CodeMinorValueEnum Vocabulary Description

This is the set of codeMinor status codes that are used to provide further insight into the completion status of the end-to-end transaction i.e. this should be used to provide more information than would be supplied be a HTTP code.The data model for the "imsx_CodeMinorValueEnum" enumerated class is shown in Figure 7.3.9 and the accompanying vocabulary definition in Table 7.3.9.

UML diagram of the imsx_CodeMinorValueEnum class.

Figure 7.3.9 - imsx_CodeMinorValueEnum class definitions.

Table 7.3.9 Description of the "imsx_CodeMinorValueEnum" enumerated vocabulary terms.
Term Definition
forbidden This is used to indicate that the server can be reached and process the request but refuses to take any further action. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '403'.
fullsuccess The request has been fully and successfully implemented by the CAT Engine. For a REST binding this will have an HTTP code of '200' for a successful 'GET' request; '201' for a successful 'POST' request; '204' for a successful 'DELETE' request.
internal_server_error This should be used only if there is catastrophic error and there is not a more appropriate code. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '500'.
invaliddata An invalid data field was supplied and storage of the data was not possible. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '400'.
server_busy The server is receiving too many requests. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '429'.
unauthorisedrequest The request was not correctly authorized. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '401'.
unknownobject The supplied identifier is unknown in the CAT Engine and so the object could not be changed. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '404'.

7.3.10 imsx_SeverityEnum Vocabulary Description

This is the context for the status report values. This is used in conjunction with the 'CodeMajor' structure in the status object.The data model for the "imsx_SeverityEnum" enumerated class is shown in Figure 7.3.10 and the accompanying vocabulary definition in Table 7.3.10.

UML diagram of the imsx_SeverityEnum class.

Figure 7.3.10 - imsx_SeverityEnum class definitions.

Table 7.3.10 Description of the "imsx_SeverityEnum" enumerated vocabulary terms.
Term Definition
error A catastrophic error has occurred in processing the request and so the request was not completed (the Service Provider may not even have received the request).
status The request has been completed and a response was received from the Service Provider.
warning The request has only been partially completed. For an asynchronous service a further response should be expected.

toc | top

8. Link Data Definitions

This Section is NORMATIVE.

All of the link data for the relationships used within this Information Model are described in this Section. The syntax and semantics for this representation is described in Appendix A3.7.

[[ ED NOTE: To be completed in a later draft. ]]

toc | top

9. Extending and Profiling the Service

9.1. Extending the Service

Proprietary extensions of the service are based upon two approaches:

It is NOT permitted to change the behavior of the current set of operations. Such changes MUST be supported by the creation of new operations.

9.1.1. Proprietary Operations

The definition of new operations should follow the same format as adopted herein. The new operations should be defined using a new interface type. Every operation must result in the return of a status code that describes the final state of the request on the target end system.

An example of creating such an extension is given in the accompanying Best Practices document [CAT, 20b].

9.1.2. Proprietary Data Elements

Extensions to the data model are only permitted where the IMSExtension class is available. Currently, data extensions are NOT permitted.

9.2. Profiling the Service

This Service can be profiled. In general, Profiling is used to:

Valid Profiles must be restrictive i.e. optional features can be removed or constraints increased but new features must not be added. A Profile of this service is made by annotating the UML supplied with the documentation for the specification.

It is strongly recommended that a profile of this specification is undertaken either by, or with the close support, of IMS Global. However, no matter who is responsible for creating the profile artifacts (documents, XSDs, etc.), it is strongly recommended that the IMS specification tools are used. This will ensure that the artifacts are consistent with the base specifications and that useful support documentation is automatically produced e.g. creation of a document that summarizes the differences between the base specification and the profile. Organizations wishing to produce a profile of this specification should contact Lisa Mattson (IMS Global Chief Operations Officer) at: lmattson@imsglobal.org.

toc | top

References

[AFAPNP, 20] Access for All Personal Needs and Preferences (AFA PNP) 3.0 XSD Binding Candidate Final 2.0, Tom Hoffman, Madeleine Rithberg and Colin Smythe, IMS Global Learning Consortium Inc., June 2020, https://www.imsglobal.org/afa/latest.
[CAT, 20a] IMS Computer Adaptive Testing (CAT) 1.0 REST/JSON Binding Public Candidate Final Document, J.Carlson, M.Molenaar, M.McKell and C.Smythe, IMS Global Learning Consortium Inc., November 2020, www.imsglobal.org/spec/cat/latest.
[CAT, 20b] IMS Computer Adaptive Testing (CAT) 1.0 Implementation Guide Public Candidate Final Document, J.Carlson, M.Molenaar, M.McKell and C.Smythe, IMS Global Learning Consortium Inc., November 2020, www.imsglobal.org/spec/cat/latest.
[CAT, 20c] IMS Computer Adaptive Testing (CAT) 1.0 Conformance and Certification Public Final Release Document, J.Carlson, M.Molenaar, M.McKell and C.Smythe, IMS Global Learning Consortium Inc., November 2020, www.imsglobal.org/spec/cat/latest.
[I-BAT, 06] IMS Binding Auto-generation Toolkit (I-BAT), C.Smythe, IMS Global Learning Consortium Inc., July 2006.
[ISO 8601] ISO8601:2004 Data elements and interchange formats - Information interchange - Representation of dates and times, ISO, International Standards Organization (ISO), 2000.
[OR, 17] OneRoster 1.1 REST/JSON Service Final Release 1.0, C.Smythe and P.Nicholls, IMS Global Learning Consortium Inc., April 2017, https://www.imsglobal.org/oneroster-v11-final-specification.
[QTI, 20a] IMS Question and Test Interoperability (QTI): Assessment, Section and Item (ASI) Information Model v3.0, Gary Driscoll, Tom Hoffmann, Justin Marks, Paul Grudnitski, Mark Molenaar, Colin Smythe and Mark McKell, IMS Global Learning Consortium Inc., June 2020, https://www.imsglobal.org/question/qtiv3p0/imsqtiv3p0_asi_infomodelcfv1p0.html.
[QTI, 20b] IMS Question and Test Interoperability (QTI) 3.0 Results Reporting Information Model 1.0, Gary Driscoll, Tom Hoffmann, Justin Marks, Paul Grudnitski, Mark Molenaar, Colin Smythe and Mark McKell, IMS Global Learning Consortium Inc., June 2020, https://www.imsglobal.org/question/qtiv3p0/imsqtiv3p0_results_infobindcfv1p0.html.
[QTI, 20c] IMS Question and Test Interoperability (QTI) 3.0 Usage Data Information Model 1.0, Gary Driscoll, Tom Hoffmann, Justin Marks, Paul Grudnitski, Mark Molenaar, Colin Smythe and Mark McKell, IMS Global Learning Consortium Inc., June 2020, https://www.imsglobal.org/question/qtiv3p0/imsqtiv3p0_usagedata_infobindcfv1p0.html.
[QTI, 20d] IMS Question and Test Interoperability (QTI) 3.0 Metadata Information Model 1.0, Gary Driscoll, Tom Hoffmann, Justin Marks, Paul Grudnitski, Mark Molenaar, Colin Smythe and Mark McKell, IMS Global Learning Consortium Inc., June 2020, https://www.imsglobal.org/question/qtiv3p0/imsqtiv3p0_metadatai_infobindcfv1p0.html.
[RFC 2045] Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, N. Freed and N. Borenstein, IETF (RFC 2045), November 1996, https://www.ietf.org/rfc/rfc2045.txt.
[RFC 2119] Key words for use in RFCs to Indicate Requirement Levels, S. Bradner, IETF (RFC 2119), March 1997, https://tools.ietf.org/html/rfc2119.
[RFC 2617] HTTP Authentication: Basic and Digest Access Authentication, J. Franks, P. Hallam-Baker, J. Hostetler, S. Lawrence, P. Leach, A. Luotonen and L. Stewart, IETF (RFC 2617), 1999, https://tools.ietf.org/pdf/rfc2617.txt.
[RFC 3066] Tags for the Identification of Languages, H.Alvestrand, IETF (RFC 3066), January 2001, https://www.ietf.org/rfc/rfc3066.txt.
[RFC 6749] The OAuth 2.0 Authorization Framework, D.Hardt, IETF (RFC 6749), 2012, https://tools.ietf.org/pdf/rfc6749.txt.
[RFC 6750] The OAuth 2.0 Authorization Framework: Bearer Token Usage, D.Hardt, IETF (RFC 6750), 2012, https://tools.ietf.org/pdf/rfc6750.txt.
[URI, 98] RFC 2396 Uniform Resource Identifiers (URI): Generic Syntax, T. Berners-Lee, R. Fielding and L. Masinter, IETF (RFC 2396), August 1998, https://www.ietf.org/rfc/rfc2396.txt..
[VDEX, 04] IMS Vocabulary Definition Exchange (VDEX) 1.0, A.Cooper, IMS Global Learning Consortium Inc., Februsry 2004, https://www.imsglobal.org/vdex/vdexv1p0/imsvdex_infov1p0.html.

toc | top

Appendix A Modeling Concepts and Terms

A1 Behavior Descriptions Explanations

This section is NOT NORMATIVE.

A1.1 Service Model Diagrams

Table A1.1 provides the key to the descriptions of service model diagrams.

Table A1.1 The key to the descriptions of service model diagrams.
Feature Definition and Usage
Service Model Package Each synchronous or asynchronous service model description is enclosed in a UML Package that has the stereotype of « serviceModel » under which is the name of the service being described. A service must have at least one Interface (the breakdown of the service into the component transactions is a design decision).
Interface Class Each interface description is enclosed in a UML Package that has the stereotype of « Interface » under which is the name of the interface being described. An interface is a collection of operations that support a common set of transaction objectives. An interface must have at least one operation. An Interface class has no attributes.
Operation Description The behaviors provided by an interface are defined by the set of operations. Each operation must have a unique name and is accompanied by the set of parameters that are sent to the service (in) and those returned by the service (out). An operation can also have a formal return parameter whose form and usage depends upon the actual binding realisation. The description may also include a stereotype for the identification of the nature operation e.g. read, create, etc.

A1.2 Operation Descriptions

Table A1.2 provides the key to the descriptions of the operation tables.

Table A1.2 The key to the operation description tables.
Descriptor Definition
Name The name given to the operation being described. In the case of an interface, by definition, every operation has the scope value of global denoted by the "+" symbol before the name.
Stereotype Before the name of the operation there may be a stereotype classifier. This is used to provide information about the nature of the behavior of the operation. The permitted set of stereotype values and their meaning are:
  • « create » - indicates that a request is being made to create a new object/resource where the requester provides the associated unique identifier;
  • « createbp » - indicates that a request is being made to create a new object/resource where the responder provides the associated unique identifier;
  • « read » - indicates that a request is being made to read an existing object/resource;
  • « update » - indicates that a request is being made to update an existing object/resource i.e. an additive write;
  • « delete » - indicates that a request is being made to delete an existing object/resource;
  • « replace » - indicates that a request is being made to replace an existing object/resource i.e. a destructive write;
  • « query » - indicates that a request is being made to search for objects/resources according to a defined set of search criteria;
  • « publish » - indicates that a request is being made by a publisher in a publish and subscribe binding;
  • « subscribe » - indicates that a request is being made by a subscriber in a publish and subscribe binding.
Return Function Parameter The formal return parameter for the operation/method returned for the transaction request (the form in which this information is provided depends on the realisation of the binding). The description includes the name of the parameter and the data-type in the form "name:data-type" pair. The name/data-type provides a link to the associated interface data-type description in The Interface Model. In situations where there is no return function this entry will be set to "void"
Supplied (in) Parameters The list of parameters that are sent from the client to the end-service in the service request message. Each parameter description includes the name of the parameter and the data-type in the form "name:data-type" pair. The name/data-type provides a link to the associated interface data-type description in The Interface Model.
Supplied (out) Parameters The list of parameters that are returned from the end-service in the service response message. Each parameter description includes the name of the parameter and the data-type in the form "name:data-type" pair. The name/data-type provides a link to the associated interface data-type description in The Interface Model.
Behavior A description of the behavior of the operation.
Notes Further information on the behavior particularly in the context of the use of other operations and the relationship to the behaviors of those operations.

A2 Interface Descriptions Explanations

This section is NOT NORMATIVE.

A2.1 Parameter Model Diagrams

Table A2.1 provides the key to the descriptions of parameter data model diagrams.

Table A2.1 The key to the descriptions of parameter model diagrams.
Feature Definition and Usage
Data Model Package Each parameter data model description is enclosed in a UML Package that has the stereotype of « dataModel » under which is the name of the class being described.
DerivedType Class This is a class that is identified by the stereotype « DerivedType » under which is the name of the data-type. A derived class is one that is derived either from another derived class or a PrimitiveType class.
Enumeration Class This is a class that is identified by the stereotype « Enumeration » under which is the name of the enumeration data-type. The enumeration class consists of the list of tokens that are the permitted values of the assigned attribute.
Selection Class This is a class that is identified by the stereotype « Selection » under which is the name of the data-type. The selection means that only one of the listed attributes make occur in an instance. If this is an abstract class then multiple iterations of the instance may occur and the multiplicity of the attribute defines the constraints on the number of times the attribute can occur in the full instance.
Sequence Class This is a class that is identified by the stereotype « Sequence » under which is the name of the data-type. The sequence means that the listed attributes must occur only in the order of the attributes listed on the class. The associated multiplicity defines the number of times the attribute may occur consecutively in the instance.
Unordered Class This is a class that is identified by the stereotype « Unordered » under which is the name of the data-type. The unordering means that the listed attributes may occur in any order but the associated multiplicity for the attribute must be followed (when binding to XML this requires the use of Schematron rules to enforce the multiplicity).
Attribute Description Each class contains a set of attributes. Each attribute description consists of the scope, name, data-type and multiplicity (see Appendix A2.3 for a more complete description).
Composition Arrow This is an arrow with a filled diamond head to indicate that the child class is a composite structure of the parent class i.e. the child class only exists within the context of the parent class. This association allows complex structures to be constructed with common subcomponents.

A2.2 Class Descriptions

Table A2.2 provides the key to the descriptions of the parameter data class tables.

Table A2.2 The key to the descriptions of the data class tables.
Descriptor Definition
Class Name The name given to the class being described.
Class Type The nature of the class (for a parameter data-type this must not be an abstract class). This is described as a "Container [...]" with the value of "..." being (see Appendix A2.1 for the meaning of these values):
  • "DerivedType"
  • "Sequence"
  • "Selection"
  • "Unordered"
Parents This is the list of operations for which this class is a data-type for one or more of the parameters. Each entry is linked to the corresponding operation description.
Children Lists the set of attributes for this class (the only other permitted associations are generalizations). The list of children includes those that are grouped under a corresponding stereotyped attribute class. Each child is linked to the corresponding attribute description table. The nature of the relationship between the children is defined by the stereotype of the parent class i.e. the class type.
Description Contains descriptions relating to the class and its properties and relationships.

A2.3 Attribute Descriptions

Table A2.3 provides the key to the descriptions of the data attributes for the data classes for the operation parameters.

Table A2.3 The key to the descriptions of the data attribute tables.
Descriptor Definition
Attribute Name The name given to the attribute being described.
Data Type This is the data-type of the attribute. It can take many forms:
  • Class Name - the name of the Class (this is linked to the class definition);
  • Primtive Data-types - this is the same list as defined under the "Attribute and Characteristic" description (see later in this Appendix for these definitions).
Value Space The range of valid values for this class (including any default value). If the value space is unspecified, it is not known or is not important. This value space must be defined in terms of the associated data-type.
Scope This is the scope of the attribute with permitted values of:
  • Local - denoted by "-" and meaning the attribue has significance and access within the context of the parent class only;
  • Global - denoted by "+" and meaning that the attribute has global scoping (so must have a unique name) and can be accessed from anywhere.
Multiplicity A property of an attribute indicating the number of times it may be used or appear in a given class instance. The values of this property are expressed as a range or shorthand for a range using the notation:
  • "0..1" [optional; restricted]
  • "0..unbounded" [optional; unrestricted]
  • "1..1" [mandatory; restricted]
  • "1..unbounded" [mandatory; unrestricted]
Description Contains descriptions relating to the attribute and its values space.

A3 Data Model Descriptions Explanations

This section is NOT NORMATIVE.

A3.1 Data Model Diagrams

Table A3.1 provides the key to the descriptions of data model diagrams.

Table A3.1 The key to the descriptions of data model diagrams.
Feature Definition and Usage
Data Model Package Each data model description is enclosed in a UML Package that has the stereotype of « dataModel » under which is the name of the data model diagram being described. Only one logical data model can be described.
DerivedType Class This is a class that is identified by the stereotype « DerivedType » under which is the name of the data-type. A derived class is one that is derived either from another derived class or a PrimitiveType class.
Enumeration Class This is a class that is identified by the stereotype « Enumeration » under which is the name of the enumeration data-type. The enumeration class consists of the list of tokens that are the permitted values of the assigned attribute.
Enumerated List Class This is a class that is identified by the stereotype « EnumeratedList » under which is the name of the enumerated list data-type. The enumeration list class consists of the list of tokens that are the permitted values of the assigned attribute. A list of tokens is permitted using comma separation.
PrimitiveType Class This is a class that is identified by the stereotype « PrimitiveType » under which is the name of the primitive data-type. A PrimitiveType is one of the many base data-types on which a data model can be built (see Appendix A3.3 for the set of primitive types that are available).
Selection Class This is a class that is identified by the stereotype « Selection » under which is the name of the data-type. The selection means that only one of the listed attributes make occur in an instance. If this is an abstract class then multiple iterations of the instance may occur and the multiplicity of the attribute defines the constraints on the number of times the attribute can occur in the full instance. If the stereotype and associated name of the class are in italics this denotes the class is abstract.
Sequence Class This is a class that is identified by the stereotype « Sequence » under which is the name of the data-type. The sequence means that the listed attributes must occur only in the order of the attributes listed on the class. The associated multiplicity defines the number of times the attribute may occur consecutively in the instance. If the stereotype and associated name of the class are in italics this denotes the class is abstract.
Unordered Class This is a class that is identified by the stereotype « Unordered » under which is the name of the data-type. The unordering means that the listed attributes may occur in any order but the associated multiplicity for the attribute must be followed (when binding to XML this requires the use of Schematron rules to enforce the multiplicity). If the stereotype and associated name of the class are in italics this denotes the class is abstract.
List Class This is a class that is identified by the stereotype « List » under which is the name of the data-type. A list class is one in which the associated instance will consist of a list of objects that conform to the permitted data-types of the list (the superclasses for the list class). The terms in the list are separated by a space.
Union Class This is a class that is identified by the stereotype « Union » under which is the name of the data-type. A union class is one in which the associated instance will consist of a objects that conform to the any of the permitted data-types of the union (the superclasses for the union class).
Characteristic Description Many classes contain a set of characteristics (the set of characteristics are listed under the stereotype « Characteristics »). Each characteristic description consists of the scope, name, data-type and multiplicity (see Appendix A3.3 for a more complete description). Note that when bound to XSD/XML, a characteristic is mapped to an XML attribute.
Attribute Description Many classes contain a set of attributes (the set of attributes are listed under the stereotype « Attributes »). Each attribute description consists of the scope, name, data-type and multiplicity (see Appendix A3.3 for a more complete description). Note when bound to XSD/XML, an attribute is mapped to an XML element.
Aggregation Arrow This is an arrow with a white diamond head to indicate that the child class is an aggregate structure to the parent class i.e. the child class may exist without the context of the parent class. This association allows complex structures to be constructed with common subcomponents.
Composition Arrow This is an arrow with a filled diamond head to indicate that the child class is a composite structure of the parent class i.e. the child class only exists within the context of the parent class. This association allows complex structures to be constructed with common subcomponents.
Generalization Arrow This is an arrow with a white arrow head to indicate the class/superclass relationship. The arrow points in the direction of generality i.e. from the class to the super class.

toc | top

A3.2 Class Descriptions

Table A3.2 provides the key to the descriptions of the data class tables.

Table A3.2 The key to the descriptions of the data class tables.
Category Definition
Class Name The name given to the class being described.
Class Type The nature of the class. This is described as a "Container [...]" or "Abstract Container [...]". The value of "..." being (see Appendix A3.1 for the meaning of these values):
  • "DerivedType"
  • "List"
  • "Selection"
  • "Sequence"
  • "Union"
  • "Unordered"
If the container is also marked as "Mixed" then the children are permitted to include text as well as attributes.
Parents This is the list of classes that contain the class being described as either the type of a child characteristic or attribute. In the case of a Root Class the entry is also labelled as "Root Class".
Derived Classes The set of classes that are derived from this class (there may be none). The entries are linked to the corresponding class descriptions.
Super Classes The set of super classes from which the class being described is derived (there may be none). The entries are linked to the corresponding class descriptions.
Characteristics Lists the set of characteristics for this class. The list of characteristics includes those that are inherited. Each characteristic is linked to the corresponding characteristic description table.
Children Lists the set of attributes for this class (the only other permitted associations are generalizations). The list of children includes those attributes that are inherited. Each child entry is linked to the corresponding attribute description table. The nature of the relationship between the children is defined by the stereotype of the parent class i.e. the class type. If the child is in italics this denotes a reference to an abstract class and that an instance would NOT contain a child of that name but would be replaced by a complex set of children as defined by the associated abstract class.
Link Data Lists the set of attributes for this class that are used to provide links to other data objects in the data model. Many types of link references are available. This row is ONLY shown when the class contains at least one link data definition.
Description Contains descriptions relating to the class and its properties and relationships.

toc | top

A3.3 Attribute and Characteristic Descriptions

Table A3.3 provides the key to the descriptions of the data attributes/characteristics for the data classes.

Table A3.3 The key to the descriptions of the data attribute/characteristic tables.
Category Definition
Attribute Name or Characteristic Name The name given to the attribute or characteristic being described. If the name is in italics this denotes an abstract attribute or characteristic.
Data Type This is the data-type of the attribute or characteristic (if this is in italics it denotes an abstract class). The data-type can take many forms:
  • Class Name - the name of the Class (this is linked to the class definition elsewhere in this document);
  • Primitive Data-types from:-
    • AnyTypeLax - the namespace data-type i.e. defining data from any context (this is used for allowing any form of extension and the form of that extension is dependent on the type of binding);
    • AnyURI - the AnyURI data-type (absolute or relative URI);
    • Base - the base data-type for defining a base URI/URL link reference;
    • Boolean - the boolean data-type (with permitted values of "true" and "false");
    • Date - the date data-type (using the [ISO 8601] format);
    • DateTime - the date/time data-type (using the [ISO 8601] format);
    • Decimal - the decimal data-type (a variable precision number that is either positive or negative);
    • Double - the double data-type (double precision floating point number - 64bit);
    • Duration - the duration data-type (using the [ISO 8601] format)
    • Empty - the associated instance must be empty i.e. no child attributes;
    • Float - the float data-type (single precision floating point number - 32bit);
    • ID - the unique identifier data-type (the scope is constrained to the instance file);
    • IDREF - the reference to a previously defined unique identifier data-type (ID);
    • IDREFS - a list, whitespace separated, of references to a previously defined unique identifier data-type (ID);
    • Int - the int data-type with a numertic vaklue from -2147483648 to 2147483647;
    • Integer - the integer data-type (this is derived from the "decimal" data-type i.e. no decimal places);
    • Language - the language data-type as defined in [RFC 3066];
    • Name - the Name data-type as per the XML 1.0 definition);
    • Namespace - the namespace data-type i.e. defining data from a context other than that as the default for the data model (this is used for importing other data models);
    • NamespaceLax - the namespace data-type i.e. defining data from a context other than that as the default for the data model (this is used for importing other data models but being lax on the validation);
    • NonNegativeInteger - the non-negative integer data-type (this is derived from the "integer" data-type) i.e. an integer that is zero or higher;
    • NCName - the NCName data-type (derived from the Name data-type i.e. non-colonized name);
    • NormalizedString - the normalized string data type (strings with line feeds, carriage returns and tab characters removed);
    • PositiveInteger - the positive integer data-type (this is derived from the "nonNegativeinteger" data-type) i.e. an integer that is one or higher;
    • String - the normalized string data type;
    • Time - the time data-type (using the [ISO 8601] format).
Value Space The range of valid values for this attribute/characteristic (including any default value). If the value space is unspecified, it is not known or is not important. This value space must be defined in terms of the associated data-type.
Scope This is the scope of the attribute/characteristic with permitted values of:
  • Local - denoted by "-" and meaning the attribute/characteristic has significance and access within the context of the parent class only;
  • Global - denoted by "+" and meaning that the attribute/characteristic has global scoping (so must have a unique name) and can be accessed from anywhere.
Multiplicity A property of an attribute/characteristic indicating the number of times it may be used or appear in a given class instance. The values of this property are expressed as a range or shorthand for a range using the notation:
  • "0..1" [optional; restricted]
  • "0..*" [optional; unrestricted]
  • "1" [mandatory; restricted]
  • "1..*" [mandatory; unrestricted]
Description Contains descriptions relating to the attribute/characteristic and its values space.
Link Data Contains the description of the link data definition. A link to the corresponding detailed link data description is supplied. This row is ONLY shown when the attribute/characteristice is a link data definition.

toc | top

A3.4 Enumerated Vocabulary Descriptions

Table A3.4 provides the key to the descriptions of the enumerated vocabulary classes. These are vocabularies that will be contained within the binding form itself. They are contained within a class that has a stereotype of either « Enumeration » or « EnumeratedList ».

Table A3.4 The key to the descriptions of the enumerated vocabulary tables.
Category Definition
Term The vocabulary token itself i.e. the vocabulary entry.
Definition The meaning of the term and how it should be used.

toc | top

A3.5 External Vocabulary Descriptions

Table A3.5 provides the key to the descriptions of the external vocabulary classes. These are vocabularies that will be contained in some independent format e.g. using the IMS VDEX [VDEX, 04].

Table A3.5 The key to the descriptions of the external vocabulary tables.
Category Definition
Term The vocabulary token itself i.e. the vocabulary entry.
Definition The meaning of the term and how it should be used. This consists of the "Caption" and "Description" of the vocabulary term. The caption is used to provide a human readable label for the term.

toc | top

A3.6 Import Class Descriptions

Table A3.6 provides the key to the descriptions of the import classes.

Table A3.6 The key to the descriptions of the imported class tables.
Category Definition
Import Class Name The name of the class.
Parent Classes The list of parent classes, and the associated children, that use this imported class. Each class and attribute name has a link to its corresponding tabular description in the information model.
Description The description of how the class is used within the data model.

A3.7 Link Data Descriptions

Table A3.7 provides the key to the descriptions of the link data definitions.

Table A3.7 The key to the descriptions of the link data tables.
Category Definition
Target Class Name This is the name of the target class i.e. the destination point of the link reference.
Link Type This is the type of link that is being used. The types of link available are:
  • "SourcedId" - this link is through interoperability identifier for the target object i.e. the object can be obtained by using this sourceId with the corresponding service call;
  • "IntraParentClassId" - this link is between two attributes/characteristics that are contained within the same parent class;
  • "CPResourceId" - this link is to a resource contained within an IMS Content Package/IMS Common Cartridge/Thin Common Cartridge manifest. The reference value is that assigned to the "identifier" of the resource in the package/cartridge manifest;
  • "CASEItemId" - this link is to the learning objective description (contained within an IMS CASE Item definition).
Link Sources This is the set of classes that contain attributes/characteristics which use the link data defined by this entry. A link to the attribute/characteristic is provided.
Source Attribute This is the attribute/characteristic in the source object that contains the identifier of the target object (a characteristic name MUST start with an "@"). This will only be supplied if the pointer is contained within a substructure within the source object. If there is no source the statement "Not Applicable" will be displayed.
Target Attribute This is the attribute/characteristic in the target class which is the container for the identifier of the object being identified (a characteristic name MUST start with an "@"). It is the value for this identifier which MUST be supplied in the source object. For "CPResourceId" link types the fixed value of "@identifier" will be given. If there is no target the statement "Not Applicable" will be displayed.
Parent Class Name This is the name of the class that contains both the source and target attributes/characteristics. This value will only be supplied for the "IntraParentClassId" link types. If there is no parent class name the statement "Not Applicable" will be displayed.
Description The description of how the link data is used within the data model.

toc | top

Appendix B Service Status Codes

This Section is NORMATIVE

When a behavior-based IMS service model is developed each operation is required to return status information. This status information provides contextual information about the completed success or otherwise of the operation. There are two types of status information that are available to the end-systems:

B1 Definition of the Status Codes

The status information for the business transactions is carried in a single status information object that contains the following sub-structures:

The interpretation of the "CodeMajor/Severity" behavior matrix is summarized in Table B1.1.

Table B1.1 Interpretation of the "CodeMajor/Severity" behavior matrix.
Severity CodeMajor
"Success" "Processing" "Failure" "Unsupported"
"Status" The transaction request has been completed successfully. The transaction request is being processed at the destination i.e. the request has been received and acknowledged. This combination is used in asynchronous services. The transaction request has failed. The detailed reason will be reported in the accompanying "codeMinor" fields. The destination service handler does not support the requested operation. This is the required default response for an unsupported operation by an implementation.
"Warning" Some of the request has been completed successfully e.g. partial data storage, etc. The request has been transmitted but acknowledgement of receipt at the destination has not been received. This combination is used in asynchronous services. Not permitted. Not permitted.
"Error" Not permitted. An error has been detected in the immediate transmission communications handler i.e. the message has not left the local end-system. There has been a failure in the end-to-end system communications mechanism and so the request has not been delivered. The destination service handler does not recognise the requested operation i.e. it is an unknown service extension.

B1.1 Definition of the "CodeMajor" Values

The set of codes used for the "codeMajor" status code field are defined in Table B1.2.

Table B1.2 Definition of the "CodeMajor" status code values.
Status Code Description
success Denotes that the request has been successfully completed. If the associated 'severity' value is 'warning' then the request has been partially successful i.e. best effort by the service provider. Other parts of the status information may provide more insight into a partial success response.
processing Denotes that the request is being processed at the destination or there has been a local transmission failure. This value is used in asynchronous services.
failure Denotes that the transaction request has failed. The detailed reason will be reported in the accompanying 'codeMinor' fields.
unsupported Denotes that the service provider does not support the requested operation. This is the required default response for an unsupported operation by an implementation.

B1.2 Definition of the "Severity" Values

The set of codes used for the "severity" status code field are defined in Table B1.3.

Table B1.3 Definition of the "Severity" status code values.
Status Code Description
status The request has been completed and a response was received from the Service Provider.
warning The request has only been partially completed. For an asynchronous service a further response should be expected.
wrror A significant error has occurred in processing the request and so the request was not completed (the Service Provider may not even have received the request).

B1.3 Definition of the "CodeMinor" Values

The set of codes used for the "codeMinor" status code field are defined in Table B1.4.

Table B1.4 Definition of the "CodeMinor" status code field values.
Status Code Description
createsuccess The request has been fully and successfully implemented by the Service Provider. For a REST binding this will have an HTTP code of '201' for a successful 'PUT' request.
deletesuccess The request has been fully and successfully implemented by the Service Provider. For a REST binding this will have an HTTP code of '204' for a successful 'DELETE' request.
forbidden This is used to indicate that the server can be reached and process the request but refuses to take any further action. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '403'.
internalservererror This should be used only if there is catastrophic error and there is not a more appropriate code. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '500'.
invaliddata This error condition may occur if a JSON request/response body contains well-formed (i.e. syntactically correct), but semantically erroneous, JSON instructions. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and a HTTP code of '422'.
invalidfilterfield An invalid filter field was supplied and so the filtering was not possible. No data has been reurned. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '400'.
invalidselectionfield An invalid selection field was supplied and data filtering on the selection criteria was not possible. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '400'.
invalidsortfield An invalid sort field was supplied and sorting was not possible. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '400'.
readsuccess The request has been fully and successfully implemented by the Service Provider. For a REST binding this will have an HTTP code of '200' for a successful 'GET' request.
replacesuccess The request has been fully and successfully implemented by the Service Provider. For a REST binding this will have an HTTP code of '201' for a successful 'PUT' request.
serverbusy The server is receiving too many requests. Retry at a later time. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '429'.
unauthorisedrequest The request was not correctly authorised. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '401'.
unknownobject The supplied identifier is unknown in the Service Provider and so the object could not be changed. This would be accompanied by the 'codeMajor/severity' values of 'failure/error' and for a REST binding a HTTP code of '404'.
...tbc... ...tbc...

toc | top

About this Document

Title: IMS Computer Adaptive Testing (CAT) Service v1.0
Editors: Colin Smythe, IMS Global (UK)
Mark McKell, IMS Global (USA)

Co-chairs: Jason Carlson, ACT (USA)
Mark Molenaar, Independent Expert (The Netherlands)

Version: 1.0
Version Date: 2021-02-01
Status: IMS Public Candidate Final
Summary: The IMS Computer Adaptive Testing (CAT) Service defines how to implement adaptive testing using Question and Test Interoperability (QTI). This approach allows the use of protected algorithms (black box) with different sets of data such as psychometric data, constraints, stopping criteria, etc. This document contains the information model for the CAT service.

Revision Information: First release of this specification.
Purpose: For adoption and implementation by the CAT Task Force.
Document Location: https://www.imsglobal.org/spec/cat/latest

toc | top

List of Contributors

The following individuals contributed to the development of this document:

Arjan Aarnink Cito (The Netherlands)
Michelle Barrett Pacific Metrics (USA)
Jason Carlson ACT (USA)
Paul Grudnitski Pearson (USA)
Mark Molenaar Independent Expert (The Netherlands)
Wes Munsil ACT (USA)
Padraig O'hiceadha Houghton Miflin Harcourt (Ireland)
Ed Salvatierra ACT (USA)
Amir Sehic Pacific Metrics (USA)
Colin Smythe IMS Global (UK)
Tjeerd Hans Terpstra Cito (The Netherlands)

toc | top

Revision History

Version No. Release Date Comments
Public Candidate Final 1.0 9th November, 2020 The Candidate Final document. This is a declaration that the specification is ready for adoption by Members of the Task Force. The aim is to obtain a certain number of implementations that pass conformance as preparation for Final Release.

toc | top

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

IMS Global 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.

IMS Global would appreciate receiving your comments and suggestions.

Please contact IMS Global through our website at http://www.imsglobal.org.

Please refer to Document Name: IMS Computer Adaptive Testing (CAT) Service v1.0

Date: 2021-02-01

toc | top