New Community of Practice for General LMS Activities?

Skip to first unread message

Pankaj Agrawal

Jun 4, 2018, 5:36:27 PM6/4/18
to xAPI-Specification
Hi All,

I have been working with Video Community of Practice since past 3 years. With an unprecedented level of support from the community we have made great progress on the Video Profile. We already have a prototype, and few implementations and we are soon to call it a release version.

As we wrap that up, I am thinking of starting another effort related to "General LMS Activities" that can potentially help many. 

There are a lot of non-learning activities that happens in the LMS or Websites like:
  • login
  • logout
  • post updated
  • lesson updated
  • user registered
  • user deleted
  • enrolled
  • un-enrolled
  • and many many more. 

Due to the nature of xAPI, all these activities can be tracked, and probably is already being tracked by several LMS system or websites using xAPI, however, I am not sure if there is a standard profile for it. 

Having a standard profile for such activities will probably solve few different problems: 
  • Have a consistent way to track and report common activities. With consistency of verbs and verb ids and any related extensions. 
  • Easier to implement, without worrying about things like what verb to use, what verb id to use. 
  • Have an Audit Log of all important events in the LRS for compliance requirements, where required. 
  • Possibly easier to comply with GDPR?
  • any more? 

Please let me know your thoughts, and if there is enough interest, we can talk about the best way to start something. 

Pankaj Agrawal 
Working Group Leader

Makers of GrassBlade

Dennis Hall

Jun 5, 2018, 7:47:12 AM6/5/18
to xAPI-Specification

Have you considered joining our cmi5 Working group?


In our cmi5 working group, we address the LMS side of xAPI interoperability and would be happy to have you join our group.

Pankaj Agrawal

Jun 5, 2018, 1:42:52 PM6/5/18
to xAPI-Specification
Thanks Dennis, I have been with cmi5 for some time and have contributed where I could. However, I haven't been able to attend the meeting for quite some time. 

Based on what I understood, the focus there was with the learning activity, and mostly about Launch and probably about the structure of the course and content packaging. 

Let me know if the focus has expanded to include other generic activities that happens on an LMS. 


Pankaj Agrawal

Jun 5, 2018, 1:53:16 PM6/5/18
to xAPI-Specification
Hi Sébastien

Thanks for the response. 

It is great to know that you have used Video Profile with your LRS and you like it. It will be great if you can share what you are doing in our Video Profile Group (, we can learn and improve from your experiences. 

I am happy to know that a proposed LMS Activities profile could be useful for your implementation. We could gain a lot from your current work. 

W.r.t. your example of course completion statement. I guess it is a pretty common use case, and my intent was focusing on non-learning activities that is not covered under other profiles like cmi5. However, if there are gaps that can be addressed, it can surely be discussed in such a community effort and included if it makes sense to the group. 


PS: Email reply to this thread will not work. You can respond from the group page at:!topic/xapi-spec/JVW-CWwKpf4

On Tue, Jun 5, 2018 at 1:44 PM, Sébastien FRAYSSE <> wrote:
Dear Pankaj,

First of all, I would like to thank you for the incredible work you have done with the video COP.
I have just implemented a first experiment using VideoJS and Trax LRS to analyse learners behaviors.
I found the video profile spec very clear, simple and usefull. Great job!

I totally agree with the need to define a "LMS activities" profile. 
I am currently in the process of getting LMS events and transforming them into xAPI Statements and there is a lot of things to define and clarify.

Just to take an example, if you want to say that a learner completed a "course" (LMS course), what activity type should be used?
There are already 2 "course" activity types defined in xAPI profiles (CMI5 and ADL). But they are refering to "content packages", not to LMS courses.
So should we define a "LMS course" activity type? Should we use CMI5 or ADL course activity type?

It was just an example. I am convinced that such a profile should be defined to improve interoperability between LMS.

Best regards,


Creator of Trax LRS

Pankaj Agrawal

Jun 5, 2018, 1:55:34 PM6/5/18
to xAPI-Specification
If anyone's response has bounced. Please note that email responses in this group has stopped working because of changes in ADL's email management software. 

However, you can always respond from the group page at:!topic/xapi-spec/JVW-CWwKpf4



Jun 5, 2018, 2:14:08 PM6/5/18
to xAPI-Specification
The reality is that xAPI is terrible for audit tracking.  It’s too heavy.  Consider the following example:

I update the price on class 011010110101 to $50.

Using a simple SQL command for internal audit tracking that’s a pretty small package of information. That will probably take two long ints and a char (so five bytes) of data.

But to use it with xAPI would look something along the lines of:

    "actor": {
        "account": {
            "name": "Anthony.altieri",
            "homePage": ""
        "name": "Anthony A Altieri",
        "objectType": "Agent"
    "verb": {
        "display": {"en-US": “updated"}
    "object": {
        "id": " 011010110101",
        "definition": {
            "name": {"en-US": "Class 011010110101"},
            "description": {"en-US": "CPR Class 011010110101"},
         { "" : 50.00 },
        "objectType": "Activity"
}  (I make no claims that any part of this is valid… I did it mostly off the top of my head.)

Or almost 700 bytes of data!  There’s also a question of timing involved in all of the data movement.  There's just too much framework around xAPI to make it carry small amounts of data.  

Honestly, I think this might be an example of where xAPI is simply not a good solution.  The extra scaffolding to support the data is ok with learning activities or the like because we get something out of the exchange:  Uniform data that can be made actionable and reportable very easily.  But in replacing an audit system that has no need to be cross-platform, I see no such gain to be found in the trade.

At least, not in my opinion.  I’ll let folks explain why I’m wrong.


Pankaj Agrawal

Jun 5, 2018, 2:19:05 PM6/5/18
to xAPI-Specification
Sure, I will try to be there in next cmi5 meeting to discuss the possibilities. If anyone else is interested, it would be good to have additional words in the cmi5 group meeting. 

The meeting details are at:

PS: Email reply to this thread will not work. You can respond from the group page at:!topic/xapi-spec/JVW-CWwKpf4

On Tue, Jun 5, 2018 at 11:36 PM, Dennis Hall <> wrote:

Yes, this is getting a bit frustrating…


Here is my previous response:

Hi Pankaj:


You are correct, we have focused primarily on this, however, we are always looking for areas we may need to expand. Since the LMS and xAPI are the focus, cmi5 should be where this is spec’d out.


We have not covered these areas, but it does not mean we should not be.


Best Regards,

Dennis Hall

Garrick Lee

Jun 5, 2018, 2:32:30 PM6/5/18
to xAPI-Specification
Anthony - Thanks for sharing these observations and for your thoughtful example. I agree with you. So much that I feel many who jumping into the fray don't realize how expensive of a proposition it is to implement xapi. This makes it infeasible for such things as Augmented, Virtual Reality, and many interactive use cases. It could get more expensive to run xapi than the required data to power the apps. 

However, I don't think you're required to save the statement data in object format, unless you're using Object Stores, like Mongo or Cassandra, so they is room for optimization and other abstractions. In SQL, you can avert from saving strings, and abstracting props to columns. But in general, I whole-heartedly agree with you. As relatively expensive xAPI is, there should be careful vetting of costs vs benefits.

Pankaj Agrawal

Jun 5, 2018, 2:34:40 PM6/5/18
to xAPI-Specification

To be honest, I have never been able to appreciate the fact that we have so much data in every statement which doesn't need to be there in every statement. It could be much shorter. 

When v0.9 was released, I was new so I was not vocal. However, I tried to discuss it with people in the same industry during DevLearn 2012 and, it was not considered a problem back then by anyone I talked to. 

Today, everyone understands the problem. But, I have accepted that it is what it is. 

When I compare learning data vs other audit log type activity. There are two things to consider: 
1. Learning data has much more weight in terms of data. 
- You may update the price one. But after you update the price, the same course will be taken by thousands of students, and each attempt will be dozens of statement. So compared to Learning Data, the other stuff will have little weight on the database storage, or network. 

2. Audit log type activity has equal or more requirement of being immutable, which xAPI provides. 

However, I agree, it is a debatable topic, and everyone's needs and use case might differ. 

If LMS/LRS vendors see a value in having a profile for such activities, I guess, there is value is having it, instead of letting everyone guess and do different things. 

PS: Email reply to this thread will not work. You can respond from the group page at:!topic/xapi-spec/JVW-CWwKpf4

Sébastien FRAYSSE

Jun 6, 2018, 5:11:16 AM6/6/18
to xAPI-Specification

As I said to Pankaj, I see many benefits in the proposed initiative. And this is not just for auditing.

For many organizations, the LMS is now just one piece of the learning ecosystem. And others have several LMSs in their organization. xAPI and the LRS should help to give the big picture of their learning activities. So I think it would be helpful to define an xAPI profile that LMS vendors could adopt in order to improve interoperability. 

I understand that the proposed initiative would mainly focus on non-learning activities, and it makes sense. Let me take some examples…
  • Login, logout, enrolled, un-enrolled, etc. would be great to track in a consistent way in a LRS, because they all contribute to depict the learner journey. Many analysis may be based on this data. For instance, some people are enrolled in a course but never start it, and you want to identify them. An « enrolled » statement is needed for that.
  • Courses (or lessons, resources, etc.) published or updated, would be also relevant to track in a LRS. For example, you may want to list the more recent courses to see their popularity during the first weeks of their launch. Or you may want to check that people go back to a course after an important update. So « published » and « updated » statements would be relevant here. 

But I think learning activities would also benefit from such a profile.
  • Content packages are covered by CMI5. 
  • Videos are covered by the Video profile. 
  • But there are other typical activites in a LMS : files to open or download, assignments, surveys, forum, etc. Some of them may happen inside a LMS or outside (they are not LMS specific). However, it would be great to clarify the most commun activity types and associated verbs, in order to let LMS vendors use a consistent set of concepts.
  • Aggregation levels in the LMS, I mean concepts such as courses, learning paths, curricula, modules, sections depending of the platform and the terms used, could also be clarified with a set of activity types. I know there are “courses”, “blocks” and “modules” defined by CMI5 and ADL. But they seem to be related to content packages, not to a learning path built inside an LMS, which can be a mix of very different types of learning activities.

These are just a few ideas. I hope it will help. 


Pankaj Agrawal

Jun 6, 2018, 4:02:17 PM6/6/18
to xAPI-Specification
Hi Sébastien,

Yes, all that makes sense. 

As proposed by Dennis, lets join the cmi5 meeting this week and see if they are able to accommodate some or all of it. 

PS: Email reply to this thread will not work. You can respond from the group page at:!topic/xapi-spec/JVW-CWwKpf4

Jun 8, 2018, 6:34:24 AM6/8/18
to xAPI-Specification

We've done a number of LMS integrations now where we are taking in data for things like enrolment, attendance and completion and I've also been involved in development of the Moodle LMS logstore plugin that captures various different LMS events. I'd be happy to share some example statements if and when that's helpful. 

Dennis - my understanding of cmi5 was that the scope is launch and track of content packages and not other LMS activity. Has that scope shifted (or am I wrong)? 


Pankaj Agrawal

Jun 9, 2018, 3:31:30 AM6/9/18
to xAPI-Specification

Thanks, I haven't looked at Moodle LMS logstore plugin, but it sounds great and should be a very good start. 

Dennis, Thanks for suggesting to discuss the idea in cmi5 meeting, I believe it was a very productive step. 

To update everyone interested, I joined the cmi5 meeting to discuss the utility of what we are discussing and if there was a possibility of add it to the cmi5 scope. And this was my take away: 
- There was a clear view that it cannot be added to cmi5 scope and has to stay as a separate profile.  
- They agreed that such a profile will be very useful.
- They wanted to make sure that this profile complimented cmi5 and did not conflict with it. 

Reply all
Reply to author
0 new messages