Category Archives: SCORM1.2概要

SCORM1.2概要

SCORM1.2 学習状態 lesson_statusを理解する

学習者の学習状況は、cmi.core.lesson_status の値によって決定されます。
lesson_status の値は、の6つの状態(not attempted、incomplete、completed、passed、failed、browsed)があります。SCOの起動から終了までのフローを示すと、次のような感じになります。

lesson_status の学習状態は、大きく2つのグループに分類されます。

  • 学習進捗(進行)を示す、incomplete、completed
  • 学習理解を示す、passed、failed

SCORM2004では、進捗(進行)と理解はcmi.completion_status、cmi.success_status の2つに分離され組み合わせにより状態のバリエーションが増えますが、SCORM1.2では、cmi.core.lesson_status 1つでやりくりしていきます。

ここでは、フローの流れと状態の意味を掴んでください。

not attempted

SCOが起動するときセットされる初期値で、LMS側で自動的にセットされます。学習判断をする値ではありません。

incomplete

学習進行が未完了であることを示し、「学習中(学習途中)」と解釈されることがあります。
コンテンツ制作者は、SCOのInitialize処理後、incompleteをセットすることで、学習が進行していることを表現します。

completed

学習進行が完了(終了)したことを示します。
必要な画面遷移など一通り終えたと判断する地点で completed をセットします。学習者の理解度を計るものではないため completed がセットされる状態まで辿り着けるかどうかが問題で、最後までやったかどうかを判断するものです。

passed

学習を理解した、合格であることを示します。
テストの採点結果などを元にして、合格・不合格状態を決定します。

failed

学習を理解していない、不合格であることを示します。
テストの採点結果などを元にして、合格・不合格状態を決定します。

browsed

LMSが閲覧モードのとき、セットされる値です。
LMSが、LMS-RTE3であっても、browsedが省かれているものもあり、また無くても問題ないので、ほとんど利用されていないと思います。

SCORM1.2概要

SCORM1.2 コンテンツモデルの表記

コンテンツモデルの構造を仕様書などで図で表現することがあると思います。ここでは1つの例として、このような表現の仕方があることを覚えておくといいでしょう。(なにか試験を受ける方は、必須です)

シンプルな構造

学習順序 項目1 → 項目2 → 項目3

図は、左から描いていきます。このコンテンツは、コースウェアが起動すると、項目1の学習ページ、もしくは項目が何も選択されていない空白ページとなります。また、各項目は、SCORM1.2では、アイテムと呼ぶことがあります。これは、マニフェストファイル内でitem要素として記述しているためです。SCORM2004では、アクティビティと呼んだりします。

なんとなく、ツリーを右に倒してしまうと、順番が逆になってしまうため気をつけてください。

階層構造を持つケース

SCORM1.2では、親子構造の親に対しても、コンテンツを割り当てることができますが、ここでは、セクション1、2には、割り当てていません。基本的に親に対しては、コンテンツは割り当てないほうが良いと思います、というのも、SCORM2004では廃止されて、割り当てることができなくなっているためです。

学習順序 はじめに → 項目1 → 項目2 → 項目3 → 項目4 → 項目5 → 項目6

SCORM1.2では、学習順序がリニアに進むため、把握することが容易ですが、SCORM2004では、シーケンシングにより複雑な動作をすることがあります。

SCORM1.2概要

SCORM1.2 パッケージングの作成方法

作成したSCORMコンテンツをLMSにインポートするとき、インポート仕様がLMSによって、バラバラだと、せっかく作成しても動作させることができません。SCORMでは、パッケージングについてもルールが決められており、パッケージ交換ファイル Package Interchange File (PIF) という仕様が決められています。

PIFとは

データ交換用に用いられるファイルをPIF(ぴふ)といいます。学習コンテンツは、マニフェストファイルやHTMLファイルなど、複数のファイルから構成されていると思います。これらを、1つのzip形式のファイルにまとめたものがPIFとなります。※ 仕様上では、ZIP形式だけでなく、jar、cab、tarなども認められているようですが、zip以外の形式をサポートしているLMSは見たことがありません。

PIFファイルの作り方

単純にzip形式でまとめるだけですが、注意するところは、解凍したさい必ずimsmanifest.xmlファイルが、解凍したディレクトリ位置に来るようにしてください。そのため、構成ファイルすべてを選択状態にして、zipファイルを作成します。上位のフォルダ(scormコンテンツ)を圧縮してLMSにインポートしても認識されませんので、注意してください。

ファイル名は、何でもいいですが、半角英数のみで指定するのが無難でしょう。

そして、作成したファイルは、LMSにインポートできるようになります。

ちなみに、LMSの中でマニフェストファイルなどが格納されるディレクトリの名称は、zipファイルの名称がそのまま利用されたり、また、自動的に連番が割り当てられるなどLMSによってバラバラです。

SCORM1.2概要

SCORM1.2 マニフェストファイルの役割

コースウェアは、SCO(アセット)の集合から構成されます。これらの学習リソースは、章立てとなる目次や階層情報を持たないため、これだけでは、コースウェアとして成り立ちません。構造化した設計図となるものが必要です。

この役割を担うのが、マニフェストファイルです。

マニフェストファイルの役割

マニフェストファイルは、大きく2つの役割を持ちます。

  • コンテンツモデル(目次)の構造を定義する
  • コンテンツモデルに対応した、学習リソース(SCO、アセット)のファイルパスを定義する

この情報をLMSに伝えることで、目次を表示させたり、学習項目を選択したら、対応するSCO(アセット)を起動させることができるようになります。

マニフェストファイルの構造

マニフェストファイルは、XMLで記述します。学習項目が1つだけの、マニフェストは、次のように書くことができます。

マニフェストファイルのファイル名は必ず、imsmanifest.xml にします。ここで注目したいところは、カラー枠の部分です。マニフェストファイルの構造は、<organizations> と <resources> に分かれます。

organizations
コンテンツモデルを定義します。ここで、コースウェアの目次を作り、コースウェア名称、学習項目、階層構造などを定義します。item要素を入れ子にすることで、章節項といった階層構造を作ることもできます。

resources
コースウェアで利用するファイルを定義します。<resource href="sco01.html">は、学習項目が選択されたときに、起動するファイルです。ほかに利用されるファイルは、<file href>に記載します。


organizationsとresourcesは、独立しています。そのため、対応付けをしなければ、項目を選択しても、どのファイルを起動していいのか分りません。その役割を担うのが、identifierrefとidentifierの値です。同じ値(res-1)にすることで、一致する学習リソースのファイル(sco01.html)を起動します。

また、複数の学習項目を作り、参照先をすべて同じidentifier(同じファイル)にすることもできます。このサンプルはシンプルなものですが、複雑な記述をすることで、さまざまな制御を加えることもできます。

ちなみに、スキーマ定義というのは、マニフェストのXML構造を定義した仕様書みたいなものです。XML文章を解釈するエディタなどは、スキーマの内容を参照して、記述したXML文章の妥当性をチェックすることができます。それで、事前にエラーがないか確認することができます。LMSもスキーマを参照しているものがあるかもしれません。

RELOAD Editor

XML文章を手書きで書くことは、比較的 手間が掛かる作業です、オープンソースのRELOAD Editorというソフトを利用すると、比較的簡単に記述することができます。また、日本語化のパッチも有志の方で行われ、ある程度日本語化されます。
ソースコードに直接埋め込まれている文言は、英語のままのようです。
RELOAD Editorには、Eclipseをベースにしたものと、しないClassic版があります。好みで利用するといいでしょう。


Eclipse版 RELOAD Editor

RELOAD Editor
http://www.reload.ac.uk/

The Classic RELOAD Editor 日本語化
http://sourceforge.jp/projects/reloadeditor-jp/

SCORM1.2概要

SCORM1.2 データモデル要素一覧

SCORM1.2 ランタイム環境のデータモデル要素は、49個あります。LMSGetValue()、LMSSetValue()の引数として利用します。

SCORM1.2は、LMSに対して3つの適合性カテゴリ(LMS-RTE1, LMS-RTE2, LMS-RTE3)というものがあります。これは、データモデル要素がどのくらいLMSに実装されているか分類したものです。

  • LMS-RTE1 : LMSは、必須条件のデータモデル要素をすべて実装している
  • LMS-RTE2 : LMSは、必須条件および、1つ以上、オプションのデータモデル要素を実装している
  • LMS-RTE3 : LMSは、必須条件および、オプションのデータモデル要素をすべての実装している

必須およびオプションのデータモデル要素を1つでも実装すれば、LMSは、LMS-RTE2となります。

No
実装条件
データモデル要素
1
必須
cmi.core._children
LMSがサポートするcmi.core要素のリストを取得する
必須
cmi.core.student_id
学習者のIDを取得する
必須
cmi.core.student_name
学習者の氏名を取得する
必須
cmi.core.lesson_location
SCOを終了時、現在の位置から、再度、学習開始できるように、現在のSCOの位置を登録
学習再開時、終了時のSCOの位置から学習を始められるように、SCO終了時の位置を取得する
必須
cmi.core.credit
履修記録が上書き可能(credit)か不可能(no-credit)か、状態を取得する
必須
cmi.core.lesson_status
学習状況のステータスの登録 / 取得する
必須
cmi.core.entry
現在のSCOが、初回受講か中断から再開したものか、すでに完了しているか、状態を取得する
必須
cmi.core.score._children
LMSがサポートするcmi.core.score要素のリストを取得する
必須
cmi.core.score.raw
学習者の得点を登録 / 取得する
10
必須
cmi.core.total_time
個別のSCOで費やした学習時間の総計を取得する
11
必須
cmi.core.exit
SCOを終了するときの理由を登録 (タイムアウト、一時中断、ログアウト、正常終了)
12
必須
cmi.core.session_time
1つのSCOに費やした学習時間を登録
13
必須
cmi.suspend_data
SCOごとに学習再開時必要となる情報を登録
学習再開時、登録した情報を取得する
14
必須
cmi.launch_data
SCOの起動時にマニフェストファイル内の<adlcp:datafromlms>要素を取得する


No
実装条件
データモデル要素
15
オプション
cmi.core.score.max
最高得点の設定を登録 / 取得する
16
オプション
cmi.core.score.min
最低得点の設定を登録 / 取得する
17
オプション
cmi.core.lesson_mode
SCOの動作モードの取得する
18
オプション
cmi.comments
学習者が記述したコメント(文字列)を登録 / 取得する
19
オプション
cmi.comments_from_lms
LMSからのコメントや注釈を取得する ( ”” 空文字が多い)
20
オプション
cmi.objectives._children
LMSがサポートするcmi.objectives要素のリストを取得する
21
オプション
cmi.objectives._count
LMSが保持している現在の学習目標の数を取得する
22
オプション
cmi.objectives.n.id
n番目のSCOの学習目標の識別子を設定 / 取得する
23
オプション
cmi.objectives.n.score._children
n番目のSCOが使用しているcmi.objectives.n.score要素のリストを取得する
24
オプション
cmi.objectives.n.score.raw
n番目のSCOの学習目標に対する学習者の素点を設定 / 取得する
25
オプション
cmi.objectives.n.score.max
n番目のSCOの学習目標の最高得点を設定 / 取得する
26
オプション
cmi.objectives.n.score.min
n番目のSCOの学習目標の最低得点を設定 / 取得する
27
オプション
cmi.objectives.n.status
n番目のSCOの学習目標の試行後の状態(合格、完了、不合格、未完了、未実施、閲覧済み)を登録 / 取得する
28
オプション
cmi.student_data._children
LMSがサポートするcmi.student_data要素のリストを取得する
29
オプション
cmi.student_data.mastery_score
lesson_statusの状態を完了 / 習得に変更するために必要な合格得点<adlcp:masteryScore>を取得する
30
オプション
cmi.student_data.max_time_allowed
SCOに設定された制限時間を取得する
31
オプション
cmi.student_data.time_limit_action
制限時間を越えた場合、SCOを終了 / 継続させるか、メッセージを表示するか動作<adlcp:timelimitaction>を取得する 
32
オプション
cmi.student_preference._children
LMSがサポートするcmi.student_preference要素のリストを取得する
33
オプション
cmi.student_preference.audio
音量を制御するために音量値の設定 / 取得する
34
オプション
cmi.student_preference.language
SCOが多言語で作成された場合、言語の設定 / 取得する
35
オプション
cmi.student_preference.speed
コンテンツの表示速度の値を設定 / 取得する
36
オプション
cmi.student_preference.text
ナレーション(音声)とキャプションテキストの表示モードを設定 / 登録
(テキストなし、音声あり / テキストあり、音声あり / テキストあり、音声なし)
37
オプション
cmi.interactions._children
LMSがサポートするcmi.interactions要素のリストを取得する
38
オプション
cmi.interactions._count
LMSが保持している現在の設問の数を取得する
39
オプション
cmi.interactions.n.id
n番目の設問に識別子(ID)を設定
40
オプション
cmi.interactions.n.objectives._count
n番目の学習目標に存在する設問の数を取得する
41
オプション
cmi.interactions.n.objectives.m.id
n番目の学習目標内のm番目の設問に識別子を設定
42
オプション
cmi.interactions.n.time
n番目の設問を解答した時刻を設定
43
オプション
cmi.interactions.n.type
n番目の設問の形式を設定 true-false(真偽)、choice(多肢選択)、fill-in(穴埋め)
long-fill-in(長文入力)、matching(一致)、performance(行動手順)
sequencing(順序)、likert(調査【そう思う・やや思う、思わない】)、numeric(数値)、other(その他)
44
オプション
cmi.interactions.n.correct_responses._count
n番目の設問の正答数を取得する
45
オプション
cmi.interactions.n.correct_responses.m.pattern
n番目の設問に正答を設定
46
オプション
cmi.interactions.n.weighting
n番目の設問に配点(重み付け)を設定
47
オプション
cmi.interactions.n.student_response
n番目の設問に対する学習者の解答を登録
48
オプション
cmi.interactions.n.result
n番目の設問の正誤結果 correct(正しい)、wrong(誤り)、unanticipated(予期しない)、neutral(どっちつかず)、x.x(CMIDecimal)
49
オプション
cmi.interactions.n.latency
n番目の設問の解答開始から終了までに要した時間を登録

SCORM1.2に対応しているLMSは、LMS-RTE3またはLMS-RTE2が多いと思います。No19のcmi.comments_from_lmsは、目的がはっきりしないため、LMSは意味のない空文字を返すことで、「とりあえず要素を実装」してLMS-RTE3の条件を満たしているように見えます。そのため、実装してないLMSは、ほかの要素を実装していてもテスト要件上、LMS-RTE2となります。

SCORM1.2概要

SCORM1.2 SCOからAPIアダプタへの接続の概要

SCOはAPIアダプタのパスが分らない

APIアダプタは、SCOとサーバー側のLMSを結びつける、ブラウザ内で動作するLMSの一部です。APIアダプタは、JavaアプレットやJavaScript(AJAX)などで実装され、SCOからの要求を受け取り、サーバー側にデータを送信、サーバー側のデータをSCOに戻す役割を担っています。

APIアダプタには、LMSInitialize()などデータモデル要素を実行するメソッドが格納されています。SCOはJavaScriptを利用して、そのメソッドを実行します。

しかし、困ったことに、APIアダプタの位置は、必ず2つ上に存在するなどLMS共通として決まっていません。LMSによって配置場所が異なり、SCOからLMSInitialize()などを実行するパスが異なります。そのため、SCOは、パスが分からないためメソッドを実行することができません。

APIアダプタのパスを調べる

そこでAPIアダプタは、SCOにパスを取得しやすくするために、目印を作りました。これがAPIオブジェクトです。「API」とうい名称のオブジェクトで、APIアダプタと同じウインドウ階層にあります。つまりこのオブジェクトのパスが分れば、APIアダプタのメソッドが実行できるということです。

仕様書では、APIオブジェクトは、DOMオブジェクトであると記載されていますが、Windowオブジェクトと言った方が分かりやすいでしょう。Windowオブジェクトは、frameタグのname属性、JavaScriptのグローバル変数です。

LMSは、フレームで分割されていたり、複数ウインドウで構成されることがあります。APIオブジェクトは、ブラウザウインドウ内なら、どのウインドウでも良いという訳ではなく、必ずSCOからルートウインドウへ向かう親ウインドウに配置しなければなりません。SCOは、APIオブジェクトを見つけるために、親ウインドウ内に、APIオブジェクトが存在するか確認します。存在しなければ、さらに親のウインドウにないか、繰り上がり探していきます。

そして、SCOは、APIオブジェクトを探し出すと、パスを取得しデータモデル要素のメソッドを実行できるようになります。

こうした処理は、JavaScriptで自身でコーディングしていくか、ADLなどで配布されているライブラリを利用していきます。ライブラリを利用する場合、自動的に処理してくれるため、中でどう動いているのかは、概略を知っている程度で十分だと思います。

SCORM1.2概要

SCORM1.2 APIアダプタの状態遷移とSCOのメソッド

SCOとLMS間のデータのやり取りは、「SCORM1.2 ランタイム環境の概要」で説明したように、SCOは、APIアダプタに接続してデータの送受信を行います。SCOは、APIアダプタに対して次のJavaScriptのメソッドを利用することができます。これらのメソッドは、LMSが用意するものです。

APIメソッド
意味
LMSInitialize() LMSとの通信セッションを開始する
LMSFinish() LMSとの通信セッションを終了する
LMSGetValue() LMSから値を取得します
LMSSetValue() LMSに値をセットします
LMSCommit() すべてのデータを永続化(サーバー側に保存)します
LMSGetLastError() 最後のAPIの呼び出しに起因するエラーコードを返します
LMSGetErrorString() 指定されたエラーコードの文字列を返します
LMSGetDiagnostic() 最後に発生したエラーについての詳細情報を返します



APIアダプタとSCOとの通信は、3つの状態遷移からなります。

  • 未接続
  • 接続中
  • 切断

それぞれの状態で、利用できるメソッドが異なります。

仕様書では、Not Initialized、Running、Terminatedという風にAPIアダプタの状態遷移が分かれています。
findAPI() は、擬似コードです。APIアダプタのメソッドではありません。


未接続 APIアダプタへの接続処理

学習者がSCOを選択しようとしたとき、そのSCOはAPIアダプタに対して、まだ未接続状態です。接続状態になるには、次の2つの処理が必要です。

  • APIアダプタのJavaScriptの階層パスを取得する
  • LMSInitialize()を実行して接続を確立する

SCOがAPIアダプタに接続しようとするとき、まだLMSInitialize()を実行することはできません。実行するうえで、SCOはLMSのLMSInitialize()メソッドの階層パスが分らないためです。そのため、階層パスを調べ、場所が分った段階で、LMSInitialize()を実行します。そうすることで、「未接続」から「接続中」へと状態を遷移させることができます。

SCORMコンテンツを作成するうえで、APIアダプタのパスの取得は、つまづき易いポイントだと思います。


通信セッション中

「接続中」の状態になったら、LMSGetValue()、LMSSetValue()を使いLMSとデータのやり取りができるようになります。どのようなデータを取得、セットするかは、データモデル要素を利用していきます。

とくに、LMSSetValue()は、APIアダプタに対して値をセットするもので、クライアント側の処理となります。必ずしもサーバー側にデータがセットされるとは限りません。そのため、きちんとサーバー側にデータを渡すように、LMSSetValue()を実行した後に、LMSCommit() を実行すると、その時点、クライアント側に溜まっている情報が、サーバ側に渡ります。プッシュする確定ボタンみたいなものです。

通信セッションの終了処理

SCOを終了するときは、LMSFinish()を実行して「切断」します。仕様上では、LMSFinish()を実行すると内部では、LMSCommit()が自動的に実行されます。そのため、むやみに?データをセットしたからといって、LMSCommit()をする必要はそれほどありません。※ただLMSのデフォルトの動作は、LMS依存を引き起こす原因に繋がるため、安心ではありますが。

「切断」状態は、LMSFinish()を実行したときの戻り値により実行できるメソッドです。

エラー情報の取得

LMSGetValue()などを実行したとき、存在しないデータモデル要素や、型が間違っていると、LMSは、エラーコードを戻します。LMSGetLastError()、LMSGetErrorString()、LMSGetDiagnostic()の引数に、そのエラーコードを渡すと、詳細情報など知ることができます。

SCORM1.2概要

SCORM1.2 コンテンツアグリケーションモデルの概要

コースウェアの作成は、一度の作り切りで終わるものではなく、別のコースウェアを作成するとき、以前作成した学習資源を再利用できれば利便性が上がると思います。SCORMは、コースウェアの概念、学習資源の管理支援、そしてコンテンツの実装に関して、コンテンツモデル、メタデータ、コンテンツパッケージに分類し、これらを総称してコンテンツアグリケーションモデルと呼んでいます。

コンテンツアグリケーションモデルの理解は、再利用するにはどうすれば効率的か?ということを考えると、なぜSCORMは、そのような仕組みなのか、あれこれ注文をつけてくるのか見えてくるかもしれません。


コンテンツモデル

SCORMのコースウェアは、学習資源(SCO、アセット)の集合から成り立っています。新規に学習資源を作ることもあれば、既存のものを再利用して組み立てることもできます。しかし、1つの学習資源が、ほかの学習資源に依存していると、芋づる式に無関係なものまで含まれる危険性があります、そうすると再利用の利便性は落ちてしまいます。そのため、学習資源は、資源間の結びつきは弱く、独立性が高いことが求められます。コースウェアの設計者は、いつか再利用されることを意識して作る必要があります。

こうして作られた学習資源の集合は、どのような順番で提示するか学習の順番を決めます。フラットな並びでも、また1つの学習項目でも構いませんが、本の目次のような、章節項といった入れ子の階層構造も作ることができます。この体系化された構造のことをコンテンツモデルと言います。SCORM1.2では、学習の進行は、上から下へ(章→節→項)とリニアに進んでいきます。

コンテンツモデルは、体系化した目次のような項目のモデルを示しただけです。学習資源との結びつきは、含まれません。コンテンツモデルに、学習資源としてSCOやアセットを集約した状態のことを、コンテンツアグリケーションと言います。



メタデータ

多くのコースウェアを作成して、学習資源が増えてきたら、再利用して新たなコースウェアを作ることは自然なことだと思います。まだ学習資源の数が少ない場合、何がどこにあるのかといった管理で困ることはないかもしれませんが、もし、それが数千、数万とある場合、さまざまなサーバーに分散されている場合、必要な学習資源を見つけるには、どうしたらいいでしょうか?

SCORMは、そのようなことに対して支援するため、1つの画像からコースウェアに対して、メタデータをつける事ができます。メタデータとは、コンピュータが認識できる対象物への意味づけ(属性)です。

例えば、コンピュータは、一枚の画像から、その画像が示す内容までは分かりません。何の絵が描いてあるかまでは分からないわけです。ウサギの絵が必要になった場合、画像に「ウサギ」という意味づけ(属性)が設定されていれば、検索によりその画像を見つけ出すことができます。

SCORMのメタデータは、学習コンテンツの特徴などを示した意味づけとなります。学習コンテンツは、どの言語(Japanese、English・・)で作られたか、シミュレーション型なのかドリル型なのかといった、情報を持たせることができます。

SCORMのメタデータには、割り当てる種類により3種類に分かれます。

  • コンテンツアグリゲーションメタデータ
  • SCOメタデータ
  • アセットメタデータ

コンテンツアグリゲーションメタデータは、1つのコースウェア全体に対する情報です。SCO、アセットのメタデータは、コースウェアを構成する学習資産に対する情報となります。例えば、映像ファイルがある場合、アセットメタデータとして講義タイトル、作成日などを付けることができます。

メタデータは、SCORMの学習コンテンツの動作に直接関係しないため、記述しなくてもLMS上で学習コンテンツは動作します。LMSによっては、メタデータの情報を管理画面に表示するものもあるかもしれませんが、コンテンツリポジトリなどデータベースでコンテンツを管理することで、メタデータの便利さが実感できるかもしれません。

そのため、そのような検索システムを利用しない場合、あまりメリットが享受できないため、メタデータの記述は、省略することもあると思います。

コンテンツパッケージ

コンテンツパッケージは、コンテンツモデルやメタデータの具体的な記述を行い、さまざまなLMSで実行可能なコースウェアのフォーマットを提供することです。

SCORMのコースウェアの作成は、学習資源(SCO、アセット)と、マニフェストファイルに分かれます。マニフェストファイルは、コンテンツモデルなど構造に関するものをXML形式で記述したものです。

学習資源は、基本的に個々が独立しているため、それらをどのように繋げて、制御をしたいのか、そういった記述は、すべてこのマニフェストファイルに記述します。マニフェストファイル1つで同じ学習資源でもコンテンツの挙動はまったく違うものになります。また、このファイルが無ければLMSは、コースウェアとして認識することができません。それだけとても重要なファイルです。

こうして作られたコースウェアは、最後に圧縮フォーマットのZIP形式で1つのファイルにまとめます。このファイルを特にPIF(ぴふ)ファイルといい、LMSにコースウェアを登録するときのファイル形式となります。

SCORM1.2概要

SCORM1.2 ランタイム環境の概要

ランタイム環境

ランタイム環境は、学習コンテンツとLMSとの間で行われる処理に関する内容です。
次の3つから構成されます。

  • 学習コンテンツの起動の仕方
  • SCOとLMSとの間でのデータ送受信の仕方 APIの利用
  • データ送受信で利用される、データモデル要素の提供

LMSは、学習コンテンツを起動するとき、コンテンツアグリケーションモデルのマニフェストファイルに記述されるURLを参照します。

学習コンテンツは、SCOなのかアセットなのかで大きく処理が変わります。SCOの場合、LMS(具体的には、APIアダプタ)に対して、APIを利用して情報の送受信を行うことができます。そのなかで、どのような情報を伝えることができるかを定義したものが、データモデル要素です。

データモデル要素には、学習時間や学習完了などに関する情報が定義されています。そういった要素を組み合わせて、必要な処理を組み立てていきます。

アセットの場合は、そもそもLMSに対してデータの送受信はできません。ブラウザに表示するだけです。※ただしLMS側は、何もデータ送信しない学習コンテンツは、デフォルトの挙動で学習完了などのフラグが立ちます。

このような処理は、次のように表現することができます。おそらく気になるところは、APIアダプタからLMSに対してのデータ送受信でしょうか。この部分は、SCORMでは規定されておらず、LMSの独自仕様として自由に実装することができます。そのため、この部分は、コンテンツ制作者は気にする必要はありません。APIアダプタは、SCOに対してインターフェースの役割をもち、コンテンツ制作者は、APIアダプタとのやりとりだけを考えればいいわけです。

例えば、データモデル要素として仮に○○という情報を、LMSに送信する場合、APIの規定としてLMSSetValueというメソッドを利用します。この引数にデータモデル要素を渡します。SCOから、APIアダプタに渡された○○は、LMSにバトンタッチされていきます。

このように、ランタイム環境は、学習コンテンツの起動からデータの送受信といった一連の動作に関する内容が規定されています。

SCORM1.2概要

SCORM1.2の構成要素

SCORM1.2の仕様構成は、ランタイム環境(RTE あーるてぃーい)とコンテンツアグリケーションモデル(CAM きゃむ)の2つの構成に分けることができます。

学習コンテンツとLMSとの間で、位置関係を大まかに示すとつぎのようになります。

まずこの2つが、どのあたりのことを意味しているのか把握するといいでしょう。