0

I am currently exploring Learning locker and XAPI for one of our project needs .I could not figure out a way to store historical data about learners .We have use case where we need to generate report about learners from past one year or so .I understand there is model called persona and it supports several end points to change and delete .But none support to store old data with new .How this can be achieved in XAPI ?Any help on this would be appreciated .

Edit: would like to know if there is any way I can store old information about the agent/Learner while maintaining the current information too .For ex :Learner moved from one organization to another or He moved to different department .his name is changed .How can we store these.I believe persona or agent profile stores only recent version not all the historical data .And all information about agent will not be part of Statements

Rajesh Kumar Dash
  • 2,203
  • 6
  • 28
  • 57

1 Answers1

0

With xAPI it is expected that a learner's historical data will be stored as Statements. Each Statement is recorded in the LRS and it is the accumulation of all Statements that makes up the historical record. While there is the concept of document storage (the Agent profile you mentioned, and the State profile) there isn't really a "state" stored for a learner's training data. Any "state" that is needed is intended to be calculated based on the recorded Statements. There is more information about xAPI statements here: https://xapi.com/statements/

Brian J. Miller
  • 2,169
  • 1
  • 12
  • 12
  • Thanks @Brian For answer .I would like to know if there is any way I can store old information about the agent while maintaining the current information too .For ex :Learner moved from one organization to another or He moved to different department .his name is changed .How can we store these – Rajesh Kumar Dash Aug 31 '21 at 13:59
  • One more thing statements cannot contain arbitrary information about learner – Rajesh Kumar Dash Sep 01 '21 at 05:17
  • @RajeshKumarDash because the statements are immutable and effectively comprise a journal or log, the statements already "store old information". If you want to store "current" state then you could do that using the Agent Profile document APIs (not the person one but the other) or store that "materialized" view outside of the LRS. Statements can contain arbitrary information via the `extensions`, but again it needs to be considered whether that makes sense as part of the log or not. – Brian J. Miller Sep 01 '21 at 15:25
  • Thanks for the answer .So that means current state of mutable objects i.e agent can be stored in agent profile (which is a key value json store) And past value of Agent can be stored as part of statement(May be extension). – Rajesh Kumar Dash Sep 02 '21 at 10:28
  • In theory, yes. It is up to the LRS implementation and how it handles credentials as to whether that works in practice. For most xAPI users the statements should always be considered the source of truth. – Brian J. Miller Sep 03 '21 at 13:12