xAPI is not magic: III - xAPI can track anything

By jPablo Caballero | January 8, 2017

The potential for tracking enabled by xAPI is phenomenal. So, yes, with xAPI-enabled systems you can track anything. So can you with non xAPI-enabled systems. Learn about tracking per se vs. xAPI, and about the value that xAPI adds.

Another aspect of xAPI that is often conveyed too loosely is related to the ability it provides to express any experience or event.

Indeed, due to the flexible Actor + Verb + Object structure of a statement, a critical construct in the specification, xAPI systems can express pretty much anything. The specification also states, among many other things, how a statement or set of statements, should be transmitted to another system. So, xAPI facilitates the expression and transmission of data among systems (and a common ground to interpret that data in a consistent way, so systems can understand each other).

In fact, this flexibility is so great that the xAPI community has come up with artifacts (registries of verbs and objects, and recipies – they are not part of the specification, but are considered good practices) to somewhat limit how things are expressed, so consistency is not jeopardized by such flexibility.

However, the spec doesn't prescribe anything about the act of gathering data (the act of tracking). That depends on the system/solution, what needs to be done, and how developers program those systems to gather data. A system might need to gather information about user clicks on a web environment, while another system might need to detect Bluetooth Beacons and do something with the information that the beacon sends. Then, the system -if it is to be integrated in a xAPI solution- will create xAPI-conformant statements, using the data it has gathered previously, and will send them -according to xAPI rules- to another system.

There is an article shomewhere that said, almost literally:

xAPI can capture any form of learning, anywhere, anytime

Doesn't a sentence like this leave you with the feeling that xAPI is something magical? If it does, you can be certain that there is something wrong with the sentence.

In that particular sentence, there's a few things worth mentioning. First, as was explained in the previous article, xAPI doesn't capture anything. The data is captured by a system (or many systems), in whatever way those systems have been programmed to capture data. Then those systems, if they want to integrate in a xAPI environment, will do something with that data, abiding by xAPI rules. Second, the expression capture any form of learning leaves one thinking how learning can be captured. With xAPI you can express, transmit and store streams of events/experiences that later (after some level of analysis) might lead you to conclude that learning has taken place. As for the anywhere and anytime, well, again, that's system-dependent.

The fact that xAPI exists and it is very useful doesn’t automatically imply that every vendor will implement xAPI in all their products and systems.

Another aspect that can help understand the separation of ‘the act of gathering data’ from xAPI per se, is the level of detail that needs to be gathered and shared.

Let's see an example. Imagine that a forklift simulator is used to train people on how to use it. The simulator can emit the statement:

on Wed Sept 3rd 2015 at 10:00:12 am john@doeland.com experienced the forklift simulator

Or it can emit the following statements:

on Wed Sept 3rd 2015 at 11:08:24 am jane@doeland.com inserted the contact key

on Wed Sept 3rd 2015 at 11:08:28 am jane@doeland.com turned the contact key to the position “ON”

on Wed Sept 3rd 2015 at 11:08:48 am jane@doeland.com pressed the brake pedal

on Wed Sept 3rd 2015 at 11:08:54 am jane@doeland.com pressed the start button

on Wed Sept 3rd 2015 at 11:09:14 am jane@doeland.com pushed the elevation lever of the forklift three quarters of the way down

All those statements can be expressed in the xAPI-prescribed way, but obviously the information about what John did (conveyed by the first statement) is so limited that is hardly useful. The simulator might have gathered a lot of data points, but it only builds and reports one simple statement.

In the case of Jane, the system might have gathered the same data points internally, but processes them in a different way, so it can express a lot more information about how she is using the simulator. This information can later be used to infer whether learning has taken place or not, taking into consideration many other factors and other pieces of data.

The amount of detail that needs to be gathered at the internal system level and the level of detail that needs to be reported as xAPI statements depend only on the system and the particular situation (what we want to do). It is not dependent in any way on xAPI.

Similarly, it’s not hard to find articles out there that mention how xAPI can track activity on social media, youtube, informal learning in general, offline events, etc. and then use all that data to compare with real performance data. Again, it is perfectly possible, but things don’t happen magically. The fact that xAPI exists doesn’t mean that “everything is tracked”. If a corporation wants to track what its employees do on Twitter, or on YouTube, or whatever… well, somebody has to set up the systems/programs/apps/plugins/etc. somewhere that can technically track activities in those environments and express them as xAPI statements (and send them to the LRS – Learning Record Store, the storage systems for xAPI statements). And, in most cases those systems would need the user’s permissions to track her activities).

So, it should be clear by now that xAPI in not some kind of magic dust that you can sprinkle on your systems and they will magically ‘track everything’. Somebody must first enable the systems to gather data and then use that data to build statements and send them -according to the xAPI spec- to other systems.

So, even though all this work of gathering data has to be done anyway, the value of xAPI is unquestionable, since it provides a way for all those disparate systems to work together, to talk to each other and be able to understand the data that they exchange.

Another aspect worth discussing about the idea of ‘tracking anything’ is the tracking of offline event and activities, but that's the subject of the next article.