Permalink
1655 lines (1381 sloc) 95.5 KB

xAPI 向け cmi5 仕様プロファイル


目次

改版履歴

貢献者

使用許諾契約書


改版履歴

cmi5 仕様のバージョンは以下のように管理される:

  • メジャーバージョン – Stone(Sandstone、Quartz など) – 機能性の大きな変更
  • マイナーバージョン – 版(第 1 版、第 2 版など) – 機能性の小さな変更。
  • 訂正 – 機能性に影響しない軽微な修正はバージョン付けされない。(特定の改版履歴については GitHub リポジトリを参照)

本仕様書のバージョンは以下のとおり:

Quartz - 第 1 版(2016 年 6 月 1 日)

Sandstone - 第 1 版(2015 年 5 月 15 日)

  • 開発者リリース

GitHub でワーキングドラフトを Markdown に変換(2013 年 2 月 20 日):

  • 既存のワーキングドラフトを Microsoft Word から Markdown 形式に変換した。2012 年以前の作業はすべて破棄された。

貢献者

名前: 組織:
Ed Cohen AICC Infrastructure Subcommittee Chair
Aaron Silvers ADL
Jonathan Poltrack ADL
Andy Johnson ADL
Tom Creighton ADL
Nik Hruska ADL
Avron Barr The LETSI Foundation
Mike Rustici Rustici Software
Ben Clark Rustici Software
Megan Bowe Rustici Software
Andrew Downes Rustici Software
Brian J. Miller Rustici Software
Jacques Talvard Airbus
Bill McDonald Boeing
Ray Lowery Pratt & Whitney
Dennis Hall Learning Templates
John Kleeman Questionmark
Kris Rockwell Hybrid Learning Systems
Paul Roberts Questionmark
Christopher Reynolds Pelesys
Mingrui Zheng Pelesys
Chris Sawwa Meridian Knowledge Systems
Michael Roberts VTraining Room
Thomas Person (元 Adobe)
Art Werkenthin RISC,Inc
Severin Neumann die eLearning AG
Chris Amyot ICOM Productions, Inc.
David Pesce Exputo Inc.
Henry Ryng inXsol
Chris Handorf Pearson
Jamie Burns Virtual College
Pankaj Agrawal Next Software Solutions

1.0 概要

本仕様書では、学習管理システム(LMS)と Assignable Unit(AU)間の、相互運用可能なランタイム通信について説明する。

1.1 適用範囲

本仕様書の適用範囲は以下に制限される:

  • LMS による AU の起動。
  • LMS および AU によって使用される起動およびランタイム環境。
  • LMS および AU 間のランタイム通信データおよびデータ転送。
  • AU によって使用されるランタイムデータに関連する LMS コース定義。
  • LMS コース構造のインポート/エクスポート
  • LMSのレポート処理の必要条件。

本仕様書では、上記の適用範囲内で xAPI 仕様の使用方法を参照する。

xAPI 仕様のその他の使用はこの適用範囲に含まれない。

以上で明示的に定義されていないアクティビティの使用は、本仕様書の適用範囲に含まれない。

2.0 参考文献

本仕様書を適用するうえで欠くことのできない参考文献を以下に示す。

3.0 定義

本仕様書の目的のために、以下の用語および定義を適用する:

  • 管理者: LMS および関連システムを管理する管理ユーザ。このユーザは学習者の登録、コース構造定義、レポート管理などのタスクを実行する。

  • Assignable Unit (AU): LMS から起動される学習コンテンツの提示単位。AU はトラッキングおよび管理の対象の単位である。AU は学習者についてのデータを収集し、LMS に送信する。

  • コース: 学習コンテンツの Assignable Unit の集まりを論理的にグループ化したもの。コースは通常、LMS の内部データ構造である。コースは多くの場合、学習者に割り当てられ、LMS によってトラッキングされる。

  • コース構造: Assignable Unit および起動パラメータのリスト。暗黙的に位置された連続性を持ち、コースを表す。

  • Experience API(xAPI): 学習コンテンツ(AU)が Learning Record Store(LRS)との間でデータを送受信するためのランタイムデータ通信仕様。この文書によって参照される xAPI 仕様は、データ転送およびデータモデルを定義するために使用される。

  • Internationalized Resource Identifier(IRI): RFC 3987 に準拠した一意識別子。IRI は IRL であってもよい。IRL は、IRL の作成者によって管理されるドメインの内部で定義されることがのぞましい(SHOULD)。本仕様書における IRI は完全修飾でなければならず(MUST)、IRI 参照であってはならない点に注意。

  • Internationalized Resource Locator(IRL): xAPI 仕様では、(IRI から URI へのルールに従って)URI に変換したときに URL になる IRI を IRL と定めている。

  • 学習者: 学習コンテンツ(AU)を閲覧/使用するエンドユーザ。

  • 学習管理システム(LMS): 学習者の登録、学習プレゼンテーションの起動、学習者の成果の分析とレポート、学習者の進捗のトラッキングといった機能を含むコンピュータシステム。cmi5 仕様では LMS による起動、レポート、トラッキングの各役割に焦点を当てている。LMS はその実装の一部として LRS を備えなければならない(MUST)。LMS は LRS と統合されなければならない(MUST)。この文書ではこれ以降、LMS と LRS の統合体をもって「LMS」と呼称する。

  • Learning Record Store(LRS): xAPI 仕様での定義どおり。

3.1 略語と頭字語


ADL: Advanced Distributed Learning
AICC: Aviation Industry Computer-Based Training Committee
API: Application Programming Interface
CMI: Computer Managed Instruction
JSON: JavaScript Object Notation
IRI: Internationalized Resource Identifier
IRL: Internationalized Resource Locator
LMS: Learning Management System
LRS: Learning Record Store
PII: Personally Identifiable Information
URI: Uniform Resource Identifier
URL: Uniform Resource Locator
URN: Uniform Resource Name
xAPI: Experience API
XML: Extensible Markup Language
XSD: XML Schema Definition

4.0 適合性

この章では、本仕様書への適合性について定義する。

本仕様書において:

  • 「なければならない(MUST)」は、実装の必要条件として解釈される。
  • 「てはならない(MUST NOT)」は、禁止として解釈される。
  • 「することがのぞましい(SHOULD)」は、実装にあたっての推奨事項として解釈される。
  • 「することはのぞましくない(SHOULD NOT)」は、「することがのぞましい(SHOULD)」の逆と解釈される。
  • 「してもよい(MAY)」は、仕様の制限内で許容される一連の行為として解釈される。
  • 「必要はない(NEED NOT)」は、必須ではない一連の行為として解釈される。

本仕様書の適用範囲外で xAPI 仕様を使用することは、本仕様書への適合性に影響しない。

4.1 Assignable Unit(AU)

7 章「AU の必要条件」を参照。Assignable Unit は、xAPI 仕様で定められたすべての必要条件に適合しなければならない(MUST)(「参考文献」を参照)。

4.2 学習管理システム(LMS)

6 章「LMS の必要条件」を参照。LMS は、xAPI 仕様で定められた LRS の必要条件すべてに適合しなければならない(MUST)(「参考文献」を参照)。

LMS には、複数のセッションにまたがる別のユーザーに関するすべてのリソースデータ(ステートメント API やアタッチメントと拡張他)を取得できるアカウントを備えなければならない(MUST)。

4.3 任意の JSON 値

JSON プロパティが「オプション」と示されている場合、説明されている JSON 構造からそのようなプロパティを省略してもよい(MAY)。null でない値を持つすべての JSON プロパティは LRS に記録されなければならない(MUST)。

4.4 コース

コースには、13 章および 14 章で列挙しているすべての必要条件に適合したコース構造データがバンドルされなければならない(MUST)。

コース構造データは、本仕様書で説明している一切の特徴や機能(オプションまたは必須)を、適合しない方法で実装してはならない(MUST NOT)。

5.0 概念モデル: 参考情報

cmi5 モデルの概要:

  • LMS は、1 つ以上の AU を含むコース構造をインポートする。
  • LMS 管理ユーザはコースを学習者に割り当てる。
  • 学習者は LMS または関連システムでの認証を行う。
  • 学習者は LMS または関連付けられた起動システムから、インターフェイスを使用して AU を起動する。
  • LMS は起動データを、LMSに統合された LRS に書き込む。
  • AU は、起動パラメータと以前の状態情報を要求するメッセージを LMS に送信する。
  • 学習者は AU のコンテンツを参照し、学習を行う。この間、AU は LMS からデータを要求したり、LMS にデータを格納してもよい(MAY)。
  • 学習者は AU を終了する。
  • AU は最終的なトラッキングデータを LMS に伝達し、"terminate" ステートメントを発行する。
  • 管理ユーザは、AU によって個々の学習者に対して記録されたトラッキングデータのレポートを作成および確認する。

Assignable Unit の責務:

  • 起動環境からのパラメータを解析し、LMS を特定し、LMS との通信を開始する。
  • 「クライアント」として動作し、定義済みのデータ転送方式と、本仕様書で規定する関連コマンドを使用してメッセージを送受信する。
  • 本仕様書で定義するデータ型と語彙に従ってすべてのデータを整形する。
  • AU の実行を終了する前に "terminate" ステートメントを送信する。

LMS の責務:

  • コース構造を作成し、保持する。
  • 「サーバ」として動作し、定義済みのトランスポートメカニズムと、本仕様書で規定する関連コマンドを使用してメッセージを受信し、応答する。
  • 本仕様書で定義するデータ型と語彙に従ってすべてのデータを整形する。
  • 定義済みの環境内で、コースに含まれている指定された AU を起動する。

6.0 LMS の必要条件

本仕様書に適合するための LMS の必要条件は以下のとおり:

  • xAPI 仕様の定義に従い LRS を実装する。
  • 10 章の定義に従い、AU のステートを初期化するための、追加の「ステート API」必要条件を実装する。
  • 8.0 節「コンテンツ起動メカニズム」の定義に従い、ランタイム起動インターフェイスを実装する。
  • 9 章の定義に従い、追加の xAPI「ステートメント API」必要条件を実装する。
  • 11 章の定義に従い、追加の xAPI「エージェントプロファイル API」必要条件を実装する。
  • 6.1 節の定義に従い、コース構造を実装する。

6.1 コース構造

  • LMS はコース構造を作成、編集、および保守するための手段を実装することがのぞましい(SHOULD)。
  • LMS は、13 章および 14 章で定義するコース構造のインポートを実装しなければならない(MUST)。
  • LMS は、13 章および 14 章で定義するコースデータ構造のエクスポートを実装することがのぞましい(SHOULD)。
  • LMS は、コース構造を内部的に作成および編集するためのユーザインターフェイスを LMS 管理ユーザに提供することがのぞましい(SHOULD)。
  • LMS は、1000 を超える AU を含むコース構造をサポートしなければならない(MUST)。
  • LMS は、13.2 節で定義する XSD スキーマに準拠したコース構造をサポートしなければならない(MUST)。

6.2 LMS ステート API の必要条件

LMS は 10 章での定義どおり、ステート API の必要条件を実装しなければならない(MUST)。

6.3 LMS ステートメント API の必要条件

LMS は、AU による無効化ステートメントの発行を許可するパーミッション/資格情報を提供してはならない(MUST NOT)。

LMS は、9 章で定義する「ステートメント API」の必要条件と相容れないステートメントを拒否することがのぞましい(SHOULD)。

LMS は「拒否はされないが、9 章で定義されるステートメント API の必要条件を満たさないステートメント」を無効化しなければならない(MUST)。

7.0 AU の必要条件

本仕様書に適合するための AU の必要条件は以下のとおり:

  • 8 章「コンテンツ起動メカニズム」の定義どおり、ランタイム起動インターフェイスを実装する。
  • xAPI 仕様での定義どおり、ランタイム通信を実装する。
  • 10 章での定義どおり、本仕様書のステート API の必要条件を実装する。
  • 11 章での定義どおり、本仕様書のプロファイル API の必要条件を実装する。
  • 以下の各節での定義どおり、ステートメント API の必要条件を実装する。

7.1 AU ステートメント API の必要条件

7.1.1 最初のステートメント API 呼び出し

AU は、9.3.2 項で説明するように、起動、初期化され、学習者との対話準備ができてから、Initialized を使用したステートメントを LRS に発行しなければならない(MUST)。

7.1.2 最後のステートメント呼び出し

AU は、セッションにおける最後のステートメントとして、9.3.8 項で説明するように Terminated ステートメントを LRS に発行しなければならない(MUST)。

(たとえば、ユーザの行為またはその他何らかの手段により)セッションが終了すると AU が判断した時点で、AU は Terminated ステートメントを発行することがのぞましい(SHOULD)。

セッションが終了を迎えると AU が判断してもよい状況には、以下のようなものがある:

  • ブラウザウィンドウまたはアプリケーションのクローズイベントを監視する
  • AU で定義された、AU セッションを終了するためのユーザ行為
  • ユーザの無操作によるタイムアウトなど、AU で定義されたその他のイベント

7.1.3 ステートメントのタイプ

AU セッションで発行されるステートメントは、以下のカテゴリに分類される:

  • 「cmi5 定義」 - cmi5 で定義された Verb、9.6.2.1 項で定義するカテゴリ ID、および文脈テンプレートを使用するステートメント。
  • 「cmi5 許容」 - 任意の Verb と cmi5 文脈テンプレートを使用する(が、9.6.2.1 項で定義する cmi5 カテゴリ ID は含まない)ステートメント。
  • 「cmi5 非許容」 - cmi5 仕様に適合しないすべてのステートメント。

「cmi5 許容」ステートメントを AU が発行する場合、"Initialized" を用いた cmi5 ステートメントと "Terminated" を用いた cmi5 ステートメントの間に発行しなければならない(MUST)。cmi5 で定義されたセッションの管理および完了ルールにおいて、「cmi5 許容」ステートメントは考慮されない。{"cmi5 allowed" statements are not considered in cmi5 defined session management and completion rules.}

8.0 コンテンツ起動メカニズム

8.1 起動方法

AU は LMS によって、コース構造の launchMethod(13.1.4 項「AU メタデータ、URL」)に応じた下記いずれかの方法を用いて起動されなければならない(MUST):

launchMethod が "OwnWindow" のとき、LMS は以下のいずれかを使用しなければならない(MUST):

  • AU 用の新しいブラウザウィンドウを開く。
  • 既存のブラウザウィンドウを AU にリダイレクトする。

launchMethod が "AnyWindow" のとき、LMS は AU のウィンドウコンテキストを選択することができる。すべてのブラウザウィンドウオプション(フレームセット、新しいウィンドウ、ブラウザリダイレクト、その他)が許容される。

どちらの場合でも、AU は、この章に規定された起動パラメータのクエリ文字列を持つ URL と共に LMS によって起動されなければならない(MUST)。起動パラメータは、AU を起動する URL に追加された、クエリ文字列内の名前/値ペアでなければならない(MUST)。

他の目的のためのクエリ文字列が AU の URL に必要な場合、以下で定義する名前付きパラメータと名前が競合してはならない(MUST NOT)。

名前/値ペアの順序に意味はない。AU は順序によらずペアを処理できなければならない(MUST)。

名前に関連付けられた各値は URL エンコードされなければならない(MUST)。

起動 URL の形式は次のとおり:

<URL to AU>
?endpoint=<URL to LMS Listener>
&fetch=<Fetch URL for the Authorization Token>
&actor=<Actor>
&registration=<Registration ID>
&activityId=<AU activity ID>

例:

http://www.example.com/LA1/Start.html
?endpoint=http://lrs.example.com/lrslistener/
&fetch=http://lms.example.com/tokenGen.htm?k=2390289x0
&actor={"objectType": "Agent","account": 
{"homePage": "http://www.example.com","name": "1625378"}
&registration=760e3480-ba55-4991-94b0-01820dbd23a2
&activityId=http://www.example.com/LA1/001/intro

(読みやすさのために、上記の例は URL エンコードされていない。)

URL 起動パラメータの値について以下で説明する:

endpoint
説明:xAPI 要求の送信先である LMS リスナのロケーションの URL。
LMS での使用法:LMS は endpoint をクエリ文字列に含めなければならない(MUST)。
AU での使用法:AU は endpoint 値をクエリ文字列から取得しなければならない(MUST)。AU は endpoint 値を xAPI 要求のベースエンドポイントとして使用しなければならない(MUST)。
データ型:文字列(URL エンコード)
値空間:URL エンコードされた URL
サンプル値:https://example.com/my-cmi5-listener/
fetch
説明:fetch URL は、LMS によって作成および管理される認証トークンを取得するために、AU によって使用される。認証トークンは起動中の AU によって使用される。
LMS での使用法:LMS は fetch を起動 URL に含めなければならない(MUST)。8.2 節で定義するように、
fetch URL は「ワンタイム利用」URL であり、2 回目以降の使用はエラーを生成することがのぞましい(SHOULD)。fetch URL によって返される認証トークンは、特定のユーザセッションの期間に限定されなければならない(MUST)。
AU での使用法:AU は fetch 値をクエリ文字列から取得しなければならない(MUST)。8.2 節で定義するように、AU は fetch URL への HTTP POST を実行して認証トークンを取得しなければならない(MUST)。AU はその後、xAPI を使用してエンドポイントに対して実行するすべての HTTP 要求の Authorization ヘッダーに認証トークンを置かなければならない(MUST)。AU は fetch URL への POST を 2 回以上実行することはのぞましくない(SHOULD NOT)。
データ型:文字列(URL エンコード)
値空間:URL エンコードされた URL
サンプル値:http://lms.example.com/tokenGen.htm?k=2390289x0
actor
説明:(xAPI 仕様で定義されている)objectType が "Agent" の JSON オブジェクトである。AU を起動している学習者を識別して、AU がその学習者を識別する情報を xAPI 要求に含めることができるようにする。
LMS での使用法:LMS は、認証された学習者の識別情報に基づいて、actor パラメータをクエリ文字列に入れなければならない(MUST)。LMS は、学習者の機密個人情報を含まない、LMS インスタンスに固有のオブジェクト(an object that is specific to the LMS instance)を用いてこのパラメータを作成することがのぞましい(SHOULD)。
AU での使用法:AU は actor 値をクエリ文字列から取得しなければならない(MUST)。AU は xAPI 要求を送信するとき、"actor" プロパティを必要とする API 呼び出しで actor 値を使用しなければならない(MUST)。
データ型:文字列(URL エンコード)
値空間:JSON オブジェクト(9.2 節で定義)
サンプル値:{"objectType": "Agent","account": {"homePage": "http://www.example.com","name": "1625378"}
registration
説明:起動中の AU の学習者履修登録に対応する履修登録 ID。
LMS での使用法:LMS は、起動中の AU が属するコースへの、認証された学習者の対応する受講登録に基づいて、registration の値をクエリ文字列に含めなければならない(MUST)。
AU での使用法:AU は registration 値をクエリ文字列から取得しなければならない(MUST)。AU は xAPI 要求の送信時に、"registration id" を必要とする API 呼び出しで registration 値を使用しなければならない(MUST)。
データ型:文字列(URL エンコード)
値空間:UUID(xAPI 仕様で定義)
サンプル値:
activityId
説明:起動される AU のアクティビティ ID。
LMS での使用法:LMS は、AU に対して一意の activityId を生成しなければならない(MUST)。LMS はその値をクエリ文字列に含めなければならない(MUST)。生成される activityId は、コース構造からの AU の ID(発行者 ID)と一致してはならない(MUST NOT)(13.1.4 項「AU メタデータ」を参照)。LMS は、一回の履修登録中に(同じ AU の)2 回目以降の起動では、すべて同一の生成済み activityId を使用しなければならない(MUST)。LMS は、毎回の履修登録において、(同じ AU に対しては)同一の生成済み activityId を使用することがのぞましい(SHOULD)。
AU での使用法:AU は activityId 値をクエリ文字列から取得しなければならない(MUST)。AU は xAPI 要求の送信時に、"activity id" を必要とする API 呼び出しで activityId 値を使用しなければならない(MUST)。
データ型:文字列(URL エンコード)
値空間:IRI
サンプル値:


8.2 認証トークン取得 URL

8.2.1 概要

LMS は、fetch の名前/値ペアを起動 URL に含めなければならない(MUST)。AU は、fetch URL への HTTP POST を実行して認証トークンを取得しなければならない(MUST)。要求のキャッシングを防ぐために、HTTP GET は認められていないことに注意されたい。

fetch URL は、Content-Type が "application/json" の JSON 構造を返さなければならない(MUST)。JSON 構造の例を次に示す:

{
  "auth-token": "QWxhZGRpbjpvcGVuIHNlc2FtZQ=="
}

AU は、以降すべての LMS との xAPI 通信で、「RFC 1945 - 11.1 Basic Authentication Scheme」の定義どおり、auth-token を HTTP ヘッダーに含めなければならない(MUST)。fetch URL によって返される認証トークンは、セッションの期間に限定されなければならない(MUST)。

AU は認証トークンの取得を複数回にわたって試みることはのぞましくない(SHOULD NOT)。fetch URL は「ワンタイム利用」URL であり、2 回目以降の使用はエラーを生成することがのぞましい(SHOULD)(8.2.3 項を参照)。

8.2.2 定義: auth-token

auth-token
説明:LMS とのすべての xAPI 通信で使用される認証トークン。
LMS での使用法:8.2.1 項で示すように、LMS は、fetch URL 要求への応答において、auth-token の値を JSON 構造に含めなければならない(MUST)。応答の Content-Type は "application/json" でなければならない(MUST)。有効な要求(8.2.3 項で説明するようにエラーを生成するものを含む)に対する HTTP ステータスコードは "200" でなければならない(MUST)。
AU での使用法:AU は fetch URL への HTTP POST を使用して auth-token 値を取得しなければならない(MUST)。その後 AU は、エンドポイントに対して xAPI で実行するすべての HTTP 要求の Authorization ヘッダーに認証トークンを含めなければならない(MUST)。
データ型:文字列(URL エンコード)
値空間:LMS によって定義
サンプル値:QWxhZGRpbjpvcGVuIHNlc2FtZQ==

8.2.3 エラー

8.2.3.1 取得 URL の重複呼び出し

fetch URL は「ワンタイム利用」URL であり、最初の要求だけが auth-token を返すことがのぞましい(SHOULD)。セッション中、fetch URL に行われた 2 回目以降の要求はエラーを生成することがのぞましい(SHOULD)。エラーは Content-Type が "application/json" の JSON 構造の形式で返すことがのぞましい(SHOULD)。JSON 構造の例を次に示す:

{
  "error-code": "1",
  "error-text": "The authorization token has already been returned."
}

8.2.3.2 エラー値

以下の error-code 値が認められている。

コード意味
1既に使用中または期限切れ - トークンが以前に使用されたことがあるか、または AU セッションの期限が切れている
2一般セキュリティエラー - 無効なトークンなど、その他すべてのセキュリティ上の問題
3一般アプリケーションエラー - アプリケーションまたは環境の障害

error-text の値は LMS によって定義される。


8.3 その他の起動環境

その他の起動環境は現在、本仕様書で定義されていない。こうしたその他の環境における、LMS および AU のための cmi5 実装では、xAPI 仕様で規定されているのと同じ REST 通信インターフェイスを使用するであろう。xAPI 仕様では起動メカニズムを定めていない。

9.0 xAPI ステートメントデータモデル

9.1 ステートメント ID

AU は、それが発行するすべてのステートメントに対して、ステートメント ID プロパティを UUID 形式で(xAPI 仕様での定義どおり)割り当てなければならない(MUST)。

9.2 アクタ(Actor)

Actor プロパティは LMS によって定義される。すべての「cmi5 定義」ステートメントの Actor プロパティは、xAPI 仕様での定義に従って、objectType を "Agent" にして、"account" を含んでいなければならない(MUST)。

9.3 動詞(Verb)

以下の xAPI Verb が本仕様書で定義されている。

「cmi5 許容」ステートメントは本節の使用ルールの適用外であることに注意されたい。

特に断りのない限り、本節で扱うすべてのステートメントは「cmi5 定義」ステートメントを指している。

AU は、本仕様書の他の項目で必須としている以下の Verb を使用しなければならない(MUST)。

AU セッションにおける AU Verb 順序付けルールは以下のとおり:

  • Verb は重複してはならない(MUST NOT)(cmi5 定義ステートメントにおいて)。
  • {"Passed","Failed"} Verb の組を 2 つ以上使用してはならない(MUST NOT)(cmi5 定義ステートメントにおいて)。
  • cmi5 定義ステートメントである "Completed" は registration ごとに 1 つしか使用できない。
  • cmi5 定義ステートメントである "Passed" は registration ごとに 1 つしか使用できない。
  • "Failed" ステートメントが "Passed" ステートメントの後に来てはならない(cmi5 定義ステートメントにおいて)。
  • "Initialized" は最初のステートメントでなければならない(MUST)(cmi5 で許容または定義されたステートメントの中で)。
  • "Terminated" は最後のステートメントでなければならない(MUST)(cmi5 で許容または定義されたステートメントの中で)。

本仕様書に記載されていない追加の Verb を AU で使用してもよい。

ステートメントで AU が使用する Verb にかかわらず、LMS はすべてのステートメントを記録し、レポートを提供しなければならない(MUST)。

9.3.1 Launched

VerbLaunched
IDhttp://adlnet.gov/expapi/verbs/launched
説明Verb "Launched" は、AU が LMS によって起動されたことを示す。
AU の義務なし
LMS の義務LMS は、AU を起動する前に、LRS に記録されるステートメントでこの Verb を使用しなければならない(MUST)。(10 章「ステートメント API」を参照)LMS は、特定の AU セッションの間、同じ AU に関して "Launched" を含んでいる複数のステートメントを発行してはならない(MUST NOT)。
使用法"Launched" ステートメントは、LMS が AU を起動したことを示すために使用される。AU が正しく起動されたかどうかを判断するために、AU によって送信される "Initialized" ステートメントと組み合わせて妥当な期間内に使用することがのぞましい(SHOULD)。

9.3.2 Initialized

VerbInitialized
IDhttp://adlnet.gov/expapi/verbs/initialized
説明"Initialized" ステートメントは、AU が完全に初期化されたことを示すために AU によって使用される。LMS によって作成される "Launched" ステートメントよりも後の妥当な期間内に使用しなければならない(MUST)。
AU の義務AU は "Initialized"を、AU セッションにおける(あらゆる種類の)最初のステートメントで使用しなければならない(MUST)。AU は、特定の AU セッションの間、同じ AU に関して "Initialized" を含んでいる複数のステートメントを発行してはならない(MUST NOT)。
LMS の義務なし
使用法"Initialized" ステートメントは、AU が完全に初期化されたことを示すために AU によって使用される。LMS によって作成された "Launched" ステートメントよりも後の妥当な期間内に使用することがのぞましい(SHOULD)。

9.3.3 Completed

VerbCompleted
IDhttp://adlnet.gov/expapi/verbs/completed
説明Verb "Completed" は、学習者が AU の提示内のすべての関連アクティビティを閲覧または実行したことを示す。"Completed" Verb の使用は 100% の進捗を示す。
AU の義務学習者が AU 内のすべての教材を学習したら(has experienced)、AU は "Completed" Verb を含むステートメントを記録しなければならない(MUST)。AU は、特定の AU セッションの間、または特定の学習者のコース登録中、同じ AU に関して "Completed" を含んでいる複数のステートメントを発行してはならない(MUST NOT)。
LMS の義務なし
使用法"Completed" の基準はコース設計者により決定される。

9.3.4 Passed

VerbPassed
IDhttp://adlnet.gov/expapi/verbs/passed
説明学習者が AU 内の判定対象のアクティビティを試行し、成功した。
AU の義務学習者が AU に挑戦して合格したら、AU は "Passed" Verb を含むステートメントを記録しなければならない(MUST)。(数値化された)得点が "Passed" ステートメントに含まれる場合、その(数値化された)得点は、LMS 起動データで指示される "masteryScore" 以上でなければならない(MUST)(10.0 節「xAPI ステートデータモデル」の「masteryScore」を参照)。
LMS の義務LMS は、LMS 起動データで提供される AU の "moveOn" 基準に基づいて、"Passed" または "Completed" ステートメントのどちらか(あるいは両方)を使用しなければならない(MUST)(10.0 節「xAPI ステートデータモデル」の「moveOn」を参照)。
使用法学習者が判定対象アクティビティに挑戦して無事合格したら、AU は "Passed" Verb を含むステートメントを記録しなければならない(MUST)。

9.3.5 Failed

VerbFailed
IDhttp://adlnet.gov/expapi/verbs/failed
説明学習者が AU 内の判定対象アクティビティに挑戦し、不合格した。
AU の義務学習者が AU に挑戦して不合格したら、AU は "Failed" Verb を含むステートメントを記録しなければならない(MUST)。(数値化された)得点が "Failed" ステートメントに含まれる場合、その(数値化された)得点は、LMS 起動データで指示される "masteryScore" 未満でなければならない(MUST)(10.0 節「xAPI ステートデータモデル」の「masteryScore」を参照)。
LMS の義務なし。
使用法学習者が判定対象アクティビティに挑戦して失敗したら、AU は "Failed" Verb を含むステートメントを記録しなければならない(MUST)。

9.3.6 Abandoned

VerbAbandoned
IDhttps://w3id.org/xapi/adl/verbs/abandoned
説明Verb "Abandoned" は、AU セッションが学習者の行為によって(またはシステム障害のため)異常終了したことを示す。
AU の義務なし
LMS の義務"Terminated" ステートメントがない場合、LMS は、異なる AU について同じ学習者/コース登録に対して実行される新しいステートメントまたはステート API 要求を監視することによって、AU がセッションを異常終了させたかどうかの判断を下さなければならない(MUST)。LMS は、セッションの異常終了を示す "Abandoned" ステートメントを AU の代わりに記録しなければならない(MUST)。"Abandoned" ステートメントを記録した後、LMS はそのセッションに対し、いかなる追加ステートメントの記録も許可してはならない(MUST NOT)。
使用法「LMS の義務」を参照。

9.3.7 Waived

VerbWaived
IDhttps://w3id.org/xapi/adl/verbs/waived
説明Verb "Waived" は、AU を完了する以外の手段によって AU の必要条件が満たされたと LMS が判断したことを示す。
AU の義務なし
LMS の義務LMS は、AU が断念されてもよいと判断したら、LRS に記録されるステートメントでこの Verb を使用しなければならない(MUST)。"Waived" Verb を含むステートメントは、ステートメント結果の拡張プロパティに "reason" が含まれなければならない(MUST)。(9.5.5.2 項を参照)LMS は、"Waived" Verb を含むステートメントに対して一意のセッション ID を生成しなければならず(MUST)、("Satisfied" Verb を含むステートメントを除いては)他のいかなるステートメントもそのセッション ID を用いて発行してはならない(MUST NOT)。LMS は、ひとつのコース registration において、"Waived" を含むステートメントを同じ AU に対して複数回発行してはならない(MUST NOT)。
使用法"Waived" ステートメントは、学習者が AU をスキップしてもよいことを示すために、LMS によって使用される。

9.3.8 Terminated

VerbTerminated
IDhttp://adlnet.gov/expapi/verbs/terminated
説明"Terminated" は、AU が学習者によって終了されたこと、および、その起動セッションに対して今後は AU が一切のステートメントを記録しないことを示す。
AU の義務AU は "Terminated" を含むステートメントを記録しなければならない(MUST)。このステートメントは、セッションで AU によって記録される(あらゆる種類の)最後のステートメントでなければならない(MUST)。
LMS の義務LMS は、AU セッションが終了したと判断するために "Terminated" ステートメントを使用しなければならない(MUST)。"Terminated" ステートメントを受け取ったら、LMS は(LMS 実装によって定義された)所定の時間だけ待機し、その後は AU セッションに対する(あらゆる種類の)ステートメントを拒否しなければならない(MUST)。
使用法「義務」を参照。

9.3.9 Satisfied

VerbSatisfied
IDhttps://w3id.org/xapi/adl/verbs/satisfied
説明Verb "Satisfied" は、学習者がブロック内のすべての AU の moveOn 基準を達成した、またはコース内のすべての AU について moveOn 基準を満たしたと LMS が判断したことを示す。
AU の義務なし
LMS の義務学習者がブロック内のすべての AU の moveOn 基準に達成したら、LMS は "Satisfied" ステートメントを使用しなければならない(MUST)。このステートメントで LMS は、LMS によって生成されたブロック ID をオブジェクト ID(9.4 節「オブジェクト」)として使用し、オブジェクト定義の "type" プロパティの値として "https://w3id.org/xapi/cmi5/activitytype/block" を使用しなければならない(MUST)。

LMS は、Satisfied ステートメントに対して一意のブロック ID を生成しなければならない(MUST)。生成されたブロック ID は、コース構造からの発行者 ID と一致してはならない(MUST NOT)。

学習者がコース内のすべての AU の moveOn 基準に達成したときも、LMS は "Satisfied" ステートメントを使用しなければならない(MUST)。このステートメントで LMS は、LMS によって生成されたコース ID をオブジェクト ID(9.4 節「オブジェクト」)として使用し、オブジェクト定義の "type" プロパティの値として "https://w3id.org/xapi/cmi5/activitytype/course" を使用しなければならない(MUST)。

LMS は、Satisfied ステートメントに対して一意のコース ID を生成しなければならない(MUST)。生成されたコース ID は、コース構造からの発行者 ID と一致してはならない(MUST NOT)。

AU 起動セッションの結果として実行されるすべての "Satisfied" ステートメントについて、LMS は、AU 起動からのセッション ID をステートメントで使用しなければならない(MUST)。{For all "Satisfied" statements triggered as a result of an AU launch session, the LMS MUST use the session id from the AU launch in the statements.}

LMS は、特定の学習者のコース registration 中、"Satisfied" を含むステートメントを、同じブロックまたはコースに対して複数回発行すべきではない(SHOULD NOT)。
使用法「LMS の義務」を参照。



9.4 オブジェクト(Object)

すべての「cmi5 定義」ステートメントには、本節で規定する Object が存在しなければならない(MUST)。

Satisfied Verb を含むステートメントを除き、cmi5 定義ステートメントにおける Object は AU を表す。Object が AU のとき、特定の AU に対する Object の "id" プロパティの値は、起動 URL で定義される activityId と一致しなければならない(MUST)。

Satisfied ステートメントでは、Object はブロックまたはコースを表す。(「9.3.9 Satisfied」を参照)

9.5 リザルト(Result)

使用する cmi5 Verb により、結果を有するステートメントがある。

9.5.1 得点(Score)

得点がレポートされることは必須ではない。AU が得点を報告する場合、(もし LMS 起動データで AU に対して定義されていれば)"masteryScore" と Verb が整合していなければならない(MUST)。

下記の cmi5 定義ステートメントでは、result の "score" プロパティを設定してもよい(MAY)。

  • Passed
  • Failed

上記以外の cmi5 定義ステートメントには、"score" プロパティを含めてはならない(MUST NOT)。

  • scaled
    0 ~ 1 の範囲(両端を含む)の小数値。
  • raw
    score オブジェクトの "min" プロパティから "max" プロパティまでの範囲(両端を含む)の整数値。"raw" 値が提供されるとき、AU は score の "min" 値と "max" 値も提供しなければならない(MUST)。
  • min
    "raw" 得点プロパティの最小値を示す整数値。
  • max
    "raw" 得点プロパティの最大値を示す整数値。

9.5.2 成功(Success)

下記の cmi5 定義ステートメントについては、result の "success" プロパティを true に設定しなければならない(MUST):

  • Passed
  • Waived

下記の cmi5 定義ステートメントについては、result の "success" プロパティを false に設定しなければならない(MUST):

  • Failed

上記以外の cmi5 定義ステートメントには、"success" プロパティを含めてはならない(MUST NOT)。

9.5.3 完了(Completion)

下記の cmi5 定義ステートメントについては、result の "completion" プロパティを true に設定しなければならない(MUST):

  • Completed
  • Waived

上記以外の cmi5 定義ステートメントには、"completion" プロパティを含めてはならない(MUST NOT)。

9.5.4 経過時間(Duration)

"duration" プロパティは ISO 8601 フォーマットの時間値であり、本項で定義するいくつかのステートメントでは必須である。下記以外の cmi5 で定義されたステートメントにも "duration" プロパティを含めてよい(MAY)。

9.5.4.1 経過時間を含む AU ステートメント

Terminated ステートメント

AU は "duration" プロパティを "Terminated" ステートメントに含めなければならない(MUST)。AU は Terminated ステートメントに対して、"Initialized" ステートメントから "Terminated" ステートメントまでの時間差として経過時間を計算することがのぞましい(SHOULD)。AU は、AU によって決定される基準に基づいて経過時間を計算するための別の方法を使用してもよい。

"Completed" ステートメント

AU は "duration" プロパティを "Completed" ステートメントに含めなければならない(MUST)。AU は、完了状態を達成するまでに学習者が必要とした時間を経過時間として計算することがのぞましい(SHOULD)。

Passed ステートメント

AU は "duration" プロパティを "Passed" ステートメントに含めなければならない(MUST)。AU は、AU の判定対象のアクティビティを試行し成功するまでに学習者が必要とした時間を経過時間として計算することがのぞましい(SHOULD)。

Failed ステートメント

AU は "duration" プロパティを "Failed" ステートメントに含めなければならない(MUST)。AU は、AU の判定対象のアクティビティを試行し失敗するまでに学習者が必要とした時間を経過時間として計算することがのぞましい(SHOULD)。

9.5.4.2 経過時間を含む LMS ステートメント

Abandoned ステートメント

"duration" プロパティを "Abandoned" ステートメントに含めなければならない(MUST)。"duration" プロパティは少なくとも、"Launched" ステートメントを起点に、AU によって発行された(あらゆる種類の)最後のステートメントまでの時間を計算して、合計セッション時間として設定しなければならない(MUST)。LMS は、合計セッション時間がさらに長かったかどうかを判断するために、他の(LMS 固有の)方法も(使用可能であれば)使用することがのぞましい(SHOULD)。

9.5.5 拡張(Extensions)

9.5.5.1 進捗度

ID:https://w3id.org/xapi/cmi5/result/extensions/progress
説明:AU の完了度を百分率で示す、0 ~ 100 の範囲(両端を含む)の整数値。
LMS での使用法:なし
AU での使用法:AU は完了のレベルを示すためにステートメントでこの値を設定してもよい。ただし、現在の登録で AU に対して Completed ステートメントを発行したことがある場合、AU は progress の値を設定すべきでない(SHOULD NOT)。
AU の義務:オプション
LMS の義務:なし
データ型:整数
値空間:0 ~ 100(両端を含む)

9.5.5.2 理由

ID:https://w3id.org/xapi/cmi5/result/extensions/reason
説明:AU が「放棄」された(代替手段によって完了とマークされた)理由を示す。
LMS での使用法:LMS は、Verb "Waived" を使うステートメントでこの値を設定しなければならない(MUST)。値は以下のいずかれであることがのぞましい(SHOULD) -
  • Tested Out – AU を放棄するために、受講者によって評価が完了された。
  • Equivalent AU - 受講者は AU を放棄するために、(同じコース内の)等価の AU を無事完了した。
  • Equivalent Outside Activity – 受講者は AU を放棄するために、コース外部の等価のアクティビティを無事完了した。
  • Administrative – LMS 管理ユーザが AU を完了とマークした。
AU での使用法:AU はこの値を LRS から取得し、"reason" に基づいてプレゼンテーションの動作を変更するために使用してもよい。
AU の義務:オプション
LMS の義務:これは、Waived Verb を含む LMS ステートメントの必須拡張である。
データ型:文字列
値空間:
  • "Tested Out"
  • "Equivalent AU"
  • "Equivalent Outside Activity"
  • "Administrative"
サンプル値:Tested Out

9.6 文脈(Context)

すべての cmi5 定義ステートメントは、本節で定義するオブジェクト/値をすべて含む文脈を含まなければならない(MUST)。LMS または AU のいずれかが追加のオブジェクトを提供してもよい(MAY)。

9.6.1 学習登録(registration)

文脈オブジェクトで使用される "registration " プロパティの値は、LMS によって提供される値でなければならない(MUST)。LMS はこの値を生成し、起動 URL を介して AU に渡さなければならない(MUST)。登録時に、LMS はコース構造内の MoveOn 基準を評価しなければならない(MUST)。例えば、コース構造において、"MoveOn"(進行)基準が "Not Applicable"(適用不可能)というブロックが評価されると、この時点で "Satisfied"(満足した)ステートメントが生成されるであろう。

AU 起動セッションの外で発生したすべての Satisfied ステートメントについて、LMS は一意のセッション ID を生成し、それらのステートメントに対してその ID を使用しなければならない(MUST)。

9.6.2 contextActivities

このプロパティの目的は、LMS またはその他のレポーティングシステムによる LRS の検索を容易にすることである。"contextActivities" プロパティには、それらの ID をステートメントリストフィルタとして使用できる Activity オブジェクトのリストが含まれる。cmi5 定義ステートメントはすべて、文脈テンプレートの contextActivites で定義されたすべてのプロパティと値を含まなければならない(10 章「xAPI ステートデータモデル」を参照)。

9.6.2.1 cmi5 カテゴリアクティビティ

7.1.3 項で説明しているように、cmi5 定義ステートメントで使用される "category" 文脈アクティビティリストにおいて "id" が 「https://w3id.org/xapi/cmi5/context/categories/cmi5" である Activity オブジェクト。

9.6.2.2 moveOn カテゴリアクティビティ

"success"(成功した)または "completion"(完了した)プロパティを含む結果オブジェクト(9.5 節)を伴う cmi5 定義ステートメントは、"category" 文脈アクティビティリスト内に、"https://w3id.org/xapi/cmi5/context/categories/moveon" という "ID" を伴う Activity オブジェクトを持たなければならない(MUST)。その他のステートメントにこの Activity を含めてはならない(MUST NOT)。

9.6.2.3 発行者 ID グループ化アクティビティ

コース構造からの発行者 ID を使用している AU についてのステートメントを識別するために使用される。

LMS は、AU の起動に先立ち、ステート API(10 章参照)で説明するように、"contextTemplate" 内の "grouping" 文脈アクティビティリストに、不変の値である = コース構造からの AU の ID 属性(13.1.4 項「AU メタデータ」の「id」を参照)の値、を "ID" プロパティに持つ Activity オブジェクトを含めなければならない(MUST)。LMS はさらに、LMS が LRS で直接実行するすべての「cmi5 定義」および「cmi5 許容」ステートメントに対して、発行者 id の Activity を "grouping" 文脈アクティビティリストに含めなければならない(MUST)。

9.6.3 拡張(Extensions)

以下は、cmi5 のために仕様化された拡張である。ここで仕様化されている拡張と競合または重複しない限り、その他の拡張も認められている。

9.6.3.1 セッション ID

ID:https://w3id.org/xapi/cmi5/context/extensions/sessionid
説明:アクタとコース登録に基づいた、単一の AU 起動セッションの一意識別子
LMS での使用法:セッション ID の値は LMS によって生成される。LMS は AU を起動する前に、ステート API(10 章を参照)のセッション ID を記録しなければならない(MUST)。LMS はさらに、LMS が LRS で直接実行するすべての cmi5 定義および cmi5 許容ステートメントの拡張として、文脈のセッション ID を提供しなければならない(MUST)。
AU での使用法:AU は、LRS で直接実行するすべての cmi5 定義および cmi5 許容ステートメントの拡張として、LMS が提供するセッション ID を文脈に含めなければならない(MUST)。
AU の義務:必須
LMS の義務:必須
データ型:文字列(URL エンコード)
値空間:文字列値
サンプル値:

9.6.3.2 masteryScore(合格点)

ID:https://w3id.org/xapi/cmi5/context/extensions/masteryscore
説明:"masteryScore" は LMS 起動データで提供され、得点に基づいた合否結果の決定に使用される
LMS での使用法:LMS 起動データで masteryScore が提供されるとき、LMS はそれを "Launched" ステートメントの文脈に追加しなければならない(MUST)。
AU での使用法:AU は、"masteryScore" に基づいて実行する "passed"/"failed" ステートメントの拡張として、LMS によって提供される "masteryScore" 値を文脈に含めなければならない(MUST)。
AU の義務:必須、存在し評価されるとき
LMS の義務:必須、起動データにあるとき
データ型:小数
値空間:0 ~ 1 の範囲(両端を含む)、小数第 4 位までの精度の小数値
サンプル値:0.92

9.6.3.3 起動モード

ID:https://w3id.org/xapi/cmi5/context/extensions/launchmode
説明:AU が LMS によってどの起動モードで起動されたかを示す
LMS での使用法:LMS は launchMode を "Launched" ステートメントの文脈に追加しなければならない(MUST)。
AU での使用法:適用外
AU の義務:なし
LMS の義務:必須
データ型:文字列
値空間:10.0 節「xAPI ステートデータモデル」で定義する launchMode 語彙に従う
サンプル値:"Normal"

9.6.3.4 起動URL

ID:https://w3id.org/xapi/cmi5/context/extensions/launchurl
説明:AU を起動するために LMS によって使用される URL
LMS での使用法:LMS は、AU を起動するための、8.1 節で定義され含まれている名前/値のペアが無いのものに相当する FQDN 付きの URL を、"Launched" ステートメントの文脈拡張に置かなければならない(MUST)。
AU での使用法:適用外
AU の義務:なし
LMS の義務:必須
データ型:文字列
値空間:URL
サンプル値:http://www.example.com/LA1/Start.html

9.6.3.5 発行者ID

本項は適用外となった。9.6.2.3 項「発行者 ID グループ化アクティビティ」を参照。

9.6.3.6 moveOn

ID:https://w3id.org/xapi/cmi5/context/extensions/moveon
説明:"moveOn" は、登録に加えて、AU のために LMS 起動データ内において提供される
LMS での使用法:LMS は moveOn を "Launched" ステートメントの文脈に追加しなければならない(MUST)。
AU での使用法:適用外
AU の義務:なし
LMS の義務:必須
データ型:文字列
値空間:10.0 節「xAPI ステートデータモデル」で定義する moveOn 語彙に従う
サンプル値:"Passed"

9.6.3.7 launchParameters(起動パラメーター)

ID:https://w3id.org/xapi/cmi5/context/extensions/launchparameters
説明:registration 付 AU の LMS 起動データに記載されている "launchParameters"
LMS での使用法:LMS 起動データで launchParameters が提供されるとき、LMS はそれを "Launched" ステートメントの文脈に追加しなければならない(MUST)。
AU での使用法:適用外
AU の義務:なし
LMS の義務:必須、起動データにあるとき
データ型:文字列
値空間:任意の文字列値

9.7 タイムスタンプ

ステートメントの順序の必要条件が満たされることを保証するために、すべてのステートメントは xAPI 仕様に従って timestamp プロパティを含めなければならない(MUST)。すべてのタイムスタンプは UTC 時間で記録されなければならない(MUST)。セッション内のステートメントでタイムスタンプが一意である必要はない。記録される時間は、状況が実際に発生した時点を示すことがのぞましい(SHOULD)。

10.0 xAPI ステートデータモデル

AU を起動するのに先立って、LMS は LRS のステート API レコード内にドキュメントを作成または更新しなければならない(MUST)。これは、本節で定義する JSON ドキュメントでなければならない(MUST)。

ステート API PUT プロパティ:

  • activityId: AU のアクティビティ ID
  • agent: 受講登録されている LMS 学習者を表すエージェント。これは、AU 起動時に LMS によって生成される actor プロパティと一致しなければならない(MUST)。
  • registration: コースでの LMS 学習者受講登録を表す登録 ID。これは、AU 起動時に LMS によって使用される登録 ID と一致しなければならない(MUST)。
  • stateId: LMS.LaunchData

"LMS.LaunchData" ドキュメントのプロパティについて以下で説明する。

contextTemplate
説明:起動中の AU の文脈テンプレート。
LMS で必須:はい
AU で必須:はい
LMS での使用法:LMS は "contextTemplate" オブジェクトを含めなければならず、以下の値を含めなければならない(MUST):LMS は追加の値を "contextTemplate" に置いてもよい(MAY)。
AU での使用法:AU は "LMS.LaunchData" ステートドキュメントから "contextTemplate" 値を取得しなければならない(MUST)。AU は "LMS.LaunchData" ステートドキュメントを変更または削除してはならない(MUST NOT)。AU が LMS に記録するすべての xAPI ステートメントで、AU は "context" プロパティのテンプレートとして contextTemplate を使用しなければならない(MUST)。AU はそのようなステートメントの Context オブジェクトに追加の値を含めてもよいが、contextTemplate で提供されるいかなる値も上書きしてはならない(MUST NOT)。注記: これには LMS によって指定されるセッション ID が含まれるであろう。
データ型:xAPI 仕様で定義される JSON 文脈オブジェクト。
launchMode
説明:LMS によって決定される起動モード。3 つの値を取り得る:
  • Normal
    完了に関連したデータが xAPI ステートメントを使用して LMS に記録されなければならない(MUST)ことを AU に指示する。
  • Browse
    完了に関連したデータを xAPI ステートメントを使用して LMS に記録してはならない(MUST NOT)ことを AU に指示する。Browse モードが使用されるとき、AU は、判定を下すことなく「見て回る」ことをユーザに許可するユーザ経験を提供することがのぞましい(SHOULD)。
  • Review
    完了に関連したデータを xAPI ステートメントを使用して LMS に記録してはならない(MUST NOT)ことを AU に指示する。Review モードが使用されるとき、AU は、既に完了した教材を「再確認/復習」することをユーザに許可するユーザ経験を提供することがのぞましい(SHOULD)。
LMS で必須:はい
AU で必須:はい
LMS での使用法:LMS は launchMode の値を含めなければならない(MUST)。
AU での使用法:launchMode の値に基づき、AU は以下に適合しなければならない(MUST)
  • Normal
    AU は "Initialized" および "Terminated" ステートメントを記録しなければならない(MUST)。AU は、9.3 節「動詞(Verb)」で定義する必要条件に従い、その他の cmi5 Verb ステートメントを記録しなければならない(MUST)。
  • Browse
    AU は "Initialized" および "Terminated" ステートメントを記録しなければならない(MUST)。AU はその他の cmi5 Verb ステートメントを記録してはならない(MUST NOT)。
  • Review
    AU は "Initialized" および "Terminated" ステートメントを記録しなければならない(MUST)。AU はその他の cmi5 Verb ステートメントを記録してはならない(MUST NOT)。
データ型:文字列
値空間:"Normal"、"Browse"、または "Review"
サンプル値:"Normal"
launchParameters
説明:cmi5 コース構造で定義される launchParameters
LMS で必須:launchParameters がコース設計者によってコース構造に定義されていた場合、LMS は launchParameters をステート API ドキュメントに含めなければならない(MUST)。
AU で必須:いいえ
LMS での使用法:LMS は launchParameters 値をステート API ドキュメントで提供しなければならない(MUST)。ステート API ドキュメントに書き込まれる launchParameters 値は、コース構造での値と異なってもよい(MAY)(たとえば、LMS 管理ユーザが使用する場合があるコンテンツベンダオプションに基づいて)。
AU での使用法:コース構造で起動パラメータが定義されていた場合、AU は launchParameters 値をステート API ドキュメントから取得することがのぞましい(SHOULD)。
データ型:文字列
値空間:任意の文字列値
masteryScore
説明:cmi5 コース構造からの masteryScore
LMS で必須:masteryScore がコース設計者によってコース構造に定義されていた場合、LMS は "masteryScore" をステート API ドキュメントに含めなければならない(MUST)。
AU で必須:masteryScore が提供される場合。
LMS での使用法:masteryScore がコース構造に存在する場合、LMS は masteryScore をステート API ドキュメントで提供しなければならない。ステート API ドキュメントに書き込まれる masteryScore 値は、コース構造での値と異なってもよい(MAY)(たとえば、LMS によって定義される管理ルールに基づいて)。
AU での使用法:AU が "Passed" または "Failed" ステートメントを発行する場合、提供された masteryScore に基づいたステートメントでなければならない(MUST)。(9.3.6 項および 9.3.7 項を参照)
データ型:小数
値空間:0 ~ 1 の範囲(両端を含む)、小数第 4 位までの精度の 10 進値。
サンプル値:0.75
moveOn
説明:cmi5 コース構造からの moveOn 値。
LMS で必須:はい
AU で必須:いいえ
LMS での使用法:LMS は、moveOn 値をステート API ドキュメントで提供しなければならない。ステート API ドキュメントに書き込まれる moveOn 値は、コース構造での値と異なってもよい(MAY)(たとえば、LMS によって定義される管理ルールに基づいて)。
AU での使用法:AU は "LMS.LaunchData" ステートドキュメントから moveOn 値を取得してもよく、その値を使用して AU の動作を変更してもよい(MAY)。
データ型:文字列
値空間:コース構造で定義された moveOn 値(13.1.4 項「AU メタデータ」)
サンプル値:"Passed"
returnURL
説明:学習者が AU から立ち去る時に、LMS が(Web ブラウザ環境の)AU に学習者をリダイレクトさせることを要求する場合、AU 起動時に LMS によって使用される。
LMS で必須:いいえ
AU で必須:returnURL が提供される場合。
LMS での使用法:AU の終了時に学習者が returnURL にリダイレクトされることがのぞましい(SHOULD)とき、LMS は returnURL を含めてもよい。
AU での使用法:AU は returnURL 値を "LMS.LaunchData" ステートドキュメントから取得しなければならない(MUST)。returnURL が提供される場合、AU が終了されたときに AU は現在のブラウザウィンドウを returnURL にリダイレクトしなければならない(MUST)。
データ型:URL
値空間:任意の URL。
サンプル値:http://www.example.com/lms/mod/xapilaunch/view.php?id=12
entitlementKey: courseStructure
説明:コース構造からの資格データまたはキー。entitlementKey 値は、起動側 LMS が AU を使用する資格があるかどうかを判断するために AU が使用してもよい。
LMS で必須:はい
AU で必須:いいえ
LMS での使用法:LMS はコース構造からこれを取得しなければならない(MUST)。
AU での使用法:AU は、LMS から提供されるその他のデータと組み合わせてこのデータを使用し、資格を判断することがのぞましい(SHOULD)。
データ型:文字列
値空間:値は AU プロバイダによって提供される。
サンプル値:"xyz-123-9999"
entitlementKey: alternate
説明:LMS と AU の間で合意された、他の何らかのソースからの資格データまたはキー。entitlementKey 値は、起動側 LMS が AU を使用する資格があるかどうかを判断するために AU が使用してもよい。
LMS で必須:いいえ
AU で必須:いいえ
LMS での使用法:LMS は、AU との間で合意されたソースから代替の資格キーを取得しなければならない(MUST)。
AU での使用法:AU は、LMS から提供されるその他のデータと組み合わせてこのデータを使用し、資格を判断することがのぞましい(SHOULD)。
データ型:文字列
値空間:値は AU プロバイダによって提供される。
サンプル値:"xyz-123-9999"

11.0 xAPI エージェントプロファイルデータモデル

cmi5 では、学習者の選好は学習者を適用範囲とする。LMS と AU はどちらも、xAPI エージェントプロファイル内の学習者の選好に変更を書き込んでもよい。LMS/LRS は、xAPI 仕様(7.6 節)で定義されているように、"403 Forbidden" 応答を返すことによって、AU によって要求された学習者の選好の変更を無視またはオーバーライドすることを選択してよい。AU は 403 応答をエラー状況として扱ってはならない(MUST NOT)。

起動時に、AU は学習者の選好ドキュメントをエージェントプロファイルから取得しなければならない(MUST)。

エージェントプロファイルを読み書きするとき、ドキュメント名は "cmi5LearnerPreferences" でなければならず(MUST)、フォーマットは次に示すような JSON 構造でなければならない(MUST)。

{
  "languagePreference": "<values for languages>",
  "audioPreference": "<on or off>"
}

11.1 languagePreference(言語選択)

languagePreference は、xAPI 仕様(5.2 節)で指示されているように、RFC 5646 言語タグのコンマ区切りリストでなければならない(MUST)。リストでは、ユーザが優先する順に言語を指定しなければならない(MUST)。下記の例では、ユーザの第 1 優先言語は en-US である。ユーザの第 2 優先言語は fr-FR であり、第 3 優先は fr-BE である。

{
  "languagePreference": "en-US,fr-FR,fr-BE",
  ...
}

AU が複数の言語をサポートする場合、上記の例のようなユーザの言語優先順位に従って AU を表示することがのぞましい(SHOULD)。AU が "zh-CN"、"fr-BE"、および "fr-FR" をサポートしている場合、AU を "fr-FR" で表示することがのぞましい(SHOULD)。AU が複数の言語をサポートしない、またはエージェントプロファイルで languagePreference が指定されていない場合、AU をそのデフォルト言語で表示してもよい。

11.2 audioPreference(音響選択)

audioPrefence 値は、オーディオを "on" または "off" のどちらにすることがのぞましい(SHOULD)かを示す。AU は起動時にこの値に基づいてオーディオを有効または無効にしなければならない(MUST)。エージェントプロファイルで audioPreference の値が提供されない場合、AU はその独自のデフォルト値を使用してもよい(MAY)。

例:

{
  "audioPreference": "on",
  ...
}

12.0 xAPI アクティビティプロファイルデータモデル

AU は xAPI 仕様(7.5 節「アクティビティプロファイル API」)に従ってアクティビティプロファイル API を使用してもよい。

13.0 コース構造データの必要条件

13.1 コース構造データモデル

本節で定義するすべてのデータ要素について、先頭/末尾のスペースはすべて、コース構造のインポート時に LMS によって削除しなければならない(MUST)。

13.1.1 コースレベルメタデータ

以下のメタデータの属性と要素はコースレベルのもので、全体としてコースの例を以下で説明する。

id

必須: はい
データ型: IRI

説明:
コースのグローバルユニーク IRI。コースインスタンスを明示的に識別するために使用される。

値空間:
値はコース設計者によって定義される。
サンプル値:
<course id="http://www.example.com/identifiers/course/005430bf-b3ba-45e6-b47b-d629603d83d2" >…</course>

title

必須: はい
データ型: langstring

説明:
コースを識別する説明的なタイトル。

値空間:
値はコース設計者によって定義される。

サンプル値:
<title>
<langstring lang="en-US">This is a course title</langstring>
<langstring lang="es-MX">Se trata de un título del curso</langstring>
</title>

description

必須: はい
データ型: langstring

説明:
コースの詳細な説明。

値空間:
値はコース設計者によって定義される。

サンプル値:
<description>
<langstring lang="en-US">This is a course description</langstring>
<langstring lang="es-MX">Esta es una descripción del curso</langstring>
</description>

13.1.2 ブロックメタデータ

本項のデータは、グループ AU のあるブロック構造に使用される。ブロックは 1 つ以上の AU で構成される。ブロックには学習目標や他のブロックへの参照を含めることもできる。

id

必須: はい
データ型: IRI

説明: LMS によって行われる xAPI 要求でブロックを識別するためのグローバルユニーク IRI。

値空間: コース設計者によって定義される値

サンプル値:
<block id="http://www.example.com/identifiers/aublock/005430bf-b3ba-45e6-b47b-d629603d83d8" > … </block>

title

必須: はい
データ型: langstring

説明:
AU のブロックの説明的なタイトル
値空間:
値はコース設計者によって定義される。
サンプル値:
<title>
<langstring lang="en-US">This is the block title</langstring>
<langstring lang="es-MX">Este es el título del bloque</langstring>
</title>

description

必須: はい
データ型: langstring

説明:
ブロックの内容の詳細な言葉による説明。
値空間:
値はコース設計者によって定義される。
サンプル値:
<description>
<langstring lang="en-US">This is the block description</langstring>
<langstring lang="es-MX">Esta es la descripción de los bloques</langstring>
</description>

objectives

必須: いいえ
データ型: objectiveReference

説明:
このブロックによって参照される学習目標のリスト。
値空間:
値はコース設計者によって定義される。
サンプル値:
<objectives>
<objective idref="http://www.example.com/identifiers/objective/005430bf-b3ba-45e6-b47b-d629603d83d2" />
</objectives>

13.1.3 学習目標メタデータ

本項のデータは目標によって使用される。目標はブロックまたは個別 AU と関連付けることができる。

id

必須: はい
データ型: IRI

説明:
学習目標の一意 IRI。

値空間:
値はコース設計者によって定義される。

サンプル値:
<objective id="http://www.example.com/identifiers/objective/005430bf-b3ba-45e6-b47b-d629603d83d2" >…</objective>

title

必須: はい
データ型: langstring

説明:
学習目標の説明的なタイトル。

値空間:
値はコース設計者によって定義される。

サンプル値:
<title>
<langstring lang="en-US">This is the objective title</langstring>
<langstring lang="es-MX">Este es el título del objetivo</langstring>
</title>

description

必須: はい
データ型: langstring

説明:
学習目標の詳細な言葉による説明。

値空間:
値はコース設計者によって定義される。

サンプル値:
<description>
<langstring lang="en-US">This is the objective description</langstring>
<langstring lang="es-MX">Esta es la descripción objetiva</langstring>
</description>

13.1.4 AU メタデータ

本項のデータは、AU を特定し起動データを提供するために、LMS によって使用される。AU はオブジェクティブを含んでもよい。

id

必須: はい
データ型: IRI

説明: コンテンツの作成者/発行者によって定義されるグローバルユニーク IRI であり、AU が xAPI ステートメントの文脈でそれ自体を識別するために使用する。この ID はコース構造の内部で一意でなければならない(MUST)。

値空間: 値はコース設計者によって定義される。

サンプル値:
<au id="http://www.example.com/identifiers/activity/005430bf-b3ba-45e6-b47b-d629603d83d2" > … </au>

launchMethod

必須: いいえ
データ型: 文字列
デフォルト値: "AnyWindow"

説明: (Web ブラウザ環境で)AU を起動するとき、AU 独自のウィンドウが必要か、それとも LMS が AU のウィンドウコンテキストを選択してもよいかを判断するために LMS によって使用される。

使用法:

  • 値が "OwnWindow" の場合、LMS は新しいブラウザウィンドウで AU を起動する必要があるか、または現在のウィンドウを AU にリダイレクトしてもよい。
  • "AnyWindow" の値は、AU のウィンドウコンテキストが特に定められていないことを示す。フレームセット、新しいウィンドウ、ブラウザリダイレクトなど、すべてのブラウザウィンドウオプションを使用できる。

値空間: "OwnWindow"、"AnyWindow"

サンプル値:
<au id="…" launchMethod="OwnWindow"> … </au>

masteryScore

必須: いいえ
データ型: 小数

説明: AU 内の判定対象アクティビティの合否を決定するために LMS によって使用される得点(AU に採点機能がある場合)。

使用法:

  • "masteryScore" は実行時に LMS によって AU に渡される(10.0 節「xAPI ステートデータモデル」を参照)。
  • AU に採点機能がある場合、AU は "masteryScore" を使用して合否を決定する。
  • "masteryScore" は、数値化された、0 ~ 1 の範囲(両端を含む)で、小数第 4 位までの精度の小数である。

値空間: 小数値。

サンプル値:
<au id="…" masteryScore="0.85"> … </au>

moveOn

必須: いいえ
データ型: 文字列
デフォルト値: "NotApplicable"

説明: すべてのコースを完了したかの決定、もしくは、前提条件がその他のアクティビティに対して満足しているかを決定するという目的のために、AU が正常に完了したかを判断するために LMS によって使用される。

moveOn 値は以下のとおり:

  • moveOn 値 = "Passed" : Verb "Passed" を含むステートメントを LMS が受け取った場合、LMS はAU が十分な状態に達したと見なす。
  • moveOn 値 = "Completed" : Verb "Completed" を含むステートメントを LMS が受け取った場合、LMS はAU が十分な状態に達したと見なす。
  • moveOn 値 = "CompletedAndPassed" : Verb "Completed" および "Passed" を含むステートメントを LMS が受け取った場合、LMS はAU が十分な状態に達したと見なす。
  • moveOn 値 = "CompletedOrPassed" : Verb "Completed" または "Passed" のどちらかを含むステートメントを LMS が受け取った場合、LMS はAU が十分な状態に達したと見なす。
  • moveOn 値 = "NotApplicable": LMS はAU が十分な状態に達したと見なす。

使用法:

ブロック内のすべてのメンバ AU が達成された場合、ブロックは前提条件およびシーケンシングの条件が満たされたと見なされる。
すべてのメンバ AU およびブロックが達成された場合、コースは他のコースまたはカリキュラムに関連して前提条件または履修単位を満たしたと見なされる。

値空間:

"Passed"
"Completed"
"CompletedAndPassed"
"CompletedOrPassed"
"NotApplicable"

サンプル値:
<au id="…" moveOn="Passed"> … </au>

activityType

必須: いいえ
データ型: IRI

説明: 初回開始前に AU のアクティビティタイプを判断し、このタイプをユーザに知らせるために LMS によって使用される。

サンプル値:
<au id="…" activityType="http://adlnet.gov/expapi/activities/media"> … </au>

title

必須: はい
データ型: langstring

説明: AU の説明的なタイトル。

値空間: 値はコース設計者によって定義される。

サンプル値:
<title>
<langstring lang="en-US">This is an activity title.</langstring>
<langstring lang="es-MX">Este es un título de la actividad.</langstring>
</title>

description

必須: はい
データ型: langstring

説明:
AU で扱われる主題および学習アクティビティの詳細な説明。

値空間: 値はコース設計者によって定義される。

サンプル値:
<description>
<langstring lang="en-US">This is the AU description</langstring>
<langstring lang="es-MX">Esta es la descripción de la AU</langstring>
</description>

objectives

必須: いいえ
データ型: objectiveReference

説明:
この AU によって参照される目標のリスト。

値空間: 値はコース設計者によって定義される。

サンプル値:
<objectives>
<objective idref="http://www.example.com/identifiers/objective/005430bf-b3ba-45e6-b47b-d629603d83d2" />
</objectives>

url

必須: はい
データ型: 文字列

説明:

  • AU の起動ポイントを参照する相対または FQDN 付きの URL。
  • 「非ブラウザ」アプリケーションに対応するために、アプリケーション固有プロトコルを URL で使用してもよい:
    <application>://<コンテンツの URL>
  • <scheme> の値にかかわらず、URL の残り部分は「RFC1738 - Uniform Resource Locators (URL)」に適合しなければならない(MUST)。
  • URL にクエリ文字列が含まれる場合、そのクエリ文字列からの値は、起動時に cmi5 パラメータとマージされなければならない(MUST)(「cmi5 Runtime Environment」の 8.1.1 項を参照)。

値空間: 値はコース設計者によって決定される。

サンプル値:
<url>
http://www.example.com/courseX.html
</url>

launchParameters

必須: いいえ
データ型: 文字列

説明:
コース設計者によって定義される静的起動パラメータ。

値空間:
値はコース設計者によって定義される。

サンプル値:
<launchParameters>
{"param1": "Lorem ipsum dolor sit amet", "param2": [1,2,3,4,5],"param3": {"a": 1,"b": 2}}
</launchParameters>

entitlementKey

必須: いいえ
データ型: 文字列

説明:
起動している LMS が AU を使う資格があるかどうかを判断決定するために、AU によって使用されるデータ。AU は、権利付与を決定するために LMS から提供されるその他のデータと組み合わせてこのデータを使うことがのぞましい(SHOULD)。

値空間: 値は AU コンテンツプロバイダによって定義される。

サンプル値:
<entitlementKey>
xyz-123-9999
</entitlementKey>

13.1.5 ベンダ固有メタデータ(拡張)

コース設計者は、独自の名前空間付き要素をコース構造に配置することによって、ソース構造仕様の拡張を定義してもよい(MAY)。コース設計者はそのために、XML スキーマ定義を提供しなければならず(MUST)、これらのベンダ固有拡張を記述した仕様を人間が読める形で提供することがのぞましい(SHOULD)。これらの拡張はコース構造 XML を有効に保たなければならない(MUST)。インポート側の LMS はこれらの要素を無視してもよい(MAY)。したがって、拡張を作成するときは、LMS が追加の要素をサポートしない場合でもコースはそのまま使用できるような形で作成することがのぞましい(SHOULD)。

拡張の普及を促進するために、コース設計者は自らの仕様のためにフリーまたはオープンソースライセンスを選択し、その仕様を公開することがのぞましい(SHOULD)。

13.2 コース構造 XSD

ローカルでは v1/CourseStructure.xsd から、リモートでは https://w3id.org/xapi/profiles/cmi5/v1/CourseStructure.xsd から入手可能。LMS インポート機能のために、または LMS によってエクスポートのために作成されるすべてのコース構造はこの XSD に適合しなければならず(MUST)、"cmi5.xml" という名前でなければならない(MUST)。

14.0 コースパッケージ

6.1 節で定義するコースのインポートとエクスポートのために、LMS は以下の形式すべてをサポートしなければならない(MUST)。

  • Zip32
  • Zip64
  • コース構造 XML ファイル

14.1 ZIP 形式のコースパッケージ

2 つの ZIP ファイル形式は、https://www.pkware.com/support/zip-app-note で定義される仕様に従わなければならない(MUST)。ZIP ファイルを使用してコースをパッケージ化するとき、コースのルートディレクトリにコース構造 XML ファイルを含めなければならず(MUST)、コースの AU と関連付けられたメディアをコースに含めてもよい(MAY)。

  • ZIP コースパッケージに含めるメディアはすべて、コース構造 XML において相対 URL 参照を使用しなければならない(MUST)。
  • ZIP コースパッケージに含めないメディアはすべて、コース構造 XML において FQDN 付きの URL 参照を使用しなければならない(MUST)。
  • 以上のルールに従っている限り、完全修飾 URL と相対 URL を混在させてコースパッケージに含めてもよい(MAY)。

14.2 ZIP ファイルパッケージのないコース構造 XML

コース構造 XML ファイルが ZIP ファイルパッケージなしで提供される場合、すべての URL 参照は完全修飾でなければならない(MUST)。

15.0 コース構造の例

以下の 2 つの例では、地質学の分野において、コース設計者がいかに単純に、またいかに複雑にコースを構造化できるかを示す。タイトルと説明は Wikipedia の Earth Sciences Portal(https://en.wikipedia.org/wiki/Portal:Earth_sciences)から取得または翻訳される。

15.1 単純な例

単純な単一の AU コース構造は v1/examples/simple-cmi5.xml で入手できる。

15.2 複雑な例

複数の目標、ネスト構造のある複数のブロック、複数の AU ブロックなどを伴った複雑なコース構造は v1/examples/complex-cmi5.xml で入手できる。

15.3 拡張された例

拡張された単純なコース構造の例は v1/examples/extended-cmi5.xml で入手できる。この例では、v1/examples/extended-cmi5.xsd で定義された XML スキーマ定義に従ってベンダ固有メタデータを使用する。


使用許諾契約書

Copyright © 2012-2016 Advanced Distributed Learning (ADL) Initiative, U.S. Department of Defense, All rights reserved

Apache License, Version 2.0(以下「本ライセンス」)に基づき使用を許諾する。本ライセンスに適合しない形態で本ファイルを使用してはならない。本ライセンスのコピーは http://www.apache.org/licenses/LICENSE-2.0 で入手できる。

準拠法によって要求または書面にて合意された場合を除き、本ライセンスに基づいて配布されるソフトウェアは「現状有姿のまま」、明示的にも黙示的にも、いかなる種類の保証または条件も付帯することなく配布される。本ライセンスに基づく許可および制限を規定する具体的な文言については、本ライセンスを参照のこと。