The document discusses best practices for collecting and analyzing data using the xAPI (Experience API). It recommends thinking about what events and data to track, how to detect and record events, and how the collected data will be used and consumed. It provides examples of collecting data from videos, quizzes, and extensions. It also discusses sending queries to the LRS to retrieve and analyze xAPI data, focusing the queries on fields like agents, activities, verbs, and timestamps.
2. Measuring Learning
• What are the events you want to track?
• What data does each event make available?
• How do you detect each event?
• How will the event fire off the statement?
3. Collecting Video Data
• What do you want to know?
– Which parts of the video did the user play?
– Did the user play the whole thing?
– How many times did the user play the video?
• When will you send statement?
– Play/pause?
– Completion?
• What does it REALLY say about usage?
– Did the user WATCH the video?
– Did the user just PLAY the video?
4. Extensions!
• Add “custom” information to the
event/activity record
• Use a URI to define the key pair:
"result": {
"extensions":{
"http://example.com/xapi/period_start" : playFrom,
"http://example.com/xapi/period_end" : vid.currentTime
}
}
• You CANNOT query directly on extensions!
5. Collecting Quiz Data
• What do you want to know?
– What answers were chosen?
• What information will tell you this?
• How will you use that data later?
– Will the data you collect be enough to answer
your questions?
– Will it be in a format that is usable?
6. Sending an xAPI Query
• Queries let you get data from the LRS
• You need to know what you are looking
– What do you want to know?
– What data will tell you that?
• You need to know what data is available
– Which verbs are used?
– What are the Activity ids? (CASE MATTERS!)
• When building statements, keep your queries in mind!
7. Sending an xAPI Query
– Agent (not actor)
– Activity (not object)
– Verb
– Statement ID
– Since a given timestamp
– Before a given
timestamp
• You can DIRECTLY Query on the following:
var quizParams = ADL.XAPIWrapper.searchParams()
quizParams['verb'] = "http://adlnet.gov/expapi/verbs/answered";
quizParams['activity'] = "http://omnesLRS.com/xapi/quiz_tracker";
var ret = ADL.XAPIWrapper.getStatements(quizParams);
9. Smart Data!
• Think about the data you
will NEED
• Think about the data you
will USE
• Think about HOW you will
use that data
• Think about WHO will
consume that data
10. Summary
• Build your statements with your queries in
mind
– How will you use the data you are collecting?
– Who will use it?
– What story do you need the data to tell?
• When building statements, format your data
in a consumable format
11. Summary
• You can’t query on all parts of the statements:
– Agents
– Activities
– Verbs
– When the statement was sent
• Everything else, you need to crawl through
the statements to find what you want.