# Tin Can API

Tin Can API, rebatejat ara com Experience API ('xAPI), és un nou estàndard tècnic per a les aplicacions (programari) d'e-learning que estructura i permet emmagatzemar les interaccions d'una persona davant diferents activitats d'aprenentatge online. Es tracta d'una API, és a dir, d'una peça de programari que proporciona un conjunt de funcions d'ús general, l'objectiu del qual és capturar dades en un format consistent. A través d'aquesta API, sistemes molt diferents poden comunicar-se entre si de manera segura i intercanviar els fluxos d'activitats d'una persona o un grup de persones mentre interactuen amb diverses tecnologies i continguts. Aquesta informació en el seu conjunt és definida per l'estàndard com a «experiències d'aprenentatge» i s'expressa amb una sèrie de sentències simples.
Les experiències d'aprenentatge es registren en un LRS (Learning Record Store), que pot existir dins d'un Sistema de Gestió de l'Aprenentatge tradicional com Moodle, genèricament anomenats LMS (Learning Management System). El LRS també pot existir en forma independent, sent aquesta una de les diferències de l'estàndard Tin Can API amb el seu antecessor SCORM. Una de les idees darrere del desenvolupament de Tin Can API (i una altra diferència amb el seu estàndard antecessor SCORM) és que «podem aprendre a qualsevol moment, mitjà o lloc» i no solament dins d'un LMS. Per això Tin Can API permet el seguiment d'activitats a través de diferents dispositius, estiguin o no connectats a Internet. En aquest últim cas les Experiències d'Aprenentatge són guardades temporalment en el dispositiu fins que es reprengui o es produeixi la connexió. Una altra de les idees noves darrere del desenvolupament d'aquest estàndard és que es poden registrar i intercanviar entre els sistemes les experiències de l'anomenat aprenentatge no formal: activitats en jocs, lectures ocasionals d'articles, activitats en xarxes socials, etc. Això vol dir que un joc o un blog podrien ser compatibles amb aquest estàndard i sumar informació sobre de l'aprenentatge no formal d'un usuari.

## Resum

L'estàndard Tin Can API ha estat recentment rebatejat com «Experience API» i en alguns articles apareix com «La següent generació de SCORM». L'estàndard SCORM (Sharable Content Object Reference Model) ha estat l'estàndard de facto de l'empaquetat dels materials d'e-learning la destinació del qual era la publicació en un LMS (Learning Management System) com ho és la plataforma Moodle. Si bé un dels objectius originals de SCORM tenia a veure amb la "S" de Shareable, en la pràctica SCORM presentava algunes limitacions que el nou estàndard s'ocupa de superar. Tin Can API ofereix algunes possibilitats que SCORM no oferia, com les següents:
* Treu l'e-learning dels seus límits, portant-ho cap a fora del navegador web.
* Facilita l'ingrés de l'e-learning als dispositius mòbils.
* Permet més control sobre els continguts d'aprenentatge.
* Seguretat i solidesa per mitjà de Oauth.
* Transició de dispositius (iniciar l'aprenentatge en un mòbil, acabar-ho en un equip d'escriptori).
* Funcionalitats per trackejar dades de jocs i simuladors.
* Seguiment del funcionament al món real
* E-learning basat en equips
* Seguiment dels plans i objectius d'aprenentatge en forma d'analitiques d'aprenentatge que ens permeten d'obtenir informació intel·ligent de procés d'aprenenetatge.
D'altra banda, Tin Ca és una API de codi obert i hi ha un consorci d'organitzacions darrere de l'estàndard: una altra gran diferència amb SCORM. Tècnicament, és un servei REST o servei web de Transferència d'estat representacional que utilitza Javascript com el seu format de dades. El servei web permet als clients de programari llegir i escriure les experiències en el format d'oracions o "declaracions". En la seva forma més simple, aquestes declaracions estan en la forma "Jo vaig fer això", o més genèricament "subjecte-verb-objecte". Poden usar-se formulacions més complexes. També hi ha dins de l'estàndard una query API que permet filtrar les declaracions (per subjecte, objecte, verb, data, etc.) i una state API que permet reservar una espècie d'"espai zero" per a les aplicacions que consumeixen molts recursos.

## Història

SCORM té més de deu anys. ADL (Advanced Distributed Learning) els administradors de l'estàndard SCORM, van reconèixer la necessitat d'una especificació més nova i versàtil. ADL va publicar llavors un requeriment en la BAA (Broad Agency Announcement) sol·licitant assistència per a la millora de SCORM. La tasca va ser atorgada a Rustici Programari, capdavanter en la indústria de programari d'interoperabilitat per a e-learning. Rustici Programari va realitzar llavors nombroses entrevistes amb la comunitat d'e-learning per determinar quins factors eren els més importants a millorar i va desenvolupar una primera versió de la nova API. Aquest procés es va denominar Projecte Tin Ca.
En el seu llenguatge original, Tin Ca fa referència al joc infantil de comunicar-se per mitjà de dos llaunes lligades amb un fil.

## Estat actual

L'API està encara en desenvolupament. La versió actual és la 1.0.3 i ja hi ha més de 140 adoptants (30 d'octubre de 2015).
Les biblioteques que aplicaran l'APi a nivell de programació són (30 d'octubre de 2015):
* Javascript Library (TinCanJS): TinCanJS és usada en el prototip de Tin Can. Suporta Tin Can .90, .95, and 1.0.0
* Objective C Library: Suporta Tin Can .95, 1.0.0
* Java Library: suporta Tin Can .95 and 1.0.0
* PHP Library: suporta Tin Can 1.0.0+
* Python Library: suporta Tin Can 1.0.0+
* .NET Library: suporta Tin Can 1.0.0+

### Versions anteriors

* 1.0.1 Arxivat 2015-08-07 a Wayback Machine. i ja hi ha més de 70 adoptants (3 de gener de 2014)
* 1.0.0.
* 0.95 Arxivat 2014-01-06 a Wayback Machine. (segona versió de desenvolupament d'especificacions)
* versió 0.9 Arxivat 2013-02-11 a Wayback Machine. (versió de desenvolupament d'especificacions)
* version 0.8 Arxivat 2012-09-15 a Wayback Machine. (sortida oficial des de la BAA)

## Acrònims

Significat dels acrònims utilitzats :
| Acrònim (en) | Significat (en) | Significat (és) |
| API | Application Program Interface | Interfície de Programació d'Aplicació |
| LMS | Learning Management System | Sistema de Gestió de l'Aprenentatge |
| SCORM | Sharable Content Object Reference Model | Model de Referència d'Objectes de Contingut Compartible |
| LRS | Learning Record Store | Magatzem d'Experiències d'Aprenentatge |
| BAA | Broad Agency Announcement | Agència d'Anuncis Massius |

## Notes

* 1 2 Brandon, Bill. «Making History: mLearnCon 2012 Rocks Attendees». Making History: mLearnCon 2012 Rocks Attendees. Learning Solutions Magazine. Arxivat de l'original el 2012-08-06. [Consulta: 3 octubre 2015].
* 1 2 3 4 Brusino, Justin. «THE NEXT GENERATION OF SCORM: A Q&A WITH AARON SILVERS». THE NEXT GENERATION OF SCORM: A Q&A WITH AARON SILVERS. American Society for Training and Development. Arxivat de l'original el 2014-08-22. [Consulta: 31 juliol 2012].
* ↑ Whitaker, Andy. «An Introduction to the Tin Can API». An Introduction to the Tin Can API. The Training Business. Arxivat de l'original el 2013-03-10. [Consulta: 31 juliol 2012].
* 1 2 3 «Saltbox Developers Discuss Tin Can». Saltbox Developers Discuss Tin Can. Float Mobile Learning. [Consulta: 31 juliol 2012].
* 1 2 «eLogic Learning Partners with Rustici Software to be an Early Adopter of the Next Generation of SCORM Standards Known as the 'Tin Can API'». eLogic Learning Partners with Rustici Software to be an Early Adopter of the Next Generation of SCORM Standards Known as the 'Tin Can API'. SFGate.
* ↑ Gautam, Amit. «Tin Can: My First Impressions From mLearnCon 2012». Tin Can: My First Impressions From mLearnCon 2012. Upside Learning. Arxivat de l'original el 2012-08-27. [Consulta: 3 octubre 2015].
* ↑ Downes, Andrew. «I Want This: Tin Can Plans, Goals and Targets». Arxivat de l'original el 2013-07-24. [Consulta: 3 octubre 2015].
* ↑ Cerro Martínez, Juan Pedro. «TENDENCIAS Y APLICACIONES DE LAS TIC EN EL AMBITO EDUCATIVO».
* ↑ Tillett, Jeff. «Project Tin Can – The Next Generation of SCORM». Project Tin Can – The Next Generation of SCORM. Float Mobile Learning.
* ↑ «ADL Project Tin Can Research Summary». ADL Project Tin Can Research Summary. Advanced Distributed Learning. Arxivat de l'original el 2012-07-23.
* ↑ «From ADL Net: Experience API (xAPI) version 1.0.3». ADL.
* 1 2 «Tin Can API: Current Adopters». TinCanAPI.com. Rustici Software. Arxivat de l'original el 2012-07-22. [Consulta: 3 octubre 2015].
* ↑ «Tin Can API Client Libraries».
* ↑ Johnson, Andy. «From ADL Team Member… Andy Johnson: Experience API (xAPI) version 1.0.1 released». ADL.
* ↑ Downes, Andrew. «TinCanAPI.co.uk». Arxivat de l'original el 2013-04-22. [Consulta: 3 octubre 2015].
* ↑ «ADLnet.gov Tin Can Draft Specification». ADLnet.gov. Advanced Distributed Learning. Arxivat de l'original el 2012-09-15. [Consulta: 3 octubre 2015].