Продолжим разбор спецификаций xAPI/CMI5 для хранения и анализа данных обучения персонала. В последние годы появилось достаточно большое количество статей на тему использования рассматриваемых спецификаций (например - https://levellab.ru/blog/xapi-1). Вместе с тем, существующие публикации описывают использования спецификаций, на мой взгляд, очень поверхностно. Да, я согласен с тем, что использования xAPI для отчета о просмотре курса презентации или теста является достаточно тривиальной задачей. Особенно когда нужно просто получить информацию в виде затраченного времени и оценки. В предыдущей статье я уже писал, что при таком подходе, как мне кажется, использование xAPI может не дать никакого значительного преимущества.
Именно поэтому я и решил "копнуть поглубже" и показать как можно использовать спецификацию xAPI на 100% мощности, в т.ч. не только в хранении, но и в анализе данных. Кроме того, постараюсь практически объяснить разницу между xAPI и CMI5 в контексте того, как CMI5 формализует использование xAPI.
В качестве примера будем использовать имитационный тренажер для обучения персонала, например https://youtu.be/zewU3JHZCfg
Теперь давайте посмотрим отчет по форме CMI5 / xAPI. При запуске нашего ресурса (через плагин для Moodle или через очень удобный для проверки сервис), мы автоматически получаем запись в LRS с глаголом "http://adlnet.gov/expapi/verbs/launched". Обратите внимание, что запись выполняется не нашей с Вами программой, а сервисом, который производит запуск (например -moodle). Последние 4 записи (id, authority , stored, timestamp) формируются уже самой LRS. Также информация о регистрации (registration: "fb13ae65-d9cf-469d-8d89-e41fd61c842d"), LRS endpoint и авторизации передается непосредственно в наш ресурс, что дает возможность сделать запрос в LRS и найти запись "launched" даже, к примеру, из exe-файла. Таким образом мы можем получить информацию относительно обучаемого, команде и т.д. В принципе, мы можем и сами выполнить данную запись, если например, запускаем exe-файл без LMS системы.
Statement "launched"
{
actor: {
mbox: "mailto:scorm@lcontent.ru",
name: "Петров Сергей Александрович",
objectType: "Agent"
},
verb: {
id: "http://adlnet.gov/expapi/verbs/launched",
display: {
en-US: "launched"
}
},
context: {
registration: "fb13ae65-d9cf-469d-8d89-e41fd61c842d",
contextActivities: {
parent: [
{
objectType: "Activity",
id: "https://lms.lcontent.ru/pluginfile.php/3678/mod_resource/content/76/T.html"
}
]
}
},
object: {
id: "simulation://xapitest",
definition: {
name: {
en-US: "Пример тренажера"
},
description: {
en-US: "Пример тренажера полное описание"
}
},
objectType: "Activity"
},
id: "d7a3b941-10a8-412b-912c-50cc89017f1c",
authority: {
objectType: "Agent",
account: {
homePage: "https://lrs.lcontent.ru:443",
name: "maxxxxr@gmail.com"
}
},
stored: "2021-04-07T14:40:58+00:00",
timestamp: "2021-04-07T14:40:58+00:00"
}
Первой записью после запуска тренажера, мы обязаны (cmi5) прописать утверждение "initialized", которое указывает, что действие было начато. Обратите внимание на registration, которое совпадает с ранее приведенным launched, что позволяет связывать эти записи в единую последовательность. В данном утверждении целесообразно уже использовать расширения, например http://lcontent.ru/xapi/weatherConditions: "rainy", чтобы сообщить о погодных условиях в симуляторе или http://lcontent.ru/xapi/Device: "HTC VIVE" - для уточнения, что используется VR-шлем. Также мы используем уточнения про инструктора и про групповой режим обучения. Для использования CMI5 на данном шаге мы должны получить шаблон утверждения и в дальнейшем добавлять нужные поля уже на его основе.
Statement "initialized"
{
actor: {
mbox: "mailto:user@lcontent.ru",
name: "Петров Сергей Александрович",
objectType: "Agent"
},
verb: {
id: "http://adlnet.gov/expapi/verbs/initialized",
display: {
en-US: "Indicates that the activity was started.",
ru-RU: "Указывает, что действие было начато."
}
},
object: {
id: "simulation://xapitest",
objectType: "Activity",
definition: {
name: {
ru-RU: "ИНК1"
},
description: {
ru-RU: "ИНК1"
}
}
},
context: {
registration: "fb13ae65-d9cf-469d-8d89-e41fd61c842d",
extensions: {
https://w3id.org/xapi/cmi5/context/extensions/sessionid: "fb13ae65-d9cf-469d-8d89-e41fd61c842d",
https://w3id.org/xapi/cmi5/context/extensions/masteryscore: 0.860000014305115,
https://w3id.org/xapi/cmi5/context/extensions/launchurl: "https://lcontent.ru",
https://w3id.org/xapi/cmi5/context/extensions/launchmode: "Normal",
http://lcontent.ru/xapi/weatherConditions: "rainy",
https://w3id.org/xapi/acme/extensions/training-location: "tyumen",
http://lcontent.ru/xapi/Device: "HTC VIVE"
},
contextActivities: {
category: [
{
objectType: "Activity",
id: "https://w3id.org/xapi/cmi5/context/categories/cmi5"
}
]
},
platform: "lms.lcontent.ru",
instructor: {
objectType: "Agent",
mbox: "mailto:MaxGammer@gmail.com",
name: "Anna Gammer"
},
team: {
objectType: "Group",
mbox: "mailto:group@gmail.com",
name: "Commander ken"
}
},
authority: {
objectType: "Agent",
account: {
homePage: "https://lrs.lcontent.ru:443",
name: "maxgammer@gmail.com"
}
},
stored: "2021-04-07T09:35:50+00:00",
timestamp: "2021-04-07T09:35:50+00:00",
id: "263d5e25-c26f-46e0-8199-b59db7d11aaf"
}
completed - указывает, что субъект закончил или завершил действие в обычном режиме. Обратите внимание на записи "https://w3id.org/xapi/cmi5", они обязаны быть, если Вы хотите, чтобы данные были записаны как CMI5. Без этих записей это не будет успешно. Формат xAPI не накладывает таких ограничений.
Statement "completed"
{
actor: {
mbox: "mailto:user@lcontent.ru",
name: "Петров Сергей Александрович",
objectType: "Agent"
},
verb: {
id: "http://adlnet.gov/expapi/verbs/completed",
display: {
en-US: "Indicates the actor finished or concluded the activity normally.",
ru-RU: "Указывает, что субъект закончил или завершил действие в обычном режиме."
}
},
object: {
id: "simulation://xapitest",
objectType: "Activity",
definition: {
name: {
ru-RU: "ИНК1"
},
description: {
ru-RU: "ИНК1"
}
}
},
result: {
completion: true,
duration: "PT41S",
response: "Сценарий выполнен",
extensions: {
http://lcontent.ru/xapi/Total_Losses_money: 600000,
http://lcontent.ru/xapi/Total_Deads: 0,
https://w3id.org/xapi/cmi5/result/extensions/progress: 100
}
},
context: {
registration: "fb13ae65-d9cf-469d-8d89-e41fd61c842d",
extensions: {
https://w3id.org/xapi/cmi5/context/extensions/sessionid: "fb13ae65-d9cf-469d-8d89-e41fd61c842d",
https://w3id.org/xapi/cmi5/context/extensions/masteryscore: 0.860000014305115,
https://w3id.org/xapi/cmi5/context/extensions/launchurl: "https://lcontent.ru",
https://w3id.org/xapi/cmi5/context/extensions/launchmode: "Normal",
https://w3id.org/xapi/cmi5/context/extensions/moveon: "CompletedOrPassed",
http://lcontent.ru/xapi/weatherConditions: "rainy",
https://w3id.org/xapi/acme/extensions/training-location: "tyumen",
http://lcontent.ru/xapi/Device: "HTC VIVE"
},
contextActivities: {
category: [
{
objectType: "Activity",
id: "https://w3id.org/xapi/cmi5/context/categories/cmi5"
},
{
objectType: "Activity",
id: "https://w3id.org/xapi/cmi5/context/categories/moveon"
}
]
},
platform: "lms.lcontent.ru",
instructor: {
objectType: "Agent",
mbox: "mailto:MaxGammer@gmail.com",
name: "Anna Gammer"
},
team: {
objectType: "Group",
mbox: "mailto:group@gmail.com",
name: "Commander ken"
}
},
authority: {
objectType: "Agent",
account: {
homePage: "https://lrs.lcontent.ru:443",
name: "maxgammer@gmail.com"
}
},
stored: "2021-04-07T09:35:51+00:00",
timestamp: "2021-04-07T09:35:51+00:00",
id: "f7e26b65-b9f4-4934-9988-6dcc034356ce"
}
Ну и наконец одна из нескольких записей о непосредственно "оценивании" (passed). Обратите внимание, что кроме времени и самой оценки мы используем записи для описания:
Шаги обучаемого (открыл, ответил, подошел, прочитал и т.д.) с уточнением места события в модели действий персонала (обнаружение/диагностика/принятие решений и т.д.)
Последствия его действий (в $, жизнях, экологии и т.д.)
Параметры математической модели, представляющие интерес
Параметры, заданные инструктором
Комментарии инструктора
Данные нейроинтерфейса и т.д.
Statement "passed"
{
actor: {
mbox: "mailto:user@lcontent.ru",
name: "Петров Сергей Александрович",
objectType: "Agent"
},
verb: {
id: "http://adlnet.gov/expapi/verbs/passed",
display: {
en-US: "Indicates the actor completed an activity to standard.",
ru-RU: "Указывает, что субъект выполнил действие в соответствии со стандартными требованиями."
}
},
object: {
id: "simulation://xapitest",
objectType: "Activity",
definition: {
name: {
ru-RU: "ИНК1"
},
description: {
ru-RU: "ИНК1"
}
}
},
result: {
success: true,
duration: "PT41S",
response: "Сценарий выполнен",
score: {
scaled: 0.0204081628471613,
raw: 1,
min: 0,
max: 49
},
extensions: {
http://lcontent.ru/xapi/Total_Losses_money: 600000,
http://lcontent.ru/xapi/Total_Deads: 0,
https://w3id.org/xapi/cmi5/result/extensions/progress: 100
}
},
context: {
registration: "fb13ae65-d9cf-469d-8d89-e41fd61c842d",
extensions: {
https://w3id.org/xapi/cmi5/context/extensions/sessionid: "fb13ae65-d9cf-469d-8d89-e41fd61c842d",
https://w3id.org/xapi/cmi5/context/extensions/masteryscore: 0.860000014305115,
https://w3id.org/xapi/cmi5/context/extensions/launchurl: "https://lcontent.ru",
https://w3id.org/xapi/cmi5/context/extensions/launchmode: "Normal",
https://w3id.org/xapi/cmi5/context/extensions/moveon: "CompletedOrPassed",
http://lcontent.ru/xapi/weatherConditions: "rainy",
https://w3id.org/xapi/acme/extensions/training-location: "tyumen",
http://lcontent.ru/xapi/Device: "HTC VIVE"
},
contextActivities: {
category: [
{
objectType: "Activity",
id: "https://w3id.org/xapi/cmi5/context/categories/cmi5"
},
{
objectType: "Activity",
id: "https://w3id.org/xapi/cmi5/context/categories/moveon"
}
],
other: [
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "41b7a8b9-cac2-4853-9703-74fb3825d73b"
},
description: {
ru-RU: "Событие Стропальщик 1"
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:27 ",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:27 ",
http://lcontent.ru/step_type: "Scenario_wait_trigger",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 1,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "20e06279-e2b7-4738-9fea-5836d5d2dbe8"
},
description: {
ru-RU: "Вопрос:Укажите правильный вариант. Ответ пользователя: Нет нарушений.. Ответ неверен. Верный ответ: Нарушение. Стропальщик в момент подъема груза находится на площадке полуприцепа."
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:30 ",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:30 ",
http://lcontent.ru/step_type: "Scenario_step_question",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 0,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "2ab73493-28c3-49f6-bc9a-fbf6eb56ad1c"
},
description: {
ru-RU: "Событие 1trigg"
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:24 ",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:24 ",
http://lcontent.ru/step_type: "Scenario_wait_trigger",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 1,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "9d1feb96-a948-4c39-a880-567a169b7df9"
},
description: {
ru-RU: "Вопрос:Укажите правильный вариант. Ответ пользователя: Нарушение. Стропальщик не использует багор-оттяжку при сопровождении груза, поднятого на высоту более 1-го метра над землей (груз на месте складирования направляет руками, высота груза на уровне плеч стропальщика). Ответ верен."
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:25 ",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:25 ",
http://lcontent.ru/step_type: "Scenario_step_question",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 1,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "813a8565-3c31-4ec3-9659-319651522851"
},
description: {
ru-RU: "Показан текст Извините, У меня просто нет оттяжки и нет багра.... Я и так справлюсь."
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:35 ",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:35 ",
http://lcontent.ru/step_type: "Scenario_step_text",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 1,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "7f2dc374-b564-472d-a5ab-2eac29bfe11f"
},
description: {
ru-RU: "Показан текст Добро пожаловать в компьютерный имитационный тренажер, позволяющий отрабатывать навыки выявления опасных условий и действий при производстве работ повышенной опасности. Вы находитесь на производственном объекте . Ваша задача выявить все нарушения при производстве грузоподъемных работ. Нарушения также могут быть связаны с неправильным оформлением или отсутствием необходимой документации. В любой момент, Вы можете выйти из тренажера, нажав кнопку с флагом в правом верхнем углу экрана. Будет представлен отчет о результатах, а в режиме экзамена отчет сохранится в виде текстового файла на рабочем столе. Дата проведения проверки – 3 сентября 2020. Для передвижения используйте клавиши WSAD. Для поворота головы нажмите правую клавишу мыши и перемещайте мышь в нужном направлении. Для изменения высоты используйте клавиши в нижнем правом углу экрана. Для увеличения используйте клавишу Q. Необходимо нажать на объект, предмет, работника и указать имеется нарушение или нет. Желаем приятного обучения. "
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:35 ",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:35 ",
http://lcontent.ru/step_type: "Scenario_step_text",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 1,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "5ed064b0-aae2-4b67-a2c6-8492af0ab1fe"
},
description: {
ru-RU: "Событие ОбъектыНаПлатформе"
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:44 ",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:44 ",
http://lcontent.ru/step_type: "Scenario_wait_trigger",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 1,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "edf64367-855b-42b7-9181-a7b5ac32c23a"
},
description: {
ru-RU: "Вопрос:Укажите правильный вариант. Ответ пользователя: Нарушение незначительно. Ответ неверен. Верный ответ: Нарушение. Груз на поворотной платформе"
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:46 ",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:46 ",
http://lcontent.ru/step_type: "Scenario_step_question",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 0,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "91c4aa0e-5126-43bd-81e1-39cf1b60e994"
},
description: {
ru-RU: "Выполнение в режиме экзамена"
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:50",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:50",
http://lcontent.ru/step_type: "ScenarioEditorManager",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 1,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "3b2f4732-5ee5-4c10-8c2f-9012dc17163c"
},
description: {
ru-RU: "Время выполнения: 00:00:28"
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:50",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:50",
http://lcontent.ru/step_type: "ScenarioEditorManager",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 1,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "d3a31c1f-bfe1-4164-bd71-360789f59aac"
},
description: {
ru-RU: "Возможных нарушений было замечено: 4 Из них исправлено: 1 Из них не исправлено: 3 Возможных нарушений не было замечено: 45"
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:50",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:50",
http://lcontent.ru/step_type: "ScenarioEditorManager",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 1,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "bc03d881-faf3-4bff-8b37-e9850025c42a"
},
description: {
ru-RU: "Задача :Объекты на платформе. Выполнена. "
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:50",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:50",
http://lcontent.ru/step_type: "ScenarioEditorManager",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 1,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "ca1130ad-0d14-4ff7-89f9-033f929229bc"
},
description: {
ru-RU: "Задача :Стропальщик в момент подъема груза находится на площадке полуприцепа. Выполнена. "
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:50",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:50",
http://lcontent.ru/step_type: "ScenarioEditorManager",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 1,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/step",
definition: {
name: {
ru-RU: "2d428645-f89d-4163-900b-7aede52581e3"
},
description: {
ru-RU: "Задача :Стропальщик не использует багор-оттяжку при сопровождении груза. Выполнена. "
},
extensions: {
http://lcontent.ru/step_datatime_real: "2021-04-07 14:35:50",
http://lcontent.ru/step_datatime_simulation: "2021-04-07 14:35:50",
http://lcontent.ru/step_type: "ScenarioEditorManager",
http://lcontent.ru/step_completed: 1,
http://lcontent.ru/step_passed: 1,
http://lcontent.ru/step_categoty: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/mathmodel_value",
definition: {
name: {
ru-RU: "Pump1.Q"
},
extensions: {
http://lcontent.ru/mm_dimension: "Q, m3/s",
http://lcontent.ru/mm_datatime_real: "2021-04-07 14:35:51 ",
http://lcontent.ru/mm_datatime_simulation: "2021-04-07 14:35:51 ",
http://lcontent.ru/mm_float_value: 56.7770004272461,
http://lcontent.ru/mm_str_value: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/effects",
definition: {
name: {
ru-RU: "4b422c7f-e7da-46be-970f-fb4f44258dc4"
},
description: {
ru-RU: "Нарушение не было устранено, Стропальщик в опасности."
},
extensions: {
http://lcontent.ru/effect_ref_parent: "",
http://lcontent.ru/effect_datatime_real: "2021-04-07 14:35:30 ",
http://lcontent.ru/effect_datatime_simulation: "2021-04-07 14:35:30 ",
http://lcontent.ru/effect_cause: "Обучаемый обратил внимание на нарушение, но ошибся с его диагностированием",
http://lcontent.ru/effect_cause_full: "Место в модели поведения-Обнаружение=True, Диагностика=True, ПринятиеРешений=False, ВыполняемыеДействия=False",
http://lcontent.ru/effect_losses: "Нарушение не было устранено, Стропальщик в опасности.",
http://lcontent.ru/effect_losses_moneys: "",
http://lcontent.ru/effect_losses_life_health: "",
http://lcontent.ru/effect_losses_ecology: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/effects",
definition: {
name: {
ru-RU: "ff53421f-5012-41db-93b2-2308bed78792"
},
description: {
ru-RU: "Стропальщик использует безопасные методы и средства при выполнении работ. Угроза жизни и здоровью отсутствует."
},
extensions: {
http://lcontent.ru/effect_ref_parent: "",
http://lcontent.ru/effect_datatime_real: "2021-04-07 14:35:25 ",
http://lcontent.ru/effect_datatime_simulation: "2021-04-07 14:35:25 ",
http://lcontent.ru/effect_cause: "Обучаемый обратил внимание на нарушение.",
http://lcontent.ru/effect_cause_full: "Место в модели поведения-Обнаружение=True, Диагностика=True, ПринятиеРешений=False, ВыполняемыеДействия=False",
http://lcontent.ru/effect_losses: "",
http://lcontent.ru/effect_losses_moneys: "",
http://lcontent.ru/effect_losses_life_health: "",
http://lcontent.ru/effect_losses_ecology: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/effects",
definition: {
name: {
ru-RU: "73360673-9775-41e3-9bba-398d7b7efe5e"
},
description: {
ru-RU: "Обучаемый обнаружил нарушение, но не верно его диагностировал."
},
extensions: {
http://lcontent.ru/effect_ref_parent: "",
http://lcontent.ru/effect_datatime_real: "2021-04-07 14:35:46 ",
http://lcontent.ru/effect_datatime_simulation: "2021-04-07 14:35:46 ",
http://lcontent.ru/effect_cause: "Обучаемый обратил внимание на нарушение.",
http://lcontent.ru/effect_cause_full: "Место в модели поведения-Обнаружение=True, Диагностика=True, ПринятиеРешений=False, ВыполняемыеДействия=False",
http://lcontent.ru/effect_losses: "Обучаемый обнаружил нарушение, но не верно его диагностировал.",
http://lcontent.ru/effect_losses_moneys: "",
http://lcontent.ru/effect_losses_life_health: "",
http://lcontent.ru/effect_losses_ecology: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/instructor_parameter",
definition: {
name: {
ru-RU: "1"
},
extensions: {
http://lcontent.ru/instructor_parameter_name: "Pump1.Z",
http://lcontent.ru/instructor_parameter_dimension: "количество ступеней, шт.",
http://lcontent.ru/instructor_parameter_datatime_real: "2021-04-07 14:35:51 ",
http://lcontent.ru/instructor_parameter_datatime_simulation: "2021-04-07 14:35:51 ",
http://lcontent.ru/instructor_parameter_float_value: 56.7770004272461,
http://lcontent.ru/instructor_parameter_str_value: ""
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/instructor_problem",
definition: {
name: {
ru-RU: "1"
},
extensions: {
http://lcontent.ru/instructor_problem_name: "Задвижка3.Клин",
http://lcontent.ru/instructor_problem_dimension: "да или нет",
http://lcontent.ru/instructor_problem_datatime_real: "2021-04-07 14:35:51 ",
http://lcontent.ru/instructor_problem_datatime_simulation: "2021-04-07 14:35:51 ",
http://lcontent.ru/instructor_problem_float_value: 0,
http://lcontent.ru/instructor_problem_str_value: "да"
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/instructor_comment",
definition: {
name: {
ru-RU: "1"
},
extensions: {
http://lcontent.ru/instructor_comment_text: "Грубое нарушение техники безопасности.н",
http://lcontent.ru/instructor_comment_datatime_real: "2021-04-07 14:35:51 ",
http://lcontent.ru/instructor_comment_datatime_simulation: "2021-04-07 14:35:51 "
}
},
objectType: "Activity"
},
{
id: "http://lcontent.ru/xapi/neurointerface_log",
definition: {
description: {
ru-RU: "Лог нейроинтерфейса"
},
name: {
ru-RU: "1"
},
extensions: {
http://lcontent.ru/neurointerface_log_model: "OpenBCD ",
http://lcontent.ru/neurointerface_log_datatime_real: "2021-04-07 14:35:51 ",
http://lcontent.ru/neurointerface_log_datatime_simulation: "2021-04-07 14:35:51 ",
http://lcontent.ru/neurointerface_log_data: [2 items]
}
},
objectType: "Activity"
}
]
},
platform: "lms.lcontent.ru",
instructor: {
objectType: "Agent",
mbox: "mailto:MaxGammer@gmail.com",
name: "Anna Gammer"
},
team: {
objectType: "Group",
mbox: "mailto:group@gmail.com",
name: "Commander ken"
}
},
authority: {
objectType: "Agent",
account: {
homePage: "https://lrs.lcontent.ru:443",
name: "maxgammer@gmail.com"
}
},
stored: "2021-04-07T09:35:51+00:00",
timestamp: "2021-04-07T09:35:51+00:00",
id: "1abfd011-b0a5-442b-bc07-4087b4ac86cc"
}
terminated
{
actor: {
mbox: "mailto:user@lcontent.ru",
name: "Петров Сергей Александрович",
objectType: "Agent"
},
verb: {
id: "http://adlnet.gov/expapi/verbs/terminated",
display: {
en-US: "Indicates the actor has completed their session normally.",
ru-RU: "Указывает, что субъект нормально завершил сеанс."
}
},
object: {
id: "simulation://xapitest",
objectType: "Activity",
definition: {
name: {
ru-RU: "ИНК1"
},
description: {
ru-RU: "ИНК1"
}
}
},
result: {
duration: "PT41S",
response: "Сценарий выполнен",
extensions: {
http://lcontent.ru/xapi/Total_Losses_money: 600000,
http://lcontent.ru/xapi/Total_Deads: 0,
https://w3id.org/xapi/cmi5/result/extensions/progress: 100
}
},
context: {
registration: "fb13ae65-d9cf-469d-8d89-e41fd61c842d",
extensions: {
https://w3id.org/xapi/cmi5/context/extensions/sessionid: "fb13ae65-d9cf-469d-8d89-e41fd61c842d",
https://w3id.org/xapi/cmi5/context/extensions/masteryscore: 0.860000014305115,
https://w3id.org/xapi/cmi5/context/extensions/launchurl: "https://lcontent.ru",
https://w3id.org/xapi/cmi5/context/extensions/launchmode: "Normal",
https://w3id.org/xapi/cmi5/context/extensions/moveon: "CompletedOrPassed",
http://lcontent.ru/xapi/weatherConditions: "rainy",
https://w3id.org/xapi/acme/extensions/training-location: "tyumen",
http://lcontent.ru/xapi/Device: "HTC VIVE"
},
contextActivities: {
category: [
{
objectType: "Activity",
id: "https://w3id.org/xapi/cmi5/context/categories/cmi5"
}
]
},
platform: "lms.lcontent.ru",
instructor: {
objectType: "Agent",
mbox: "mailto:MaxGammer@gmail.com",
name: "Anna Gammer"
},
team: {
objectType: "Group",
mbox: "mailto:group@gmail.com",
name: "Commander ken"
}
},
authority: {
objectType: "Agent",
account: {
homePage: "https://lrs.lcontent.ru:443",
name: "maxgammer@gmail.com"
}
},
stored: "2021-04-07T09:35:52+00:00",
timestamp: "2021-04-07T09:35:52+00:00",
id: "d32fd6bf-c1b2-471d-af58-ca8754a6373b"
Ну и теперь ответим на вопрос - зачем это все нужно и что это дает?
А. Позволяет дифференцировать знания, умения и навыки, в т.ч. с учетом типа ошибок
Б. Позволяет строить диаграммы последствий (см. https://habr.com/ru/post/509736/)
В. Позволяет строить диаграммы в разрезе нужных показателей, причем в сравнении как с предыдущими попытками обучаемого, так и с оценками группы.
Г. Позволяет строить диаграммы изменения параметра математической модели (тренды) совместно с диаграммами Ганта для показа действий персонала и их взаимного влияния.
Таким образом я попытался показать некоторые возможности xAPI, обычно не затрагиваемые в других обзорах.
Все примеры доступны на сайте https://lms.lcontent.ru/course/view.php?id=84
Буду рад ответить на Ваши вопросы.