Caliper Analytics 1.2 Specification

Caliper Analytics® Specification

IMS Final Release
Version 1.2
IMS Final Release
Date Issued: 27 March 2020
Status: This document is made available for adoption by the public community at large.
This version: https://www.imsglobal.org/spec/caliper/v1p2/
Latest version: https://www.imsglobal.org/spec/caliper/latest/

IPR and Distribution Notice

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

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.

The following participating organizations have made explicit license commitments to this specification:

Org name Date election made Necessary claims Type
D2L Corporation March 28, 2020 No RF RAND (Required Elements)
i-Scream EDU March 29, 2020 No RF RAND (Required Elements)

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: http://www.imsglobal.org/forums/ims-glc-public-forums-and-resources.

© 2020 IMS Global Learning Consortium, Inc. All Rights Reserved.

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

Abstract

IMS Caliper Analytics® is a technical specification that describes a structured set of vocabulary that assists institutions in collecting learning and usage data from digital resources and learning tools. This data can be used to present information to students, instructors, advisers, and administrators in order to drive effective decision making and promote learner success.

1. Overview

1.1 Design Goals and Rationale

This section is non-normative.

Delivering teaching and learning at scale is encouraging adoption of “big data” practices. Cloud computing and machine learning are changing both the learning technology landscape and the business of education. The definition of what constitutes learning is also evolving beyond the formal classroom experience to include informal, social and experiential modes of acquiring knowledge and skills. Opportunities exist to leverage new tools, tap new data sources, ask new questions and pursue new insights.

Consider the enterprising instructor seeking to augment if not transform the classroom environment for her students. She utilizes a video platform to create and post video assignments. Class discussions and Q&A sessions are conducted online using another service. She administers her course using a learning management system. Three services, three vendors, three potential sources of learning data.

Analyzing the viewing behavior of her students in relation to the questions they pose about her course content is vital to understanding student comprehension and performance. Yet exploring such relationships is all too often a challenging exercise. Likely there are significant barriers to overcome. Is the data required for analysis actually collected? If it exists, who owns it? If ownership is not an issue what about privacy concerns? If privacy protocols are in place is the data easy to retrieve? If retrievable how difficult is it to combine with data sourced from other platforms?

The Caliper Analytics® specification seeks to address a number of the issues outlined above by providing a structured approach to describing, collecting and exchanging learning activity data. Establishing a common vocabulary for describing learning interactions is a central objective. Promoting data interoperability, data sharing and data-informed decision making are also important goals.

Caliper also defines an application programming interface (the Sensor API™) for marshalling and transmitting event data from instrumented applications to target endpoints for storage, analysis and use. Industry-wide adoption of Caliper offers the tantalizing prospect of a more unified learning data environment in which to build new and innovative services designed to measure, infer, predict, report and visualize.

1.2 Terminology

Actor: An actor is an Agent capable of initiating or performing an action on a thing or as part of a process. A Caliper Event includes an actor attribute for representing the Agent.

Anonymous, Anonymization: Applying a process to transform the properties of an Entity to obscure its identity such that the process cannot be reversed nor can the Entity be afterwards distinguished from other such-treated entities.

Blank Node Identifier: a string that begins with "_:" that is used to identify an Entity for which an IRI is not provided. An Entity provisioned with a blank node identifier is neither dereferenceable nor has meaning outside the scope of the JSON-LD document within which it resides.

Action: something performed or done to accomplish a purpose. Caliper Event subtypes define a controlled vocabulary of one or more actions relevant to the activity domain. A Caliper Event includes an action attribute for expressing the associated action.

Context: a special JSON-LD keyword that maps the terms employed in a JSON document to IRIs that link to one or more published vocabularies. Inclusion of a JSON-LD context provides an economical way of communicating document semantics to services interested in consuming Caliper event data.

Depersonalize, Depersonalized: applying a process to transform the properties of an Entity in order to obscure its identity such that the process might be reversed thus preserving the ability to afterwards distinguish from other such-treated entities.

Describe: a Caliper message containing an Entity that is not directly associated with an Event. Entities can be sent asynchronously using Describe messages in order to reduce verbosity (e.g. sending a Person entity as a Describe avoids having to repeat the Person object in each Event that includes it).

Endpoint: a receiver or consumer of Caliper data that is bound to a specific network protocol.

Entity: an object or a thing that participates in learning-related activity. Caliper Entity types provide coarsed-grained representations of applications, people, groups and resources that constitute the "stuff" of a Caliper Event. Each Entity corresponds to a node in a directed graph.

Envelope: a data structure that serves as a transport container of Caliper Event and Entity data. The envelope also includes metadata about the emitting Sensor and the data payload.

Event: describes a relationship established between an Agent (the actor) and an Entity (the object) formed as a result of a purposeful action undertaken by the actor in connection to the object at a particular moment in time.

JSON-LD: a specification providing a JSON-based data serialization and messaging format, processing algorithms and API for working with Linked Data. The messages described in this specification are intended to be used in programming environments that support [JSON-LD]

IRI: The Internationalized Resource Identifier (IRI) extends the Uniform Resource Identifier (URI) scheme by using characters drawn from the Universal character set rather than US-ASCII per [RFC3987]. Linked Data rely on IRIs to refer to most nodes and properties.

ISO 8601: Caliper data and time values are formatted per ISO 8601 with the addition of millisecond precision. The format is yyyy-MM-ddTHH:mm:ss.SSSZ where 'T' separates the date from the time while 'Z' indicates that the time is set to UTC.

Linked Data: A set of design principles first articulated by Tim Berners-Lee for discovering, connecting, and sharing structured data over the Web. The principles can be summarized as follows: use IRIs /URIs as names for things; use HTTP IRIs /URIs so that information about things (e.g., people, objects, concepts) can be retrieved using a standard format; link out to other relevant things by way of their IRIs/URIs in order to promote discovery of new relationships between things.

LIS: Learning Information Services® (LIS®) [LIS-20] is an IMS standard that defines how systems manage the exchange of information that describes people, groups, memberships, courses and outcomes.

LTI: Learning Tools Interoperability® (LTI®) [LTI-13] is an IMS standard for integration of rich learning applications within educational environments.

Profile: models a learning activity or a supporting activity that helps facilitate learning. Each profile provides a domain-specific set of terms and concepts that application designers and developers can draw upon to describe common user interactions in a consistent manner using a shared vocabulary.

Object: an Entity that an Agent interacts with that becomes the focus, target or object of an interaction. A Caliper Event includes an object attribute for representing the resource.

Profile: a segment of the information model that describes a learning activity or a supporting activity that helps facilitate learning. A Caliper profile comprises related Caliper events, entities and actions that together describe the activity. A Caliper profile also serves as a unit of certification.

Sensor: Software assets deployed within a learning application that implement the Sensor API™ for marshalling and transmitting Caliper data to a target endpoint.

Sensor API™: The standard set of methods and supported parameters that a Sensor implements according to this specification in order to transmit Caliper data in an interoperable way.

Term: a word or short expression that expands to an IRI when mapped to a JSON-LD context document. Terms are employed by Caliper as type property string values in order to distinguish between various JSON representations of entities and events defined by the Caliper information model.

Type Coercion: the process of coercing values to a particular data type.

URI: the Uniform Resource Identifier (URI) utilizes the US-ASCII character set to identify a resource. Per [RFC2396] a URI "can be further classified as a locator, a name or both." Both the Uniform Resource Locator (URL) and the Uniform Resource Name (URN) are considered subspaces of the more general URI space.

URL: A Uniform Resource Locator (URL) is a type of URI that provides a reference to resource that specifies both its location and a means of retrieving a representation of it. An HTTP URI is a URL and using HTTP IRIs /URIs to identify things is fundamental to Linked Data.

URN: A Uniform Resource Name (URN) is a type of URI that provides a persistent identifier for a resource that is bound to a defined namespace. Unlike a URL a URN is location-independent and provides no means of accessing a representation of the named resource.

UUID: a 128-bit identifier that does not require a registration authority to assure uniqueness. However, absolute uniqueness is not guaranteed although the collision probability is considered extremely low. Caliper recommends use of randomly or pseudo-randomly generated version 4 UUIDs. Each Caliper Event MUST be assigned a UUID that is expressed as a URN using the form "urn:uuid:<UUID>" as described in [RFC4122].

1.3 Conformance Statements

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

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

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

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

1.4 Document Set

1.4.1 Normative Documents

JSON-LD Context
The JSON-LD Context document for this specification defines all relevant term-IRI mappings [CALIPER-12-CONTEXT].
Errata
The errata [CALIPER-12-ERRATA] details any errata registered for this version of this specification since its publication.
Conformance and Certification guide
The conformance and certification guide that accompanies the Caliper 1.2 specification defines the conformance requirements for Caliper Sensors [CALIPER-12-CERT].

1.4.2 Informative Documents

This section is non-normative.

Caliper 1.2 Implementation Guide
The implementation guide that accompanies the Caliper 1.2 specification provides advice and guidance for implementors [CALIPER-12-IMPL].

2. The Information Model

The Caliper information model defines a set of concepts, rules, and relationships for describing learning activities. Each activity domain modeled is described in a Caliper Profile. Each profile is composed of one or more Event types. Each Event defines a controlled vocabulary of actions undertaken by learners, instructors, and others, that are scoped to the event. Various Entity types representing people, groups, and resources are provided in order to better describe both the relationships established between participating entities and the contextual elements relevant to the interaction.

2.1 Event

Caliper Event

For a complete list of Events, see Appendix A

A Caliper Event is a generic type that describes the relationship established between an actor and an object, formed as a result of a purposeful action undertaken by the actor at a particular moment in time and within a given learning context. The Event properties actor, action and object form a compact data structure that resembles an RDF Triple linking a subject to an object via a predicate. A learner starting an assessment, annotating a reading, pausing a video, or posting a message to a forum, are examples of learning activities that Caliper models as events.

Caliper defines a number of Event subtypes, each scoped to a particular activity domain and distinguishable by a type attribute. The type value is a string that MUST match the Term specified for the Event by the Caliper information model (e.g. "MessageEvent"). Each Event instance is assigned a 128-bit long universally unique identifier (UUID) formatted as a URN per [RFC4122], which describes a URN namespace for UUIDs.

The information model also seeks to describe the learning environment or context in which a learning activity is situated. Group affiliation, membership roles and status, recent navigation history, supporting technology and session information can all be optionally represented. An Entity generated as a result of the interaction between an action and an object can also be described; annotating a piece of digital content and producing an Annotation is one such example. An extensions property is also provided so that implementers can add custom attributes not described by the model.

IRI
https://purl.imsglobal.org/caliper/Event
Term
Event
Subtypes
AnnotationEvent, AssignableEvent, AssessmentEvent, AssessmentItemEvent, FeedbackEvent, ForumEvent, GradeEvent, MediaEvent, MessageEvent, NavigationEvent, QuestionnaireEvent, QuestionnaireItemEvent, ResourceManagementEvent, SearchEvent, SessionEvent, SurveyEvent, SurveyInvitationEvent, ThreadEvent, ToolLaunchEvent, ToolUseEvent, ViewEvent
Properties
The base set of Event properties or attributes is listed below. Considered as a data structure an Event constitutes an unordered set of key:value pairs that is semi-structured by design. Optional attributes can be ignored when describing an Event. An Entity participating in an Event can be represented as an object or as a string that corresponds to the IRI defined for the Entity. Each property MUST be referenced only once. The id, type, action, action, object and eventTime properties are required; all other properties are optional. Custom attributes not described by the model MAY be included but MUST be added to the extensions property as a map of key:value pairs. Properties with a value of null or empty SHOULD be excluded prior to serialization.

Although each Event's profile property is considered optional (in order to ensure backwards compatibility) Sensors SHOULD specify for each Event created the relevant profile string value in order to inform consumers which profile governs the construction and interpretation of the Event. The profile terms are listed in the Profile Terms section.

Property Type Description Disposition
id UUID The emitting application MUST provision the Event with a UUID. A version 4 UUID SHOULD be generated. The UUID MUST be expressed as a URN using the form "urn:uuid:<UUID>" per [RFC4122]. Required
type Term A string value corresponding to the Term defined for the Event in the external IMS Caliper JSON-LD context document. For a generic Event set the type to the string value Event. If a subtype of Entity is created, set the type to the Term corresponding to the subtype utilized, e.g., NavigationEvent. Required
profile Profile Term A string value corresponding to the Profile Term value defined for the Profile that governs the rules of interpretation for this Event. The range of Profile values is limited to the set of profiles described in this specification and any profile extension specifications extending this specification. Only one Profile Term value may be specified per Event. For a generic Event set the profile property value to the string term GeneralProfile. Optional
actor Agent | IRI The Agent who initiated the Event, typically though not always a Person. The action value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The action range is limited to the set of actions described in this specification or associated profiles and may be further constrained by the chosen Event type. Only one action Term may be specified per Event. Required
object Entity | IRI The Entity that comprises the object of the interaction. The object value MUST be expressed either as an object or as a string corresponding to the object's IRI. Required
eventTime DateTime An ISO 8601 date and time value expressed with millisecond precision that indicates when the Event occurred. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Required
edApp SoftwareApplication | IRI A SoftwareApplication that constitutes the application context. The edApp value MUST be expressed either as an object or as a string corresponding to the edApp's IRI. Optional
generated Entity | IRI An Entity created or generated as a result of the interaction. The generated value MUST be expressed either as an object or as a string corresponding to the generated entity's IRI. Optional
target Entity | IRI An Entity that represents a particular segment or location within the object. The target value MUST be expressed either as an object or as a string corresponding to the target entity's IRI. Optional
referrer Entity | IRI An Entity that represents the referring context. A SoftwareApplication or DigitalResource will typically constitute the referring context. The referrer value MUST be expressed either as an object or as a string corresponding to the referrer's IRI. Optional
group Organization | IRI An Organization that represents the group context. The group value MUST be expressed either as an object or as a string corresponding to the group's IRI. Optional
membership Membership | IRI The relationship between the action and the group in terms of roles assigned and current status. The membership value MUST be expressed either as an object or as a string corresponding to the membership entity's IRI. Optional
session Session | IRI The current user Session. The session value MUST be expressed either as an object or as a string corresponding to the session's IRI. Optional
federatedSession LtiSession | IRI If the Event occurs within the context of an LTI platform launch, the tool's LtiSession MAY be referenced. The federatedSession value MUST be expressed either as an object or as a string corresponding to the federated session's IRI. Optional
extensions Object A map of additional attributes not defined by the model MAY be specified for a more concise representation of the Event. Optional

2.2 Entity

Caliper Entity For a complete list of Events, see Appendix B

A Caliper Entity is a generic type that represents objects that participate in learning-related activities. A variety of Entity subtypes have been defined in order to better describe people, groups, organizations, digital content, courses, software applications, and other objects that constitute the "stuff" of a Caliper Event. Each Entity is provisioned with a modest set of properties or attributes that support description and discovery.

Caliper permits Entity values to be expressed either as an object or as a string corresponding to the resource's IRI. If the Entity is expressed as an object, both the id and type properties MUST be specified. The type value is a string that MUST match the term specified for the Entity by the Caliper information model (e.g. "Person"). The id value is a string that MUST be expressed as an IRI. The IRI MUST be valid and unique. The IRI SHOULD also be dereferenceable, i.e., capable of returning a representation of the resource assuming authorization to access the resource is granted. A URI employing the URN scheme MAY be provided although care should be taken when employing a location-independent identifier since it precludes the possibility of utilizing it to retrieve machine-readable data over HTTP.

Other Entity properties are descriptive in nature, or link the Entity to other related entities. Certain Entity subtypes like Annotation, DigitalResource, Message or Organization are provisioned with additional properties that allow for a more complete representation of the object. An extensions property is also defined so that implementers can add custom attributes not described by the model. Optional properties can be ignored when describing an Entity.

IRI
https://purl.imsglobal.org/caliper/Entity
Term
Entity
Subtypes
Agent, AggregateMeasure, AggregateMeasureCollection, Annotation, Assessment, AssessmentItem, AssignableDigitalResource, Attempt, AudioObject, BookmarkAnnotation, Chapter, Collection, Comment, CourseOffering, CourseSection, DateTimeQuestion, DateTimeResponse, DigitalResource, DigitalResourceCollection, Document, FillinBlankResponse, Forum, Frame, Group, HighlightAnnotation, ImageObject, LearningObjective, LikertScale, Link, LtiLink, LtiSession, MediaLocation, MediaObject, Membership, Message, MultipleChoiceResponse, MultipleResponseResponse, MultiselectQuestion, MultiSelectResponse, MultiselectScale, NumericScale, OpenEndedQuestion, OpenEndedResponse, Organization, Page, Person, Query, Question, Questionnaire, QuestionnaireItem, Rating, RatingScaleQuestion, RatingScaleResponse, Response, Result, Scale, Score, SearchResponse, SelectTextResponse, Session, SharedAnnotation, SoftwareApplication Survey, SurveyInvitation, TagAnnotation, Thread, TrueFalseResponse, VideoObject, WebPage
Properties
Like an Event, an Entity is considered semi-structured data consisting of an unordered set of key:value pairs. The base set of Entity properties is listed below. Each property MUST be referenced only once. When representing an Entity as an object the id and type properties are required; all other properties are optional and need not be referenced when describing an Entity. Custom attributes not described by the model MAY be included but MUST be added to the extensions property as a map of key:value pairs. Properties with a value of *null* or empty SHOULD be excluded prior to serialization.
Property Type Description Disposition
id IRI A valid IRI MUST be specified. The IRI MUST be unique and persistent. The IRI SHOULD also be dereferenceable, i.e., capable of returning a representation of the resource. A URI employing the URN scheme MAY be provided in cases where a Linked Data friendly HTTP URI is either unavailable or inappropriate. Required
type Term A string value corresponding to the Term defined for the Entity in the external IMS Caliper JSON-LD context document. For a generic Entity set the type value to the term Entity. If a subtype of Entity is created, set the type to the Term corresponding to the subtype utilized, e.g., Person. Required
name string A string value comprising a word or phrase by which the Entity is known. Optional
description string A string value comprising a brief, written representation of the Entity. Optional
dateCreated DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the Entity was created. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
dateModified DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the Entity was last changed or updated. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
otherIdentifiers Array An ordered collection of SystemIdentifier entities that represent other identifiers for this Entity that are known to the Sensor. Each array item MUST be expressed either as an object or as a string corresponding to the item's IRI. Optional
extensions Object A map of additional attributes not defined by the model MAY be specified for a more concise representation of the Entity. Optional

3. Profiles

Caliper Profiles

The Caliper information model defines a number of profiles, each of which models a learning activity or a supporting activity that helps facilitate learning. A profile's raison d'etre is to encourage vocabulary standardization and re-use among application providers delivering complementary, albeit competing capabilities that collect learning activity data. Each profile provides a domain-specific set of terms and concepts that application designers and developers can draw upon to describe common user interactions in a consistent manner using a shared vocabulary. Annotating a reading, playing a video, taking a test, or grading an assignment submission represent a few examples of the many activities or events that Caliper's profiles attempt to describe.

Think of each profile as a stand-alone, logical container, or collection of one or more Caliper events that together help describe a set of inter-related activities. Each Event type included in a profile place constraints on the various entities and actions that can be utilized to describe a learning activity. Vocabulary restrictions are outlined in each profile description under the following headings:

  • supported events
  • supported actors
  • supported actions
  • supported objects
  • supported target entities
  • supported generated entities
  • other requirements

For example, the Forum Profile models a set of activities associated with online discussions involving instructors and learners. The profile currently includes a ForumEvent, MessageEvent, NavigationEvent, ThreadEvent and ViewEvent. An action sequence mediated by the Forum Profile might involve a learner navigating to a forum, subscribing to it, viewing a thread, posting a message in reply to an earlier post and then marking the message as read.

Extending Caliper's information model involves designing a new profile or enhancing an existing one. Implementers are free to implement only those Caliper profiles as are necessary to model a learning domain. A video platform provider may decide that only the Assignable Profile, Media Profile and Session Profile are relevant to its needs, while developers instrumenting an assessment engine would most likely implement the Assessment Profile, Grading Profile and Session Profile.

Caliper 1.2 includes the following profiles which are summarized individually below:

3.1 Annotation Profile

Annotation Profile
IRI
http://purl.imsglobal.org/caliper/AnnotationProfile
Term
AnnotationProfile

The Caliper Annotation Profile models activities related to the annotation of a DigitalResource. Creating a bookmark, highlighting selected text, sharing a resource, tagging a document, and viewing an annotation are modeled. The generated Annotation is also described and is subtyped for greater type specificity.

The Annotation Profile supports the following user stories:

  • As an instructor,
    • I would like to know which students are generating annotations.
    • I would like to know what content is most often annotated.
    • I would like to know what types of annotations are being created.
    • I would like to know which segments of text are being highlighted.
    • I would like to know what tags or notes are being used.
  • As a student,
    • I would like to know which of my content is most often annotated.
    • I would like to know what content my peers have annotated or highlighted.
    • I would like to see what tags, notes or highlights I have added.
  • As a researcher,
    • I would like to determine if there is a correlation between student annotation behavior and learning objective completion.

The Annotation Profile defines an AnnotationEvent for describing the annotation of resources. Four actions are described:

Event actor action object generated
AnnotationEvent Person Bookmarked DigitalResource BookmarkAnnotation
AnnotationEvent Person Highlighted DigitalResource HighlightAnnotation
AnnotationEvent Person Shared DigitalResource SharedAnnotation
AnnotationEvent Person Tagged DigitalResource TagAnnotation
When constructing an AnnotationEvent governed by the Annotation Profile the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • In particular, a generated Annotation SHOULD be expressed. Pair the action with the appropriate Annotation subtype (e.g., Bookmarked with BookmarkAnnotation). If the generated Annotation is expressed as an object both the annotator and annotated entities SHOULD be referenced.
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.2 Assessment Profile

Assessment Profile
IRI
http://purl.imsglobal.org/caliper/AssessmentProfile
Term
AssessmentProfile

The Caliper Assessment Profile models assessment-related activities including interactions with individual assessment items. Caliper provides Assessment and AssessmentItem entities for describing the object of these activities, as well as a learner's Attempt for recording a count of the number of times an assigned resource has been attempted. Five Response types are also provided for capturing individual item responses.

The Assessment Profile supports the following user stories:

  • As an instructor,
    • I want to know how much time is required to complete and submit an assessment.
    • I want to know how much time is spent answering individual assessment items.
    • I want to know which assessment items are completed or skipped.
    • I want to know when learners start their assessments, if test-taking times are flexible.
  • As a student,
    • I would like to know how much time I spent completing and submitting an assessment.
    • I would like to know how much time I spent answering individual assessment items.
    • I would like to know which assessment items I skipped.
    • I would like to know the average time it has been taking for other students to complete this assessment.
  • As a researcher,
    • I would like to relate assessment timing and results (correct or incorrect, attempts) with student characteristics such as demographics, navigation or score on a pre-test.

The Assessment Profile defines an AssessmentEvent, AssessmentItemEvent, NavigationEvent, and ViewEvent for describing learner interactions with tests and questions. Ten actions are described:

Event actor action object generated
AssessmentEvent Person Started Assessment Attempt
AssessmentEvent Person Paused Assessment Attempt
AssessmentEvent Person Resumed Assessment Attempt
AssessmentEvent Person Restarted Assessment Attempt
AssessmentEvent Person Submitted Assessment Attempt
AssessmentItemEvent Person Started AssessmentItem Attempt
AssessmentItemEvent Person Skipped AssessmentItem Attempt
AssessmentItemEvent Person Completed AssessmentItem Response
NavigationEvent Person NavigatedTo Assessment | AssessmentItem  
ViewEvent Person Viewed Assessment | AssessmentItem  
When constructing an AssessmentEvent, AssessmentItemEvent, NavigationEvent, and ViewEvent governed by the Assessment Profile the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • For AssessmentEvent actions, the generated Attempt SHOULD be specified. If an Attempt is expressed as an object the Attempt SHOULD define, at a minimum, the assignee, the assignable, and the count. Set the Attempt count values as follows (per action):
    • Started: set the count value to 1 for a first attempt and increment by 1 for each subsequent attempt.
    • Paused, Resumed, Reset: do not change the current count value.
    • Restarted: increment the count value by 1.
  • For each AssessmentItemEvent described, referencing a generated Attempt or Response depends on the action value specified. Set the Attempt count values as follows (per action):
    • Started: set the count value to 1 for a first attempt and increment by 1 for each subsequent attempt.
    • Skipped: do not increment the Attempt count by 1. The current count value MUST remain unchanged.
    • Completed: if desired, specify the learner's Response and reference the associated Attempt via the attempt property. The current count value MUST remain unchanged.
  • Parent-child relationships that exist between AssessmentItem and Assessment attempts MAY be represented by use of the Attempt isPartOf property.
  • As a learner navigates from one AssessmentItem to another AssessmentItem, the previous AssessmentItem MAY be specified as the referrer.
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.3 Assignable Profile

Assignable Profile
IRI
http://purl.imsglobal.org/caliper/AssignableProfile
Term
AssignableProfile

The Assignable Profile models activities associated with the assignment of digital content to a learner for completion according to specific criteria. Caliper provides a generic AssignableDigitalResource for describing the object of these activities as well as a learner's Attempt for recording a count of the number of times an assigned resource has been attempted.

The Assignable Profile supports the following user stories:

  • As an instructor,
    • I want to know who is assigned what material.
    • I want to know how long it takes for students to complete something that has been assigned.
    • I want to know what piece of assigned material presents the biggest challenge (i.e., involves the most retake attempts).
  • As a student,
    • I would like to know what assignments are due over the course of this semester.
  • As a researcher,
    • I would like to group courses with a similar number and timing of assignments, to understand whether there is correlation between the rhythm of assignments and student outcomes.

The Assignable Profile defines an AssignableEvent, NavigationEvent, and ViewEvent for describing learner interactions with assignments. Eight actions are described:

Event actor action object generated
AssignableEvent Person Activated AssignableDigitalResource  
AssignableEvent Person Deactivated AssignableDigitalResource  
AssignableEvent Person Started AssignableDigitalResource Attempt
AssignableEvent Person Completed AssignableDigitalResource Attempt
AssignableEvent Person Submitted AssignableDigitalResource Attempt
AssignableEvent Person Reviewed AssignableDigitalResource Attempt
NavigationEvent Person NavigatedTo AssignableDigitalResource  
ViewEvent Person Viewed AssignableDigitalResource  
When constructing an AssignableEvent, NavigationEvent, and ViewEvent the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • For each AssignableEvent described, the generated Attempt SHOULD be specified for the following AssignableEvent actions:
  • If the Attempt is expressed as an object the Attempt SHOULD reference, at a minimum, the assignee, the assignable, and the count. Set the count value to 1 for a first attempt and increment by 1 for each subsequent attempt.
  • Parent-child relationships that exist between AssignableDigitalResource attempts MAY be represented by use of the Attempt isPartOf property.
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.4 Feedback Profile

Feedback Profile
IRI
http://purl.imsglobal.org/caliper/FeedbackProfile
Term
FeedbackProfile

The Caliper Feedback Profile models a Person providing informal feedback on a Entity, typically a piece of student work. The profile provides a FeedbackEvent along with Commented and Ranked actions for describing feedback activities. The Rating entity is used to capture quantitative feedback while the Comment entity is used to capture qualitative feedback.

The Feedback Profile supports the following user stories:

  • As an instructor,
    • I would like an overview of the peer feedback my students have given to each other.
    • I would like to see the rating my course material has received from my students.
  • As a student,
    • I would like to see all the feedback my work has received.
    • I would like to track the perceived quality of my group work by my peers over time.
  • As a researcher,
    • I would like to compare the level of engagement different feedback question generate on similar content.
    • I would like to determine if there is a correlation between the quality of peer feedback on course work and learning outcomes.

The Feedback Profile defines a FeedbackEvent for ranking resources and recording comments. Two actions are described:

Event actor action object generated
FeedbackEvent Person Commented Entity Comment
FeedbackEvent Person Ranked Entity Rating
When constructing a FeedbackEvent governed by the Feedback Profile the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • For a Commented action a generated Comment SHOULD be provided.
  • For a Ranked action a generated Rating SHOULD be provided.
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.5 Forum Profile

Forum Profile
IRI
http://purl.imsglobal.org/caliper/ForumProfile
Term
ForumProfile

The Caliper Forum Profile models learners and others participating in online discussion forums. Forums typically encompass one or more threads or topics to which members can subscribe, post messages and reply to other messages if a threaded discussion is permitted. Caliper provides Forum, Thread, and Message entities for representing the object of these activities.

Using the Forum Profile to track discussion behaviors allows instructors to better understand how students are engaged within discussion forums.

The Forum Profile supports the following user stories:

  • As an instructor,
    • I want to know who is posting most often.
    • I want to know which posts in my course generate the most replies.
    • I want to compare graded vs. non-graded discussions.
  • As a student,
    • I want to know which of my posts generated the most replies.
    • I want to know which of my replies generated most threads/replies.
  • As a researcher,
    • I want to correlate forum participation with overall course outcome or grades.

The Forum Profile defines a ForumEvent, MessageEvent, NavigationEvent, ThreadEvent, and ViewEvent for describing Forum, Thread, and Message interactions. Nine actions are described:

Event actor action object
ForumEvent Person Subscribed Forum
ForumEvent Person Unsubscribed Forum
ThreadEvent Person MarkedAsRead Thread
ThreadEvent Person MarkedAsUnRead Thread
MessageEvent Person MarkedAsRead Message
MessageEvent Person MarkedAsUnRead Message
MessageEvent Person Posted Message
NavigationEvent Person NavigatedTo Forum | Message | Thread
ViewEvent Person Viewed Forum | Message | Thread
When constructing a ForumEvent, MessageEvent, NavigationEvent, ThreadEvent, or ViewEvent governed by the Forum Profile the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • If a Message is expressed as an object and is in the form of a reply, the previous Message that prompted the reply SHOULD be referenced via the Message replyTo property.
  • Parent-child relationships that exist between a Message, Thread and a Forum MAY be represented by use of the isPartOf property.
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.6 Grading Profile

Grading Profile
IRI
http://purl.imsglobal.org/caliper/GradingProfile
Term
GradingProfile

The Caliper Grading Profile models grading activities performed by an Agent, typically a Person or a SoftwareApplication. Grading a learner's Attempt of an AssignableDigitalResource and generating a Score is modeled as is viewing a Result.

The grading profile allows information to be captured about grade changes for a given assessment or submission. This may be useful to understand the way in which students and teachers may be interacting throughout the course.

The Grading Profile supports the following user stories:

  • As an instructor,
    • I want to know what was distribution of scores for the most recent assignment.
    • I want to know how often grades are changed for a given assessment.
    • I want to know the number of attempts each student in my course took to submit an assignment.
  • As a student,
    • I would like to know the distribution of scores for the most recent assignment.
    • I would like to know my grade compared with the average for the class.
  • As a researcher,
    • I would like to measure the effectiveness of instructor feedback on overall student performance.

The Grading Profile defines a GradeEvent for describing the scoring of assignments and a ViewEvent for viewing results. Two actions are described:

Event actor action object generated
GradeEvent Agent Graded Attempt Score
ViewEvent Person Viewed Result
 
When constructing a GradeEvent or ViewEvent governed by the Grading Profile the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • For auto-graded scenarios the SoftwareApplication MUST be specified as the actor.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • When describing a Graded action, the generated Score SHOULD be specified. If the generated Score is expressed as an object the attempt, maxScore, and scoreGiven property values SHOULD be provided.
  • If a Result is expressed as an object the attempt, maxResultScore, and resultScore property values SHOULD be provided.
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.7 Media Profile

Media Profile
IRI
http://purl.imsglobal.org/caliper/MediaProfile
Term
MediaProfile

The Caliper Media Profile models interactions between learners and rich content such as audio, images and video. Implementers can leverage a number of media-related entities including AudioObject, ImageObject, and VideoObject, each subtyped from a generic MediaObject. A MediaLocation entity is also provided in order to represent the current location in an audio or video stream.

The Media Profile supports the following user stories:

  • As an instructor,
    • I want to which students are using the video platform.
    • I want to know which videos are being played the most.
    • I want to know how long my students are spending on each video.
    • I want to know when students pause a video.
    • I want to know if there are instances of students replaying sections of the video.

The Media Profile defines a MediaEvent, NavigationEvent, and ViewEvent for describing interactions with media such as an AudioObject, ImageObject, or VideoObject. Twenty-one actions are described:

Event actor action object target
MediaEvent Person Started MediaObject MediaLocation
MediaEvent Person Ended MediaObject MediaLocation
MediaEvent Person Paused MediaObject MediaLocation
MediaEvent Person Resumed MediaObject MediaLocation
MediaEvent Person Restarted MediaObject MediaLocation
MediaEvent Person ForwardedTo MediaObject MediaLocation
MediaEvent Person JumpedTo MediaObject MediaLocation
MediaEvent Person ChangedResolution MediaObject MediaLocation
MediaEvent Person ChangedSize MediaObject MediaLocation
MediaEvent Person ChangedSpeed MediaObject MediaLocation
MediaEvent Person ChangedVolume MediaObject MediaLocation
MediaEvent Person EnabledClosedCaptioning MediaObject MediaLocation
MediaEvent Person DisabledClosedCaptioning MediaObject MediaLocation
MediaEvent Person EnteredFullScreen MediaObject MediaLocation
MediaEvent Person ExitedFullScreen MediaObject MediaLocation
MediaEvent Person Muted MediaObject MediaLocation
MediaEvent Person Unmuted MediaObject MediaLocation
MediaEvent Person OpenedPopout MediaObject MediaLocation
MediaEvent Person ClosedPopout MediaObject MediaLocation
NavigationEvent Person NavigatedTo MediaObject MediaLocation
ViewEvent Person Viewed MediaObject MediaLocation
When constructing a MediaEvent, NavigationEvent, or ViewEvent governed by the Media Profile the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • A MediaLocation MAY be specified as the target in order to indicate the current playback position in an audio or video stream.
  • If the MediaLocation is expressed as an object, set the currentTime value per action as follows:
    • Started, Restarted: set the currentTime value to the beginning or initial starting location in the audio or video stream.
    • Paused: set the currentTime value to the location in the audio or video stream where the pause occurred.
    • Resumed: set the currentTime value to the location in the audio or video stream where the previous pause occurred.
    • Ended: set the currentTime value to the ending or closing location in the audio or video stream.
    • For other MediaEvent supported actions the MediaLocation currentTime value MUST be set to the location in the audio or video stream where the action occurred.
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.8 Reading Profile

Reading Profile
IRI
http://purl.imsglobal.org/caliper/ReadingProfile
Term
ReadingProfile

The Caliper Reading Profile models activities associated with navigating to and viewing digital textual content. Caliper provides a number of entities representing digital content including a generic DigitalResource and DigitalResourceCollection along with Document, Chapter, Page, WebPage, Message and Frame.

The Reading Profile supports the following user stories:

  • As an instructor,
    • I want to know when assigned course content is first accessed by my students.
    • I want to know what materials are being accessed.
    • I want to know how often is the content viewed.
    • I want to know what paths are taken to reach the content.
  • As a student,
    • I would like to know how much time I am spending on reading by section.
    • I would like to know how much time I have spent reading today/this week/this month.
    • I would like to know what content I have read most frequently.
    • I would like to know what content is the most frequently read by my peers.
  • As a researcher,
    • I would like to understand the most commonly accessed paths through the content.

When used in conjunction with the Assessment Profile viewing patterns can be correlated to performance measures.

The Reading Profile defines a NavigationEvent for traversing resources and a ViewEvent for viewing content. Two actions are described:

Event actor action object target
NavigationEvent Person NavigatedTo DigitalResource DigitalResource
ViewEvent Person Viewed DigitalResource DigitalResource
When constructing a NavigationEvent or ViewEvent governed by the Reading Profile the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • A Frame MAY be specified as the target in order to indicate an indexed segment or location.
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.9 Resource Management Profile

Resource Management Profile
IRI
http://purl.imsglobal.org/caliper/ResourceManagementProfile
Term
ResourceManagementProfile

The Caliper Resource Management Profile models a Person managing a DigitalResource.

The Resource Management Profile supports the following user stories:

  • As an instructor,
    • I would like to measure engagement between different revisions of learning resources over time in order to help determine what content is most effective.
  • As a student,
    • I would like to learn about the newly published course resources.
    • I would like to know how much time I have spent reading today/this week/this month.
    • I would like to know what content I have read most frequently.
    • I would like to know what content is the most frequently read by my peers.
  • As a content developer,
    • I would like to measure the interval between resource availability and learner engagement with learning resources in order to gain insights into both the administrative impact on the learning process and the timing decisions of learners who are expected to ingest the materials.
  • As an administrator,
    • I would like to measure the usage of a course which is designated as a template course.
    • I would like to measure the instructor engagement in building courses which utilize one or more course components.

The Resource Management Profile defines a ResourceManagementEvent for describing the creation, management, and disposition of DigitalResource entities. Fourteen actions are described:

Event actor action object generated
ResourceManagementEvent Person Created DigitalResource  
ResourceManagementEvent Person Copied DigitalResource DigitalResource
ResourceManagementEvent Person Modified DigitalResource  
ResourceManagementEvent Person Deleted DigitalResource  
ResourceManagementEvent Person Described DigitalResource  
ResourceManagementEvent Person Downloaded DigitalResource  
ResourceManagementEvent Person Uploaded DigitalResource  
ResourceManagementEvent Person Retrieved DigitalResource  
ResourceManagementEvent Person Printed DigitalResource  
ResourceManagementEvent Person Published DigitalResource  
ResourceManagementEvent Person Unpublished DigitalResource  
ResourceManagementEvent Person Archived DigitalResource  
ResourceManagementEvent Person Restored DigitalResource  
ResourceManagementEvent Person Saved DigitalResource  
When constructing a ResourceManagementEvent governed by the Resource Management Profile the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • For a Copied action the generated copy of the DigitalResource SHOULD be referenced.
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.11 Session Profile

Session Profile
IRI
http://purl.imsglobal.org/caliper/SessionProfile
Term
SessionProfile

The Caliper Session Profile models the creation and subsequent termination of a user session established by a Person interacting with a SoftwareApplication. A Session entity is described for representing the user session.

The Session Profile can facilitate the capture of data about who is logging into the learning environment, and more importantly, which students are not logging in.

The Session Profile supports the following user stories:

  • As an instructor,
    • I want to know which students have not logged in for more than a week.
    • I want to know who logs in and logs out most and least frequently.
  • As a student,
    • I would like to know what time of day I typically login.
    • I would like to know how much time I spend in the learning application each day/week/month.
    • I would like to know how my session durations compare to my peers.
    • I would like to be notified if I have not logged in for more than a week (when other students are also logging in).
  • As a researcher,
    • I would like to understand patterns or trends in student login activity.
  • As an administrator,
    • I would like to learn about host server IP and user agent of the users accessing my application on a given moment.

The Session Profile defines a SessionEvent for recording application log in, log out, and time out activity.

Event actor action object target
SessionEvent Person LoggedIn SoftwareApplication DigitalResource
SessionEvent Person LoggedOut SoftwareApplication  
SessionEvent SoftwareApplication TimedOut Session  
When constructing a SessionEvent the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • For LoggedIn and LoggedOut actions, a Person MUST be specified as the actor. For a TimedOut action, a SoftwareApplication MUST be specified as the actor.
  • For a TimedOut action, the SoftwareApplication MUST be specified as the actor and the Session MUST be specified as the object. If a Session is expressed as an object, the user, startedAtTime, endedAtTime, and duration property values SHOULD be provided.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • For a LoggedIn action, if the actor is attempting to access a particular DigitalResource, the resource MAY be designated as the target of the interaction.
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.12 Survey Profile

Survey Profile
IRI
http://purl.imsglobal.org/caliper/SurveyProfile
Term
SurveyProfile

The Caliper Survey Profile provides a vocabulary for describing events associated with a respondent's participation in online surveys. A key use case involves instrumenting platforms that provide online surveys that explore the student learning experience, student engagement, learning activities, learning progress, and learning performance. The profile models a Person, typically a respondent or a rater, participating in a survey in order to provide feedback on their learning and academic experiences.

Everyone learns differently with a mix of their own learning styles. It is also known that a student’s time spent on online learning activities does not necessarily indicate that the student finds the materials easy or hard, interesting or boring, useful or not to their learning. Student feedback is a key source of data that can help glean insights into students’ learning styles and interests, as well as areas to improve. In that sense, student feedback data adds an additional dimension of students’ behavioral data for learning analytics, such as learning about student perceptions of how effectively activities helped student learning and what specific areas in teaching and learning can be improved to enhance students’ learning experience and performance. The Caliper Survey Profile expands the pool of Caliper-instrumented learning data profiles to enhance the learning analytics across the analytics continuum — descriptive, diagnostic, predictive, and prescriptive — by allowing student voices to be incorporated in order to make learning analytics more robust.

The Survey Profile supports the following user stories:

  • As an instructor,
    • I would like to analyze survey response rates and responses to gauge the engagement level of my students.
    • I would like to analyze survey response rates and responses to identify specific actions that I need to take to improve my teaching (course design, delivery, etc) for student learning experience and outcomes.
    • I would like to analyze survey response rates and responses to measure progress on my teaching improvement efforts and inform my decisions on what actions to take to further improve my teaching - acting on the feedback.
    • I would like to use student feedback to determine the efficacy of personalized or adaptive learning interventions and to help design new learning plans and strategies with these methods.
    • I would like to analyze student feedback to find ways to measure the effectiveness of my teaching, assess student progress, and identify areas for corrective intervention.
  • As a student,
    • I would like to know what are my strengths and weaknesses in comparison to other students, and identify areas that I can work on to improve my learning performance.
  • As a researcher,
    • I would like to monitor and analyze survey response rates and patterns to ensure the reliability and validity of the data collected, as well as to inform future collection methods.
    • I would like to assess whether student feedback on learning experiences can help create predictive models — in combination with behavioral data, demographics, and performance — for student retention and success.
  • As an administrator,
    • I would like to analyze survey response rates to track effectiveness of strategies used to get the sufficient amount of data that can give statistical confidence to interpret appropriately (as opposed to over interpreting or misusing what data says).
    • I would like to analyze feedback survey responses to identify factors that impact the quality of the program and identify areas to improve - what aspects of the program to change and where to invest resources to ensure the program success with desired student learning outcomes and faculty professional development.
    • I would like to use responses to survey questions concerning workload in combination with other behavioral data to determine whether workloads are set to optimize learning.

The Survey Profile defines a SurveyEvent, SurveyInvitationEvent, QuestionnaireEvent, QuestionnaireItemEvent, NavigationEvent, and ViewEvent for describing survey-related activities. Twelve actions are described:

Event actor action object generated
SurveyInvitationEvent Person Sent SurveyInvitation  
SurveyInvitationEvent Person Accepted SurveyInvitation  
SurveyInvitationEvent Person Declined SurveyInvitation  
SurveyEvent Person OptedIn Survey  
SurveyEvent Person OptedOut Survey  
QuestionnaireEvent Person Started Questionnaire Attempt
QuestionnaireEvent Person Submitted Questionnaire Attempt
QuestionnaireItemEvent Person Started QuestionnaireItem Attempt
QuestionnaireItemEvent Person Skipped QuestionnaireItem Attempt
QuestionnaireItemEvent Person Completed QuestionnaireItem Response
NavigationEvent Person NavigatedTo Questionnaire | QuestionnaireItem  
ViewEvent Person Viewed Questionnaire | QuestionnaireItem  
When constructing a SurveyEvent, SurveyInvitationEvent, QuestionnaireEvent, QuestionnaireItemEvent, NavigationEvent, or ViewEvent governed by the Survey Profile the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • For QuestionnaireEvent actions, the generated Attempt SHOULD be specified. If an Attempt is expressed as an object the Attempt SHOULD define, at a minimum, the assignee, the assignable, and the count. For Started actions set the count value to 1 for a first attempt and increment by 1 for each subsequent attempt.
  • For each QuestionnaireItemEvent described, referencing a generated Attempt or Response depends on the action value specified. Set the Attempt count values as follows (per action):
    • Started: set the count value to 1 for a first attempt and increment by 1 for each subsequent attempt.
    • Skipped: do not increment the Attempt count by 1. The current count value MUST remain unchanged.
    • Completed: if desired, specify the respondent's Response and reference the associated Attempt via the attempt property. The current count value MUST remain unchanged.
  • Parent-child relationships that exist between QuestionnaireItem and Questionnaire attempts MAY be represented by use of the Attempt isPartOf property.
  • As a respondent navigates from one QuestionnaireItem to another QuestionnaireItem, the previous QuestionnaireItem MAY be specified as the referrer.
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.13 Tool Launch Profile

Tool Launch Profile
IRI
http://purl.imsglobal.org/caliper/ToolLaunchProfile
Term
ToolLaunchProfile

The Caliper Tool Launch Profile is intended to capture the utilization of learning tools from a centralized location, such as an LTI Tool Platform (often an LMS). As such, it is distinct from the Caliper Tool Use Profile, also defined in this specification, which captures tool usage as reported by the individual tools themselves (i.e. decentralized capture).

The Tool Launch and Tool Use Profiles have their own unique set of advantages; the primary advantage of the Tool Launch Profile is that it only requires a single sensor to be deployed (typically in an LMS), whereas the Tool Use Profile requires all tools being measured to implement the Caliper sensor API.

The Tool Launch Profile supports the following user stories:

  • As an administrator,
    • I would like to know what student data is being passed to LTI tools.
    • I would like to know which tools are launched the most and the least.
    • I would like to know which courses utilize certain tools the most and the least.
  • As a researcher,
    • I would like to know if Caliper event data combined with demographic data reveals demographic variances in the utilization of the available tools.
    • I would like to know if there are temporal variances in the utilization of the available tools.

The Tool Launch Profile defines a ToolLaunchEvent for describing a Person launching a tool from a platform or returning to a platform after completing a tool session. Two actions are described:

Event actor action object generated target
ToolLaunchEvent Person Launched SoftwareApplication DigitalResource Link | LtiLink
ToolLaunchEvent Person Returned SoftwareApplication DigitalResource Link | LtiLink
When constructing a TooLaunchEvent governed by the Tool Launch Profile the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • A generated DigitalResource or, more likely, one of its specific subtypes MAY be expressed if the workflow includes a resource intended for the receiver of the workflow message associated with this event (for example, a file, or image, or LTI resource link for the receiver to embed within its system).
  • For a Launched action a target MAY be specified to record the fully qualified entry-point URL on the external tool to which the platform launches.
  • For a Returned action a target MAY be specified to record the fully qualified entry-point URL on the platform to which the tool is redirecting the workflow after user activity from the original launch finishes (this could be the launch_presentation_return_url in the case of a simple LTI Resource Link request; it could also be the deep_link_return_url in the case of a Deep Linking Response message).
  • For a Launched action, the federatedSession MUST be referenced. Workflows that include a specific "return message" component (e.g. LTI Deep Linking response messages) SHOULD provide the federatedSession and SHOULD populate its messageParameters property with the message parameters in the response message.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.14 Tool Use Profile

Tool Use Profile
IRI
http://purl.imsglobal.org/caliper/ToolUseProfile
Term
ToolUseProfile

The Caliper Tool Use Profile models an intended interaction between a user and a tool. In other words, when a Person utilizes a SoftwareApplication in a manner that the application determines to be its intended use for learning, an application that implements the Tool Use Profile can emit a ToolUseEvent indicating such usage.

The Tool Use Profile enables the gathering of basic usage information. It provides an easy way to get started with a base level of instrumentation by allowing the learning tool to make the determination of its own use. Any learning app can be instrumented using this profile to detect when a learner accesses the tool and uses it in the way it was intended.

The Tool Use Profile supports the following user stories:

  • As an instructor,
    • I want to know what tools are being used, and how often.
    • I want to know who are the most active and least active users of tools.
    • I want to know whether or not tool usage helps or hinders student performance.
    • I want to know which tools have the greatest impact on student performance.
    • I want to know how much time learners are spending using a tool.
    • I want to know how much curricular progress learners have made in a tool.
    • I want to be able to view my students' "time on task" across multiple learning tools using a dashboard powered by a Caliper event store.
  • As a student,
    • I want to confirm that the progress and time metrics I see in a learning tool matches the metrics I see in an aggregated dashboard.
  • As a researcher,
    • I want to be able to study the impact of a student's curricular progress in a learning tool on his or her academic achievement.

The Tool Use Profile defines a ToolUseEvent for describing a Person using a learning tool in a way that the tool's creators have determined is an indication of a learning interaction. A single action is described.

Event actor action object generated
ToolUseEvent Person Used SoftwareApplication Entity (AggregateMeasureCollection)
When constructing a ToolUseEvent governed by the Tool Use Profile the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • A generated AggregateMeasureCollection containing one or more AggregateMeasure entities providing information on a learner's "progress" using the tool MAY be expressed. The following metrics MAY be recorded:
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

3.15 General Profile

Use of the General Profile is strictly limited to describing interactions not modeled by the current set of Caliper Profiles. Only the generic Event may be utilized to describe such activities.

General Profile
IRI
http://purl.imsglobal.org/caliper/GeneralProfile
Term
GeneralProfile

The Caliper General Profile provides a generic Event for describing learning or supporting activities that have yet to be modeled by Caliper. Any of the Caliper actions described in this specification can be used to describe the interaction between the actor and the object.

Event actor action object
Event Agent any Caliper action Entity
When constructing a generic Event governed by the General Profile the following rules and recommendations apply:
  • The properties id, type, actor, action, object, and eventTime are required and MUST be referenced.
  • Although optional, the governing profile SHOULD also be specified.
  • Likewise, if activity context data is available and relevant the optional properties generated, edApp, group, membership, target, referrer, and session SHOULD be referenced.
  • If an LTI Tool mints the event, the federatedSession SHOULD be referenced.
  • A map of additional extensions MAY be included but beware the inherent interoperability limitations of transmitting data not described by the model.

4. Serialization

Over the last decade the advent of cloud-based, networked applications have led to changes in the way data is structured and represented. Data once considered strictly hierarchical, like a curriculum, a course roster, or a transcript can now frequently link out to other kinds of data. Modeling bundles of data pointing to other bundles of data now requires thinking in terms of graphs and Linked Data. Caliper Event data presents us with similar structures. A Caliper Event can link to user data, digital content, courses and rosters, grades and credentials, institutional and organizational data, application and session data, and so on, the sources of which are likely diverse and the opportunities for discovering new relationships between the entities represented therein both numerous as well as enlightening.

Exchanging data linked to other data distributed across a wide network requires both a simple, well-understood data-interchange format as well as means of defining unambiguously the underlying semantics or meaning intended for the data structures transmitted from one machine to another. For Caliper, JSON-LD provides the necessary representational horsepower to both describe these kinds of data linkages and specify how data is to be understood when published and shared across a network.

JSON-LD defines an economical syntax for representing learning activity data as Linked Data using JSON as the underlying data-interchange format. JSON-LD also provides an API and set of processing algorithms for working with JSON-LD documents that are based on different contexts. Algorithms have also been developed to serialize RDF as JSON-LD and deserialize a JSON-LD document to an RDF data set.

4.1 JSON-LD Context

JSON-LD documents require inclusion of a context, denoted by the @context keyword, a property employed to map document Terms to IRIs. JSON-LD contexts can be embedded inline or referenced externally in a document. Inclusion of a JSON-LD context provides an economical way for Caliper to communicate document semantics to services interested in consuming Caliper event data.

IMS Global provides a Caliper JSON-LD context document (http://purl.imsglobal.org/ctx/caliper/v1p2/) for remote mapping of Caliper Terms to IRIs. Implementers are encouraged to familiarize themselves with the term definitions described therein.

Requirements

  • Each Caliper Event and Entity describe document generated by a Sensor MUST be provisioned with a JSON-LD @context defined as a property of the top-level object.
  • The top-level @context property type MUST be defined as a string or an array.
  • If the top-level @context value is defined as a string it MUST be set to the Caliper remote context URL "http://purl.imsglobal.org/ctx/caliper/v1p2".
  • If the top-level @context value is defined as an array of multiple contexts, the remote Caliper JSON-LD context MUST be listed last in order to ensure that Caliper terms retain their primacy given that JSON-LD parsers rely on a "most-recently-defined-wins" approach when evaluating duplicate terms.
  • Referencing the remote Caliper JSON-LD context document in the top-level @context is mandatory. The terms it defines MUST NOT be defined inline as an object.
  • Additional remote or inline local contexts may be referenced any time a JSON object is defined in order to ascribe meaning to terms not described by the model. These contexts are additive in nature and can be defined as a string, object or array. Duplicate context references SHOULD be omitted when serializing the object. Nested local contexts that are added to the active context at processing time MUST NOT override Caliper terms defined by the top-level context.

In the following example, @context is a top-level Event property with a value that references the remote Caliper JSON-LD context document. All of the Event key:value pairings are mapped to [IRIs] in the referenced context.

Figure 1 - Referencing the Caliper JSON-LD context
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:fcd495d0-3740-4298-9bec-1154571dc211",
  "type": "SessionEvent",
  "profile": "SessionProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "LoggedIn",
  "object": {
    "id": "https://example.edu",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": "https://example.edu",
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "user": "https://example.edu/users/554433",
    "dateCreated": "2016-11-15T10:00:00.000Z",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}

As noted above, a JSON-LD document can reference more than one context. Subject to the requirements listed above additional contexts MAY be defined for a Caliper Event or Entity describe in order to map non-Caliper vocabulary terms to their respective IRIs. The Caliper JSON-LD context MUST be listed last if an array of contexts is referenced.

Figure 2 Referencing multiple JSON-LD contexts
{
  "@context": ["https://schema.org/docs/jsonldcontext.json", "http://purl.imsglobal.org/ctx/caliper/v1p2"]
  . . .
}

Contexts embedded inline can be combined with externally referenced contexts. Again, order matters.

Figure 3 Combining inline and referenced JSON-LD contexts
{
TODO: DEFINE NEW EXAMPLE. v1p1 example superseded by new SearchEvent.
}

4.2 Identifiers

Linked Data relies on IRIs/URIs for the identification and retrieval of resources. Likewise, JSON-LD specifies the use of IRIs/URIs for identifying most nodes (i.e., JSON objects) and their attributes. Caliper too specifies the use of IRIs for identifying nodes (i.e., the things or entities being described) and their attributes.

IRI values MUST be absolute containing a scheme, path and optional query and fragment segments. A URI employing the URN scheme MAY be used as an identifier although care should be taken when employing a location-independent identifier since it precludes the possibility of utilizing it in future to retrieve machine-readable data over HTTP. If an IRI is deemed inappropriate for the resource a blank node identifier may be assigned.

JSON-LD provides a special @id keyword for assigning identifiers to nodes. For Caliper, the JSON-LD @id keyword is aliased as id in the external IMS Caliper JSON-LD context. This is done in order to avoid the temptation of employing JSON-LD keywords as property names and is aligned with JSON-LD community practice. Thus, each Caliper Event and Entity described by the model is provisioned with an id rather than @id property for identifying the resource.

Every Entity MUST be assigned an identifier in the form of a valid IRI or a blank node identifier. The IRI MUST be unique and persistent. The IRI SHOULD be dereferenceable; i.e., capable of returning a representation of the Entity. A URI employing the URN scheme MAY also be utilized.

Unlike Entities, each Event MUST be assigned a 128-bit long universally unique identifier (UUID) formatted as a URN per [RFC4122], which describes a URN namespace for UUIDs.

Figure 4 - Event and Entity identifiers
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:ff9ec22a-fc59-4ae1-ae8d-2c9463ee2f8f",
  "type": "NavigationEvent",
  "profile": "ReadingProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "NavigatedTo",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/pages/2",
    "type": "WebPage",
    "name": "Learning Analytics Specifications",
    "description": "Overview of Learning Analytics Specifications with particular emphasis on IMS Caliper.",
    "dateCreated": "2016-08-01T09:00:00.000Z"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "referrer": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/pages/1",
    "type": "WebPage"
  },
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}

4.3 Types and Type Coercion

JSON-LD employs the @type keyword in two ways. Individual nodes (i.e., the thing being described) can be assigned a type. Values can also be associated with or coerced to a particular type. Both node types and typed values are specified in the Caliper JSON-LD context. As with the aliasing of @id as id, the @type keyword is aliased as type in the external IMS Caliper JSON-LD context in keeping with JSON-LD community practice.

Caliper permits Entity values to be expressed either as a JSON object or as a string corresponding to its IRI. JSON-LD also supports the coercion of data values to specified types based on value type mappings defined in a JSON-LD context. For a given @type the keywords @id or @vocab may be assigned as a value in order to signal to a JSON-LD parser that if a term's instance value is set to a string it is to be interpreted as an IRI. Type coercion of this sort provides representational flexibility that implementers are encouraged to leverage.

The following MessageEvent example utilizes an inline context to illustrate how JSON-LD types can be specified in a context. The MessageEvent, Person and Message terms are all considered node types. Other terms illustrate the coercion of values to specified data types. In the example below, the values of the actor, object and edApp terms are coerced to the @id keyword. Use of this convention informs JSON-LD parsers that string values are to be interpreted as IRIs (as in the case of edApp). In a like manner, the action value is coerced to the @vocab keyword indicating that the value is to be interpreted as a Term defined in the active context or as an IRI; in this case Posted. Terms such as name, description, dateCreated, dateModified and duration are coerced to a particular value type such as a string, integer, boolean or date.

Figure 5 - JSON-LD node and value types
{
  "@context": {
    "id": "@id",
    "type": "@type",
    "caliper": "http://purl.imsglobal.org/caliper/",
    "verb": "http://purl.imsglobal.org/caliper/actions/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "ForumProfile": "caliper:profiles/ForumProfile",
    "MessageEvent": "caliper:MessageEvent",
    "Message": "caliper:Message",
    "Person": "caliper:Person",
    "actor": {"@id": "caliper:actor", "@type": "@id"},
    "action": {"@id": "caliper:action", "@type": "@vocab"},
    "edApp": {"@id": "caliper:edApp", "@type": "@id"},
    "object": {"@id": "caliper:object", "@type": "@id"},
    "profile": {"@id": "caliper:profile", "@type": "@vocab"},
    "body": {"@id": "caliper:body", "@type": "xsd:string"},
    "dateCreated": {"@id": "caliper:dateCreated", "@type": "xsd:dateTime"},
    "eventTime": {"@id": "caliper:eventTime", "@type": "xsd:dateTime"},
    "Posted": "verb:Posted"},
  "id": "urn:uuid:0d015a85-abf5-49ee-abb1-46dbd57fe64e",
  "type": "MessageEvent",
  "profile": "ForumProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Posted",
  "object": {
    "id": "https://example.edu/sections/1/forums/2/topics/1/messages/2",
    "type": "Message",
    "body": "What does Caliper Event JSON-LD look like?",
    "dateCreated": "2018-12-15T10:15:00.000Z"
  },
  "eventTime": "2018-12-15T10:15:00.000Z",
  "edApp": "https://example.edu"
}

As the abbreviated ForumEvent example below demonstrates, in cases where an Event references the same Entity more than once (e.g., actor, member, user; group, organization), or a property is associated with a specific type (e.g., edApp) or an Entity possesses an IRI that is dereferenceable, consider expressing the value as a string corresponding to the entity's IRI.

Figure 6 - Referencing the Caliper JSON-LD context
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:a2f41f9c-d57d-4400-b3fe-716b9026334e",
  "type": "ForumEvent",
  "profile": "ForumProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Subscribed",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1",
    "type": "Forum",
    "name": "Caliper Forum",
    "isPartOf": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1",
      "type": "CourseSection"
    },
    "dateCreated": "2016-09-14T11:00:00.000Z"
  },
  "eventTime": "2016-11-15T10:16:00.000Z",
  "edApp": {
    "id": "https://example.edu/forums",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}

Indeed, the example ForumEvent could be thinned still further if each referenced Entity is provisioned with a dereferenceable IRI that permits consumers to retrieve a more robust representation of the object if required.

Figure 7 - Thinned ForumEvent comprised of (dereferenceable) IRI values
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:a2f41f9c-d57d-4400-b3fe-716b9026334e",
  "type": "ForumEvent",
  "profile": "ForumProfile",
  "actor": "https://example.edu/users/554433",
  "action": "Subscribed",
  "object": "https://example.edu/terms/201801/courses/7/sections/1/forums/1",
  "eventTime": "2018-11-15T10:16:00.000Z",
  "edApp": "https://example.edu/forums",
  "group": "https://example.edu/terms/201801/courses/7/sections/1",
  "membership": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
  "session": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259"
}

4.4 Anonymous Entities

Caliper has a formal convention for serializing anonymous entities. When a Sensor application wants to explicitly indicate that an Entity it is sending in an Event is anonymous, it should transmit an anonymous form of that Entity in its normal place within the Event. Caliper indicates an anonymous Entity by using the full Caliper vocabulary type IRI value for that Entity as its id value.

Note that because a Caliper Endpoint might choose to store received Caliper entities as individual nodes in a data graph, it may not be appropriate for a Sensor to send more properties in an anonymous Entity than its id and type, as these properties may not get recorded or may get overwritten by subsequent uses of the same type of anonymous Entity. By best practice, a Sensor should always send anonymous entities fully composed in-line within an Event and not separately described. Also by best practice, a Caliper Endpoint should treat this anonymous use in a distinct way to preserve any additional properties that might also be carried with the anonymous Entity within the Event.

Sensor applications SHOULD NOT use this method to convey depersonalized entities. The methods by which Sensor applications might depersonalize entities to obscure or safeguard their identity are not within the scope of this document.

The following example illustrates how an anonymous Person might be transmitted by a Sensor:

Figure 8 - Anonymous Person Entity - JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "http://purl.imsglobal.org/caliper/Person",
  "type": "Person"
}

A Caliper Event can include multiple anonymous entities, as in the case of the following ToolUseEvent where the edApp has been configured to report only the times and context of its use, but not to identify the actor or the group using the SoftwareApplication.

Figure 9 - ToolUseEvent with anonymous actor and group - JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:7c0fc54b-cf2a-426f-9203-b2c97fb77bfd",
  "type": "ToolUseEvent",
  "profile": "ToolUseProfile",
  "actor": {
    "id": "http://purl.imsglobal.org/caliper/Person",
    "type": "Person"
  },
  "action": "Used",
  "object": {
    "id": "https://example.edu",
    "type": "SoftwareApplication"
  },
  "eventTime": "2018-11-15T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "http://purl.imsglobal.org/caliper/CourseSection",
    "type": "CourseSection"
  },
  "membership": {
    "id": "http://purl.imsglobal.org/caliper/Membership",
    "type": "Membership",
    "member": {
      "id": "http://purl.imsglobal.org/caliper/Person",
      "type": "Person"
    },
    "organization": {
      "id": "http://purl.imsglobal.org/caliper/CourseSection",
      "type": "CourseSection"
    },
    "roles": [ "Learner" ],
    "status": "Active"
  }
}

5. The Sensor API™

Caliper Sensor

Caliper defines an application programming interface (the Sensor API™) for marshalling and transmitting data to a target endpoints. Adopting one or more profiles ensures adherence to the information model; implementing the Sensor provides instrumented platforms, applications and services with a transport interface for communicating with data consumers.

5.1 Behavior

A Sensor MUST implement the following behaviors:

  • create JSON object representations of Caliper Event and Entity types as described in the Serialization Section. The particular Event and Entity types that a Sensor must be capable of expressing are determined by the profiles implemented as described in Section 3.0.
  • express Entity values as either an object or a string corresponding to the resource's IRI as described in Section 2.2.
  • serialize Caliper Envelope objects as JSON as described in Section 5.2. Event and Entity describe data serialized as JSON-LD MUST be transmitted inside an Envelope as described in Sections 5.2 and 5.3.
  • transmit serialized Caliper Envelopes containing Event and/or Entity describe data to a target Endpoint over HTTP as described in Section 5.4.

A Sensor MAY be assigned other responsibilities such as validating Caliper Event and Entity data but such capabilities need not be exposed to learning data providers.

5.2 Envelope

Caliper Event and Entity data MUST be transmitted inside a Caliper Envelope, a purpose-built JSON data structure that includes metadata about the emitting Sensor and the data payload.

Properties

Caliper Envelope properties are listed below. The sensor, sendTime, dataVersion and data properties are required. Each property MUST be referenced only once. No custom properties are permitted.

Property Type Description Disposition
sensor string A unique identifier assigned either to the Sensor or to the instrumented platform, application or service utilizing the Sensor. The identifier SHOULD be in the form of an IRI. Required
sendTime DateTime A date and time string value expressed with millisecond precision that indicates the time at which the Sensor issued the message. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Required
dataVersion string A string value indicating which version of the IMS Caliper Analytics® specification governs the form of the Caliper entities and events contained in the data payload. The value MUST be set to the IMS Caliper Context IRI used to resolve the meanings of the data payload's terms and values. Required
data Array An ordered collection of one or more Caliper Event and/or Entity describe objects. The Sensor MAY mix Event and Entity describe data in the same Envelope. Required

5.3 JSON-LD Payload

Each Event and Entity describe transmitted inside an Envelope MUST be serialized as a JSON-LD document.

Figure 10 - Envelope: single event payload
{
  "sensor": "https://example.edu/sensors/1",
  "sendTime": "2016-11-15T11:05:01.000Z",
  "dataVersion":  "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "data": [
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
      "id": "urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594",
      "type": "AssessmentEvent",
      "profile": "AssessmentProfile",
      "actor": {
        "id": "https://example.edu/users/554433",
        "type": "Person"
      },
      "action": "Started",
      "object": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
        "type": "Assessment",
        "name": "Quiz One",
        "dateToStartOn": "2016-11-14T05:00:00.000Z",
        "dateToSubmit": "2016-11-18T11:59:59.000Z",
        "maxAttempts": 2,
        "maxSubmits": 2,
        "maxScore": 25.0,
        "version": "1.0"
      },
      "generated": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "type": "Attempt",
        "assignee": "https://example.edu/users/554433",
        "assignable": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
        "count": 1,
        "dateCreated": "2016-11-15T10:15:00.000Z",
        "startedAtTime": "2016-11-15T10:15:00.000Z"
      },
      "eventTime": "2016-11-15T10:15:00.000Z",
      "edApp": {
        "id": "https://example.edu",
        "type": "SoftwareApplication",
        "version": "v2"
      },
      "group": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1",
        "type": "CourseSection",
        "courseNumber": "CPS 435-01",
        "academicSession": "Fall 2016"
      },
      "membership": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
        "type": "Membership",
        "member": "https://example.edu/users/554433",
        "organization": "https://example.edu/terms/201601/courses/7/sections/1",
        "roles": [ "Learner" ],
        "status": "Active",
        "dateCreated": "2016-08-01T06:00:00.000Z"
      },
      "session": {
        "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
        "type": "Session",
        "startedAtTime": "2016-11-15T10:00:00.000Z"
      }
    }
  ]
}
Figure 11 - Envelope: mixed payload
{
  "sensor": "https://example.edu/sensors/1",
  "sendTime": "2016-11-15T11:05:01.000Z",
  "dataVersion": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "data": [
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
      "id": "https://example.edu/users/554433",
      "type": "Person",
      "otherIdentifiers": [
        {
          "type": "SystemIdentifier",
          "identifier": "example.edu:71ee7e42-f6d2-414a-80db-b69ac2defd4",
          "identifierType": "LisSourcedId"
        },
        {
          "type": "SystemIdentifier",
          "identifier": "https://example.edu/users/554433",
          "identifierType": "LtiUserId",
          "source":  {
            "id": "https://example.edu",
            "type": "SoftwareApplication"
          }
        },
        {
          "type": "SystemIdentifier",
          "identifier": "jane@example.edu",
          "identifierType": "EmailAddress",
          "source": "https://example.edu"
        },
        {
          "type": "SystemIdentifier",
          "identifier": "4567",
          "identifierType": "SystemId",
          "extensions": {
            "com.examplePlatformVendor.identifier_type": "UserIdentifier"
          }
        }
      ],
      "dateCreated": "2016-08-01T06:00:00.000Z",
      "dateModified": "2016-09-02T11:30:00.000Z"
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1?ver=v1p0",
      "type": "Assessment",
      "name": "Quiz One",
      "items": [
        {
          "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/1",
          "type": "AssessmentItem"
        },
        {
          "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/2",
          "type": "AssessmentItem"
        },
        {
          "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3",
          "type": "AssessmentItem"
        }
      ],
      "dateCreated": "2016-08-01T06:00:00.000Z",
      "dateModified": "2016-09-02T11:30:00.000Z",
      "datePublished": "2016-08-15T09:30:00.000Z",
      "dateToActivate": "2016-08-16T05:00:00.000Z",
      "dateToShow": "2016-08-16T05:00:00.000Z",
      "dateToStartOn": "2016-08-16T05:00:00.000Z",
      "dateToSubmit": "2016-09-28T11:59:59.000Z",
      "maxAttempts": 2,
      "maxScore": 15.0,
      "maxSubmits": 2,
      "version": "1.0"
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
      "id": "https://example.edu",
      "type": "SoftwareApplication",
      "version": "v2"
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
      "id": "https://example.edu/terms/201601/courses/7/sections/1",
      "type": "CourseSection",
      "academicSession": "Fall 2016",
      "courseNumber": "CPS 435-01",
      "name": "CPS 435 Learning Analytics, Section 01",
      "otherIdentifiers": [
        {
          "type": "SystemIdentifier",
          "identifier": "example.edu:SI182-001-F16",
          "identifierType": "LisSourcedId"
        }
      ],
      "category": "seminar",
      "subOrganizationOf": {
        "id": "https://example.edu/terms/201601/courses/7",
        "type": "CourseOffering",
        "courseNumber": "CPS 435"
      },
      "dateCreated": "2016-08-01T06:00:00.000Z"
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
      "id": "urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594",
      "type": "AssessmentEvent",
      "profile": "AssessmentProfile",
      "actor": "https://example.edu/users/554433",
      "action": "Started",
      "object": "https://example.edu/terms/201601/courses/7/sections/1/assess/1?ver=v1p0",
      "generated": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "type": "Attempt",
        "assignee": "https://example.edu/users/554433",
        "assignable": "https://example.edu/terms/201601/courses/7/sections/1/assess/1?ver=v1p0",
        "count": 1,
        "dateCreated": "2016-11-15T10:15:00.000Z",
        "startedAtTime": "2016-11-15T10:15:00.000Z"
      },
      "eventTime": "2016-11-15T10:15:00.000Z",
      "edApp": "https://example.edu",
      "group": "https://example.edu/terms/201601/courses/7/sections/1",
      "membership": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
        "type": "Membership",
        "member": "https://example.edu/users/554433",
        "organization": "https://example.edu/terms/201601/courses/7/sections/1",
        "roles": [ "Learner" ],
        "status": "Active",
        "dateCreated": "2016-08-01T06:00:00.000Z"
      },
      "session": {
        "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
        "type": "Session",
        "startedAtTime": "2016-11-15T10:00:00.000Z"
      }
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
      "id": "urn:uuid:dad88464-0c20-4a19-a1ba-ddf2f9c3ff33",
      "type": "AssessmentEvent",
      "profile": "AssessmentProfile",
      "actor": "https://example.edu/users/554433",
      "action": "Submitted",
      "object": "https://example.edu/terms/201601/courses/7/sections/1/assess/1?ver=v1p0",
      "generated": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "type": "Attempt",
        "assignee": "https://example.edu/users/554433",
        "assignable": "https://example.edu/terms/201601/courses/7/sections/1/assess/1?ver=v1p0",
        "count": 1,
        "dateCreated": "2016-11-15T10:15:00.000Z",
        "startedAtTime": "2016-11-15T10:15:00.000Z",
        "endedAtTime": "2016-11-15T10:55:12.000Z",
        "duration": "PT40M12S"
      },
      "eventTime": "2016-11-15T10:25:30.000Z",
      "edApp": "https://example.edu",
      "group": "https://example.edu/terms/201601/courses/7/sections/1",
      "membership": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
        "type": "Membership",
        "member": "https://example.edu/users/554433",
        "organization": "https://example.edu/terms/201601/courses/7/sections/1",
        "roles": ["Learner"],
        "status": "Active",
        "dateCreated": "2016-08-01T06:00:00.000Z"
      },
      "session": {
        "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
        "type": "Session",
        "startedAtTime": "2016-11-15T10:00:00.000Z"
      }
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
      "id": "urn:uuid:a50ca17f-5971-47bb-8fca-4e6e6879001d",
      "type": "GradeEvent",
      "profile": "GradingProfile",
      "actor": {
        "id": "https://example.edu/autograder",
        "type": "SoftwareApplication",
        "version": "v2"
      },
      "action": "Graded",
      "object": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "type": "Attempt",
        "assignee": "https://example.edu/users/554433",
        "assignable": "https://example.edu/terms/201601/courses/7/sections/1/assess/1?ver=v1p0",
        "count": 1,
        "dateCreated": "2016-11-15T10:15:00.000Z",
        "startedAtTime": "2016-11-15T10:15:00.000Z",
        "endedAtTime": "2016-11-15T10:55:12.000Z",
        "duration": "PT40M12S"
      },
      "eventTime": "2016-11-15T10:57:06.000Z",
      "edApp": "https://example.edu",
      "generated": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1/scores/1",
        "type": "Score",
        "attempt": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "maxScore": 15.0,
        "scoreGiven": 10.0,
        "scoredBy": "https://example.edu/autograder",
        "comment": "auto-graded exam",
        "dateCreated": "2016-11-15T10:56:00.000Z"
      },
      "group": "https://example.edu/terms/201601/courses/7/sections/1"
    }
  ]
}

5.4 HTTP Requests

A Caliper Sensor MUST be capable of transmitting Caliper data successfully to a Caliper Endpoint. Communication with an Endpoint is limited to message exchanges using the Hypertext Transport Protocol (HTTP) with the connection encrypted with Transport Layer Security (TLS). See the IMS Security Framework for more information on complete security practices.

Each message request MUST consist of a single JSON representation of a Caliper Envelope. Messages MUST be sent using the POST request method. The HTTP Host and Content-Type request header fields MUST be set.

The Caliper endpoint also provides configuration information if a GET request is sent. This is explained in the Configuration Information section.

A Sensor SHOULD also set the Authorization request header field using the "Bearer" authentication scheme described in [RFC6750], Section 2.1. The b64token authorization credential sent by a Sensor MUST be one the Endpoint can validate although the credential MAY be opaque to the emitting Sensor itself.

Request Header Description Disposition
Authorization Set the string value to a bearer token using the "Bearer" authentication scheme described in [RFC6750], Section 2.1 (e.g., Authorization: Bearer <token value>). Recommended
Content-Type Set the string value to the IANA media type "application/json". Required
Host Set the string value to the Internet host and port number of the resource being requested. Required

6. Endpoint

A Caliper Endpoint MUST be capable of receiving Caliper data sent over HTTP by a Caliper Sensor using the standard POST request method. The connection MUST be secured with Transport Layer Security (TLS) and a valid TLS certificate provided. The Endpoint MUST be capable of accessing standard HTTP request headers and support message authentication that utilizes the HTTP Authorization request header "Bearer" authentication scheme as described in [RFC6750], Section 2.1.

6.1 HTTP Responses

Following receipt of a Sensor HTTP request message, the Endpoint MUST reply with an HTTP response message. The response will include a three-digit status code indicating whether or not the Endpoint was able to understand and satisfy the request, as defined by [RFC7231].

When signalling to a Sensor that the endpoint has successfully received the request message, the Endpoint MUST reply with a 2xx class status code. By best practice, the Endpoint SHOULD use the 200 OK response but might instead choose to send a 201 Created (to indicate successful receipt of the message and creation of a new resource) or a 202 Accepted (to indicate successful receipt of the message and queueing for further processing). By best practice, the Endpoint SHOULD send back successful responses with an empty body.

An Endpoint MAY send back responses other than those with 2xx class indicating success; if so, it MUST adhere to these response status codes for these specific cases (for other cases, the Endpoint may offer other responses):

  • If the request message has no enclosing Caliper Envelope, reply with a 400 Bad Request status code.
  • If the request message's Caliper Envelope is malformed (for example, missing fields required by the Envelop's version), reply with a 400 Bad Request status code.
  • If the Sensor sends an unauthorized request, or the Endpoint is unable to validate the authorization, or the Endpoint cannot determine that the Sensor has sufficient privilege to send such a message, reply with a 401 Unauthorized.
  • If the request message has a content-type other than application/json, reply with a 415 Unsupported Media Type.
  • If the Endpoint cannot support the version of Caliper data indicated by the Caliper Envelope's dataVersion field, reply with a 422 Unprocessable Entity status code.

The Endpoint MAY respond to Sensor messages with other standard HTTP status codes to indicate result dispositions that vary from the cases described above. The Endpoint MAY also communicate more detailed information about problem states, using the standard method for reporting problem details described in [RFC7807].

Caliper Endpoint implementers should bear in mind that some Caliper Sensor implementations may lack sophisticated error handling.

6.2 Configuration Information

Before sending Caliper data, a Sensor MAY choose to check the current status of an Endpoint using the standard GET request method, with the same restrictions on transport security and authorization as enforced when sending Caliper data.

  • If an Endpoint receives this request alongside appropriate authorization, it MUST respond with a 200 OK status code. The body of a successful response MUST contain its configuration parameters in a JSON data structure.
  • If the Sensor sends a message without an Authorization request header of the RECOMMENDED form or sends a token credential that the Endpoint is unable to either validate or determine has sufficient privileges to submit Caliper data, the Endpoint SHOULD reply with a 401 Unauthorized response.

A Sensor sending a ping request SHOULD interpret any status code besides 200 OK or 401 Unauthorized as the Endpoint indicating that its service is currently unavailable.

The properties of an Endpoint configuration are listed below. Each property MUST be included no more than once. No custom properties are permitted.

Property Type Description Disposition
caliperMaximumPayloadSize integer Size (in kilobytes) of the maximum payload the Endpoint can accept in a single POST request. Optional
caliperSupportedVersions array List of IRIs identifying the Caliper version(s) the Endpoint supports. A Sensor MUST ensure that the Caliper data they send to the Endpoint is based on one of the Caliper JSON-LD context document versions found in this list. By best practice, tools should (if able) choose to use the most modern supported version in this list. Required
caliperSupportedExtensions Object Key-value map of additional information that the Endpoint chooses to provide. Optional
Figure 12 Endpoint configuration example
{
  "caliperMaximumPayloadSize": 512,
  "caliperSupportedVersions": [
    "http://purl.imsglobal.org/ctx/caliper/v1p1",
    "http://purl.imsglobal.org/ctx/caliper/v1p2"
  ],
  "caliperSupportedExtensions": {
    "endpointName": "Example Endpoint",
    "endpointVersion": "1.3.0"
  }
}

6.3 String Lengths and Storage

Certain Caliper data properties are expressed as strings of variable length. JSON-LD also defines a set of processing algorithms for transforming JSON-LD documents in ways that can change the length of keys and values that are expressed as IRIs, compact IRIs or Terms. Many implementers will choose to store each incoming Event and Entity describe received as a JSON-LD document or as a graph data structure consisting of nodes, edges and properties. Others may opt to normalize or "flatten" some or all of the nested JSON objects that comprise a Caliper Event or Entity. If the chosen persistence strategy involves normalizing Caliper semi-structured data, care should be taken to ensure that strings of character data can be stored without truncation.

A. Events

See the Event section for more details.

A.1 AnnotationEvent

AnnotationEvent Highlighted image

A Caliper AnnotationEvent models the annotating of digital content. The resulting Annotation is also described and is subtyped for greater type specificity.

IRI
http://purl.imsglobal.org/caliper/AnnotationEvent
Term
AnnotationEvent
Supertype
Event
Properties
The AnnotationEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term AnnotationEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the Bookmarked, Highlighted, Shared, and Tagged actions only. Required
object DigitalResource | IRI The annotated DigitalResource that constitutes the object of the interaction. The object value MUST be expressed either as an object or as a string corresponding to the object's IRI. Required
target Frame | IRI A Frame that represents a particular segment or location within the object. The target value MUST be expressed either as an object or as a string corresponding to the target entity's IRI. Optional
generated Annotation | IRI The generated Annotation or a subtype. The generated value MUST be expressed either as an object or as a string corresponding to the generated entity's IRI. Optional
Figure 13 - AnnotationEvent (Bookmarked) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:d4618c23-d612-4709-8d9a-478d87808067",
  "type": "AnnotationEvent",
  "profile": "AnnotationProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Bookmarked",
  "object": {
    "id": "https://example.com/#/texts/imscaliperimplguide/cfi/6/10!/4/2/2/2@0:0",
    "type": "Page",
    "name": "IMS Caliper Implementation Guide, pg 5",
    "version": "1.1"
  },
  "generated": {
    "id": "https://example.com/users/554433/texts/imscaliperimplguide/bookmarks/1",
    "type": "BookmarkAnnotation",
    "annotator": "https://example.edu/users/554433",
    "annotated": "https://example.com/#/texts/imscaliperimplguide/cfi/6/10!/4/2/2/2@0:0",
    "bookmarkNotes": "Caliper profiles model discrete learning activities or supporting activities that facilitate learning.",
    "dateCreated": "2016-11-15T10:15:00.000Z"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": {
    "id": "https://example.com/reader",
    "type": "SoftwareApplication",
    "name": "ePub Reader",
    "version": "1.2.3"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.com/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 14 - AnnotationEvent (Highlighted) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:0067a052-9bb4-4b49-9d1a-87cd43da488a",
  "type": "AnnotationEvent",
  "profile": "AnnotationProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Highlighted",
  "object": {
    "id": "https://example.com/#/texts/imscaliperimplguide",
    "type": "Document",
    "name": "IMS Caliper Implementation Guide",
    "dateCreated": "2016-10-01T06:00:00.000Z",
    "version": "1.1"
  },
  "generated": {
    "id": "https://example.com/users/554433/texts/imscaliperimplguide/highlights?start=2300&end=2370",
    "type": "HighlightAnnotation",
    "annotator": "https://example.edu/users/554433",
    "annotated": "https://example.com/#/texts/imscaliperimplguide",
    "selection": {
      "type": "TextPositionSelector",
      "start": 2300,
      "end": 2370
    },
    "selectionText": "ISO 8601 formatted date and time expressed with millisecond precision.",
    "dateCreated": "2016-11-15T10:15:00.000Z"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": {
    "id": "https://example.com/reader",
    "type": "SoftwareApplication",
    "name": "ePub Reader",
    "version": "1.2.3"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.com/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 15 - AnnotationEvent (Shared) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:3bdab9e6-11cd-4a0f-9d09-8e363994176b",
  "type": "AnnotationEvent",
  "profile": "AnnotationProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Shared",
  "object": {
    "id": "https://example.com/#/texts/imscaliperimplguide",
    "type": "Document",
    "name": "IMS Caliper Implementation Guide",
    "version": "1.1"
  },
  "generated": {
    "id": "https://example.com/users/554433/texts/imscaliperimplguide/shares/1",
    "type": "SharedAnnotation",
    "annotator": "https://example.edu/users/554433",
    "annotated": "https://example.com/#/texts/imscaliperimplguide",
    "withAgents": [
      {
        "id": "https://example.edu/users/657585",
        "type": "Person"
      },
      {
        "id": "https://example.edu/users/667788",
        "type": "Person"
      }
    ],
    "dateCreated": "2016-11-15T10:15:00.000Z"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": {
    "id": "https://example.com/reader",
    "type": "SoftwareApplication",
    "name": "ePub Reader",
    "version": "1.2.3"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.com/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 16 - AnnotationEvent (Tagged) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:b2009c63-2659-4cd2-b71e-6e03c498f02b",
  "type": "AnnotationEvent",
  "profile": "AnnotationProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Tagged",
  "object": {
    "id": "https://example.com/#/texts/imscaliperimplguide/cfi/6/10!/4/2/2/2@0:0",
    "type": "Page",
    "name": "IMS Caliper Implementation Guide, pg 5",
    "version": "1.1"
  },
  "generated": {
    "id": "https://example.com/users/554433/texts/imscaliperimplguide/tags/3",
    "type": "TagAnnotation",
    "annotator": "https://example.edu/users/554433",
    "annotated": "https://example.com/#/texts/imscaliperimplguide/cfi/6/10!/4/2/2/2@0:0",
    "tags": [ "profile", "event", "entity" ],
    "dateCreated": "2016-11-15T10:15:00.000Z"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": {
    "id": "https://example.com/reader",
    "type": "SoftwareApplication",
    "name": "ePub Reader",
    "version": "1.2.3"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.com/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}

A.2 AssessmentEvent

AssessmentEvent Started image

A Caliper AssessmentEvent models learner interactions with assessments instruments such as online tests or quizzes.

IRI
http://purl.imsglobal.org/caliper/AssessmentEvent
Term
AssessmentEvent
Supertype
Event
Properties
The AssessmentEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term AssessmentEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the Started, Paused, Resumed, Restarted, Reset, and Submitted actions only. Required
object Assessment | IRI The object value MUST be expressed either as an object or as a string corresponding to the object's IRI. Required
generated Attempt | IRI The generated value MUST be expressed either as an object or as a string corresponding to the generated entity's IRI. Optional
Figure 17 - AssessmentEvent (Started) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:27734504-068d-4596-861c-2315be33a2a2",
  "type": "AssessmentEvent",
  "profile": "AssessmentProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Started",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
    "type": "Assessment",
    "name": "Quiz One",
    "dateToStartOn": "2016-11-14T05:00:00.000Z",
    "dateToSubmit": "2016-11-18T11:59:59.000Z",
    "maxAttempts": 2,
    "maxSubmits": 2,
    "maxScore": 25.0,
    "version": "1.0"
  },
  "generated": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": "https://example.edu/users/554433",
    "assignable": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
    "count": 1,
    "dateCreated": "2016-11-15T10:15:00.000Z",
    "startedAtTime": "2016-11-15T10:15:00.000Z"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": {
    "id": "https://example.edu",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 18 - AssessmentEvent (Submitted) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:dad88464-0c20-4a19-a1ba-ddf2f9c3ff33",
  "type": "AssessmentEvent",
  "profile": "AssessmentProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Submitted",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
    "type": "Assessment",
    "name": "Quiz One",
    "dateToStartOn": "2016-11-14T05:00:00.000Z",
    "dateToSubmit": "2016-11-18T11:59:59.000Z",
    "maxAttempts": 2,
    "maxSubmits": 2,
    "maxScore": 25.0,
    "version": "1.0"
  },
  "generated": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": "https://example.edu/users/554433",
    "assignable": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
    "count": 1,
    "dateCreated": "2016-11-15T10:15:00.000Z",
    "startedAtTime": "2016-11-15T10:15:00.000Z",
    "endedAtTime": "2016-11-15T10:25:30.000Z",
    "duration": "PT10M30S"
  },
  "eventTime": "2016-11-15T10:25:30.000Z",
  "edApp": {
    "id": "https://example.edu",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}

A.3 AssessmentItemEvent

AssessmentItemEvent Started image

A Caliper AssessmentItemEvent models a learner's interaction with an individual AssessmentItem.

IRI
http://purl.imsglobal.org/caliper/AssessmentItemEvent
Term
AssessmentItemEvent
Supertype
Event
Properties
The AssessmentItemEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term AssessmentItemEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the Started, Skipped, and Completed actions only. Required
object AssessmentItem | IRI The object value MUST be expressed either as an object or as a string corresponding to the object's IRI. Required
generated Response | IRI For a completed action a generated Response or a subtype. The generated value MUST be expressed either as an object or as a string corresponding to the generated entity's IRI. Optional
referrer AssessmentItem | IRI The previous AssessmentItem attempted MAY be specified as the referrer. The referrer value MUST be expressed either as an object or as a string corresponding to the referrer's IRI. Optional
Figure 19 - AssessmentItemEvent (Completed) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:e5891791-3d27-4df1-a272-091806a43dfb",
  "type": "AssessmentItemEvent",
  "profile": "AssessmentProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Completed",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3",
    "type": "AssessmentItem",
    "name": "Assessment Item 3",
    "isPartOf": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
      "type": "Assessment"
    },
    "dateToStartOn": "2016-11-14T05:00:00.000Z",
    "dateToSubmit": "2016-11-18T11:59:59.000Z",
    "maxAttempts": 2,
    "maxSubmits": 2,
    "maxScore": 1.0,
    "isTimeDependent": false,
    "version": "1.0"
  },
  "generated": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3/users/554433/responses/1",
    "type": "FillinBlankResponse",
    "attempt": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3/users/554433/attempts/1",
      "type": "Attempt",
      "assignee": "https://example.edu/users/554433",
      "assignable": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3",
        "type": "AssessmentItem",
        "name": "Assessment Item 3",
        "isPartOf": {
          "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
          "type": "Assessment"
        }
      },
      "isPartOf": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
      "count": 1,
      "dateCreated": "2016-11-15T10:15:02.000Z",
      "startedAtTime": "2016-11-15T10:15:02.000Z",
      "endedAtTime": "2016-11-15T10:15:12.000Z"
    },
    "dateCreated": "2016-11-15T10:15:12.000Z",
    "startedAtTime": "2016-11-15T10:15:02.000Z",
    "endedAtTime": "2016-11-15T10:15:12.000Z",
    "values": ["subject", "object", "predicate"]
  },
  "eventTime": "2016-11-15T10:15:12.000Z",
  "edApp": {
    "id": "https://example.edu",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [
      "Learner"
    ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 20 - AssessmentItemEvent (Skipped) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:04e27704-73bf-4d3c-912c-1b2da40aef8f",
  "type": "AssessmentItemEvent",
  "profile": "AssessmentProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Skipped",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/2",
    "type": "AssessmentItem",
    "name": "Assessment Item 2",
    "isPartOf": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
      "type": "Assessment"
    },
    "dateToStartOn": "2016-11-14T05:00:00.000Z",
    "dateToSubmit": "2016-11-18T11:59:59.000Z",
    "maxAttempts": 2,
    "maxSubmits": 2,
    "maxScore": 1.0,
    "isTimeDependent": false,
    "version": "1.0"
  },
  "eventTime": "2016-11-15T10:14:30.000Z",
  "edApp": {
    "id": "https://example.edu",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 21 - AssessmentItemEvent (Started) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:1b557176-ba67-4624-b060-6bee670a3d8e",
  "type": "AssessmentItemEvent",
  "profile": "AssessmentProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Started",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3",
    "type": "AssessmentItem",
    "name": "Assessment Item 3",
    "isPartOf": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
      "type": "Assessment"
    },
    "dateToStartOn": "2016-11-14T05:00:00.000Z",
    "dateToSubmit": "2016-11-18T11:59:59.000Z",
    "maxAttempts": 2,
    "maxSubmits": 2,
    "maxScore": 1.0,
    "isTimeDependent": false,
    "version": "1.0"
  },
  "generated": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": "https://example.edu/users/554433",
    "assignable": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3",
    "isPartOf": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
      "type": "Attempt"
    },
    "count": 1,
    "dateCreated": "2016-11-15T10:15:00.000Z",
    "startedAtTime": "2016-11-15T10:15:00.000Z"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": {
    "id": "https://example.edu",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}

A.4 AssignableEvent

AssignableEvent Activated image

A Caliper AssignableEvent models activities associated with the assignment of digital content assigned to a learner for completion.

IRI
http://purl.imsglobal.org/caliper/AssignableEvent
Term
AssignableEvent
Supertype
Event
Properties
The AssignableEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term AssignableEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the Activated, Deactivated, Started, Completed, Submitted, and Reviewed actions only. Required
object AssignableDigitalResource | IRI The AssignableDigitalResource that constitutes the object of the interaction. The object value MUST be expressed either as an object or as a string corresponding to the object's IRI. Required
target Frame | IRI A Frame that represents a particular segment or location within the object. The target value MUST be expressed either as an object or as a string corresponding to the target entity's IRI. Optional
generated Attempt | IRI For Started, Completed and Reviewed actions, the actor's Attempt SHOULD be specified. The generated value MUST be expressed either as an object or as a string corresponding to the generated entity's IRI. Optional
Figure 22 - AssignableEvent (Activated) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:2635b9dd-0061-4059-ac61-2718ab366f75",
  "type": "AssignableEvent",
  "profile": "AssignableProfile",
  "actor": {
    "id": "https://example.edu/users/112233",
    "type": "Person"
  },
  "action": "Activated",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
    "type": "Assessment",
    "name": "Quiz One",
    "dateCreated": "2016-08-01T06:00:00.000Z",
    "dateModified": "2016-09-02T11:30:00.000Z",
    "datePublished": "2016-11-12T10:10:00.000Z",
    "dateToActivate": "2016-11-12T10:15:00.000Z",
    "dateToStartOn": "2016-11-14T05:00:00.000Z",
    "dateToSubmit": "2016-11-18T11:59:59.000Z",
    "maxAttempts": 2,
    "maxSubmits": 2,
    "maxScore": 25.0,
    "version": "1.0"
  },
  "eventTime": "2016-11-12T10:15:00.000Z",
  "edApp": {
    "id": "https://example.edu",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/112233",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Instructor" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/f095bbd391ea4a5dd639724a40b606e98a631823",
    "type": "Session",
    "startedAtTime": "2016-11-12T10:00:00.000Z"
  }
}

A.5 FeedbackEvent

Feedback Event Ranked Feedback Event Commented

A Caliper FeedbackEvent models a Person providing informal feedback on an Entity, typically a DigitalResource or another Person.

IRI
https://purl.imsglobal.org/caliper/FeedbackEvent
Term
FeedbackEvent
Supertype
Event
Properties
The FeedbackEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term FeedbackEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the Commented and Ranked actions only. Required
object Entity | IRI The Entity that is the target of the feedback. The object value MUST be expressed either as an object or as a string corresponding to the resource's IRI. Required
target Frame | IRI If the object of the feedback is a particular segment of a DigitalResource use a Frame to mark its location. The target value MUST be expressed either as an object or as a string corresponding to the target entity’s IRI. Optional
generated Rating | Comment | IRI The Rating or Comment entity that describes the feedback provided. If the action is Ranked then the generated value MUST be expressed as a Rating. If the action is Commented then the generated value MUST be expressed as a Comment. The generated value MUST be expressed either as an object or as a string corresponding to the entity's IRI. Optional
Figure 23 - FeedbackEvent (Commented) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:0c81f804-62ee-4953-81c5-62d9579c4369",
  "type": "FeedbackEvent",
  "profile": "FeedbackProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Commented",
  "object": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf",
    "type": "DigitalResource",
    "name": "Course Syllabus",
    "mediaType": "application/pdf",
    "isPartOf": {
      "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
      "type": "DigitalResourceCollection",
      "name": "Course Assets",
      "isPartOf": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1",
        "type": "CourseSection"
      }
    },
    "dateCreated": "2018-08-02T11:32:00.000Z"
  },
  "generated": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/items/6/users/665544/responses/1/comment/1",
    "type": "Comment",
    "commenter": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "commentedOn": {
      "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf",
      "type": "DigitalResource",
      "name": "Course Syllabus",
      "mediaType": "application/pdf",
      "isPartOf": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
        "type": "DigitalResourceCollection",
        "name": "Course Assets",
        "isPartOf": {
          "id": "https://example.edu/terms/201801/courses/7/sections/1",
          "type": "CourseSection"
        }
      },
      "dateCreated": "2018-08-02T11:32:00.000Z"
    },
    "value": "I like what you did here but you need to improve on...",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "eventTime": "2018-11-15T10:05:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2018-11-15T10:00:00.000Z"
  }
}
Figure 24 - FeedbackEvent (Ranked) with Rating with LikertScale JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:a502e4fc-24c1-11e9-ab14-d663bd873d93",
  "type": "FeedbackEvent",
  "profile": "FeedbackProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Ranked",
  "object": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf",
    "type": "DigitalResource",
    "name": "Course Syllabus",
    "mediaType": "application/pdf",
    "isPartOf": {
      "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
      "type": "DigitalResourceCollection",
      "name": "Course Assets",
      "isPartOf": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1",
        "type": "CourseSection"
      }
    },
    "dateCreated": "2018-08-02T11:32:00.000Z"
  },
  "generated": {
    "id": "https://example.edu/users/554433/rating/1",
    "type": "Rating",
    "rater": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "rated": {
      "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf",
      "type": "DigitalResource",
      "name": "Course Syllabus",
      "mediaType": "application/pdf",
      "isPartOf": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
        "type": "DigitalResourceCollection",
        "name": "Course Assets",
        "isPartOf": {
          "id": "https://example.edu/terms/201801/courses/7/sections/1",
          "type": "CourseSection"
        }
      },
      "dateCreated": "2018-08-02T11:32:00.000Z"
    },
    "question": {
      "id": "https://example.edu/question/2",
      "type": "RatingScaleQuestion",
      "questionPosed": "Do you agree with the opinion presented?",
      "scale": {
        "id": "https://example.edu/scale/2",
        "type": "LikertScale",
        "scalePoints": 4,
        "itemLabels": ["Strongly Disagree", "Disagree", "Agree", "Strongly Agree"],
        "itemValues": ["-2", "-1", "1", "2"]
      }
    },
    "selections": ["1"],
    "ratingComment": {
      "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/items/6/users/665544/responses/1/comment/1",
      "type": "Comment",
      "commenter": {
        "id": "https://example.edu/users/554433",
        "type": "Person"
      },
      "commentedOn": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf",
        "type": "DigitalResource",
        "name": "Course Syllabus",
        "mediaType": "application/pdf",
        "isPartOf": {
          "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
          "type": "DigitalResourceCollection",
          "name": "Course Assets",
          "isPartOf": {
            "id": "https://example.edu/terms/201801/courses/7/sections/1",
            "type": "CourseSection"
          }
        },
        "dateCreated": "2018-08-02T11:32:00.000Z"
      },
      "value": "I like what you did here but you need to improve on...",
      "dateCreated": "2018-08-01T06:00:00.000Z"
    },
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "eventTime": "2018-11-15T10:05:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2018-11-15T10:00:00.000Z"
  }
}

A.6 ForumEvent

ForumEvent Subscribed image

A Caliper ForumEvent models learners and others participating in online forum communities. Forums typically encompass one or more threads or topics to which members can subscribe, post messages, and reply to other messages if a threaded discussion is permitted.

IRI
http://purl.imsglobal.org/caliper/ForumEvent
Term
ForumEvent
Supertype
Event
Properties
The ForumEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term ForumEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the Subscribed and Unsubscribed actions only. Required
object Forum | IRI The Forum that comprises the object of this interaction. The object value MUST be expressed either as an object or as a string corresponding to the object's IRI. Required
Figure 25 - ForumEvent (Subscribed Forum) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:a2f41f9c-d57d-4400-b3fe-716b9026334e",
  "type": "ForumEvent",
  "profile": "ForumProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Subscribed",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1",
    "type": "Forum",
    "name": "Caliper Forum",
    "isPartOf": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1",
      "type": "CourseSection"
    },
    "dateCreated": "2016-09-14T11:00:00.000Z"
  },
  "eventTime": "2016-11-15T10:16:00.000Z",
  "edApp": {
    "id": "https://example.edu/forums",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 26 - ForumEvent (Subscribed) Thinned JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:a2f41f9c-d57d-4400-b3fe-716b9026334e",
  "type": "ForumEvent",
  "profile": "ForumProfile",
  "actor": "https://example.edu/users/554433",
  "action": "Subscribed",
  "object": "https://example.edu/terms/201801/courses/7/sections/1/forums/1",
  "eventTime": "2018-11-15T10:16:00.000Z",
  "edApp": "https://example.edu/forums",
  "group": "https://example.edu/terms/201801/courses/7/sections/1",
  "membership": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
  "session": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259"
}

A.7 GradeEvent

GradeEvent Graded image

A Caliper GradeEvent models scoring or grading activities performed by an Agent, typically a Person or a SoftwareApplication.

IRI
http://purl.imsglobal.org/caliper/GradeEvent
Term
GradeEvent
Supertype
Event
Properties
The GradeEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term GradeEvent. Required
actor Agent | IRI An Agent, typically Person or SoftwareApplication, MUST be specified as the actor. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the Graded action only. Required
object Attempt | IRI The completed Attempt. The object value MUST be expressed either as an object or as a string corresponding to the object's IRI. Required
generated Score | IRI The generated Score SHOULD be provided. The generated value MUST be expressed either as an object or as a string corresponding to the generated entity's IRI. Optional
Figure 27 - GradeEvent (Graded Assessment) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:a50ca17f-5971-47bb-8fca-4e6e6879001d",
  "type": "GradeEvent",
  "profile": "GradingProfile",
  "actor": {
    "id": "https://example.edu/autograder",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "action": "Graded",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "assignable": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
      "type": "Assessment"
    },
    "count": 1,
    "dateCreated": "2016-11-15T10:05:00.000Z",
    "startedAtTime": "2016-11-15T10:05:00.000Z",
    "endedAtTime": "2016-11-15T10:55:12.000Z",
    "duration": "PT50M12S"
  },
  "eventTime": "2016-11-15T10:57:06.000Z",
  "edApp": "https://example.edu",
  "generated": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1/scores/1",
    "type": "Score",
    "attempt": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
    "maxScore": 15.0,
    "scoreGiven": 10.0,
    "scoredBy": "https://example.edu/autograder",
    "comment": "auto-graded exam",
    "dateCreated": "2016-11-15T10:56:00.000Z"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  }
}
Figure 28 - GradeEvent (Graded AssessmentItem) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:12c05c4e-253f-4073-9f29-5786f3ff3f36",
  "type": "GradeEvent",
  "profile": "GradingProfile",
  "actor": {
    "id": "https://example.edu/autograder",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "action": "Graded",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "assignable": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3",
      "type": "AssessmentItem",
      "name": "Assessment Item 3",
      "isPartOf": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
        "type": "Assessment"
      }
    },
    "isPartOf": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
    "count": 1,
    "dateCreated": "2016-11-15T10:15:02.000Z",
    "startedAtTime": "2016-11-15T10:15:02.000Z",
    "endedAtTime": "2016-11-15T10:15:12.000Z"
  },
  "eventTime": "2016-11-15T10:57:06.000Z",
  "edApp": "https://example.edu",
  "generated": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3/users/554433/attempts/1/scores/1",
    "type": "Score",
    "attempt": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
    "maxScore": 5.0,
    "scoreGiven": 5.0,
    "scoredBy": "https://example.edu/autograder",
    "comment": "auto-graded exam",
    "dateCreated": "2016-11-15T10:55:05.000Z"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  }
}

A.8 MediaEvent

MediaEvent Paused image

A Caliper MediaEvent models interactions between learners and rich content such as audio, images, and video.

IRI
http://purl.imsglobal.org/caliper/MediaEvent
Term
MediaEvent
Supertype
Event
Properties
The MediaEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term MediaEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the Started, Ended, Paused, Resumed, Restarted, ForwardedTo, JumpedTo, ChangedResolution, ChangedSize, ChangedSpeed, ChangedVolume, EnabledClosedCaptioning, DisabledClosedCaptioning, EnteredFullScreen, ExitedFullScreen, Muted, Unmuted, OpenedPopout, and ClosedPopout actions only. Required
object MediaObject | IRI The MediaObject or a subtype that constitutes the object of the interaction. The object value MUST be expressed either as an object or as a string corresponding to the object's IRI. Required
target MediaLocation | IRI If the MediaEvent object is an AudioObject or VideoObject, a MediaLocation SHOULD be specified in order to provide the currentTime in the audio or video stream that marks the action. If the currentTime is specified, the value MUST be an ISO 8601 formatted duration, e.g., "PT30M54S". The target value MUST be expressed either as an object or as a string corresponding to the target entity's IRI. Optional
Figure 29 - MediaEvent (Paused) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:956b4a02-8de0-4991-b8c5-b6eebb6b4cab",
  "type": "MediaEvent",
  "profile": "MediaProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Paused",
  "object": {
    "id": "https://example.edu/UQVK-dsU7-Y",
    "type": "VideoObject",
    "name": "Information and Welcome",
    "mediaType": "video/ogg",
    "duration": "PT20M20S"
  },
  "target": {
    "id": "https://example.edu/UQVK-dsU7-Y?t=321",
    "type": "MediaLocation",
    "currentTime": "PT05M21S"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": "https://example.edu/player",
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}

A.9 MessageEvent

MessageEvent Posted image

A Caliper MessageEvent describes a Person posting a Message or marking a post as either read or unread.

IRI
http://purl.imsglobal.org/caliper/MessageEvent
Term
MessageEvent
Supertype
Event
Properties
The MessageEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term MessageEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the MarkedAsRead, MarkedAsUnRead, and Posted actions only. Required
object Message | IRI The Message that constitutes the object of the interaction. If the object represents a Message posted in reply to a previous post, the prior post prompting the Message SHOULD be referenced using the Message replyTo property. The object value MUST be expressed either as an object or as a string corresponding to the object's IRI. Required
Figure 30 - MessageEvent (Posted Message) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:0d015a85-abf5-49ee-abb1-46dbd57fe64e",
  "type": "MessageEvent",
  "profile": "ForumProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Posted",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/2/topics/1/messages/2",
    "type": "Message",
    "creators": [
      {
        "id": "https://example.edu/users/554433",
        "type": "Person"
      }
    ],
    "body": "Are the Caliper Sensor reference implementations production-ready?",
    "isPartOf": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/2/topics/1",
      "type": "Thread",
      "name": "Caliper Adoption",
      "isPartOf": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/2",
        "type": "Forum",
        "name": "Caliper Forum"
      }
    },
    "dateCreated": "2016-11-15T10:15:00.000Z"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": {
    "id": "https://example.edu/forums",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 31 - MessageEvent (Posted Message with ReplyTo) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:aed54386-a3fb-45ff-90f9-a35d3daaf031",
  "type": "MessageEvent",
  "profile": "ForumProfile",
  "actor": {
    "id": "https://example.edu/users/778899",
    "type": "Person"
  },
  "action": "Posted",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/2/topics/1/messages/3",
    "type": "Message",
    "creators": [
      {
        "id": "https://example.edu/users/778899",
        "type": "Person"
      }
    ],
    "replyTo": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/2/topics/1/messages/2",
      "type": "Message"
    },
    "isPartOf": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/2/topics/1",
      "type": "Thread",
      "isPartOf": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/2",
        "type": "Forum"
      }
    },
    "dateCreated": "2016-11-15T10:15:30.000Z"
  },
  "eventTime": "2016-11-15T10:15:30.000Z",
  "edApp": {
    "id": "https://example.edu/forums",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/778899",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1d6fa9adf16f4892650e4305f6cf16610905cd50",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:12:00.000Z"
  }
}
Figure 32 - NavigationEvent (NavigatedTo DigitalResourceCollection) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:ff9ec22a-fc59-4ae1-ae8d-2c9463ee2f8f",
  "type": "NavigationEvent",
  "profile": "MediaProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "NavigatedTo",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/resources/2",
    "type": "DigitalResourceCollection",
    "name": "Video Collection",
    "keywords": ["collection", "videos"],
    "dateCreated": "2016-08-01T06:00:00.000Z",
    "dateModified": "2016-09-02T11:30:00.000Z"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "referrer": {
    "id": "https://example.edu/videos/1225",
    "type": "VideoObject",
    "mediaType": "video/ogg",
    "name": "Introduction to IMS Caliper",
    "storageName": "caliper-intro.ogg",
    "dateCreated": "2016-08-01T06:00:00.000Z",
    "duration": "PT1H12M27S",
    "version": "1.1"
  },
  "target": {
    "id": "https://example.edu/videos/5629",
    "type": "VideoObject",
    "mediaType": "video/ogg",
    "name": "IMS Caliper Activity Profiles",
    "storageName": "caliper-activity-profiles.ogg",
    "dateCreated": "2016-08-01T06:00:00.000Z",
    "duration": "PT55M13S",
    "version": "1.1.1"
  },
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 33 - NavigationEvent (NavigatedTo QuestionnaireItem) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:a9ea1cb9-3445-4f5a-b5e5-44630cc054a9",
  "type": "NavigationEvent",
  "profile": "SurveyProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "NavigatedTo",
  "object": {
    "id": "https://example.edu/surveys/100/questionnaires/30/items/2",
    "type": "QuestionnaireItem",
    "question": {
      "id": "https://example.edu/surveys/100/questionnaires/30/items/2/question",
      "type": "OpenEndedQuestion",
      "questionPosed": "What would you change about your course?"
    },
    "categories": ["teaching effectiveness", "Course structure"],
    "weight": 1.0
  },
  "eventTime": "2018-11-12T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/f095bbd391ea4a5dd639724a40b606e98a631823",
    "type": "Session",
    "startedAtTime": "2018-11-12T10:00:00.000Z"
  }
}
Figure 34 - NavigationEvent (NavigatedTo WebPage) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:ff9ec22a-fc59-4ae1-ae8d-2c9463ee2f8f",
  "type": "NavigationEvent",
  "profile": "ReadingProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "NavigatedTo",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/pages/2",
    "type": "WebPage",
    "name": "Learning Analytics Specifications",
    "description": "Overview of Learning Analytics Specifications with particular emphasis on IMS Caliper.",
    "dateCreated": "2016-08-01T09:00:00.000Z"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "referrer": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/pages/1",
    "type": "WebPage"
  },
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 35 - NavigationEvent (NavigatedTo) Thinned JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:71657137-8e6e-44f8-8499-e1c3df6810d2",
  "type": "NavigationEvent",
  "profile": "ReadingProfile",
  "actor": "https://example.edu/users/554433",
  "action": "NavigatedTo",
  "object": "https://example.edu/terms/201601/courses/7/sections/1/pages/2",
  "eventTime": "2016-11-15T10:15:00.000Z",
  "referrer": "https://example.edu/terms/201601/courses/7/sections/1/pages/1",
  "edApp": "https://example.edu",
  "group": "https://example.edu/terms/201601/courses/7/sections/1",
  "membership": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
  "session": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259"
}

A.11 QuestionnaireEvent

QuestionnaireEvent

A Caliper QuestionnaireEvent models activities associated with respondents or raters starting and submitting a Questionnaire.

IRI
https://purl.imsglobal.org/caliper/QuestionnaireEvent
Term
QuestionnaireEvent
Supertype
Event
Properties
QuestionnaireEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to QuestionnaireEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the actions: Started, or Submitted. Required
object Questionnaire | IRI The Questionnaire that the actor is taking. The object value MUST be expressed either as an object or as a string corresponding to the resource's IRI. Required
Figure 36 - QuestionnaireEvent (Started) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:23995ed4-3c6b-11e9-b210-d663bd873d93",
  "type": "QuestionnaireEvent",
  "profile": "SurveyProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Started",
  "object": {
    "id": "https://example.edu/surveys/100/questionnaires/30",
    "type": "Questionnaire",
    "items": [
      {
        "id": "https://example.edu/surveys/100/questionnaires/30/items/1",
        "type": "QuestionnaireItem"
      },
      {
        "id": "https://example.edu/surveys/100/questionnaires/30/items/2",
        "type": "QuestionnaireItem"
      }
    ],
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "eventTime": "2018-11-12T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/f095bbd391ea4a5dd639724a40b606e98a631823",
    "type": "Session",
    "startedAtTime": "2018-11-12T10:00:00.000Z"
  }
}
Figure 37 - QuestionnaireEvent (Submitted) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:79f18ac2-3c6b-11e9-b210-d663bd873d93",
  "type": "QuestionnaireEvent",
  "profile": "SurveyProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Submitted",
  "object": {
    "id": "https://example.edu/surveys/100/questionnaires/30",
    "type": "Questionnaire",
    "items": [
      {
        "id": "https://example.edu/surveys/100/questionnaires/30/items/1",
        "type": "QuestionnaireItem"
      },
      {
        "id": "https://example.edu/surveys/100/questionnaires/30/items/2",
        "type": "QuestionnaireItem"
      }
    ],
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "eventTime": "2018-11-12T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/f095bbd391ea4a5dd639724a40b606e98a631823",
    "type": "Session",
    "startedAtTime": "2018-11-12T10:00:00.000Z"
  }
}

A.12 QuestionnaireItemEvent

QuestionnaireItemEvent

A Caliper QuestionnaireItemEvent models activities associated with respondents or raters starting, completing, or skipping a QuestionnaireItem.

IRI
https://purl.imsglobal.org/caliper/QuestionnaireItemEvent
Term
QuestionnaireItemEvent
Supertype
Event
Properties
QuestionnaireItemEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to QuestionnaireItemEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the actions: Started, Skipped, or Completed. Required
object QuestionnaireItem | IRI The QuestionnaireItem started, attempted, or skipped by the actor. The object value MUST be expressed either as an object or as a string corresponding to the resource's IRI. Required
generated Response | IRI For a Completed action a generated Response MAY be referenced. The generated value MUST be expressed either as an object or as a string corresponding to the Response resource's IRI. Optional
Figure 38 - QuestionnaireItemEvent (Completed OpenEndedQuestion) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:590f1ff2-3c6d-11e9-b210-d663bd873d93",
  "type": "QuestionnaireItemEvent",
  "profile": "SurveyProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Completed",
  "object": {
    "id": "https://example.edu/surveys/100/questionnaires/30/items/2",
    "type": "QuestionnaireItem",
    "question": {
      "id": "https://example.edu/surveys/100/questionnaires/30/items/2/question",
      "type": "OpenEndedQuestion",
      "questionPosed": "What would you change about your course?"
    },
    "categories": ["teaching effectiveness", "Course structure"],
    "weight": 1.0
  },
  "generated": {
    "id": "https://example.edu/surveys/100/questionnaires/30/items/2/users/554433/responses/2",
    "type": "OpenEndedResponse",
    "value": "I feel that ...",
    "startedAtTime": "2018-08-01T05:55:48.000Z",
    "endedAtTime": "2018-08-01T06:00:00.000Z",
    "duration": "PT4M12S",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "eventTime": "2018-11-12T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/f095bbd391ea4a5dd639724a40b606e98a631823",
    "type": "Session",
    "startedAtTime": "2018-11-12T10:00:00.000Z"
  }
}
Figure 39 - QuestionnaireItemEvent (Completed RatingScaleQuestion) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:590f1ff2-3c6d-11e9-b210-d663bd873d93",
  "type": "QuestionnaireItemEvent",
  "profile": "SurveyProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Completed",
  "object": {
    "id": "https://example.edu/surveys/100/questionnaires/30/items/1",
    "type": "QuestionnaireItem",
    "question": {
      "id": "https://example.edu/surveys/100/questionnaires/30/items/1/question",
      "type": "RatingScaleQuestion",
      "questionPosed": "How satisfied are you with our services?",
      "scale": {
        "id": "https://example.edu/scale/2",
        "type": "LikertScale",
        "scalePoints": 4,
        "itemLabels": ["Strongly Disagree", "Disagree", "Agree", "Strongly Agree"],
        "itemValues": ["-2", "-1", "1", "2"]
      }
    },
    "categories": ["teaching effectiveness", "Course structure"],
    "weight": 1.0
  },
  "generated": {
    "id": "https://example.edu/surveys/100/questionnaires/30/items/1/users/554433/responses/1",
    "type": "RatingScaleResponse",
    "selections": ["Satisfied"],
    "startedAtTime": "2018-08-01T05:55:48.000Z",
    "endedAtTime": "2018-08-01T06:00:00.000Z",
    "duration": "PT4M12S",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "eventTime": "2018-11-12T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/f095bbd391ea4a5dd639724a40b606e98a631823",
    "type": "Session",
    "startedAtTime": "2018-11-12T10:00:00.000Z"
  }
}
Figure 40 - QuestionnaireItemEvent (Started) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:23995ed4-3c6b-11e9-b210-d663bd873d93",
  "type": "QuestionnaireItemEvent",
  "profile": "SurveyProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Started",
  "object": {
    "id": "https://example.edu/surveys/100/questionnaires/30/items/1",
    "type": "QuestionnaireItem",
    "question": {
      "id": "https://example.edu/surveys/100/questionnaires/30/items/1/question",
      "type": "RatingScaleQuestion",
      "questionPosed": "How satisfied are you with our services?",
      "scale": {
        "id": "https://example.edu/scale/2",
        "type": "LikertScale",
        "scalePoints": 4,
        "itemLabels": ["Strongly Disagree", "Disagree", "Agree", "Strongly Agree"],
        "itemValues": ["-2", "-1", "1", "2"]
      }
    },
    "categories": ["teaching effectiveness", "Course structure"],
    "weight": 1.0
  },
  "eventTime": "2018-11-12T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/f095bbd391ea4a5dd639724a40b606e98a631823",
    "type": "Session",
    "startedAtTime": "2018-11-12T10:00:00.000Z"
  }
}

A.13 ResourceManagementEvent

ResourceManagementEvent

A Caliper ResourceManagementEvent models a Person managing an Entity.

IRI
https://purl.imsglobal.org/caliper/ResourceManagementEvent
Term
ResourceManagementEvent
Supertype
Event
Properties
The ResourceManagementEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to ResourceManagementEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the Archived, Copied, Created, Deleted, Described, Downloaded, Modified, Printed, Published, Restored, Retrieved, Saved, Unpublished, and Uploaded actions only. Required
object DigitalResource | IRI The DigitalResource that is being managed. The object value MUST be expressed either as an object or as a string corresponding to the resource's IRI. Required
generated DigitalResource | IRI The DigitalResource that was generated by the Copied action. The object value MUST be expressed either as an object or as a string corresponding to the resource's IRI. Required (Copied action only)
Figure 41 - ResourceManagementEvent (Copied) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:d3543a73-e307-4190-a755-5ce7b3187bc5",
  "type": "ResourceManagementEvent",
  "profile": "ResourceManagementProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Copied",
  "object": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf",
    "type": "DigitalResource",
    "name": "Course Syllabus",
    "mediaType": "application/pdf",
    "creators": [
      {
        "id": "https://example.edu/users/554433",
        "type": "Person"
      }
    ],
    "isPartOf": {
      "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
      "type": "DigitalResourceCollection",
      "name": "Course Assets",
      "isPartOf": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1",
        "type": "CourseSection"
      }
    },
    "dateCreated": "2018-08-02T11:32:00.000Z"
  },
  "generated": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus_copy.pdf",
    "type": "DigitalResource",
    "name": "Course Syllabus (copy)",
    "mediaType": "application/pdf",
    "creators": [
      {
        "id": "https://example.edu/users/554433",
        "type": "Person"
      }
    ],
    "isPartOf": {
      "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
      "type": "DigitalResourceCollection",
      "name": "Course Assets",
      "isPartOf": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1",
        "type": "CourseSection"
      }
    },
    "dateCreated": "2018-11-15T10:05:00.000Z"
  },
  "eventTime": "2018-11-15T10:05:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Instructor" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2018-11-15T10:00:00.000Z"
  }
}
Figure 42 - ResourceManagementEvent (Created) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:0c81f804-62ee-4953-81c5-62d9579c4369",
  "type": "ResourceManagementEvent",
  "profile": "ResourceManagementProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Created",
  "object": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf",
    "type": "DigitalResource",
    "name": "Course Syllabus",
    "mediaType": "application/pdf",
    "creators": [
      {
        "id": "https://example.edu/users/554433",
        "type": "Person"
      }
    ],
    "isPartOf": {
      "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
      "type": "DigitalResourceCollection",
      "name": "Course Assets",
      "isPartOf": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1",
        "type": "CourseSection"
      }
    },
    "dateCreated": "2018-08-02T11:32:00.000Z"
  },
  "eventTime": "2018-11-15T10:05:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Instructor" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2018-11-15T10:00:00.000Z"
  }
}
Figure 43 - ResourceManagementEvent (Printed) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:d3543a73-e307-4190-a755-5ce7b3187bc5",
  "type": "ResourceManagementEvent",
  "profile": "ResourceManagementProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Printed",
  "object": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf",
    "type": "DigitalResource",
    "name": "Course Syllabus",
    "mediaType": "application/pdf",
    "creators": [
      {
        "id": "https://example.edu/users/554433",
        "type": "Person"
      }
    ],
    "isPartOf": {
      "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
      "type": "DigitalResourceCollection",
      "name": "Course Assets",
      "isPartOf": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1",
        "type": "CourseSection"
      }
    },
    "dateCreated": "2018-08-02T11:32:00.000Z"
  },
  "eventTime": "2018-11-15T10:05:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Instructor" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2018-11-15T10:00:00.000Z"
  }
}

A.14 SearchEvent

Search Event

A Caliper SearchEvent models a Person querying a resource for information, typically a DigitalResource or SoftwareApplication. A SearchResponse may be referenced using the generated property.

IRI
https://purl.imsglobal.org/caliper/SearchEvent
Term
SearchEvent
Supertype
Event
Properties
The SearchEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the term SearchEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the Searched action only. Required
object Entity | IRI The Entity, typically a DigitalResource or SoftwareApplication, that is the target of the search. The object value MUST be expressed either as an object or as a string corresponding to the resources's IRI. Required
generated SearchResponse | IRI The SearchResponse generated by the search provider that describes the search criteria, count of search results returned (if any), and references to the search result items (if any) returned by the search. The SearchResponse value MUST be expressed either as an object or as a string corresponding to the query’s IRI. Optional
Figure 44 - SearchEvent (Searched) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:cb3878ed-8240-4c6d-9fee-77221810f5e4",
  "type": "SearchEvent",
  "profile": "SearchProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Searched",
  "object": {
    "id": "https://example.edu/catalog",
    "type": "SoftwareApplication"
  },
  "eventTime": "2018-11-15T10:05:00.000Z",
  "generated": {
    "id": "https://example.edu/users/554433/response?query=IMS%20AND%20%28Caliper%20OR%20Analytics%29",
    "type": "SearchResponse",
    "searchProvider": "https://example.edu",
    "searchTarget": "https://example.edu/catalog",
    "query": {
      "id": "https://example.edu/users/554433/search?query=IMS%20AND%20%28Caliper%20OR%20Analytics%29",
      "type": "Query",
      "creator": "https://example.edu/users/554433",
      "searchTarget": "https://example.edu/catalog",
      "searchTerms": "IMS AND (Caliper OR Analytics)",
      "dateCreated": "2018-11-15T10:05:00.000Z"
    },
    "searchResultsItemCount": 3
  },
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": ["Learner"],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2018-11-15T10:00:00.000Z"
  }
}

A.15 SessionEvent

SessionEvent LoggedIn image SessionEvent LoggedOut image SessionEvent TimedOut image

A Caliper SessionEvent models the creation and subsequent termination of a user session established by a Person interacting with a SoftwareApplication.

IRI
http://purl.imsglobal.org/caliper/SessionEvent
Term
SessionEvent
Supertype
Event
Properties
The SessionEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term SessionEvent. Required
actor Person | SoftwareApplication | IRI The Agent who initiated the action. For LoggedIn and LoggedOut actions a Person MUST be specified as the actor. For a TimedOut action a SoftwareApplication MUST be specified as the actor. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the LoggedIn, LoggedOut, and TimedOut actions only. Required
object Session | SoftwareApplication | IRI For LoggedIn and LoggedOut actions a SoftwareApplication MUST be specified as the object. For a TimedOut action the Session MUST be specified as the object. The object value MUST be expressed either as an object or as a string corresponding to the object's IRI. Required
target DigitalResource | IRI When logging in to a SoftwareApplication, if the actor is attempting to access a particular DigitalResource it MAY be designated as the target of the interaction. The target value MUST be expressed either as an object or as a string corresponding to the target entity's IRI. Optional
referrer DigitalResource | SoftwareApplication | IRI The DigitalResource or SoftwareApplication that constitutes the referring context MAY be specified as the referrer. The referrer value MUST be expressed either as an object or as a string corresponding to the referrer's IRI. Optional
Figure 45 - SessionEvent (LoggedIn SoftwareApplication) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:fcd495d0-3740-4298-9bec-1154571dc211",
  "type": "SessionEvent",
  "profile": "SessionProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "LoggedIn",
  "object": {
    "id": "https://example.edu",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": "https://example.edu",
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "user": "https://example.edu/users/554433",
    "dateCreated": "2016-11-15T10:00:00.000Z",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 46 - SessionEvent (LoggedIn SoftwareApplication) with Session with Client JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:4ec2c31e-3ec0-4fe1-a017-b81561b075d7",
  "type": "SessionEvent",
  "profile": "SessionProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "LoggedIn",
  "object": {
    "id": "https://example.edu",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "eventTime": "2016-11-15T20:11:15.000Z",
  "edApp": "https://example.edu",
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "user": "https://example.edu/users/554433",
    "client": {
        "id": "urn:uuid:d71016dc-ed2f-46f9-ac2c-b93f15f38fdc",
        "type": "SoftwareApplication",
        "host": "https://example.edu",
        "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
        "ipAddress": "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
    },
    "dateCreated": "2016-11-15T20:11:15.000Z",
    "startedAtTime": "2016-11-15T20:11:15.000Z"
  }
}
Figure 47 - SessionEvent (LoggedOut) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:a438f8ac-1da3-4d48-8c86-94a1b387e0f6",
  "type": "SessionEvent",
  "profile": "SessionProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "LoggedOut",
  "object": {
    "id": "https://example.edu",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "eventTime": "2016-11-15T11:05:00.000Z",
  "edApp": "https://example.edu",
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "user": "https://example.edu/users/554433",
    "dateCreated": "2016-11-15T10:00:00.000Z",
    "startedAtTime": "2016-11-15T10:00:00.000Z",
    "endedAtTime": "2016-11-15T11:05:00.000Z",
    "duration": "PT3000S"
  }
}
Figure 48 - SessionEvent (TimedOut) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:4e61cf6c-ffbe-45bc-893f-afe7ad4079dc",
  "type": "SessionEvent",
  "profile": "SessionProfile",
  "actor": {
    "id": "https://example.edu",
    "type": "SoftwareApplication"
  },
  "action": "TimedOut",
  "object": {
    "id": "https://example.edu/sessions/7d6b88adf746f0692e2e873308b78c60fb13a864",
    "type": "Session",
    "user": {
      "id": "https://example.edu/users/112233",
      "type": "Person"
    },
    "dateCreated": "2016-11-15T10:15:00.000Z",
    "startedAtTime": "2016-11-15T10:15:00.000Z",
    "endedAtTime": "2016-11-15T11:15:00.000Z",
    "duration": "PT3600S"
  },
  "eventTime": "2016-11-15T11:15:00.000Z",
  "edApp": "https://example.edu"
}

A.16 SurveyEvent

SurveyEvent

A Caliper SurveyEvent models activities associated with calls to participate in a Survey.

IRI
https://purl.imsglobal.org/caliper/SurveyEvent
Term
SurveyEvent
Supertype
Event
Properties
SurveyEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to SurveyEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the actions: OptedIn or OptedOut. . Required
object Survey | IRI The Survey to which the actor is opting into or out of. The object value MUST be expressed either as an object or as a string corresponding to the resource's IRI. Required
Figure 49 - SurveyEvent (OptedIn) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:4bfb7726-3564-11e9-b210-d663bd873d93",
  "type": "SurveyEvent",
  "profile": "SurveyProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "OptedIn",
  "object": {
    "id": "https://example.edu/survey/1",
    "type": "Survey"
  },
  "eventTime": "2018-11-15T10:05:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2018-11-15T10:00:00.000Z"
  }
}

A.17 SurveyInvitationEvent

SurveyInvitationEvent

A Caliper SurveyInvitationEvent models activities associated with calls to participate in a Survey.

IRI
https://purl.imsglobal.org/caliper/SurveyInvitationEvent
Term
SurveyInvitationEvent
Supertype
Event
Properties
SurveyInvitationEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to SurveyInvitationEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the actions: Accepted, Declined, or Sent. Required
object SurveyInvitation | IRI The SurveyInvitation to which the actor is sending out or responding to. The object value MUST be expressed either as an object or as a string corresponding to the resource's IRI. Required
Figure 50 - SurveyInvitationEvent (Accepted) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:534afa10-3564-11e9-b210-d663bd873d93",
  "type": "SurveyInvitationEvent",
  "profile": "SurveyProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Accepted",
  "object": {
    "id": "https://example.edu/surveys/100/invitations/users/112233",
    "type": "SurveyInvitation",
    "sentCount": 1,
    "dateSent": "2018-11-15T10:05:00.000Z",
    "rater": {
      "id": "https://example.edu/users/112233",
      "type": "Person"
    },
    "survey": {
      "id": "https://example.edu/survey/1",
      "type": "Survey"
    },
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "eventTime": "2018-11-15T10:05:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2018-11-15T10:00:00.000Z"
  }
}
Figure 51 - SurveyInvitationEvent (Sent) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:5801f73e-3564-11e9-b210-d663bd873d93",
  "type": "SurveyInvitationEvent",
  "profile": "SurveyProfile",
  "actor": {
    "id": "https://example.edu/users/112233",
    "type": "Person"
  },
  "action": "Sent",
  "object": {
    "id": "https://example.edu/surveys/100/invitations/users/554433",
    "type": "SurveyInvitation",
    "sentCount": 1,
    "dateSent": "2018-11-15T10:05:00.000Z",
    "rater": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "survey": {
      "id": "https://example.edu/survey/1",
      "type": "Survey"
    },
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "eventTime": "2018-11-12T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/112233",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Instructor" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/f095bbd391ea4a5dd639724a40b606e98a631823",
    "type": "Session",
    "startedAtTime": "2018-11-12T10:00:00.000Z"
  }
}

A.18 ThreadEvent

ThreadEvent MarkedAsRead image

A Caliper ThreadEvent models an actor interacting with a Forum thread or topic.

IRI
http://purl.imsglobal.org/caliper/ThreadEvent
Term
ThreadEvent
Supertype
Event
Properties
The ThreadEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the term ThreadEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the MarkedAsRead and MarkedAsUnRead actions only. Required
object Thread | IRI The Thread that constitutes the object of the interaction. The object value MUST be expressed either as an object or as a string corresponding to the object's IRI. Required
Figure 52 - ThreadEvent (MarkedAsRead) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:6b20c5ba-301c-4e56-85a0-2f3d9a94c249",
  "type": "ThreadEvent",
  "profile": "ForumProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "MarkedAsRead",
  "object": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1",
    "type": "Thread",
    "name": "Caliper Information Model",
    "isPartOf": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1",
      "type": "Forum",
      "name": "Caliper Forum",
      "dateCreated": "2016-11-15T10:15:00.000Z"
    },
    "dateCreated": "2016-11-15T10:16:00.000Z"
  },
  "eventTime": "2016-11-15T10:16:00.000Z",
  "edApp": {
    "id": "https://example.edu/forums",
    "type": "SoftwareApplication",
    "version": "v2"
  },
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}

A.19 ToolLaunchEvent

ToolLaunchEvent

The Tool Launch Profile is provisioned with a single ToolLaunchEvent for describing tool launches, typically occuring in the context of an LMS.

The ToolLaunchEvent models an interaction between a Person and external Tool (SoftwareApplication), at a given time and in a given context. It also provides the ability to model a "return response", which in the context of LTI [LTI-13] typically consists of a redirect URL or a specific response message, as defined in for example LTI Deep Linking [LTI-DL-20].

IRI
https://purl.imsglobal.org/caliper/ToolLaunchEvent
Term
ToolLaunchEvent
Supertype
Event
Properties
The ToolLaunchEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Profile-specific type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to ToolLaunchEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to either the Launched or Returned actions. Required
object SoftwareApplication | IRI The SoftwareApplication that is the target of the actor's launch activity. The object value MUST be expressed either as an object or as a string corresponding to the software application's IRI. Required
generated DigitalResource In the case that the workflow comes with a resource intended for the receiver of the workflow message associated with this event (for example, a file, or image, or LTI resource link for the receiver to embed within its system), this property can carry its representation as a Caliper DigitalResource or, more likely, one of its specific subtypes. Optional
target Link | LtiLink The fully qualified URL to which the workflow was redirected. In the case of the Launched action, this would be the fully qualified entry-point on the external tool to which the platform launches. In the case of the Returned action, this would be the fully qualified entry-point on the platform to which the tool is redirecting the workflow after user activity from the original launch finishes (this could be the launch_presentation_return_url in the case of a simple LTI Resource Link request; it could also be the deep_link_return_url in the case of a Deep Linking Response message). Optional
federatedSession LtiSession | IRI The Platform's session, constituting part of the tool launch context. The federatedSession value MUST be expressed either as an object or as a string corresponding to the federatedSession’s IRI. Required when the action value is Launched, otherwise optional. Workflows that include a specific "return message" component (e.g. LTI Deep Linking response messages) SHOULD provide the federatedSession property and SHOULD populate its messageParameters property with the message parameters in the response message.
Figure 53 - ToolLaunchEvent (Launched) with FederatedSession JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:a2e8b214-4d4a-4456-bb4c-099945749117",
  "type": "ToolLaunchEvent",
  "profile": "ToolLaunchProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Launched",
  "object": {
    "id": "https://example.com/lti/tool",
    "type": "SoftwareApplication"
  },
  "eventTime": "2018-11-15T10:15:00.000Z",
  "edApp": {
    "id": "https://example.edu",
    "type": "SoftwareApplication"
  },
  "referrer": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/pages/1",
    "type": "WebPage"
  },
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2018-11-15T10:00:00.000Z"
  },
  "federatedSession": {
    "id": "https://example.edu/lti/sessions/b533eb02823f31024e6b7f53436c42fb99b31241",
    "type": "LtiSession",
    "user": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "dateCreated": "2018-11-15T10:15:00.000Z",
    "startedAtTime": "2018-11-15T10:15:00.000Z",
    "messageParameters": {
       "iss": "https://example.edu",
       "sub": "https://example.edu/users/554433",
       "aud": ["https://example.com/lti/tool"],
       "exp": 1510185728,
       "iat": 1510185228,
       "azp": "962fa4d8-bcbf-49a0-94b2-2de05ad274af",
       "nonce": "fc5fdc6d-5dd6-47f4-b2c9-5d1216e9b771",
       "name": "Ms Jane Marie Doe",
       "given_name": "Jane",
       "family_name": "Doe",
       "middle_name": "Marie",
       "picture": "https://example.edu/jane.jpg",
       "email": "jane@example.edu",
       "locale": "en-US",
       "https://purl.imsglobal.org/spec/lti/claim/deployment_id": "07940580-b309-415e-a37c-914d387c1150",
       "https://purl.imsglobal.org/spec/lti/claim/message_type": "LtiResourceLinkRequest",
       "https://purl.imsglobal.org/spec/lti/claim/version": "1.3.0",
       "https://purl.imsglobal.org/spec/lti/claim/roles": [
          "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Student",
          "http://purl.imsglobal.org/vocab/lis/v2/membership#Learner",
          "http://purl.imsglobal.org/vocab/lis/v2/membership#Mentor"
       ],
       "https://purl.imsglobal.org/spec/lti/claim/role_scope_mentor": [
          "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Administrator"
       ],
       "https://purl.imsglobal.org/spec/lti/claim/context": {
          "id": "https://example.edu/terms/201801/courses/7/sections/1",
          "label": "CPS 435-01",
          "title": "CPS 435 Learning Analytics, Section 01",
          "type": ["http://purl.imsglobal.org/vocab/lis/v2/course#CourseSection"]
       },
       "https://purl.imsglobal.org/spec/lti/claim/resource_link": {
          "id": "200d101f-2c14-434a-a0f3-57c2a42369fd",
          "description": "Assignment to introduce who you are",
          "title": "Introduction Assignment"
       },
       "https://purl.imsglobal.org/spec/lti/claim/tool_platform": {
          "guid": "https://example.edu",
          "contact_email": "support@example.edu",
          "description": "An Example Tool Platform",
          "name": "Example Tool Platform",
          "url": "https://example.edu",
          "product_family_code": "ExamplePlatformVendor-Product",
          "version": "1.0"
       },
       "https://purl.imsglobal.org/spec/lti/claim/launch_presentation": {
          "document_target": "iframe",
          "height": 320,
          "width": 240,
          "return_url": "https://example.edu/terms/201801/courses/7/sections/1/pages/1"
       },
       "https://purl.imsglobal.org/spec/lti/claim/custom": {
          "xstart": "2017-04-21T01:00:00Z",
          "request_url": "https://tool.com/link/123"
       },
       "https://purl.imsglobal.org/spec/lti/claim/lis": {
          "person_sourcedid": "example.edu:71ee7e42-f6d2-414a-80db-b69ac2defd4",
          "course_offering_sourcedid": "example.edu:SI182-F16",
          "course_section_sourcedid": "example.edu:SI182-001-F16"
       },
       "http://www.ExamplePlatformVendor.com/session": {
          "id": "89023sj890dju080"
       }
    }
  }
}
Figure 54 - ToolLaunchEvent (Returned) with FederatedSession JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:a2e8b214-4d4a-4456-bb4c-099945749117",
  "type": "ToolLaunchEvent",
  "profile": "ToolLaunchProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Returned",
  "object": {
    "id": "https://example.com/lti/tool",
    "type": "SoftwareApplication"
  },
  "eventTime": "2018-11-15T10:15:00.000Z",
  "edApp": {
    "id": "https://example.edu",
    "type": "SoftwareApplication"
  },
  "referrer": {
    "id": "https://tool.com/lti/123",
    "type": "LtiLink"
  },
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2018-11-15T10:00:00.000Z"
  },
  "target": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/pages/1",
    "type": "Link"
  },
  "federatedSession": {
    "id": "https://example.edu/lti/sessions/b533eb02823f31024e6b7f53436c42fb99b31241",
    "type": "LtiSession",
    "user": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "dateCreated": "2018-11-15T10:15:00.000Z",
    "startedAtTime": "2018-11-15T10:15:00.000Z"
  }
}

A.20 ToolUseEvent

ToolUseEvent

A Caliper ToolUseEvent models a Person using a learning tool in a way that the tool's creators have determined is an indication of a learning interaction. A ToolUseEvent may include information on the aggregate time or progress the Person has made in the learning tool.

IRI
https://purl.imsglobal.org/caliper/ToolUseEvent
Term
ToolUseEvent
Supertype
Event
Properties
The ToolUseEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Profile-specific type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term ToolUseEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor’s IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the Used action only. Required
object SoftwareApplication | IRI The SoftwareApplication that constitutes the object of the interaction. The object value MUST be expressed either as an object or as a string corresponding to the object’s IRI. Required
target SoftwareApplication | IRI A SoftwareApplication that represents a particular capability or feature provided by the object. The target value MUST be expressed either as an object or as a string corresponding to the target entity’s IRI. Optional
generated AggregateMeasureCollection | IRI An AggregateMeasureCollection created or generated as a result of the interaction. The generated value MUST be expressed either as an object or as a string corresponding to the generated entity’s IRI.
Note that if the sender of the event wants to send aggregate measure information as part of this ToolUseEvent it should, by best practice, send a single AggregateMeasureCollection as the generated value.
Optional
Figure 55 - ToolUseEvent (Used SoftwareApplication) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:7e10e4f3-a0d8-4430-95bd-783ffae4d916",
  "type": "ToolUseEvent",
  "profile": "ToolUseProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Used",
  "object": {
    "id": "https://example.edu",
    "type": "SoftwareApplication"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 56 - ToolUseEvent (Used SoftwareApplication) with Person Anonymous, CourseSection Anonymous and Membership Anonymous JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:7c0fc54b-cf2a-426f-9203-b2c97fb77bfd",
  "type": "ToolUseEvent",
  "profile": "ToolUseProfile",
  "actor": {
    "id": "http://purl.imsglobal.org/caliper/Person",
    "type": "Person"
  },
  "action": "Used",
  "object": {
    "id": "https://example.edu",
    "type": "SoftwareApplication"
  },
  "eventTime": "2018-11-15T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "http://purl.imsglobal.org/caliper/CourseSection",
    "type": "CourseSection"
  },
  "membership": {
    "id": "http://purl.imsglobal.org/caliper/Membership",
    "type": "Membership",
    "member": {
      "id": "http://purl.imsglobal.org/caliper/Person",
      "type": "Person"
    },
    "organization": {
      "id": "http://purl.imsglobal.org/caliper/CourseSection",
      "type": "CourseSection"
    },
    "roles": [ "Learner" ],
    "status": "Active"
  }
}
Figure 57 - ToolUseEvent (Used SoftwareApplication with Progress) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:7e10e4f3-a0d8-4430-95bd-783ffae4d916",
  "type": "ToolUseEvent",
  "profile": "ToolUseProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Used",
  "object": {
    "id": "https://example.edu",
    "type": "SoftwareApplication"
  },
  "eventTime": "2019-11-15T10:15:00.000Z",
  "edApp": "https://example.edu",
  "generated": {
    "id": "urn:uuid:7e10e4f3-a0d8-4430-95bd-783ffae4d912",
    "type": "AggregateMeasureCollection",
    "items": [
        {
            "id": "urn:uuid:21c3f9f2-a9ef-4f65-bf9a-0699ed85e2c7",
            "type": "AggregateMeasure",
            "metric": "MinutesOnTask",
            "name": "Minutes On Task",
            "metricValue": 873.0,
            "startedAtTime": "2019-08-15T10:15:00.000Z",
            "endedAtTime": "2019-11-15T10:15:00.000Z"
        },
        {
            "id": "urn:uuid:c3ba4c01-1f17-46e0-85dd-1e366e6ebb81",
            "type": "AggregateMeasure",
            "metric": "UnitsCompleted",
            "name": "Units Completed",
            "metricValue": 12.0,
            "maxMetricValue": 25.0,
            "startedAtTime": "2019-08-15T10:15:00.000Z",
            "endedAtTime": "2019-11-15T10:15:00.000Z"
        }
    ]
  },
  "group": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1",
      "type": "CourseSection",
      "academicSession": "Fall 2016",
      "courseNumber": "CPS 435-01",
      "name": "CPS 435 Learning Analytics, Section 01",
      "category": "seminar",
      "subOrganizationOf": {
          "id": "https://example.edu/terms/201601/courses/7",
          "type": "CourseOffering",
          "courseNumber": "CPS 435"
      },
      "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "membership": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1/members/554433",
      "type": "Membership",
      "member": {
          "id": "https://example.edu/users/554433",
          "type": "Person"
      },
      "organization": {
          "id": "https://example.edu/terms/201601/courses/7/sections/1",
          "type": "CourseSection",
          "subOrganizationOf": {
              "id": "https://example.edu/terms/201601/courses/7",
              "type": "CourseOffering"
          }
      },
      "roles": [ "Learner" ],
      "status": "Active",
      "dateCreated": "2016-11-01T06:00:00.000Z"
  },
  "session": {
      "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
      "type": "Session",
      "user": {
          "id": "https://example.edu/users/554433",
          "type": "Person"
      },
      "startedAtTime": "2016-09-15T10:00:00.000Z"
  }
}

A.21 ViewEvent

ViewEvent

A Caliper ViewEvent models an actor's examination of digital content whenever the activity emphasizes thoughtful observation or study as opposed to the mere retrieval of a resource.

IRI
https://purl.imsglobal.org/caliper/ViewEvent
Term
ViewEvent
Supertype
Event
Properties
ViewEvent inherits all properties defined by its supertype Event, of which id, type, actor, action, object, and eventTime are required. Additional profile-specific type and value restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to ViewEvent. Required
actor Person | IRI The Person who initiated the action. The actor value MUST be expressed either as an object or as a string corresponding to the actor's IRI. Required
action Term The action or predicate that binds the actor or subject to the object. The value range is limited to the actions: Viewed. Required
object DigitalResource | IRI The DigitalResource that the actor viewed. The object value MUST be expressed either as an object or as a string corresponding to the resource's IRI. Required
Figure 58 - ViewEvent (Viewed Document) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:cd088ca7-c044-405c-bb41-0b2a8506f907",
  "type": "ViewEvent",
  "profile": "ReadingProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Viewed",
  "object": {
    "id": "https://example.edu/etexts/201.epub",
    "type": "Document",
    "name": "IMS Caliper Implementation Guide",
    "dateCreated": "2016-08-01T06:00:00.000Z",
    "datePublished": "2016-10-01T06:00:00.000Z",
    "version": "1.1"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  }
}
Figure 59 - ViewEvent (Viewed Document) Extended JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:3a9bd869-addc-48b1-80f6-a14b2ff591ed",
  "type": "ViewEvent",
  "profile": "ReadingProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Viewed",
  "object": {
    "id": "https://example.edu/etexts/200.epub",
    "type": "Document",
    "name": "IMS Caliper Specification",
    "version": "1.1"
  },
  "eventTime": "2016-11-15T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  },
  "membership": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201601/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2016-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
    "type": "Session",
    "startedAtTime": "2016-11-15T10:00:00.000Z"
  },
  "extensions": {
    "job": {
      "id": "08c1233d-9ba3-40ac-952f-004c47a50ff7",
      "jobTag": "caliper_batch_job",
      "jobDate": "2016-11-16T01:01:00.000Z"
    }
  }
}
Figure 60 - ViewEvent (Viewed Document) with FederatedSession and CourseSection Extended JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:4be6d29d-5728-44cd-8a8f-3d3f07e46b61",
  "type": "ViewEvent",
  "profile": "ReadingProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Viewed",
  "object": {
    "id": "https://example.com/lti/reader/202.epub",
    "type": "Document",
    "name": "Caliper Case Studies",
    "mediaType": "application/epub+zip",
    "dateCreated": "2018-08-01T09:00:00.000Z"
  },
  "eventTime": "2018-11-15T10:20:00.000Z",
  "edApp": "https://example.com",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "extensions": {
        "edu_example_course_section_instructor": "https://example.edu/faculty/1234"
    }
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "federatedSession": {
    "id": "https://example.edu/lti/sessions/b533eb02823f31024e6b7f53436c42fb99b31241",
    "type": "LtiSession",
    "user": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "dateCreated": "2018-11-15T10:15:00.000Z",
    "startedAtTime": "2018-11-15T10:15:00.000Z",
    "messageParameters": {
      "iss": "https://example.edu",
      "sub": "https://example.edu/users/554433",
      "aud": ["https://example.com/lti/tool"],
      "exp": 1510185728,
      "iat": 1510185228,
      "azp": "962fa4d8-bcbf-49a0-94b2-2de05ad274af",
      "nonce": "fc5fdc6d-5dd6-47f4-b2c9-5d1216e9b771",
      "name": "Ms Jane Marie Doe",
      "given_name": "Jane",
      "family_name": "Doe",
      "middle_name": "Marie",
      "picture": "https://example.edu/jane.jpg",
      "email": "jane@example.edu",
      "locale": "en-US",
      "https://purl.imsglobal.org/spec/lti/claim/deployment_id": "07940580-b309-415e-a37c-914d387c1150",
      "https://purl.imsglobal.org/spec/lti/claim/message_type": "LtiResourceLinkRequest",
      "https://purl.imsglobal.org/spec/lti/claim/version": "1.3.0",
      "https://purl.imsglobal.org/spec/lti/claim/roles": [
        "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Student",
        "http://purl.imsglobal.org/vocab/lis/v2/membership#Learner",
        "http://purl.imsglobal.org/vocab/lis/v2/membership#Mentor"
      ],
      "https://purl.imsglobal.org/spec/lti/claim/role_scope_mentor": [
        "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Administrator"
      ],
      "https://purl.imsglobal.org/spec/lti/claim/context": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1",
        "label": "CPS 435-01",
        "title": "CPS 435 Learning Analytics, Section 01",
        "type": ["http://purl.imsglobal.org/vocab/lis/v2/course#CourseSection"]
      },
      "https://purl.imsglobal.org/spec/lti/claim/resource_link": {
        "id": "200d101f-2c14-434a-a0f3-57c2a42369fd",
        "description": "Assignment to introduce who you are",
        "title": "Introduction Assignment"
      },
      "https://purl.imsglobal.org/spec/lti/claim/tool_platform": {
        "guid": "https://example.edu",
        "contact_email": "support@example.edu",
        "description": "An Example Tool Platform",
        "name": "Example Tool Platform",
        "url": "https://example.edu",
        "product_family_code": "ExamplePlatformVendor-Product",
        "version": "1.0"
      },
      "https://purl.imsglobal.org/spec/lti/claim/launch_presentation": {
        "document_target": "iframe",
        "height": 320,
        "width": 240,
        "return_url": "https://example.edu/terms/201801/courses/7/sections/1/pages/1"
      },
      "https://purl.imsglobal.org/spec/lti/claim/custom": {
        "xstart": "2017-04-21T01:00:00Z",
        "request_url": "https://tool.com/link/123"
      },
      "https://purl.imsglobal.org/spec/lti/claim/lis": {
        "person_sourcedid": "example.edu:71ee7e42-f6d2-414a-80db-b69ac2defd4",
        "course_offering_sourcedid": "example.edu:SI182-F18",
        "course_section_sourcedid": "example.edu:SI182-001-F18"
      },
      "http://www.ExamplePlatformVendor.com/session": {
        "id": "89023sj890dju080"
      }
    }
  },
  "session": {
    "id": "https://example.com/sessions/c25fd3da-87fa-45f5-8875-b682113fa5ee",
    "type": "Session",
    "dateCreated": "2018-11-15T10:20:00.000Z",
    "startedAtTime": "2018-11-15T10:20:00.000Z"
  }
}
Figure 61 - ViewEvent (Viewed QuestionnaireItem) JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "urn:uuid:bc780773-ee1e-49f6-ab2b-fe16eb391dd8",
  "type": "ViewEvent",
  "profile": "SurveyProfile",
  "actor": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "action": "Viewed",
  "object": {
    "id": "https://example.edu/surveys/100/questionnaires/30/items/2",
    "type": "QuestionnaireItem",
    "question": {
      "id": "https://example.edu/surveys/100/questionnaires/30/items/2/question",
      "type": "OpenEndedQuestion",
      "questionPosed": "What would you change about your course?"
    },
    "categories": ["teaching effectiveness", "Course structure"],
    "weight": 1.0
  },
  "eventTime": "2018-11-12T10:15:00.000Z",
  "edApp": "https://example.edu",
  "group": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2018"
  },
  "membership": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
    "type": "Membership",
    "member": "https://example.edu/users/554433",
    "organization": "https://example.edu/terms/201801/courses/7/sections/1",
    "roles": [ "Learner" ],
    "status": "Active",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "session": {
    "id": "https://example.edu/sessions/f095bbd391ea4a5dd639724a40b606e98a631823",
    "type": "Session",
    "startedAtTime": "2018-11-12T10:00:00.000Z"
  }
}

B. Entities

See the Entity section for more details.

B.1 Agent

A Caliper Agent is a generic type that represents an Entity that can initiate or perform an action. Utilize Agent only if no suitable subtype exists to represent the actor being described.

IRI
http://purl.imsglobal.org/caliper/Agent
Term
Agent
Supertype
Entity
Subtypes
Organization, Person, SoftwareApplication
Properties
Agent inherits all properties defined by its supertype Entity, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Agent. Required
Figure 62 - Agent JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/agents/99999",
  "type": "Agent",
  "dateCreated": "2016-08-01T06:00:00.000Z",
  "dateModified": "2016-09-02T11:30:00.000Z"
}

B.2 AggregateMeasure

A Caliper AggregateMeasure represents an aggregated measure of a learner's use of a learning tool. For example, an AggregateMeasure may represent the total time on task a learner has spent on a learning tool over a period of time.

IRI
http://purl.imsglobal.org/caliper/AggregateMeasure
Term
AggregateMeasure
Supertype
Entity
Properties
AggregateMeasure inherits all the properties and requirements defined for its supertype Entity, of which id and type are required. AggregateMeasure is also provisioned with five additional properties: value, valueMax, metric, startedAtTime, and endedAtTime. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term AggregateMeasure. Required
metricValue decimal A decimal value representing the total curricular progress the actor has made in the context of the application. Required
maxMetricValue decimal A decimal value representing the total possible curricular progress the actor can make in the context of the application. Optional
metric Enumeration The standard of measurement associated with the progress value. Acceptable values are listed in the Metrics Appendix. Required
startedAtTime DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the metric aggregation was commenced. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
endedAtTime DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the metric aggregation was completed. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
Figure 63 - AggregateMeasure JSON-LD
{
    "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
    "id": "urn:uuid:c3ba4c01-1f17-46e0-85dd-1e366e6ebb81",
    "type": "AggregateMeasure",
    "metric": "UnitsCompleted",
    "name": "Units Completed",
    "metricValue": 12.0,
    "maxMetricValue": 25.0,
    "startedAtTime": "2019-08-15T10:15:00.000Z",
    "endedAtTime": "2019-11-15T10:15:00.000Z"
}

B.3 AggregateMeasureCollection

A Caliper AggregateMeasureCollection represents an unordered collection of AggregateMeasure entities.

IRI
http://purl.imsglobal.org/caliper/AggregateMeasureCollection
Term
AggregateMeasureCollection
Supertype
Collection
Properties
AggregateMeasureCollection inherits all the properties and requirements defined for its supertype Collection, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term AggregateMeasureCollection. Required
items Array An ordered collection of AggregateMeasure entities. Each array item MUST be expressed either as an object or as a string corresponding to the item’s IRI. Optional
Figure 64 - AggregateMeasureCollection JSON-LD
{
    "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
    "id": "urn:uuid:60b4db01-f1e5-4a7f-add9-6a8f761625b1",
    "type": "AggregateMeasureCollection",
    "items": [
        {
            "id": "urn:uuid:21c3f9f2-a9ef-4f65-bf9a-0699ed85e2c7",
            "type": "AggregateMeasure",
            "metric": "MinutesOnTask",
            "name": "Minutes On Task",
            "metricValue": 873.0,
            "startedAtTime": "2019-08-15T10:15:00.000Z",
            "endedAtTime": "2019-11-15T10:15:00.000Z"
        },
        {
            "id": "urn:uuid:c3ba4c01-1f17-46e0-85dd-1e366e6ebb81",
            "type": "AggregateMeasure",
            "metric": "UnitsCompleted",
            "name": "Units Completed",
            "metricValue": 12.0,
            "maxMetricValue": 25.0,
            "startedAtTime": "2019-08-15T10:15:00.000Z",
            "endedAtTime": "2019-11-15T10:15:00.000Z"
        }
    ]
}

B.4 Annotation

A Caliper Annotation is a generic type that represents a comment, explanation, highlight, mark, note, question or tag linked to a DigitalResource. The act of sharing a DigitalResource with others is also considered a form of annotation. Utilize Annotation only if no suitable subtype exists to represent the annotation being described.

IRI
http://purl.imsglobal.org/caliper/Annotation
Term
Annotation
Supertype
Entity
Subtypes
BookmarkAnnotation, HighlightAnnotation, SharedAnnotation, TagAnnotation
Properties
Annotation inherits all properties defined by its supertype Entity, of which id and type are required. Annotation is also provisioned with two additional properties: annotator and annotated. Profile-specific type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Annotation. Required
annotator Person | IRI The Person who created the Annotation. The annotator value MUST be expressed either as an object or as a string corresponding to the annotator's IRI. Optional
annotated DigitalResource | IRI The DigitalResource that was annotated by the annotator. The annotated value MUST be expressed either as an object or as a string corresponding to the annotated resource's IRI. Optional
Figure 65 - Annotation JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.com/users/554433/texts/imscaliperimplguide/annotations/1",
  "type": "Annotation",
  "annotator": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "annotated": {
    "id": "https://example.com/#/texts/imscaliperimplguide/cfi/6/10!/4/2/2/2@0:0",
    "type": "Page"
  },
  "dateCreated": "2016-08-01T06:00:00.000Z"
}

B.5 Assessment

A Caliper Assessment represents an assessment instrument such as a test or quiz.

IRI
https://purl.imsglobal.org/caliper/Collection
Term
Assessment
Supertypes
AssignableDigitalResource, DigitalResourceCollection
Properties
Assessment inherits all properties defined by its supertypes AssignableDigitalResource and DigitalResourceCollection, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Assessment. Required
items Array An ordered collection of AssessmentItem entities. Each array item MUST be expressed either as an object or as a string corresponding to the item's IRI. Optional
Figure 66 - Assessment JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
  "type": "Assessment",
  "name": "Quiz One",
  "items": [
    {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/1",
      "type": "AssessmentItem"
    },
    {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/2",
      "type": "AssessmentItem"
    },
    {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3",
      "type": "AssessmentItem"
    }
  ],
  "dateCreated": "2016-08-01T06:00:00.000Z",
  "dateModified": "2016-09-02T11:30:00.000Z",
  "datePublished": "2016-08-15T09:30:00.000Z",
  "dateToActivate": "2016-08-16T05:00:00.000Z",
  "dateToShow": "2016-08-16T05:00:00.000Z",
  "dateToStartOn": "2016-08-16T05:00:00.000Z",
  "dateToSubmit": "2016-09-28T11:59:59.000Z",
  "maxAttempts": 2,
  "maxScore": 15.0,
  "maxSubmits": 2,
  "version": "1.0"
}

B.6 AssessmentItem

A Caliper AssessmentItem represents a single test question.

IRI
http://purl.imsglobal.org/caliper/AssessmentItem
Term
AssessmentItem
Supertype
AssignableDigitalResource
Properties
AssessmentItem inherits all the properties and requirements defined for its supertype AssignableDigitalResource, of which id, and type are required. AssessmentItem is also provisioned with the additional property isTimeDependent. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term AssessmentItem. Required
isTimeDependent Boolean A boolean value indicating whether or not interacting with the item is time dependent. Optional
Figure 67 - AssessmentItem Extended JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3",
  "type": "AssessmentItem",
  "isPartOf": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
    "type": "Assessment"
  },
  "dateCreated": "2016-08-01T06:00:00.000Z",
  "datePublished": "2016-08-15T09:30:00.000Z",
  "isTimeDependent": false,
  "maxScore": 1.0,
  "maxSubmits": 2,
  "extensions": {
    "questionType": "Dichotomous",
    "questionText": "Is a Caliper SoftwareApplication a subtype of Caliper Agent?",
    "correctResponse": "yes"
  }
}

B.7 AssignableDigitalResource

A Caliper AssignableDigitalResource is a generic type that represents digital content associated with a graded or ungraded assignment. Utilize AssignableDigitalResource only if no suitable subtype exists to represent the resource being described.

IRI
http://purl.imsglobal.org/caliper/AssignableDigitalResource
Term
AssignableDigitalResource
Supertype
DigitalResource
Subtypes
Assessment, AssessmentItem
Properties
AssignableDigitalResource inherits all properties defined by its supertype DigitalResource, of which id and type are required. AssignableDigitalResource is also provisioned with seven additional optional properties: dateToActivate, dateToShow, dateToStartOn, dateToSubmit, maxAttempts, maxSubmits, and maxScore. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term AssignableDigitalResource. Required
dateToActivate DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the resource was activated. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
dateToShow DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the resource should be shown or made available to learners. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
dateToStartOn DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the resource can be started. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
dateToSubmit DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the resource is to be submitted for evaluation. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
maxAttempts integer A non-negative integer that designates the number of permitted attempts. Optional
maxSubmits integer A non-negative integer that designates the number of permitted submissions. Optional
maxScore decimal A number with a fractional part denoted by a decimal separator that designates the maximum score permitted. Optional
Figure 68 - AssignableDigitalResource JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/assign/2",
  "type": "AssignableDigitalResource",
  "name": "Week 9 Reflection",
  "storageName": "assignment-2.pdf",
  "description": "3-5 page reflection on this week's assigned readings.",
  "dateCreated": "2016-11-01T06:00:00.000Z",
  "dateToActivate": "2016-11-10T11:59:59.000Z",
  "dateToShow": "2016-11-10T11:59:59.000Z",
  "dateToStartOn": "2016-11-10T11:59:59.000Z",
  "dateToSubmit": "2016-11-14T11:59:59.000Z",
  "maxAttempts": 2,
  "maxSubmits": 2,
  "maxScore": 50.0
}

B.8 Attempt

A Caliper Attempt provides a count of the number of times an actor has interacted with a DigitalResource along with start time, end time and duration information. An Attempt is generated as the result of an action such as starting an Assessment or Questionnaire.

IRI
http://purl.imsglobal.org/caliper/Attempt
Term
Attempt
Supertype
Entity
Properties
Attempt inherits all properties defined by its supertype Entity, of which id and type are required. Attempt is also provisioned with six additional optional properties: assignee, assignable, count, startedAtTime, endedAtTime, and duration. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Attempt. Required
assignee Person | IRI The Person who initiated the Attempt. The assignee value MUST be expressed either as an object or as a string corresponding to the assignee's IRI. Optional
assignable DigitalResource | IRI The DigitalResource that constitutes the object of the assignment. The assignable value MUST be expressed either as an object or as a string corresponding to the assigned resource's IRI. Optional
count integer The total number of attempts inclusive of the current attempt that have been registered against the assigned DigitalResource. Optional
startedAtTime DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the Attempt was commenced. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
endedAtTime DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the Attempt was completed or terminated. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
duration Duration A time interval that represents the time taken to complete the Attempt. If a duration is specified the value MUST conform to the ISO 8601 duration format. Optional
Figure 69 - Attempt JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
  "type": "Attempt",
  "assignable": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
    "type": "Assessment"
  },
  "assignee": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "count": 1,
  "dateCreated": "2016-11-15T10:05:00.000Z",
  "startedAtTime": "2016-11-15T10:05:00.000Z",
  "endedAtTime": "2016-11-15T10:55:30.000Z",
  "duration": "PT50M30S"
}

B.9 AudioObject

A Caliper AudioObject represents an audio or sound file.

IRI
http://purl.imsglobal.org/caliper/AudioObject
Term
AudioObject
Supertype
MediaObject
Properties
AudioObject inherits all properties defined by its supertype MediaObject, of which id and type are required. AudioObject is also provisioned with four additional optional properties: volumeLevel, volumeMin, volumeMax, and muted. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term AudioObject. Required
volumeLevel string A string value indicating the current volume level. Optional
volumeMin string A string value indicating the minimum volume level permitted. Optional
volumeMax string A string value indicating the maximum volume level permitted. Optional
muted Boolean An optional boolean value indicating whether or not the AudioObject has been muted. Optional
Figure 70 - AudioObject JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/audio/765",
  "type": "AudioObject",
  "name": "Audio Recording: IMS Caliper Sensor API Q&A.",
  "mediaType": "audio/ogg",
  "datePublished": "2016-12-01T06:00:00.000Z",
  "duration": "PT55M13S"
}

B.10 BookmarkAnnotation

A Caliper BookmarkAnnotation represents the act of marking a DigitalResource at a particular location.

IRI
http://purl.imsglobal.org/caliper/BookmarkAnnotation
Term
BookmarkAnnotation
Supertype
Annotation
Properties
BookmarkAnnotation inherits all the properties and requirements defined for its supertype Annotation, of which id and type are required. BookmarkAnnotation is also provisioned with the optional property bookmarkNotes. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term BookmarkAnnotation. Required
bookmarkNotes string A string value comprising a plain text rendering of the note that accompanies the bookmark. Optional
Figure 71 - BookmarkAnnotation JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.com/users/554433/texts/imscaliperimplguide/bookmarks/1",
  "type": "BookmarkAnnotation",
  "annotator": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "annotated": {
    "id": "https://example.com/#/texts/imscaliperimplguide/cfi/6/10!/4/2/2/2@0:0",
    "type": "Page"
  },
  "bookmarkNotes": "Caliper profiles model discrete learning activities or supporting activities that facilitate learning.",
  "dateCreated": "2016-08-01T06:00:00.000Z"
}

B.11 Chapter

A Caliper Chapter represents a major sub-division of a piece of digital content.

IRI
http://purl.imsglobal.org/caliper/Chapter
Term
Chapter
Supertype
DigitalResource
Properties
Chapter inherits all properties defined by its supertype DigitalResource, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Chapter. Required
Figure 72 - Chapter JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.com/#/texts/imscaliperimplguide/cfi/6/10",
  "type": "Chapter",
  "name": "The Caliper Information Model",
  "isPartOf": {
    "id": "https://example.com/#/texts/imscaliperimplguide",
    "type": "Document",
    "dateCreated": "2016-10-01T06:00:00.000Z",
    "name": "IMS Caliper Implementation Guide",
    "version": "1.1"
  }
}

B.12 Collection

A Caliper Collection is a generic type that represents an unordered collection of entities. Utilize Collection only if no suitable subtype exists to represent the collection being described.

IRI
https://purl.imsglobal.org/caliper/Collection
Term
Collection
Supertype
Entity
Subtypes
AggregateMeasureCollection, DigitalResourceCollection, Survey
Properties
Collection inherits all properties defined by its supertype Entity, of which id and type are required. Collection is also provisioned with the optional property items. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Collection. Required
items array An ordered collection of entities. Each array item MUST be expressed either as an object or as a string corresponding to the resource's IRI. Optional
Figure 73 - Collection JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/resources/2",
  "type": "Collection",
  "items": [
    {
      "id": "https://example.edu/videos/1225",
      "type": "VideoObject",
      "mediaType": "video/ogg",
      "name": "Introduction to IMS Caliper",
      "storageName": "caliper-intro.ogg",
      "dateCreated": "2019-08-01T06:00:00.000Z",
      "duration": "PT1H12M27S",
      "version": "1.1"
    },
    {
      "id": "https://example.edu/videos/5629",
      "type": "VideoObject",
      "mediaType": "video/ogg",
      "name": "IMS Caliper Activity Profiles",
      "storageName": "caliper-activity-profiles.ogg",
      "dateCreated": "2019-08-01T06:00:00.000Z",
      "duration": "PT55M13S",
      "version": "1.1.1"
    }
  ],
  "dateCreated": "2019-08-01T06:00:00.000Z",
  "dateModified": "2019-09-02T11:30:00.000Z"
}

B.13 Comment

A Caliper Comment models a person's qualitative reactions to a Entity.

IRI
https://purl.imsglobal.org/caliper/Comment
Term
Comment
Supertype
Entity
Properties
Comment inherits all properties defined by its supertype Entity, of which id, and type are required. Comment is also provisioned with additional properties, commenter, commentedOn, and value. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Comment. Required
commenter Person | IRI The Person who provided the comment. The commenter value MUST be expressed either as an object or as a string corresponding to the commenter’s IRI. Optional
commentedOn Entity | IRI The Entity which received the comment. The commentedOn value MUST be expressed either as an object or as a string corresponding to the IRI of the resource that was commented on. Optional
value string A string value representing the comment's textual value. Optional
Figure 74 - Comment JSON-LD
{
    "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
    "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/items/6/users/665544/responses/1/comment/1",
    "type": "Comment",
    "commenter": {
        "id": "https://example.edu/users/554433",
        "type": "Person"
    },
    "commentedOn": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf",
        "type": "DigitalResource",
        "name": "Course Syllabus",
        "mediaType": "application/pdf",
        "isPartOf": {
            "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
            "type": "DigitalResourceCollection",
            "name": "Course Assets",
            "isPartOf": {
                "id": "https://example.edu/terms/201801/courses/7/sections/1",
                "type": "CourseSection"
            }
        },
        "dateCreated": "2018-08-02T11:32:00.000Z"
    },
    "value": "I like what you did here but you need to improve on...",
    "dateCreated": "2018-08-01T06:00:00.000Z"
}

B.14 CourseOffering

A Caliper CourseOffering represents the occurrence of a course during a specified time period.

IRI
http://purl.imsglobal.org/caliper/CourseOffering
Term
CourseOffering
Supertype
Organization
Properties
CourseOffering inherits all properties defined by its supertype Organization, of which id and type are required. CourseOffering is also provisioned with two additional optional properties: courseNumber and academicSession. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term CourseOffering. Required
courseNumber string A string value that constitutes a human-readable identifier for the CourseOffering. Optional
academicSession string A string value that constitutes a human-readable identifier of the designated period in which this CourseOffering occurs. Optional
Figure 75 - CourseOffering JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7",
  "type": "CourseOffering",
  "courseNumber": "CPS 435",
  "academicSession": "Fall 2016",
  "name": "CPS 435 Learning Analytics",
  "otherIdentifiers": [
    {
      "type": "SystemIdentifier",
      "identifier": "example.edu:SI182-F16",
      "identifierType": "LisSourcedId"
    }
  ],
  "dateCreated": "2016-08-01T06:00:00.000Z",
  "dateModified": "2016-09-02T11:30:00.000Z"
}
Figure 76 - CourseOffering Anonymous JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "http://purl.imsglobal.org/caliper/CourseOffering",
  "type": "CourseOffering"
}

B.15 CourseSection

A Caliper CourseSection represents a specific instance of a CourseOffering occurring during a specific semester, term or period.

IRI
http://purl.imsglobal.org/caliper/CourseSection
Term
CourseSection
Supertype
CourseOffering
Properties
CourseSection inherits all properties defined by its supertype CourseOffering, of which id and type are required. CourseSection is also provisioned with the optional property category. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term CourseSection. Required
category string A string value that characterizes the purpose of the section such as lecture, lab or seminar. Optional
Figure 77 - CourseSection JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1",
  "type": "CourseSection",
  "academicSession": "Fall 2016",
  "courseNumber": "CPS 435-01",
  "name": "CPS 435 Learning Analytics, Section 01",
  "otherIdentifiers": [
    {
      "type": "SystemIdentifier",
      "identifier": "example.edu:SI182-001-F16",
      "identifierType": "LisSourcedId"
    }
  ],
  "category": "seminar",
  "subOrganizationOf": {
    "id": "https://example.edu/terms/201601/courses/7",
    "type": "CourseOffering",
    "courseNumber": "CPS 435"
  },
  "dateCreated": "2016-08-01T06:00:00.000Z"
}

B.16 DateTimeQuestion

A Caliper DateTimeQuestion represents a closed-end question type with the response provided in a date and time format.

IRI
https://purl.imsglobal.org/caliper/DateTimeQuestion
Term
DateTimeQuestion
Supertype
Question
Properties
DateTimeQuestion inherits all properties defined by its supertype Question, of which id and type are required. DateTimeQuestion is also provisioned with four additional optional properties: minDateTime, minLabel, maxDateTime, and maxLabel. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term DateTimeQuestion. Required
minDateTime DateTime A DateTime value used to determine the minimum value allowed. Optional
minLabel string The label for the minimum DateTime. Optional
maxDateTime DateTime A DateTime value used to determine the maximum value allowed. Optional
maxLabel string The label for the maximum value. Optional
Figure 78 - DateTimeQuestion JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/surveys/100/questionnaires/30/items/3/question",
  "type": "DateTimeQuestion",
  "questionPosed": "When would you be available for an exam next term?",
  "minDateTime": "2018-09-01T06:00:00.000Z",
  "minLabel": "Start of Term",
  "maxDateTime": "2018-12-30T06:00:00.000Z",
  "maxLabel": "End of Term"
}

B.17 DateTimeResponse

A Caliper DateTimeResponse represents a respondent's response to a DateTimeQuestion.

IRI
https://purl.imsglobal.org/caliper/DateTimeResponse
Term
DateTimeResponse
Supertype
Response
Properties
DateTimeResponse inherits all properties defined by its supertype Response, of which id and type are required. DateTimeResponse is also provisioned with the optional property dateTimeSelected. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term DateTimeResponse. Required
dateTimeSelected DateTime The DateTime selected in response to the question. Optional
Figure 79 - DateTimeResponse JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/surveys/100/questionnaires/30/items/4/users/554433/responses/4",
  "type": "DateTimeResponse",
  "dateTimeSelected": "2018-12-15T06:00:00.000Z",
  "startedAtTime": "2018-08-01T05:55:48.000Z",
  "endedAtTime": "2018-08-01T06:00:00.000Z",
  "duration": "PT4M12S",
  "dateCreated": "2018-08-01T06:00:00.000Z"
}

B.18 DigitalResource

A Caliper DigitalResource is a generic type that represents digital content. Utilize DigitalResource only if no suitable subtype exists to represent the resource being described.

IRI
https://purl.imsglobal.org/caliper/DigitalResource
Term
DigitalResource
Supertype
Entity
Subtypes
AssignableDigitalResource, Chapter, DigitalResourceCollection, Document, Frame, LtiLink, MediaLocation, MediaObject, Message, Page, QuestionnaireItem, SurveyInvitation, WebPage
Properties
DigitalResource inherits all properties defined by its supertype Entity, of which id and type are required. DigitalResource is also provisioned with the additional properties creators, mediaType, keywords, learningObjectives, isPartOf, datePublished, and version. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term DigitalResource. Required
storageName string The name of resource when stored in a file system. Optional
creators Array An ordered collection of Agent entities, typically of type Person, that are responsible for bringing resource into being. Each array item MUST be expressed either as an object or as a string corresponding to the item's IRI. Optional
mediaType string A string value drawn from the list of IANA approved media types and subtypes that identifies the file format of the resource. Optional
keywords Array An ordered collection of one or more string values that represent tags or labels used to identify the resource. Optional
learningObjectives Array An ordered collection of one or more LearningObjective entities that describe what a learner is expected to comprehend or accomplish after engaging with the resource. Each array item MUST be expressed either as an object or as a string corresponding to the item's IRI. Optional
isPartOf Entity | IRI A related Entity that includes or incorporates the resource as a part of its whole. The isPartOf value MUST be expressed either as an object or as a string corresponding to the associated entity's IRI. Optional
datePublished DateTime An ISO 8601 date and time value expressed with millisecond precision that provides the publication date of the resource. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
version string A string value that designates the current form or version of the resource. Optional
Figure 80 - DigitalResource JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/resources/1/syllabus.pdf",
  "type": "DigitalResource",
  "name": "Course Syllabus",
  "storageName": "fall-2016-syllabus.pdf",
  "mediaType": "application/pdf",
  "creators": [
    {
      "id": "https://example.edu/users/223344",
      "type": "Person"
    }
  ],
  "isPartOf": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/resources/1",
    "type": "DigitalResourceCollection",
    "name": "Course Assets",
    "isPartOf": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1",
      "type": "CourseSection"
    }
  },
  "dateCreated": "2016-08-02T11:32:00.000Z"
}

B.19 DigitalResourceCollection

A Caliper DigitalResourceCollection represents an ordered collection of DigitalResource entities.

IRI
https://purl.imsglobal.org/caliper/DigitalResourceCollection
Term
DigitalResourceCollection
Supertypes
Collection, DigitalResource
Subtypes
Assessment, Forum, Questionnaire, Thread
Properties
DigitalResourceCollection inherits all properties defined by its supertypes Collection and DigitalResource, of which id, and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term DigitaResourceCollection. Required
items Array An ordered collection of DigitalResource entities. Each array item MUST be expressed either as an object or as a string corresponding to the item's IRI. Optional
Figure 81 - DigitalResourceCollection JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/resources/2",
  "type": "DigitalResourceCollection",
  "name": "Video Collection",
  "keywords": ["collection", "videos"],
  "items": [
    {
      "id": "https://example.edu/videos/1225",
      "type": "VideoObject",
      "mediaType": "video/ogg",
      "name": "Introduction to IMS Caliper",
      "storageName": "caliper-intro.ogg",
      "dateCreated": "2016-08-01T06:00:00.000Z",
      "duration": "PT1H12M27S",
      "version": "1.1"
    },
    {
      "id": "https://example.edu/videos/5629",
      "type": "VideoObject",
      "mediaType": "video/ogg",
      "name": "IMS Caliper Activity Profiles",
      "storageName": "caliper-activity-profiles.ogg",
      "dateCreated": "2016-08-01T06:00:00.000Z",
      "duration": "PT55M13S",
      "version": "1.1.1"
    }
  ],
  "isPartOf": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "subOrganizationOf": {
      "id": "https://example.edu/terms/201601/courses/7",
      "type": "CourseOffering"
    }
  },
  "dateCreated": "2016-08-01T06:00:00.000Z",
  "dateModified": "2016-09-02T11:30:00.000Z"
}

B.20 Document

A Caliper Document represents textual content.

IRI
http://purl.imsglobal.org/caliper/Document
Term
Document
Supertype
DigitalResource
Properties
Document inherits all properties defined by its supertype DigitalResource, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Document. Required
Figure 82 - Document JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/etexts/201.epub",
  "type": "Document",
  "name": "IMS Caliper Implementation Guide",
  "mediaType": "application/epub+zip",
  "creators": [
    {
      "id": "https://example.edu/people/12345",
      "type": "Person"
    },
    {
      "id": "https://example.com/staff/56789",
      "type": "Person"
    }
  ],
  "dateCreated": "2016-08-01T06:00:00.000Z",
  "datePublished": "2016-10-01T06:00:00.000Z",
  "version": "1.1"
}

B.21 FillinBlankResponse

A Caliper FillinBlankResponse represents a response to an AssessmentItem in which a respondent is asked to provide one or more words, expressions or short phrases that correctly completes a statement.

IRI
http://purl.imsglobal.org/caliper/FillinBlankResponse
Term
FillinBlankResponse
Supertype
Response
Properties
FillinBlankResponse inherits all properties defined by its supertype Response, of which id and type are required. FillinBlankResponse is also provisioned with the optional property values. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term FillinBlankResponse. Required
values Array An ordered collection of one or more string values representing words, expressions or short phrases that constitute the "fill in the blank" response. Optional
Figure 83 - FillinBlankResponse JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/1/users/554433/responses/1",
  "type": "FillinBlankResponse",
  "attempt": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/1/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "assignable": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/1",
      "type": "AssessmentItem",
      "isPartOf": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
        "type": "Assessment"
      }
    },
    "count": 1,
    "startedAtTime": "2016-11-15T10:15:02.000Z",
    "endedAtTime": "2016-11-15T10:15:12.000Z"
  },
  "dateCreated": "2016-11-15T10:15:12.000Z",
  "startedAtTime": "2016-11-15T10:15:02.000Z",
  "endedAtTime": "2016-11-15T10:15:12.000Z",
  "values": [ "data interoperability", "semantic interoperability" ]
}

B.22 Forum

A Caliper Forum represents a channel or virtual space in which group discussions take place. A Forum typically comprises one or more threaded conversations to which members can subscribe, post messages and reply to other messages.

IRI
https://purl.imsglobal.org/caliper/Forum
Term
Forum
Supertype
DigitalResourceCollection
Properties
Forum inherits all properties defined by its supertype DigitalResourceCollection, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Forum. Required
items Array An ordered collection of Thread entities. Each array item MUST be expressed either as an object or as a string corresponding to the item's IRI. Optional
Figure 84 - Forum JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1",
  "type": "Forum",
  "name": "Caliper Forum",
  "items": [
    {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1",
      "type": "Thread",
      "name": "Caliper Information Model",
      "dateCreated": "2016-11-01T09:30:00.000Z"
    },
    {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/2",
      "type": "Thread",
      "name": "Caliper Sensor API",
      "dateCreated": "2016-11-01T09:30:00.000Z"
    },
    {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/3",
      "type": "Thread",
      "name": "Caliper Certification",
      "dateCreated": "2016-11-01T09:30:00.000Z"
    }
  ],
  "isPartOf": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "subOrganizationOf": {
      "id": "https://example.edu/terms/201601/courses/7",
      "type": "CourseOffering"
    }
  },
  "dateCreated": "2016-08-01T06:00:00.000Z",
  "dateModified": "2016-09-02T11:30:00.000Z"
}

B.23 Frame

A Caliper Frame represents a part, portion or segment of a DigitalResource.

IRI
https://purl.imsglobal.org/caliper/Frame
Term
Frame
Supertypes
DigitalResource
Properties
Frame inherits all properties defined by its supertype DigitalResource, of which id, and type are required. Frame is also provisioned with the optional property index. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Frame. Required
index integer A non-negative integer that represents the position of the Frame. Optional
Figure 85 - Frame JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/etexts/201?index=2502",
  "type": "Frame",
  "dateCreated": "2016-08-01T06:00:00.000Z",
  "index": 2502,
  "isPartOf": {
    "id": "https://example.edu/etexts/201",
    "type": "Document",
    "name": "IMS Caliper Implementation Guide",
    "version": "1.1"
  }
} 

B.24 Group

A Caliper Group represents an ad-hoc, informal or short-lived collection of people organized for some common educational or social purpose. A Group can act as an Agent. It can be linked both to a parent Organization and to its members.

IRI
http://purl.imsglobal.org/caliper/Group
Term
Group
Supertype
Organization
Properties
Group inherits all properties defined by its supertype Organization, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Group. Required
Figure 86 - Group JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/groups/2",
  "type": "Group",
  "name": "Discussion Group 2",
  "subOrganizationOf": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "subOrganizationOf": {
      "id": "https://example.edu/terms/201601/courses/7",
      "type": "CourseOffering"
    }
  },
  "members": [
    {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    {
      "id": "https://example.edu/users/778899",
      "type": "Person"
    },
    {
      "id": "https://example.edu/users/445566",
      "type": "Person"
    },
    {
      "id": "https://example.edu/users/667788",
      "type": "Person"
    },
    {
      "id": "https://example.edu/users/889900",
      "type": "Person"
    }
  ],
  "dateCreated": "2016-11-01T06:00:00.000Z"
}

B.25 HighlightAnnotation

A Caliper HighlightAnnotation represents the act of marking a particular segment of a DigitalResource between two known coordinates.

IRI
http://purl.imsglobal.org/caliper/HighlightAnnotation
Term
HighlightAnnotation
Supertype
Annotation
Properties
HighlightAnnotation inherits all the properties and requirements defined for its supertype Annotation, of which id and type are required. HighlightAnnotation is also provisioned with the optional property selectionText. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term HighlightAnnotation. Required
selectionText string A string value representing a plain-text rendering of the highlighted segment of the annotated DigitalResource. Optional
Figure 87 - HighlightAnnotation JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/users/554433/etexts/201/highlights/20",
  "type": "HighlightAnnotation",
  "annotator": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "annotated": {
    "id": "https://example.edu/etexts/201",
    "type": "Document"
  },
  "selection": {
    "type": "TextPositionSelector",
    "start": 2300,
    "end": 2370
  },
  "selectionText": "ISO 8601 formatted date and time expressed with millisecond precision.",
  "dateCreated": "2016-08-01T06:00:00.000Z"
}

B.26 ImageObject

A Caliper ImageObject represents an image file.

IRI
http://purl.imsglobal.org/caliper/ImageObject
Term
ImageObject
Supertype
MediaObject
Properties
ImageObject inherits all properties defined by its supertype MediaObject, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term ImageObject. Required
Figure 88 - ImageObject JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/images/caliper_lti.jpg",
  "type": "ImageObject",
  "name": "IMS Caliper/LTI Integration Work Flow",
  "mediaType": "image/jpeg",
  "dateCreated": "2016-09-01T06:00:00.000Z"
}

B.27 LearningObjective

A Caliper LearningObjective represents a brief statement of what a learner should know or be able to perform after completing a unit of instruction or a period of learning.

IRI
http://purl.imsglobal.org/caliper/LearningObjective
Term
LearningObjective
Supertype
Entity
Properties
LearningObjective inherits all properties defined by its supertype Entity, of which id and type are required. Profile-specific type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term LearningObjective. Required

B.28 LikertScale

A Caliper LikertScale models a Likert scale employed in order to capture some likert rating.

IRI
https://purl.imsglobal.org/caliper/LikertScale
Term
LikertScale
Supertype
Scale
Properties
LikertScale inherits all properties defined by its supertype Scale, of which id and type are required. LikertScale is also provisioned with the additional properties scalePoints, itemLabels, and itemValues. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term LikertScale. Required
scalePoints integer A integer value used to determine the amount of points on the LikertScale. Optional
itemLabels Array The ordered list of labels for each point on the scale. The values MUST be cast as strings. Optional
itemValues Array The ordered list of values for each point on the scale. The values MUST be cast as strings. Optional
Figure 89 - LikertScale JSON-LD
{
    "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
    "id": "https://example.edu/scale/2",
    "type": "LikertScale",
    "scalePoints": 4,
    "itemLabels": ["Strongly Disagree", "Disagree", "Agree", "Strongly Agree"],
    "itemValues": ["-2", "-1", "1", "2"]
}

B.31 LtiSession

A Caliper LtiSession represents an LTI platform user session.

IRI
https://purl.imsglobal.org/caliper/LtiSession
Term
LtiSession
Supertype
Session
Properties
LtiSession inherits all properties defined by its supertype Session, of which id and type are required. LtiSession is also provisioned with the optional property messageParameters. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term LtiSession. Required
messageParameters Object A map of LTI-specified message parameters that provide platform-related contextual information. LTI message parameters of whatever type (i.e., required, recommended, optional, custom and extension) MAY be referenced. Optional
Figure 92 - LtiSession JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/lti/sessions/b533eb02823f31024e6b7f53436c42fb99b31241",
  "type": "LtiSession",
    "user": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
  },
  "dateCreated": "2018-11-15T10:15:00.000Z",
  "startedAtTime": "2018-11-15T10:15:00.000Z",
  "messageParameters": {
     "iss": "https://example.edu",
     "sub": "https://example.edu/users/554433",
     "aud": ["https://example.com/lti/tool"],
     "exp": 1510185728,
     "iat": 1510185228,
     "azp": "962fa4d8-bcbf-49a0-94b2-2de05ad274af",
     "nonce": "fc5fdc6d-5dd6-47f4-b2c9-5d1216e9b771",
     "name": "Ms Jane Marie Doe",
     "given_name": "Jane",
     "family_name": "Doe",
     "middle_name": "Marie",
     "picture": "https://example.edu/jane.jpg",
     "email": "jane@example.edu",
     "locale": "en-US",
     "https://purl.imsglobal.org/spec/lti/claim/deployment_id": "07940580-b309-415e-a37c-914d387c1150",
     "https://purl.imsglobal.org/spec/lti/claim/message_type": "LtiResourceLinkRequest",
     "https://purl.imsglobal.org/spec/lti/claim/version": "1.3.0",
     "https://purl.imsglobal.org/spec/lti/claim/roles": [
        "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Student",
        "http://purl.imsglobal.org/vocab/lis/v2/membership#Learner",
        "http://purl.imsglobal.org/vocab/lis/v2/membership#Mentor"
     ],
     "https://purl.imsglobal.org/spec/lti/claim/role_scope_mentor": [
        "http://purl.imsglobal.org/vocab/lis/v2/institution/person#Administrator"
     ],
     "https://purl.imsglobal.org/spec/lti/claim/context": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1",
        "label": "CPS 435-01",
        "title": "CPS 435 Learning Analytics, Section 01",
        "type": ["http://purl.imsglobal.org/vocab/lis/v2/course#CourseSection"]
     },
     "https://purl.imsglobal.org/spec/lti/claim/resource_link": {
        "id": "200d101f-2c14-434a-a0f3-57c2a42369fd",
        "description": "Assignment to introduce who you are",
        "title": "Introduction Assignment"
     },
     "https://purl.imsglobal.org/spec/lti/claim/tool_platform": {
        "guid": "https://example.edu",
        "contact_email": "support@example.edu",
        "description": "An Example Tool Platform",
        "name": "Example Tool Platform",
        "url": "https://example.edu",
        "product_family_code": "ExamplePlatformVendor-Product",
        "version": "1.0"
     },
     "https://purl.imsglobal.org/spec/lti/claim/launch_presentation": {
        "document_target": "iframe",
        "height": 320,
        "width": 240,
        "return_url": "https://example.edu/terms/201801/courses/7/sections/1/pages/1"
     },
     "https://purl.imsglobal.org/spec/lti/claim/custom": {
        "xstart": "2017-04-21T01:00:00Z",
        "request_url": "https://tool.com/link/123"
     },
     "https://purl.imsglobal.org/spec/lti/claim/lis": {
        "person_sourcedid": "example.edu:71ee7e42-f6d2-414a-80db-b69ac2defd4",
        "course_offering_sourcedid": "example.edu:SI182-F18",
        "course_section_sourcedid": "example.edu:SI182-001-F18"
     },
     "http://www.ExamplePlatformVendor.com/session": {
        "id": "89023sj890dju080"
     }
  }
}

B.32 MediaLocation

A Caliper MediaLocation provides the current playback position in a MediaObject such as an AudioObject or VideoObject.

IRI
http://purl.imsglobal.org/caliper/MediaLocation
Term
MediaLocation
Supertype
DigitalResource
Properties
MediaLocation inherits all properties defined by its supertype DigitalResource, of which id and type are required. MediaLocation is also provisioned with the optional property currentTime. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term MediaLocation. Required
currentTime Duration A time interval or duration that represents the current playback position measured from the beginning of an AudioObject or VideoObject. If a currentTime is specified the value MUST conform to the ISO 8601 duration format. Optional
Figure 93 - MediaLocation JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/videos/1225",
  "type": "MediaLocation",
  "currentTime": "PT30M54S",
  "dateCreated": "2016-08-01T06:00:00.000Z"
}

B.33 MediaObject

A Caliper MediaObject represents a generic piece of media content. Utilize MediaObject only if no suitable subtype exists to represent the resource being described.

IRI
https://purl.imsglobal.org/caliper/MediaObject
Term
MediaObject
Supertype
DigitalResource
Subtypes
AudioObject, ImageObject, VideoObject
Properties
MediaObject inherits all properties defined by its supertype DigitalResource, of which id and type are required. MediaObject is also provisioned with the optional property duration. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term MediaObject. Required
duration Duration An optional time interval that represents the total time required to view and/or listen to the MediaObject at normal speed. If a duration is specified the value MUST conform to the ISO 8601 duration format. Optional
Figure 94 - MediaObject JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/media/54321",
  "type": "MediaObject",
  "dateCreated": "2016-08-01T06:00:00.000Z",
  "dateModified": "2016-09-02T11:30:00.000Z",
  "duration": "PT1H17M50S"
}

B.34 Membership

A Caliper Membership describes the relationship between an Organization and an Agent, typically a Person (i.e., a member) in terms of the roles assigned and current status.

IRI
http://purl.imsglobal.org/caliper/Membership
Term
Membership
Supertype
Entity
Properties
Membership inherits all properties defined by its supertype Entity, of which id and type are required. Membership is also provisioned with four additional optional properties: organization, member, roles, and status. Profile-specific type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Membership. Required
organization Organization | IRI The Organization associated with the Membership. The Organization value MUST be expressed either as an object or as a string corresponding to the organization's IRI. Optional
member Person | IRI The Person associated with this Membership. The member value MUST be expressed either as an object or as a string corresponding to the member's IRI. Optional
roles Array An ordered collection of organizational roles assigned to the member. Role values are limited to the list of Caliper defined role terms. Whenever a subrole is specified, the core context role SHOULD also be included; for example, a role of Instructor#TeachingAssistant should always be accompanied by the Instructor role. Optional
status Term A string value that indicates the current standing of the member. If a status is specified, the value be chosen from the list of Caliper defined statuses. Optional
Figure 95 - Membership JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/rosters/1/members/554433",
  "type": "Membership",
  "member": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "organization": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "subOrganizationOf": {
      "id": "https://example.edu/terms/201601/courses/7",
      "type": "CourseOffering"
    }
  },
  "roles": [ "Learner" ],
  "status": "Active",
  "dateCreated": "2016-11-01T06:00:00.000Z"
}

B.35 Message

A Caliper Message is a digital form of written communication sent to a recipient. A series of messages may constitute a Thread if they share a common subject and are connected by a reply or by date relationships.

IRI
http://purl.imsglobal.org/caliper/Message
Term
Message
Supertype
DigitalResource
Properties
Message inherits all properties defined by its supertype DigitalResource, of which id and type are required. Message is also provisioned with three additional optional properties: replyTo, body, and attachments. Profile-specific type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Message. Required
replyTo Message | IRI A Message that represents the post to which this Message is directed in reply. The replyTo value MUST be expressed either as an object or as a string corresponding to the associated message's IRI. Optional
body string A string value comprising a plain-text rendering of the body content of the Message. Optional
attachments Array An ordered collection of one or more DigitalResource entities attached to this Message. Each array item MUST be expressed either as an object or as a string corresponding to the item's IRI. Optional
Figure 96 - Message with ReplyTo JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/2/topics/1/messages/3",
  "type": "Message",
  "creators": [
    {
      "id": "https://example.edu/users/778899",
      "type": "Person"
    }
  ],
  "body": "The Caliper working group provides a set of Caliper Sensor reference implementations for the purposes of education and experimentation.  They have not been tested for use in a production environment.  See the Caliper Implementation Guide for more details.",
  "replyTo": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/2/topics/1/messages/2",
    "type": "Message"
  },
  "isPartOf": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/2/topics/1",
    "type": "Thread",
    "isPartOf": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/2",
      "type": "Forum"
    }
  },
  "attachments": [
    {
      "id": "https://example.edu/etexts/201.epub",
      "type": "Document",
      "name": "IMS Caliper Implementation Guide",
      "dateCreated": "2016-10-01T06:00:00.000Z",
      "version": "1.1"
    }
  ],
  "dateCreated": "2016-11-15T10:15:30.000Z"
}

B.36 MultipleChoiceResponse

A Caliper MultipleChoiceResponse represents a response to an AssessmentItem in which a respondent is asked to provide the best possible answer from a list of choices.

IRI
http://purl.imsglobal.org/caliper/MultipleChoiceResponse
Term
MultipleChoiceResponse
Supertype
Response
Properties
MultipleChoiceResponse inherits all properties defined by its supertype Response, of which id and type are required. MultipleChoiceResponse is also provisioned with the optional property value. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term MultipleChoiceResponse. Required
value string A string value that represents the selected option. Optional
Figure 97 - MultipleChoiceResponse JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/2/users/554433/responses/1",
  "type": "MultipleChoiceResponse",
  "attempt": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/2/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "assignable": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/2",
      "type": "AssessmentItem",
      "isPartOf": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
        "type": "Assessment"
      }
    },
    "count": 1,
    "startedAtTime": "2016-11-15T10:15:14.000Z",
    "endedAtTime": "2016-11-15T10:15:20.000Z"
  },
  "dateCreated": "2016-11-15T10:15:20.000Z",
  "startedAtTime": "2016-11-15T10:15:14.000Z",
  "endedAtTime": "2016-11-15T10:15:20.000Z",
  "value": "C"
}

B.37 MultipleResponseResponse

A Caliper MultipleResponseResponse represents a response to an AssessmentItem in which a respondent is asked to select more than one correct answer from a list of choices.

IRI
http://purl.imsglobal.org/caliper/MultipleResponseResponse
Term
MultipleResponseResponse
Supertype
Response
Properties
MultipleResponseResponse inherits all properties defined by its supertype Response, of which id and type are required. MultipleResponseResponse is also provisioned with the optional property values. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term MultipleResponseResponse. Required
values Array An ordered collection of one or more selected options MAY be specified Optional
Figure 98 - MultipleResponseResponse JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3/users/554433/responses/1",
  "type": "MultipleResponseResponse",
  "attempt": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "assignable": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/3",
      "type": "AssessmentItem",
      "isPartOf": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
        "type": "Assessment"
      }
    },
    "count": 1,
    "startedAtTime": "2016-11-15T10:15:22.000Z",
    "endedAtTime": "2016-11-15T10:15:30.000Z"
  },
  "dateCreated": "2016-11-15T10:15:22.000Z",
  "startedAtTime": "2016-11-15T10:15:22.000Z",
  "endedAtTime": "2016-11-15T10:15:30.000Z",
  "values": [ "A", "D", "E" ]
}

B.38 MultiselectQuestion

A Caliper MultiselectQuestion represents a form of a closed-end question type with a pre-defined set of responses where a respondent can choose multiple items in the set.

IRI
https://purl.imsglobal.org/caliper/MultiselectQuestion
Term
MultiselectQuestion
Supertype
Question
Properties
MultiselectQuestion inherits all properties defined by its supertype Question, of which id and type are required. MultiselectQuestion is also provisioned with the optional properties points, itemLabels, and itemValues. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term MultiselectQuestion. Required
points integer A integer value used to determine the amount of points on the MultiselectQuestion. Optional
itemLabels Array The list of labels that describe the set of selectable question options. Each label MUST be cast as a string. Optional
itemValues Array The list of values associated with the set of selectable question options. Each value MUST be cast as a string. Optional
Figure 99 - MultiselectQuestion JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/surveys/100/questionnaires/30/items/4/question",
  "type": "MultiselectQuestion",
  "questionPosed": "What do you want to study today?",
  "points": 4,
  "itemLabels": ["Calculus", "Number theory", "Combinatorics", "Algebra"],
  "itemValues": [
    "https://example.edu/terms/201801/courses/7/sections/1/objectives/1",
    "https://example.edu/terms/201801/courses/7/sections/1/objectives/2",
    "https://example.edu/terms/201801/courses/7/sections/1/objectives/3",
    "https://example.edu/terms/201801/courses/7/sections/1/objectives/4"
  ]
}

B.39 MultiselectResponse

A Caliper MultiselectResponse represents a response to a MultiselectQuestion in which the respondent is permitted to choose one or more options from a pre-defined set of responses.

IRI
https://purl.imsglobal.org/caliper/MultiselectResponse
Term
MultiselectResponse
Supertype
Response
Properties
MultiselectResponse inherits all properties defined by its supertype Response, of which id and type are required. MultiselectResponse is also provisioned with the optional property selections. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term MultiselectResponse. Required
selections Array An array of the values representing the rater's selected responses. Optional
Figure 100 - MultiselectResponse JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/surveys/100/questionnaires/30/items/5/users/554433/responses/5",
  "type": "MultiselectResponse",
  "selections": [
    "https://example.edu/terms/201801/courses/7/sections/1/objectives/1",
    "https://example.edu/terms/201801/courses/7/sections/1/objectives/2"
  ],
  "startedAtTime": "2018-08-01T05:55:48.000Z",
  "endedAtTime": "2018-08-01T06:00:00.000Z",
  "duration": "PT4M12S",
  "dateCreated": "2018-08-01T06:00:00.000Z"
}

B.40 MultiselectScale

A Caliper MultiselectScale models a scale used to capture one or more rating options.

IRI
https://purl.imsglobal.org/caliper/MultiselectScale
Term
MultiselectScale
Supertype
Scale
Properties
MultiselectScale inherits all properties defined by its supertype Scale, of whichid, and type are required. MultiselectScale is also provisioned with six additional properties scalePoints, itemLabels, itemValues, isOrderedSelection, minSelections, and maxSelections. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term MultiselectScale. Required
scalePoints integer A integer value used to determine the amount of points on the MultiselectScale. Optional
itemLabels Array The ordered list of labels for each point on the scale. The values MUST be cast as strings. Optional
itemValues Array The ordered list of values for each point on the scale. The values MUST be cast as strings. Optional
isOrderedSelection boolean Indicates whether the order of the selected items is important. Optional
minSelections integer Indicates the minimum number of selections that can be chosen. Optional
maxSelections integer Indicates the maximum number of selections that can be chosen. Optional
Figure 101 - MultiselectScale JSON-LD
{
    "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
    "id": "https://example.edu/scale/3",
    "type": "MultiselectScale",
    "scalePoints": 5,
    "itemLabels": ["😁", "😃", "😐", "😕", "😟"],
    "itemValues": ["superhappy", "happy", "indifferent", "unhappy", "disappointed"],
    "isOrderedSelection": false,
    "minSelections": 1,
    "maxSelections": 5,
    "dateCreated": "2018-08-01T06:00:00.000Z"
}

B.41 NumericScale

A Caliper NumericScale models a numeric scale used to capture some rating.

IRI
https://purl.imsglobal.org/caliper/NumericScale
Term
NumericScale
Supertype
Scale
Properties
NumericScale inherits all properties defined by its supertype Scale, of which id and type are required. NumericScale is also provisioned with the additional properties minValue, minLabel, maxValue, maxLabel, and valueStep. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term NumericScale. Required
minValue decimal A decimal value used to determine the minimum value of the NumericScale. Optional
minLabel string The label for the minimum value. Optional
maxValue decimal A decimal value used to determine the maximum value of the NumericScale. Optional
maxLabel string The label for the maximum value. Optional
step decimal Indicates the decimal step used for determining the options between the minimum and maximum values. Optional
Figure 102 - NumericScale JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/scale/4",
  "type": "NumericScale",
  "minValue": 0.0,
  "minLabel": "Disliked",
  "maxValue": 10.0,
  "maxLabel": "Liked",
  "step": 0.5,
  "dateCreated": "2018-08-01T06:00:00.000Z"
}

B.42 OpenEndedQuestion

A Caliper OpenEndedQuestion represents a question with no pre-defined response. Respondents can record their response in the form of qualitative feedback with no length limit imposed.

IRI
https://purl.imsglobal.org/caliper/OpenEndedQuestion
Term
OpenEndedQuestion
Supertype
Question
Properties
OpenEndedQuestion inherits all properties defined by its supertype Question, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term OpenEndedQuestion. Required
Figure 103 - OpenEndedQuestion JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/surveys/100/questionnaires/30/items/2/question",
  "type": "OpenEndedQuestion",
  "questionPosed": "What would you change about your course?"
}

B.43 OpenEndedResponse

A Caliper OpenEndedResponse represents a respondent's response to a OpenEndedQuestion.

IRI
https://purl.imsglobal.org/caliper/OpenEndedResponse
Term
OpenEndedResponse
Supertype
Response
Properties
OpenEndedResponse inherits all properties defined by its supertype Response, of which id and type are required. QuestionnaireItem is also provisioned with the optional property value. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term OpenEndedResponse. Required
value string the textual value of the response. Optional
Figure 104 - OpenEndedResponse JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/surveys/100/questionnaires/30/items/2/users/554433/responses/2",
  "type": "OpenEndedResponse",
  "value": "I feel that ...",
  "startedAtTime": "2018-08-01T05:55:48.000Z",
  "endedAtTime": "2018-08-01T06:00:00.000Z",
  "duration": "PT4M12S",
  "dateCreated": "2018-08-01T06:00:00.000Z"
}

B.44 Organization

A Caliper Organization represents a formal collection of people organized for some common educational, social or administrative purpose. An Organization can act as an Agent. It can be linked both to a parent Organization and to its members.

IRI
http://purl.imsglobal.org/caliper/Organization
Term
Organization
Supertype
Agent
Subtypes
CourseOffering, CourseSection, Group
Properties
Organization inherits all properties defined by its supertype Agent, of which id and type are required. Organization is also provisioned with two additional properties: subOrganizationOf and members. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Organization. Required
subOrganizationOf Organization | IRI The parent Organization of this Organization. The subOrganizationOf value MUST be expressed either as an object or as a string corresponding to the parent organization's IRI. Optional
members Array An ordered collection of Agent entities. Each array item MUST be expressed either as an object or as a string corresponding to the item's IRI. Optional
Figure 105 - Organization JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/colleges/1/depts/1",
  "type": "Organization",
  "name": "Computer Science Department",
  "subOrganizationOf": {
    "id": "https://example.edu/colleges/1",
    "type": "Organization",
    "name": "College of Engineering"
  }
}

B.45 Page

A Caliper Page represents an item of paginated content.

IRI
http://purl.imsglobal.org/caliper/Page
Term
Page
Supertype
DigitalResource
Properties
Page inherits all properties defined by its supertype DigitalResource, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Page. Required
Figure 106 - Page JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.com/#/texts/imscaliperimplguide/cfi/6/10!/4/2/2/2@0:0",
  "type": "Page",
  "name": "Page 5",
  "isPartOf": {
    "id": "https://example.com/#/texts/imscaliperimplguide/cfi/6/10",
    "type": "Chapter",
    "name": "Chapter 1",
    "isPartOf": {
      "id": "https://example.com/#/texts/imscaliperimplguide",
      "type": "Document",
      "name": "IMS Caliper Implementation Guide",
      "dateCreated": "2016-10-01T06:00:00.000Z",
      "version": "1.1"
    }
  }
}

B.46 Person

A Caliper Person represents a human being, alive or deceased, real or imaginary.

IRI
http://purl.imsglobal.org/caliper/Person
Term
Person
Supertype
Agent
Properties
Person inherits all properties defined by its supertype Agent, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Person. Required
Figure 107 - Person JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/users/554433",
  "type": "Person",
  "otherIdentifiers": [
    {
      "type": "SystemIdentifier",
      "identifier": "example.edu:71ee7e42-f6d2-414a-80db-b69ac2defd4",
      "identifierType": "LisSourcedId"
    },
    {
      "type": "SystemIdentifier",
      "identifier": "https://example.edu/users/554433",
      "identifierType": "LtiUserId",
      "source":  {
        "id": "https://example.edu",
        "type": "SoftwareApplication"
      }
    },
    {
      "type": "SystemIdentifier",
      "identifier": "jane@example.edu",
      "identifierType": "EmailAddress",
      "source": "https://example.edu"
    },
    {
      "type": "SystemIdentifier",
      "identifier": "4567",
      "identifierType": "SystemId",
      "extensions": {
        "com.examplePlatformVendor.identifier_type": "UserIdentifier"
      }
    }
  ],
  "dateCreated": "2016-08-01T06:00:00.000Z",
  "dateModified": "2016-09-02T11:30:00.000Z"
}
Figure 108 - Person Anonymous JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "http://purl.imsglobal.org/caliper/Person",
  "type": "Person"
}

B.47 Query

A Caliper Query models search criteria created by an actor that targets a searchable resource.

IRI
https://purl.imsglobal.org/caliper/Query
Term
Query
Supertype
Entity
Properties
Query inherits all properties defined by its supertype Entity, of which id and type are required. Query is also provisioned with three additional properties: creator, searchTarget, and searchTerms. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the term Query. Required
creator Person | IRI The Person who devised the search terms comprising this Query. The creator value MUST be expressed either as an object or as a string corresponding to the creator's IRI. Optional
searchTarget Entity | IRI The Entity, typically a DigitalResource or SoftwareApplication, that is the target of the Query. The resourceSearched value MUST be expressed either as an object or as a string corresponding to the resources's IRI. Optional
searchTerms string The search terms employed by the creator of this Query. Optional
Figure 109 - Query JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/users/554433/search?query=IMS%20AND%20%28Caliper%20OR%20Analytics%29",
  "type": "Query",
  "creator": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "searchTarget": {
    "id": "https://example.edu/catalog",
    "type": "SoftwareApplication"
  },
  "searchTerms": "IMS AND (Caliper OR Analytics)",
  "dateCreated": "2018-11-15T10:05:00.000Z"
}

B.48 Question

A Caliper Question is a generic type that represents an interrogative expression designed to elicit information from a respondent, featuring either a closed-end format with a set of predefined responses or an open-ended format. Utilize Question only if no suitable subtype exists to represent the question being described.

IRI
https://purl.imsglobal.org/caliper/Question
Term
Question
Supertype
DigitalResource
Subtypes
DateTimeQuestion, MultiselectQuestion, OpenEndedQuestion, RatingScaleQuestion
Properties
Question inherits all properties defined by its supertype DigitalResource, of which id and type are required. Question is also provisioned with the optional property questionPosed. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Question. Required
questionPosed string A string value comprising the question posed. Optional
Figure 110 - Question JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/question/1",
  "type": "Question",
  "questionPosed": "How would you rate this?"
}

B.49 Questionnaire

A Caliper Questionnaire represents a collection of QuestionnaireItem entities that is designed to elicit information from one or more respondents.

IRI
https://purl.imsglobal.org/caliper/Questionnaire
Term
Questionnaire
Supertype
DigitalResourceCollection
Properties
Questionnaire inherits all properties defined by its supertype DigitalResourceCollection, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Questionnaire. Required
items Array An array of one or more QuestionnaireItem entities that together comprise the Questionnaire. The object value MUST be expressed either as an object or as a string corresponding to the resource's IRI. Required
Figure 111 - Questionnaire JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/surveys/100/questionnaires/30",
  "type": "Questionnaire",
  "items": [
    {
      "id": "https://example.edu/surveys/100/questionnaires/30/items/1",
      "type": "QuestionnaireItem"
    },
    {
      "id": "https://example.edu/surveys/100/questionnaires/30/items/2",
      "type": "QuestionnaireItem"
    }
  ],
  "dateCreated": "2018-08-01T06:00:00.000Z"
}

B.50 QuestionnaireItem

A Caliper QuestionnaireItem represents a Question that is associated with a Questionnaire.

IRI
https://purl.imsglobal.org/caliper/QuestionnaireItem
Term
QuestionnaireItem
Supertype
DigitalResource
Properties
QuestionnaireItem inherits all properties defined by its supertype DigitalResource, of which id and type are required. QuestionnaireItem is also provisioned with the additional properties question, categories, and weight. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term QuestionnaireItem. Required
question Question | IRI The Question entity posed by the QuestionnaireItem. The Question value MUST be expressed either as an object or as a string corresponding to the question's IRI. Optional
categories Array An array of category items comprising the categories the QuestionnaireItem encompasses. Each category item MUST be cast as a string. Optional
weight decimal A decimal value used to determine the weight of the QuestionnaireItem. Optional
Figure 112 - QuestionnaireItem JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/surveys/100/questionnaires/30/items/1",
  "type": "QuestionnaireItem",
  "question": {
    "id": "https://example.edu/surveys/100/questionnaires/30/items/1/question",
    "type": "RatingScaleQuestion",
    "questionPosed": "How satisfied are you with our services?",
    "scale": {
      "id": "https://example.edu/scale/2",
      "type": "LikertScale",
      "scalePoints": 4,
      "itemLabels": ["Strongly Disagree", "Disagree", "Agree", "Strongly Agree"],
      "itemValues": ["-2", "-1", "1", "2"]
    }
  },
  "categories": ["teaching effectiveness", "Course structure"],
  "weight": 1.0
}

B.51 Rating

A Caliper Rating models quantitative reactions to an Entity.

IRI
https://purl.imsglobal.org/caliper/Rating
Term
Rating
Supertype
Entity
Properties
Rating inherits all properties defined by its supertype Entity, of which id and type are required. Rating is also provisioned with additional properties, rater, rated, question, selections, and comment. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Rating. Required
rater Person | IRI The Person who provided the Rating. The rater value MUST be expressed either as an object or as a string corresponding to the rater’s IRI. Optional
rated Entity | IRI The Entity which received the rating. The rated value MUST be expressed either as an object or as a string corresponding to the rated object's IRI. Optional
question Question | IRI The Question used for the Rating. The question value MUST be expressed either as an object or as a string corresponding to the question's IRI. Optional
selections Array An array of the values representing the rater's selected response. Optional
ratingComment Comment | IRI The Comment left with the Rating. The ratingComment value MUST be expressed either as an object or as a string corresponding to the comment’s IRI. Optional
Figure 113 - Rating with LikertScale JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/users/554433/rating/1",
  "type": "Rating",
  "rater": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "rated": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf",
    "type": "DigitalResource",
    "name": "Course Syllabus",
    "mediaType": "application/pdf",
    "isPartOf": {
      "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
      "type": "DigitalResourceCollection",
      "name": "Course Assets",
      "isPartOf": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1",
        "type": "CourseSection"
      }
    },
    "dateCreated": "2018-08-02T11:32:00.000Z"
  },
  "question": {
    "id": "https://example.edu/question/2",
    "type": "RatingScaleQuestion",
    "questionPosed": "Do you agree with the opinion presented?",
    "scale": {
      "id": "https://example.edu/scale/2",
      "type": "LikertScale",
      "scalePoints": 4,
      "itemLabels": ["Strongly Disagree", "Disagree", "Agree", "Strongly Agree"],
      "itemValues": ["-2", "-1", "1", "2"]
    }
  },
  "selections": ["1"],
  "ratingComment": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/items/6/users/665544/responses/1/comment/1",
    "type": "Comment",
    "commenter": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "commentedOn": {
      "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1/syllabus.pdf",
      "type": "DigitalResource",
      "name": "Course Syllabus",
      "mediaType": "application/pdf",
      "isPartOf": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
        "type": "DigitalResourceCollection",
        "name": "Course Assets",
        "isPartOf": {
          "id": "https://example.edu/terms/201801/courses/7/sections/1",
          "type": "CourseSection"
        }
      },
      "dateCreated": "2018-08-02T11:32:00.000Z"
    },
    "value": "I like what you did here but you need to improve on...",
    "dateCreated": "2018-08-01T06:00:00.000Z"
  },
  "dateCreated": "2018-08-01T06:00:00.000Z"
}
Figure 114 - Rating with MultiselectScale JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/users/554433/rating/2",
  "type": "Rating",
  "rater": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "rated": {
    "id": "https://example.edu/terms/201801/courses/7/sections/1/resources/1",
    "type": "DigitalResourceCollection",
    "name": "Course Assets",
    "isPartOf": {
      "id": "https://example.edu/terms/201801/courses/7/sections/1",
      "type": "CourseSection"
    }
  },
  "question": {
    "id": "https://example.edu/question/3",
    "type": "RatingScaleQuestion",
    "questionPosed": "How do you feel about this content? (select one or more)",
    "scale": {
      "id": "https://example.edu/scale/3",
      "type": "MultiselectScale",
      "scalePoints": 5,
      "itemLabels": ["😁", "😃", "😐", "😕", "😟"],
      "itemValues": ["superhappy", "happy", "indifferent", "unhappy", "disappointed"],
      "isOrderedSelection": false,
      "minSelections": 1,
      "maxSelections": 5
    }
  },
  "selections": ["superhappy", "disappointed"],
  "dateCreated": "2018-08-01T06:00:00.000Z"
}

B.52 RatingScaleQuestion

A Caliper RatingScaleQuestion represents a question that employs a Scale.

IRI
https://purl.imsglobal.org/caliper/RatingScaleQuestion
Term
RatingScaleQuestion
Supertype
Question
Properties
RatingScaleQuestion inherits all properties defined by its supertype Question, of which id and type are required. RatingScaleQuestion is also provisioned with the optional property scale. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term RatingScaleQuestion. Required
scale Scale | IRI The Scale used in the question. The scale value MUST be expressed either as an object or as a string corresponding to the scale's IRI. Optional
Figure 115 - RatingScaleQuestion JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/question/2",
  "type": "RatingScaleQuestion",
  "questionPosed": "Do you agree with the opinion presented?",
  "scale": {
    "id": "https://example.edu/scale/2",
    "type": "LikertScale",
    "scalePoints": 4,
    "itemLabels": ["Strongly Disagree", "Disagree", "Agree", "Strongly Agree"],
    "itemValues": ["-2", "-1", "1", "2"],
    "dateCreated": "2018-08-01T06:00:00.000Z"
  }
}

B.53 RatingScaleResponse

A Caliper RatingScaleResponse represents a respondent's response to a RatingScaleQuestion.

IRI
https://purl.imsglobal.org/caliper/RatingScaleResponse
Term
RatingScaleResponse
Supertype
Response
Properties
RatingScaleResponse inherits all properties defined by its supertype Response, of which id and type are required. RatingScaleResponse is also provisioned with the optional property selections. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term RatingScaleResponse. Required
selections Array An array of the values representing the rater's selected responses. Optional
Figure 116 - RatingScaleResponse JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/surveys/100/questionnaires/30/items/1/users/554433/responses/1",
  "type": "RatingScaleResponse",
  "selections": ["Satisfied"],
  "startedAtTime": "2018-08-01T05:55:48.000Z",
  "endedAtTime": "2018-08-01T06:00:00.000Z",
  "duration": "PT4M12S",
  "dateCreated": "2018-08-01T06:00:00.000Z"
}

B.54 Response

A Caliper Response is a generic type that represents the selected option generated by a Person interacting with a DigitalResource such as an AssessmentItem or QuestionnaireItem. Utilize Response only if no suitable subtype exists to represent the response being described.

IRI
https://purl.imsglobal.org/caliper/Response
Term
Response
Supertype
Entity
Subtypes
DateTimeResponse, FillinBlankResponse, MultipleChoiceResponse, MultipleResponseResponse, MultiselectResponse, OpenEndedResponse, RatingScaleResponse, SelectTextResponse, TrueFalseResponse
Properties
Response inherits all properties defined by its supertype Entity, of which id and type are required. Response is also provisioned with four additional properties: attempt, startedAtTime, endedAtTime, and duration. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Response. Required
attempt Attempt | IRI The associated Attempt. The attempt value MUST be expressed either as an object or as a string corresponding to the attempt's IRI. If an object representation is provided, the Attempt SHOULD reference both the Person who initiated the Response and the relevant DigitalResource such as an AssessmentItem or QuestionnaireItem. Optional
startedAtTime DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the Response was commenced. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
endedAtTime DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the Response was completed or terminated. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
duration Duration A time interval that represents the time taken to complete the Response. If a duration is specified the value MUST conform to the ISO 8601 duration format. Optional
Figure 117 - Response Extended JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/6/users/554433/responses/1",
  "type": "Response",
  "attempt": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/6/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": "https://example.edu/users/554433",
    "assignable": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/6",
      "type": "AssessmentItem",
      "isPartOf": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
        "type": "Assessment"
      },
      "dateCreated": "2016-08-01T06:00:00.000Z",
      "datePublished": "2016-08-15T09:30:00.000Z",
      "isTimeDependent": false,
      "maxAttempts": 2,
      "maxScore": 5.0,
      "maxSubmits": 2,
      "extensions": {
        "questionType": "Short Answer",
        "questionText": "Define a Caliper Event and provide examples."
      }
    },
    "count": 1,
    "startedAtTime": "2016-11-15T10:15:46.000Z",
    "endedAtTime": "2016-11-15T10:17:20.000Z"
  },
  "dateCreated": "2016-11-15T10:15:46.000Z",
  "startedAtTime": "2016-11-15T10:15:46.000Z",
  "endedAtTime": "2016-11-15T10:17:20.000Z",
  "extensions": {
      "value": "A Caliper Event describes a relationship established between an actor and an object.  The relationship is formed as a result of a purposeful action undertaken by the actor in connection to the object at a particular moment. A learner starting an assessment, annotating a reading, pausing a video, or posting a message to a forum, are examples of learning activities that Caliper models as events."
    }
}

B.55 Result

A Caliper Result represents the current score or grade as recorded in a grade book. The Result score value may represent an adjusted or scaled value and is considered mutable.

IRI
http://purl.imsglobal.org/caliper/Result
Term
Result
Supertype
Entity
Properties
Result inherits all properties defined by its supertype Entity, of which id and type are required. Result is also provisioned with five additional optional properties: attempt, maxResultScore, resultScore, scoredBy, and comment. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Result. Required
attempt Attempt | IRI The associated Attempt. The attempt value MUST be expressed either as an object or as a string corresponding to the attempt's IRI. If an object representation is provided, the Attempt SHOULD reference both the Person making the Attempt and the assigned DigitalResource. Optional
maxResultScore decimal A number with a fractional part denoted by a decimal separator that designates the maximum result score permitted. Optional
resultScore decimal A number with a fractional part denoted by a decimal separator that designates the actual result score awarded. Optional
scoredBy Agent | IRI The Agent who scored or graded the Attempt. The scoredBy value MUST be expressed either as an object or as a string corresponding to the scorer's IRI. Optional
comment string Plain text feedback provided by the scorer. Optional
Figure 118 - Result JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1/results/1",
  "type": "Result",
  "attempt": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "assignable": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
      "type": "Assessment"
    },
    "count": 1,
    "dateCreated": "2016-11-15T10:05:00.000Z",
    "startedAtTime": "2016-11-15T10:05:00.000Z",
    "endedAtTime": "2016-11-15T10:55:30.000Z",
    "duration": "PT50M30S"
  },
  "maxResultScore": 15.0,
  "resultScore": 10.0,
  "scoredBy": {
    "id": "https://example.edu/autograder",
    "type": "SoftwareApplication",
    "dateCreated": "2016-11-15T10:55:58.000Z"
  },
  "comment": "Consider retaking the assessment.",
  "dateCreated": "2016-11-15T10:56:00.000Z"
}

B.56 Scale

A Caliper Scale is a generic type that represents a scale employed in order to capture some rating. Utilize Scale only if no suitable subtype exists to represent the scale being described.

IRI
https://purl.imsglobal.org/caliper/Scale
Term
Scale
Supertype
Entity
Subtypes
LikertScale, MultiselectScale, NumericScale
Properties
Scale inherits all properties defined by its supertype Entity, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Scale. Required
Figure 119 - Scale JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/scale/1",
  "type": "Scale",
  "dateCreated": "2018-08-01T06:00:00.000Z"
}

B.57 Score

A Caliper Score represents a "raw" or unadjusted numeric score or grade awarded for a given assignment submission. A grade book SHOULD treat the scoreGiven value as read-only and preserve it.

IRI
http://purl.imsglobal.org/caliper/Score
Term
Score
Supertype
Entity
Properties
Score inherits all properties defined by its supertype Entity, of which id and type are required. Score is also provisioned with five additional optional properties: attempt, maxScore, scoreGiven, scoredBy, and comment. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Score. Required
attempt Attempt | IRI The associated Attempt. The attempt value MUST be expressed either as an object or as a string corresponding to the attempt's IRI. If an object representation is provided, the Attempt SHOULD reference both the Person who generated the Attempt and the assigned DigitalResource. Optional
maxScore decimal A number with a fractional part denoted by a decimal separator that designates the maximum score permitted. Optional
scoreGiven decimal A number with a fractional part denoted by a decimal separator that designates the actual score awarded. Optional
scoredBy Agent | IRI The Agent who scored or graded the Attempt. The scoredBy value MUST be expressed either as an object or as a string corresponding to the scorer's IRI. Optional
comment string Plain text feedback provided by the scorer. Optional
Figure 120 - Score JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1/scores/1",
  "type": "Score",
  "attempt": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": "https://example.edu/users/554433",
    "assignable": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
    "count": 1,
    "dateCreated": "2016-11-15T10:05:00.000Z",
    "startedAtTime": "2016-11-15T10:05:00.000Z",
    "endedAtTime": "2016-11-15T10:55:30.000Z",
    "duration": "PT50M30S"
  },
  "maxScore": 15.0,
  "scoreGiven": 10.0,
  "scoredBy": {
    "id": "https://example.edu/autograder",
    "type": "SoftwareApplication",
    "dateCreated": "2016-11-15T10:55:58.000Z"
  },
  "comment": "auto-graded exam",
  "dateCreated": "2016-11-15T10:56:00.000Z"
}

B.58 SearchResponse

A Caliper SearchResponse models a search engine response to an actor querying a searchable resource.

IRI
https://purl.imsglobal.org/caliper/SearchResponse
Term
SearchResponse
Supertype
Entity
Properties
SearchResponse inherits all properties defined by its supertype Entity, of which id and type are required. SearchResponse is also provisioned with five additional properties: searchProvider, searchTarget, query, searchResultsItemCount, and searchResults. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the term SearchResponse. Required
searchProvider SoftwareApplication | IRI The SoftwareApplication that is the provider of this SearchResponse. The searchProvider value MUST be expressed either as an object or as a string corresponding to the resources's IRI. Optional
searchTarget Entity | IRI The Entity, typically a DigitalResource or SoftwareApplication, that is the target of the search. The resourceSearched value MUST be expressed either as an object or as a string corresponding to the resources's IRI. Optional
query Query | IRI The Query submitted by the actor. Optional
searchResultsItemCount integer A total count of searchResults returned. If the Query submitted returned no results the count equal to zero (0). Optional
Figure 121 - SearchResponse JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/users/554433/response?query=IMS%20AND%20%28Caliper%20OR%20Analytics%29",
  "type": "SearchResponse",
  "searchProvider": {
    "id": "https://example.edu",
    "type": "SoftwareApplication"
  },
  "searchTarget": {
    "id": "https://example.edu/catalog",
    "type": "SoftwareApplication"
  },
  "query": {
    "id": "https://example.edu/users/554433/search?query=IMS%20AND%20%28Caliper%20OR%20Analytics%29",
    "type": "Query",
    "creator": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "searchTarget": "https://example.edu/catalog",
    "searchTerms": "IMS AND (Caliper OR Analytics)",
    "dateCreated": "2018-11-15T10:05:00.000Z"
  },
  "searchResultsItemCount": 3,
  "dateCreated": "2018-11-15T10:05:00.000Z"
}

B.59 SelectTextResponse

A Caliper SelectTextResponse represents a response to an AssessmentItem in which the respondent is asked to identify text or a mapping from a presented paragraph or list.

IRI
http://purl.imsglobal.org/caliper/SelectTextResponse
Term
SelectTextResponse
Supertype
Response
Properties
SelectTextResponse inherits all properties defined by its supertype Response, of which id and type are required. SelectTextResponse is also provisioned with the optional property values. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term SelectTextResponse. Required
values Array An ordered collection of one or more selected options. Optional
Figure 122 - SelectTextResponse JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/4/users/554433/responses/1",
  "type": "SelectTextResponse",
  "attempt": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/4/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "assignable": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/4",
      "type": "AssessmentItem",
      "isPartOf": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
        "type": "Assessment"
      }
    },
    "count": 1,
    "startedAtTime": "2016-11-15T10:15:32.000Z",
    "endedAtTime": "2016-11-15T10:15:38.000Z"
  },
  "dateCreated": "2016-11-15T10:15:32.000Z",
  "startedAtTime": "2016-11-15T10:15:32.000Z",
  "endedAtTime": "2016-11-15T10:15:38.000Z",
  "values": [ "Information Model", "Sensor API", "Profiles" ]
}

B.60 Session

A Caliper Session represents a web application user session.

IRI
https://purl.imsglobal.org/caliper/Session
Term
Session
Supertype
Entity
Subtypes
LitSession
Properties
Session inherits all properties defined by its supertype Entity, of which id and type are required. Session is also provisioned with four additional optional properties: user, startedAtTime, endedAtTime, and duration. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Session. Required
user Person The Person who initiated this Session. Optional
client SoftwareApplication The SoftwareApplication that is hosting this Session. Optional
startedAtTime DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the Session was commenced. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
endedAtTime DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the Session was completed or terminated. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
duration Duration A time interval that represents the time taken to complete the Session. If a duration is specified the value MUST conform to the ISO 8601 duration format. Optional
Figure 123 - Session JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
  "type": "Session",
  "user": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "startedAtTime": "2016-09-15T10:00:00.000Z"
}
Figure 124 - Session with Client JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
  "type": "Session",
  "user": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "client": {
    "id": "urn:uuid:d71016dc-ed2f-46f9-ac2c-b93f15f38fdc",
    "type": "SoftwareApplication",
    "host": "https://example.edu",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
    "ipAddress": "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
  },
  "startedAtTime": "2018-09-15T10:00:00.000Z"
}

B.61 SharedAnnotation

A Caliper SharedAnnotation represents the act of sharing a reference to a DigitalResource with other agents.

IRI
http://purl.imsglobal.org/caliper/SharedAnnotation
Term
SharedAnnotation
Supertype
Annotation
Properties
SharedAnnotation inherits all the properties and requirements defined for its supertype Annotation, of which id and type are required. SharedAnnotation is also provisioned with the optional property withAgents. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term SharedAnnotation. Required
withAgents Array An ordered collection of one or more Agent entities, typically of type Person, with whom the annotated DigitalResource has been shared. Each array item MUST be expressed either as an object or as a string corresponding to the item's IRI. Optional
Figure 125 - SharedAnnotation JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/users/554433/etexts/201/shares/1",
  "type": "SharedAnnotation",
  "annotator": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "annotated": {
    "id": "https://example.edu/etexts/201.epub",
    "type": "Document"
  },
  "withAgents": [
    {
      "id": "https://example.edu/users/657585",
      "type": "Person"
    },
    {
      "id": "https://example.edu/users/667788",
      "type": "Person"
    }
  ],
  "dateCreated": "2016-08-01T09:00:00.000Z"
}

B.62 SoftwareApplication

A Caliper SoftwareApplication represents a computer program, application, module, platform or system.

IRI
http://purl.imsglobal.org/caliper/SoftwareApplication
Term
SoftwareApplication
Supertype
Agent
Properties
SoftwareApplication inherits all properties defined by its supertype Agent, of which id and type are required. SoftwareApplication is also provisioned with the optional property version. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term SoftwareApplication. Required
host string String value that identifies the host of this SoftwareApplication. This property can be used to indicate the back-end service or domain hosting a front-end web application. Optional
ipAddress string String value that, if present, can indicate the IPv4 or IPv6 address of this SoftwareApplication. This property can be used to indicate the user agent (browser) running a front-end web application. Optional
userAgent string String with a value that describes the properties of the user agent hosting this SoftwareApplication. This field can be used to carry the user agent string reported by the browser running a front-end web application. Optional
version string An optional string value that designates the current form or version of this SoftwareApplication. Optional
Figure 126 - SoftwareApplication JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/autograder",
  "type": "SoftwareApplication",
  "name": "Auto Grader",
  "description": "Automates assignment scoring.",
  "version": "2.5.2"
}
Figure 127 - SoftwareApplication with UserAgent JSON-LD
{
    "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
    "id": "urn:uuid:d71016dc-ed2f-46f9-ac2c-b93f15f38fdc",
    "type": "SoftwareApplication",
    "host": "https://example.edu",
    "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.143 Safari/537.36",
    "ipAddress": "2001:0db8:85a3:0000:0000:8a2e:0370:7334"
}

B.63 Survey

A Caliper Survey represents a research method for collecting data from a targeted group of respondents. The Survey provides a standardized process for gathering data that utilizes one or more Questionnaire entities.

IRI
https://purl.imsglobal.org/caliper/Survey
Term
Survey
Supertype
Collection
Properties
Survey inherits all properties defined by its supertype Collection, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Survey. Required
items array An array of one or more Questionnaire entities that together comprise the Survey. Each array item MUST be expressed either as an object or as a string corresponding to the Questionnaire resource's IRI. Optional
Figure 128 - Survey JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/collections/1",
  "type": "Survey",
  "items": [
    {
      "id": "https://example.edu/surveys/100/questionnaires/30",
      "type": "Questionnaire",
      "items": [
        {
          "id": "https://example.edu/surveys/100/questionnaires/30/items/1",
          "type": "QuestionnaireItem"
        },
        {
          "id": "https://example.edu/surveys/100/questionnaires/30/items/2",
          "type": "QuestionnaireItem"
        }
      ],
      "dateCreated": "2018-08-01T06:00:00.000Z"
    },
    {
      "id": "https://example.edu/surveys/100/questionnaires/31",
      "type": "Questionnaire",
      "items": [
        {
          "id": "https://example.edu/surveys/100/questionnaires/31/items/1",
          "type": "QuestionnaireItem"
        },
        {
          "id": "https://example.edu/surveys/100/questionnaires/31/items/2",
          "type": "QuestionnaireItem"
        }
      ],
      "dateCreated": "2018-08-01T06:00:00.000Z"
    }
  ]
}

B.64 SurveyInvitation

A Caliper SurveyInvitation represents a survey invitation sent to raters.

IRI
https://purl.imsglobal.org/caliper/SurveyInvitation
Term
SurveyInvitation
Supertype
DigitalResource
Properties
SurveyInvitation inherits all properties defined by its supertype DigitalResource, of which id and type are required. SurveyInvitation is also provisioned with the optional properties rater, survey, sentCount, and dateSent. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term SurveyInvitation. Required
rater Person | IRI The Person which will rate the Survey. The rater value MUST be expressed either as an object or as a string corresponding to the rater resource’s IRI. Optional
survey Survey | IRI The Survey that the invitation is for. The survey value MUST be expressed either as an object or as a string corresponding to the rater resource’s IRI. Optional
sentCount Integer An integer value used to determine the amount of times the invitation was sent to the rater. Optional
dateSent DateTime An ISO 8601 date and time value expressed with millisecond precision that describes when the SurveyInvitation was sent. The value MUST be expressed using the format YYYY-MM-DDTHH:mm:ss.SSSZ set to UTC with no offset specified. Optional
Figure 129 - SurveyInvitation JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/surveys/100/invitations/users/112233",
  "type": "SurveyInvitation",
  "sentCount": 1,
  "dateSent": "2018-11-15T10:05:00.000Z",
  "rater": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "survey": {
    "id": "https://example.edu/survey/1",
    "type": "Survey"
  },
  "dateCreated": "2018-08-01T06:00:00.000Z"
}

B.65 TagAnnotation

A Caliper TagAnnotation represents the act of tagging a DigitalResource with tags or labels.

IRI
http://purl.imsglobal.org/caliper/TagAnnotation
Term
TagAnnotation
Supertype
Annotation
Properties
TagAnnotation inherits all the properties and requirements defined for its supertype Annotation, of which id and type are required. TagAnnotation is also provisioned with the optional property tags. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term TagAnnotation. Required
tags Array An ordered collection of one or more string values that represent the tags associated with the annotated DigitalResource. Optional
Figure 130 - TagAnnotation JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.com/users/554433/texts/imscaliperimplguide/tags/3",
  "type": "TagAnnotation",
  "annotator": {
    "id": "https://example.edu/users/554433",
    "type": "Person"
  },
  "annotated": {
    "id": "https://example.com/#/texts/imscaliperimplguide/cfi/6/10!/4/2/2/2@0:0",
    "type": "Page"
  },
  "tags": [ "profile", "event", "entity" ],
  "dateCreated": "2016-08-01T09:00:00.000Z"
}

B.66 Thread

A Caliper Thread represents a series of one or more messages that share a common subject and are connected by a reply or by date relationships.

IRI
https://purl.imsglobal.org/caliper/Thread
Term
Thread
Supertype
DigitalResourceCollection
Properties
Thread inherits all properties defined by its supertype DigitalResourceCollection, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term Thread. Required
items Array An ordered collection of Message entities. Each array item MUST be expressed either as an object or as a string corresponding to the item's IRI. Optional
Figure 131 - Thread JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1",
  "type": "Thread",
  "name": "Caliper Information Model",
  "items": [
    {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1/messages/1",
      "type": "Message"
    },
    {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1/messages/2",
      "type": "Message",
      "replyTo": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1/messages/1",
        "type": "Message"
      }
    },
    {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1/messages/3",
      "type": "Message",
      "replyTo": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1/topics/1/messages/2",
        "type": "Message"
      }
    }
  ],
  "isPartOf": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/forums/1",
    "type": "Forum",
    "name": "Caliper Forum",
    "isPartOf": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1",
      "type": "CourseSection",
      "subOrganizationOf": {
        "id": "https://example.edu/terms/201601/courses/7",
        "type": "CourseOffering"
      }
    }
  },
  "dateCreated": "2016-08-01T06:00:00.000Z",
  "dateModified": "2016-09-02T11:30:00.000Z"
}

B.67 TrueFalseResponse

A Caliper TrueFalseResponse represents a response to an AssessmentItem in which only two possible options are permitted (e.g., true/false, yes/no).

IRI
http://purl.imsglobal.org/caliper/TrueFalseResponse
Term
TrueFalseResponse
Supertype
Response
Properties
TrueFalseResponse inherits all properties defined by its supertype Response, of which id and type are required. TrueFalseResponse is also provisioned with the optional property value. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term TrueFalseResponse. Required
value string A string value that provides the true/false, yes/no binary selection SHOULD be provided. Optional
Figure 132 - TrueFalseResponse JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/5/users/554433/responses/1",
  "type": "TrueFalseResponse",
  "attempt": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/5/users/554433/attempts/1",
    "type": "Attempt",
    "assignee": {
      "id": "https://example.edu/users/554433",
      "type": "Person"
    },
    "assignable": {
      "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1/items/5",
      "type": "AssessmentItem",
      "isPartOf": {
        "id": "https://example.edu/terms/201601/courses/7/sections/1/assess/1",
        "type": "Assessment"
      }
    },
    "count": 1,
    "startedAtTime": "2016-11-15T10:15:40.000Z",
    "endedAtTime": "2016-11-15T10:15:45.000Z"
  },
  "dateCreated": "2016-11-15T10:15:45.000Z",
  "startedAtTime": "2016-11-15T10:15:40.000Z",
  "endedAtTime": "2016-11-15T10:15:45.000Z",
  "value": "true"
}

B.68 VideoObject

A Caliper VideoObject represents a visual recording stored in digital form.

IRI
http://purl.imsglobal.org/caliper/VideoObject
Term
VideoObject
Supertype
MediaObject
Properties
VideoObject inherits all properties defined by its supertype MediaObject, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term VideoObject. Required
Figure 133 - VideoObject JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/videos/1225",
  "type": "VideoObject",
  "mediaType": "video/ogg",
  "name": "Introduction to IMS Caliper",
  "version": "1.1",
  "dateCreated": "2016-08-01T06:00:00.000Z",
  "dateModified": "2016-09-02T11:30:00.000Z",
  "duration": "PT1H12M27S"
}

B.69 WebPage

A Caliper WebPage represents a document containing markup that is suitable for display in a web browser.

IRI
http://purl.imsglobal.org/caliper/WebPage
Term
WebPage
Supertype
DigitalResource
Properties
WebPage inherits all properties defined by its supertype DigitalResource, of which id and type are required. Additional type restrictions are described below:
Property Type Description Disposition
type Term The string value MUST be set to the Term WebPage. Required
Figure 134 - WebPage JSON-LD
{
  "@context": "http://purl.imsglobal.org/ctx/caliper/v1p2",
  "id": "https://example.edu/terms/201601/courses/7/sections/1/pages/index.html",
  "type": "WebPage",
  "name": "CPS 435-01 Landing Page",
  "mediaType": "text/html",
  "isPartOf": {
    "id": "https://example.edu/terms/201601/courses/7/sections/1",
    "type": "CourseSection",
    "courseNumber": "CPS 435-01",
    "academicSession": "Fall 2016"
  }
}

C. Entities with no id properties

The Selectors and System Identifiers in this section are intended to be directly addressable Entity nodes, and thus should be sent without an id property

Selectors

A Caliper Selector represents a fragment, selection, or part of an Entity.

C.1 TextPositionSelector

A Caliper TextPositionSelector represents a fragment or selection of textual content, the starting and ending positions of which are determined by the distance in characters from the initial character (position 0) of the enclosing full text.

IRI
http://purl.imsglobal.org/caliper/TextPositionSelector
Term
TextPositionSelector
Properties
TextPositionSelector includes three required properties: type, start, and end Additional type restrictions are described below:

Properties

Property Type Description Disposition
type Term The string value MUST be set to the Term TextPositionSelector. Required
start integer The starting position of the selected text MUST be specified. The first character in the full text is character position 0. Required
end integer The end position of the selected text MUST be specified. Required

System Identifiers

A Caliper SystemIdentifier represents a single, system-local identifier for a Caliper Entity.

C.2 System Identifier

A Caliper SystemIdentifier represents a single, system-local identifier for a Caliper Entity.

IRI
http://purl.imsglobal.org/caliper/SystemIdentifier
Term
SystemIdentifier
Properties
SystemIdentifier includes two required properties: identifier and identiferType, as well as two optional properties: source and extensions. Additional type restrictions are described below:

Properties

Property Type Description Disposition
type Term The string value MUST be set to the Term SystemIdentifier. Required
identifierType string The string value MUST be set to the System Identifier Type constants that describes the identifier. Required
identifier string Opaque string representing the system identifier value. Required
source SoftwareApplication | IRI The SoftwareApplication identified as the source (e.g., the creator or owner) of the system identifier. Optional
extensions Object A map of additional attributes not defined by the model MAY be specified for a more concise representation of the SystemIdentifier. Optional
Figure 135 - SoftwareApplication (front-end browser-based) - JSON-LD
{
  "type": "SystemIdentifier",
  "identifier": "https://example.edu/users/554433",
  "identifierType": "LtiUserId",
  "source":  {
    "id": "https://example.edu",
    "type": "SoftwareApplication"
  }
}

D. Actions

Caliper includes a vocabulary of actions for describing learning interactions. Each action Term is based on the past-tense form of an English (en-US) verb. An action Term can also indicate a change in a particular characteristic of the object (e.g., resolution, size, speed, volume). Each action Term is mapped to a persistent IRI listed in the external IMS Caliper JSON-LD context. Each action is also linked to one or more brief definitions ("glosses") derived in whole or in part from Princeton University's WordNet® project or the Wiktionary project in order to eliminate ambiguity and aid natural language processing.

Each Caliper Event type supports one or more of the actions listed below. The Event action property string value MUST be set to the appropriate Term. Only one action may be specified per Event.

D.1 Abandoned

The Abandoned action signals that some Entity was left behind or unfinished.

IRI
https://purl.imsglobal.org/caliper/actions/Abandoned
Term
Abandoned
Related Gloss(es)
WordNet: abandon - forsake, leave behind
Supported by
Event

D.2 Accepted

The Accepted action signals that an affirmative reply was given with regard to some Entity. Inverse of Declined.

IRI
https://purl.imsglobal.org/caliper/actions/Accepted
Term
Accepted
Related Gloss(es)
WordNet: accept, go for, consent - give an affirmative reply to; respond favorably to
Supported by
Event, SurveyInvitationEvent

D.3 Activated

The Activated action signals that some Entity was made active or put to work. Inverse of Deactivated.

IRI
https://purl.imsglobal.org/caliper/actions/Activated
Term
Activated
Related Gloss(es)
WordNet: activate - make active or more active
Supported by
Event, AssignableEvent

D.4 Added

The Added action signals that some Entity was combined with or appended to some other Entity or entities. Inverse of Removed.

IRI
https://purl.imsglobal.org/caliper/actions/Added
Term
Added
Related Gloss(es)
WordNet: add - make an addition (to); join or combine or unite with others; increase the quality, quantity, size or scope of
Supported by
Event

D.5 Archived

The Archived action signals that an Entity was put into long-term storage.

IRI
https://purl.imsglobal.org/caliper/actions/Archived
Term
Archived
Related Gloss(es)
WordNet: archive, file away - put into an archive
Supported by
Event, ResourceManagementEvent

D.6 Attached

The Attached action signals that some Entity was affixed to or included with some other Entity.

IRI
https://purl.imsglobal.org/caliper/actions/Attached
Term
Attached
Related Gloss(es)
WordNet: attach - cause to be attached
Supported by
Event

D.7 Bookmarked

The Bookmarked action signals that some location of interest within an Entity was flagged or labeled.

IRI
https://purl.imsglobal.org/caliper/actions/Bookmarked
Term
Bookmarked
Related Gloss(es)
WordNet: bookmarker, bookmark - a marker (a piece of paper or ribbon) placed between the pages of a book to mark the reader's place
Supported by
Event, AnnotationEvent

D.8 ChangedResolution

The ChangedResolution action signals that a visual display's representation of detail (measured by pixel density) was changed or adjusted.

IRI
https://purl.imsglobal.org/caliper/actions/ChangedResolution
Term
ChangedResolution
Related Gloss(es)
WordNet: modify, alter, change - cause to change; make different; cause a transformation
WordNet: resolution - the number of pixels per square inch on a computer-generated display; the greater the resolution, the better the picture
Supported by
Event, MediaEvent

D.9 ChangedSize

The ChangedSize action signals that the magnitude of some Entity was modified.

IRI
https://purl.imsglobal.org/caliper/actions/ChangedSize
Term
ChangedSize
Related Gloss(es)
WordNet: modify, alter, change - cause to change; make different; cause a transformation
WordNet: size - the physical magnitude of something (how big it is)
Supported by
Event, MediaEvent

D.10 ChangedSpeed

The ChangedSpeed action signals an altering of the rate of some process associated with an Entity.

IRI
https://purl.imsglobal.org/caliper/actions/ChangedSpeed
Term
ChangedSpeed
Related Gloss(es)
WordNet: modify, alter, change - cause to change; make different; cause a transformation
WordNet: velocity, speed - distance travelled per unit time
Supported by
Event, MediaEvent

D.11 ChangedVolume

The ChangedVolume action signals an altering of the magnitude of sound originating from or related to some Entity.

IRI
https://purl.imsglobal.org/caliper/actions/ChangedVolume
Term
ChangedVolume
Related Gloss(es)
WordNet: modify, alter, change - cause to change; make different; cause a transformation
WordNet: intensity, volume, loudness - the magnitude of sound (usually in a specified direction)
Supported by
Event, MediaEvent

D.12 Classified

The Classified action signals that some Entity was placed or assigned to some class, group, kind, or type.

IRI
https://purl.imsglobal.org/caliper/actions/Classified
Term
Classified
Related Gloss(es)
WordNet: classify, relegate - assign to a class or kind
Supported by
Event

D.13 ClosedPopout

The ClosedPopout action signals that a video popout was closed. Inverse of OpenedPopout.

IRI
https://purl.imsglobal.org/caliper/actions/ClosedPopout
Term
ClosedPopout
Related Gloss(es)
WordNet: close, shut - become closed
Supported by
Event, MediaEvent

D.14 Commented

The Commented action signals that qualitative feedback in the form of a Comment was provided.

IRI
https://purl.imsglobal.org/caliper/actions/Commented
Term
Commented
Related Gloss(es)
WordNet: comment, point out, remark, notice - make or write a comment on
Supported by
Event, FeedbackEvent

D.15 Completed

The Completed action signals that an Entity, or the work or activity associated with it, was finished.

IRI
https://purl.imsglobal.org/caliper/actions/Completed
Term
Completed
Related Gloss(es)
WordNet: finish, complete - come or bring to a finish or an end
Supported by
Event, AssessmentItemEvent, QuestionnaireItemEvent

D.16 Copied

The Copied action signals that an Entity was duplicated.

IRI
https://purl.imsglobal.org/caliper/actions/Copied
Term
Copied
Related Gloss(es)
WordNet: re-create, copy - make a replica of
Supported by
Event, ResourceManagementEvent

D.17 Created

The Created action signals that a DigitalResource was brought into existence. Inverse of Deleted.

IRI
https://purl.imsglobal.org/caliper/actions/Created
Term
Created
Related Gloss(es)
WordNet: make, create - make or cause to be or to become
Supported by
Event, ResourceManagementEvent

D.18 Deactivated

The Deactivated action signals that some Entity was made inactive or stopped. Inverse of Activated.

IRI
https://purl.imsglobal.org/caliper/actions/Deactivated
Term
Deactivated
Related Gloss(es)
WordNet: inactivate, deactivate - make inactive
Supported by
Event, AssignableEvent

D.19 Declined

The Declined action signals that a negative reply or refusal was given with regard to some Entity. Inverse of Accepted.

IRI
https://purl.imsglobal.org/caliper/actions/Declined
Term
Declined
Related Gloss(es)
WordNet: decline, turn down, reject, pass up, refuse - refuse to accept
Supported by
Event, SurveyInvitationEvent

D.20 Deleted

The Deleted action signals that a DigitalResource was removed permanently from a system. Inverse of Created.

IRI
https://purl.imsglobal.org/caliper/actions/Deleted
Term
Deleted
Related Gloss(es)
WordNet: delete, erase - wipe out digitally or magnetically recorded information
Supported by
Event, ResourceManagementEvent

D.21 Described

The Described action signals that an explanation or elucidation of an Entity was provided.

IRI
https://purl.imsglobal.org/caliper/actions/Described
Term
Described
Related Gloss(es)
WordNet: depict, draw, describe - give a description of
Supported by
Event, ResourceManagementEvent

D.22 DisabledClosedCaptioning

The DisabledClosedCaptioning action signals that the option for visual display of plain text transcriptions of audio content was turned off. Inverse of EnabledClosedCaptioning.

IRI
https://purl.imsglobal.org/caliper/actions/DisabledClosedCaptioning
Term
DisabledClosedCaptioning
Related Gloss(es)
WordNet: incapacitate, disenable, disable - make unable to perform a certain action
Wiktionary: closed captioning - The display of text on a television or video screen, usually a transcription of the audio portion of a program as it occurs (either verbatim or in edited form), most frequently used by the deaf and language learners. Closed captions are encoded invisibly, and displayed by a decoder.
Supported by
Event, MediaEvent

D.23 Disliked

The Disliked action signals that a Person indicated disapproval of or negative feeling for an Entity. Inverse of Liked.

IRI
https://purl.imsglobal.org/caliper/actions/Disliked
Term
Disliked
Related Gloss(es)
WordNet: dislike - have or feel a dislike or distaste for
Supported by
Event

D.24 Downloaded

The Downloaded action signals that a copy of a DigitalResource was transferred from a central or primary system to a remote or secondary system. Inverse of Uploaded.

IRI
https://purl.imsglobal.org/caliper/actions/Downloaded
Term
Downloaded
Related Gloss(es)
WordNet: download - transfer a file or program from a central computer to a smaller computer or to a computer at a remote location
Supported by
Event, ResourceManagementEvent

D.25 EnabledClosedCaptioning

The EnabledClosedCaptioning action signals that the option for visual display of plain text transcriptions of audio content was turned on. Inverse of DisabledClosedCaptioning.

IRI
https://purl.imsglobal.org/caliper/actions/EnabledClosedCaptioning
Term
EnabledClosedCaptioning
Related Gloss(es)
WordNet: enable - render capable or able for some task
Wiktionary: closed captioning - The display of text on a television or video screen, usually a transcription of the audio portion of a program as it occurs (either verbatim or in edited form), most frequently used by the deaf and language learners. Closed captions are encoded invisibly, and displayed by a decoder.
Supported by
Event, MediaEvent

D.26 Ended

The Ended action signals that a process associated with an Entity concluded or was brought to a conclusion. Inverse of Started.

IRI
https://purl.imsglobal.org/caliper/actions/Ended
Term
Ended
Related Gloss(es)
WordNet: terminate, end - bring to an end or halt
Supported by
Event, MediaEvent

D.27 EnteredFullScreen

The EnteredFullScreen action signals that a view mode that uses all of the available display surface of a screen was engaged. Inverse of ExitedFullScreen.

IRI
https://purl.imsglobal.org/caliper/actions/EnteredFullScreen
Term
EnteredFullScreen
Related Gloss(es)
WordNet: move into, get into, go in, get in, enter, go into, come in - to come or go into
Wiktionary: full screen - Of a window occupying all the available display surface of a screen
Supported by
Event, MediaEvent

D.28 ExitedFullScreen

The ExitedFullScreen action signals that a view mode that uses all of the available display surface of a screen was left or closed. Inverse of EnteredFullScreen.

IRI
https://purl.imsglobal.org/caliper/actions/ExitedFullScreen
Term
ExitedFullScreen
Related Gloss(es)
WordNet: exit, leave, get out, go out - move out of or depart from
Wiktionary: full screen - Of a window occupying all the available display surface of a screen
Supported by
Event, MediaEvent

D.29 ForwardedTo

The ForwardedTo action signals that an Entity was sent or directed to another location.

IRI
https://purl.imsglobal.org/caliper/actions/ForwardedTo
Term
ForwardedTo
Related Gloss(es)
WordNet: send on, forward - send or ship onward from an intermediate post or station in transit
Supported by
Event, MediaEvent

D.30 Graded

The Graded action signals that some work or Entity was given a score or rank.

IRI
https://purl.imsglobal.org/caliper/actions/Graded
Term
Graded
Related Gloss(es)
WordNet: score, mark, grade - assign a grade or rank to, according to one's evaluation
Supported by
Event, GradeEvent

D.31 Hid

The Hid action signals that an Entity was collapsed or removed from view to prevent discovery. Inverse of Showed.

IRI
https://purl.imsglobal.org/caliper/actions/Hid
Term
Hid
Related Gloss(es)
WordNet: conceal, hide - prevent from being seen or discovered
Supported by
Event

D.32 Highlighted

The Highlighted action signals that some content was marked to emphasize it or make it more noticeable.

IRI
https://purl.imsglobal.org/caliper/actions/Highlighted
Term
Highlighted
Related Gloss(es)
WordNet: spotlight, foreground, play up, highlight - move into the foreground to make more visible or prominent
Supported by
Event, AnnotationEvent

D.33 Identified

The Identified action signals that the essence or legitimacy of an Entity was determined or established.

IRI
https://purl.imsglobal.org/caliper/actions/Identified
Term
Identified
Related Gloss(es)
WordNet: identify, place - recognize as being; establish the identity of someone or something
Supported by
Event

D.34 JumpedTo

The JumpedTo action signals that the focus was changed from one location or state of an Entity to another.

IRI
https://purl.imsglobal.org/caliper/actions/JumpedTo
Term
JumpedTo
Related Gloss(es)
WordNet: jump, leap - pass abruptly from one state or topic to another
Supported by
Event, MediaEvent

D.35 Launched

The Launched action signals that a system has commenced a workflow that sends an Agent from its own domain out to an external system.

IRI
https://purl.imsglobal.org/caliper/actions/Launched
Term
Launched
Related Gloss(es)
WordNet: launch, set in motion - get going; give impetus to
Supported by
Event, ToolLaunchEvent

D.36 Liked

The Liked action signals that a Person indicated approval of or positive feeling for an Entity. Inverse of Disliked.

IRI
https://purl.imsglobal.org/caliper/actions/Liked
Term
Liked
Related Gloss(es)
WordNet: like - be fond of
Supported by
Event

D.37 Linked

The Linked action signals that two or more entities were connected by way of a URI.

IRI
https://purl.imsglobal.org/caliper/actions/Linked
Term
Linked
Related Gloss(es)
WordNet: link up, link, connect, tie - connect, fasten, or put together two or more pieces
Supported by
Event

D.38 LoggedIn

The LoggedIn action signals that authenticated access to a SoftwareApplication was granted. Inverse of LoggedOut.

IRI
https://purl.imsglobal.org/caliper/actions/LoggedIn
Term
LoggedIn
Related Gloss(es)
WordNet: log on, log in, log-in - enter a computer
Supported by
Event, SessionEvent

D.39 LoggedOut

The LoggedOut action signals that an authenticated visit to a SoftwareApplication was ended. Inverse of LoggedIn.

IRI
https://purl.imsglobal.org/caliper/actions/LoggedOut
Term
LoggedOut
Related Gloss(es)
WordNet: log out, log off - exit a computer
Supported by
Event, SessionEvent

D.40 MarkedAsRead

The MarkedAsRead action signals that an Entity or some textual content was labeled as read or consumed. Inverse of MarkedAsUnread.

IRI
https://purl.imsglobal.org/caliper/actions/MarkedAsRead
Term
MarkedAsRead
Related Gloss(es)
WordNet: mark - designate as if by a mark
WordNet: read - interpret something that is written or printed
Supported by
Event, MessageEvent, ThreadEvent

D.41 MarkedAsUnread

The MarkedAsUnread action signals that an Entity or some textual content was labeled as not yet read or consumed. Inverse of MarkedAsRead.

IRI
https://purl.imsglobal.org/caliper/actions/MarkedAsUnread
Term
MarkedAsUnread
Related Gloss(es)
WordNet: mark - designate as if by a mark
WordNet: read - interpret something that is written or printed
Supported by
Event, MessageEvent, ThreadEvent

D.42 Modified

The Modified action signals that an Entity was altered or changed.

IRI
https://purl.imsglobal.org/caliper/actions/Modified
Term
Modified
Related Gloss(es)
WordNet: modify, alter, change - cause to change; make different; cause a transformation
Supported by
Event, ResourceManagementEvent

D.43 Muted

The Muted action signals that the sound associated with an Entity was cut off or silenced. Inverse of Unmuted.

IRI
https://purl.imsglobal.org/caliper/actions/Muted
Term
Muted
Related Gloss(es)
WordNet: dampen, tone down, damp, dull, muffle, mute - deaden (a sound or noise), especially by wrapping
Supported by
Event, MediaEvent

The NavigatedTo action signals that an Agent directed a movement from one location to another.

IRI
https://purl.imsglobal.org/caliper/actions/NavigatedTo
Term
NavigatedTo
Related Gloss(es)
WordNet: navigate - direct carefully and safely
Supported by
Event, NavigationEvent

D.45 OpenedPopout

The OpenedPopout action signals that a video popout was opened. Inverse of ClosedPopout.

IRI
https://purl.imsglobal.org/caliper/actions/OpenedPopout
Term
OpenedPopout
Related Gloss(es)
WordNet: open, open up - start to operate or function or cause to start operating or functioning
Supported by
Event, MediaEvent

D.46 OptedIn

The OptedIn action signals that a Person agreed to participate in an activity or complete a task. Inverse of OptedOut.

IRI
https://purl.imsglobal.org/caliper/actions/OptedIn
Term
OptedIn
Related Gloss(es)
Wiktionary: opt in - To choose to participate in something
Supported by
Event, SurveyEvent

D.47 OptedOut

The OptedOut action signals that a Person declined to participate in an activity or complete a task. Inverse of OptedIn.

IRI
https://purl.imsglobal.org/caliper/actions/OptedOut
Term
OptedOut
Related Gloss(es)
Wiktionary: opt out - To choose not to participate in something
Supported by
Event, SurveyEvent

D.48 Paused

The Paused action signals that some task or process was temporarily stopped. Inverse of Resumed.

IRI
https://purl.imsglobal.org/caliper/actions/Paused
Term
Paused
Related Gloss(es)
WordNet: intermit, pause, break - cease an action temporarily
Supported by
Event, AssessmentEvent, MediaEvent

D.49 Posted

The Posted action signals that some Entity was made accessible in a shared location.

IRI
https://purl.imsglobal.org/caliper/actions/Posted
Term
Posted
Related Gloss(es)
WordNet: post, put up - place so as to be noticed
Supported by
Event, MessageEvent

D.50 Printed

The Printed action signals that a mechanical process was invoked in order to produce a physical representation of an Entity.

IRI
https://purl.imsglobal.org/caliper/actions/Printed
Term
Printed
Related Gloss(es)
WordNet: print, impress - reproduce by printing
Supported by
Event, ResourceManagementEvent

D.51 Published

The Published action signals that an Entity was made available for public consumption.

IRI
https://purl.imsglobal.org/caliper/actions/Published
Term
Published
Related Gloss(es)
WordNet: release, issue, publish, put out, bring out - prepare and issue for public distribution or sale
Supported by
Event, ResourceManagementEvent

D.52 Questioned

The Questioned action signals that some request for information was made.

IRI
https://purl.imsglobal.org/caliper/actions/Questioned
Term
Questioned
Related Gloss(es)
WordNet: question, query - pose a question
Supported by
Event

D.53 Ranked

The Ranked action signals that quantitative feedback in the form of a Rating was provided.

IRI
https://purl.imsglobal.org/caliper/actions/Ranked
Term
Ranked
Related Gloss(es)
WordNet: range, rank, order, rate, place, grade - assign a rank or rating to
Supported by
Event, FeedbackEvent

D.55 Removed

The Removed action signals the taking away or disposal of some Entity. Inverse of Added.

IRI
https://purl.imsglobal.org/caliper/actions/Removed
Term
Removed
Related Gloss(es)
WordNet: get rid of, remove - dispose of
Supported by
Event

D.56 Reset

The Reset action signals that an Entity was refreshed or returned to some initial state.

IRI
https://purl.imsglobal.org/caliper/actions/Reset
Term
Reset
Related Gloss(es)
WordNet: reset - set anew
Supported by
Event, AssessmentEvent

D.57 Restarted

The Restarted action signals that a process or task was begun again from some initial location, following a previous run or attempt.

IRI
https://purl.imsglobal.org/caliper/actions/Restarted
Term
Restarted
Related Gloss(es)
WordNet: resume, restart, re-start - take up or begin anew
Supported by
Event, AssessmentEvent, MediaEvent

D.58 Restored

The Restored action signals that an archived Entity was retrieved from long-term storage. Inverse of Archived.

IRI
https://purl.imsglobal.org/caliper/actions/Restored
Term
Restored
Related Gloss(es)
WordNet: restore, reconstruct - return to its original or usable and functioning condition
Supported by
Event, ResourceManagementEvent

D.59 Resumed

The Resumed action signals that a process or task was started midway through after it was previously stopped at that place. Inverse of Paused.

IRI
https://purl.imsglobal.org/caliper/actions/Resumed
Term
Resumed
Related Gloss(es)
WordNet: resume, restart, re-start - take up or begin anew
Supported by
Event, AssessmentEvent, MediaEvent

D.60 Retrieved

The Retrieved action signals that an Entity was accessed or obtained from storage.

IRI
https://purl.imsglobal.org/caliper/actions/Retrieved
Term
Retrieved
Related Gloss(es)
WordNet: access - obtain or retrieve from a storage device; as of information on a computer
Supported by
Event, ResourceManagementEvent

D.61 Returned

The Returned action signals that a workflow that started with the Launched action was completed, with the Agent being directed back to an original location or system.

IRI
https://purl.imsglobal.org/caliper/actions/Returned
Term
Returned
Related Gloss(es)
WordNet: return - go or come back to place, condition, or activity where one was before
Supported by
Event, ToolLaunchEvent

D.62 Reviewed

The Reviewed action signals that an Entity was looked over or appraised for its quality and completeness.

IRI
https://purl.imsglobal.org/caliper/actions/Reviewed
Term
Reviewed
Related Gloss(es)
WordNet: review, critique - appraise critically
Supported by
Event, AssignableEvent

D.63 Rewound

The Rewound action signals that a process was moved back from a current place or state to a previous one.

IRI
https://purl.imsglobal.org/caliper/actions/Rewound
Term
Rewound
Related Gloss(es)
WordNet: rewind - wind (up) again
Supported by
Event

D.64 Saved

The Saved action signals that the current state of an Entity was stored for future use.

IRI
https://purl.imsglobal.org/caliper/actions/Saved
Term
Saved
Related Gloss(es)
WordNet: write, save - record data on a computer
Supported by
Event, ResourceManagementEvent

D.65 Searched

The Searched action signals that a Person has queried an Entity to find information or other entities.

IRI
https://purl.imsglobal.org/caliper/actions/Searched
Term
Searched
Related Gloss(es)
WordNet: search, explore, research - inquire into
Supported by
Event, SearchEvent

D.66 Sent

The Sent action signals that some Entity was transmitted or transferred.

IRI
https://purl.imsglobal.org/caliper/actions/Sent
Term
Sent
Related Gloss(es)
WordNet: send, get off, send off - transfer
Supported by
Event, SurveyInvitationEvent

D.67 Shared

The Shared action signals that a reference to an Entity was communicated so that others might experience or learn from the Entity.

IRI
https://purl.imsglobal.org/caliper/actions/Shared
Term
Shared
Related Gloss(es)
WordNet: share - communicate
Supported by
Event, AnnotationEvent

D.68 Showed

The Showed action signals that an Entity was revealed or made accessible to enable discovery. Inverse of Hid.

IRI
https://purl.imsglobal.org/caliper/actions/Showed
Term
Showed
Related Gloss(es)
WordNet: show - make visible or noticeable
Supported by
Event

D.69 Skipped

The Skipped action signals that some Entity was passed over without being fully examined or completed.

IRI
https://purl.imsglobal.org/caliper/actions/Skipped
Term
Skipped
Related Gloss(es)
WordNet: jump, skip, pass over, skip over - bypass
Supported by
Event, AssessmentItemEvent, QuestionnaireItemEvent

D.70 Started

The Started action signals that some process or task was begun or initiated.

IRI
https://purl.imsglobal.org/caliper/actions/Started
Term
Started
Related Gloss(es)
WordNet: commence, start, lead off, begin - set in motion, cause to start
Supported by
Event, AssessmentEvent, AssessmentItemEvent, QuestionnaireEvent, QuestionnaireItemEvent

D.71 Submitted

The Submitted action signals that some Entity was formally turned in for review or analysis.

IRI
https://purl.imsglobal.org/caliper/actions/Submitted
Term
Submitted
Related Gloss(es)
WordNet: submit, present - hand over formally
Supported by
Event, AssessmentEvent, QuestionnaireEvent

D.72 Subscribed

The Subscribed action signals that a request was made for the regular delivery of information. Inverse of Unsubscribed.

IRI
https://purl.imsglobal.org/caliper/actions/Subscribed
Term
Subscribed
Related Gloss(es)
WordNet: subscribe to, subscribe, take - receive or obtain regularly
Supported by
Event, ForumEvent

D.73 Tagged

The Tagged action signals that an Entity or content was given a label to assist with future discovery and identification.

IRI
https://purl.imsglobal.org/caliper/actions/Tagged
Term
Tagged
Related Gloss(es)
WordNet: tag, mark, label - attach a tag or label to
Supported by
Event, AnnotationEvent

D.74 TimedOut

The TimedOut action signals that a user session was cancelled after a predetermined time interval passed without activity.

IRI
https://purl.imsglobal.org/caliper/actions/TimedOut
Term
TimedOut
Related Gloss(es)
Wiktionary: time out - of a task, to be terminated because it was not completed before a time limit
Supported by
Event, SessionEvent

D.75 Unmuted

The Unmuted action signals that the sound associated with an Entity was enabled or made audible. Inverse of Muted.

IRI
https://purl.imsglobal.org/caliper/actions/Unmuted
Term
Unmuted
Related Gloss(es)
WordNet: dampen, tone down, damp, dull, muffle, mute - deaden (a sound or noise), especially by wrapping
Supported by
Event, MediaEvent

D.76 Unpublished

The Unpublished action signals that a published Entity was rendered unavailable for public consumption. Inverse of Published.

IRI
https://purl.imsglobal.org/caliper/actions/Unpublished
Term
Unpublished
Related Gloss(es)
WordNet: release, issue, publish, put out, bring out - prepare and issue for public distribution or sale
Supported by
Event, ResourceManagementEvent

D.77 Unsubscribed

The Unsubscribed action signals that a request was made for the regular delivery of information to be stopped or ceased. Inverse of Subscribed.

IRI
https://purl.imsglobal.org/caliper/actions/Unsubscribed
Term
Unsubscribed
Related Gloss(es)
WordNet: subscribe to, subscribe, take - receive or obtain regularly
Supported by
Event, ForumEvent

D.78 Uploaded

The Uploaded action signals that a copy of a DigitalResource was transferred from a remote or secondary system to a central or primary system. Inverse of Downloaded.

IRI
https://purl.imsglobal.org/caliper/actions/Uploaded
Term
Uploaded
Related Gloss(es)
WordNet: upload - transfer a file or program to a central computer from a smaller computer or a computer at a remote location
Supported by
Event, ResourceManagementEvent

D.79 Used

The Used action signals that an Agent utilized or employed an Entity for some purpose.

IRI
https://purl.imsglobal.org/caliper/actions/Used
Term
Used
Related Gloss(es)
WordNet: utilise, use, employ, utilize, apply - put into service; make work or employ for a particular purpose or for its inherent or natural purpose
Supported by
Event, ToolUseEvent

D.80 Viewed

The Viewed action signals that a Person examined or studied a particular Entity.

IRI
https://purl.imsglobal.org/caliper/actions/Viewed
Term
Viewed
Related Gloss(es)
WordNet: consider, look at, view - look at carefully; study mentally
Supported by
Event, ViewEvent

E. Profile Terms

The Event.profile value specifies which profile the given Event should be interpreted within.

E.1 GeneralProfile

Set the Event.profile value to GeneralProfile if the Event is meant to be interpreted within the General Profile.

IRI
caliper:profiles/GeneralProfile
Term
GeneralProfile

E.2 AnnotationProfile

Set the Event.profile value to AnnotationProfile if the Event is meant to be interpreted within the Annotation Profile.

IRI
caliper:profiles/AnnotationProfile
Term
AnnotationProfile

E.3 AssessmentProfile

Set the Event.profile value to AssessmentProfile if the Event is meant to be interpreted within the Assessment Profile.

IRI
caliper:profiles/AssessmentProfile
Term
AssessmentProfile

E.4 AssignableProfile

Set the Event.profile value to AssignableProfile if the Event is meant to be interpreted within the Assignable Profile.

IRI
caliper:profiles/AssignableProfile
Term
AssignableProfile

E.5 FeedbackProfile

Set the Event.profile value to FeedbackProfile if the Event is meant to be interpreted within the Feedback Profile.

IRI
caliper:profiles/FeedbackProfile
Term
FeedbackProfile

E.6 ForumProfile

Set the Event.profile value to ForumProfile if the Event is meant to be interpreted within the Forum Profile.

IRI
caliper:profiles/ForumProfile
Term
ForumProfile

E.7 GradingProfile

Set the Event.profile value to GradingProfile if the Event is meant to be interpreted within the Grading Profile.

IRI
caliper:profiles/GradingProfile
Term
GradingProfile

E.8 MediaProfile

Set the Event.profile value to MediaProfile if the Event is meant to be interpreted within the Media Profile.

IRI
caliper:profiles/MediaProfile
Term
MediaProfile

E.9 ReadingProfile

Set the Event.profile value to ReadingProfile if the Event is meant to be interpreted within the Reading Profile.

IRI
caliper:profiles/ReadingProfile
Term
ReadingProfile

E.10 ResourceManagementProfile

Set the Event.profile value to ResourceManagementProfile if the Event is meant to be interpreted within the ResourceManagement Profile.

IRI
caliper:profiles/ResourceManagementProfile
Term
ResourceManagementProfile

E.12 SessionProfile

Set the Event.profile value to SessionProfile if the Event is meant to be interpreted within the Session Profile.

IRI
caliper:profiles/SessionProfile
Term
SessionProfile

E.13 ToolLaunchProfile

Set the Event.profile value to ToolLaunchProfile if the Event is meant to be interpreted within the ToolLaunch Profile.

IRI
caliper:profiles/ToolLaunchProfile
Term
ToolLaunchProfile

E.14 ToolUseProfile

Set the Event.profile value to ToolUseProfile if the Event is meant to be interpreted within the ToolUse Profile.

IRI
caliper:profiles/ToolUseProfile
Term
ToolUseProfile

F. LIS Roles

Membership includes an optional roles property for assigning one or more roles to an Event actor described as a member of an organization. Role values are limited to the list of Caliper role terms derived from the IMS LIS specification. Assigning context roles should prove sufficient in most cases. Whenever a sub-role is specified, the related context role SHOULD also be included. For example, a role of Instructor#TeachingAssistant SHOULD always be accompanied by the Instructor role. This is for consistency in how roles are communicated across IMS specifications, like LTI.

F.1 Administrator

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership#Administrator
Term
Administrator
Subrole(s)

Administrator#Administrator

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#Administrator
Term
Administrator#Administrator

Administrator#Developer

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#Developer
Term
Administrator#Developer

Administrator#ExternalDeveloper

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#ExternalDeveloper
Term
Administrator#ExternalDeveloper

Administrator#ExternalSupport

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#ExternalSupport
Term
Administrator#ExternalSupport

Administrator#ExternalSystemAdministrator

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#ExternalSystemAdministrator
Term
Administrator#ExternalSystemAdministrator

Administrator#Support

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#Support
Term
Administrator#Support

Administrator#SystemAdministrator

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Administrator#SystemAdministrator
Term
Administrator#SystemAdministrator

F.2 ContentDeveloper

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership#ContentDeveloper
Term
ContentDeveloper
Subrole(s)

ContentDeveloper#ContentDeveloper

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/ContentDeveloper#ContentDeveloper
Term
ContentDeveloper#ContentDeveloper

ContentDeveloper#ContentExpert

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/ContentDeveloper#ContentExpert
Term
ContentDeveloper#ContentExpert

ContentDeveloper#ExternalContentExpert

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/ContentDeveloper#ExternalContentExpert
Term
ContentDeveloper#ExternalContentExpert

ContentDeveloper#Librarian

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/ContentDeveloper#Librarian
Term
ContentDeveloper#Librarian

F.3 Instructor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership#Instructor
Term
Instructor
Subrole(s)

Instructor#ExternalInstructor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#ExternalInstructor
Term
Instructor#ExternalInstructor

Instructor#Grader

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#Grader
Term
Instructor#Grader

Instructor#GuestInstructor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#GuestInstructor
Term
Instructor#GuestInstructor

Instructor#Instructor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#Instructor
Term
Instructor#Instructor

Instructor#Lecturer

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#Lecturer
Term
Instructor#Lecturer

Instructor#PrimaryInstructor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#PrimaryInstructor
Term
Instructor#PrimaryInstructor

Instructor#SecondaryInstructor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#SecondaryInstructor
Term
Instructor#SecondaryInstructor

Instructor#TeachingAssistant

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#TeachingAssistant
Term
Instructor#TeachingAssistant

Instructor#TeachingAssistantGroup

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#TeachingAssistantGroup
Term
Instructor#TeachingAssistantGroup

Instructor#TeachingAssistantOffering

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#TeachingAssistantOffering
Term
Instructor#TeachingAssistantOffering

Instructor#TeachingAssistantSection

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#TeachingAssistantSection
Term
Instructor#TeachingAssistantSection

Instructor#TeachingAssistantTemplate

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Instructor#TeachingAssistantTemplate
Term
Instructor#TeachingAssistantTemplate

F.4 Learner

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership#Learner
Term
Learner
Subrole(s)

Learner#ExternalLearner

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Learner#ExternalLearner
Term
Learner#ExternalLearner

Learner#GuestLearner

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Learner#GuestLearner
Term
Learner#GuestLearner

Learner#Learner

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Learner#Learner
Term
Learner#Learner

Learner#NonCreditLearner

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Learner#NonCreditLearner
Term
Learner#NonCreditLearner

F.5 Manager

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership#Manager
Term
Manager
Subrole(s)

Manager#AreaManager

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Manager#AreaManager
Term
Manager#AreaManager

Manager#CourseCoordinator

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Manager#CourseCoordinator
Term
Manager#CourseCoordinator

Manager#ExternalObserver

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Manager#ExternalObserver
Term
Manager#ExternalObserver

Manager#Manager

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Manager#Manager
Term
Manager#Manager

Manager#Observer

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Manager#Observer
Term
Manager#Observer

F.6 Member

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership#Member
Term
Member
Subrole(s)

Member#Member

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Member#Member
Term
Member#Member

F.7 Mentor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership#Mentor
Term
Mentor
Subrole(s)

Mentor#Advisor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#Advisor
Term
Mentor#Advisor

Mentor#ExternalAdvisor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#ExternalAdvisor
Term
Mentor#ExternalAdvisor

Mentor#ExternalAuditor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#ExternalAuditor
Term
Mentor#ExternalAuditor

Mentor#ExternalLearningFacilitator

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#ExternalLearningFacilitator
Term
Mentor#ExternalLearningFacilitator

Mentor#ExternalMentor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#ExternalMentor
Term
Mentor#ExternalMentor

Mentor#ExternalReviewer

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#ExternalReviewer
Term
Mentor#ExternalReviewer

Mentor#ExternalTutor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#ExternalTutor
Term
Mentor#ExternalTutor

Mentor#LearningFacilitator

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#LearningFacilitator
Term
Mentor#LearningFacilitator

Mentor#Mentor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#Mentor
Term
Mentor#Mentor

Mentor#Reviewer

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#Reviewer
Term
Mentor#Reviewer

Mentor#Tutor

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Mentor#Tutor
Term
Mentor#Tutor

F.8 Officer

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership#Officer
Term
Officer
Subrole(s)

Officer#Chair

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Officer#Chair
Term
Officer#Chair

Officer#Secretary

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Officer#Secretary
Term
Officer#Secretary

Officer#Treasurer

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Officer#Treasurer
Term
Officer#Treasurer

Officer#Vice-Chair

IRI
http://purl.imsglobal.org/vocab/lis/v2/membership/Officer#Vice-Chair
Term
Officer#Vice-Chair

G. LIS Statuses

The status of a Membership within an Organization can be set to one of the following states: Active or Inactive.

G.1 Active

Set the Membership.status value to Active if the Membership is associated with an active Membership.member.

IRI
http://purl.imsglobal.org/vocab/lis/v2/status#Active
Term
Active

G.2 Inactive

Set the Membership.status value to Inactive if the Membership is associated with an inactive Membership.member.

IRI
http://purl.imsglobal.org/vocab/lis/v2/status#Inactive
Term
Inactive

H. LTI Message Types

The Caliper LtiLink is provisioned with an optional messageType property for describing the type of LTI message associated with the ToolLaunchEvent. The value range is limited to the following string values:

H.1 LtiDeepLinkingRequest

Set the LtiLink.messageType value to LtiDeepLinkingRequest if the LtiLink is associated with an LTI deep linking request message.
IRI
https://purl.imsglobal.org/caliper/LtiDeepLinkingRequest
Term
LtiDeepLinkingRequest

H.2 LtiResourceLinkRequest

Set the LtiLink.messageType value to LtiResourceLinkRequest if the LtiLink is associated with an LTI resource link launch request message.
IRI
https://purl.imsglobal.org/caliper/LtiResourceLinkRequest
Term
LtiResourceLinkRequest

I. System Identifier Types

Caliper provides a controlled vocabulary for enumerating various categories of SystemIdentifier types associated with a Caliper Entity that may prove meaningful when exchanging identifiers between systems (especially with respect to other IMS Global standards).

I.1 AccountUserName

Set the SystemIdentifier.identifierType string value to AccountUserName if the SystemIdentifier is the username of a system account.

IRI
http://purl.imsglobal.org/vocab/systemIdentifiers/AccountUserName
Term
AccountUserName

I.2 EmailAddress

Set the SystemIdentifier.identifierType string value to EmailAddress if the SystemIdentifier is an email address.

IRI
http://purl.imsglobal.org/vocab/systemIdentifiers/EmailAddress
Term
EmailAddress

I.3 LisSourcedId

Set the SystemIdentifier.identifierType string value to LisSourcedId if the SystemIdentifier is a LIS sourcedId.

IRI
http://purl.imsglobal.org/vocab/systemIdentifiers/LisSourcedId
Term
LisSourcedId

I.4 LtiContextId

Set the SystemIdentifier.identifierType string value to LtiContextId if the SystemIdentifier is an LTI context.id.

IRI
http://purl.imsglobal.org/vocab/systemIdentifiers/LtiContextId
Term
LtiContextId

I.5 LtiDeploymentId

Set the SystemIdentifier.identifierType string value to LtiDeploymentId if the SystemIdentifier is an LTI deployment_id.

IRI
http://purl.imsglobal.org/vocab/systemIdentifiers/LtiDeploymentId
Term
LtiDeploymentId

I.6 LtiPlatformId

Set the SystemIdentifier.identifierType string value to LtiPlatformId if the SystemIdentifier is an LTI tool_platform.guid.

IRI
http://purl.imsglobal.org/vocab/systemIdentifiers/LtiPlatformId
Term
LtiPlatformId

I.7 LtiToolId

Set the SystemIdentifier.identifierType string value to LtiToolId if the SystemIdentifier is an LTI tool_id.

IRI
http://purl.imsglobal.org/vocab/systemIdentifiers/LtiToolId
Term
LtiToolId

I.8 LtiUserId

Set the SystemIdentifier.identifierType string value to LtiUserId if the SystemIdentifier is an LTI user_id.

IRI
http://purl.imsglobal.org/vocab/systemIdentifiers/LtiUserId
Term
LtiUserId

I.9 OneRosterSourcedId

Set the SystemIdentifier.identifierType string value to OneRosterSourcedId if the SystemIdentifier is a One Roster sourcedId.

IRI
http://purl.imsglobal.org/vocab/systemIdentifiers/OneRosterSourcedId
Term
OneRosterSourcedId

I.10 Other

Set the SystemIdentifier.identifierType string value to Other if the SystemIdentifier has no matching enumerated type.

IRI
http://purl.imsglobal.org/vocab/systemIdentifiers/Other
Term
Other

I.11 SisSourcedId

Set the SystemIdentifier.identifierType string value to SisSourcedId if the SystemIdentifier is a student information system (SIS) sourcedId.

IRI
http://purl.imsglobal.org/vocab/systemIdentifiers/SisSourcedId
Term
SisSourcedId

I.12 SystemId

Set the SystemIdentifier.identifierType string value to SystemId if the SystemIdentifier is a system identifier.

IRI
http://purl.imsglobal.org/vocab/systemIdentifiers/SystemId
Term
SystemId

J. Use Metrics

The AggregateMeasure entity includes a required metric property for denoting the metric related to the ToolUseEvent. Metric string values are limited to the list of Caliper terms listed below.

J.1 AssessmentsPassed

Set the AggregateMeasure.metric string value to AssessmentsPassed if the AggregateMeasure represents a count of assessments that have been passed by the learner.

IRI
https://purl.imsglobal.org/caliper/metrics/AssessmentsPassed
Term
AssessmentsPassed

J.2 AssessmentsSubmitted

Set the AggregateMeasure.metric string value to AssessmentsSubmitted if the AggregateMeasure represents a count of assessments that have been submitted by the learner.

IRI
https://purl.imsglobal.org/caliper/metrics/AssessmentsSubmitted
Term
AssessmentsSubmitted

J.3 MinutesOnTask

Set the AggregateMeasure.metric string value to MinutesOnTask if the AggregateMeasure represents active time spent by learner utilizing the tool.

IRI
https://purl.imsglobal.org/caliper/metrics/MinutesOnTask
Term
MinutesOnTask

J.4 SkillsMastered

Set the AggregateMeasure.metric string value to SkillsMastered if the AggregateMeasure represents a count of learning skills or targets for which the learner has demonstrated understanding.

IRI
https://purl.imsglobal.org/caliper/metrics/SkillsMastered
Term
SkillsMastered

J.5 StandardsMastered

Set the AggregateMeasure.metric string value to StandardsMastered if the AggregateMeasure represents a count of learning standards or competencies for which the learner has demonstrated understanding.

IRI
https://purl.imsglobal.org/caliper/metrics/StandardsMastered
Term
StandardsMastered

J.6 UnitsCompleted

Set the AggregateMeasure.metric string value to UnitsCompleted if the AggregateMeasure represents a count of instructional units completed by the learner.

IRI
https://purl.imsglobal.org/caliper/metrics/UnitsCompleted
Term
UnitsCompleted

J.7 UnitsPassed

Set the AggregateMeasure.metric string value to UnitsPassed if the AggregateMeasure represents a count of instructional units completed by the learner, submitted for evaluation, and scored with a passing mark.

IRI
https://purl.imsglobal.org/caliper/metrics/UnitsPassed
Term
UnitsPassed

J.8 WordsRead

Set the AggregateMeasure.metric string value to WordsRead if the AggregateMeasure represents a count of the number of words read by the learner.

IRI
https://purl.imsglobal.org/caliper/metrics/WordsRead
Term
WordsRead

K. Revision History

This section is non-normative.

K.1 Version History

Version No. Release Date Comments
IMS Base Document 1.2 21 October 2020 The first Base Document release.
IMS Candidate Final Document 1.2 27 March 2020 The first Candidate Final release.

L. References

L.1 Normative references

[CALIPER-12-CERT]
Caliper Analytics® Sensor Certification Guide 1.2. Mosbacker, Bracken; Whyte, Anthony. IMS Global Learning Consortium. URL: https://www.imsglobal.org/spec/caliper/v1p2/cert
[CALIPER-12-CONTEXT]
Caliper Analytics® JSON-LD Context 1.2. Whyte, Anthony. IMS Global Learning Consortium. URL: http://purl.imsglobal.org/ctx/caliper/v1p2/
[CALIPER-12-ERRATA]
Caliper Analytics® Specification 1.2 Errata. IMS Global Learning Consortium. URL: https://www.imsglobal.org/spec/v1p2/errata/
[JSON-LD]
JSON-LD 1.0. Manu Sporny; Gregg Kellogg; Markus Lanthaler. W3C. 16 January 2014. W3C Recommendation. URL: https://www.w3.org/TR/json-ld/
[LIS-20]
IMS Global Learning Information Services v2.0. L. Feng; W. Lee; C. Smythe. IMS Global Learning Consortium. June 2011. URL: https://www.imsglobal.org/lis/
[LTI-13]
IMS Global Learning Tools Interoperability® Core Specification v1.3. C. Vervoort; N. Mills. IMS Global Learning Consortium. April 2019. IMS Final Release. URL: https://www.imsglobal.org/spec/lti/v1p3/
[LTI-DL-20]
IMS Global Learning Tools Interoperability® Deep Linking 2.0. C. Vervoort; E. Preston. IMS Global Learning Consortium. April 2019. IMS Final Release. URL: https://www.imsglobal.org/spec/lti-dl/v2p0/
[rdf-concepts]
Resource Description Framework (RDF): Concepts and Abstract Syntax. Graham Klyne; Jeremy Carroll. W3C. 10 February 2004. W3C Recommendation. URL: https://www.w3.org/TR/rdf-concepts/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
[RFC2396]
Uniform Resource Identifiers (URI): Generic Syntax. T. Berners-Lee; R. Fielding; L. Masinter. IETF. August 1998. Draft Standard. URL: https://tools.ietf.org/html/rfc2396
[RFC3987]
Internationalized Resource Identifiers (IRIs). M. Duerst; M. Suignard. IETF. January 2005. Proposed Standard. URL: https://tools.ietf.org/html/rfc3987
[RFC4122]
A Universally Unique IDentifier (UUID) URN Namespace. P. Leach; M. Mealling; R. Salz. IETF. July 2005. Proposed Standard. URL: https://tools.ietf.org/html/rfc4122
[RFC6750]
The OAuth 2.0 Authorization Framework: Bearer Token Usage. M. Jones; D. Hardt. IETF. October 2012. Proposed Standard. URL: https://tools.ietf.org/html/rfc6750
[RFC7231]
Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content. R. Fielding, Ed.; J. Reschke, Ed.. IETF. June 2014. Proposed Standard. URL: https://httpwg.org/specs/rfc7231.html
[RFC7807]
Problem Details for HTTP APIs. M. Nottingham; E. Wilde. IETF. March 2016. Proposed Standard. URL: https://tools.ietf.org/html/rfc7807

L.2 Informative references

[CALIPER-12-IMPL]
Caliper Analytics® Sensor Implementation Guide 1.2. Mosbacker, Bracken; Whyte, Anthony. IMS Global Learning Consortium. URL: https://www.imsglobal.org/spec/caliper/v1p2/impl

M. List of Contributors

The following individuals contributed to the development of this document:

Name Organization
Anthony WhyteUniversity of Michigan
Viktor HaagD2L
Andrew GardenerUniversity of British Columbia
Yeona JangExplorance
Dan CarrollClever
Daniel GreenVitalSource
Sam SciollaUniversity of Michigan
Lance E SloanUniversity of Michigan
Kara ArmstrongUnizin
Markus GyllingIMS Global
Linda FengUnicon
André N'guettiaPennsylvania State University
Eric PrestonBlackboard, Inc.
Oxana JurosevicInstructure
Bracken MosbackerIMS Global
Joshua McGheeIMS Global

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: Caliper Analytics® Specification 1.2

Date: 27 March 2020