Calibrador xAPI e IMS. O ADL vs IMS?

imagen



El advenimiento de xAPI (ADL) no fue un evento inesperado. TinCan se discutió durante mucho tiempo, una gran cantidad de foros abiertos estaban "en pleno apogeo" cuando se discutía la nueva especificación. Fue solo después de suficiente discusión que ADL lanzó la especificación. Luego, después del trabajo práctico de muchas compañías con xApi, apareció CMI5.



Y luego apareció una especificación similar del IMS Global Learning Consortium llamada Caliper.

Las marcadas similitudes entre xAPI y Caliper han llevado a los desarrolladores y proveedores de contenido a aclarar las diferencias en la implementación de una o ambas especificaciones (que actualmente están destinadas a la estandarización).



Tanto las comunidades xAPI como Caliper han expresado su preocupación por el soporte rentable para ambas especificaciones, lo que ha llevado a solicitudes tanto de ADL como de IMS para ver si pueden conciliarse.



Aquí está la respuesta corta "IMS" ( enlace )



a) Caliper y xAPI tienen orígenes muy diferentes. El núcleo xAPI es permitir cualquier tipo de experiencia y seguimiento de evidencia, tanto el rendimiento electrónico como el físico, y no se limita solo a cursos basados ​​en la web (como es el caso de SCORM). Caliper es la manifestación de IMS Learning Analytics Framework y la API del sensor y los perfiles métricos son los dos primeros componentes de ese marco. xAPI y Caliper NO son equivalentes. La adopción no debe ser 'uno u otro', sino que es una decisión de 'caballos para cursos';



b) Si bien xAPI (Actor / Verbo / Objeto) y Caliper (Actor / Acción / Actividad) utilizan un modelo de datos basado en una estructura de declaración triple, existen diferencias considerables en la estructura detallada y el uso de las definiciones de Objeto y Actividad. Sin embargo, debería ser posible para cada especificación hacer uso del Verbo / Acción del otro;


Aquí está la respuesta corta "ADL" ( enlace ).



As xAPI has matured, so too has a similar specification from the IMS Global Learning Consortium called Caliper. There are notable similarities between xAPI and Caliper, which has caused adopters and vendors to clarify implementation differences of one or both specifications (both of which are now targeting standardization). Both communities supporting xAPI and Caliper have expressed concerns about being able to cost-effectively support both specs, which led to inquiries to both ADL Initiative and IMS about whether alignment of the two would be possible.


xAPI (Actor / Verbo / Objeto) y Caliper (Actor / Acción / Actividad) utilizan un modelo de datos basado en la estructura del operador ternario, existen diferencias significativas en la estructura detallada y el uso de las definiciones de Objeto y Actividad. Aparentemente, Actor y Verbo / Acción son iguales, ¿solo Objeto / Actividad son diferentes?



He estado trabajando con xAPI durante mucho tiempo, pero Caliper no me era familiar. Tuve que estudiar un poco la documentación ( enlace y uno más ).



Diré de inmediato que no encontré diferencias significativas para mí personalmente. Lo que se llama en la declaración xAPI (Activites) se llama Evento en Caliper.







imagen



Llamé la atención sobre la presencia de las llamadas "métricas" en Caliper, pero la descripción es bastante abstracta, no pude encontrar ejemplos prácticos.



The Caliper information model defines a number of metric profiles, each of which models a learning activity or a supporting activity that helps facilitate learning. A metric profile’s raison d’etre is to encourage vocabulary standardization and re-use among application providers delivering complementary, albeit competing capabilities that collect learning activity data. Each profile provides a domain-specific set of terms and concepts that application designers and developers can draw upon to describe common user interactions in a consistent manner using a shared vocabulary. Annotating a reading, playing a video, taking a test, or grading an assignment submission represent a few examples of the many activities or events that Caliper’s metric profiles attempt to describe.



Piense en cada perfil métrico como un contenedor lógico independiente o una colección de uno o más eventos Caliper que juntos ayudan a describir un conjunto de actividades interrelacionadas. Cada tipo de evento incluido en un perfil métrico impone restricciones a las diversas entidades y acciones que se pueden utilizar para describir una actividad de aprendizaje. Las restricciones de vocabulario se describen en cada descripción de perfil bajo los siguientes títulos


Hay muchas "bellas imágenes" en el sitio web de IMS, pero refuerzan aún más la sensación de que la diferencia es mínima.



Desde el punto de vista del mecanismo de autorización y almacenamiento (LRS), prácticamente no hay diferencia, la diferencia entre JSON en xApi y JSON-LD en Caliper no es significativa para mí. aquellos. y no hay diferencia en estos asuntos.



Veamos ejemplos de JSON xApi y Caliper



xApi



{
  "actor": {
    "name": "Sally Glider",
    "mbox": "mailto:sally@example.com"
  },
  "verb": {
    "id": "http://adlnet.gov/expapi/verbs/completed",
    "display": { "en-US": "completed" }
  },
  "object": {
    "id": "http://example.com/activities/hang-gliding-test",
    "definition": {
      "type": "http://adlnet.gov/expapi/activities/assessment",
      "name": { "en-US": "Hang Gliding Test" },
      "description": {
        "en-US": "The Solo Hang Gliding test, consisting of a timed flight from the peak of Mount Magazine"
      },
      "extensions": {
        "http://example.com/gliderClubId": "test-435"
      }
    }
  },
  "result": {
    "completion": true,
    "success": true,
    "score": {
      "scaled": 0.95
    },
    "extensions": {
      "http://example.com/flight/averagePitch": 0.05
    }
  },
  "context": {
    "instructor": {
      "name": "Irene Instructor",
      "mbox": "mailto:irene@example.com"
    },
    "contextActivities":{
      "parent": { "id": "http://example.com/activities/hang-gliding-class-a" }
      "grouping": { "id": "http://example.com/activities/hang-gliding-school" }
    },
    "extensions": {
      "http://example.com/weatherConditions": "rainy"
    }
  },
  "timestamp": "2012-07-05T18:30:32.360Z",
  "stored": "2012-07-05T18:30:33.540Z",
  "authority": {
    "name": "Irene Instructor",
    "mbox": "mailto:irene@example.com"
  }
}


Calibrar



{
  "sensor": "https://example.edu/sensors/1",
  "sendTime": "2018-11-15T11:05:01.000Z",
  "dataVersion": "http://purl.imsglobal.org/ctx/caliper/v1p1",
  "data": [
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "https://example.edu/users/554433",
      "type": "Person",
      "dateCreated": "2018-08-01T06:00:00.000Z",
      "dateModified": "2018-09-02T11:30:00.000Z"
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1?ver=v1p0",
      "type": "Assessment",
      "name": "Quiz One",
      "items": [
        {
          "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/items/1",
          "type": "AssessmentItem"
        },
        {
          "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/items/2",
          "type": "AssessmentItem"
        },
        {
          "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/items/3",
          "type": "AssessmentItem"
        }
      ],
      "dateCreated": "2018-08-01T06:00:00.000Z",
      "dateModified": "2018-09-02T11:30:00.000Z",
      "datePublished": "2018-08-15T09:30:00.000Z",
      "dateToActivate": "2018-08-16T05:00:00.000Z",
      "dateToShow": "2018-08-16T05:00:00.000Z",
      "dateToStartOn": "2018-08-16T05:00:00.000Z",
      "dateToSubmit": "2018-09-28T11:59:59.000Z",
      "maxAttempts": 2,
      "maxScore": 15.0,
      "maxSubmits": 2,
      "version": "1.0"
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "https://example.edu",
      "type": "SoftwareApplication",
      "version": "v2"
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "https://example.edu/terms/201801/courses/7/sections/1",
      "type": "CourseSection",
      "academicSession": "Fall 2018",
      "courseNumber": "CPS 435-01",
      "name": "CPS 435 Learning Analytics, Section 01",
      "category": "seminar",
      "subOrganizationOf": {
        "id": "https://example.edu/terms/201801/courses/7",
        "type": "CourseOffering",
        "courseNumber": "CPS 435"
      },
      "dateCreated": "2018-08-01T06:00:00.000Z"
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "urn:uuid:c51570e4-f8ed-4c18-bb3a-dfe51b2cc594",
      "type": "AssessmentEvent",
      "actor": "https://example.edu/users/554433",
      "action": "Started",
      "object": "https://example.edu/terms/201801/courses/7/sections/1/assess/1?ver=v1p0",
      "generated": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "type": "Attempt",
        "assignee": "https://example.edu/users/554433",
        "assignable": "https://example.edu/terms/201801/courses/7/sections/1/assess/1?ver=v1p0",
        "count": 1,
        "dateCreated": "2018-11-15T10:15:00.000Z",
        "startedAtTime": "2018-11-15T10:15:00.000Z"
      },
      "eventTime": "2018-11-15T10:15:00.000Z",
      "edApp": "https://example.edu",
      "group": "https://example.edu/terms/201801/courses/7/sections/1",
      "membership": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
        "type": "Membership",
        "member": "https://example.edu/users/554433",
        "organization": "https://example.edu/terms/201801/courses/7/sections/1",
        "roles": [ "Learner" ],
        "status": "Active",
        "dateCreated": "2018-08-01T06:00:00.000Z"
      },
      "session": {
        "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
        "type": "Session",
        "startedAtTime": "2018-11-15T10:00:00.000Z"
      }
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "urn:uuid:dad88464-0c20-4a19-a1ba-ddf2f9c3ff33",
      "type": "AssessmentEvent",
      "actor": "https://example.edu/users/554433",
      "action": "Submitted",
      "object": "https://example.edu/terms/201801/courses/7/sections/1/assess/1?ver=v1p0",
      "generated": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "type": "Attempt",
        "assignee": "https://example.edu/users/554433",
        "assignable": "https://example.edu/terms/201801/courses/7/sections/1/assess/1?ver=v1p0",
        "count": 1,
        "dateCreated": "2018-11-15T10:15:00.000Z",
        "startedAtTime": "2018-11-15T10:15:00.000Z",
        "endedAtTime": "2018-11-15T10:55:12.000Z",
        "duration": "PT40M12S"
      },
      "eventTime": "2018-11-15T10:25:30.000Z",
      "edApp": "https://example.edu",
      "group": "https://example.edu/terms/201801/courses/7/sections/1",
      "membership": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/rosters/1",
        "type": "Membership",
        "member": "https://example.edu/users/554433",
        "organization": "https://example.edu/terms/201801/courses/7/sections/1",
        "roles": ["Learner"],
        "status": "Active",
        "dateCreated": "2018-08-01T06:00:00.000Z"
      },
      "session": {
        "id": "https://example.edu/sessions/1f6442a482de72ea6ad134943812bff564a76259",
        "type": "Session",
        "startedAtTime": "2018-11-15T10:00:00.000Z"
      }
    },
    {
      "@context": "http://purl.imsglobal.org/ctx/caliper/v1p1",
      "id": "urn:uuid:a50ca17f-5971-47bb-8fca-4e6e6879001d",
      "type": "GradeEvent",
      "actor": {
        "id": "https://example.edu/autograder",
        "type": "SoftwareApplication",
        "version": "v2"
      },
      "action": "Graded",
      "object": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "type": "Attempt",
        "assignee": "https://example.edu/users/554433",
        "assignable": "https://example.edu/terms/201801/courses/7/sections/1/assess/1?ver=v1p0",
        "count": 1,
        "dateCreated": "2018-11-15T10:15:00.000Z",
        "startedAtTime": "2018-11-15T10:15:00.000Z",
        "endedAtTime": "2018-11-15T10:55:12.000Z",
        "duration": "PT40M12S"
      },
      "eventTime": "2018-11-15T10:57:06.000Z",
      "edApp": "https://example.edu",
      "generated": {
        "id": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/users/554433/attempts/1/scores/1",
        "type": "Score",
        "attempt": "https://example.edu/terms/201801/courses/7/sections/1/assess/1/users/554433/attempts/1",
        "maxScore": 15.0,
        "scoreGiven": 10.0,
        "scoredBy": "https://example.edu/autograder",
        "comment": "auto-graded exam",
        "dateCreated": "2018-11-15T10:56:00.000Z"
      },
      "group": "https://example.edu/terms/201801/courses/7/sections/1"
    }
  ]
}


Debo admitir que no he podido identificar por mí mismo una diferencia significativa entre estas especificaciones.



Frase
IMS Learning Analytics Framework y Sensor API y Metric Profile (s) son los dos primeros componentes de ese marco
dice que aparentemente deberíamos esperar la aparición del Marco. Pero no pude encontrar información al respecto.



No sé por qué dos organizaciones acreditadas han presentado lo que personalmente creo que son especificaciones similares. La historia previa de SCORM (ADL) y la "coexistencia" de CP IMS, por ejemplo, mostró que los estándares pueden complementarse entre sí. Esta vez no veo tal adición.



All Articles