丸/天侃 LRS LMS
xAPI / Tin Can to LRS to LMS
我正在尝试更好地理解 xAPI / Tin Can 的工作原理(以后我将称之为 xAPI)
之前我正在开发 SCORM 1.2 LMS,其中有 'records' 例如:Raw Attempts、Status 和每个内容包的 原始分数 。 LMS 想要升级到 xAPI,但我不确定 xAPI 工作原理背后的理论。
在 http://tincanapi.com/learning-record-store/ 上声明:
The data stored in an LRS can be accessed by LMSs, reporting tools, or other LRSs, and can be stored as individual learning records and/or entire transcripts
随后在 http://www.learningsolutionsmag.com/articles/1271/the-xapi-and-the-lms-what-does-the-future-hold 上还指出:
An LMS that has a built-in LRS supports the Experience API and also does all the other things LMS products do to manage learning delivery.
问题是,
LMS 和 LRS 之间的这种关系到底意味着什么?我需要能够从驻留在 LMS 外部 的应用程序设置所述 LMS 'records',如何使用 xAPI 执行此操作?
或者我完全误解了 xAPI LRS,它旨在完全取代 LMS 记录?
感谢您的帮助。也将非常感谢与此有关的信息资源的链接。
我不确定我是否完全理解这个问题,但无论如何都会尝试回答。
LRS 可以通过几种不同的方式与 LMS 相关联。我按照它们在当今 LMS 供应商中的普遍程度以及许多 LMS 供应商似乎遵循的顺序列出了这些。
LMS 可能会启动学习体验。这样做时,它可能会为学习体验提供一些安全凭证和 LRS 的端点 url,以便学习体验可以追溯到 LRS。这些学习经验可能是上传到 LMS 的打包内容或外部内容。
LMS 可能包含 LRS 作为 LMS 应用程序的一部分。参见,例如 here。 LMS 中包含的 LRS 应始终具有连接到外部 LRS 的功能。
LMS 可能会从 LRS 中提取数据,例如用于仪表板和报告或支持完成跟踪。
Activity 在 LMS 中,例如论坛、测验等可能会使用 Tin Can 到 LRS 进行跟踪。
从你的问题看来,第三个就是你要找的东西?这里的高级方法是将这些外部源输入 LRS,然后 push/pull 来自 LRS 的数据输入 LMS。
LRS 是学习者记录库,它是关于学习者做过或正在做的事情的一系列陈述。有人可以纠正我,但我相信 Activity 流是由社交媒体实体在 2006 年左右创建的,不同的实体 adopted/extended 它是为了某种电子学习标准。
如果我们解构这两个real quick(high level)-
LMS 是一个包含作业、报告、maintenence/admin 工具、论坛等的门户...有时是 LCMS(学习内容管理系统)和基于 Web 的一体化解决方案的其他变体。
AICC 是在 CBT(DOS - 磁盘操作系统)期间开发的,然后是浏览器(pre-XML)。 SCORM 是在 2001 年左右(post XML、JSON 之前)出现的,现在生活在浏览器的世界(HTML/CSS/JS、Macromedia/Adobe Flash 和其他)。
因此,对于 SCORM,您实际上是在捆绑小型便携式网站,后来我们能够扩展这些网站以使用内容媒体服务器或 CDN 来保持 'logic' 和 'assets' 外部化。 SCORM 基于通过 CAM/PIF 包共享培训,其中包含 manifest/table 内容,以及您的 HTML 文件,其中涵盖了规范的打包部分。第二部分是运行时。 LMS 将公开此运行时来管理学生尝试。这在某种程度上类似于 'statements',只是它是整个学生尝试数据或 CMI 对象。这包括:评分、交互、目标和其他数据点。 SCORM 2004 进一步扩展,使大部分规范成为强制性的,迫使 LMS 支持更丰富的序列和导航功能。这些通常被认为过于复杂,并且主要由于缺乏工具和支持而难以管理。但是人们确实使用它们。
通过 'endpoint' 的 LRS 很像您向服务器 posting 语句。有 XML 和 JSON 的实现。因此,当您部署 'app' 时,您正在传递一个 URL 以供其通信。
您实际上可以将一些以 SCORM 为中心的内容转换为 xAPI 语句,但请记住 xAPI 不控制打包、顺序和导航。所有这些现在都基于您的应用程序(网络、iOS、Android 等...)来管理它。它主要允许非 HTML 应用程序现在利用培训,因为 SCORM 主要是 JavaScript 通信标准。
所以您必须 pro/con 看看您正在尝试做什么,SCORM 或 xAPI、Activity Streams 或某些专有方法如何满足您的需求。
A xAPI 语句可能类似于:
{
actor: {
name: "Learner Name",
objectType: "Agent",
account: {
homePage: window.location.href,
name: "Learner ID"
}
},
verb: {
id: "http://adlnet.gov/expapi/verbs/completed",
display: {
"en-US": "completed"
}
},
object: {
id: "commonly a URI",
objectType: "Activity",
"definition": {
type: "http://adlnet.gov/expapi/activities/lesson",
"name": {
"en-US": "Some Name"
},
"description": {
"en-US": "Some Description"
}
}
},
result: {
completion: true,
success: true,
duration: 'PTHMS'
score: {
scaled: 0.9
}
}
}
SCORM,主要定位 LMS 运行时(API_1484_11 或 API),然后对 Initialize、Set/GetValue、Commit 和 Terminate 进行方法调用。
CMI 对象(对于 SCORM 2004)在填充后看起来更像这样。
https://gist.github.com/cybercussion/4675334
我建议您看一下 cmi5,一种用于定义 LMS、LRS 和学习内容之间通信的 xAPI 协议。本规范定义了内容模块已完成 and/or 通过的确定。
我学到了什么
最佳做法使用 LMS 进行内容交付,使用 LRS 进行分析。所有报告都通过 LRS,后者将跟踪 扩展数据 ,然后 LMS 将跟踪其 正常数据 (scorm1.2 等)。
让 LMS 做它现在做的事 - 课程完成、添加书签和向用户提供内容。然后使用 LRS 进行更复杂的数据捕获 - 哪条路径,交互持续多长时间,给出的答案,选择的答案选择 - 你的 "who did what how"。
'Most people' 使用 xAPI 放弃了他们的 LMS,现在一切都通过 LRS 完成,即他们放弃了混合 LMS/LRS 结构 - 为什么?因为这解耦了所有可能的学习媒介——应用程序、视频、面对面等,现在都可以在一个系统中进行跟踪,以形成一个更具凝聚力的分析/审计/报告架构。
部署 iPad 应用程序时,这会直接与 LRS 通信,并且 LRS 在任何时候都无法与 LMS 通信,除非您编写一些自定义 'web hooks' / 代码来绑定2 在一起 - 不推荐。
部署基于浏览器的学习时,您可以分别向 LMS 和 LRS 联合发送数据 - 当我们需要对学习者所做的内容进行额外分析时从 LRS 提取数据,然后让 LMS 保留其当前功能 - "are we done yet"。
总结
回答我原来的问题。 LMS 和 LRS 之间没有默认关系。如果内容在 LMS 之外 - 它永久在 LMS 之外 - 它不会以任何方式与之交互。考虑将 LMS 的相同数据字段模拟到您的 LRS 调用和来自 LRS 数据库的 运行 自定义报告中。
备注
感谢@Mark对这两个系统的详细解释,帮助我初步了解了这些系统。
此信息是从工作相关经验中获得的 - 抱歉,没有官方来源。
我正在尝试更好地理解 xAPI / Tin Can 的工作原理(以后我将称之为 xAPI)
之前我正在开发 SCORM 1.2 LMS,其中有 'records' 例如:Raw Attempts、Status 和每个内容包的 原始分数 。 LMS 想要升级到 xAPI,但我不确定 xAPI 工作原理背后的理论。
在 http://tincanapi.com/learning-record-store/ 上声明:
The data stored in an LRS can be accessed by LMSs, reporting tools, or other LRSs, and can be stored as individual learning records and/or entire transcripts
随后在 http://www.learningsolutionsmag.com/articles/1271/the-xapi-and-the-lms-what-does-the-future-hold 上还指出:
An LMS that has a built-in LRS supports the Experience API and also does all the other things LMS products do to manage learning delivery.
问题是,
LMS 和 LRS 之间的这种关系到底意味着什么?我需要能够从驻留在 LMS 外部 的应用程序设置所述 LMS 'records',如何使用 xAPI 执行此操作?
或者我完全误解了 xAPI LRS,它旨在完全取代 LMS 记录?
感谢您的帮助。也将非常感谢与此有关的信息资源的链接。
我不确定我是否完全理解这个问题,但无论如何都会尝试回答。
LRS 可以通过几种不同的方式与 LMS 相关联。我按照它们在当今 LMS 供应商中的普遍程度以及许多 LMS 供应商似乎遵循的顺序列出了这些。
LMS 可能会启动学习体验。这样做时,它可能会为学习体验提供一些安全凭证和 LRS 的端点 url,以便学习体验可以追溯到 LRS。这些学习经验可能是上传到 LMS 的打包内容或外部内容。
LMS 可能包含 LRS 作为 LMS 应用程序的一部分。参见,例如 here。 LMS 中包含的 LRS 应始终具有连接到外部 LRS 的功能。
LMS 可能会从 LRS 中提取数据,例如用于仪表板和报告或支持完成跟踪。
Activity 在 LMS 中,例如论坛、测验等可能会使用 Tin Can 到 LRS 进行跟踪。
从你的问题看来,第三个就是你要找的东西?这里的高级方法是将这些外部源输入 LRS,然后 push/pull 来自 LRS 的数据输入 LMS。
LRS 是学习者记录库,它是关于学习者做过或正在做的事情的一系列陈述。有人可以纠正我,但我相信 Activity 流是由社交媒体实体在 2006 年左右创建的,不同的实体 adopted/extended 它是为了某种电子学习标准。
如果我们解构这两个real quick(high level)-
LMS 是一个包含作业、报告、maintenence/admin 工具、论坛等的门户...有时是 LCMS(学习内容管理系统)和基于 Web 的一体化解决方案的其他变体。 AICC 是在 CBT(DOS - 磁盘操作系统)期间开发的,然后是浏览器(pre-XML)。 SCORM 是在 2001 年左右(post XML、JSON 之前)出现的,现在生活在浏览器的世界(HTML/CSS/JS、Macromedia/Adobe Flash 和其他)。 因此,对于 SCORM,您实际上是在捆绑小型便携式网站,后来我们能够扩展这些网站以使用内容媒体服务器或 CDN 来保持 'logic' 和 'assets' 外部化。 SCORM 基于通过 CAM/PIF 包共享培训,其中包含 manifest/table 内容,以及您的 HTML 文件,其中涵盖了规范的打包部分。第二部分是运行时。 LMS 将公开此运行时来管理学生尝试。这在某种程度上类似于 'statements',只是它是整个学生尝试数据或 CMI 对象。这包括:评分、交互、目标和其他数据点。 SCORM 2004 进一步扩展,使大部分规范成为强制性的,迫使 LMS 支持更丰富的序列和导航功能。这些通常被认为过于复杂,并且主要由于缺乏工具和支持而难以管理。但是人们确实使用它们。
通过 'endpoint' 的 LRS 很像您向服务器 posting 语句。有 XML 和 JSON 的实现。因此,当您部署 'app' 时,您正在传递一个 URL 以供其通信。 您实际上可以将一些以 SCORM 为中心的内容转换为 xAPI 语句,但请记住 xAPI 不控制打包、顺序和导航。所有这些现在都基于您的应用程序(网络、iOS、Android 等...)来管理它。它主要允许非 HTML 应用程序现在利用培训,因为 SCORM 主要是 JavaScript 通信标准。
所以您必须 pro/con 看看您正在尝试做什么,SCORM 或 xAPI、Activity Streams 或某些专有方法如何满足您的需求。
A xAPI 语句可能类似于:
{
actor: {
name: "Learner Name",
objectType: "Agent",
account: {
homePage: window.location.href,
name: "Learner ID"
}
},
verb: {
id: "http://adlnet.gov/expapi/verbs/completed",
display: {
"en-US": "completed"
}
},
object: {
id: "commonly a URI",
objectType: "Activity",
"definition": {
type: "http://adlnet.gov/expapi/activities/lesson",
"name": {
"en-US": "Some Name"
},
"description": {
"en-US": "Some Description"
}
}
},
result: {
completion: true,
success: true,
duration: 'PTHMS'
score: {
scaled: 0.9
}
}
}
SCORM,主要定位 LMS 运行时(API_1484_11 或 API),然后对 Initialize、Set/GetValue、Commit 和 Terminate 进行方法调用。 CMI 对象(对于 SCORM 2004)在填充后看起来更像这样。 https://gist.github.com/cybercussion/4675334
我建议您看一下 cmi5,一种用于定义 LMS、LRS 和学习内容之间通信的 xAPI 协议。本规范定义了内容模块已完成 and/or 通过的确定。
我学到了什么
最佳做法使用 LMS 进行内容交付,使用 LRS 进行分析。所有报告都通过 LRS,后者将跟踪 扩展数据 ,然后 LMS 将跟踪其 正常数据 (scorm1.2 等)。
让 LMS 做它现在做的事 - 课程完成、添加书签和向用户提供内容。然后使用 LRS 进行更复杂的数据捕获 - 哪条路径,交互持续多长时间,给出的答案,选择的答案选择 - 你的 "who did what how"。
'Most people' 使用 xAPI 放弃了他们的 LMS,现在一切都通过 LRS 完成,即他们放弃了混合 LMS/LRS 结构 - 为什么?因为这解耦了所有可能的学习媒介——应用程序、视频、面对面等,现在都可以在一个系统中进行跟踪,以形成一个更具凝聚力的分析/审计/报告架构。
部署 iPad 应用程序时,这会直接与 LRS 通信,并且 LRS 在任何时候都无法与 LMS 通信,除非您编写一些自定义 'web hooks' / 代码来绑定2 在一起 - 不推荐。
部署基于浏览器的学习时,您可以分别向 LMS 和 LRS 联合发送数据 - 当我们需要对学习者所做的内容进行额外分析时从 LRS 提取数据,然后让 LMS 保留其当前功能 - "are we done yet"。
总结
回答我原来的问题。 LMS 和 LRS 之间没有默认关系。如果内容在 LMS 之外 - 它永久在 LMS 之外 - 它不会以任何方式与之交互。考虑将 LMS 的相同数据字段模拟到您的 LRS 调用和来自 LRS 数据库的 运行 自定义报告中。
备注
感谢@Mark对这两个系统的详细解释,帮助我初步了解了这些系统。
此信息是从工作相关经验中获得的 - 抱歉,没有官方来源。