using xAPI to track activity interactions (responses)

183 views
Skip to first unread message

Tom Buckham

unread,
Dec 11, 2017, 12:11:24 PM12/11/17
to xAPI Design
Hi all

This is my first post in the group. I've read through a lot of information about xAPI via articles on experienceapi.com (etc), and now our organisation is looking to implement xAPI I'm keen to find somewhere to raise some queries with the wider community around best practice in a few areas of design - hopefully I'm in the right place :)

I was curious to know what people's thoughts were on the best approaches to capturing response/input data from users in e-learning content via xAPI?

From reading some of the useful posts from people like Brian Miller, it seemed like the approaches you could take included:

Creating activities with types 'cmi.interaction' and then making use of correctResponsesPattern both in the activity definition and then in the result object via the response property. 
OR
doing so through the use of Activity types and Activity Definition Extensions.

Using the cmi.interaction activity type seems fairly clear and straightforward. However I was wondering if anyone else has had experience implementing something in this area, particularly around using activity definition extensions for the same purpose? I took a look at https://registry.tincanapi.com/#home/extensions and couldn't see an obvious one analagous for 'correctResponsePattern', although I guess something could be coined easily enough. For interaction data needs are most people typically using cmi.interaction activities?

One other item from the spec in relation to the cmi.interaction activity types I was curious about was:
Learning Record Consumers cannot infer success based on comparison of the response with the Correct Responses Pattern, nor can they rely on the Correct Responses Pattern always being exhaustive. 
I presume this relates to the Result object's 'success' property, rather than literal computation as to whether the activity should be marked as correct/incorrect  (for which I presume comparing the response with correct response pattern should be fine)?

Any thoughts and advice are much appreciated!

Thanks,

Tom

Elena Torro

unread,
Dec 11, 2017, 2:04:31 PM12/11/17
to xapi-...@adlnet.gov
Hi, Tom :) 

I am actually working on this on my final MSc thesis, and for this purpose I developed a tiny library to capture student events and send it to a LRS (in this case, I have configured LearningLocker in a Digital Ocean server). This is the library https://github.com/elenatorro/xAPI-javascript-events and here there is a simple example where I am using it https://github.com/elaio/elaio-test. Hope it helps!

About your question, I think it means that you can not set the result of an activity (if it is successful nor not) based on the CorrectResponsesPattern when you get a statement, because it is not responsibility of a Learning Record Consumer. This responsibility relays on the Learning Record Provider. The Learning Record Consumer must trust the response the Provider has set. This is the way I understood it, but please tell me if I am wrong :). 

Thanks!! 
Elena.


--
You received this message because you are subscribed to the Google Groups "xAPI Design" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xapi-design+unsubscribe@adlnet.gov.
For more options, visit https://groups.google.com/a/adlnet.gov/d/optout.

Tom Buckham

unread,
Dec 14, 2017, 4:16:09 AM12/14/17
to xapi-...@adlnet.gov
Hi Elena

Sounds like I am in the right place for these sort of questions! :)

Thanks for your reply - I have been meaning to clone the repos this week to take a closer look but have been a bit time-poor to do so. I will try and take a closer look ASAP however as it will be great to see what you've put together!

In the meantime I don't suppose you have any sample statements showing some of the interactions/inputs captured do you? I'd be interested to look at what's being generated in the JSON in the meantime.

Re: your other answer - this makes sense. Actually when I looked back on my question I think I had just mis-read the wording in the spec the first time round. In my head I still think of 'activity provider' for 'learning record provider' (from the earlier version of the spec I think), so when you're reading things over quickly learning record provider/consumer is perhaps easier to muddle (for me at least!)

Thanks again,

Tom
--
Tom Buckham
---------------------
07554 032706
@tombuckham

Pankaj Agrawal

unread,
Dec 14, 2017, 5:26:31 AM12/14/17
to xapi-...@adlnet.gov
Hi Tom,

But correctResponsePattern I believe you mean correctResponsesPattern. You can see some very good examples in the xAPI Spec documents itself. 


In terms of real life examples of learning data in use. I can say that almost all the authoring tools use it currently, be it Articulate, Captivate, iSpring, Lectora, H5P or others. So, you can find examples everywhere, and on all public LRSes including our Demo LRS:


Unfortunately, I cannot authorise that all the statements there, or all the statements generated by any of the authoring tools would be perfectly perfect. But to my knowledge most of them do a good job. 

Regards,
Pankaj Agrawal

jollyrogerbugblocker

unread,
Dec 14, 2017, 5:56:47 AM12/14/17
to xapi-...@adlnet.gov
Greetings all,

First time poster here as well. Had to chime in as I just couldnt figure out what I was doing wrong last week in sending my satements.

I know this might sound completely obserd, but I was missing my result. As I initially understood, I thought I only needed to send the Actor, Verb, Object.... not quite.

The key I was missing was the result... yeah, Ooops. The object needed a result. 

The best example that got me over my hump was Will Chinda's.

Great stuff, also using Tin Cans statement viewer and golf examples really helped me understand how the statements were being sent/received. 

As you all can tell, I'm the new guy at xAPI, but quickly finding out its much different it is than SCORM. I'm sure others can explain at much greater details, but scince I'm the FNG at all this, here is whats rolling in my head. 

1st -SCORM requires a PIF file be loaded on an LMS. 

2nd- SCORM requires a strict/loose imsmanifest with all sequencing and resources defined in the PIF. 

3rd-SCORM requires the initiate and terminate (...or, suspend) calls be sent for each session. 

xAPI only needs to know where your LRS is, the authentication to post the statements and what the activity did ...including the result...of the Actor, Verb, Object.  Each one of these can get deep as I'm finding, but it is just based on the three needs. 

We are targeting a sunset of our LMS and only use our home cooked LRS. This breaks the cost molds of LMS dependencies HW/SW (including SCORM cloud). This also allows us to focus in on the learning activities first, rather than the tech rules and boundaries. 

We essentially, are aiming to manage and host our own content where ever, however we want (adhering to best practices and standards). We only need the content to send the statements to our LRS.

It does sound like a great group and looking forward to the discussions.

Thank you for your support,

-Roger



Sent from my T-Mobile 4G LTE Device
To unsubscribe from this group and stop receiving emails from it, send an email to xapi-design...@adlnet.gov.

Tom Buckham

unread,
Jan 15, 2018, 2:31:38 PM1/15/18
to xAPI Design
Hi Pankaj

Many thanks for your reply, and apologies it's taken me so long to acknowledge it and reply back!

The information re: Articulate, Captivate et al is useful. I'd read the main spec and had seen that cmi.interaction activities (with the correctResponsesPattern property) seemed to be the obvious path to follow in this area, but it was/is useful to get the input that most prominent authoring tools are following this approach in terms of activity definitions and xAPI configuration. 

I've been able to generate some sample content with Articulate following your post, so it's easy enough to take a closer look at the xAPI configuration via that as well. The link to Grassblade LRS is also useful to get a wider look at some example data.

Thanks again 

Tom 

Regards,
Pankaj Agrawal

To unsubscribe from this group and stop receiving emails from it, send an email to xapi-design...@adlnet.gov.

--
You received this message because you are subscribed to the Google Groups "xAPI Design" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xapi-design...@adlnet.gov.
--
Tom Buckham
---------------------
07554 032706
@tombuckham

--
You received this message because you are subscribed to the Google Groups "xAPI Design" group.
To unsubscribe from this group and stop receiving emails from it, send an email to xapi-design...@adlnet.gov.

Pankaj Agrawal

unread,
Jan 15, 2018, 2:53:21 PM1/15/18
to xapi-...@adlnet.gov
Perfect, great to know that you were able to figure it out. 👍

Regards,
Pankaj Agrawal

To unsubscribe from this group and stop receiving emails from it, send an email to xapi-design+unsubscribe@adlnet.gov.
Reply all
Reply to author
Forward
0 new messages