Implementación de xAPI para admitir Articulate Content
Artículo actualizado el
Este artículo se aplica a:
Implemente las funciones xAPI (API Tin Can) descritas en esta página para soporte técnico completamente el contenido de Articulate en su sistema de gestión de aprendizaje (LMS). Más información sobre la especificación xAPI.
- Tipos de actividad
- Verbos
- Metadatos de actividad
- Lanzamiento de contenido público
- Comunicación
- Datos de ejemplo de metadatos y declaraciones por tipo de pregunta
Tipos de actividad
Articulate informes de contenido sobre los tipos de actividad que se detallan en la tabla siguiente. Tenga en cuenta los valores esperados para el ID principal de la actividad (definido en el objeto Context.contextActivities).
Tipos de actividad |
Descripción |
ID de padre |
módulo |
Describe una sola diapositiva dentro de un curso. |
El ID principal siempre será el ID del curso. |
cmi.interacción |
Una pregunta puntuada o de encuesta. |
El ID principal será el ID del objetivo al que pertenece la interacción. |
objetivo |
Articulate las interacciones de grupos de contenido juntos mediante diapositivas de revisión. Una diapositiva de revisión se define mediante un objetivo xAPI. Un curso puede tener uno o varios objetivos. Además, una diapositiva de revisión también puede agrupar otras diapositivas de revisión. |
El ID principal será el ID del curso o el ID de objetivo del que es hijo. |
curso |
El curso Articulate. |
El ID principal siempre será su propio ID. |
Verbos
XAPI proporciona verbos para describir la actividad del usuario. Esta es una lista de los verbos que utiliza el contenido de Articulate, junto con el significado de los verbos.
Verbos |
Tipos de actividad |
Descripción |
intentado |
curso |
Notifica al LMS de que ha comenzado un curso. |
experimentado |
módulo |
Se envía cuando se ha visto una diapositiva. |
progresado (solo Rise 360) |
curso, módulo, objetivo |
Se envía al final de cada clase después de enviar la declaración experimentada. Proporciona los datos de resultados del curso, así como una extensión de resultados que hace un seguimiento del progreso general del curso. |
contestó |
cmi.interacción |
Indica que se ha respondido a una pregunta para una encuesta o una pregunta puntuada. |
completado |
curso, objetivo |
Se utiliza cuando se ha completado un curso u objetivo y la finalización se basa en el número de diapositivas vistas o cuando se determina la finalización en función de la finalización de una encuesta. |
pasado |
curso, objetivo |
Notifica al LMS de que un curso u objetivo se ha completado con una puntuación de aprobación. Este verbo solo se utiliza cuando la finalización se basa en un conjunto de preguntas puntuadas. |
fracasado |
curso, objetivo |
Notifica al LMS de que se ha completado un curso u objetivo con una puntuación fallida. Este verbo solo se utiliza cuando la finalización se basa en un conjunto de preguntas puntuadas. |
left (solo Storyline) |
módulo |
Se envía cuando un alumno abandona la diapositiva |
Nota: A partir de la actualización de noviembre de 2021 para Storyline 360, puede utilizar activadores para definir sentencias xAPI personalizadas y acceder a más verbos.
Metadatos de actividad
XAPI permite definir una actividad dentro del archivo tincan.xml o directamente dentro de una instrucción. Articulate define las actividades en ambos.
Al publicar una sentencia en un extremo xAPI, la sentencia hará referencia a los objetos definidos en tincan.xml por ID. El archivo tincan.xml también contendrá definiciones de opciones, escala, origen, destino y pasos para el tipo cmi.interaction correspondiente. Puede encontrar el archivo xsd que describe el formato del archivo tincan.xml en: http://projecttincan.com/tincan.xsd.
Lanzamiento de contenido público
Debe iniciar contenido de Articulate utilizando el método descrito en la sección Incorporación de un LRS xAPI en un documento LMS. El contenido de Articulate se puede alojar en el LMS o en un sitio externo. De forma predeterminada, el tincan.xml publicado se configurará para que se inicie localmente. Para lanzar contenido de Articulate, usa la página definida en la etiqueta de lanzamiento de la actividad del curso:
<activity id="61XkSYC1ht2_course_id" type="course"> <name lang="und">Título del curso</name> <description lang="und">Descripción del curso</description> <launch lang="und">index_lms.html que es</launch> </activity> |
Debe agregar una cadena de consulta a la URL que contiene la información necesaria para realizar el seguimiento del curso. Los valores requeridos incluyen el extremo xAPI (endpoint), el token de autorización (auth) y la información del alumno (actor).
La cadena de consulta también debe incluir el ID de actividad (activity_id) y el registro (registro) si la implementación de LMS requiere estos valores al recibir solicitudes del contenido. (Los cursos Rise 360 no necesitan activity_id ni registro.)
A continuación se muestra un ejemplo de enlace de lanzamiento con saltos de línea y sin codificación URL para su legibilidad:
http://my.lms.com/TCActivityProvider/index_lms.html ? endpoint = http://my.lms.com/lrs/endpoint/ & auth =OJFJMGY4NTYxNZUWOGI4YWY0njfknzu5MWuxMZE1zgQ1 & actor = {"name»: ["Primer último"], «mbox»: ["mailto: firstlast@mycompany.com «]} & activity_id =61xKSYC1HT2_Course_ID & registro =760e3480-ba55-4991-94b0-01820dbd23a2 |
Un enlace de inicio codificado correctamente con URL tendrá el siguiente aspecto (se agregan saltos de línea para su legibilidad):
http://my.lms.com/TCActivityProvider/index_lms.html ? endpoint =http%3A%2F%2Fmy.lms.com%2FLRS%2Fendpoint%2F & auth =OJFJMGY4NTYxNZUWOGI4YWY0njfknzu5MWuxMZE1zgQ1 & actor =%7B%22Nombre% 22% 3A% 20% 5B%22Primero%20 Último% 22% 5D%2C% 20% 22mbox & activity_id =61xKSYC1HT2_Course_ID & registro =760e3480-ba55-4991-94b0-01820dbd23a2 |
También puede agregar parámetros personalizados a la cadena de consulta del enlace de inicio. Cualquier parámetro adicional se reproducirá cuando el contenido informe declaraciones al LMS.
Comunicación
El contenido de Articulate informará de las sentencias al endpoint xAPI como se describe en la sección Solicitudes de origen cruzado en Internet Explorer en xAPI. Para resumir, si el punto final es http://mycompany.com/TCAPI/endpoint/, ¿todas las declaraciones se publicarán en http://mycompany.com/TCAPI/endpoint/ sentencias? Identificador de declaración =. Los encabezados necesarios se añadirán a los datos de la solicitud como parámetros de formulario delimitados por «&». El contenido JSON también se codificará y pasará en el parámetro denominado «contenido». Todas las declaraciones se informarán de esta manera independientemente del navegador o la plataforma.
El contenido de Articulate admite la reanudación del contenido desde donde un usuario lo ha dejado. Los datos de estado se almacenan y recuperan publicando solicitudes en http://mycompany.com/TCAPI/endpoint/ actividades/estado? method= [MÉTODO REQUEST]. El valor de [REQUEST METHOD] se sustituirá por GET al recuperar los datos de estado y PUT al almacenar datos de estado. Los encabezados y el contenido se enviarán tal y como se describe anteriormente. Para obtener más información sobre cómo almacenar y recuperar datos de estado, consulte la sección Estado de xAPI.
Datos de ejemplo de metadatos y declaraciones por tipo de pregunta
A continuación se muestran algunas definiciones de actividad de ejemplo ubicadas en el archivo tincan.xml publicado por Articulate. Tras la descripción de cada actividad hay una instrucción JSON de ejemplo que se publicaría en el extremo xAPI para la actividad definida anteriormente.
Pregunta de opción múltiple |
Metadatos |
<activity id="5jIOVMY3lI7.a05ae619-d0e3-4755-9cf0-c944c8861581" type="cmi.interaction"> <name lang="und">¿Qué es el tercer planeta del Sol?</name> <description lang="und">¿Qué es el tercer planeta del Sol?</description> <interactionType>elección</interactionType> <correctResponsePatterns> <correctResponsePattern>Choice_5UT a 0BW3SC</correctResponsePattern> </correctResponsePatterns> <choices> <component> <id>Choice _5UT a 0BW3 SC</id> <description lang="und">Tierra</description> </component> <component> <id>Choice_5 UBSA 57Tore</id> <description lang="und">Venus</description> </component> <component> <id>Choice_6ft1RxQY1kK</id> <description lang="und">Marte</description> </component> </choices> </activity> |
Declaración JSON |
{ «resultado»: { «éxito»: cierto, «respuesta»: «Choice_5UTOT0BW3SC», «puntuación»: { «crudo» :10 } }, «context»: { «Actividades de contexto»: { «agrupación»: { «id» :"6x9US05RLUB_course_ID» }, «padre»: { «id» :"5CV16q9HG8Q» } }, «registro» :"cd471f87-a842-4929-87e9-fde6a5360b8b» }, «actor»: { «Tipo de objeto»: «Persona», «mbox»: [ «mailto: myname@mycompany.com» ], «nombre»: [ «Mi nombre Mi apellido» ] }, «verbo» :"respondido», «objeto»: { «id» :"5JIOVMY3LI7.A05AE619-D0E3-4755-9CF0-C944C8861581" } }
|
Respuesta múltiple |
Metadatos |
<activity id="6Uo7vTiQ6UT.675caf81-6862-461d-b401-76a9f043435a" type="cmi.interaction"> <name lang="und">Seleccione los planetas de la lista siguiente. </name> <description lang="und">Seleccione los planetas de la lista siguiente. </description> <interactionType>elección</interactionType> <correctResponsePatterns> <correctResponsePattern>Choice_5HMQRO1QC5O</correctResponsePattern> <correctResponsePattern>Choice_6 en YTC Dook</correctResponsePattern> </correctResponsePatterns> <choices> <component> <id>Choice_5HMQRO1QC5O</id> <description lang="und">Marte</description> </component> <component> <id>Choice_6 en YTC Dook</id> <description lang="und">Tierra</description> </component> <component> <id>Choice_6DT2QG KPJTN</id> <description lang="und">sol</description> </component> <component> <id>Choice_61GVRLVAXIJ</id> <description lang="und">Luna</description> </component> </choices> </activity> |
Declaración JSON |
{ «resultado»: { «éxito»: cierto, «response» :"Choice_5HMQRO1QC5O [,] Choice_6bijytcDook», «puntuación»: { «crudo» :10 } }, «context»: { «Actividades de contexto»: { «agrupación»: { «id» :"6x9US05RLUB_course_ID» }, «padre»: { «id» :"5CV16q9HG8Q» } }, «registro» :"cd471f87-a842-4929-87e9-fde6a5360b8b» }, «actor»: { «Tipo de objeto»: «Persona», «mbox»: [ «mailto: myname@mycompany.com» ], «nombre»: [ «Mi nombre Mi apellido» ] }, «verbo» :"respondido», «objeto»: { «id» :"6UO7VTIQ6UT.675CAF81-6862-461D-B401-76A9F043435a» } } |
Rellene el espacio en blanco |
Metadatos |
<activity id="6cRKIhEssyA.d7911223-2749-424f-bee8-e241f458bff3" type="cmi.interaction"> <name lang="und">¿Cómo se llama el planeta en el que vivimos? </name> <description lang="und">¿Cómo se llama el planeta en el que vivimos? </description> <interactionType>relleno</interactionType> </activity> |
Declaración JSON |
{ «resultado»: { «éxito»: cierto, «respuesta» :"Tierra», «puntuación»: { «crudo» :10 } }, «context»: { «Actividades de contexto»: { «agrupación»: { «id» :"6x9US05RLUB_course_ID» }, «padre»: { «id» :"5CV16q9HG8Q» } }, «registro» :"cd471f87-a842-4929-87e9-fde6a5360b8b» }, «actor»: { «Tipo de objeto»: «Persona», «mbox»: [ «mailto: myname@mycompany.com» ], «nombre»: [ «Mi nombre Mi apellido» ] }, «verbo» :"respondido», «objeto»: { «id» :"6CRKIHESSYA.D7911223-2749-424F-BEE8-E241F458BFF3" } }
|
Coincidencia |
Metadatos |
<activity id="5cgcNZPuHSe.a7450fa0-c56b-4bbf-8716-30e987a55d4d" type="cmi.interaction"> <name lang="und">Haga coincidir los planetas con sus descripciones. </name> <description lang="und">Haga coincidir los planetas con sus descripciones. </description> <interactionType>coincidente</interactionType> <correctResponsePatterns> <correctResponsePattern>statement_6moqizokyWP [.] Choice_6dxw50j12qb</correctResponsePattern> <correctResponsePattern>Statement_6x5PMAV JIQB [.] Choice_5BJMCPSQBU1</correctResponsePattern> <correctResponsePattern>Statement_5RBWGPPX93b [.] Choice_6jkgvbQYQ5Y</correctResponsePattern> </correctResponsePatterns> <source> <component> <id>Statement_6 MOQIZOKYWP</id> <description lang="und">El planeta en el que vivimos</description> </component> <component> <id>Statement_6x5pMAV JIQB</id> <description lang="und">El planeta más cercano a la Tierra</description> </component> <component> <id>Statement_5RBWGPPX93b</id> <description lang="und">El planeta más cercano al Sol</description> </component> </source> <target> <component> <id>Choice_6DXW50J12QB</id> <description lang="und">Tierra</description> </component> <component> <id>Choice_5BJMCPSQBU1</id> <description lang="und">Marte</description> </component> <component> <id>Choice_6JKGVBQYQ5Y</id> <description lang="und">Mercurio</description> </component> </target> </activity>
|
Declaración JSON |
{ «resultado»: { «éxito»: cierto, «response» :"statement_6MOQIZokyWP [.] Choice_6DXW50J12qb [,] statement_6x5PMAVJIQB [.] «puntuación»: { «crudo» :10 } }, «context»: { «Actividades de contexto»: { «agrupación»: { «id» :"6x9US05RLUB_course_ID» }, «padre»: { «id» :"5CV16q9HG8Q» } }, «registro» :"cd471f87-a842-4929-87e9-fde6a5360b8b» }, «actor»: { «Tipo de objeto»: «Persona», «mbox»: [ «mailto: myname@mycompany.com» ], «nombre»: [ «Mi nombre Mi apellido» ] }, «verbo» :"respondido», «objeto»: { «id» :"5CGCNZPUHSE.A7450FA0-C56B-4BBF-8716-30E987A55D4d» } }
|
Secuencia |
Metadatos |
<activity id="6hoSx7vtpP4.6b284974-20f5-4f92-bf8b-12634c643277" type="cmi.interaction"> <name lang="und">Coloca los planetas en orden en función de su distancia media del Sol. </name> <description lang="und">Coloca los planetas en orden en función de su distancia media del Sol. </description> <interactionType>secuenciación</interactionType> <correctResponsePatterns> <correctResponsePattern>Choice_6P5EWTR0AV5</correctResponsePattern> <correctResponsePattern>Choice_5DMHLA 2 LVHz</correctResponsePattern> <correctResponsePattern>Choice_61DFQP LBPV</correctResponsePattern> <correctResponsePattern>Opción _64 o 8 QRYNQJ</correctResponsePattern> <correctResponsePattern>Choice_5RVV1NA WM35</correctResponsePattern> <correctResponsePattern>Choice_5AH0IA79 VPZ</correctResponsePattern> <correctResponsePattern>Choice_5L5S2DNWEZC</correctResponsePattern> <correctResponsePattern>Choice_6 AHAF XSHDAF</correctResponsePattern> </correctResponsePatterns> <choices> <component> <id>Choice_6P5EWTR0AV5</id> <description lang="und">Mercurio</description> </component> <component> <id>Choice_5DMHLA 2 LVHz</id> <description lang="und">Venus</description> </component> <component> <id>Choice_61DFQP LBPV</id> <description lang="und">Tierra</description> </component> <component> <id>Opción _64 o 8 QRYNQJ</id> <description lang="und">Marte</description> </component> <component> <id>Choice_5RVV1NA WM35</id> <description lang="und">Júpiter</description> </component> <component> <id>Choice_5AH0IA79 VPZ</id> <description lang="und">Saturno</description> </component> <component> <id>Choice_5L5S2DNWEZC</id> <description lang="und">Urano</description> </component> <component> <id>Choice_6 AHAF XSHDAF</id> <description lang="und">Neptuno</description> </component> </choices> </activity>
|
Declaración JSON |
{ «resultado»: { «éxito»: cierto, «response» :"CHOICE_6P5EWTR0AV5 [,] Choice_5DMHLA2LVHz [,] Choice_61DFQPOLBPV [,] Choice_64 o 8QRyNQJ [,] «puntuación»: { «crudo» :10 } }, «context»: { «Actividades de contexto»: { «agrupación»: { «id» :"6x9US05RLUB_course_ID» }, «padre»: { «id» :"5CV16q9HG8Q» } }, «registro» :"cd471f87-a842-4929-87e9-fde6a5360b8b» }, «actor»: { «Tipo de objeto»: «Persona», «mbox»: [ «mailto: myname@mycompany.com» ], «nombre»: [ «Mi nombre Mi apellido» ] }, «verbo» :"respondido», «objeto»: { «id» :"6 HOSX7 VTPP 4.6 B284974-20F5-4F92-BF8B-12634C643277" } }
|
Numérico |
Metadatos |
<activity id="5wgwpXGIaWk.8fbebd0a-0127-4a10-809e-6e3b40fd91e7" type="cmi.interaction"> <name lang="und">¿Cuántos planetas hay en nuestro sistema solar? (Sin incluir Plutón)</name> <description lang="und">¿Cuántos planetas hay en nuestro sistema solar? (Sin incluir Plutón)</description> <interactionType>numérico</interactionType> </activity>
|
Declaración JSON |
{ «resultado»: { «éxito»: cierto, «respuesta» :"8", «puntuación»: { «crudo» :10 } }, «context»: { «Actividades de contexto»: { «agrupación»: { «id» :"6x9US05RLUB_course_ID» }, «padre»: { «id» :"5CV16q9HG8Q» } }, «registro» :"cd471f87-a842-4929-87e9-fde6a5360b8b» }, «actor»: { «Tipo de objeto»: «Persona», «mbox»: [ «mailto: myname@mycompany.com» ], «nombre»: [ «Mi nombre Mi apellido» ] }, «verbo» :"respondido», «objeto»: { «id» :"5WGWPXGIAWK.8FBEBD0A-0127-4A10-809E-6E3B40FD91E7" } }
|
Likert |
Metadatos |
<activity id="5mAuWE6HMJX.86ebc142-18dd-4d75-af5f-269f604cfbd2.Statement_5xDTWOL4BBj" type="cmi.interaction"> <name lang="und">Ojalá Plutón fuera considerado todavía un planeta. </name> <description lang="und">Ojalá Plutón fuera considerado todavía un planeta. </description> <interactionType>likert</interactionType> <scale> <component> <id>6A0S 985 RUF 4</id> <description lang="und">Muy en desacuerdo</description> </component> <component> <id>6 MSXH 59 UUS 7</id> <description lang="und">En desacuerdo</description> </component> <component> <id>5 de ZJQ4 QSKB</id> <description lang="und">Neutro</description> </component> <component> <id>6 HSSI o 0 LFV</id> <description lang="und">Estoy de acuerdo</description> </component> <component> <id>5 x Z Blute 5 WB</id> <description lang="und">Estoy totalmente de acuerdo</description> </component> </scale> </activity>
|
Declaración JSON |
{ «resultado»: { «respuesta» :"5dezjq4qsKb» }, «context»: { «Actividades de contexto»: { «agrupación»: { «id» :"6x9US05RLUB_course_ID» }, «padre»: { «id» :"5CV16q9HG8Q» } }, «registro» :"cd471f87-a842-4929-87e9-fde6a5360b8b» }, «actor»: { «Tipo de objeto»: «Persona», «mbox»: [ «mailto: myname@mycompany.com» ], «nombre»: [ «Mi nombre Mi apellido» ] }, «verbo» :"respondido», «objeto»: { «id» :"5MAUWE6HMJX.86EBC142-18DD-4D75-AF5F-269F604CFBD2.statement_5xDTWOL4BBJ» } }
|