xAPI / Learning Record Store


Tracking of user behavior (most commonly implemented for assessments) is a possibility in the PeBL specification. PeBL extensions currently support the xAPI specification, and the use of a Learning Record Store (LRS) to store xAPI data. Other tracking protocols may be used in addition to xAPI, but current PeBL extensions are not instrumented with them.

xAPI statements are written in Javascript Object Notation Language (JSON), which is similar to XML and is compatible with HTML 5, the codebase for PeBL. xAPI is an integrated data gathering approach designed to generate and capture learning stream data, and organize that data into meaningful learning contexts. xAPI provides a way to create flexible, semantically-defined "statements" about some user activity that are sent and stored in an external LRS. PeBL also includes the ability to temporarily store statements locally in case the device does not have a network connection. This local store syncs with the external LRS when connectivity is restored.

Some uses for xAPI data in PeBL include controlling what happens in adaptive content, learning data mining and analytics, finding negative and positive correlations, and discovering what experts and novices do differently. The xAPI specification supports many optional fields that can be used to define additional characteristics as needed to support your use case.

Note that APIs are often available that allow integrations with other learning ecosystem items such as learning management systems (LMSs) and competency management systems. This allows scenarios where LRS data can be stored and used by other systems, possibly to build learner profiles that can inform algorithms used in adaptive systems.

Learner Tracking Data

The PeBL specification xAPI section currently captures the following with xAPI events:

  • Total time spent
    • In a book
    • In selected chapters of a book
    • In a CFI delineated segment
    • Between actions
    • Per question in assessments
  • All user clicks on interface controls and links within content
  • All user annotations including highlight and bookmark annotations

You are encouraged to leverage the power of xAPI to the fullest and not limit yourself to these. It is also important that you have a goal for what you will do with this tracking data. Is it simply to assess learners? What happens after it gets sent to the LRS? How will you retrieve and analyze the data? (This question is addressed in the Dashboards, data analytics, and reporting tools section)

Design and development implications

Given all of the above, the following are items that PeBL designers, authors, and developers must pay attention to in producing both books and extensions:

  • Determining the events that will be tracked
  • Determining a consistent, standard set of verbs that will be used in xAPI statements
  • Establishing the design and production process for instrumenting the book with xAPI calls
  • Acquiring and configuring an LRS, if you don’t already have one
  • Determining what you will do with data collected

It is important that you follow best practices for xAPI verb choice as outlined in the xAPI specification. This supports interoperability between data gathered across different books, users, and systems. A list of recommended xAPI verbs for PeBL can be found here. You are not limited to using these verbs; xAPI allows you to define verbs to describe any behavior, for any purpose.

xAPI statements are usually triggered in PeBL books within extensions, since they provide the activities to be tracked within PeBL books. xAPI statements sent from extensions, the content, or the eReader can be captured by another PeBL extension, which collects all xAPI statements (as middleware or "wrapper" software) and sends them to an LRS endpoint.

The xAPI can be used as a communications protocol and data storage model, outside of user tracking purposes. This is the case, for instance, with the Discussion extension, which sends the content of messages inside xAPI statements.


The following is a non-exhaustive list of resources for understanding and using xAPI and LRSs: