Anthology Logo
search rss_feed menu

Caliper Metric Profiles

Caliper Metric Profiles provide a basic, consistent format for emitting and consuming learning events regardless of the Learning Management System or Educational Tool. These profiles leverage other IMS Global standards like LTI in order to mesh interoperable tools and interoperable event data to allow for the use of common tools across platforms with the added ability to analyze the usage of that tool for all students regardless of the environment that student originates from.

We also have documentation on the specific events sent by Learn,

The metric profiles are realized in the form of JSON for Linked Data (JSON-LD) payloads containing a set of common objects, each with the ability to add application-specific extended data objects. The profile defines a context for the data and establishes the relationships between entities to define the event and all of its supporting data. The specification defines these payloads in such a way to allow for transport-compliant custom events like the Learn-specific ForumEvent, allowing any event store to be able to accept and interpret these events, even if they are strictly defined in the specification itself.

The overarching goal of these profiles is to encapsulate events and context in a shared semantic model so there is consistency from event to event.

Caliper Outcome Profile

Learn supports the following defined metric profiles:

The specification defines a number of tool-specific profiles as well. An example of this is the MediaEvent, which Anthology worked closely with Kaltura to implement in the context of the Kaltura LTI integration.

JSON Syntax

A Caliper event is essentially a large JSON document, built in a defined format, containing a specific set of data. The top level of this document contains 9 defined objects and two Linked Data elements to illustrate what data is expected.

Objects

Object Description
@context Defines the short-hand names used throughout the Caliper event.
type Defines the type of event being sent.
actor The entity performing the event.
action What the actor actually did.
object What the action was performed on.
target An entity that represents a particular segment or location within the object.
generated The result of the action.
eventTime The ISO-compliant date and time that the event happened.
edApp The application reporting the event.
group The environment that the event took place in, e.g. a course. Can be nested.
membership Information about the relationship between the actor and the group.
federatedSession A unique identifier used to determine what system/tool is reporting data. If the event occurs within the context of an LTI Tool Launch, the actor’s tool consumer LtiSession may be referenced.
session The user’s current session

Sample Caliper Event

{
  "sensor": "a118bba8-5378-4533-899b-8862ac59db03",
  "sendTime": "2020-12-24T17:38:16.580Z",
  "dataVersion": "http://purl.imsglobal.org/ctx/caliper/v1p1",
  "data": [
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "type": "SessionEvent",
      "id": "53d8542f-c4ff-4100-b2a4-1f8e035f0439",
      "actor": {
        "id": "https://caliper-mapping.cloudbb.blackboard.com/v1/sites/a118bba8-5378-4533-899b-8862ac59db03/users/ffc08009f0884c059192bac549e117b2",
        "type": "Person",
        "extensions": {
          "bb:user.id": "_1_1",
          "bb:user.externalId": "administrator"
        }
      },
      "action": "LoggedIn",
      "object": {
        "id": "https://caliper-mapping.cloudbb.blackboard.com/v1/sites/a118bba8-5378-4533-899b-8862ac59db03/applications/learn",
        "type": "SoftwareApplication",
        "extensions": {
          "bb:request.headers.agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
          "bb:request.headers.ipAddress": "186.28.208.123"
        }
      },
      "target": {
        "id": "https://caliper-mapping.cloudbb.blackboard.com/v1/sites/a118bba8-5378-4533-899b-8862ac59db03",
        "type": "DigitalResource",
        "creators": [],
        "learningObjectives": [],
        "keywords": []
      },
      "eventTime": "2020-12-24T17:38:09.076Z",
      "edApp": {
        "id": "https://caliper-mapping.cloudbb.blackboard.com/v1/sites/a118bba8-5378-4533-899b-8862ac59db03/applications/learn",
        "type": "SoftwareApplication",
        "extensions": {
          "bb:request.headers.agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36",
          "bb:request.headers.ipAddress": "186.28.208.123"
        }
      },
      "federatedSession": {
        "startedAtTime": "2020-12-24T17:38:09.076Z",
        "id": "https://caliper-mapping.cloudbb.blackboard.com/v1/sites/a118bba8-5378-4533-899b-8862ac59db03/sessions/0356052DAA966AA071787F54DBFEB1B1",
        "type": "LtiSession",
        "name": "0356052DAA966AA071787F54DBFEB1B1",
        "dateCreated": "2020-12-24T17:38:09.076Z",
        "extensions": {
          "bb:request.headers.agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.88 Safari/537.36"
        },
        "user": {
          "id": "https://caliper-mapping.cloudbb.blackboard.com/v1/sites/a118bba8-5378-4533-899b-8862ac59db03/users/ffc08009f0884c059192bac549e117b2",
          "type": "Person",
          "extensions": {
            "bb:user.id": "_1_1",
            "bb:user.externalId": "administrator"
          }
        }
      },
      "extensions": {}
    }
  ]
}

Caliper Event Envelopes

As one might imagine, there can be a huge amount of events being triggered and reported at any given time, and so the Caliper specification includes the concept of an event envelope. This envelope contains three entities: