One of the biggest promises of the Experience API is delivering contextual information at the moment of need, such as the distribution of the answers so far after completing a question. Unfortunately, such aggregate data are expensive to compute in the client; it might take several seconds to retrieve the necessary information for even a few thousand answers.
One option is for systems providing contextual information to expose additional APIs for accessing the aggregated data. That may be reasonable for some scenarios, but for answer distribution and many others the approach poses overriding interoperability and portability issues.
Instead, I recommend that LRSs and reporting systems providing summary information intended for use at the point of experience materialize those summaries periodically into summary statements with a sketched form such as ‘LRS summarized the answers for Question 7 as ________’.
Using this Materialized Summary approach, clients can easily retrieve the summary statements to contextualize activity. What’s more, they’ll be able to use the stream of summary statements to provide greater contextual information than a naive API would, such as showing an instructor how answer densities evolve over time – perhaps one answer was popular early on, but right now another’s ahead.
The one part requiring notable implementation on the client is that many summaries will be delivered as extensions (almost always result extensions), but the burden for those on clients is much smaller than for a new API, and the same extensions could easily be used by multiple summarizers.
This is early days yet, what with 1.0.0 only just now coming upon us, but there’s already a burgeoning ecosystem of tools for working with the Experience API. The Materialized Summary pattern will help make the fruits of analysis reusable to enhance and extend experiences at the moment of need.
What data would help you contextualize experiences? Comment here or drop me an email if you have ideas, thoughts, or want to try some experiments.