Giter Site home page Giter Site logo

xapi-scorm-profile's Introduction

Experience API SCORM Profile

The Experience API SCORM Profile is a companion document to the Experience API Specification. Its goal is to provide guidance to those in the SCORM community looking for a way to leverage the Experience API. This profile offers guidelines for representing SCORM data and events as Experience API Statements. Use of this profile will provide consistency in reporting and retrieving data traditionally stored in an LMS, and allow for the development of interoperable tools outside of the typical LMS environment.

An accessible, printer-ready and reader-friendly version of this document is also available as a gitbook here: https://adl.gitbooks.io/scorm-profile-xapi/content/

Project Structure

xapi-scorm-profile.md
The xAPI SCORM Profile. It is in markdown format and can be viewed here.

vocabulary
Contains the current RDF version of the xAPI SCORM Profile vocabulary. You can learn more about ADL's vocabulary effort by reading the document or viewing the project here.

document-schemas
JSON Schema files of the xAPI document objects defined in the SCORM Profile. See the SCORM xAPI Data Objects section for format details.

xAPI SCORM Profile Site

Find additonal information and developer resources on our xAPI SCORM Profile Site.

License

Copyright ©2016 Advanced Distributed Learning

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

xapi-scorm-profile's People

Contributors

cr8onski avatar creighton avatar jhaag75 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

xapi-scorm-profile's Issues

Store SCO attempts in Activity Profile

To make it easier to figure out the number of attempts on an Activity and to remove semantic meaning from the URI, update the Activity State attempts property with a new attempt IRI.

ex.
New Attempt

  • generate new attempt IRI (possibly like how it's already described in this doc)
  • get the Activity State for this Activity
  • add the new attempt IRI to the end of the 'attempts' array property in the profile
  • save the profile to the LRS
  • add the new attempt IRI to the context activities grouping array for all statements in this attempt

Add overall version to this profile

With the release of DoDI 1322.26 and associated fungible references/sample contracting language - it may become important to reference a specific version of this profile documentation

Verb for objectives

https://github.com/adlnet/xAPI-SCORM-Profile/blob/master/xapi-scorm-profile.md#objectives

I don't think tracking objectives is so common, so there's less of a well worn path here and there's certainly merit to using http://adlnet.gov/expapi/verbs/passed as described in this document.

Watershed LRS (http://site.watershedlrs.com/) uses http://adlnet.gov/expapi/verbs/completed and this is the only ADL verb to actually mention objectives in its description. For this reason, completed is my preference.

easygenerator authoring tool (https://www.easygenerator.com/) uses http://adlnet.gov/expapi/verbs/mastered which also seems to a a reasonable choice, though perhaps that should be reserved more for competencies than learning objectives.

No attempt time

We have session duration covered (cmi.session_time) but not attempt time (cmi.total_time).

Attempt time should be passed as part of the result in the passed/failed/completed statement.

Use of result

I'd like to see more use of result in the various events, for example in the passed/failed statement.

On completion, what scenario might the AP want to set completion by result only and not verb? The example given is a statement with the verb passed, but the paragraph above explains that if the course is passed, then it's assumed to be completed anyway.

I'd like to see the result completion and success properties used to reinforce the meaning of the verb for the sake of reporting tools that don't explicitly recognize this profile. This has generally been the approach of people doing SCORM-ish stuff to date. See for example http://tincanapi.com/scorm-to-tin-can-api-cookbook/

host profiles activity definition

Need to host the scorm profile activity definition on adlnet so we don't have to include it in every statement

{
    "objectType": "Activity",
    "id": "http://adlnet.gov/xapi/profile/scorm",
    "definition": {
        "name": {
            "en-US": "xAPI SCORM Profile"
        },
        "description": {
            "en-US": "The activity representing the xAPI SCORM Profile."
        },
        "type": "http://adlnet.gov/expapi/activities/profile"
    }
}

Parent context activities

When considering a legacy SCORM course that has several nested levels of SCOs.
Ex.
Course ABC

  • Introduction
  • Lesson 1
    • Module 1
    • Module 2
      • Chapter 1
      • Chapter 2
      • Chapter 3
    • Module 3
  • Lesson 2
  • Lesson 3
    • Quiz
  • Summary

What should Chapter 2's (under Lesson 1 module 2) parent context activity be? Course ABC? Module 2? Or multiple Module 2, Lesson 1 AND Course ABC

cmi interactions

Best practice is to host the definition at the IRI.

In order to send the interaction type in the activity definition, you need to include blank arrays for items like "choices" if you don't want to send them with the statement.

Provide guidance on the best practice and how that affects what you must do in the statements.

update objectives

Objectives needs a unique verb to distinguish it from other SCORM profile statements.

  • need better instructions for using objectives
  • need better examples
  • update verb and extension in adl SCORM profile vocabulary
  • update schema
  • walk through to review

responded 'same as' answered

It's been pointed out that authoring tools often use 'answered' instead of 'responded'. Can we align these verbs within this spec?

Allow 'passed' and 'failed' to include score

https://github.com/adlnet/xAPI-SCORM-Profile/blob/master/xapi-scorm-profile.md#set-a-score-for-the-course

Common practice is to include a score with the completed, passed and/or failed statement rather than issuing a separate 'scored' statement. I had assumed that the scored statement was envisaged to be used in situations when a score needed to be communicated without implying anything else.

I'd like to see it explicitly stated that score can be passed with completed, passed and failed and that scored is optional.

Clarity on suspend and resume in temporal model

I believe the intent is as follows, but the fine details are not in the spec. Add to temporal model section.

new attempt started with normal exit
initialized -> optionally do other stuff -> terminated

resume previous attempt with normal exit
resumed -> optionally do other stuff -> terminated

new attempt started but suspend on exit
initialized -> optionally do other stuff -> suspended

resume previous attempt and suspend on exit
resumed -> optionally do other stuff -> suspended.

For clarity, note that the last case, "resume previous attempt and suspend on exit" is NOT as follows:
resumed -> initialized -> optionally do other stuff -> suspended -> terminated

In other words, either use init or resume on start... and suspend or terminate on finish

Add context activity (parent) for interactions

in order to know that several interactions are in the same activity, add a context activity to identify the parent activity (which may differ from the course)

parents should be ordered so that last parent context activity is the activity that contains the interactions.

Use 'answered' verb for interactions

When converting SCORM to Tin Can, SCORM cloud uses the verb http://adlnet.gov/expapi/verbs/answered for interactions, rather than passed/failed as indicated in this document. The result success property indicates whether or not the interaction was successfully answered.

This approach has a lot of adoption as it's what recommended here: http://tincanapi.com/scorm-to-tin-can-api-cookbook/ and here: http://www.tincanapi.co.uk/pages/SCORM_to_Tin_Can_API.html#Part_3_-_Summary_of_When_to_Send_Tin_Can_API_Statements both of which have been around and followed for a while.

Scored requires context

https://github.com/adlnet/xAPI-SCORM-Profile/blob/master/xapi-scorm-profile.md#set-a-score-for-the-course

According to the verb description (http://adlnet.gov/expapi/verbs/scored/), use of the scored verb requires something in the context to explain the allowed values, but the example in the appendix does not have that info in the context.

I'm not sure what's envisaged here and I'm not aware of anybody using the 'scored' verb in practice.

Perhaps @andyjohnson or @nhruska can shed some light on this verb description?

Comment on 'only use ADL verbs'

For consistency and interoperability, those implementing this profile shall use the verbs maintained by ADL at http://adlnet.gov/expapi/verbs/, and use the definition and usage on the ADL Verb pages as guidance.

I agree that using a fixed set of verbs for the profile is sensible. My concern is that ADL might want to extend the list of verbs maintained to include other profiles. I therefore prefer the approach of listing the verbs relating to this profile in full, which has actually been done in the table below.

How to detect if a scorm package already support xAPI

I'm trying to play some scorm package in my site and record user progress. I've found some scorm packages which can send tincan statement if played in a proper mode. But my problem is I don't know which package has this ability. Is some field in manifest provide this type of information?
I'm new to this subject, sorry if this is a dumb question.

ADLnet paths result in 404 error

Hi,
I'm just looking at implementing various parts of the SCORM to xAPI process. Unfortunately when I set up learning locker and the wrappers that reference this I get 404 errors for any IRI referencing the following path (or subpaths):
http://adlnet.gov/xapi/profile
http://adlnet.gov/xapi/profile/scorm/activity-state
etc...

I can see that in April things were fine (I've found a cached page on google) but it is currently broken. Has this changed and does the document need to be updated?

Cheers
Simon

No activity types

None of the example statements have activity types. I think they'd benefit from activity types.

Setting a activity to incomplete

SCORM 2004 4th Ed has implied behavior when a SCO terminates without setting any data model elements (it is completed and passed). Marking an activity explicitly as incomplete is needed. Need the ability to leave an activity with an incomplete status.

Result with completion=false could be used. With initialize? completed? terminated? verbs...

Should launch be in scope?

My personal view is that it'd be better to have launch as a separate document as the launch mechanism could be adopted separately from the SCORM profile.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.