caliper / xapi webinar - apereo · 10/19/2016 · caliper event / xapi statement actor action...
TRANSCRIPT
Caliper / xAPIWebinar
Anthony [email protected] of Michigan
19 October 2016
Aaron E. [email protected]
DISC
value proposition
Why xAPI / Caliper?
innovation new service
insights
Participation
Outcome
CredentialsSocial
Assessment
Media
Annotation +
interoperabilitydata / semantic
promote
enable
feed
controlled vocabularies
Why xAPI / Caliper?
current initiatives
xAPI latest
1.0.3 specADL LRS testing requirements ADL vocabularyNew / updated profiles
ADL Companion spec(semantic practices)
beta conformance suite(imminent)
Hot off the wire, 18 Oct 2016
Unicon delivers:• Staff Dashboard • Alert & intervention
system (SSP) • Predictive analytics
model• Learning Analytics
Processor (LAP)
source: http://www.prweb.com/releases/2016/10/prweb13772136.htm
implements xAPI
UK JISC national learning analytics service
Caliper latest (1.1)
sensor updates
doc rewrites
cert suite upgrade
specimpl guideontology
Sensor
caliper-javacaliper-jscaliper-pythoncaliper-phpcaliper-rubycaliper-net
event model revisions
LTI integration
payload thinning
{ "sensor": "https://example.edu/sensor/001", "sendTime": "2015-09-15T11:05:01.000Z", "data": [ { "@context": "http://purl.imsglobal.org/ctx/caliper/v1/Context", "@type": "http://purl.imsglobal.org/caliper/v1/Event", "actor": { "@id": "https://example.edu/user/554433", "@type": "http://purl.imsglobal.org/caliper/v1/lis/Person" }, "action": "http://purl.imsglobal.org/vocab/caliper/v1/action#Viewed", "eventTime": "2015-09-15T10:15:00.000Z", "object": { "@id": "https://example.com/viewer/book/34843#epubcfi(/4/3)", "@type": "http://www.idpf.org/epub/vocab/structure/#volume" } } ] }
createddeletedupdatedremoved
markedAsReadmarkedAsUnreadpostedsubscribedunsubscribed
Discussion Forum Profile
Conversations
Caliper xAPI
https://www.imsglobal.org/initial-xapicaliper-comparison
Caliper / xAPI review meeting(Utah Valley University, Park City, UT, 15 Aug 2016)
profiles
So what’s a profile?
concepts
rules
relationships
area of concern
controlled vocabulary
xAPI CoPs, profiles, recipes
Communities of Practice• augmented reality• badges• Chinese language• CMI5• courses (SCORM)• e-books• healthcare education• simulations• social collaboration• videos• competencies & credentialing• instructor professional development
SCORM
CMI5IEEEADBook
Attendance Bookmarklet
Checklist
Assessment
Open Badges
JISC recipes
Video
Early Childhood Ed
Self-Regulated Learning
Medbiq Virtual Patient
Tags
Tin Can Prototypes
CL Social Media
Caliper profiles
Assessment Media
Reading
Basic
OutcomeAssignable
Forum Annotation
Session
current
Credentials Feedback
Simulation Social
ProblemSet
Survey
Authoring
QTI
. . .
Participation
EntityMgmt
Search
future?
Survey RatingBadge Location . . .Problem
new entities?
statements / events
Caliper event / xAPI statement
actor action object eventTime
optional
xAPI statement
Caliper event
actor verb object
id stored
Caliper sourcedId and xAPI id and stored property must be set by the LRS if not set by the event/statement emitter.
id
timestamp context result authority attachments
target generated referreredApp group membershipsession federatedSessionextensions
version
xAPI statement
xAPI statement: earning an Open Badge
Person
earned
OB
OBAssertion
OBimage/png
attachments
actor
object
verb
badgeclass
result(extensions)
Activity
context
OBrecipe
category(contextActivities)
source: http://specification.openbadges.org/xapi/
timestamp
stored(set by LRS)
OBclass
Caliper Event: basic
Person
started
VideoObject
datetime
eventTime
actor
object
action
statement
Caliper Event: annotating a document
Person
tagged
Document
TagAnnotation
time
Course
Reader
Membership
federatedsession
edApp
eventTime
group
actor
object
action
membership
learnerrole
generated
tags
ePub
session
extensions
API
xAPI
Statement
Agent
Activity
State
About
to an an LRS’ endpoint which always has these Resources
eventeventstatements
uses standard requests (HTTP GET, PUT, POST, DELETE)
agents
activities
state about
LearningRecord
Store
eventevent
Caliper Sensor
event
.send()
.describe()
eventevententity
reading annotation assignable + . . .session outcome
Caliper information model
.send(events)
.describe(entities)
.getStatistics()
event store
CPS calls API Key service using SSL wire encryption & standard LTI credentials; callcan be performed outsidedepicted sequence and the API key cached.
Caliper profile service (CPS)
Caliper/ LTI 1.x workflow
CPS responseapiKey, eventStore.url, expiryTime
launch request+ custom_caliper_profile_url, + custom_caliper_session_id
toolconsumer
CPS declared in Tool Consumer Profile
POST
GET
toolprovider
Sensor
sensor config
data stream secured using SSL wire encryption and tuple:apiKey (header), sensor_id &session_id
apiKey scoped to Caliper profile URL; CPS should specify an expiry in order to avoid repeated lookups of apiKey prior to expiration.
Caliper API key service
eventstore
GET
convergence?
Challenges
• Culture / Governance models
• IP and licensing
• Open vs gated development
• Data model / exchange format differences
Opportunities (now)
• establish verb / action equivalencies
• establish linkages between common profiles
• develop xAPI / Caliper data exchange mappings profile
final questions
finis(thanks)
extras(stuff for the director’s cut)
{
}
xAPI statement
"id": UUID,"actor": {<Agent> | <Group>}, "verb": {<Verb>}, "object": {<Activity> | <Agent> | <Statement>},
"stored": "ISO 8601 timestamp (set by LRS)“
"result": {<Result>},"context": {<Object>},"authority": {<Agent> | <Group>},"attachments": [ <Attachment>, <Attachment> . . . ],"timestamp": “ISO 8601 timestamp",
{
}
Caliper Event
caliper.json
{ "@context": {}}
"@context": “http://purl.imsglobal.org/ctx/caliper/v1/caliper.json","@type": "http://purl.imsglobal.org/caliper/v1/Event", "id": "local string identifier","actor": {<Agent>}, "action": "http://purl.imsglobal.org/vocab/caliper/v1/action#[Action]","object": {<Entity>},"eventTime": "ISO 8601 formatted dateTime w/ millisecond precision","target": {<Entity>},"generated": {<Entity>},"referrer": {<Entity>},"edApp": {<SoftwareApplication>},"group": {<Organization>},"membership": {<Membership>},"session": {<Session>},"federatedSession": {<LtiSession>},"extensions": {}
mapping ofterms
Caliper: custom event (hypothetical)
Person
set
Goal
PredictedScore
time
statement
edApp
eventTime
actor
object
generated
scale
action
assign
assign
targetreferreredAppgroupmembershipsessionfederatedSessionextensions
+ activitycontext {
Caliper Sensor reference implementations
Sensor API
caliper-javacaliper-jscaliper-pythoncaliper-phpcaliper-rubycaliper-net
Caliper/LTI: Blackboard / Kaltura POC
https://goo.gl/Wj9ci1Source:
Kaltura• instrument platform• implement Caliper Media Profile• extend spec with “still watching” event
(measure drop off rate)• emit event data to Blackboard-
specified endpoint.
Blackboard• instrument Learn platform• implement various Caliper profiles• provision LTI tool launch with context info
(user, course, content item) & endpoint security token
• design data visualization