Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sample xAPI Mapping #17

Draft
wants to merge 18 commits into
base: main
Choose a base branch
from
Draft

Sample xAPI Mapping #17

wants to merge 18 commits into from

Conversation

e0d
Copy link

@e0d e0d commented Jun 2, 2022

Opening this to facilitate a conversation about xAPI mapping of the problem_check event.

Copy link

@quitterie-lcs quitterie-lcs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @e0d for your proposal!
I have a few remarks of proposal for discussion about your mapping proposal

},
"_comment1": "The choicehint content feels most natural here in the activity definition rather than the response. It is packed into the user response in the current event format.",
"extensions": {
"https://openedx.org/xapi/choicehint": "<choicehint selected=\"true\">You are correct that an apple is a fruit because it is the fertilized ovary that comes from an apple tree and contains seeds.</choicehint>\n <choicehint selected=\"false\">Remember that an apple is also a fruit.</choicehint>\n"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that it is not a result information. Have you checked that no extensions already exists for this ?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did not see an extensions that seemed appropriate. I wonder if this data is just too unnatural to include in an xAPI statement.

@ormsbee do you have any specific recollection as to why this data was included in native Open edX events?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't have a recollection of it, but my guess would be because it matters for later analysis whether a student got the problem without hints, whether the hints helped them to get the correct answer, and which hint did so.

"https://openedx.org/context/accept_language": "en;q=1.0, en;q=0.8",
"https://openedx.org/context/event_source": "server",
"https://openedx.org/context/asides": {},
"https://openedx.org/context/course_id": "course-v1:edX+DemoX+Demo_Course",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A best practice on xAPI is to use a parent in the contextActivities to describe from where the event was generated. Here this information is partially already contained in the parent. Some precision there is necessary. The use of extensions should be as minimal as possible

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suppose we must decide what is the appropriate parent for a specific question. Is it the course, sub-section, "assessment," something else?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ormsbee I'd love your thoughts on this. I'd also like to consider how this might change as ALUs are developed.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it has to be the assessment/sequence/subsection the problem is contained in. Per the spec:

For example: a Statement about a quiz question would have the quiz as its parent Activity.

In a more ALU-centric world, I think this still works–problems will almost always be invoked as part of some larger thing.

},
"_comment1": "",
"extensions": {
"https://openedx.org/xapi/activity/attempts": 1,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The attempt-id extension seems appropriate for identifying a specific attempt. This field in the tracking logs represents the count of attempts that a user has made.

https://edx.readthedocs.io/projects/devdata/en/stable/internal_data_formats/tracking_logs.html#common-fields

"https://openedx.org/context/asides": {},
"https://openedx.org/context/course_id": "course-v1:edX+DemoX+Demo_Course",
"https://openedx.org/context/path": "/courses/course-v1:edX+DemoX+Demo_Course/xblock/block-v1:edX+DemoX+Demo_Course+type@problem+block@29c5cbd840324d94be8ba51db1864277/handler/xmodule_handler/problem_check",
"https://openedx.org/context/org_id": "Open edx",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you suggesting using school or school-center instead of org? The extensions seems a bit of a hodge-podge at times. I'm not sure who AcrossX are and am not sure if there's a special meaning in the navy for "school-center."

I agree that we should use existing extensions where possible.

"cookies-enabled": true
},
"http://id.tincanapi.com/extension/ip-address": "10.0.0.1",
"https://openedx.org/context/referrer": "https://openedx.org/courses/course-v1:edX+DemoX+Demo_Course/courseware/d8a6192ade314473a78242dfeedfbf5b/330cf4d0c87b4bddbbd2eb4a466ff9f4/1?activate_block_id=block-v1%3AedX%2BDemoX%2BDemo_Course%2Btype%40vertical%2Bblock%40541e3597470c4c0d8ab11f6ac443fd5d",

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"description": {
"en-US": "A diagnostic assessment related to fruit literacy."
},
"type": "http://adlnet.gov/expapi/activities/assessment"
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would say that CMI Interaction is more appropriate as it is a more general interaction concept that is, in this situation, applied to an assessment

"object": {
"objectType": "Activity",
"_comment": "This URL is a placeholder utilizing the 'usage_key'. Should be instance specific, but perhaps transferable across domains?",
"id": "https://openedx.org/block-v1:edX+DemoX+Demo_Course+type@problem+block@29c5cbd840324d94be8ba51db1864277",
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we're using a URL here, it might be useful to prefix /xblock/ to the path. That has the advantage of namespacing, as well as mapping to a real URL that renders the XBlock in question, e.g. https://demo.openedx.overhang.io/xblock/block-v1:edX+DemoX+Demo_Course+type@problem+block@303034da25524878a2e66fb57c91cf85

Screen Shot 2022-06-14 at 5 36 17 PM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants