Skip to content

Latest commit

 

History

History
739 lines (574 loc) · 23.1 KB

statement_data_model.md

File metadata and controls

739 lines (574 loc) · 23.1 KB

Current Version: xAPI Video Profile v1.0

#2. xAPI Statement Data Model

##2.1 Statement ID

The LRP MUST assign a statement id property in UUID format (as defined in the xAPI specification) for all statements it issues.

##2.2 Actor

The Actor property must be defined as per the xAPI Specification.

When the video is launched in an LMS, Actor must be provided by the LMS.

##2.3 Verbs

The following xAPI verbs are defined in this specification.

LRP MUST use the below verbs that are indicated as mandatory in other sections of this specification.

###2.3.1 Initialized

VerbInitialized
IDhttp://adlnet.gov/expapi/verbs/initialized
DescriptionAn "Initialized" statement is used by the LRP to indicate that the video has been fully initialized or launched.
LRP ObligationsThe LRP MUST use "Initialized" in the first statement in the video session. The LRP MUST NOT issue multiple statements with "Initialized" for the same video session.
UsageAn "Initialized" statement is used by the LRP to indicate that the video has been fully initialized or launched.

###2.3.2 Played

VerbPlayed
IDhttps://w3id.org/xapi/video/verbs/played
DescriptionIndicates that the actor started experiencing the recorded media object.
LRP ObligationsThe LRP MUST use "Played" when the actor starts experiencing the media.
UsageUsed when the actor generally played a video or clicked the play button.

###2.3.3 Paused

VerbPaused
IDhttps://w3id.org/xapi/video/verbs/paused
DescriptionIndicates that the actor temporary or permanently stopped experiencing the recorded media object.
LRP ObligationsThe LRP MUST use "Paused" when the media is stopped. A paused statement MUST be sent before a terminated statement if not already sent.
UsageIndicates that the actor temporary or permanently stopped experiencing the recorded media object.

###2.3.4 Seeked

VerbSeeked
IDhttps://w3id.org/xapi/video/verbs/seeked
DescriptionIndicates the actor changed the progress towards a specific point.
LRP ObligationsThe LRP MUST use "Seeked" when the Actor moves the progress bar forward or backward to a specific time in video.
UsageUsed in combination with time-from and time-to extensions when the Actor moves the progress bar forward or backward to a specific time in the video.

###2.3.5 Interacted

VerbInteracted
IDhttp://adlnet.gov/expapi/verbs/interacted
DescriptionUsed to express that the actor interacted with the player (except play, pause, seek). e.g. mute, unmute, change resolution, change player size, etc.
LRP ObligationsOptional
UsageUsed to express that the actor interacted with the player (except play, pause, seek). e.g. mute, unmute, change resolution, change player size, etc.

###2.3.6 Completed

VerbCompleted
IDhttp://adlnet.gov/expapi/verbs/completed
DescriptionUsed to express that the actor completed a video by watching all parts of the video at least once.
LRP ObligationsThe LRP MUST use "Completed" when the Actor has completed a video by watching all parts of the video at least once.
The "completion" property of the result MUST be set to true for this statement.
The "duration" property of the result MUST be included in this statement and MUST represent total time spent during consuming the video under current registration. e.g. PT218S
UsageUsed to express that the actor completed a video by watching all parts of the video at least once. The progress and heatmap result extension can be used to calculate the duration and completion of video.

###2.3.7 Terminated

VerbTerminated
IDhttp://adlnet.gov/expapi/verbs/terminated
DescriptionUsed to express that the actor ended a video.
LRP ObligationsOptional.
  • The LRP MAY use "Terminated" when the Actor has terminated the video.
  • A "Paused" statement MUST be sent before "Terminated" statement if not already sent.
  • Any statements after this in the current video session MUST NOT be sent, and will be ignored if sent.
UsageUsed to express that the actor ended a video.

##2.4 Object

An Object with objectType "Activity" MUST be present, as specified in the xAPI Spec.

The Object represents the video or media being consumed by the Actor.

###2.4.1 Definition

Object definition MAY contain name, description and other details of the media, as per the xAPI Spec.

Object definition MUST be present and MUST contain activity "type" as: https://w3id.org/xapi/video/activity-type/video

##2.5 Result

Result is an optional property that represents a measured outcome related to the Statement in which it is included.

It may be present in a statement depending on the verb used.

###2.5.1 Score

A score is not required to be reported. If a score is reported, it must be as per the xAPI Spec.

###2.5.2 Completion

The "completion" property of the result MUST be set to true for the 'completed' statement.

Other Video Profile statements MUST NOT include the "completion" property.

###2.5.3 Duration

The "duration" property is an ISO 8601 formatted time value.

Duration MUST be included in "completed" statement and MUST represent total time spent consuming the video under current registration. e.g. PT218S

###2.5.4 Result Extensions

There are several additional results related values defined in Video Profile that can be added to the statement under result extensions.

###2.5.4.1 Time

Extensiontime
IDhttps://w3id.org/xapi/video/extensions/time
DescriptionUsed to express the time into the video.
LRP Obligations
  • The LRP MUST assign time value to statements with "played", "paused", "terminated", "interacted" and "completed" verbs.
  • Float Value with maximum 3 decimals.
UsageExample: "23.560" represents video position at 23 seconds and 560 milliseconds.

###2.5.4.2 Time From

Extensiontime-from
IDhttps://w3id.org/xapi/video/extensions/time-from
DescriptionUsed to identify the point in time the actor changed from in a media object during a seek operation.
LRP Obligations
  • The LRP MUST assign time-from value to statements with "seeked" verbs only.
  • Float Value with maximum 3 decimals.
UsageExample: "23.560" represents video position at 23 seconds and 560 milliseconds.

###2.5.4.3 Time To

Extensiontime-to
IDhttps://w3id.org/xapi/video/extensions/time-to
DescriptionUsed to identify the point in time the actor changed to in a media object during a seek operation.
LRP Obligations
  • The LRP MUST assign time-to value to statements with "seeked" verbs only.
  • Float Value with maximum 3 decimals.
UsageExample: "23.560" represents video position at 23 seconds and 560 milliseconds.

###2.5.4.4 Progress

Extensionprogress
IDhttps://w3id.org/xapi/video/extensions/progress
DescriptionUsed to expresses the percentage of media consumed by the actor.
LRP Obligations
  • The LRP MUST assign progress value to statements with "paused", "terminated" and "completed" verbs.
  • The LRP MAY assign progress value to other statements.
  • Float value between 0 and 1, with a maximum of 3 decimals.
UsageThe progress value includes all attempts made during the current registration. The heatmap extension can be used to calculate the progress.

###2.5.4.5 Played Segments

Extensionplayed-segments
IDhttps://w3id.org/xapi/video/extensions/played-segments
DescriptionPlayed segments data shows parts of the video the actor watched during current registration in chronological order.
LRP Obligations
  • The LRP MUST assign played-segments value to statements with "paused", "terminated" and "completed" verbs.
  • The LRP MAY assign played-segments value to other statements.
  • Value is a string. Each part of the video watched is separated with [,]. The 'Time From' and 'Time To' values are separated with [.].
  • The time values must match the values recorded as time, time-to and time-from in played, paused, seeked statements.
UsageThe played-segments value includes all attempts made during the current registration. It is used for computing the progress and completion. It can also be used to generate heat map of the users consumption of the video.
Example: 0.000[.]12.000[,]14.000[.]21.000[,]18.000[.]30.000

##2.6 Context

All Video Profile statements MUST contain a context that includes all objects/values as defined in this section.

###2.6.1 Registration

The value for the registration property used in the context object MAY be the value provided by the LMS via the launch URL. If registration is not provided via the launch mechanism, the LRP MAY set a fixed registration value.

The registration value is important because the "progress", the "played-segments" value and "completion" is based on aggregate of all attempts with same registration value attempted by the Actor for the specific media.

###2.6.2 Language

Code representing the language in which the experience being recorded in this Statement (mainly) occurred in, if applicable and known.

Language is used to provide the spoken language for the audio.

The value must be RFC 5646, e.g en, en-US, etc

###2.6.2 Context Extensions

####2.6.2.1 Session ID

Extensionsession-id
IDhttps://w3id.org/xapi/video/extensions/session-id
DescriptionUsed to tell which session the statement is part of. A session starts with the initiated statement and ends with terminated statement.
LRP Obligations
  • The LRP SHOULD assign a session id to all the statements sent during a session.
  • Value of session id MUST be the UUID statement id of the initiated statement, i.e. the initialized statement.
Usage

###2.6.2.2 CC/Subtitle Enabled

Extensioncc-subtitle-enabled
IDhttps://w3id.org/xapi/video/extensions/cc-subtitle-enabled
DescriptionUsed to expresses whether subtitle or closed captioning is enabled.
LRP Obligations
  • Value MUST be boolean i.e. true or false.
Usage

###2.6.2.3 CC/Subtitle Language

Extensioncc-subtitle-lang
IDhttps://w3id.org/xapi/video/extensions/cc-subtitle-lang
DescriptionUsed to express the language of subtitle or closed captioning.
LRP Obligations
  • Used only when cc-subtitle-enabled is true.
UsageThe lexical and value spaces of xsd:language are the set of language codes defined by RFC 5646. Examples: "en" for English or "en-US" for American English

###2.6.2.4 Frame Rate

Extensionframe-rate
IDhttps://w3id.org/xapi/video/extensions/frame-rate
DescriptionUsed to express the frame rate or frames per second of a video (or average rate of frames per second in the case of variable frame-rate).
LRP Obligations
UsageRepresented as a decimal, such as 29.970.

###2.6.2.5 Full Screen

Extensionfull-screen
IDhttps://w3id.org/xapi/video/extensions/full-screen
DescriptionUsed to expresses that the video is played in full screen mode.
LRP Obligations
  • Value MUST be boolean i.e. true or false.
Usage

###2.6.2.6 Quality

Extensionquality
IDhttps://w3id.org/xapi/video/extensions/quality
DescriptionUsed to express the video resolution or quality.
LRP Obligations
  • Value is a string. e.g. 360, 480, 720, 1080, 2160, sd, hd, 4k, 8k etc.
Usage

###2.6.2.7 Screen Size

Extensionscreen-size
IDhttps://w3id.org/xapi/video/extensions/screen-size
DescriptionUsed to express the device playback screen size or the maximum available screen size for Video playback.
LRP Obligations
  • Value MUST be in WxH format in pixels. e.g. 1080x960, 640x480, 800x600
Usage

###2.6.2.8 Video Playback Size

Extensionvideo-playback-size
IDhttps://w3id.org/xapi/video/extensions/video-playback-size
DescriptionUsed to identify the size in Width x Height of the video as viewed by the user.
LRP Obligations
  • Value MUST be in WxH format in pixels. e.g. 1080x960, 640x480, 800x600
Usage

###2.6.2.9 Speed

Extensionspeed
IDhttps://w3id.org/xapi/video/extensions/speed
DescriptionUsed to express the play-back speed.
LRP Obligations
  • Value MUST be represented with decimal or integer values along with an 'x' meaning multiplying factor to the normal speed. e.g. -2x, -1x, -0.5x, 0.5x, 1x, 2x.
Usage
  • Negative value means rewind. e.g. -1x, -2x
  • Positive value with value greater than 1x means fast forward. e.g. 1.5x, 2x, 4x
  • Positive value with value less than 1x means slow motion play back. e.g. 0.5x, 0.25x, 0.125x

###2.6.2.10 Track

Extensiontrack
IDhttps://w3id.org/xapi/video/extensions/track
DescriptionUsed to identify the name of the audio track in a media object.
LRP Obligations
  • Value MUST be a string.
Usage

###2.6.2.11 User Agent

Extensionuser-agent
IDhttps://w3id.org/xapi/video/extensions/user-agent
DescriptionUsed to identify the User Agent string of the browser, if the video is launched in browser.
LRP Obligations
  • Value MUST be a string.
Usage

###2.6.2.12 Volume

Extensionvolume
IDhttps://w3id.org/xapi/video/extensions/volume
DescriptionUsed to identify the loudness of sound specified for a media object.
LRP Obligations
  • Value MUST be a float value between 0 and 1.
UsageMinimum 0 = Mute. Maximum 1 = 100% Volume

###2.6.2.13 Length

Extensionlength
IDhttps://w3id.org/xapi/video/extensions/length
DescriptionThe actual length of the media in seconds.
LRP Obligations
  • Value MUST be a float value with maximum 3 decimals.
  • It MUST be included in Video Profile statements with these verbs: initialized, completed, terminated and paused.
Usage

###2.6.2.14 Completion Threshold

Extensioncompletion-threshold
IDhttps://w3id.org/xapi/video/extensions/completion-threshold
DescriptionCompletion Threshold specifies the percentage of media that should be consumed to trigger a completion.
LRP Obligations
  • Value MUST be between 0 and 1.
  • Value MUST be a float value with maximum 3 decimals.
  • If Completion Threshold is not included, it is assumed to be 1, i.e. 100%.
  • If Completion Threshold is not 1, it MUST be included in Video Profile statements with these verbs: initialized, completed, terminated and paused.
Usage

###2.6.2 Context Activities

####2.6.2.1 Category

IDhttps://w3id.org/xapi/video
DescriptionxAPI Video Profile statement
LRP ObligationsMust.
UsageIdentifies a statement as conforming to the xAPI Video Profile

###2.7 Summary of Extensions Usage

VerbsRequiredOptional
Initialized Context Extensions
  • Length
  • Completion Threshold (if value < 1)
Context Extensions
  • Session ID
  • CC/Subtitle Enabled
  • CC/Subtitle Language
  • Frame Rate
  • Full Screen
  • Quality
  • Screen Size
  • Video Playback Size
  • Speed
  • Track
  • User Agent
  • Volume
  • Completion Threshold (if value = 1)
Played

Result Extensions

  • Time

Context Extensions

  • Session ID

Paused Context Extensions
  • Length
  • Completion Threshold (if value < 1)

Result Extensions
  • Time
  • Progress
  • Played Segments
Context Extensions
  • Session ID
  • Completion Threshold (if value = 1)

Seeked

Result Extensions

  • Time From
  • Time To
Context Extensions
  • Length
  • Session ID

Result Extensions

  • Progress
  • Played Segments
Interacted

Context Extensions

  • Context Extensions for which the value has changed during interaction MUST be included

Result Extensions
  • Time
Context Extensions
  • Session ID
  • CC/Subtitle Enabled
  • CC/Subtitle Language
  • Frame Rate
  • Full Screen
  • Quality
  • Video Playback Size
  • Speed
  • Track
  • Volume
Completed Context Extensions
  • Length
  • Completion Threshold (if value < 1)

Result Extensions

  • Time
  • Progress
  • Played Segments
Others
  • result.completion = true
  • result.duration = (total time spent consuming the video under current registration)
Context Extensions
  • Session ID
  • Completion Threshold (if value = 1)

Terminated Context Extensions
  • Length
  • Completion Threshold (if value < 1)

Result Extensions

  • Time
  • Progress
  • Played Segments
Context Extensions
  • Session ID
  • Completion Threshold (if value = 1)

*Session ID is optional. However, it SHOULD be added in all statements, unless there is a reason not to.