On Tuesday, March 31st, 2015, we hosted a webinar about nine practical use cases of the Experience API (xAPI). As usual, the attendees had more questions than we could answer during the live webinar, so we’ve posted the questions and Andrew Downes’ answers here.

Q: What does LRS stand for? How does an LRS differ from an LMS?

A: Learning Record Store. There’s a great explanation of what an LRS is and how it differs from an LMS here.

Q: What does “bespoke API” mean?

A: From the Wikipedia definition of bespoke: “altered or tailored to the customs, tastes or usage of an individual”. Many products and systems have an API that’s specific to that individual system. If you want to integrate with that system, you need to tailor-make an integration with that system and you won’t be able to re-use that work with another system. The point of xAPI is that you can do the integration work once and it will work with any xAPI conformant system.

If a tool doesn’t support xAPI, and you can’t get the vendor to add support, one option is to integrate with their bespoke API and then translate that data into xAPI statements. You can then send this data on to any xAPI conformant system, so at least one side of your integration is re-usable.

Q: Is there an xAPI beginner’s learning event?

A: Whilst most of you loved the webinar, for those of you that didn’t, the common reason given was that it assumed too much knowledge of the basics (there were also a few of you who wanted it to be more technical, so I guess we found a good middle ground). We do have an number of earlier webinars that start right at the beginning and go over all the basics. You can find the recordings and slides on our Webinar List.

Q: Can you show some real life examples of questions that can be answered.

A: There are quite a few! Check these out: our webinars and xAPI Adopters.

Q: Where can I find a list of xAPI compatible applications or platforms?

A: We keep a list of all the products we know of that implement xAPI on our Adopters page. Some of these do more with xAPI than others, but we like to remain neutral and don’t do reviews. Hopefully the webinar today gave you some good questions to ask vendors, and I’m always happy to help anybody with writing requirements.

Q: Is there a database that lists xAPI developers that I could reach out to for contracted work?

A: The number of developers with xAPI experience who aren’t employed is going to be pretty short. We have a lot of developers at Rustici Software, so why don’t you contact us to see if we can help?

Q: What proportion of large companies now have LRS capability, would you estimate?

A: I have no idea what the answer to this is. Most of the people I speak to either have an LRS or are looking at getting an LRS, but that may be because the kind of people who speak to me are those who are interested in xAPI!

Q: Are there any LMS which can listen to Experience API calls generated from other learning contents.

A: There are several LMSs that include an LRS, but are you asking more in context of feeding xAPI data into adaptive pathway features? I’m not aware of any doing this today, aside from Moodle which can be made to do this via my launch plugin.

Q: Can you also share the link to your Moodle plugin here?

A: A link to the latest release of the plugin is here: https://moodle.org/plugins/view/mod_tincanlaunch

It’s also worth noting that the plugin has had a lot of attention from code contributors recently, so you can expect a new version with nicer a nicer admin UI and better compatibility with later versions of Moodle sometime soon! You can follow the development on GitHub here: https://github.com/garemoko/moodle-mod_tincanlaunch

Q: For EPSS scenario in business applications, can you explain how xAPI can be used to trigger an action based on specific context on the application screen?

A: It’s worth noting that depending on the EPSS system, the system itself might be able to detect context and trigger itself. In that case, you don’t need to use xAPI for that particular feature, but would just use xAPI to track the learner’s interaction with the software application and with the EPSS system. This data could then be used for analytics and by other learning experiences to tailor the experience to the learner.

If, however, you have access to the business application and your EPSS tool is not itself able to detect activity within that tool, you could our open source libraries to issue xAPI statements from the business application to the LRS. The EPSS tool would then get the data from the LRS and deliver appropriate content. If that sounds useful to you, please get in touch and we can discuss the specifics of your situation.

Q: What method do you use to trigger the next learning activity?

A: I’m assuming this question came in the context of adaptive learning pathways. Normally LMSs have existing systems in place for delivering and unlocking content. In the webinar, I wasn’t talking about creating your own systems to do that, but rather hooking xAPI into existing LMS features in order to trigger learning activities based on xAPI data rather than the LMS own internal data. The innovation here isn’t adaptive pathways; it’s using information from outside the LMS or hidden deep within learning experiences to inform those pathways.

Q: How do you deal with authentication of user? How do you know person A is really person A?

A: This is an important question to ask in regards to any online activity where it matters significantly that you know the identity of the person sat in front of the computer. This isn’t a question that’s specific to xAPI or that’s solved by xAPI. Whilst xAPI does include security features for communication between the Activity Provider and the LRS, the biggest challenge is for the Activity Provider to confirm the identity of the learner. Mike set this out quite nicely in 2009 in relation to SCORM in this blog post and I answered a similar question about security and xAPI on Stack Overflow here.

Q: Once we use Experience API, there may too many experiences. How do we decide what is valuable?

A: Too much data! This was one of the concerns expressed about xAPI in the early days (even as far back as 2011), but in practice, we’re simply not seeing this issue come up. That’s because in well designed systems, you’re capturing the data that you need. That data is then interpreted by a computer and the user only gets to see the data that’s relevant to them. Or perhaps they don’t see any data at all, but the data is used to shape and improve their experience.

Q: We in L&D in our organization are more than ready for TinCan – however, we are in the “chicken & the egg” predicament – we need to prove the technology via a P.O.C., yet it is tough to sell the cost to the check (or cheque)-signers – any advice?

A: For a proof of concept there’s certainly a lot you can do on a limited budget. You can get a free account on SCORM Cloud as your LRS, so then you just need to worry about generating and displaying the data. Our prototypes might help with one or the other side of that equation. Take a look at those links and then get in touch if you need any more help!

Q: You referenced a study AT&T did to see the results of highly produced courseware vs. lo-fi. Is that one “How AT&T is Using xAPI in their Learning Program?

A: That’s the one (or at least that’s the title on the slides). You can find the recording at Webinar List under “Webinar: How AT&T is Using xAPI to Enhance Compliance Training”.

Q: How does compliance learning management work with xAPI?

A: Like any learning, it’s important that compliance training is engaging and effective and there are a number of stakeholders that want to report on compliance activity. The AT&T example above was a project within the sphere of their compliance training.

Q: If my LMS supports badges, why do I need the Experience API for it?

A: xAPI does a lot of other things than Open Badges, but I guess you’re asking ‘Why would I want to transmit earned badges and/or badge definitions via xAPI?’.

Here’s the list of use cases I’ve come up with so far:

  • Share awarded Badges between systems.
  • Share Badge definitions between systems.
  • Share Issuer metadata between systems.
  • Define machine readable Badge Criteria and Evidence.
  • Automatically award Badges based on xAPI Statements.
  • Use an LRS as a Badge Backpack (buy one get one free).
  • Localise Badge definitions.
  • Earn Badges you didn’t even know existed!

Using xAPI with Open Badges enables the kind of scenario I described in the webinar with this slide:
Experience API xapi badges
You can read more about xAPI and Open Badges here: Tin Can Badges.

Q: Did Gamers develop the concept of xAPI Badges 🙂 I need my Plat trophy with all banners and badges.

A: For those of you who (like me) didn’t know, apparently a ‘Plat trophy’ is something you receive on a Playstation for completing achievements. Open Badges and other gamification elements certainly do drawn on the world of gaming based around the idea that people enjoy playing games and are motivated to keep playing them, therefore if we include gaming elements in learning or other activities, we can motivate people to stick with them. When done well, gamification can work really well, but done badly you can end up with something that’s neither learning nor fun.
Here’s a history of gamification on wikipedia and some YouTube videos by somebody from a gaming (rather than learning) background.

Q: Do you have an example of team learning using xapi?

A: I’m not aware of anybody doing these yet, but it should be pretty simple to setup a basic proof of concept using a free account on SCORM Cloud as your LRS, your favourite authoring tool, some sticky-back plastic and a yoghurt pot. Get in touch if you’re interested in trying this in your organisation; I’d love to have some real live examples to share.

Q: The definition of blended learning presented seemed too narrow.

A: I agree! Part of the reason for this was limited time on the webinar, but the points I put across also led to a more focused view on blended learning that didn’t do the concept full justice. Let me explain.
I presented two views of blended learning:

  • Blended learning without xAPI.
  • A pilot project you can run to link together two elements of a blend.

The first view looked at blended learning in practice in most organizations. In many organizations the elements of the blend are disjoined and not connected. I listed a few examples and I’m sure you can think of more blend elements you’ve used in your organization. As I explain in my blog, part of the solution to this is better design of the blend, but xAPI can play a role in better connecting our experiences together. The second view looked at linking two different e-learning courses together using xAPI. It’s true, two e-learning courses is an extremely narrow blend, but we’re talking about a pilot here. Start simple and get two e-learning courses working together and then build on that with further elements.

Q: A lot of privacy related examples. You store personal information in the LRS. What about privacy?

A: Privacy is really important, especially in some parts of Europe and it’s something the specification working group are always thinking about. Broadly speaking though, privacy is the responsibility of the tools and vendors that adopt xAPI, rather than the spec itself; the spec just handles the transmission of data: what data you collect, how you store it, how you use it and how you dispose of it are down to you.

As xAPI generally deals with learning data (just more of it) most organizations will already have policies in place for that data. In a lot of cases those policies will continue to be relevant with xAPI; privacy is not an area that needs to change. What are you doing about privacy of SCORM data? Do that with xAPI.

Q: Off topic, I know, but what’s the current status of CMI5 for launching activities?

A: CMI-5 is reaching it’s final stages of development and the next big step is a ‘Pre-Release’ meeting on 15th April 2015 in Washington DC. I expect we’ll get more news about an actual release following that meeting.

Q: There is any authoring application that generates SCORM compatible content and xAPI at once?

A: Most authoring tools will allow you to build once and then publish as either xAPI or SCORM. In my opinion this is actually a bad thing. If the learning experience you’ve designed is capable of being published to SCORM and works fine as SCORM then you haven’t designed something that goes beyond the limitations of SCORM; you’re not taking full advantage of the possibilities of xAPI. See the Q&A below relating to translating SCORM data into xAPI statements.

Q: We have a large library of legacy content that runs inside of a SCORM 1.2-compliant course player. In order to start capturing xAPI events from this content, should we construct a SCORM-to-xAPI translation layer? Should we use the CMI-5 standard as a guide for which xAPI verbs and properties to use when performing the translation from SCORM?

A: SCORM Cloud and Rustici Engine will translate SCORM data into xAPI statements and more and more LMSs are adding that feature. The simplest thing to do is to get a product that already does this. If you are a product vendor yourself, then adding this feature to your product may be worthwhile. It’s certainly worth looking at CMI-5, but I don’t recommend implementing it wholesale at least until it’s released.

Q: How do I authenticate a user on a mobile device with xAPI?

A: This question isn’t specific to xAPI, but relates to authenticating the user on any mobile app. With any authentication method you need to balance security with convenience. The following options represent different points on that spectrum:

  • Store credentials in the app and save the learner’s name and email in the app settings.
  • Have the user log in to the app each time they use it; verify their account against their e-mail address by sending them an email.
  • Have the learner enter new security credentials every time they use the app, perhaps by scanning an onscreen QR code.
  • Two factor authentication.

There are other options and you should discuss your app with a professional app developer; this question is not specific to xAPI.

Q: How can xAPI record experiences from performance within a simulation scenario?

A: The main two issues to consider here are how to technically get the data and how to design the content of that data. You can use our open source libraries to get that data out of whatever tool you’re using for the simulation.

Q: How do i track video learning? Example something like youtube. As it’s a pain to upload video into LMS, so there might be video streaming server separately.

A: Again, you need to consider the technical side and the design side and you can use our open source libraries to get that data out of whatever tool you’re using for the video. On the design side, you should follow the video recipe here. Take a look at this blog on tracking YouTube too.

Q: How about Smartboard compatibility?

A: I used to teach in a college and will always remember the gasp of “Wow! Star Trek!” when I unveiled a set of polling devices to a particular class of students. These devices are great for engagement and gauging learning during a session, but what if I want to get that data back into my VLE afterwards and deliver e-learning based on the choices students made in the session? The same applies to interactive whiteboards; how can I record student interaction to better differentiate their future learning?

I’m not aware of any IWB or polling device vendors adopting xAPI yet, but if you use those devices, why don’t you ask your vendor about it? I’d be very happy to join the conversation to if that would help? Just let me know.

Q: Can we use tin-can to build an employee self reporting system (with manager approval) on outside the company training (individual courses, etc.)

A: Yep! If you’re looking for a low-cost prototype, a free account on SCORM Cloud combined with our bookmarklet is a good place to start.

There’s also a number of products you can buy that might meet your needs. Some to look into are:

Q: What about interfacing with current HR systems (employee qualifications, etc.) like SAP and Peoplesoft?

A: Many of the projects the Watershed team do involve integration with some HR system or other. This is definitely possible and something to ask both your HR systems vendor and your LRS vendor.

Q: I’m interested in open source ASP.NET MVC projects supporting xAPI – Do you know of any?

A: We have code libraries for all the major programming languages including C#.NET here.

Q: If a tool can both send and receive TinCan statements, can I assume that the statements do not first have to be processed via an LRS but directly within the application – in this case – say Lectora?

A: I might have misunderstood this question. Are you asking if it’s possible to send data from a Lectora course on one learner’s computer to another Lectora course on another learner’s computer? This is probably not impossible, but you’re better off sending all data via the LRS. Contact me if I misunderstood or if you have follow up questions!

Q: Do you know any LRS that supports the Unity Engine and xAPI?

A: All of them! It’s actually not down to the LRS, but rather up to the code you put in your Unity program to send xAPI statements. Any conformant LRS will support any conformant xAPI Statements. There’s a few groups I’m aware of experimenting with tracking Unity games with xAPI. Use our libraries!

Q: Our students in Africa use Whatsup and Facebook on their mobile instead of the forum in the LMS. How would you track these learning experiences?

A: Unless these applications adopt xAPI themselves, the most straightforward way of adding xAPI tracking to them is to use their plugins and APIs. See https://developers.facebook.com/. I couldn’t find anything on the whatsapp website about plugins or APIs, so you’ll need to speak to Whatsapp about getting the data out.

I’d also be asking the question about why the students use Whatsapp and Facebook instead of the forum? What value are you giving them of using the forum? Are they actively trying to avoid being tracked or just using tools that are more convenient? If your students are children or young adults, are there any child protection issues around them using a system you don’t control?

Q: Does Blackboard support Experience API?

Yes! See the Adopters List. Of course, that doesn’t tell you which parts of Blackboard use xAPI or what it does with xAPI. The point I was trying to get across in the webinar is that there are lots of different things you can do with xAPI. You need to tell your LMS vendor which of those features you want.

Q: Can IBM Notes communicate through xAPI? We build a lot of custom databases in-house for our remote project locations.

A: I’m not familiar with IBM Notes, but I’m sure you could integrate xAPI into it as a way of transmitting data. The benefit of using xAPI and an LRS over a custom database is that you can then re-use the data for analytics and other applications. If you already have custom databases and they work, is that a big enough benefit to make it worthwhile replacing them?

Q: Any integration with Sharepoint and TInCan?

A: This has been asked in webinar Q&As once or twice before. I’m still not aware of any examples of people having done this yet, and we’re still happy to talk to you about helping you do this in your organization. We are actively talking to at least one organization about this at the moment.

Q: Might be a stupid question but if I wanted to use Google Apps for a learning experience how does that work with Experience API? Does it work? Do the learners have to manually track things they do? E.g. They are required to have a Google Hangout session as one of their activities, how (if possible) would that be tracked?

A: To add xAPI tracking to Google Apps, you’d use the APIs described on the Google Developers site. For example here’s the page for the Google Hangouts API: https://developers.google.com/+/hangouts/getting-started and the page for Google Analytics: https://developers.google.com/analytics/solutions/. You could then develop an application that pulls data out of the Google Apps, translates it into xAPI statements and then sends it on to the LRS.

Note that in the case of Google Analytics, it might be simpler and better to track your pages with xAPI directly as you can include more detailed information in xAPI than is possible with Google Analytics. If you’ve got capacity and capability to do this yourself, great! If not then this is something to ask your LRS vendor about.

Q: Can xAPI and ePub3 properly integrate to give peer learning analytics to manage “how much should I read and how quickly?” to group learner pacing regardless of device or location?

A: Yep! John Costa at RePubIt is the man to talk to about xAPI and ePub3. You can find his contact details and information about the ePub3/xAPI Community of Practice here: https://adlnet.gov/collaboration/cop/e-books/

Q: Are you familiar with a Finnish company, Arcusys and their Valamis learning “experience” system (LXS) that incorporates its own LRS database, with TinCan compatibility and open badges generator?

A: I am indeed! I’ve had a couple of chats with Valamis and they are on our Adopters List. It looks like a really interesting product.

Q: Can I build my own LRS?

A: Trust me; you don’t want to build your LRS. There are two very good reasons:

  • Building an LRS is hard. We deliberately designed to specification to make it as simple as possible for Activity Providers. This means that in every complex use case, the burden of complexity was put onto the LRS. Several organisations have looked at the spec and thought “that looks simple” only to realise after spending a lot of time and money (and getting lost in statement chaining, equivalence comparison and validation) that it’s not as simple as it looks.
  • There are lots of LRSs out there already with a range of business models, feature sets and price points. If you’re an organization, it’s cheaper to get an existing LRS than build your own; if you’re a vendor, the market is saturated.

A better use of your developer’s time is to work on products that connect to LRSs. Look at the nine applications I outlined in my webinar. Could you make a product that nails one of those?

Q: Pardon my ignorance, a xAPI statement is a piece of javascript is that accurate?

A: Sort of. A xAPI Statement is a JSON (JavaScript Object Notation) Object. See here for more on Statements.

Q: Are TinCan ‘listeners’ basically web services?

A: I’m not sure where/if I used the term ‘listeners’ in my webinar, but it’s not a commonly used term so if I did, please disregard it! An LRS has web services endpoints that clients can send data to. Perhaps you mean ‘handler’? I talked about triggers and handlers in the webinar. In this case a handler is something that receives data and does something with that data. A handler might have a web services endpoint that the LRS can forward statements to, or it might periodically get data from the LRS.

Q: Regarding authoring tools and actions: Can a Storyline course receive LRS data using the ‘Execute Javascript’ action?

A: Yes. This is exactly how you would pull xAPI data into an authoring tool’s actions system. Use our libraries.

Q: I would like to create a button in Captivate 8 or Articulate Storyline 2 that when clicked on sends a xAPI statement to the LRS. Is there code anywhere that I could use as a starting point?

A: See the question above. You would ensure that the TinCanJS code library is included in your published package and use Execute Javascript to call functions in that library to send and receive statements. I’m very happy to help anybody who wants to try this, especially if they’re willing to share a prototype course showcasing their work.

Q: Right now it seems like the content authorwares only register the user moving through slides. More complex things like branching scenarios or objects with several embedded links is ignored. Is that the case?

A: There’s certainly variation between authoring tools on the depth of tracking on offer. The same applies to SCORM. You should definitely consider your tracking needs when choosing an authoring tool.

Note that you can add to or even replace an authoring tool’s tracking with customization. See above.

Q: What are the pros and cons of xAPI libraries vs. xAPI libraries from ADL?

A: Oooh! That’s fightin’ talk! Obviously our libraries are the best!

Honestly, I haven’t looked at the ADL libraries for a while. I’ve always used the Rustici Software libraries (even before I joined the team) simply because they’ve been around longer and I’m used to them. I suspect our libraries have more features and do more validation, but I don’t know for sure that that’s the case. We’re certainly not in competition with ADL; we’re collaborating together to make it easier for everybody to adopt.

Our libraries are completely open source and we very much welcome code contributions from everybody; in fact, somebody has just started on a TinCanRuby library entirely independently. This is awesome as we didn’t have that library covered previously. the ADL libraries are similarly open source.

I don’t mind which libraries you use (though I’ll be able to do a better job of helping you if you use ours). The important thing is that you use a library.

Q: My organization provides learning services to multiple client organizations. We have constructed a RESTful xAPI-compliant interface on top of our internal data store, but we aren’t sure of the standards-compliant way of securing access to the runtime xAPI. How should we secure access to the xAPI so that unauthorized applications can’t access our API?

A: The specification allows you to use Basic HTTP, OAuth 1 and/or Common Access Cards for authentication. Basic HTTP is the most commonly used and I’m not aware of anybody using Common Access Cards.

Q: How is xAPI tested for conformance once integrated into a course in SCORM we had the test suite.

A: The theory is that because LRSs validate incoming data, xAPI clients can be validated as ‘conformant’ by running them against a conformant LRS. In practice, the conformance testing suite is still under development so there are no official conformant LRSs. I recommend testing your xAPI client against as many LRSs as you can, including SCORM Cloud.

Remember too that conformance is only the beginning of the story. I care that my car is conformant with road safety regulations and fuel standards, but that’s such a low bar that I don’t even ask that question when buying a car; of course it’s conformant! As people start to do more interesting thing with xAPI, we need to be asking the question of what the product does with xAPI; conformance should be a given.

Q: How long do you think it will take for xAPI to fully replace SCORM?

A: If we consider that some organizations will make an authoring tool purchase last five years or more, and then the courses produced in that tool might themselves last another five years, we can see that SCORM is going to be with us for a long time yet!
Also consider that some of the most interesting applications of xAPI don’t necessarily involve replacing existing SCORM courses, but augmenting them with a variety of other tracked learning experiences. It’s entirely possible for an organisation to go full guns blazing with xAPI whilst continuing to produce SCORM courses as part of their solution, perhaps translating the SCORM data into xAPI statements for reporting and linking to other elements of their learning blend.

Q: Are there versions of xAPI like there are for SCORM?

A: There are versions of xAPI, but not like SCORM. xAPI uses semantic versioning which means that the version number is made up for three numbers, a major, minor and patch version. For example 1.0.2 (the current version) is major version 1, minor version 0, patch 2. The previous version was 1.0.1. The numbers aren’t restricted to 0-9, but rather are incremented based on the type of change being made. 1.0.10 would be the patch version after 1.0.9.

A patch version means that there are no behavioural changes between the versions; the spec document should be easier to read and implement, but adopters using 1.0.2 are completely compatible with those using 1.0.0. Minor versions (e.g. a future 1.1.0) mean that LRS vendors will need to do some work to support additional features available to clients, but clients using earlier versions will still be compatible. Major versions mean a change that is not backwardly compatible for clients.

The specification working group are actively working on a 1.0.3 version which will be easier to read and implement but entirely backwards compatible for both LRSs and clients. Whilst there will be significant changes to the specification document, no changes are required for your code! No release date has been set for this version yet, but I’m expecting it to land in quarter three of this year.

It’s possible that the version after that will be a 1.0.4, but more likely we’ll start work on a 1.1.0 version to land sometime in 2016 or 2017. This will mean some work for LRS vendors but clients will still be backwards compatible.

There were also some beta versions of the specification before 1.0.0. I don’t recommend using those.

Q: What hard skills (programming languages) does a developer need to have in order to deploy Experience API into online learning using Captivate and/or Canvas LMS (SCORM Cloud LTI)?

A: Once upon a time, in a land called Newcastle, England, an e-learning designer with limited programming skills heard about a radical new e-learning standard and had a go at implementing it in Captivate version five. This was one of the first implementations of xAPI in an authoring tool and the learning designer lived happily ever after.

Since those ancient days of 2010, a number of learn-to-code websites have popped up, making it even easier to learn basic programming skills. Our code libraries do the hard work for you so you really don’t need to be a programming expert to implement xAPI in a tool. Use Google, ask questions on Stack Overflow and have a go!

You’ll need to learn whatever languages the tools you want to add xAPI into use. For Captivate this is JavaScript, for Canvas it’s Ruby.

Q: Is there a “no-development-required” approach to developing a training/learning program? Assuming plenty of configuration, but no programming.

A: xAPI is a communication specification for transferring data between computers. If you’re going to use it, somebody is going to need to do some programming at some point. There are two options:

  • You do the programming yourself (see previous question and answer).
  • You pay somebody to do the programming, either by buying a product where the programming has already been done, or hiring somebody to do the work. There’s a list of products and vendors on our xAPI Adopters list.

Q: Hi Andrew I’d like to take you up on your offer to connect, I am embarking on a pilot project along some lines you raise. How can I contact you?

A: Great! Email info@xapi.com.

Q: That twitter feed? I’m not sure what I should be following.

https://twitter.com/experience_api
https://twitter.com/mrdownes

Q: Will this presentation slide deck be available to download?

A: Yep! You’re reading the Q & A. The recording is here and the slides are here!

Q: Great presentation, thank you!

A: Glad you enjoyed it!