up2university / DSpace

DSpace customized for UP2U
Other
0 stars 0 forks source link

xAPI integration #4

Open michzimny opened 5 years ago

michzimny commented 5 years ago

Would it be possible to integrate DSpace with xAPI protocol to send records of user activities to a Learning Record Store?

More information on our LRS: https://trello.com/c/tk8eUtkR

lionick commented 5 years ago

Hi Michal, can you give me access to this link https://trello.com/c/tk8eUtkR? (nmastoris@admin.grnet.gr)

lionick commented 5 years ago

Ok Ilias gave me!

lionick commented 5 years ago

Michal, is there any documentation about xAPI protocol? Or anything that will help me for the integration? Will i need an account at https://lrs.test.up2university.eu?

Thanks in advance.

michzimny commented 5 years ago

@nadavkav, would you be able to suggest anything to @lionick, to start with implementation of xAPI?

michzimny commented 5 years ago

@lionick, you should have just received an invitation email from that instance of LL.

nadavkav commented 5 years ago

Here is a good place to start: https://xapi.com/developer-overview/

lionick commented 5 years ago

Thank you both!

lionick commented 5 years ago

I will need the username and password for the HTTP Authentication in order to make the requests. Can someone email me the credentials? For example: screenshot from 2018-12-13 13-33-30

lionick commented 5 years ago

I found it. I must use Key and Secret fields for Username and Password respectively.

lionick commented 5 years ago

I made a first attempt of xAPI integration with DSpace (https://repo.test.up2university.eu/). I am using verbs: loggedin, loggedout,searched,created,submitted,viewed and i only send statements for authenticated users. Although it can be extended for anonymous users too (for some verbs). You can see the results at https://lrs.test.up2university.eu. Some issues to be taken into account: Firstly, if someone want to add or push an item from Moodle platform to DSpace then, he/she uses admin credentials (sword@email.com) not personal credentials. Therefore, the system sends a statement including this admin user not the real user. As far as I can see, the Sword plugin is responsible for that. I dont know if this is something we want.

Secondly, is there any specifications about the statements we send?

michzimny commented 5 years ago

@gtoffoli, would you be able to address the both issues described by Nick in the previous message? Nick is implementing xAPI support in one of the Up2U tools. CC @athird

gtoffoli commented 5 years ago

I cannot see the results of DSpace-related actions at https://lrs.test.up2university.eu since I cannot guess which search criteria I could use in the Explore form of Learning Locker to find DSpace-related xAPI statements. I don't know the SWORD plugin. If it uses the admin credentials to add or push items to DSpace, I think that the sending of xAPI statements should be addressed upstream: not inside DSpace but inside Moodle itself. On the other hand, currently the moodle-logstore_xapi plugin takes over the sending of xAPI statements for all core modules of Moodle and also for several Moodle extensions: see my summary in the attached document. I think that the proper solution would be to extend the moodle-logstore_xapi to tackle also the conversion to xAPI statements of the "events" generated by the SWORD plugin. There are not unique specifications for specific xAPI statements, but only reused "recipes". I think that the verbs loggedin, loggedout, searched, created, submitted, viewed are ok; better if verbs qualified with namespaces coincide with those already used for other modules of Moodle.

Moodle-xapi mapping.docx

lionick commented 5 years ago

What I did was to integrate xAPI statements to DSpace not to Moodle plugin. This means that in order to send xAPI statements, someone mush login to DSpace Up2U platform (https://repo.up2university.eu/) and then for example search for an item, or submit a new one. As far as I know SWORD plugin uses one single account for all users so I cant track which user makes which action.

You can see the results here https://lrs.test.up2university.eu/organisation/5c0fcb10396f0b0001e9e35d/data/dashboards

gtoffoli commented 5 years ago

@lionick, so you are talking about 2 different types of activities: 1) managing or searching metadata and documents as a DSpace user; 2) using DSpace contents in Moodle through the SWORD plugin. In my previous comment, I addressed the 2nd type of activity. Concerning the 1st one, I assume that users access DSpace with the Up2U SSO login; for this case, I copy here a remark and a suggestion that I made in a document on Learning Analytics inside WP5:

It seems that users of LL, through its analytics dashboard or in other way, cannot perform queries on data coming from different tools, recognizing the coidentity of Actors corresponding to the same person. In statements generated by Moodle-Up2U through the moodle-logstore_xAPI plugin, the "actor" is identified by means of an "account" whose "name" attribute has as value a local user id assigned by Moodle; on the other hand, CommonSpaces identifies the "actor" with the email used for authentication. To solve this problem, all LL clients (xAPI “experience providers”) should identify the “actor” with an email address or with the "uid" (unique id) assigned by the Single Sign-on Identity Provider (SSO IdP).

CC @nadavkav CC @athird

lionick commented 5 years ago

Exactly! I am already using email address for users but to "mbox" attribute. Do you want me to copy email to attribute "name"? Or this is what we want?

"actor": { "mbox": "mailto:someone@example.com", "name": "0abea3ea-6b06-43d9-bb4f-d4a8f3bd2fb0", //local user id "objectType": "Agent" } Thank you very much for the information.

gtoffoli commented 5 years ago

@lionick, currently CommonSpaces puts the email address in the "mbox" slot, as you do. This is an example:

"actor": {
  "objectType": "Agent",
  "name": "Alessia Tucciarone",
  "mbox": "mailto:alessiatucciarone98@gmail.com"
},
gtoffoli commented 5 years ago

@lionick, are there updates on the Moodle-DSpace-xAPI integration? xAPI statements are still sent only to the test instance of LL? If I look for statements related to DSpace, I can find some generated by Moodle activities having "DSpace" in their titles or descriptions, but don't know how to filter-in statements generated by DSpace or the DSpace plugin. Could I get a list of the verb and activity type identifiers qualified with their namespaces? Many thanks in advance!

lionick commented 5 years ago

Hi Giovanni, sorry for the late reply but I was out of office because of an injury. Yes xAPI statements are still sent only to the test instance.

Screenshot from 2019-05-02 09-18-57

I will need an account to https://lrs.up2university.eu in order to implement it. @michzimny can you create an account for me?

michzimny commented 5 years ago

@lionick, done. You should have just received an invitation by email.

lionick commented 5 years ago

Thanks! I implement xAPI statements to DSpace (repo.up2university.eu) so can send them to LRS(lrs.up2university.eu) and also add context.platform=DSpace information so you can distinguish DSpace statements. This is a custom implementation of xAPI statements so you will see that I use UUIDs instead of names or titles. This can be changed of course if there are any specific requirements.

gtoffoli commented 5 years ago

Good! Now I see a few statements from the DSpace platform on lrs.up2university.eu. They seem ok! However, as I noticed a while ago, I think that it would be much more useful to track the original user that performed the activity. Don't know if this requires the extension of the moodle-logstore_xapi plugin, so that it handles the events being fired, inside Moodle, by the SWORD plugin; and who could take care of that. Otherwise, you could analyze only patterns of use of DSpace itself, not the role that its use can play in a learning scenario; or, can you imagine how you could put in relation statements sent by Moodle with almost anonymous statements sent by DSpace? By the way, do you know any pilot/project/course where they plan to make a substantial use of DSpace? Thanks.