UNIVERSITÀ DEGLI STUDI ROMA TRE FACOLTÀ DI INGEGNERIA CORSO DI LAUREA IN INGEGNERIA INFORMATICA Tesi di Laurea Reingegnerizzazione di una Mediateca per l’automazione dei processi di creazione e gestione Candidato Paolo Papotti Relatore prof. P.Atzeni Università degli studi Roma Tre Correlatore Prof. M.Crudele Università Campus Bio-Medico Roma Anno Accademico 2001/2002 A Chiara e Alberto, Lina e Dario 2 Indice Indice.................................................................................................................................. 3 Indice delle figure ........................................................................................................... 6 Introduzione ...................................................................................................................... 7 1. E-learning: lo stato dell’arte ........................................................................... 10 1.1 Introduzione ....................................................................................................... 10 1.2 La formazione a distanza di terza generazione.................................................. 11 1.2.1 Formazione in rete .................................................................................... 13 1.2.2 Formazione mista...................................................................................... 15 1.3 Alcune soluzioni esistenti .................................................................................. 15 1.3.1 IBM........................................................................................................... 16 1.3.2 Microsoft................................................................................................... 17 1.3.3 CISCO....................................................................................................... 18 1.3.4 TILS .......................................................................................................... 19 1.3.5 Altre offerte............................................................................................... 20 2. La Mediateca-ELIS.......................................................................................... 21 2.1 Cosa è la Mediateca-ELIS?................................................................................ 21 2.2 Documentazione database esistente................................................................... 25 2.2.1 Dizionario dei dati .................................................................................... 25 • Gestione degli eventi della Mediateca ............................................................... 26 • Contenuti mediali di Mediateca......................................................................... 27 • Organizzazione dei questionari rispetto a Moduli e Unità ................................ 39 • Gestione degli utenti della Mediateca................................................................ 43 2.2.2 Regole aziendali........................................................................................ 47 2.2.3 Viste .......................................................................................................... 48 2.3 Use Case Model ................................................................................................. 53 2.4 Sequence diagram .............................................................................................. 56 3 2.5 Component diagram........................................................................................... 58 2.5.1 Security Management ............................................................................... 59 2.5.2 Server Components................................................................................... 62 3 I metadata per oggetti didattici ...................................................................... 63 3.1 Introduzione ....................................................................................................... 63 3.2 Standard proposti ............................................................................................... 66 3.2.1 IEEE LOM (http://ltsc.ieee.org/wg12/)........................................................ 66 3.2.2 IMS (http://www.imsproject.org/)................................................................ 68 3.2.3 Gestalt (http://www.fdgroup.co.uk/gestalt/).................................................. 69 3.2.4 Ariadne (http://www.ariadne-eu.org/) .......................................................... 70 3.2.5 Dublin Core (http://www.dublincore.org).................................................... 71 3.3 4 SCORM ............................................................................................................. 73 La soluzione adottata....................................................................................... 77 4.1 Analisi implementativa degli standard .............................................................. 77 4.2 Mediateca versione 4.0 e standard IMS- Dublin Core....................................... 79 4.2.1 General...................................................................................................... 84 4.2.2 Lifecycle ................................................................................................... 85 4.2.3 Technical................................................................................................... 85 4.2.4 Educational ............................................................................................... 86 4.2.5 Relation..................................................................................................... 88 4.3 5 Schema database Mediateca versione 4.0.......................................................... 89 I nuovi strumenti: ricerca e automazione...................................................... 90 5.1 Ricerca nel database........................................................................................... 90 5.1.1 5.2 Possibili aggiunte per la ricerca ................................................................ 92 Creazione nuove lezioni..................................................................................... 93 5.2.1 Creazione di lezione in presenza .............................................................. 93 5.2.2 Creazione lezioni dinamiche..................................................................... 96 5.3 6 Creazione moduli e corsi ................................................................................. 101 Implementazione............................................................................................ 102 6.1 Creazione di un corso ...................................................................................... 105 4 6.2 Creazione di un modulo................................................................................... 105 6.3 Creazione di una lezione statica da una lezione in presenza ........................... 106 6.4 Creazione di una lezione dinamica da risorse presenti nella Mediateca.......... 107 DEFAULT.ASP...................................................................................................... 108 CATALOGO.ASP .................................................................................................. 108 LEZIONE.ASP ....................................................................................................... 110 CONFERMA.ASP.................................................................................................. 113 START.ASP ........................................................................................................... 117 Conclusioni .................................................................................................................... 119 Appendice A .................................................................................................................. 122 A.1 XML: eXtensible Markup Language ................................................................... 122 A.2 SMIL: Synchronized Multimedia Integration Language..................................... 126 A.3 ASP: Active Server Page ..................................................................................... 137 Appendice B................................................................................................................... 142 ELIS: Educazione Lavoro Istruzione Sport ................................................................ 142 Centro ELIS ............................................................................................................ 142 Vivai d’impresa....................................................................................................... 143 Bibliografia .................................................................................................................... 146 Ringraziamenti.............................................................................................................. 151 5 Indice delle figure Figura 2-1 Una lezione della Mediateca ...........................................................21 Figura 2-2 Fasi di elaborazione: dalla ripresa alla lezione ...............................22 Figura 2-3 Gestione eventi................................................................................26 Figura 2-4 Gestione contenuti Mediateca.........................................................27 Figura 2-5 Unità, moduli, corsi.........................................................................33 Figura 2-6 Entità coinvolte ...............................................................................37 Figura 2-7 Gestione dei questionari di valutazione ..........................................39 Figura 2-8 Gestione utenti ................................................................................43 Figura 2-9 Use case del tutor ............................................................................53 Figura 2-10 Use case dell’utente ......................................................................54 Figura 2-11 Use case “comunica” dell’utente ..................................................55 Figura 2-12 Use case “segue lezione” dell’utente ............................................55 Figura 2-13 Sequence diagram della creazione lezione....................................56 Figura 2-14 Sequence diagram della richiesta di una lezione ..........................57 Figura 2-15 Component diagram struttura Mediateca......................................58 Figura 2-16 Component view sicurezza ...........................................................59 Figura 2-17 Sequence diagram login utente esterno.........................................60 Figura 2-18 Sequence diagram login utente interno.........................................61 Figura 2-19 Component view server ................................................................62 Figura 3-1 Convergenza fra SCORM e standard per l’e-learning ....................74 Figura 3-2 Rapporti fra i testi che descrivono lo SCORM ...............................75 Figura 4-1 Gestione contenuti Mediateca ver. 4...............................................89 Figura 5-1 Schema interfaccia lezione..............................................................97 Figura 5-2 Esempio con due frammenti video................................................100 Figura 6-1 Sequence diagram processo creazione corso, modulo, lezione ....103 Figura 6-2 Sequence diagram processo creazione lezione dinamica..............104 6 Introduzione In molti settori, negli ultimi anni, è diventata evidente l’importanza della didattica a distanza, dell'aggiornamento professionale, dell'auto-formazione. Esigenze particolarmente sentite in ambienti tecnici, dove il veloce susseguirsi di nuove tecnologie e metodologie è continuo, tanto da far aumentare costantemente la domanda di formazione in campi specialistici. Questo è ancora più visibile e tangibile nel settore dell’ICT (Information Communication Technology), per il quale sono nate improvvisamente molte società di formazione, mentre quelle esistenti hanno allargato la loro offerta puntando in maniera specifica su questi nuovi settori. Un fenomeno accompagnato dall’introduzione massiccia di corsi “on-line”, erogati attraverso la rete Internet, affiancati o addirittura alternativi a quelli di tipo tradizionale “in presenza”. L'efficacia di queste nuove tecniche didattiche è ancora causa di accesi dibattiti, ma risultati incoraggianti spingono verso una continua ricerca per sviluppare soluzioni più avanzate e didatticamente sempre più valide. E’ evidente come questo nuovo tipo di insegnamento permetta l’immagazzinamento di un’enorme quantità di risorse didattiche. Basti pensare ai materiali video e audio, oltre naturalmente ai testi, che vengono memorizzati in formato digitale, riutilizzabili quindi all’infinito con estrema facilità in tutto il mondo. Se proviamo ad allargare il discorso dalle risorse preparate appositamente per corsi all’immensa mole di informazioni presente gratuitamente in rete, possiamo cogliere l’importanza e la delicatezza del momento. E’ infatti un periodo di presa di coscienza di tutta questa potenzialità tuttora inespressa, ma si fatica a trovare una soluzione per poter sfruttare al massimo questa abbondanza di dati. Uno dei problemi più importanti ed evidenti è la mancanza di catalogazione di questo materiale. E, quando questa catalogazione esiste, si presenta il problema di 7 una certa anarchia nella decisione delle categorie o delle caratteristiche scelte per definire una risorsa. Naturalmente sono problemi che esistono da secoli, anche se in contesti diversi. Il termine Metadata (letteralmente “dati sui dati”) è usato tradizionalmente dai professionisti dell’informazione, come archivisti o addetti alla catalogazione in biblioteche e musei, per riferirsi a informazioni di catalogazione o indicizzazione creati da loro, necessari per descrivere un oggetto e migliorarne l’accesso. Se limitiamo l’approfondimento ai sistemi per la didattica, questi oggetti vengono allora definiti Learning Object, traducibile in “oggetti per l’insegnamento” o “oggetti didattici”. Mentre dagli anni sessanta esistono, in ambito bibliotecario, standard come il MARC (Machine-Readable Cataloging format) per definire regole e strutture uniche per i contenuti o come il LCSH (Library of Congress Subject Heading) per la catalogazione per argomento, per i learning object non esiste ancora un riferimento unico. Obiettivo del mio lavoro è stato trovare una soluzione applicabile a due problemi fondamentali dell’insegnamento a distanza: un’implementazione semplice ed economica dei metadata per i learning object e il riutilizzo delle risorse immagazzinandole con un livello di granularità ottimale. Attraverso lo studio dei learning object, e delle soluzioni di standardizzazione proposte per questi, è stato possibile modificare la struttura della Mediateca-ELIS per rendere il sistema conforme a più di uno standard internazionale. Il primo risultato di questo lavoro è la possibilità di interrogare il database della Mediateca in maniera profonda e con risultati innovativi. Attraverso delle soluzioni implementative, basate su strumenti disponibili sul mercato a costo zero, è ora possibile ricercare nell’archivio del sistema per creare in maniera automatizzata nuovi corsi attraverso la combinazione di lezioni già presenti all’interno. Questo porta grossi vantaggi per i tutor in fase di creazione e mantenimento di un corso, ma anche per gli studenti che vogliono approfondire degli argomenti o ricercare esercitazioni particolari per preparare un esame. Grazie alla granularità molto fine è stato inoltre possibile introdurre la possibilità di creare dinamicamente nuove lezioni da quelle già presenti nel 8 database. Questo utilizzo delle risorse sfrutta al massimo le potenzialità dei metadata e della catalogazione dei learning object in un database: il tutor - o lo studente - con una semplice interfaccia assembla i contenuti di risorse già presenti, realizzando una lezione pronta per l’utenza. Un altro risultato dell’introduzione dei metadata è infine la possibilità di scambiare dati con altri sistemi in maniera automatizzata, vedremo nel corso del lavoro i modi e gli strumenti per implementarlo. Dopo il primo capitolo sull’E-learning, introduttivo alla tematica dell’insegnamento a distanza, nel secondo è descritto lo scenario in cui si è lavorato con un’ampia documentazione della Mediateca nella sua terza versione. Da questa esperienza è stata avvertita l’esigenza di una maggiore attenzione al momento della catalogazione delle risorse e nel terzo capitolo sono state analizzate tutte le tematiche, con uno sguardo approfondito alle proposte di standard per i metadata dei learning object attualmente in competizione. Queste proposte vengono analizzate e applicate alla Mediateca come descritto nel quarto capitolo e portate al loro utilizzo nel quinto, con la descrizione dei processi di ricerca e di creazione delle lezioni in maniera dinamica. Nel sesto capitolo vengono esposte e giustificate le scelte implementative adottate, dalla progettazione alle realizzazione degli strumenti web per la creazione dei corsi e delle lezioni. Nelle appendici vengono analizzati alcuni strumenti utilizzati per lo sviluppo della tesi, come XML, SMIL e ASP, e viene presentato il centro ELIS, la struttura che mi ha accolto nei mesi di lavoro. Qui, all’interno del master per laureandi “Vivai d’impresa”, ho potuto vivere esperienze di valore sia professionale che umano, trovando una reale applicazione delle nuove tecnologie ai valori richiamati dalla sigla ELIS: l’educazione, il lavoro, l’istruzione e lo sport. 9 1. E-learning: lo stato dell’arte 1.1 Introduzione Quando si pensa alle possibili applicazione delle nuove tecnologie alla didattica, solitamente c’è un grandissimo entusiasmo pensando alle enormi potenzialità dei mezzi, ma spesso questi nuovi strumenti si limitano ad essere una scadente alternativa all’insegnamento “in presenza” con un docente. Naturalmente questi problemi nascono da un’interpretazione errata e limitata delle modalità d’uso delle tecnologie: l’innovazione e l’intervento produttivo non consistono certo nella sostituzione del ruolo centrale dell’insegnante (come a volte viene invece fatto). Al contrario, si tratta di ripensare il modello didattico da utilizzare, progettando e sperimentando nuove dinamiche tra docenza e studenti. Una lezione a distanza che sappia sfruttare tecnologie multimediali su una rete di utenti, come Internet, ha l'importante caratteristica di essere accessibile istantaneamente ad una platea molto ampia. L'interattività degli studenti durante la lezione è però naturalmente limitata dall’utilizzo di una tecnologia legata a Internet: forum, mailing list, e-mail, bacheca e altri strumenti di interazione con l'insegnante cercano di limitare questo problema. In questi paragrafi non verrà affrontato il discorso da un punto di vista prettamente pedagogico, ma si porrà l’accento sugli aspetti più significativi riguardo ai nuovi strumenti tecnologici applicati alla formazione a distanza. 10 1.2 La formazione a distanza di terza generazione La "formazione a distanza di terza generazione" è un nuovo tipo di FaD, sviluppatasi negli ultimi anni e che va ad affiancarsi ai due precedenti modi di erogare formazione attraverso la tecnologia, denominati di prima e seconda generazione. Nelle precedenti generazioni di formazione a distanza il materiale didattico è prodotto e distribuito agli utenti e si assegna una priorità molto bassa al processo comunicativo, che è reso per lo più a senso unico e molto raramente in maniera biunivoca. Questa limitazione nella comunicazione ha creato dei forti pregiudizi in questo tipo di formazione. • L'apprendimento della prima generazione è stato praticato durante tutta la storia della civiltà occidentale, ma si è sviluppato in modo efficace in termini quantitativi quando, alla fine del XIX secolo, le nuove tecnologie di stampa ed il sistema ferroviario hanno reso possibile la distribuzione di grosse quantità di materiale a gruppi di alunni geograficamente lontani. Questo modello di tecnologia prevede la distribuzione di corsi per via postale attraverso materiali didattici su supporto cartaceo, anche tecnologicamente avanzati (schede, questionari, unità operative, moduli valutativi). Per la valutazione delle risposte degli utenti e per la stessa produzione di materiali, sono utilizzate tecnologie predisposte presso l'erogatore, mentre non è necessaria una tecnologia presso l'utente. I processi di feedback studente-tutor e tutor-studente sono limitati ai periodi in cui i programmi prevedono che gli alunni sottopongano i compiti svolti. • La "seconda generazione" di insegnamento a distanza, sviluppatasi nel ventesimo secolo e in particolare alla fine degli anni sessanta, è chiamata anche insegnamento a distanza multimediale ed integra l'uso degli stampati con sistemi 11 audiovisivi, CD e computer. I processi di feedback sono molto simili a quelli visti per la "prima generazione", ma includono la consulenza telefonica ed alcune lezioni individuali con eventuali attività come, ad esempio, dei seminari. Parallelamente all'evolvere della tecnologia si sono fatti strada i sistemi di Formazione a distanza in rete di terza generazione, che non hanno alcuna pretesa di sostituire né la formazione tradizionale in presenza, né le due precedenti modalità di erogazione di corsi a distanza. Questo recente tipo di formazione si presenta come una possibilità ulteriore all'interno del panorama didattico, che può essere più funzionale in particolari contesti formativi e non in altri, che richiede un'attenta analisi dei bisogni e una valutazione dei costibenefici che può portare. Ad esempio, dove il numero di fruitori è particolarmente alto, un sistema di terza generazione, in cui gioca un ruolo essenziale l'interazione e la collaborazione in piccoli gruppi, può risultare meno funzionale rispetto ad uno di seconda o di prima generazione, che permette la distribuzione e fruizioni di materiali didattici su larga scala e a basso costo. Con la formazione a distanza di terza generazione si fa strada l'idea della comunicazione e dell'apprendimento come processi sociali. Questo modo di porsi rispetto al percorso di insegnamento da una parte, e quindi di apprendimento dall’altra, è nuovo rispetto alle generazioni precedenti e porta a rivedere il modo di progettare, condurre e valutare i corsi formativi, alla luce anche di una diversa centralità che il discente assume. A questo scopo devono essere progettati ambienti di apprendimento virtuale idonei a garantire, oltre che la fruizione di materiali, anche l'interazione e la collaborazione tra i corsisti, le due strategie educative attualmente maggiormente utilizzate. Gli studenti diventano i veri protagonisti del percorso formativo e alternano la loro attività tra momenti di riflessione individuale e momenti di apprendimento collaborativo. Diventa essenziale in modo diverso e più preponderante rispetto alla formazione tradizionale il supporto di uno staff di tutor, che di volta in volta assume durante il corso il ruolo di assistente, moderatore, organizzatore di attività e di lavori di gruppo ecc. 12 Oggi le tecnologie sono abbastanza mature da permettere il passaggio a questi sistemi di ultima generazione, come testimonia la Mediateca-Elis e i suoi corsi. 1.2.1 Formazione in rete La Online Education, per usare la terminologia della Harasim (“Online Education: A new Domain”, 1989) rappresenta un nuovo dominio che riprende attributi propri dell'apprendimento in presenza e della Distance Education, ma che presenta caratteristiche proprie. Gli elementi che caratterizzano questo nuovo dominio sono l'indipendenza dal tempo (asincronicità) e dallo spazio, e la possibilità di comunicare in maniera interattiva "molti a molti". Risulta evidente che i modelli teorici e pratici propri della formazione in presenza non sono adeguati per sostenere l'Online Education. Nella più abituale formazione “faccia a faccia” è possibile comunicare molti a molti, ma l'interazione rimane sottoposta ai vincoli spaziali e temporali. Nella Distance Education, sebbene si perda la dipendenza spazio-temporale, diminuiscono i canali comunicativi e gli unici modelli concessi sono quelli "uno a molti" o "uno a uno" (ancora Harasim, 1989). Una delle peculiarità della formazione in rete, rispetto alla più tradizionale formazione a distanza e a quella in presenza, consiste nella maggior attenzione che si pone all'interazione tra i partecipanti al processo formativo (studenti, tutor, docenti). L'elemento chiave dello sviluppo concettuale di questo modello è, come già accennato, l'idea di comunicazione e apprendimento come processi sociali. Dal punto di vista tecnologico esistono, ormai, molte piattaforme interattive adatte a promuovere l'apprendimento come processo sociale e l'attività didattica più in generale. Molte sono nate in ambito aziendale con precise funzioni produttive e di mercato, con prezzi proibitivi e con finalità diverse rispetto al mondo pedagogico e a quello didattico. La formazione in rete è organizzata in una o più classi virtuali e prevede l'alternarsi di momenti di studio individuale a momenti di interazione a distanza. 13 Di solito anche la formazione in rete più "pura" non è esente dall'organizzare incontri in presenza: quasi obbligatori, per la buona riuscita del corso, si possono considerare un incontro all'inizio e uno alla fine del percorso formativo. L'incontro iniziale è finalizzato a favorire la socializzazione tra i corsisti e in alcuni casi a determinare parte di un contratto formativo, cioè di un patto in cui con i corsisti ci si accorda su alcune parti del corso. L'incontro finale ha l'intenzione di essere un momento di sintesi di quanto è stato fatto, un momento per raccogliere le impressioni e le riflessioni critiche utili per i corsi successivi, o, come nel caso della Mediateca, è l’occasione per svolgere gli esami in presenza. Inoltre, proprio in questa ottica, è stato progettato il sito della Mediateca, dove, ad esempio, nella classe virtuale sono state inserite le foto degli alunni per favorire la socializzazione, ed è stata implementata una chat, molto semplice da utilizzare, che favorisce lo scambio di pareri sui corsi, ma anche semplici battute fra “compagni di classe”. In sintonia con i modi di formazione dell'adulto, dove la condivisione del vissuto personale può giocare un ruolo molto forte, i partecipanti sono organizzati in comunità di apprendimento, per permettere la riduzione dell'isolamento del singolo e aiutare a valorizzare le conoscenze pregresse a favore della crescita collettiva del gruppo. La comunicazione all'interno dei gruppi virtuali può essere gestita attraverso sistemi di computer conference (Berge, 1995), che tra le loro potenzialità offrono la possibilità di inviare e ricevere messaggi elettronici, di condividere file, che talvolta possono essere organizzati per aree tematiche. Anche questo aspetto è presente nella Mediateca, dove è evidente come gli utenti gradiscano sia la possibilità di condividere il materiale on-line, scambiando file su un’area comune, che i forum tematici dove leggere o lasciare consigli e osservazioni sui corsi. Quando è possibile questa tecnologia è integrata con la videoconferenza (Kaye, 1992) attraverso cui si possono avere anche degli incontri formativi con esperti esterni o occasioni di confronto col tutor. Questo avviene anche nella Mediateca anche se con canale a senso unico per quanto riguarda il flusso audio 14 e video: il tutor è trasmesso in diretta a tutti gli studenti, i quali possono comunicare con lui, e fra loro, solo attraverso la chat testuale. 1.2.2 Formazione mista Per formazione mista si intende un tipo di formazione a distanza dove si alternano i processi di insegnamento e di apprendimento tra momenti di lezione in presenza e momenti di fruizione a distanza. Nasce dal fatto che non sempre è possibile attuare strategie pure di formazione in rete: alcuni contenuti potrebbero mal adattarsi alla modalità di comunicazione tipica della Computer Mediated Communications (CMC), basata prevalentemente su testo scritto, mentre sarebbero più facilmente e meglio veicolabili se trasmessi alternando momenti formativi in presenza e a distanza. Questi due momenti sono complementari tra loro: l’attività in presenza, fatta di lezioni, esercitazioni e seminari, dovrebbero gettare le basi per le successive attività a distanza. 1.3 Alcune soluzioni esistenti Numerose sono le proposte di servizi, sia gratuiti che a pagamento, per materiale didattico on-line per tutti i settori ed a tutti i livelli. Spesso i prodotti commerciali non danno alcuna indicazione sul procedimento di produzione e di archiviazione del materiale didattico, e non offrono nessuna possibilità di interfacciare l'archivio con altri software o motori di ricerca. Anche se questo approccio può sembrare naturale e scontato per aziende che si mantengono vendendo corsi on-line, c'è da sottolineare che la carenza di standard aperti in questo settore ha danneggiato tutte le parti coinvolte, sia quelle a scopo di lucro che quelle non profit. Soluzioni proprietarie limitano il riutilizzo del materiale archiviato, e riducono moltissimo l'efficacia del retrieving. La proprietà 15 intellettuale, e quindi l'eventuale profitto, deve essere nei contenuti e non nello schema di catalogazione delle risorse disponibili. In realtà solo di recente si è seriamente affrontato il problema di definire standard di riferimento per la didattica a distanza. Il problema è molto complesso data la grande varietà di materiale didattico e le diverse tecnologie utilizzate, spesso non standard. Le tecnologie utilizzate, infatti, sono molto diverse, da un semplice utilizzo di pagine HTML ad un avanzato uso di tecniche multimediali e di realtà virtuale. È difficile classificare in diverse categorie le varie soluzioni commercialmente disponibili. Spesso si tratta di prodotti o servizi che utilizzano approcci originali con tool che realizzano diverse funzionalità efficaci in alcuni contesti. Si è scelto di mostrare molto brevemente alcune soluzioni per la didattica a distanza proposte da quattro grandi aziende al fine di comprendere la situazione attuale sul mercato e le prospettive future. Alla fine del capitolo verranno elencate una selezione delle risorse di e-learning trovate in rete, verificate al Marzo 2003. 1.3.1 IBM IBM offre varie soluzioni per la didattica raggruppate con il nome: IBM Learning Services (www-3.ibm.com/services/learning). In particolare per la didattica a distanza c'è una serie di soluzioni nell’area Training Center. Per l’e-learning ci sono tre proposte: 1. accesso generale: una soluzione basata su Internet, con punti di ingresso e videate cui gli studenti possono accedere ogni volta che ne hanno bisogno. La soluzione, basata su IBM LearninSpace 5, include attività amministrative quali l'iscrizione degli studenti in classi, un addestramento didattico basato su computer (comprendente la multimedialità e l'addestramento via rete) e un profilo delle conoscenze acquisite dallo studente; 16 2. collaborativo: l'accesso controllato prevede un sistema di addestramento personalizzato su ciascuno studente che segue un suo curriculum di formazione prestabilito. Le attività di gestione ed amministrazione sono automatizzate, lasciando all'istruttore l'incarico di fornire supporto ad alto valore aggiunto. Il prodotto che realizza questa soluzione distributed learning con accesso controllato è il Distributed Learning System; 3. portale della formazione: uno strumento che permette agli utenti di attingere in maniera semplice alla formazione erogata sotto forma di corsi on-line, ai documenti informativi necessari al proprio lavoro, ai consigli/conoscenze degli esperti, agli strumenti di comunicazione e che permette all'azienda di gestire le risorse e le informazioni rese disponibili, verificando l'effettivo utilizzo ed efficacia dei corsi predisposti. Le soluzioni IBM valutate non prevedono un utilizzo di architetture di metadata standard per gli oggetti didattici. Non sono fornite neanche informazioni sui formati interni del materiale didattico. 1.3.2 Microsoft Microsoft offre ampio spazio sulle proprie pagine web all'educazione ed all'insegnamento a distanza ed offre numerosi prodotti per la didattica. Il Microsoft Classroom Teacher Network (MCTN) e Microsoft TechNet for Education sono rivolti, per lo più, all'insegnamento dell'informatica, in particolare dei prodotti Microsoft. Appare grossa l'attenzione per la scuola inferiore (K-12) e le superiori, ed in molti meeting e conferenze organizzate, si discute dei problemi collegati. Molte pagine e diversi siti, ma in realtà non c'è una grande quantità di materiale utile on line né per gli studenti né per gli insegnanti. 17 Piuttosto separato dagli altri servizi, c'è Microsoft e-Learn (www.microsoft.com/elearn), decisamente più focalizzato sulle tecnologie disponibili per la didattica a distanza. In questo settore Microsoft ha rilasciato LRN 3.0 (Learning Resource iNterchange, pronunciato: learn), una specifica di strutture dati per applicazioni per la didattica. LRN fa riferimento a IMS Content Packaging Specification lo standard per i metadata, analizzato nel quarto capitolo del volume, sviluppato da un consorzio di imprese per lo più americane. 1.3.3 CISCO Cisco offre diverse soluzione molto interessanti per l’e-learning. Un importante corso, il Networking Academy (www.netacad.it), è basato su 280 ore di lezioni on-line costantemente aggiornate, erogate nell’arco di sei mesi. Per quanto riguarda i metadata, Cisco ha sviluppato un proprio standard proprietario chiamato RIO (Reusable Information Object). All’interno di questa strategia sono coinvolti: • una metodologia di progettazione formativa • la struttura del contenuto • i metadata • il formato dei dati Con questa soluzione attualmente vengono erogati vari tipi di corso con diversi supporti, in questo caso è infatti possibile accedere ai formati interni del materiale didattico. 18 1.3.4 TILS Telecom Italia Learning Services è nata nel settembre del 2002 dall’unione di alcune società del gruppo Telecom, tutte con esperienza nell’ambito della formazione, in un'unica realtà operativa. Le competenze portate da queste società posano ora su un’unica piattaforma, per fornire la copertura dei processi di base dell'e-learning e per migliorare il collegamento fra il processo formativo e le scelte che riguardano la gestione del personale. Attraverso soluzioni integrate "end to end" vengono offerti oltre 800 corsi, focalizzati in particolare nelle aree dell'Information & Communication Technology e del Business Management. La piattaforma su cui è basato il sistema -il Learning Management Systemintegra gli strumenti per gestire sia l’offerta formativa tradizionale che quella su web. Il LMS gestisce quindi l’aula tradizionale come quella classe virtuale; amministra i ruoli professionali ed i cammini formativi; consente di controllare le strutture logistiche ed i passaggi organizzativi, abilita alla gestione del catalogo e dei contenuti dei corsi, è in grado di monitorare le docenze e lo skill management. L’insieme dei servizi LMS è offerto ad ogni tipo di utenza, dal singolo alla grande impresa, garantendo facilità d’utilizzo senza perdere la compatibilità con alcuni requisiti degli standard internazionali (Aicc, Scorm, IMS) come gestibilità, integrabilità e usabilità. Attraverso questa piattaforma vengono offerti servizi comuni a tutti i corsi: • Customer Relationship Management, per i legami fra aziende e clienti; • Live collaboration, per la comunicazione fra gli utenti e con esperti; • Business Intelligence, per una creazione automatica e dinamica di report dell’utilizzo degli strumenti; • Servizi di Community, strumenti per migliorare la comunicazione fra i corsisti: forum, news, newsgroup, faq; 19 • Delivery sincrono, l’offerta di lezioni in real-time attraverso Internet; • Tutorship, incontri uno-a-uno fra studenti ed esperti per risolvere richieste di assistenza; • Knowledge Management, uno strumento di informazione e aggiornamento costante sui temi di interesse selezionati dall’utente: il KM identifica le informazioni più interessanti ed affidabili e le invia attraverso posta elettronica o cartacea, individualmente e in automatico. Scopo del TILS è quindi garantire soluzioni complete e integrate, dalla piattaforma di e-learning al billing, fino a una rete dedicata. 1.3.5 Altre offerte Una selezione delle risorse in rete che offrono strumenti e servizi per l’elearning: NewMindsets Inc. (www.newmindsets.com) Click2learn (www.click2learn.com) DigitalThink (www.digitalthink.com) Docent (www.docent.com) Edulife (edulife.centrorisorse.it/) KnowledgeNet (www.knowledgenet.com) Knowledge Planet (www.knowledgeplanet.com) Learn2.com (www.tutorials.com) NETg (www.netg.com) Ninth House Network (www.ninthhouse.com) Saba (www.saba.com) SkillSoft (www.skillsoft.com) 20 2. La Mediateca-ELIS 2.1 Cosa è la Mediateca-ELIS? Il sistema Mediateca-ELIS nasce dalla volontà di applicare le nuove tecnologie alla lezioni filmate ogni giorno nella Scuola di Formazione Superiore del Centro ELIS. Oltre alla ripresa vengono raccolte le slide delle presentazioni elettroniche, i lucidi proiettati e gli appunti che il professore scrive sulla lavagna. Il materiale viene poi codificato digitalmente con RealVideo e combinato in una pagina SMIL composta da filmato, lucidi (o slide o fotografie della lavagna) e voce dell’insegnante. Figura 2-1 Una lezione della Mediateca 21 Con questo sistema di produzione di lezioni, con tempi e costi molto bassi, è stato possibile organizzare il primo corso a distanza con rilascio di certificazione IFTS in collaborazione con il Politecnico di Milano. Corso conclusosi con un’alta percentuale di promossi soprattutto fra le persone più impegnate in altre attività lavorative, ma fortemente motivate, disposte anche a studiare di notte per superare i moduli per tutta la durata del corso. Il sistema di produzione dietro la Mediateca è rappresentato molto bene nei quattro passi rappresentati in questo diagramma: Figura 2-2 Fasi di elaborazione: dalla ripresa alla lezione E’importante sottolineare come le soluzioni tecnologiche della MediatecaELIS permettano di seguire le lezioni in streaming via web anche con un 22 semplice modem a 56 Kbyte: una connessione dial-up è quindi sufficiente per seguire la lezione senza perdere audio o qualità delle immagini. Come è stato appena descritto, la prima applicazione è quindi la didattica a distanza, ma una soluzione interessante e innovativa promossa dall’ELIS è quella utilizzare le lezioni della Mediateca anche all’interno di corsi “in presenza”. Attraverso le risorse della Mediateca si può raggiungere facilmente lo scopo di fornire materiale di introduzione a concetti di base, con una spesa molto limitata e con un percorso individuale per ogni studente. Una volta che tutti gli studenti hanno un livello soddisfacente di conoscenza, si arriva allora ad una lezione reale con una forte interattività con il docente, con molte più possibilità per chiarire e sviluppare, attraverso esercitazioni e approfondimenti, i concetti appresi. Il vantaggio delle lezioni codificate in RealVideo con il formato SMIL rispetto ai libri è l’utilizzo dell’audio e del video e, chiaramente, di essere in formato elettronico e quindi indicizzabili e strutturabili come se fossero ipertesti. Fornendo questo materiale, sempre reperibile per lo studente, si risolve il problema di gruppi di studenti spesso molto disomogenei nella preparazione di base: si evitano lezioni ripetitive per molti o troppo difficili per altri e si valorizzano al massimo le lezioni con il docente che possono davvero essere interattive e più produttive ai fini dell’apprendimento. Naturalmente il materiale multimediale può tornare utile agli studenti anche dopo la lezione in presenza con il docente: la modularità e l’indicizzazione delle lezioni all’interno della Mediateca permettono infatti un facile reperimento delle parti che si vogliono rivedere per chiarimenti e approfondimenti, con la possibilità di rivedere il materiale quante volte si desidera secondo le proprie esigenze e i propri tempi. Dal punto di vista della distribuzione, nel sistema Mediateca-ELIS è possibile trovare tutti e tre le possibili tipologie di comunicazione della didattica a distanza: 23 1. Differita Archivio indicizzato di lezioni consultabili dagli utenti in qualsiasi momento. Permette all’utente di scegliere di rivedere un passaggio quante volte desidera ed è possibile consultare anche solo una parte delle lezione. 2. Diretta monodirezionale Trasmissione audio/video in diretta dell'evento didattico a tutti gli utenti connessi alla rete. Possibilità di interazione diretta solo per gli studenti presenti. 3. Diretta bidirezionale Trasmissione dell’evento in diretta con possibilità di interazione anche da parte degli studenti remoti attraverso una finestra di chat con il docente. Questa diverse erogazioni delle lezioni lasciano aperte tutte le possibilità: sono state fatte lezioni in diretta mono e bidirezionali, così come incontri con il tutor di un corso per chiarimenti e spiegazioni aggiuntive, ma naturalmente esiste online un archivio di lezioni catalogate e sempre disponibili per la fruizione da parte dell’utente. Principalmente, per l’implementazione dei corsi, la soluzione adottata è stata la differita basata sull’archivio della Mediateca. Questo sistema permette infatti di: riutilizzare all’infinito il lavoro di un professore ripreso durante una lezione con un forte abbattimento dei costi affrontare gli attuali limiti tecnologici, come la scarsa diffusione delle connessioni veloci e quindi l’impossibilità di realizzare comunicazioni bidirezionali multimediali con gruppi di studenti connessi in rete offrire corsi ad utenti su diversi fusi orari, con diverse disponibilità di tempo, diverse curve di apprendimento Senza entrare nei dettagli dell’implementazione dal punto di vista tecnologico, è importante sottolineare anche i vantaggi tecnici portati dalla scelta della differita. E’possibile infatti distribuire in maniera migliore i filmati, perché 24 diminuisce la probabilità di sovrapposizione di un numero elevato di utenti collegati nello stesso momento. Inoltre è così possibile far scaricare parte delle informazioni (in particolare le slide di supporto) per lasciare più banda possibile allo streaming audio e video. 2.2 Documentazione database esistente La base di dati della Mediateca, su cui ho basato il mio lavoro, è implementata su una piattaforma SQL Server della Microsoft ed è stato disegnata da Michele Crudele e Giuseppe Cinque nel 2000 in varie fasi. Il progetto definitivo è arrivato alla versione 3.0, con cui è partito il primo corso in Italia a distanza con certificazione IFTS (Regione Lombardia) nel settembre 2001. Con l’utilizzo effettivo della base di dati per i primi corsi, sono usciti fuori piccoli cambiamenti e aggiunte implementate da Crudele e Gianluca Sartori che hanno portato in pratica alla versione 3.1 documentata in queste pagine. 2.2.1 Dizionario dei dati In un sistema per la gestione delle basi di dati, il dizionario dei dati è una tabella globale che contiene la definizione di tutti gli oggetti presenti nel database. La tabella contiene informazioni sui dati contenuti nel database, tra cui le informazioni riguardanti i record e i tipi dei campi, gli intervalli di valori accettabili e le informazioni riguardanti le autorizzazioni per l´accesso ai record. Il dizionario dei dati è un file di sistema e non un file utente. È anche noto come file di catalogo o repository. Il dizionario è’ stato rappresentato con una tabella per ogni entità (il nome è preceduto da una t) o relazione (il nome è preceduto da una u) con: 25 Versione del database (con A per campi aggiunti, M per quelli modificati e E per gli eliminati nella versione 3.1 rispetto alle precedenti) Nome del campo Tipo dei dati Descrizione informale Regole (NOT NULL, DEFAULT, …) Esempi Il dizionario è stato realizzato mettendo in risalto le diverse funzioni del database, alcune entità sono ripetute in quanto centrali in diversi contesti. Versione: 3.1 - Nome del Database: Mediateca - Target DBMS: SQL Server • Gestione degli eventi della Mediateca Figura 2-3 Gestione eventi "tEvent" description: Eventi (chat con il tutor, esami, dirette) tEvent Version FieldName Type 3.1A IDEvent int() Description Rules example Identificativo PRIMARY KEY, univoco NOT NULL, AUTO INCREMENT 3.1A IDUser 3.1A Descripti nvarchar Descrizione on (128) dell'evento StartingD char(19) ateTime 3.1A int() NOT NULL 26 NOT NULL NOT NULL Selezioni in presenza 2002-01-15 20:00 Formato Standard ISO 3.1A 3.1A 3.1A EndingDat char(19) eTime Location nvarchar (128) URL NOT NULL Cefriel – via Fucini 2 Milano http://mediatec a.elis.org/icta d nvarchar (250) "uCourseEvent" description: Eventi collegati al CORSO uCourseEvent Version FieldName Type Description • Rules 3.1A IDCourse int() Corso in questione NOT NULL 3.1A IDEvent int() Evento collegato al Corso NOT NULL Contenuti mediali di Mediateca Figura 2-4 Gestione contenuti Mediateca 27 example "tResource" description: Una RISORSA coincide con una parte indirizzabile di un MEDIUM. Esiste almeno una risorsa per ogni MEDIUM che descrive il medium stesso nella sua integrità. Più risorse possono essere create per un MEDIUM dando la possibilità di individuare una parte specifica dello stesso. (Es.: Una o più pagine di un documento PDF oppure uno 'spezzone' di un video) tResource Version FieldName Type Description Rules 3.0 IDResource int() Identificativo univoco PRIMARY KEY, NOT NULL, AUTO INCREMEN T 3.0 IDLanguage int() Linguaggio utilizzato dalla risorsa NOT NULL A3.1 IDSource int() Eventuale provenienza della risorsa. Se presente deve essere un URI dell'originale diverso da "teca" 3.0 IDMedium int() Medium al quale la risorsa fa riferimento NOT NULL 3.0 DateCreated char(10) Data di creazione NOT NULL 3.0 DateIssued char(10) Data pubblicazione NOT NULL char(10) Data ultima modifica. Coincide con DateCreated se non è stata fatta nessuna modifica NOT NULL 3.0 DateModified 3.0 DateTimeValid char(19) From Valido DA 3.0 DateTimeValid char(19) To Valido fino A M3.1 Title M3.1 DescriptionAb nvarchar(50 Breve descrizione stract 0) A3.1 DurationFrom char(8) Indica il secondo iniziale A3.1 DurationTo char(8) Indica il secondo finale A3.1 PageFrom int() Pagina iniziale A3.1 PageTo int() Pagina finale 3.0 IsMPP bit() Specifica se si tratta di una risorsa MPP. Tutto nvarchar(25 Titolo della risorsa NOT NULL 0) 28 Default 0 example ciò che non è MPP viene considerato come 'Materiale aggiunto'. "uResourceRight" description: Relazione che contiene i diritti di proprietà di una risorsa uResourceRight Version FieldName Type Description 3.0 IDResource int() 3.0 IDRight Rules Risorsa alla quale vengono riconosciuti i diritti int() Diritto riconosciuto example NOT NULL NOT NULL "tRight" description: Informazioni sui diritti (d'autore o simili) tRight Version FieldName Type Description 3.0 IDRight int() PRIMARY KEY, Identificativo NOT NULL, AUTO univoco INCREMENT M3.1 Descrizione Description nvarchar(250) del diritto Rules NOT NULL example Copyright ELIS, Copyright LINFA "tLanguage" description: Linguaggio utilizzato dalla risorsa tLanguage Version FieldName Type Description Rules example PRIMARY KEY, NOT Identificativo NULL, AUTO univoco INCREMENT 3.0 IDLanguage int() M3.1 Lingua Description nvarchar(250) utilizzata NOT NULL nella risorsa Inglese "tMedium" description: Un MEDIUM può essere considerato l'unità informativa della Mediateca. Consiste in un file su disco che può essere un video, un file musicale, del testo, un immagine o qualsiasi altro file dati. 29 tMedium Version FieldName 3.0 E3.1 IDMedium IDProtocol Type Description Rules int() Identificativo univoco PRIMARY KEY, NOT NULL, AUTO INCREMENT int() Protocollo utilizzato per consultare il medium. In base al protocollo si distingue anche la locazione fisica del medium, il cui NOT NULL file può risiedere nelle directory del WEB Server (protocollo HTTP) oppure in quella del Real/Media Server Programma consigliato per la NOT NULL visualizzazione del file example 3.0 IDViewer int() M3.1 FolderName Cartella nella nvarchar(250) quale è memorizzato NOT NULL 103 il file M3.1 FileName Nome del file nvarchar(250) contenente il medium 3.0 FileSize int() 3.0 FileDuration int() Durata del file in secondi 832 M3.1 FileFrameSize nvarchar(20) Dimensione in PIXELxPIXEL 1024x768 3.0 FilePages int() Numero di pagine del file Source Provenienza del file. Corrisponde ad un codice se è un VHS della Mediateca ELIS. In nvarchar(250) genere può essere un URL di riferrimento oppure una breve descrizione libera 3.0 NOT NULL video.rm Dimensione del file NOT NULL 100 in MByte 30 "tViewer" description: Contiene i programmi utilizzati per visualizzare i MEDIUM. Ad ogni MEDIUM è associato un programma. tViewer Version FieldName Type Description Rules int() Identificativo univoco PRIMARY KEY, NOT NULL, AUTO INCREMENT 3.0 IDViewer M3.1 Nome e versione del programma utilizzato per NOT NULL Description nvarchar(250) vedere il MEDIUM (in formato comprensibile) example RealPlayer 8 "tProtocol" description: Lista dei protocolli di comunicazione utilizzati per visionare un medium. Il protocollo viene utilizzato anche per sapere in che directory ricercare i medium. Se HTTP nella root del server web, se RTSP o MMS nella root del Real/Media Server. La tabella è stata rimossa dal progetto originale. tProtocol Version FieldName Type Description Rules example E3.1 IDProtocol int() PRIMARY KEY, NOT Identificativo NULL, AUTO univoco INCREMENT E3.1 Description nvarchar(256) Nome del protocollo NOT NULL HTTTP, RTSP, MMS "tEncodingScheme" description: Definisce i tipi possibili di codifica tEncodingScheme Version FieldName Type 3.0 IDEncodingScheme int() M3.1 Description Description Rules example PRIMARY Identificativo KEY, NOT univoco NULL, AUTO INCREMENT Nome della nvarchar(250) codifica utilizzata 31 NOT NULL MESH2001, CDD XI "tSubject" description: Argomento della risorsa, è possibile catalogare rispetto a diversi schemi TSubject Version FieldName Type Description Rules example PRIMARY KEY, NOT Identificativo NULL, univoco AUTO INCREMENT Codifica con la quale viene NOT NULL identificato 3.0 IDSubject 3.0 IDEncodingScheme int() M3.1 Subject nvarchar(250) Code Codice attribuito alla risorsa 193.120.1507. diverso a NOT NULL oppure nvarchar(250) seconda 011.137 dell'Encoding Scheme associato M3.1 int() Introduzione Descrizione NOT NULL a UNIX dell'argomento "uResourceSubject" description: Relazione tra Risorsa e gli argomenti associati uResourceSubject Version FieldName Type Description Rules 3.0 IDResource int() Risorsa in oggetto NOT NULL 3.0 IDSubject int() Oggetto della risorsa NOT NULL 32 example Figura 2-5 Unità, moduli, corsi "tUnit" description: Una UNIT è un insieme ordinato di risorse. Ogni UNIT raggruppa una o più risorse coerenti allo scopo che vuole raggiungere (Può essere equiparata ad una lezione in un corso) tUnit Version FieldName Type Description Rules 3.0 IDUnit int() PRIMARY KEY, NOT Identificativo NULL, univoco AUTO INCREMENT 3.0 Title nvarchar(128) Titolo della Unit M3.1 Breve descrizione DescriptionAbstract nvarchar(500) del contenuto della Unit 33 NOT NULL example "uUnitResource" description: Relazione tra Unit e Resource. Contiene il numero che identifica la posizione della risorsa all'interno dell'insieme ordinato della Unit alla quale appartiene uUnitResource Version FieldName Type Description 3.0 IDUnit int() Unit in oggetto 3.0 IDResource int() Risorsa presente nella Unit Numero di sequenza della 3.0 SequenceNumber int() risorsa oppure 0 (Zero) nel caso non abbia sequenza Rules example NOT NULL NOT NULL NOT NULL "tModule" description: Un modulo è un raccoglitore di Unit. Ogni modulo tratterà un argomento sviluppato un più Unit(Lezioni) da seguire secondo un ordine preciso tModule Version FieldName 3.0 IDModule Type int() 3.0 Title nvarchar(128) 3.0 Descriptio nvarchar(512) nAbstract Description Rules example Identificativo univoco PRIMARY KEY, NOT NULL, AUTO INCREMEN T Titolo del Modulo Metodologia di NOT NULL autoaggiorn amento Breve descrizione degli obiettivi del Modulo NOT NULL "uModuleUnit" description: Relazione tra Modulo e Unit. Contiene il numero di sequenza indicante l'ordine con iul quale dovranno essere seguite le unit (lezioni) uModuleUnit Version FieldName Type Description Rules example 3.0 int() Modulo in questione NOT NULL IDModule 34 NOT NULL 3.0 IDUnit int() Unit presente nel modulo 3.0 Numero di sequenza della Unit SequenceNumber int() oppure 0 (Zero) nel caso non abbia sequenza NOT NULL "tCourse" description: Un corso è formato da un insieme di moduli da seguire in successione tCourse Version FieldName Type Description Rules example 3.0 IDCourse int() PRIMARY KEY, NOT Identificativo NULL, univoco AUTO INCREMENT 3.0 Title nvarchar(128) Titolo del Corso M3.1 Breve DescriptionAbstract nvarchar(500) descrizione del corso NOT NULL 3.0 DateTimeValidFrom char(19) Valido DA NOT NULL 3.0 DateTimeValidTo char(19) Valido fino A NOT NULL NOT NULL TLC@Home "uCourseModule" description: Relazione tra Corso e Modulo. uCourseModule Version FieldName Type Description Rules 3.0 IDCourse int() Corso in questione NOT NULL A3.1 SequenceNumber int() Numero di sequenza DEFAULT 0 3.0 IDModule int() Modulo del corso NOT NULL 3.0 DateTimeValidFrom char(19) Valido DA NOT NULL 3.0 DateTimeValidTo Valido fino A NOT NULL char(19) example "tCognitiveGoal" description: Lista delle competenze fornite da Unit, Moduli e Corsi tCognitiveGoal Version FieldName 3.0 Type Description IDCognitiveGoal int() Rules Identificativo PRIMARY KEY, 35 example univoco M3.1 Description NOT NULL, AUTO INCREMENT Descrizione delle NOT NULL nvarchar(250) competenze da ottenere "uUnitCognitiveGoal" description: Obiettivi che si propone la UNIT uUnitCognitiveGoal Version FieldName Type Description Rules 3.0 IDUnit int() Unit in questione NOT NULL 3.0 IDCognitiveGoal int() Obiettivi che si propone di fornire la UNIT example NOT NULL "uModuleCognitiveGoal" description: Obiettivi che si propone il MODULO uModuleCognitiveGoal Version FieldName Type Description Rules 3.0 IDModule int() Modulo in questione NOT NULL 3.0 IDCognitiveGoal int() Obiettivi che si propone di fornire il modulo example NOT NULL "uCourseCognitiveGoal" description: Obiettivi che si propone il CORSO uCourseCognitiveGoal Version FieldName Type Description Rules int() Corso in questione NOT NULL 3.0 IDCourse 3.0 IDCognitiveGoal int() Obiettivi che si propone di fornire il CORSO 36 NOT NULL example Figura 2-6 Entità coinvolte "tEntity" description: Entità TEntity Version FieldName Type Description int() PRIMARY KEY, Identificativo NOT NULL, univoco AUTO INCREMENT 3.0 IDEntity M3.1 Description nvarchar(250) Descrizione dell'Entity Rules NOT NULL example Luigi Ciorciolini - RAI "tEntityResponsibility" description: Responsabilità dell'Entità sul Corso, Modulo o Unità. Al momento sono solo tre tEntityResponsibility Version FieldName Type 3.0 IDEntityRespon int() sibility M3.1 Description Description Rules example Identificativo PRIMARY KEY, univoco NOT NULL Responsabilità nvarchar attribuita NOT NULL (250) all'Entity 37 Publisher, Creator, Contributor "uUnitEntityResponsibility" description: Responsabilità sull’Unità uUnitEntityResponsibility Version FieldName Type Description 3.0 IDUnit int() 3.0 IDEntity int() Entità responsabile 3.0 Tipo di responsabilità IDEntityResponsibility int() dell'Entity sulla unit in questione Unit sulla quale grava la responsabilità Rules example NOT NULL NOT NULL NOT NULL "uCourseEntityResponsibility" description: Responsabilità sul Corso uCourseEntityResponsibility Version FieldName Type Description 3.0 IDCourse int() 3.0 IDEntity int() Entità responsabile 3.0 Tipo di responsabilità IDEntityResponsibility int() dell'Entity sul corso in questione Corso sul quale grava la responsabilità Rules example NOT NULL NOT NULL NOT NULL "uResourceEntityResponsibility" description: Responsabilità sulla risorsa uResourceEntityResponsibility Version FieldName Type Description Rules example Risorsa sulla quale NOT grava la responsabilità NULL 3.0 IDResource int() 3.0 IDEntity int() Entità responsabile 3.0 Tipo di responsabilità IDEntityResponsibility int() dell'Entity sulla risorsa in oggetto NOT NULL NOT NULL "uModuleEntityResponsibility" description: Responsabilità sul Modulo uModuleEntityResponsibility Version FieldName Type Description 3.0 int() IDModule 38 Modulo sul quale grava la responsabilità Rules example NOT NULL 3.0 IDEntity 3.0 Tipo di responsabilità IDEntityResponsibility int() dell'Entity sul Modulo in oggetto • int() Entità responsabile NOT NULL NOT NULL Organizzazione dei questionari rispetto a Moduli e Unità Figura 2-7 Gestione dei questionari di valutazione "tQuestionnaire" description: Un questionario. Può essere legato ad un modulo oppure ad una Unit. Se IDModule è 0 (Zero) viene considerato valido IDUnit e il questionario sarà relativo ad essa. tQuestionnaire Version FieldName 3.0 Type IDQuestionnaire int() 39 Description Rules Identificatore univoco PRIMARY KEY, NOT exam ple NULL, AUTO INCREMENT 3.0 IDModule int() Modulo al quale il questionario si riferisce NOT NULL NOT NULL 3.0 IDUnit int() Unit quale il questionario si riferisce. Viene considerata solo se IDModule = 0 (Zero) 3.0 Title nvarchar(100) Titolo del questionario NOT NULL 3.0 ProductionDate char(10) Data di produzione NOT NULL Mode DEFAULT Modalità di 0, VALID: visualizzazione dei 0, 1 ,2 questionari/risultati ,3 M3.1 int() "tQuestion" description: Domanda di un questionario tQuestion Version FieldName 3.0 3.0 Type IDQuestion int() Description nvarchar(250) Description Rules example PRIMARY KEY, Identificatore NOT NULL, univoco AUTO INCREMENT testo della domanda NOT NULL Di che colore è il cavallo bianco di Napoleone? "tAnswer" description: Risposta ad una domanda. tAnswer Version FieldName Type Description Rules int() Identificatore univoco PRIMARY KEY, NOT NULL, AUTO INCREMENT 3.0 IDAnswer 3.0 IDQuestion int() Domanda alla quale NOT NULL la risposta si riferisce 3.0 Description nvarchar(250) Testo della risposta NOT NULL M3.1 Score Peso della DEFAULT 0 real 40 example risposta. 0 se è una risposta sbagliata. Il totale dei pesi delle risposte giuste deve essere 1 "uUserQuestionnaire" description: L'utente ha spedito il questionario. Qui vengono memorizzate le date ed il punteggio ottenuto uUserQuestionnaire Version FieldName Type Description 3.0 IDUser int() Utente che ha compilato il NOT questionario NULL 3.0 IDQuestionnaire int() 3.0 StartingDateTime char(19) Data e Ora d'inizio NOT NULL 3.0 EndingDateTime char(19) Data e Ora di consegna NOT NULL 3.0 Score int() 3.0 MaxPossibleScore int() Rules example Questionario compilato dall'utente NOT NULL Punteggio raggiunto dallo studente NOT NULL Punteggio massimo raggiungibile nel questionario NOT NULL "uQuestionnaireQuestion" description: Relazione tra questionario e le domande che contiene uQuestionnaireQuestion Version FieldName Type Description 3.0 Questionario in IDQuestionnaire int() questione 3.0 IDQuestion int() Domanda del questionario Rules example NOT NULL NOT NULL "uQuestionnaireEntity" description: Autori del questionario uQuestionnaireEntity Version FieldName 3.0 Type Description IDQuestionnaire int() Il questionario 41 Rules example NOT NULL 3.0 IDEntity Autore del questionario. Entity Responsibility non è NOT int() utilizzata perché non ci sono NULL responsabilità per un questionario ma solo l'autore. "uUserQuestionnaireQuestionAnswer" description: L'utente risponde ad una domanda di un questionario. uUserQuestionnaireQuestionAnswer Version FieldName Type Description Rules Utente in questione NOT NULL IDQuestionnaire int() Questionario NOT NULL 3.0 IDQuestion int() Domanda NOT NULL 3.0 IDAnswer int() Risposta NOT NULL 3.0 StartingDateTime char(19) Data e ora di inizio domanda NOT NULL 3.0 EndingDateTime Data e ora di fine NOT domanda NULL 3.0 IDUser 3.0 int() char(19) 42 example • Gestione degli utenti della Mediateca Figura 2-8 Gestione utenti "tUser" description: Utente mediateca. Può ricoprire ruoli diversi all'interno di un corso e possiede uno stato che ne indica, se studente, la valutazione per ogni modulo svolto e lo stato di avanzamento nella Unit che sta seguendo. tUser Version FieldName Type Description 3.0 IDUser Rules example Identificativo univoco PRIMARY KEY, int() corrispondente all'ID di un NOT NULL utente WAS "tRole" description: Ruolo dell'utente all’interno di Mediateca tRole Version FieldName Type Description 3.0 int() Identificatore PRIMARY KEY, univoco NOT NULL, IDRole 43 Rules example AUTO INCREMENT 3.0 Description nvarchar(50) Ruolo in forma NOT NULL leggibile Student, Teacher, Tutor, Technician, Coordinator "tAssessment" description: Valutazione dell'utente per il relativo modulo. tAssessment Version FieldName Type Description Rules example PRIMARY KEY, Identificatore NOT NULL, univoco AUTO INCREMENT 3.0 IDAssessment int() 3.0 Descrizione della Description nvarchar(250) competenza acquisita NOT NULL Competenza, oppure vuoto "tCompletionState" description: Stato di avanzamento all'interno della Unit. tCompletionState Version FieldName 3.0 3.0 Type Description Rules example PRIMARY KEY, Identificatore NOT NULL, univoco AUTO INCREMENT IDCompletionState int() Stato di completamento NOT NULL nvarchar(50) in forma leggibile Description "tLessonMode" description: modalità di fruizione della lezione. tLessonMode Version FieldName Type Description Rules example PRIMARY KEY, NOT Identificatore NULL, AUTO univoco INCREMENT 3.0 IDLessonMode int() 3.0 Description nvarchar(50) Modalità di 44 NOT NULL In aula, A distanza fruizione in formato leggibile "tQualityControl" description: Memorizza i dati sul controllo di qualità Controllo di qualità associato alla Unit. tQualityControl Versi FieldName on Type Description Rules PRIMARY KEY, NOT NULL, AUTO INCREMENT 3.0 IDQualityControl int() Identificatore univoco 3.0 IDUser int() Utente in questione NOT NULL 3.0 IDUnit int() Unit in questione NOT NULL Modalità di fruizione della lezione NOT NULL 3.0 IDLessonMode int() M3.1 Date char(10 Data compilazione ) NOT NULL M3.1 Time char(8) Ora compilazione NOT NULL PreviousKnowledge int() Valore da 1(min) a 5(max) indicativo NOT NULL della precedente conoscenza dell'argomento Comprehension int() Valore da 1(min) a 5(max) indicante il NOT NULL livello di comprensione della lezione seguita TeacherEffectiven int() ess Valore da 1(min) a 5(max) indicante il NOT NULL livello di chiarezza del docente DocumentsEffectiv int() eness Valore da 1(min) a 5(max) indicante il NOT NULL livello di chiarezza dei documenti proposti 3.0 Tiredness int() Valore da 1(min) a 5(max) indicante il livello di NOT NULL stanchezza raggiunto dopo aver seguito la lezione 3.0 TechnicalProblems int() Valore da 1(min) a NOT NULL 5(max) indicante la 3.0 3.0 3.0 3.0 45 example qualità della realizzazione tecnica E3.0 TimeSpent Tempo impiegato per completare la NOT NULL char(8) lezione (eliminato nella 3.1) 3.0 PersonalComment Spazio per commenti nvarcha NOT NULL personali sulla r(250) lezione seguita "uUserRoleCourse" description: Relazione che associa un ruolo ad un utente per un corso uUserRoleCourse Version FieldName Type Description Rules 3.0 IDUser int() Utente in questione NOT NULL 3.0 IDRole int() Ruolo assunto dall'utente NOT NULL 3.0 IDCourse int() Corso per il quale l'utente ricopre il ruolo example NOT NULL "uUserAssessmentModule" description: Relazione che associa un utente alla sua valutazione in un modulo che ha completato uUserAssessmentModule Version FieldName Type Description Rules 3.0 IDUser Utente in questione NOT NULL 3.0 Assessment int() Valutazione dell'utente NOT NULL 3.0 IDModule int() Modulo per il quale è stato valutato NOT NULL M3.1 Date char(10) Data registrazione stato NOT NULL M3.1 Time char(8) Ora registrazione stato int() example NOT NULL "uUserUnitCompletionState" description: relazione che associa un utente allo stato di completamento di una Unit. uUserUnitCompletionState Version FieldName Type Description Rules 3.0 Utente in questione NOT NULL IDUser int() 46 example 3.0 IDUnit int() Unit in questione NOT NULL NOT NULL 3.0 IDCompletionState int() Livello di completezza raggiunto dall'utente M3.1 Date char(10) Data registrazione stato NOT NULL M3.1 Time char(8) Ora registrazione stato NOT NULL 2.2.2 Regole aziendali Esprimono delle vere e proprie regole per il dominio applicativo che stiamo considerando. Attraverso delle asserzioni, affermazioni che devono essere sempre verificate nella nostra base di dati, possiamo descrivere vincoli sui dati dell’applicazione. Questo è fondamentale soprattutto nei casi di vincoli non esprimibili direttamente con costrutti del modello Entità-Relazione. Per motivi di chiarezza e per favorire l’implementazione, tali affermazioni devono essere “atomiche”, non decomponibili quindi in altre frasi e altre asserzioni. Inoltre, proprio perché usate per documentare uno schema E-R, le asserzioni devono essere in forma dichiarativa e non in notazioni del tipo “ifthen-else” con delle condizioni. Una struttura adatta per le regole di integrità (dalla cardinalità di relazioni alle regole per gli stipendi dei dipendenti) sotto forma di asserzioni può essere: < concetto > deve / non deve < espressione su concetti > Mentre per le regole che esprimono derivazioni (inferenza o calcolo con elementi dello schema) una struttura può essere: < concetto > si ottiene < operazione su concetti > Dove i concetti possono comparire nello schema E-R oppure essere derivabili da essi. Una volta definiti possono essere “tradotti” a livello implementativo sul database, attraverso trigger o stored procedure. 47 Per documentare queste regole si può far ricorso ad una tabella, nella quale vengono elencate le varie regole, specificando di volta in volta la loro tipologia. E’ importante rappresentare tutte le regole che descrivono vincoli non espressi dallo schema, ma a volte risulta anche utile rappresentare regole che documentano vincoli già espressi nello schema. Nel database della Mediateca non sono presenti regole aziendali, ma potrebbero essere introdotte con delle stored procedure per ottimizzare la fase di creazione dei corsi da parte dei tutor o di inserimento delle risorse da parte dell’operatore. 2.2.3 Viste Una vista e' una rappresentazione logica di una tabella o d’una combinazione di più di esse. La vista non contiene fisicamente dei dati, ma li riceve dalle tabelle su cui e' basata. Quindi non occupa spazio su disco come una tabella, ma solo le poche righe necessarie per la definizione della query che la costituisce (ad esempio una select). Una volta creata la vista può essere utilizzata esattamente come una tabella “reale”, interrogandola con query e, seguendo alcune restrizioni, e' possibile anche modificare o inserire dei record. Questi ultimi, sono letti dalle tabelle sulle quali e' stata definita, quindi si può affermare che una vista e' dinamica: se cambiano i dati sulle tabelle questa e' aggiornata immediatamente. Ci sono quindi molti vantaggi con l’utilizzo delle viste per lavorare con i database: • Forniscono un livello aggiuntivo di sicurezza, permettendo di restringere l'accesso ad alcune colonne o record della tabella. • Riducono la complessità di una query. 48 • Rendono possibile eseguire interrogazioni che altrimenti sarebbe impossibile effettuare con un'unica istruzione. • Garantiscono l'indipendenza logica dei dati. • Permettono di visualizzare i dati in modo differente da come sono memorizzati. Alcune viste sono presenti nella Mediateca: vQualityControl :mostra informazioni partendo dalle lezioni giudicate dagli utenti SELECT tQualityControl.IDUser, tQualityControl.IDUnit, tCourse.Title AS Course, tUnit.Title, tQualityControl.Date, tQualityControl.PreviousKnowledge, tQualityControl.Comprehension, tQualityControl.TeacherEffectiveness, tQualityControl.DocumentsEffectiveness, tQualityControl.Tiredness, tQualityControl.TechnicalProblems, tQualityControl.PersonalComment FROM dbo.uModuleUnit 49 significative INNER JOIN dbo.tQualityControl INNER JOIN dbo.tUnit ON dbo.tQualityControl.IDUnit = dbo.tUnit.IDUnit ON dbo.uModuleUnit.IDUnit = dbo.tUnit.IDUnit INNER JOIN dbo.tModule ON dbo.uModuleUnit.IDModule = dbo.tModule.IDModule INNER JOIN dbo.uCourseModule INNER JOIN dbo.tCourse ON dbo.uCourseModule.IDCourse = dbo.tCourse.IDCourse ON dbo.tModule.IDModule = dbo.uCourseModule.IDModule vQuestionariICTADsvolti: mostra informazioni significative per tutti i questionari sostenuti dagli utenti con risultato ottenuto e massimo possibile SELECT uUserRoleCourse.IDUser, uUserQuestionaire.StartingDateTime, tQuestionaire.Title AS Questionario, uUserQuestionaire.Score AS Risultato, uUserQuestionaire.MaxPossibleScore AS [Massimo possibile], 50 tModule.Title AS Modulo, tCourse.Title AS Corso FROM dbo.uUserRoleCourse INNER JOIN dbo.uUserQuestionaire ON dbo.uUserRoleCourse.IDUser = dbo.uUserQuestionaire.IDUser INNER JOIN dbo.tQuestionaire ON dbo.uUserQuestionaire.IDQuestionaire = dbo.tQuestionaire.IDQuestionaire INNER JOIN dbo.tUnit ON dbo.tQuestionaire.IDUnit = dbo.tUnit.IDUnit INNER JOIN dbo.uModuleUnit ON dbo.tUnit.IDUnit = dbo.uModuleUnit.IDUnit INNER JOIN dbo.tModule ON dbo.uModuleUnit.IDModule = dbo.tModule.IDModule INNER JOIN dbo.uCourseModule ON dbo.tModule.IDModule = dbo.uCourseModule.IDModule INNER JOIN dbo.tCourse ON dbo.uCourseModule.IDCourse = dbo.tCourse.IDCourse WHERE (dbo.uUserRoleCourse.IDRole = 1) AND 51 (dbo.tCourse.IDCourse = 5) OR (dbo.tCourse.IDCourse = 6) OR (dbo.tCourse.IDCourse = 7) 52 2.3 Use Case Model Gli Use Case sono collezioni di scenari che riguardano l'utilizzo del sistema. Ogni scenario descrive una sequenza di eventi possibili. Use case per un tutor di un corso: Interfaccia Mediateca Accede al sistema Crea corsi Visualizza questionari Tutor corso Aggiorna bacheca, calendario, .... Usa chat e forum v ia w eb Figura 2-9 Use case del tutor 53 Use case per un utente di un corso: Interfaccia Mediateca Segue lezione + Utente + Compila questionari + Giudica le lezioni + Naviga archivio lezioni Accede al sistema + Seleziona lezione Comunica + Utente + Consulta calendario, bacheca, ... + Usa chat e forum via web + Visualizza lezione streaming Utente Figura 2-10 Use case dell’utente “Comunica” e “Segue lezione” sono raggruppati in package. Analizzandoli possiamo mettere in evidenza i principali aspetti: 54 Consulta calendario, bacheca, ... Utente Usa chat e forum v ia w eb Figura 2-11 Use case “comunica” dell’utente Na v iga a rc hiv io le zioni S e le ziona le zione Ute nte V is ua lizza le zione s tre a m ing Com pila que s tiona ri G iudic a le le zioni Figura 2-12 Use case “segue lezione” dell’utente 55 2.4 Sequence diagram Attraverso questi diagrammi possiamo modellare la comunicazione tra un oggetto ed un altro in relazione al trascorrere del tempo. • Sequence diagram per un tutor che crea un corso: "Carrello" lezioni motore.asp Pannello controllo corsi Utente Database Mediateca Login (WAS Username) Query (Username) Corsi attivati dal tutor Mostra corsi attivi per il tutor Crea/modifica corso (ID, Course) Query coi parametri (keyword, ...) risultato lezioni/moduli Mostra elenco lezioni e moduli con checkbox Seleziona lezioni per creare corso Scrive il nuovo corso sul DB Figura 2-13 Sequence diagram della creazione lezione 56 L'operazione di ricerca per la modifica di un corso può essere fatta quante volte vuole il tutor . Sequence diagram per un utente che richiede una lezione: • motore.asp Pannello controllo corsi Utente RealPlayer Server Database Mediateca Login (WAS Username) Richiede una lezione (ID, Course) Mostra pagina download immagini e avvio lezione Richiede immagini Download file immagini.exe Avvia file scaricato Avvia lezione Richiede file video Riferimento web Lezione in streaming Figura 2-14 Sequence diagram della richiesta di una lezione 57 2.5 Component diagram Rappresentiamo i componenti software usati per costruire il sistema. Component v iew + Security Management + Server Components Security Management + Browser Utente Component + WAS + WAS Database (from Component view) Serv er Components + ASP Pages I "component model" nelle pagine successive mostrano i componenti software usati per costruire il sistema. Alcuni sono stati creati con il nuovo progetto e altri sono eredità delle versioni precedenti. + Firewall + SQL Server Database + Style.css + Web Server (from Component view) Figura 2-15 Component diagram struttura Mediateca Anche qui sono stati utilizzati dei package per mettere in risalto la separazione fra la gestione della sicurezza e le funzionalità del server. Analizzando in profondità: 58 2.5.1 Security Management Internet Brow ser Utente «https» Serv er Components::Firew all Il firewall blocca il traffico HTTP non valido e lascia passare il traffico sicuro. Server Environment WAS GetUsername() CheckAuthentication() WAS Database Figura 2-16 Component view sicurezza 59 Sequence diagram per il login: E’ necessario distinguere due casi. Nel primo l’utente non ha superato un’autenticazione Microsoft (ad esempio: ha effettuato il login su un sistema con windows2000 e il suo account ha i permessi per entrare) e dovrà inserire username e password per accedere alla Mediateca. Public WAS Private WAS Pagina MediatecaELIS Utente Database Mediateca Request Redirect(public_WAS) from(Mediateca) Login page Auth (username, password) CheckWAS(username, password) True Ticket Enter False Access denied Figura 2-17 Sequence diagram login utente esterno 60 Nel secondo caso, invece, il processo di autenticazione è completamente trasparente all’utente di un sistema Windows abilitato all’accesso della Mediateca. Public WAS Private WAS Pagina MediatecaELIS Utente Database Mediateca Request Redirect(public_WAS) from(Mediateca, username, password) redirect(private_WAS) from(Mediateca, username, password) CheckWAS(username, password) True Ticket Enter(Ticket) False Access denied Figura 2-18 Sequence diagram login utente interno 61 2.5.2 Server Components Il diagramma illustra il layout dei componenti del server principale: «file» Firewall Style.css Web Serv er ASP Pages DoRequest() : HTML Response SQL Serv er Database ProcessSQLRequest() : Recordset Figura 2-19 Component view server 62 3 I metadata per oggetti didattici 3.1 Introduzione L'archivio delle risorse didattiche della Mediateca è dunque un serbatoio di contenuti ricchissimo per quantità e qualità del materiale a disposizione. Nella fase di post produzione diventa quindi cruciale la catalogazione delle lezioni: un’attenta soluzione in questo passaggio è fondamentale per poter identificare le risorse e accedere direttamente ai contenuti di interesse. Ma, come insegna l’esperienza di migliaia di archivisti, è quasi proibitivo pensare un unico schema per catalogare tutta la conoscenza umana, un sistema generale di catalogazione di oggetti completamente generici, solo in base alle proprie proprietà semantiche. La difficoltà rimarrebbe invariata anche restringendo il problema ai soli learning object, cioè limitandoci alle risorse legate alla didattica. Per risolvere questo problema un primo approccio è quello di cercare di elencare i differenti tipi di metadata necessari in base alle funzioni. Si individuano almeno cinque punti: 1. Amministrazione: diritti, versione, allocazione, informazioni sull’acquisizione digitale. 2. Descrizione: indici, note, identificativo nel catalogo, collegamenti fra risorse, informazioni per il ritrovamento: parole chiavi, etc. 3. Conservazione: documentazione sullo stato fisico delle risorse, informazioni sulle soluzione scelte per conservare versioni fisiche e digitali. 63 4. Tecnica: documentazione sull’hardware e il software necessari, dati sulla sicurezza come chiavi di criptazione o password, informazioni sulla digitalizzazione: formati, livello di compressione, etc. 5. Uso: attributi relativi al tipo e al livello di uso possibile delle risorse, storia degli utilizzi e delle modifiche, informazioni su materiale con più versioni o più lingue. Un altro possibile approccio è quello di dividere i metadata in base alle caratteristiche, sottolineando le differenze fra quelli creati in automatico da sistemi informatici e quelli inseriti da un intervento umano: 1. Origine metadata interni generati dall’agente autore del learning object al momento della creazione della risorsa (header e nome del file, struttura delle directory, formato e compressione del file) metadata esterni aggiunti successivamente, solitamente da qualcuno diverso dall’autore (record identificativo, informazioni legali) 2. Metodo creazione metadata creati in automatico dal computer (log delle azioni degli utenti, indici per parole chiave) metadata inseriti da persone (descrizioni) 3. Natura metadata creati da persone inesperte di catalogazione, spesso lo stesso creatore della risorsa (metatag delle pagine web personali) metadata creati da esperti (record MARC) 4. Stato metadata statici che non cambiano mai una volta creati (titolo, origine, data di creazione della risorsa) 64 metadata dinamici rispetto all’uso e alle modifiche (struttura delle directory, log delle azioni degli utenti, risoluzioni delle immagini) metadata a lungo termine (informazioni sui diritti) metadata a breve termine, principalmente di transizione 5. Struttura metadata strutturati secondo uno standard (MARC, EAD e TEI, formati di database locali) metadata non strutturati (campi per note e appunti) 6. Semantica metadata controllati che corrispondano ad un vocabolario standard (AAT, ULAN, AACR2) metadata che non appartengono ad un vocabolario (HTML metatag, note di testo) 7. Livello collezione di metadata riferiti ad altri metadata (indice specialistico, record di collezione come quelli di MARC) metadata riferiti ad un singolo learning object (informazioni su un formato particolare) Sulla base di questi studi negli ultimi anni sono state proposte diverse soluzioni per definire un’architettura unica per i metadata. Le più importanti verranno analizzate nei prossimi paragrafi, soffermandosi in particolare su quelle sviluppate appositamente per gli oggetti didattici. 65 3.2 Standard proposti 3.2.1 IEEE LOM (http://ltsc.ieee.org/wg12/) LOM è l'acronimo di Learning Object Metadata, ed è un working group in ambito IEEE che lavora per la definizione di uno standard per descrivere oggetti didattici. Questo gruppo (IEEE 1484.12) fa parte dell'IEEE Learning Technology Standards Committee (LTSC), l'organo per gli standard sulla didattica. Il gruppo si prefigge di definire una struttura di metadata per learning object. Questa struttura è composta da un insieme degli attributi utilizzati per descrivere le caratteristiche di generici oggetti per la didattica. Questi oggetti sono definiti come qualunque entità, digitale e non, che può essere usata, riusata o referenziata durante l'insegnamento con l'utilizzo di moderne tecnologie. Il lavoro del gruppo è iniziato nel dicembre 1997, ha sviluppato un Working Draft che è stato approvato nel Giugno 2002 ed è tuttora in discussione per la pubblicazione finale. Gli obiettivi indicati dai creatori di LOM sono i seguenti: • Abilitare studenti ed insegnanti alla ricerca, valutazione, acquisizione ed utilizzo dei learning object. • Abilitare la condivisione e scambio di learning object tra qualsiasi sistemi didattici che utilizzano qualsiasi tecnologia. • Abilitare lo sviluppo di learning object in unità che possono essere combinate e decomposte in maniera significativa. • Abilitare computer agent nel comporre automaticamente e dinamicamente lezioni personalizzate per studenti individuali. • Raggruppare il lavoro già fatto su standard focalizzati nell'abilitare learning object multipli a lavorare insieme in un ambiente didattico aperto. • Abilitare una forte e crescente economia per i learning object che supporti e ne sostenga tutte le forme di distribuzione: non profit e for profit. 66 • Abilitare organizzazioni didattiche e di formazione, sia governative che pubbliche e private, ad esprimere contenuti educativi e metodi di valutazione in un formato standard, indipendente dal contenuto. • Definire uno standard che sia semplice ed estensibile a vari domini e giurisdizioni così da essere ampiamente adottato ed applicato. • Supportare i necessari metodi di sicurezza ed autenticazione per la distribuzione e l'utilizzo di learning object. Lo scenario descritto è un ideale ambiente didattico globale e distribuito, dove i contenuti vengono classificati in maniera organica, completa ed uniforme, e vengono costruiti corsi personalizzati per studenti individuali, in maniera automatica in base al loro curriculum. Ogni risorsa didattica è descritta da dei metadata composti da 9 categorie contenenti gruppi di attributi strutturati ad albero: 1. General Gruppi di caratteristiche generali, indipendenti dal contesto del contenuto dell'oggetto didattico descritto. 2. Lifecycle Gruppi di caratteristiche relative al ciclo di vita della risorsa. 3. Meta-metadata Gruppi di caratteristiche della descrizione stessa e non dell'oggetto descritto. 4. Technical Gruppi di caratteristiche tecniche della risorsa. 5. Educational Gruppi di caratteristiche educative e pedagogiche della risorsa. 6. Rights Informazioni che hanno a che fare con le condizioni di utilizzo della risorsa. 7. Relation Gruppi di caratteristiche della risorsa che la collegano ad altre. 8. Annotation Gruppi di caratteristiche che permettono la descrizione di note sull'utilizzo educativo della risorsa. 9. Classification Gruppi di caratteristiche utili per classificare i contenuti della risorsa. L'insieme di queste categorie forma il Base Schema. 67 Molto ancora resta da fare, in particolare riguardo al binding di LOM con tecnologie di rappresentazione dei metadata. Nonostante la sua, forse eccessiva, complessità e l'architettura non perfettamente modulare, LOM è una proposta di standard presa in considerazione o come riferimento da tutte le altre proposte attuali. 3.2.2 IMS (http://www.imsproject.org/) IMS (Global Learning Consortium Inc.) è un consorzio composto da varie organizzazioni ed aziende, con lo scopo di definire uno standard per facilitare la didattica on line. IMS ha due obiettivi principali: • Definire delle specifiche tecniche per l'interoperabilità di applicazioni e servizi per la didattica distribuita. • Supportare l'adozione delle specifiche IMS in prodotti e servizi in tutto il mondo. La struttura di metadata di IMS è basata su IEEE LOM, e da essa trae gran parte del suo schema base. Invece di utilizzare il nome Learning Object viene utilizzato Learning Resource. Il Learning Resource Metadata è una versione leggermente modificata del Learning Object Metadata. Addirittura le specifiche vengono rilasciate per differenza rispetto a LOM. L'approccio IMS è decisamente implementativo. A differenza di LOM, sono stati da tempo rilasciati documenti relativi ad una possibile implementazione in XML, nonché al corretto utilizzo dei metadata IMS. La documentazione è ricca e ben curata sia per gli sviluppatori che per gli utenti, ad esempio esiste una FAQ molto utile per un primo approccio al problema dell’implementazione. Inoltre IMS ha definito l'Enterprise Information Model, un modello per la gestione standard di persone e gruppi di persone 68 coinvolte (come autori, insegnanti e studenti) nell'utilizzo del materiale didattico descritto nel Learning Resource Metadata Information Model. Il modello proposto da IMS ha riscosso un notevole successo grazie alla similarità con IEEE LOM, ma soprattutto all'approccio più pragmatico ed orientato all'implementazione. 3.2.3 Gestalt (http://www.fdgroup.co.uk/gestalt/) Gestalt (Getting Educational System Talking Across Leading-edge Technologies) è un progetto per la definizione ed implementazione di un sistema didattico distribuito utilizzando gli standard già esistenti e proponendone nuove estensioni. La visione di Gestalt prevede l'interazione delle varie parti coinvolte usando il World Wide Web. Il nucleo dell'architettura è il Learning Enviroment (LE) che utilizza un database interno e fornisce on line tutti i dati richiesti dagli altri componenti. Così è possibile gestire i curricula e la creazione dei corsi, la registrazione degli studenti, l'utilizzo dei corsi ed il monitoraggio da parte dei docenti sui progressi di ogni studente. Il componente Resource Discovery Service (RDS) permette agli utenti di esplorare tramite interfaccia WEB quali corsi e moduli sono disponibili. L'implementazione di RDF è basata su CORBA, ed i profili degli utenti sono organizzati in una directory basata su LDAP. La struttura dei dati in GESTALT include i seguenti componenti: • Courseware Content (GEMSTONES) • Student Profiling/Tracking (PAPI/EPAPI) • Curriculum Management 69 Il progetto di questi componenti è basato sul lavoro di altri gruppi nel campo degli standard di metadata per la didattica. La struttura di metadata è infatti basata su IEEE LOM, tenendo in considerazione il lavoro fatto in IMS Project, ARIADNE e Dublin Core. La struttura aggiunge tre categorie rispetto a IEEE LOM: Assessment, QoS, Mappings. Particolarmente interessante è l'idea di descrivere, nella categoria QoS, le risorse di rete necessarie per utilizzare quella risorsa. La struttura di questo metadata prevede una diversa versione per le reti ATM e per Diffserv, e considera che i requisiti di rete possono cambiare nel tempo, aggiungendo per ogni struttura dati la variabile t. Tutti i metadata sono scritti utilizzando XML. Il contributo di Gestalt non si è limitato al progetto dell'architettura del sistema e dei metadata, ma i componenti previsti nel sistema sono stati implementati. Attualmente il progetto sembra essere stato abbandonato: il sito non è aggiornato dall’aprile 2001. 3.2.4 Ariadne (http://www.ariadne-eu.org/) Ariadne sta per: Alliance of Remote Instructional Authoring and Distribution Networks for Europe, ed è un progetto nato attraverso il settore "Telematics for Education and Training" del quarto programma quadro per la ricerca e sviluppo dell'Unione Europea. Il progetto focalizza i suoi sforzi sullo sviluppo di strumenti e metodologie per la produzione, la gestione ed il riuso di elementi pedagogici. Sono stati sviluppati diversi tool per la creazione e la ricerca di materiale didattico. Il gruppo ha sempre tenuto conto della sua "missione" di carattere europeo, riservando particolare attenzione all'uso di più lingue. Date le loro similarità dal punto di vista generale, esiste un accordo con IMS su eventuali sinergie per raggiungere obiettivi comuni. 70 Il progetto Ariadne si è trasformato nella "Ariadne Foundation", per continuare lo sviluppo di strutture di metadata per sistemi didattici avviato con Ariadne e Ariadne II. 3.2.5 Dublin Core (http://www.dublincore.org) Dublin Core (DC) è una proposta di un insieme minimale di elementi per descrivere materiale digitale accessibile attraverso la rete Internet. Fu inizialmente proposto in una conferenza nel marzo 1995 a Dublin, Ohio (U.S.). I partecipanti al convegno erano prevalentemente bibliotecari, archivisti, editori, ricercatori e sviluppatori di software, oltre ad alcuni membri dai gruppi di lavoro dell'Internet Engineering Task Force (IETF). L'intenzione fu di suggerire un insieme minimale di elementi che possano essere forniti dall'autore o dall'editore dell'oggetto digitale, ed inclusi in esso, o da esso referenziati. Ora Dublin Core Metadata Initiative è attiva per la diffusione di DC su Internet e per l'estensione della struttura proposta. Data la sua semplicità DC è correntemente molto utilizzato, e praticamente tutti gli standard fanno riferimento ad esso e ne specificano un mapping. Gli elementi definiti sono: 1. Title Il titolo o il nome della risorsa attribuito ad essa dall'autore o dall'editore. 2. Creator La persona o l'organizzazione primariamente responsabile per la creazione del contenuto intellettuale della risorsa. 3. Subject L'oggetto trattato nella risorsa. Tipicamente questo campo è utilizzato anche per contenere le parole chiave (keyword). L'uso di vocabolari controllati e schemi di classificazione è incoraggiato. 71 4. Description Una descrizione testuale della risorsa, ad esempio l'abstract nel caso di un articolo. 5. Publisher L'ente responsabile per rendere la risorsa disponibile nella sua forma attuale. 6. Contributor La persona o l'organizzazione, non specificata nell'elemento Creator, che ha realizzato una parte significativa nel contenuto intellettivo della risorsa. 7. Date Data di creazione o della pubblicazione della risorsa. Per il formato da utilizzare si veda ISO 8601 ( http://www.w3.org/TR/NOTE-datetime) 8. Type La categoria della risorsa, ad esempio: "Home Page", "Racconto", "Report Tecnico", etc... Per problemi di interoperabilità dovrebbe essere espresso sempre in inglese e scelto da una lista limitata di possibilità. 9. Format Il formato dei dati contenenti la risorsa ed opzionalmente le sue dimensioni. Anche questo campo dovrebbe essere scelto da una lista limitata standard. 10. Identifier Un identificatore univoco della risorsa. Ad esempio la sua URI (Uniform Resource Identifier) oppure l'International Standard Book Number (ISBN). 11. Source Eventuali informazioni su un'altra risorsa dalla quale la presente è stata derivata. 12. Language La lingua utilizzata, espressa come definito nel RFC1766. 13. Relation Contiene l'identificatore di un'altra risorsa correlata. 72 14. Coverage Le caratteristiche spaziali e temporali del contenuto descritto nella risorsa. Ad esempio per un libro di storia sull'Europa nel medioevo. 15. Rights Un identificatore di una risorsa che definisce la licenza d'uso della risorsa in questione. Grazie alla sua semplicità DC, o spesso parte di esso, viene riconosciuto da vari software e motori di ricerca su Internet. È in corso anche uno sforzo per utilizzare questa struttura di metadata in collegamento con le tecnologie sviluppate in ambito W3C, ad esempio RDF (Resource Description Framework). Vari esempi sono disponibili in rete per cui sembra che DC possa giocare un ruolo importante anche nel prossimo futuro della rete Internet. 3.3 SCORM Come è stato analizzato nei paragrafi precedenti, a partire dal 1997 diverse organizzazioni studiano ed elaborano una varietà di standard e specifiche per l'apprendimento a distanza. Questo movimento di standardizzazione venne rilevato dal Dipartimento della Difesa (DoD) degli Stati Uniti che si impegnò, assieme ad altre agenzie federali e aziende del settore privato, a sviluppare specifiche e standard comuni per il campo del technology-based learning. Da questo impegno arrivò nel 1999 la prima versione provvisoria del Sharable Content Object Reference Model (SCORM), che cercò di incorporare gli standard emergenti per i vari aspetti dell’e-learning (IMS, AICC: Aviation Industry CBT Committee, Microsoft LRN, ARIADNE, IEEE) in un comune modello di riferimento, integrando il lavoro di queste organizzazioni con l’impegno dell'ADL (Advanced Distributed Learning) all’interno del DoD. Nel gennaio 2000 fu presentata da ADL la prima versione dello SCORM che venne sostituita dalla 1.1 nel gennaio 2001, quando cambiò il significato della 73 sigla: da “Sharable Coursware Object Reference Model” diventò “Sharable Content Object Reference Model”, sottolineando la possibilità di applicare il modello a differenti livelli di contenuto. La versione odierna è la 1.2 e raggiunge alcuni degli obiettivi prefissati, definendo un modello di aggregazione dei contenuti (Content Aggregation Model) e un ambiente di elaborazione (Run-Time Environment) per learning object. Per centrare questo risultato si è ricorsi all'uso di specifiche basate sul linguaggio XML, proposte dall’IMS con il suo Content Packaging, che permettono di collegare i "depositi" di contenuto informativo ai sistemi di gestione dei contenuti, indicati spesso con LMS: Learning Management System. Figura 3-1 Convergenza fra SCORM e standard per l’e-learning I componenti fondamentali dello SCORM sono dunque il Content Aggregation Model e il Run-Time Environment, descritti su due insiemi di testi disponibili sul sito ufficiale. Nella documentazione c’è una terza sezione introduttiva al modello, che va a completare la descrizione del sistema: 74 Figura 3-2 Rapporti fra i testi che descrivono lo SCORM Nei testi dedicati al Content Aggregation Model sono contenute le indicazioni per identificare e aggregare le risorse in un contenuto didattico strutturato. In questa parte si descrivono un dizionario per i metadata dei contenuti, basato su IEEE LOM, e un meccanismo di “impacchettamento” e di traduzione in XML, basato su IMS. Nei testi sul Run-Time Environment sono incluse la indicazioni per rendere possibile il collegamento all'archivio dei contenuti, la comunicazione con esso e il reperimento di un determinato contenuto. E’ infatti il modulo che rende possibile il riutilizzo dei learning object e la interoperabilità tra molteplici Learning Management System. Un risultato importante, ottenuto creando un meccanismo comune di comunicazione fra i vari LMS e gli oggetti didattici partendo da un vocabolario condiviso. Per assolvere questo scopo il Run-Time Environment è composto da tre aspetti basati su AICC: Launch, Application Interface (API) e un Data Model. Rispettivamente implementano: un modo comune di organizzare l’avvio delle risorse d'apprendimento, un comune meccanismo fra queste per 75 comunicare con un qualsiasi LMS e un linguaggio predefinito che costituisce la base della comunicazione. 76 4 La soluzione adottata 4.1 Analisi implementativa degli standard Attraverso lo studio delle architetture esaminate nel capitolo precedente, si nota come una singola struttura di metadata può descrivere una qualsiasi risorsa didattica. Naturalmente, più si aumenta il livello di dettaglio – quindi il numero degli attributi coinvolti per ogni oggetto- e più la descrizione è completa e univoca. Questa caratteristica può essere un punto di forza in quanto si può descrivere praticamente tutto utilizzando una sola struttura dati, uniforme per tutti gli oggetti: un intero corso, una lezione, una trasparenza. Ma, allo stesso tempo, questo approccio molto specifico può non essere efficiente in alcuni casi e portare ad indecisioni su come utilizzare correttamente il modello dei metadata. La scelta del sistema da utilizzare per la Mediateca è stata quindi fatta tenendo conto del processo di produzione, attivo con successo da più di un anno, e dell’operatore che dovrà catalogare le lezioni: una maggiore semplicità (Dublin Core) è stata spesso preferita alla completezza di un altro sistema (LOM, IMS). Questa scelta permette di realizzare i nuovo strumenti, analizzati nel capitolo seguente, senza aumentare i tempi, e quindi di costi, in fase di post produzione della lezione. Con uno studio delle soluzioni adottate da altre piattaforme per l’insegnamento a distanza si possono evidenziare principalmente tre soluzioni per l’implementazione di uno standard per i metadata: 1. modellare i dati su un modello entità-relazione: il learning object (o entità), gli attributi che descrivono il learning object ed le relazioni che collegano i learning object fra di loro. Progettando il database con un mapping dai metadata previsti -ad es. 77 dall’IMS- agli attributi, si possono avere fino a 60 attributi per ogni learning object. Questa implementazione è stata verificata da varie soluzioni e ha dato buoni risultati solo con un numero di learning object limitato. Se è semplice fare il mapping dal documento XML al database, un problema di questa soluzione è la difficoltà nel mantenere la struttura del file XML nella ricostruzione dello stesso dal DB. Limitando i campi da memorizzare è possibile inoltre che alcuni metadata vadano persi nell’accettare learning object da enti esterni, a meno di modificare il database per poter memorizzare anche questi. La situazione peggiora se sono stati aggiunti metadata estendendo le specifiche dello standard. Il problema più grave resta comunque l’efficienza di un database relazionale con più di 60 elementi per ogni oggetto su decine di tabelle. Per risolverlo l’approccio più utilizzato è quello di memorizzare nel database solo pochi metadata (riducendo il numero anche fino a 10) per poter permettere ricerche molto efficienti; anche se naturalmente aumenta il rischio di perdere informazioni importando informazioni da altre fonti. 2. memorizzare un documento XML come Bfile (file binario esterno, la cui dimensione è limitata dal sistema operativo), segnando la sua posizione come record della base di dati. Lo svantaggio è nella diminuzione di efficienza nell'elaborazione di query e scritture, oltre alla perdita di benefici tipici delle base di dati: sicurezza, indici, backup e gestione delle transazioni. 3. memorizzare l'intero documento XML in un singolo campo del database come CLOB (Character Large OBject, grandi oggetti carattere che arrivano fino a 4 GB). Un vantaggio di questa soluzione è quella di ricreare il documento originale ogni volta che se ne ha bisogno conservando alcuni vantaggi tipici delle base di dati: la gestione delle transazioni e la sicurezza su tutto. La capacità di fare ricerche sui CLOB varia molto con la base di dati utilizzata. Intermedia della Oracle, per esempio, può indicizzarli; o se il CLOB è immagazzinato come oggetto, 78 lascia la possibilità di eseguire delle query su questo. Dai CLOB si può inoltre fare un parsing direttamente in un documento XML e viceversa e già molti strumenti XML possono essere utilizzati per ricercare nei documenti, anche se naturalmente le ricerche saranno più lente di quelle di una normale base di dati relazionale. E’ possibile anche utilizzare soluzioni ibride, come memorizzare l’intero documento XML in un CLOB con un mapping dei metadata più utilizzati in un database relazionale. Ad esempio, la scelta dei dati può essere fatta su quelli richiesti più frequentemente. 4.2 Mediateca versione 4.0 e standard IMS- Dublin Core Nella scelta della soluzione per la nuova versione della Mediateca è doveroso sottolineare i rischi, da una parte, di un approccio troppo generale: avrebbe aumentato le possibilità di perdere aspetti specifici degli oggetti didattici della Mediateca. Dall’altra, andava tenuto in considerazione che una soluzione con troppi attributi avrebbe portato ad un appesantimento, non necessario, del database e all’allungamento considerevole dei tempi di determinazione e di inserimento di tutti i metadata. Nella scelta di archiviare le lezioni secondo uno standard, non andavano quindi persi di vista quali sono gli obiettivi che rimangono fondamentali per il caso specifico della Mediateca: registrare informazioni sui contenuti delle risorse, sulle conoscenze che saranno acquisite, sui pre-requisiti necessari (didattici e tecnici) per sfruttare al massimo lezioni, slide e documenti presenti nell’archivio. Selezionando i metadata dello standard IMS più significativi è possibile confrontarli con i corrispondenti attributi del database della Mediateca versione 3.1 e renderli compatibili anche con lo standard Dublin Core (indicato con la sigla DC nella tabella). Una selezione accurata dei metadata e dei loro domini 79 permette di avere un sistema pronto per lo standard IEEE LOM appena questo sarà completamente disponibile. NOTE 1. l’asterisco * indica che è possibile un valore multiplo 2. i due trattini – indicano un metadata non implementato in Mediateca versione 3.1 Mediateca IMS Metadata 1 General 1.1 identifier IDResource Corrisponde al DC.Identifier 1.2 title Title Corrisponde al DC.Title 1.4 language* IDLanguage Corrisponde al DC.Language 1.5 description* tResource.DescriptionAbstract Corrisponde al DC.Description 1.6 keywords* -- 1.7 coverage -- Corrisponde al DC.Coverage 1.9 aggregationlevel -- Descrizione livelli IMS: Il livello 1 indica il più piccolo livello di aggregazione, ad esempio dati multimediali grezzi o frammenti. Il livello 2 si riferisce a collezioni di atomi, ad esempio un documento HTML con delle immagini immerse o una lezione della Mediateca (testo, immagini, video, audio) Il livello 3 indica una collezione di oggeti del primo livello, ad esempio una piccola rete di documenti HTML con una pagina indice che organizza le risorse o un’unità 80 Il livello 4 si riferisce al più grande livello di granularità, ad esempio un corso. 2 Lifecycle 2.3 contribute* Role tRole.Description Corrisponde al DC.Creator/Publisher/Contributor Entity* (vCard) IDEntity Date DateCreated Corrisponde al DC.Date E’ importante notare che per il DC.Date del Dublin Core e il datetime di IMS è utilizzato il formato ISO8601 (aaaa-mmgg) 4 Technical 1.1 format* -- Corrisponde al DC.Format 4.2 size FileSize (Mbytes in Mediateca fino alla 3.1, gli standard vogliono Kbyte) 4.3 location* Source 4.4 requirements* 4.4.1 type -- Vocabolario IMS: Operating System, Browser 4.4.2 name -- (esiste descrizione del viewer) 4.4.3 minimumversion -- (esiste descrizione del viewer) 4.6 other platform requirements -- (esiste descrizione del viewer) 81 5 Educational 1.2 learning resource type* -- Corrisponde al DC.Type Vocabolario IMS: Exercise, Simulation, Questionnaire, Diagram, Figure, Graph, Index, Slide, Table, Narrative Text, Exam, Experiment, ProblemStatement, SelfAssesment 5.5 intended end user role* Vocabolario IMS: Teacher, -- Author, Learner, Manager 5.8 difficulty Vocabolario IMS: -very easy, easy, medium, difficult, very difficult 6 Rights 6.1 cost -- 6.2 copyright IDRight 6.3 description tRights.Description 7 Relation* 7.1 kind -- Corrisponde al DC.Relation Il vocabolario IMS coincide con quello del Dublin Core: IsPartOf, HasPart, IsVersionOf, HasVersion, IsFormatOf, HasFormat, References, IsReferencedBy, IsBasedOn, IsBasisFor, Requires, IsRequiredBy 7.2 resource 82 7.2.1 identifier IDResource 9 Classification* 1.1 purpose -- Se il purpose è Discipline corrisponde al DC.Subject in Mediateca corrisponde sempre a Discipline e quindi coincide con il Vocabolario Prerequisite, IMS: Discipline, Educational Idea, Dublin Core Objective, Accessibility Restrictions, Educational Level, Skill Level, Security Level 9.2 taxonpath* 9.2.1 source tEncodingScheme.Description 9.2.2 taxon* tSubject.Code In IMS la TaxonPath può avere una profondità da 1 a 9. Valori normali sono fra 2 e 4 (ad esempio: Physics/ Acoustics/ Instruments/ Stethoscope ; Medicine/ Diagnostics/ Instruments/ Stethoscope) 9.3 description tSubject.Subject E’ evidente che con dei cambiamenti alla base di dati è stato possibile raggiungere la compatibilità con gli standard IMS e Dublin Core. Questo mantenendo la libertà di descrivere le lezioni con più campi nei casi in cui la struttura dell’IMS possa rivelarsi non sufficientemente dettagliata. L'aspetto fondamentale, che spinge ad adottare lo standard IMS, è la possibilità di far diventare la Mediateca compatibile con i tool di classificazione e ricerca già sviluppati, rendendo veramente concreta l'interoperabilità tra sistemi diversi ma aderenti a questo standard che è attualmente il più diffuso, senza 83 perdere la compatibilità con lo standard IEEE LOM, avendo già attributi completamente coerenti con questa struttura. Per i punti dove è già presente un attributo nella Mediateca basterà fare un mapping nella creazione o nelle lettura dei file XML di scambio con gli altri sistemi. E’interessante invece analizzare i punti dove sono necessarie modifiche o l’aggiunta di nuovi attributi. 4.2.1 General Per il punto 1.6 (keywords) è stato aggiunto un attributo Keywords nella tabella tResource. E’un campo di tipo text dove vengono memorizzate le parole chiave separate da virgola, il campo è poi utilizzato per ricerche su argomenti specifici. Per il punto 1.7 (coverage) non è stato aggiunto un campo, ma si sceglierà un valore di default da passare sia all’IMS che al DC. In caso di importazione non verrà considerato. Per il punto 1.9 (aggregationlevel) sono stati definiti i quattro livelli come nello standard, aggiungendo l’attributo AggregationLevel in tResource per ogni elemento atomico della Mediateca. I livelli sono stati descritti in italiano e con degli esempi: • Livello 1 il più piccolo livello di aggregazione: un testo, una slide, un filmato per un argomento specifico o una definizione. • Livello 2 collezione di elementi atomici (livello 1): una pagina web con testi e immagini, una porzione di lezione SMIL. • Livello 3 collezione strutturata di risorse di livello 2, come una raccolta di documenti html, collegate fra loro e indicizzate da una pagina index. Ad es. un manuale digitale con testi e immagini, una lezione SMIL completa. 84 • Livello 4 il più alto livello di aggregazione. Ad es. un corso completo che unisce elementi dei livelli precedenti. 4.2.2 Lifecycle Per il punto 2.3 (contribute) è necessario un mapping fra il dominio della Mediateca e quello dell’IMS, evidenziando anche le corrispondenze con il Dublin Core. IMS metadata: Role Mediateca metadata: tRole.Description Vocabolario composto da: Vocabolario composto da: Author, Publisher, Student Unknown, Initiator, Terminator, Validator, Teacher: Author in IMS, DC.Contributor in Dublin Core Editor, Graphical Designer, Technical Implementer, Tutor: Instructional Designer in IMS, DC.Contributor in Content Provider, Technical Dublin Core Validator, Educational Validator, Script Writer, Technician: Technical Implementer in IMS, DC.Contributor in Instructional Designer Dublin Core Coordinator: Publisher in IMS, DC.Publisher in Dublin Core 4.2.3 Technical Per il punto 4.1 (format) è stato aggiunto un attributo Format nella tabella tMedium. E’un campo di tipo varchar da 250 caratteri con il dominio definito dal tipo MIME o dalla definizione “non digital”. Con questo attributo viene identificato il tipo di dato da un punto di vista tecnico e il software necessario per accedervi (a cui sarà poi associato attraverso la chiave esterna IDViewer), ad 85 esempio: video/mpeg, text/html, images/png. Corrisponde al DC.Format del Dublin Core. Per i punti che riguardano i requirements (4.4.1 type, 4.4.2 name, 4.4.3 minimumversion, 4.6 other platform requirementes) la descrizione del viewer li include tutti. La perdita di informazioni particolareggiate e automatizzate è giustificata dalla maggiore semplicità in fase di inserimento e di fruizione: tenendo i viewer aggiornati viene risolto ogni problema ed è sempre possibile fornire informazioni particolari attraverso la descrizione. 4.2.4 Educational Per il punto 5.2 (learning resource type) mettendo a confronto i due vocabolari utilizzati per descrivere i tipi di risorsa: 1 vocabolario IMS: Exercise, Simulation, Questionnaire, Diagram, Figure, Graph, Index, Slide, Table, Narrative Text, Exam, Experiment, ProblemStatement, SelfAssesment 2 vocabolario DC: Collection, Text, Image, Sound, Dataset, Software, InteractiveResource, Event, PhysicalObject, Service si può adottare il modello del DC per un dominio adatto alla Mediateca, indicando fra parentesi il mapping con gli elementi dell’IMS. Aggiungiamo l’elemento Lesson per indicare le lezioni composte da audio e video, elemento principale della Mediateca. Collection (Slide), Text (Narrative Text, Table, ProblemStatement), Image (Diagram, Figure, Graph), Sound, Dataset (Index), 86 Software, InteractiveResource (Experiment, SelfAssesment, Exercise, Simulation, Questionnaire, Exam), Event, PhysicalObject, Service Lesson L’attributo aggiunto in tResource per memorizzare queste informazione è Type, varchar(20). E’ importante sottolineare cosa si intende con alcuni di questi attributi, si può fare riferimento alle definizioni date dal consorzio Dublin Core: “Dataset structured information encoded in lists, tables, databases, etc., which will normally be in a format available for direct machine processing. For example spreadsheets, databases, GIS data, midi data. Note that unstructured numbers and words will normally be considered to be type text. Event non-persistent, time-based occurence. Metadata for an event provides descriptive information that is the basis for discovery of the purpose, location, duration, responsible agents, and links to related events and resources. The resource of type event may not be retrievable if the described instantiation has expired or is yet to occur. Examples - exhibition, web-cast, conference, workshop, open-day, performance, battle, trial, wedding, tea-party, conflagration. PhysicalObject objects or substances. For example - a person, a computer, the great pyramid, a sculpture, wheat. Note that digital representations of, or surrogates for, these things should use image, text or one of the other types. 87 Service A service is a system that provides one or more functions of value to the enduser. Examples include: a photocopying service, a banking service, an authentication service, interlibrary loans, a Z39.50 or Web server.” (http://dublincore.org/usage/terms/dcmitype, Febbraio 2003) Con i punti 5.5 (intended end user role) e 5.8 (difficulty) l’implementazione arricchirebbe sicuramente di informazioni il singolo oggetto, ma potrebbe essere utile solo in pochissimi casi. Si può assumere che tutti gli oggetti siano destinati agli studenti e che la difficoltà della lezione sia legata all’argomento che si sta trattando, quindi con dei parametri che non sono giudicabili dall’operatore in fase di ripresa o di post-produzione. 4.2.5 Relation Per il punto 7.1 (kind) è introdotto un nuovo attributo in tResources: RelationKind. I valori ammessi sono gli stessi del Dublin Core, adottati anche dall’IMS, e sono definiti nel dominio RelationType: a) Relazioni per individuare risorse fisiche o logiche di cui l’oggetto è parte o risorse che sono parte dello stesso: IsPartOf, HasPart b) Relazioni per gestire le versioni: IsVersionOf, HasVersion c) Relazioni per documentare le trasformazioni di formato: IsFormatOf, HasFormat d) Relazioni per le referenze, quando un documento cita, confronta o è integrato da un altra risorsa: References, IsReferencedBy e) Relazioni per individuare risorse che sono risultato di una derivazione, traduzione, adattamento o interpretazione di un altro documento: IsBasedOn, IsBasisFor f) Relazioni di dipendenza, per oggetti che richiedono un’altra risorsa per funzionare o per essere compresi: Requires, IsRequiredBy 88 4.3 Schema database Mediateca versione 4.0 E’ utile, a questo punto, osservare i cambiamenti alla struttura del database introdotti nei paragrafi precedenti. Il centro del nuovo database è sicuramente la tabella tResource, arricchita e resa più importante rispetto alle versioni precedenti. Per sottolineare queste modifiche non viene riportato tutto lo schema del database, ma solo quello della porzione più importante. Figura 4-1 Gestione contenuti Mediateca ver. 4 89 5 I nuovi strumenti: ricerca e automazione 5.1 Ricerca nel database Una volta implementati i metadata la più naturale applicazione per il loro reale utilizzo è un sistema di ricerca. Attraverso degli pagine web è ora possibile fare delle ricerche (libere e guidate) nel database della Mediateca, sia per gli utenti che per i tutor. La prima idea è stata quella di implementare un sistema di ricerca dove l’utente avrebbe potuto decidere le priorità delle varie features legate alla qualità della risorsa. Questo per quando riguarda gli aspetti disponibili per la ricerca, oltre naturalmente alle ricerche per parole chiave. Un link diretto con la scelta “qualità consigliata dal sistema” sarebbe stata la soluzione per gli utenti senza preferenze particolari. L’idea era quella di giudicare la qualità di una lezione sia utilizzando le indicazioni degli utenti che quelle dell’operatore. Mentre l’operatore avrebbe inserito i suoi giudizi attraverso i metadata in fase di produzione, gli utenti della Mediateca possono giudicare già da diversi mesi ogni lezione attraverso il controllo qualità via web: Modalità di fruizione: A distanza Conoscevo l'argomento trattato dalla lezione? [Rispondi] Ho compreso l'argomento trattato in questa lezione? [Rispondi] Il docente è stato chiaro? [Rispondi] I supporti didattici (lucidi, lavagna, computer) sono stati [Rispondi] efficaci? Mi sono stancato? [Rispondi] 90 Ho avuto difficoltà a seguire per motivi tecnici? [Rispondi] Naturalmente i giudizi vengono memorizzati nel database e possono quindi essere interrogati per stabilire la qualità della lezione vista da parte dell’utente finale. Per questi giudizi il peso di default associato sarebbe potuto essere fra il 3 o 4, in un intervallo da 1 a 5. A questi si sarebbero aggiunti gli indici assegnati dall’operatore che registra la lezione (fra parentesi una prima ipotesi per i pesi di default, sempre fra 1 a 5): 1. Indicizzazione della lezione (3); 2. Qualità dei lucidi/lavagna/slide da pc (5); 3. Qualità audio (5); 4. Qualità ripresa (1 – giudicabile attraverso un voto per ogni operatore da parte del responsabile); 5. Ritmo e chiarezza del professore (2); 6. Qualità della lezione per insegnamento a distanza (4); 7. Parole chiave (mostrando un indice di matching, sono possibili ricerche anche con parole parziali): si chiedono all’insegnante prima dell’inizio della lezione. Si era stabilito anche un possibile algoritmo per le feature: moltiplicare per uno i pesi associati alle caratteristiche nel caso l’utente scelga l’opzione “lezioni consigliate dal sistema”, altrimenti l’utente avrebbe impostato le sue priorità e i valori delle features sarebbero stati moltiplicati per un valore fra 1 e 2 (o si sarebbe aggiunta una costante). La soluzione che è stata adottata è più immediata e sintetizza tutta la valutazione della risorsa didattica in due soli parametri: TeacherExposure e MaterialQuality, due interi nell’intervallo fra 1 (pessimo) e 5 (ottimo). Questa scelta, che può sembrare riduttiva, è dovuta alle difficoltà nella 91 valutazione di alcune caratteristiche per l’operatore e ai tempi di post-produzione che sarebbero aumentati in maniera consistente. In realtà con due soli parametri sulla qualità si raggiunge un compromesso ideale fra completezza, sintesi, velocità e facilità di immissione da parte dell’operatore e di controllo da parte del responsabile. Con questa soluzione al momento della ricerca l’utente dovrà solo selezionare una delle due opzioni, privilegiando la qualità del materiale o la chiarezza e la ricchezza espositiva del docente. Il sistema non dovrà fare altro che interrogare la base di dati e ordinare le lezioni disponibili, evidenziando le risorse che hanno un valore più alto per il parametro scelto. Naturalmente c’è una differenza nell’output a seconda di che tipo di utenza sta effettuando la ricerca: nel caso dello studente verranno mostrate anche le dipendenze fra lezioni, nel caso del tutor sarà facoltativo. 5.1.1 Possibili aggiunte per la ricerca Un punto forte di miglioramento del sistema, strettamente integrato con la ricerca, potrebbe essere l’integrazione di nuovi strumenti che permettano allo studente di fare annotazioni su argomenti ed esercizi del corso o di porre domande, visibili poi a tutti gli altri fruitori. Le annotazioni, le domande e le risposte verrebbero immagazzinate nel database della Mediateca per essere poi facilmente consultabili attraverso il motore di ricerca. Una domanda, posta dallo studente, potrebbe partire da una lezione o da un modulo, ed essere immediatamente riferita a questi; il sistema genererebbe automaticamente il link all’argomento da cui è partita la domanda, affinché le domande e le risposte vengano associate localmente a quell’argomento, incrementandone i contenuti nel tempo in modo autoalimentato. Lo studente non deve essere costretto a cercare in una lunga lista di FAQ o aspettare giorni per avere risposte. Il lavoro di risposta alle domande degli studenti può diventare sicuramente 92 un impegno gravoso per docenti e tutor soprattutto per corsi con un alto numero di utenti. Occorre quindi disporre di meccanismi software che offrano la possibilità di analizzare la domanda scritta in linguaggio naturale per estrarne un modello di domanda paragonabile ad una già esistente, e quindi pronta per essere smaltita con la risposta. Algoritmi per questo ambito esistono già nelle ricerche di Intelligenza Artificiale, in particolare ci sono ottimi risultati con l’utilizzo delle reti neurali. Si tratta in pratica di intercettare le domande per gestirle con un sistema di risposta automatica, attivando poi un feedback sullo studente del tipo "La risposta è soddisfacente?": in caso negativo, c'è un intervento manuale e specifico di rinforzo, che va comunque ad incrementare il database delle risposte. L'impegno del docente nel rispondere alle domande può essere diminuito anche incoraggiando la costituzione di gruppi di studenti che discutono tra loro e che pongono domande collettive (sfruttando ad esempio il forum, come già avviene con la Mediateca-ELIS). 5.2 Creazione nuove lezioni 5.2.1 Creazione di lezione in presenza Come già accennato per la ricerca, con l’implementazione dei metadata aumentano gli strumenti per sfruttare il potenziale della Mediateca. Per ogni lezione filmata, attraverso la regia in fase di ripresa e la post-produzione successivamente, viene creato un indice con tutti i frammenti di lezione elencati per argomento. In questo modo per un utente che visualizza una lezione è possibile saltare da un argomento all’altro semplicemente cliccando sul titolo nell’elenco presente a sinistra. Se ogni risorsa indicizzata viene memorizzata nel database possiamo affermare che ci troviamo con una catalogazione con grana molto fine, quindi un sistema con un’elevata modularità. 93 Da un punto di vista tecnologico il cambio di argomento all’interno della lezione è un semplice avanzamento, o viceversa un indietreggiamento, nel filmato eseguito dal client RealPlayer. Questo client, un programma eseguito in locale sulla macchina dell’utente, richiede al server lo streaming del video a partire da un nuovo istante dello stesso filmato che stava visualizzando o da un altro filmato che può essere anche fisicamente su un altro computer rispetto al primo. Questa soluzione è resa possibile in maniera trasparente rispetto all’utente attraverso l’utilizzo della tecnologia SMIL, trattata accuratamente nell’appendice A.2. In particolare, l’indice della lezione è realizzato con un file testuale con estensione “.rt” (RealText Clip) dove in fase di post-produzione vengono memorizzate le corrispondenze fra tempi e argomenti esposti. Questo file è un semplice documento di testo con un linguaggio di markup tramite tag, molto simile all’html. Un esempio da una lezione della Mediateca: <window type="generic" width="192" height="231" duration="01:34:22"> <font size="3" face="Arial"><b> INDICE</b><br> <a href="command:seek(00:06:35.0)" target="_player">La priorità</a><Br> <a href="command:seek(00:20:29.0)" target="_player">Swapping</a><Br> <a href="command:seek(00:33:41.0)" target="_player">Scheduler</a><Br> […] </window> Volendo sfruttare al massimo le possibilità offerte dai metadata e da questa granularità molto fine nell’indicizzazione degli argomenti, è possibile immaginare nuovi usi delle risorse disponibili nella Mediateca. Attraverso un sistema di ricerca uno studente può trovare una definizione o un esempio molto 94 particolare in maniera estremamente semplice, combinare fra loro diverse spiegazioni dello stesso argomento da parte di professori diversi, mettere insieme tutte le esercitazioni svolte negli anni per preparare un esame e così via. I cambiamenti necessari nel database sono stati una rivalutazione della tabella uUnitResource, che permette di creare dinamicamente lezioni della Mediateca (tUnit) in maniera indipendente dalle lezioni riprese dagli operatori, riversate poi in digitale e catalogate in spezzoni di filmato (tResource). Il processo di post-produzione subisce pochi cambiamenti, all’interno delle Risorse (tResource) vengono inseriti gli spezzoni trascrivendo in maniera lineare il foglio di regia in una pagina web parzialmente precompilata per ridurre i tempi di immissione. Si tratta, in pratica, di seguire la divisione della lezione in argomenti, individuati con dei tempi assoluti rispetto all’inizio del filmato, e di riempire delle form. A questo punto il sistema crea un’unità (in tUnit) che rispecchia fedelmente la lezione registrata in presenza. Questa operazione corrisponde all’inserimento di un semplice record nella tabella tUnit e una serie di record in quella uResourceUnit dove vengono associati tutti i frammenti di lezione in maniera lineare (questa operazione è fatta in maniera automatica alla fine dell’inserimento dei frammenti di filmato). In questo modo si mantiene la lezione originale, riducendo i tempi di inserimento, e si aprono tutte le possibilità di riutilizzo dei frammenti di lezione esposti nel paragrafo seguente. Con questo sistema è possibile inserire nelle risorse anche solo le slide delle lezioni, un manuale o delle dispense aggiuntive che il professore può aver citato nella lezione senza distribuirle ai ragazzi. Trovare materiali diversi è possibile grazie ad una query sui metadata delle risorse e l’integrazione e la fruizione di questi è attuabile con dei semplici controlli sul tipo MIME delle risorse selezionate. 95 5.2.2 Creazione lezioni dinamiche Per arrivare ad un algoritmo per la creazione di lezioni nel formato della Mediateca, unendo risorse già presenti nel database, è indispensabile esaminare la struttura che c’è dietro la lezione visualizzata. Nel processo produttivo della Mediateca, una volta codificata la lezione nel formato Real e preparate le immagini delle slide, si crea la lezione assemblando il video, le immagini e l’indice degli argomenti. Per ogni lezione visualizzata su schermo, i file necessari sono: 1 lezione.rm: il file con il video codificato; 2 video.smi: il file per l’assemblaggio delle varie parti che costituiscono la lezione; 3 videoI.smi: il file per l’assemblaggio della lezione con l’opzione di scaricamento previo delle immagini; 4 immagini.rp: il file per la gestione delle immagini; 5 toolbar.rt: il file per la gestione dell’indice degli argomenti correlati al video. Il risultato finale dell’assemblaggio è organizzato graficamente con lo schema seguente, progettato per una risoluzione minima di 800x600: 96 Figura 5-1 Schema interfaccia lezione Se per la gestione dell’indice e del video il file più importante è il RealText Clip contenuto nella cartella dell’unità, chiamato sempre “toolbar.rt”, per la sincronizzazione delle immagini i tempi vengono memorizzati in un RealPix Clip, chiamato “immagini.rp” o “slide.rp”. Per la creazione di nuove lezioni con le risorse presenti è evidente che il problema principale è quello della sincronizzazione dei tempi fra video e immagini rispetto al nuovo sommario. Nella creazione automatica del file SMIL bisogna infatti referenziare tutti gli argomenti rispetto all’istante zero della nuova lezione. La soluzione è naturalmente al momento della creazione del file. Questa operazione, la creazione dello SMIL e quindi della lezione, avviene attraverso un insieme di file nel linguaggio di scripting ASP, una tecnologia per pagine web dinamiche sviluppata da Microsoft approfondita nell’appendice A.3. Il primo obiettivo di questi file è interrogare il database per trovare gli spezzoni di lezione utili per la nuova unità che si sta creando. Una volta che l’utente, studente o tutor che sia, ha selezionato i frammenti che desidera mettere assieme, si può realizzare la scrittura su disco dei nuovi file RealPix e RealText passando per l’analisi di tutti i tempi delle lezioni in presenza. 97 Le informazioni sulla locazione delle risorse e sui tempi vengono estratti dal database attraverso le tabelle tResource e tMedium. Isolando i dati significativi per la creazione dei file RealPix e RealText si possono notare: in tResource 1 DurationFrom 2 DurationTo 3 AggregationLevel 4 RelationKind in tMedium 1 Source 2 Format 3 FileName 4 FolderName Le procedure per la scrittura dei file si basano quindi su questi dati, in particolare possiamo immaginare dei file di testo “modello” con delle variabili da riempire con le informazioni estratte dal database. Prima di essere scritti è necessario però che questi valori siano rielaborati accordando tutti i tempi fra loro attraverso un algoritmo: 1. estrazione dei dati dal database con delle query; 2. elaborazione del primo frammento video selezionato: viene scritto nel toolbar.rt (il file indice degli argomenti) il titolo dell’argomento con il riferimento al file video remoto e il suo tempo per localizzarlo; 3. vengono ricercate le immagini che appartengono alla lezione in presenza e si analizzano i tempi cercandone una che coincida o che appaia prima dell’introduzione dell’argomento all’interno della lezione; 4. questa immagine viene copiata all’interno della cartella dell’unità che si sta creando e viene segnata all’interno del file slide.rp con un tempo iniziale pari a zero. L’operazione è ripetuta per tutte le immagini che vengono visualizzate 98 dal filmato “in presenza” fino al termine dell’intervallo temporale che si sta considerando. Se l’istante di apparizione dell’immagine è precedente a quello dell’inizio dell’argomento (video e audio) per la prima immagine non ci sono problemi, ma per la seconda e le successive è necessario sottrarre al tempo originale la differenza fra l’apparizione dell’immagine e l’inizio dell’argomento; 5. a questo punto il primo spezzone è diventato l’inizio della nuova lezione e possiamo procedere in maniera iterativa per tutti i successivi: 6. si scrive nell’indice (toolbar.rt) il titolo dell’argomento con i riferimenti assoluti per visualizzare video e audio; 7. si cercano l’immagine coincidente o la precedente all’istante di partenza dello spezzone che ci interessa e si inserisce nel file slide.rp con un istante di apparizione del primo coincidente con l’ultimo dello spezzone precedente. Per tutte le immagini mostrare nello spezzone esaminato c’è un inserimento con il tempo originale a cui è sommato l’istante di ingresso della prima immagine e a cui è sottratto l’eventuale anticipo di questa rispetto all’istante di partenza del filmato; 8. al termine degli spezzoni si possono scrivere i file sul server e aggiungere il record con la nuova lezione alla tabella tUnit. L’andamento dei tempi è esemplificabile graficamente immaginando di voler unire due argomenti che partono entrambi in ritardo rispetto alla slide precedente. Le operazioni fra parentesi rappresentano la parte in corsivo del punto 7 dell’algoritmo, i frammenti in grigio rappresentano gli argomenti selezionati dall’utente, che vorrà visualizzare nella nuova lezione con le slide corrispondenti. 99 Figura 5-2 Esempio con due frammenti video Osservando l’esempio si nota come l’iterazione nei punti 6 e 7 dell’algoritmo sia efficace anche nel caso base (per la prima slide), partendo da un istante iniziale uguale a 0. 100 Se si vogliono coinvolgere nella creazione di un’unità anche altre risorse diverse dai file video è opportuno individuare soluzioni pratiche per ogni selezione lasciata al tutor e allo studente. Se in fase di creazione l’utente seleziona: 1. solo file video: si crea un file SMIL con gli spezzoni; 2. file video e testi: si crea un file SMIL con gli spezzoni e la possibilità di visualizzare all’interno del player i documenti attraverso collegamenti sull’indice (se i documenti non sono consultabili con il player vengono lanciati i programmi di default riconosciuti attraverso il MIME); 3. solo file di testo o solo immagini: si crea un file SMIL visualizzando le immagini e i testi all’interno del player stesso (selezionabili dall’indice a lato), se sono formati che il player non può gestire si lancia il programma di default nel sistema operativo; 4. file video e immagini: si crea un file SMIL e si procede come al punto 2 con i testi. 5.3 Creazione moduli e corsi Per l’automazione dei processi di creazione e gestione dei corsi il problema è decisamente più lineare rispetto alle lezioni. In questi casi, come vedremo nel capitolo seguente, si tratta di interagire con il database della Mediateca attraverso le tabelle che contengono le informazioni su corsi e moduli (tCourse e tModule) e la tabella che realizza le relazioni molti a molti coinvolte (uCourseModule). 101 6 Implementazione L’obiettivo, prefissato nei capitoli precedenti, è quello di dare la possibilità ad un tutor, o ad uno studente, di creare in maniera sequenziale nuovi corsi, stabilendo dei moduli didattici e infine aggiungendo a questi delle lezioni. Per le caratteristiche delle Mediateca, e per integrare le funzionalità che ci interessano, le lezioni da aggiungere ad un modulo possono essere statiche o dinamiche. • Le lezione statiche sono inserite dall’operatore provvisto del foglio di regia di una lezione filmata in presenza. Il nuovo sistema di inserimento dati guida l’operatore nell’immissione delle informazioni, aumentando l’efficienza e permettendo di introdurre i metadata in maniera molto semplice. • Le lezioni dinamiche sono realizzate attraverso una ricerca nel database da parte di un tutor, possibile creatore di un nuovo corso o un nuovo modulo. La ricerca è basata sulle parole chiave associate ai learning object presenti nel database. Ogni argomento di una lezione e ogni singola slide sono learning object con tutti i loro metadata. Come è stato accennato nei capitoli precedenti, il sistema è basato su ASP della Microsoft e sul database SQL Server che ospita la Mediateca. La scelta dell’ASP è stata fatta per continuità con la struttura precedente e per le caratteristiche proprie del linguaggio: permette l’utilizzo degli strumenti realizzati da qualsiasi postazione internet, senza dipendenze di sistema operativo e senza un software da installare sulla macchina dell’operatore o del tutor. 102 Sequence diagram dell’intero processo di creazione: Tutor default. asp conferma corso. asp crea_modulo.conferma_modulo asp creazione lezione dinamica statica/default. asp scrivi. asp submit (dati Corso) (IDCorso) submit (dati Modulo) (IDCorso, IDModulo) (IDCorso, IDModulo) (submit dati Unità) Nuova lezione presenza Nuova lezione dinamica Nuovo modulo Nuovo corso Figura 6-1 Sequence diagram processo creazione corso, modulo, lezione 103 Sequence diagram della creazione dinamica della lezione: lezione.asp Tutor conferma. asp catalogo. asp default. asp (form_chiave) (titolo_lezione, autore_lezione, IDResource) aggiungiRisorsa cancellaRisorsa Elimina lezione submit(dati lezione) isArray Aggiungi altre risorse nuova lezione Figura 6-2 Sequence diagram processo creazione lezione dinamica Oltre ai sequence diagram del processo può essere utile analizzare le varie fasi con i file coinvolti, osservando in particolare il sottoinsieme per la creazione delle pagine dinamiche. 104 6.1 Creazione di un corso Cartella: root File ASP: default, conferma_corso La pagina iniziale è una semplice form per la raccolta delle informazioni sul corso che si vuole creare. Di default sono presenti due date per accelerare l’inserimento dei dati e per mostrare direttamente all’operatore il formato corretto per l’immissione di queste. E’ inserito inoltre l’ID del corso radice del database come corso “Parent” (il corso da cui è propedeutico quello che si sta creando). In questo modo non possono esserci errori di inserimento, perché comunque ogni corso avrà un padre, anche se fittizio. Sono presenti infine i link per proseguire direttamente all’inserimento di un nuovo modulo o una nuova lezione. Nella pagina di conferma si ha un semplice messaggio di avvenuta scrittura nel database e una tabella riassuntiva delle informazioni immesse. Per realizzare questa scrittura c’è una connessione al database, vengono recuperati i valori passati con la form e infine si crea un RecordSet per la scrittura fisica. A questo punto viene selezionato l’ID più alto (che corrisponde all’ultimo corso creato) e viene passato come variabile alla pagina successiva attraverso un link. 6.2 Creazione di un modulo Cartella: root File ASP: conferma_modulo, crea_modulo Di nuovo una semplice form per raccogliere i dati sul modulo che si vuole aggiungere. Anche in questa fase è inserito di default il valore del modulo Parent uguale al modulo radice. Se la pagina è invocata dallo step precedente (la 105 creazione del corso) verrà recuperato l’ID del corso a cui sarà aggiunto il modulo e inserito di default. Nella pagina di conferma avvengono di nuovo le operazioni di scrittura sul database, ma questa volta viene aggiornata anche una tabella non direttamente coinvolta nella creazione: uCourseModule per gestire la relazione molti a molti fra tCourse e tModule. A questo punto si può procedere all’inserimento di lezioni statiche o dinamiche, con il passaggio delle variabili con il numero di corso e modulo ai quali ci si riferisce. 6.3 Creazione di una lezione statica da una lezione in presenza Cartella: lezione_presenza File ASP: default, scrivi Per inserire le informazioni sulla lezione è indispensabile indicare subito quanti argomenti saranno inseriti e quante slide sono presenti al massimo per ogni argomento. A questo punto vengono inseriti di default il corso e il modulo ai quali sarà aggiunta la lezione (se la creazione di questa è richiesta dalla conferma della creazione di un modulo) e viene creata la griglia per l’inserimento dei dati, parzialmente precompilata per abbassare i tempi di inserimento. Per questo motivo di default sono presenti anche molti altri dati che solitamente non variano: le dimensioni del filmato e delle slide, il nome del file video, la lingua, la data del giorno di inserimento (che automaticamente è scritta nel database anche come data dell’ultima modifica), l’ID dell’unità Parent dell’ultima lezione creata durante la sessione o dell’unità radice negli altri casi. I campi che rimangono da riempire manualmente sono quelli indispensabili: nome della lezione, autore, cartella dove verrà immagazzinato il file video, giudizi sulla qualità della lezione e del materiale, titolo e parole chiave per ogni argomento 106 della lezione con i tempi di inizio, nomi delle slide con tempi di inizio (le immagini avranno automaticamente le stesse parole chiave dell’argomento a cui si riferiscono). Inviando la form tutte le informazioni vengono scritte nel database: ci sono inserimento nella tabella tMedium (per i file fisici), tResource (per i learning object composti dagli spezzoni di lezione come argomenti o dalle slides), in uModuleUnit e uUnitResource per gestire le relazioni molti a molti fra le tabelle. 6.4 Creazione di una lezione dinamica da risorse presenti nella Mediateca Cartelle: lezione_dinamica, lezione_dinamica/player File ASP: default, conferma, catalogo, lezione, start Questo insieme di pagine ASP è lo strumento in grado di ricercare nel database e tenere traccia delle risorse scelte dal tutor attraverso gli strumenti web. E’ uno strumento semplice e con una business logic molto chiara: è in grado di: • creare una nuova lezione / Recuperare le informazioni da una lezione esistente; • gestire le operazioni di inserimento, cancellazione e modifica delle risorse; • gestire la persistenza delle informazioni (compatibilmente con le scelte operate dal tutor); • integrare le informazioni del carrello con la gestione dei moduli, dei corsi, delle lezioni in presenza. Un’altra importante premessa è che la soluzione proposta consente di realizzare lezioni on the fly: il tempo di vita dei dati sulla lezione è pari alla 107 durata della sessione utente, evitando di rendere le informazioni persistenti almeno fino alla conferma della creazione. Da un punto di vista implementativo è stato utilizzato un semplice array, che contiene le informazioni sulla lezione, affiancato all'oggetto Session, che funziona come veicolo dell'array stesso. Il vantaggio di questa soluzione è che con semplici e veloci operazioni sull'array possiamo gestire tutte le funzioni previste. Naturalmente i due elementi si completano con l'interazione via ADO con il database Mediateca. DEFAULT.ASP Il codice presente in questa pagina contiene semplicemente il messaggio descrittivo, la form per la ricerca e due link testuali: uno per rivedere la lezione che si sta modellando e uno per confermare la creazione se si è tornati indietro alla pagina di ricerca. E’ praticamente superfluo analizzare il codice di questa pagina, considerando le sue limitate funzioni. CATALOGO.ASP La pagina di ricerca consente al tutor di selezionare (tramite caselle di conferma) le risorse che preferisce dal risultato della ricerca appena effettuata, ed inserirle virtualmente nella lezione. Confermando la selezione delle risorse, l'utente consulterà automaticamente il contenuto della lezione. Lo script ASP ha il compito di connettersi al database SQL Server attraverso ADO e recuperare i dati relativi alle risorse. Viene dunque costruita una tabella contenente le informazioni dei singoli articoli, con la prima colonna di selezione attraverso una casella checkbox di conferma per aggiungere le risorse alla lezione. Vale la pena evidenziare alcuni passaggi critici della ricerca, in particolare il collegamento col database e la creazione della tabella con alcuni metadata: <% […] ' Apro la connessione verso il database usando ADO 108 Set rsRisorse = Server.CreateObject("ADODB.RecordSet") StrConn = "Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=mediateca4prototipo;Data Source=SQL;User Id=MediatecaUser;PASSWORD=089786;" rsRisorse.open "SELECT * FROM tResource where Keywords like '%"&chiave&"%' ORDER BY IDResource ASC",StrConn 'Costruisco la tabella delle risorse con una casella di conferma With rsRisorse While not .eof NewTd="<TD align=center><input type=checkbox name=risorse value=" & .fields("IDResource") & ">" NewTd=NewTd & "<TD width=200>" & .fields("Title") & "</TD>" NewTd=NewTd & "<TD width=350>" & .fields("DescriptionAbstract") & "</TD>" NewTd=NewTd & "<TD width=50>" & .fields("TeacherExposure") & "</TD>" NewTd=NewTd & "<TD width=50>" & .fields("MaterialQuality") & "</TD>" NewTd=NewTd & "<TD width=50>" & .fields("Type") & "</TD>" NewRow="<TR>" & NewTd & "</TR>" Response.write NewRow .MoveNext Wend End With rsRisorse.Close Set rsRisorse=nothing %> 109 LEZIONE.ASP Questa pagina consente al tutor di visualizzare la lista delle risorse selezionate, di eliminarne dalla lezione, di cancellare direttamente tutta la lezione oppure di confermarne la creazione. Si può esaminare brevemente la sequenza delle azioni svolte dallo script: • verifica contenuto oggetto Session("lezione") (attraverso la funzione isArray); • analisi delle richieste inoltrate alla pagina. Le richieste possono provenire dal catalogo delle risorse (inserimento) oppure dalla lezione stessa (cancellazione della lezione, eliminazione di risorse); • costruzione della lista degli ID delle risorse da visualizzare attraverso una query SQL sulla tabella tResource, per recuperare le restanti informazioni. É possibile identificare nel codice alcune importanti funzioni, incluse come script lato server, che non vengono trasmesse al client ma eseguite direttamente sul server come per tutto il codice ASP. Queste funzioni realizzano le operazioni fondamentali sulla lezione, come: NOME FUNZIONE DESCRIZIONE AggiungiRisorse() aggiunge una o più risorse provenienti dal database EliminaRisorse() cancella le risorse selezionate dall'utente nella lezione AggiungiRisorse() Questa funzione preleva la lista delle risorse da inserire nella lezione dalla collezione request("risorse"), proveniente dal form contenuto nella pagina “catalogo.asp”. 110 Prima di tutto verifica la presenza di risorse nell'array lezione; se vi sono altre risorse effettua una ulteriore verifica per trovare eventuali duplicati; infine, aggiunge le risorse mancanti. Naturalmente tutte le verifiche vengono evitate nel caso di lezione vuota. L'inserimento di nuove risorse avviene con un ridimensionamento dell'array. <% sub aggiungiRisorsa() 'Questa routine aggiunge una nuova risorsa alla lezione risorse=split(request("risorse"),",") 'Se la lezione non è vuota devo verificare 'se le nuove risorse sono già presenti if presenti=1 then for art=0 to ubound(risorse) trovato=false for righe=0 to ubound(lezione,2) if clng(lezione(0,righe))=clng(risorse(art)) then trovato=true righe=ubound(lezione,2)+1 end if next if trovato=false then 'righe=ubound(lezione,2) redim preserve lezione(1,righe) lezione(0,righe)=risorse(art) lezione(1,righe)=1 end if 111 next else redim lezione(1,nuoviArt-1) for c=0 to nuoviArt-1 lezione(0,c)=risorse(c) lezione(1,c)=1 next end if presenti=1 end sub EliminaRisorse() Questa funzione consente l'eliminazione delle risorse contrassegnate dal tutor per la cancellazione, e fa uso della collezione request("elimina"), presente nei checkbox della pagina stessa, per recuperare la lista delle risorse. Dopo aver verificato la presenza di risorse da eliminare, la funzione inizia la scansione fino a trovare quella da cancellare. A questo punto viene impiegata una tecnica di shifting che scambia l'elemento da eliminare con l'ultimo presente nell'array, per poi ridurre opportunamente quest'ultimo di un elemento. Verifica inoltre che siano rimasti altri elementi nell'array, ed imposta di conseguenza la variabile “presenti” rispettivamente pari a 1 o 0. sub cancellaRisorse() 'Questa routine elimina una risorsa dalla lezione 'con una tecnica di shifting degli elementi risorse=split(request("elimina"),",") presenti=true 112 for k=0 to ubound(risorse) x=0 do if cint(lezione(0,x))=cint(risorse(k)) then 'Verifico se si tratta dell'ultimo elemento if x<ubound(lezione,2) then ultimo=ubound(lezione,2) lezione(0,x)=lezione(0,ultimo) lezione(1,x)=lezione(1,ultimo) end if if ubound(lezione,2)=0 then erase lezione presenti=false else redim preserve lezione(1,ubound(lezione,2)-1) end if exit do else x=x+1 end if loop next end sub %> CONFERMA.ASP Il tutor esprime la propria volontà di creare la lezione con il link "Conferma creazione" presente in default.asp, oppure con il tasto "Crea lezione" presente in lezione.asp. Quando richiesto dalla home page, l'utente è invitato a confermare 113 se visualizzare la lezione prima di confermare, oppure procedere direttamente. Lo script contenuto nella pagina, conferma.asp appunto, esegue semplicemente l'annullamento della variabile Session("lezione"), in modo che la lezione risulti nulla, e scrive i file SMIL necessari. Rimangono quindi due possibilità: avviare la lezione appena creata per visualizzarla attraverso il RealPlayer o tornare alla home page per una nuova ricerca. Prima di tutto viene creata la nuova cartella che ospiterà i file SMIL sul server. Di questi il primo a essere scritto è video.smi: Dim fsob, file Set fsob = CreateObject("Scripting.FileSystemObject") IF fsob.FileExists(completov)=true THEN Response.write("Impossibile creare il file video.smi. <br>Il file esiste già.") ELSE Set file = fsob.CreateTextFile(completov) file.Writeline("<smil>") file.Writeline("<head>") file.Writeline("<!-- Presentation attributes. -->") file.Writeline("<meta name=""title"" content="" " & titolo & " ""/>") file.Writeline("<meta name=""author"" content="" " & autore & " ""/>") file.Writeline("<meta name=""copyright"" content=""ELIS""/>") […] for k=0 to ubound(lezione,2) tempo_inizio= campi("DurationFrom") tempo_fine= campi("DurationTo") temp = (DateDiff ("s", campi("DurationFrom"), campi("DurationTo"))) 114 file.WriteLine ("<video src=""rtsp://teca.elis.org/" & campi("FolderName") & "/lezione.rm"" clipbegin="""&tempo_inizio&""" clip-end="""&tempo_fine&""" region=""video_region"" fill=""remove"" />") rsRisorse.MoveNext next file.WriteLine("</seq>") file.WriteLine(" ") file.WriteLine("<textstream src=""file:///c|/paolo/test/prova" & numerocaso "/toolbar.rt"" & region=""toolbar_region"" />") file.WriteLine("<img src=""file:///c|/paolo/test/prova" & numerocaso & "/immagini.rp"" region=""slide_region""/> -->") file.WriteLine("</par>") file.WriteLine("</body>") file.WriteLine("</smil>") file.Close Response.Write("Ho creato il file smile.<br>") END IF rsRisorse.MoveFirst Set file=Nothing A questo punto vengono creati i due file con l’elenco degli argomenti della lezione (toolbar.rt) e il file che gestirà la visualizzazione delle immagini (immagini.rp) con un procedimento simile, ma con l’algoritmo mostrato nel quinto capitolo per la gestione dei tempi. 115 Un frammento del codice per l’inserimento nel file delle immagini: tempo_start="00:00:00" for k=0 to ubound(lezione,2) Set RsAppoggio= Server.CreateObject("ADODB.RecordSet") StrConn3="Provider=SQLOLEDB.1;Persist Security Info=False;Initial Catalog=mediateca4prototipo;Data Source=SQL;User Id=MediatecaUser;PASSWORD=089786;" stringasql="select count(*) from tMedium inner join tResource on tMedium.IDMedium=tResource.IDMedium where Type='Slide' and IDParent = ("& lezione(0,k) &") " RsAppoggio.open stringasql,StrConn3 contatore = RsAppoggio(0) for j=0 to contatore-1 file.Writeline("<image handle="""&iSlide&""" name=""http://teca.elis.org/" & campi2("FolderName") & "/immagini/" & campi2("FileName") &"""/>") file.Writeline("<fadein start=""" & tempo_start & """ duration=""0"" target="""&iSlide&"""/>") iSlide = iSlide +1 tempo_start=campi2("DurationTo") rsSlides.MoveNext next ' i tempi d'inizio dell'argomento! temp2 = (DateDiff ("s",campi("DurationFrom"),campi("DurationTo"))) tempo_temp = DateAdd("s",temp2,"00:00:00") tempo_start= Replace(tempo_temp, ".", ":") 116 rsRisorse.MoveNext next START.ASP Per visualizzare la lezione è sufficiente un solo file ASP per invocare il player per qualsiasi lezione creata. Il file start.asp mostra infatti la lezione andando a leggere proprio i file SMIL appena creati nella nuova cartella, se la lezione è una combinazione di risorse già presenti, o il file SMIL originale di una lezione completa già presente nel database. Questo avviene grazie al passaggio della variabile con l’ID della lezione richiesta. Questa variabile viene letta proprio all’inizio del file (da notare che se viene invocata la pagina senza variabile viene restituita una pagina di errore): <% mpID = Request("ID") if mpID = "" then response.Redirect("/error.asp?ErrorID=0") %> <html> <head> A questo punto viene avviato il Real Player, immerso nella finestra del browser ed invocato con una stringa di inizializzazione: <embed name="MediatecaPlayer" id="MediatecaPlayer" type="audio/x-pn-realaudio-plugin" src="rtsp://teca.elis.org/<%=mpID%>/video.smi" width="692" 117 height="375" autostart="true" controls="ImageWindow" console="MediatecaPlayer"> </embed> Il passaggio della variabile, evidenziato in neretto, permette di poter richiamare qualsiasi lezione in maniera dinamica semplicemente invocando il file. 118 Conclusioni All’inizio di questo lavoro di tesi mi ero prefissato l’obiettivo di progettare e realizzare un database compatibile con i metadata, che attraverso questa innovazione riuscisse ad utilizzare completamente le possibilità dei learning object. Per arrivare a destinazione mi sono confrontato con tutti gli elementi coinvolti nel processo, dall’operatore video al docente ripreso, dagli addetti alla post produzione agli studenti finali a cui è rivolta la lezione a distanza. Sono stato il primo fruitore di questa tecnologia per preparare delle docenze e delle esercitazioni che ho avuto l’occasione di offrire a dei ragazzi di un corso sulle nuove tecnologie. Mi sono dovuto confrontare con le difficoltà di una lotta per uno standard definitivo, le implicazioni e le ristrettezze degli interessi commerciali e i passi faticosi delle soluzioni più aperte, con tempi di gestazione lenti e macchinosi. Ho affrontato un’esperienza di reverse engineering su un database progettato e implementato anni prima e mi sono immerso nella progettazione di una nuova struttura con diversi strumenti, sfruttando pienamente le possibilità della modellazione software con l’UML (Unified Modeling Language). Una volta preparato il sistema sulla carta ho avuto la possibilità di implementarlo e di testarlo direttamente, imparando molto della programmazione orientata ai database sul web, sperimentando i vantaggi e le difficoltà di scelte concrete, come la ricerca di un equilibrio efficace fra la completezza e la semplicità di utilizzo per l’utente. Infine, ho avuto la possibilità di svolgere il mio lavoro in un ambiente produttivo sereno e stimolante, dove non ho smesso di approfondire argomenti collegati al mio lavoro o scoprirne di nuovi, anche grazie a dei “colleghi” che non hanno esitato ad accogliermi. Al termine di questo lavoro posso dire che gli obiettivi sono stati raggiunti. 119 E’ evidente che una delle potenzialità più importanti della Mediateca, divenuta chiara e facilmente accessibile con l’implementazione dei metadata, è la modularità. Per ogni lezione filmata, attraverso la regia in fase di ripresa e la post-produzione successivamente, vengono create una serie di risorse che possono essere riutilizzate con i nuovi strumenti sviluppati. Sfruttando al massimo le possibilità offerte dai metadata e da questa granularità molto fine nell’indicizzazione degli argomenti, è ora possibile utilizzare al meglio le risorse disponibili nella Mediateca. Attraverso il sistema di ricerca un utente può trovare una definizione o un esempio molto particolare in maniera estremamente semplice. Qualsiasi studente ha la possibilità di combinare fra loro diverse spiegazioni dello stesso argomento, anche di professori diversi, scegliendo l’aspetto della lezione che vuole privilegiare, o può mettere insieme tutte le esercitazioni svolte negli anni passati per preparare un esame. Anche dal punto della creazione dei corsi sono arrivato a delle soluzioni ottimali. Con il gran numero di lezioni raccolto dalla Mediateca negli anni è già possibile creare dei corsi anche significativamente diversi da quelli originali. Attraverso la combinazione dei singoli argomenti, estratti da corsi e lezioni differenti, si possono creare veri e propri nuovi corsi o semplicemente integrare, aggiornare, migliorare quelli già esistenti. I casi pratici che si possono immaginare sono molti e facilmente intuibili: integrare un ottimo corso di base con approfondimenti successivi, aggiornare una lezione con un argomento recente, estrarre solo gli argomenti significativi da un corso molto completo per chi deve avere solo una conoscenza di base di una tematica, e così via. Tutto questo è stato automatizzato e reso accessibile attraverso strumenti indipendenti da piattaforma e locazione dell’utente, con delle soluzioni che mi hanno portato ad un’ottima conoscenza della progettazione UML prima, e dell’implementazione attraverso ASP e SMIL poi. L’ultimo risultato fondamentale è la possibilità di importare ed esportare dati con qualsiasi altra base di dati conforme ad uno standard fra Dublin Core, IMS o, per la struttura essenziale, IEEE LOM. Questa possibilità apre la strada all’interazione con altri progetti già avviati all’interno dell’ELIS e apre le conoscenze e le competenze raccolte in questi anni a qualsiasi tipo di 120 collaborazione dove sia prevista uno scambio di dati tramite XML, lo standard di fatto per lo scambio delle informazioni sul web. 121 Appendice A A.1 XML: eXtensible Markup Language Extensible Markup Language (XML) è un semplice e flessibile formato per i testi derivato da SGML (ISO 8879), un metalinguaggio ideato negli anni ’60 per definire linguaggi di tipo markup, ossia linguaggi basati su marcatori. XML è uno dei risultati di questo lavoro, in particolare è il linguaggio specifico per scrivere dati in maniera strutturata. Un esempio molto semplice di XML: <nota> <a>Paolo</a> <da>Claudio</da> <soggetto>Reminder</soggetto> <corpo>Ricordati la riunione sabato</corpo> </nota> Questa, come è facilmente intuibile, è una scrittura in XML di dati relativi ad un appunto fra due colleghi. Dall’esempio si possono intuire le principali caratteristiche di questo linguaggio: 1 è un linguaggio di markup molto simile all’HTML 2 è concepito per descrivere dati 3 i tag non sono predefiniti e cercano di essere auto-descrittivi E’ possibile notare la somiglianza con l’HTML per quanto riguarda la 122 sintassi, ma è importante sottolineare le differenze concettuali: 1 l’HTML è per la visualizzazione dei dati (come mostrare i dati) 2 XML è per la descrizione e lo scambio di questi fra sistemi (cosa sono i dati) Tutto ciò che hanno in comune questi linguaggi è, quindi, la sintassi base utilizzata e l'idea di scrivere i dati di un documento o di un record in maniera strutturata. E possibile inoltre aggiungere degli attributi (per l’esempio precedente basta pensare all’attributo “data” con un valore di otto cifre) con una sintassi del tipo: <nometag attributo="valore"> contenuto del tag </nometag> ma la stessa espressione può anche essere scritta: <nometag > <attributo> valore </attributo> contenuto di nometag </nometag> In questo modo il valore dell’attributo è più facilmente estraibile con un programma, se ne possono elencare più di uno e possono essere estesi in un futuro con molta elasticità. Ogni tag ha un nome e può avere più attributi, ognuno con un valore, e deve essere aperto e chiuso. Un documento XML si dice Well Formed se è sintatticamente corretto secondo le specifiche del linguaggio. Un documento non well formed è ad esempio: <prova> <uno> <due> testo del test </uno> </due> perché il tag <prova> non è chiuso, e i tag <uno> e <due> non sono annidati correttamente. Come è stato accennato, per tutti gli standard il linguaggio XML è considerato lo strumento ideale per scambiare informazioni strutturate. 123 Ad esempio, diversi software bancari potrebbero scambiare dati con una struttura XML di questo tipo: <conto id=”BB1357246”> <cod_banca>ABI9988</cod_banca > <saldo> <data_saldo>20001127</data_saldo> <valuta>euro</valuta> <valore>+4000</valore> </saldo> </conto> Per definire la struttura con cui poi si scambieranno i dati si possono utilizzare due strumenti: i DTD (Document Type Definition) oppure i più recenti XML-Schema. Un documento XML che rispetta la struttura definita da un DTD o da uno Schema, si dice Valid rispetto ad esso. Permettono entrambi di definire in maniera formale e univoca la struttura di un documento XML: quali tag possono essere annidati e all'interno di altri, quali attributi sono ammessi per un certo tag, quali elementi sono obbligatori, la cardinalità ammessa per ogni elemento e così via. DTD proviene dal mondo SGML ed è una tecnologia affermata, ma non sempre semplice da comprendere e limitata da un set di funzionalità ristretto. XML-Schema è uno standard molto giovane, ma con diversi vantaggi, primo fra i quali il fatto di essere stato scritto proprio in XML. E’ naturale quindi che i software capaci di leggere ed editare XML possono automaticamente lavorare con gli schema. E’ importante anche notare che gli schema sono più autoesplicativi rispetto ai criptici DTD, ed hanno anche la possibilità di definire tipi per i valori dichiarati (i DTD possono definire solo vincoli sulla struttura del documento e non sui valori). Per questi motivi è facile ipotizzare un futuro con 124 gli XML-Schema sempre più utilizzati e i DTD destinati a sparire lentamente. 125 A.2 SMIL: Synchronized Multimedia Integration Language Dietro l’acronimo SMIL (che si pronuncia come la parola inglese ‘smile’) c’è un “Linguaggio di integrazione e sincronizzazione di file multimediali”. Un linguaggio a marcatori (TAG) come l'HTML, sviluppato come un’estensione XML, che consente l'integrazione di filmati e suoni e testo, soprattutto in un’ottica di maggiore fruizione di questi via web. Come per tutte le estensioni dei linguaggi a marcatori XML, non è scontato trovare un'applicazione che la apra; sono esemplari, in questo campo, le differenze di visualizzazione tra i vari browser per i file HTML, uno standard in uso da più di dieci anni e che ancora non trova stabilità e una riproduzione univoca. Per i file SMIL, riconoscibili dal suffisso “.smi”, attualmente le uniche applicazioni che li riproducono sono i prodotti della Real, a partire dal G2 Player Plus. Queste applicazioni naturalmente supportano principalmente i file RealAudio, RealMedia, RealPix, RealText, ed è possibile trovarle sia come programmi stand-alone che come plug-in nelle versioni più recenti dei più diffusi browser Netscape e Internet Explorer. All’interno dei file SMIL è possibile anche inserire file multimediali più comuni, ma perdiamo molte delle proprietà dei file .rt (RealTxt), .rp (RealPix) e così via. La soluzione migliore è quindi quella di acquisire i file multimediali con una semplice scheda di acquisizione in un formato supportato dalla periferica (ad esempio .avi, . mpg, .mov) e successivamente convertirli in .rm, il formato Real per i file video, con un semplice encoder gratuito (come l’Helix Basic offerto gratuitamente proprio dalla Real). Diverso discorso meritano, come vedremo, i file .rp Real Pix per i file grafici .rt Real text per i file di testo. Come per tutti i linguaggi per il web, le specifiche sono decise dal W3C (il consorzio per il World Wide Web) come estensione XML. Per presentare gli elementi principali della sintassi si può esaminare un file della Mediateca: 126 <smil> <head> <!-- Presentation attributes. --> <meta name="title" content="10 - Introduzione alle reti locali"/> <meta name="author" content="Silvano Gai - Reti di calcolatori"/> <meta name="copyright" content="Elis - Linfa"/> <layout> <!-- Width, height, and background color of entire presentation. -> < root-layout width="692" height="375" background- color="white" /> <!-- Video region. --> <region id="video_region" left="0" top="0" width="192" width="500" height="375" height="144" /> <!-- Images region. --> <region id="slide_region" left="193" top="0" background-color="white" /> <!-- Toolbar region. --> <region id="toolbar_region" left="0" top="145" width="192" height="231" /> </layout> </head> <body> 127 <par> <!-- Play these streams concurrently (in parallel). --> <video src="lezione.rm" region="video_region" /> <img src="slide.rp" region="slide_region" /> <textstream src="toolbar.rt" region="toolbar_region" /> </par> </body> </smil> Naturalmente questo codice è estratto da un file con estensione .smi e per aprirlo è bastato un semplice editor di testi come Notepad o TextPad. Si nota subito l’utilizzo dei tag (marcatori) come nell’HTML, SMIL è infatti un diretto discendente dello SGML. Il primo tag che incontriamo, e che non può mancare, è proprio lo stesso che si chiude alla fine del documento: <smil> </smil> Il tag è fra parentesi acute, questo permette di identificare le “parole chiave” al parser che elaborerà il semplice file di testo per creare il documento multimediale. Come per l’HTML, dopo i marcatori principali che identificano il tipo di file (in HTML al posto di <smil> abbiamo proprio <html>) incontriamo un altro tag 128 che racchiude del codice: <head> </head> All’interno troviamo inizialmente dei marcatori che servono ad identificarlo in maniera univoca, fissando vari attributi (titolo, autore e copyright nel nostro caso): <!-- Presentation attributes. --> <meta name="title" content="10 - Introduzione alle reti locali"/> <meta name="author" content="Silvano Gai - Reti di calcolatori"/> <meta name="copyright" content="Elis - Linfa"/> Andando avanti incontriamo una sintassi per il layout fortemente ispirata ai CSS2 (Cascade Style Shett 2, la seconda versione dei fogli di stile in sequenza), istruzioni quindi per disporre e coordinare sulla schermata i vari file multimediali. <layout> <!-- Width, height, and background color of entire presentation. --> < root-layout width="692" height="375" backgroundcolor="white" /> <!-- Video region. --> <region id="video_region" left="0" top="0" width="192" height="144" /> 129 <!-- Images region. --> <region id="slide_region" left="193" top="0" width="500" height="375" background-color="white" /> <!-- Toolbar region. --> <region id="toolbar_region" left="0" top="145" width="192" height="231" /> </layout> Possiamo notare gli attributi fondamentali del marcatore root-layout: 1 heigth: l'altezza della finestra nell' applicazione in cui appariranno i file multimediali misurata in pixel; 2 width: l'altezza della finestra nell' applicazione misurata in pixel; 3 background-color: il colore dello sfondo nell’applicazione. All’interno del marcatore <root-layout></layout> c’è un altro tag ripetuto tre volte: <region id /> che associa a determinate zone dell'applicazione un id delle proprietà precise. Ogni zona conterrà un elemento multimediale diverso, video_region mostrerà un video, slide_region immagini statiche e così via. Naturalmente ogni regione dovrà essere definita anche in maniera molto precisa, andrà settato infatti: il titolo di questa zona o parte o area, la distanza in pixel da sinistra, la distanza in pixel dall'alto, l'altezza in pixel, la lunghezza in pixel e –facoltativamente- il colore di sfondo. 130 Terminata la parte dell’ <head> entriamo nell’applicazione vera e propria, il corpo, quella che vedremo materialmente sullo schermo, con il marcatore <body>. <body> <par> <!-- Play these streams concurrently (in parallel). --> <video src="lezione.rm" region="video_region" /> <img src="slide.rp" region="slide_region" /> <textstream src="toolbar.rt" region="toolbar_region" /> </par> </body> Il marcatore che si può notare è <par>, contiene tutti gli altri elementi del <body> ed è chiuso subito prima del </body> finale. Il tag <par> indica degli oggetti multimediali che andranno mostrati in parallelo all’interno dell’applicazione. In alternativa si utilizza il marcatore <seq> per avere oggetti in sequenza. All’interno sono elencati gli oggetti multimediali, con dei marcatori molto simili all' <img src></img> usato in HTML. Con questi tag possiamo includere i file dei video (lezione.rm, RealMedia), dell’indice (testuale, tollbar.rt, RealText) e delle immagini (slide.rp, RealPix), associandoli alle regioni definite precedentemente nell’header. 131 Analizzando nel dettaglio un file RealPix si possono notare altre caratteristiche interessanti: <imfl> <head timeformat="dd:hh:mm:ss.xyz" duration="42:53" preroll="10.0" bitrate="12000" width="500" height="375" aspect="true"/> <image handle="1" name="slide/1.jpg"/> <image handle="2" name="slide/2.jpg"/> […] <image handle="23" name="slide/23.jpg"/> <!-- Prima Foto di presentazione --> <fadein start="0" duration="5" target="1"/> <fadein start="00:00:14" duration="0" target="2" /> <fadein start="00:01:27" duration="0" target="3" /> <fadein start="00:02:05" duration="0" target="4" /> […] 132 <fadein start="00:42:46" duration="0" target="23" /> </imfl> Un file RealPix è un semplice file di testo, scritto in XML, che organizza i comuni file jpg o png o gif con una codifica speciale. Questi file possono effettuare, attraverso marcatori in linguaggio XML, una sequenza (slideshow) di file grafici con effetti grafici (es: fadein) e indicazioni temporali e altro ancora. Il principale marcatore di questo tipo è <imfl>. Come nell’esempio precedente il tag head segue il principale, ma in realtà ha delle caratteristiche particolari: <head timeformat="dd:hh:mm:ss.xyz" duration="42:53" preroll="10.0" bitrate="12000" width="500" height="375" aspect="true"/> Come si nota subito la prima differenza è che si conclude nella medesima parentesi angolare <head/>. La seconda è che ha attributi diversi: 1 Height Altezza file jpg 2 Width Larghezza file jpg 3 Il secondo in cui inizia la sequenza 4 Duration La durata della sequenza 133 5 Timeformat La misura in cui viene contato il tempo (ore, minuti, secondi, ecc.) 6 Bitrate L'indicazione della velocità alla quale il file jpg deve essere trasmesso (in bit al secondo) 7 Url Eventualmente un Url, dal quale si deve scaricare l'immagine Non viene dichiarato un marcatore body, ma un marcatore <image handle /> che numera i file jpg da maneggiare (handle appunto) e gli assegna un identificatore: <image handle="1" name="slide/1.jpg"/> <image handle="2" name="slide/2.jpg"/> […] <image handle="23" name="slide/23.jpg"/> Esistono, infine, dei marcatori (<wipe/>, <image/>, <animate/>, <crossfade/>, …) che indicano, attraverso vari attributi, in che maniera deve avvenire la sequenza per ogni singolo file grafico. Nel caso della Mediateca è stato utilizzato il tag <fadein/>: <fadein start="0" duration="5" target="1"/> <fadein start="00:00:14" duration="0" target="2" /> <fadein start="00:01:27" duration="0" target="3" /> <fadein start="00:02:05" duration="0" target="4" /> 134 […] <fadein start="00:42:46" duration="0" target="23" /> RealPix è dunque un file XML che definisce una sequenza di file grafici (jpg, png, gif). L' <head/> definisce le caratteristiche come la durata e la dimensione, l’<image handle/> numera e nomina i file, <wipe/> indica i vari modi di mostrarli. Analizzando infine il file RealText apriamo il file toolbar.rt con un editor di testo: <window type="generic" width="192" height="231" duration="42:53.0"> <font face="Arial"><b>INDICE</b><br> <a href="command:seek(00:00:00)" target="_player">Introduzione</a><Br> <a href="command:seek(00:01:19)" target="_player">Indice</a><Br> […] <a href="command:seek(00:39:09)" target="_player">Domande</a> </font> </window> Il marcatore che racchiude il codice è <window> caratterizzato da una serie di attributi: 1 window type Il tipo di visualizzazione; 135 2 height L'altezza in pixel del testo; 3 width La larghezza in pixel del testo; 4 underline_hyperlinks Se il testo, eventualmente linkato, è sottolineato o meno (se sottolineato: true); 5 duration La durata, misurata in secondi, in cui il testo dovrà apparire; 6 link Il colore dell' eventuale collegamento; 7 bgcolor Il colore dello sfondo. Dentro un marcatore <window> possiamo inserire marcatori HTML: <font> e <br>, ad esempio. <font face="Arial"><b>INDICE</b><br> All'interno del tag <a></a> inseriremo un comando per il player, indicando l’istante in cui deve iniziare a visualizzare il video se il link viene cliccato dall’utente. <a href="command:seek(00:00:00)" target="_player">Introduzione</a><Br> <a href="command:seek(00:01:19)" target="_player">Indice</a><Br> In questo modo si può passare a vari istanti del video che si sta mostrando, in questo caso ai vari argomenti indicizzati raggiungibili attraverso i link. 136 A.3 ASP: Active Server Page Superare i limiti dell'HTML, per creare dei siti sempre più rispondenti alle esigenze dei visitatori, è stato una delle mete a cui i programmatori di linguaggi di scripting hanno puntato nel corso della storia del web. Dalle prime pagine statiche, siti vetrina o di presentazione, si è progressivamente arrivati non solo all'esplosione del multimediale, ma, soprattutto, al diffondersi di pagine interattive, in grado non solo di affascinare, ma di fornire un utile strumento a chi le volesse usare. Superare la staticità delle pagine web, mantenendo al contempo una semplicità di programmazione, è possibile grazie ai linguaggi di scripting. Fra questi si distingue ASP (Active Server Pages) per la rapidità e flessibilità di utilizzo che lo caratterizzano, controbilanciate però da uno svantaggio non indifferente: l'utilizzo di questo linguaggio è confinato ai server Microsoft, come ad esempio IIS, e non funziona quindi con tutti gli altri server che popolano il web a meno di soluzioni particolari, instabili e molto poco efficienti. La sempre maggiore diffusione dei server Windows contribuisce però a rendere meno limitante questo ostacolo con il passaggio dal mondo Unix ai server Windows. Va ricordato che esiste una valida alternativa all’ASP per i server Unix: il PHP, dove l’acronimo ricorsivo sta per: “PHP: Hypertext Preprocessor”. Grazie all'utilizzo delle pagine ASP, l'utente può quindi creare dei documenti che possono fornire informazioni, rispondendo dinamicamente in modo diverso alle differenti richieste dei navigatori. Ma quali sono, in breve, i vantaggi nell'utilizzo di questo linguaggio di scripting? 1) Le pagine ASP sono completamente integrate con i file HTML. 2) Sono facili da creare e non necessitano di compilazione. 3) Sono orientate agli oggetti e usano componenti server ActiveX. 137 Visti i vantaggi, e viste anche le limitazioni accennate in precedenza, si possono riassumere le tecnologie coinvolte nello sviluppo e funzionamento delle active server pages in quattro punti: 1) Windows NT o 2000 o XP 2) Protocollo tcp/ip 3) Un web server che supporti Active Server, come IIS 4) ODBC (Open DataBase Connectivity) e un server database. Esaminando più da vicino la struttura di questo genere di pagine possiamo constatare che esse sono costituite da tre differenti parti: 1) Testo 2) Marcatori HTML 3) Comandi script In un documento con estensione “.asp” è consentito infatti utilizzare variabili, cicli, istruzioni di controllo, etc. grazie alla possibilità di richiamare la sintassi un linguaggio di scripting, come ad esempio il VBScript e il JScript, ma anche il Perl. Prima di esamine qualche rudimento di programmazione ASP tramite esempi commentati è utile uno sguardo alla sintassi per capire come esso funzioni, naturalmente senza fare un elenco completo di tutti i comandi, ma solo per capire come lavora. Una prima distinzione a livello di codice sorgente è sui comandi nativi, propri di ASP, e comandi di scripting che appartengono al particolare linguaggio utilizzato. Tra i marcatori fondamentali di ASP ci sono sicuramente i delimitatori, che come nell'HTML delimitano l'inizio e la fine di una sequenza di codice, e sono rappresentati dai simboli <% e %>. Ad esempio il comando: <% x="ELIS" %> assegna alla variabile x il valore "ELIS". 138 Come già detto, è possibile includere anche script nel codice ASP e utilizzare così funzioni create, ad esempio, in JScript o VBScript, richiamandole tramite il comando nativo <% Call _ %>, ad esempio: <% Call PrintDate %> <SCRIPT LANGUAGE=JScript RUNAT=Server> function PrintDate() { var x // x è un'istanza dell'oggetto Date x = new Date() // il comando Response.Write scrive la data sul navigatore Response.Write(x.getDate()) } // Questa è la definizione della procedura PrintDate. // Questa procedura manderà la data corrente al navigatore. </SCRIPT> E’ stato introdotto il concetto di oggetto, è utile quindi ricordare brevemente la sua natura: un oggetto è un'astrazione di una struttura dati, di cui non interessa sapere come è implementata (information hiding), ma quali sono le operazioni possibili su di essa. ASP possiede degli oggetti precostituiti, sui quali si può operare con i metodi, che sono delle funzioni intrinseche all'oggetto: per fare un esempio, sull'oggetto automobile un metodo può essere rappresentato dall'operazione di “svuota_array”, rappresentabile facilmente con una notazione del tipo lezioni.svuota_array. Sebbene si rassomiglino, bisogna fare attenzione a non confondere i metodi dalle funzioni; queste ultime infatti sono definite dal programmatore e risultano esterne all'oggetto. 139 Ritornando all'esempio precedente, la funzione PrintDate definita in JScript è scritta tra i marcatori <SCRIPT> e </SCRIPT> come sempre, però questa volta sono stati inclusi gli elementi LANGUAGE=JScript e RUNAT=server. Un indubbio vantaggio che deriva dall'uso del delimitatore RUNAT di script è costituito dal fatto che il codice sorgente non è mai presente nella pagina HTML che viene spedita al navigatore dal server. Infatti, il sorgente viene rielaborato dal server che invia come risultato una pagina costruita "al volo" nella quale sono visibili solo i codici HTML e quelle funzioni per le quali non sia stato specificato il valore "server". E’ utile esaminare infine alcuni oggetti fondamentali per programmare in ASP: 1 Response, il quale consente di gestire l'interazione fra il server e il client. Molto importante il metodo Response.Write per la scrittura a video: richiede una stringa di testo tra virgolette, o una funzione che restituisca una stringa 2 Request, che può essere definito come oggetto intrinseco al server: rappresenta l'elemento di connessione tra il programma client ed il web server. Si occupa infatti di trasmettere le informazioni provenienti da alcune variabili del server (le collections), mentre l'oggetto Response si occupa dell'interazione tra server e client tramite l'utilizzo di metodi quali Write. La sintassi di questo oggetto è: Request[.Collection] ("variabile") 3 RecordSet, che rappresenta il set di record estratti da una tabella del database interrogato. La sintassi per creare l'oggetto RecordSet è la seguente: <% Dim objRS Set objRS = Server.CreateObject("ADODB.RecordSet") %> 140 Per poter popolare il RecordSet con i record di una tabella bisogna utilizzare il metodo OPEN <% objRS.Open Fonte, ConnessioneAttiva, TipoCursore, TipoBlocco, Opzioni %> dove Fonte rappresenta un elemento che restituisce un nome di variabile oggetto valido: un'istruzione SQL, un nome di tabella, una chiamata di una stored procedure oppure il nome del file di un RecordSet protetto (opzionale); ConnessioneAttiva rappresenta l'elemento che restituisce un nome di variabile Connection valido o un elemento String contenente i parametri ConnectionString (opzionale); TipoCursore rappresenta il valore CursorTypeEnum che determina il tipo di cursore che il provider deve utilizzare quando apre il RecordSet (è opzionale); Opzioni rappresenta il valore Long che indica come il provider deve valutare l'argomento Fonte se questo non rappresenta un oggetto o che il RecordSet deve essere ripristinato da un file in cui era stato precedentemente salvato (opzionale). 141 Appendice B ELIS: Educazione Lavoro Istruzione Sport Attività per la formazione della gioventù lavoratrice e per la solidarietà sociale Centro ELIS Il Centro ELIS fu eretto nel 1965 con i donativi offerti dai cattolici di tutto il mondo in omaggio al papa Pio XII in occasione del suo ottantesimo genetliaco. Da allora l’ELIS opera come struttura di solidarietà in Italia e in altri Paesi in tutti i continenti realizzando attività e iniziative educative allo scopo di prevenire il disagio umano e sociale, trasmettendo professionalità, comunicando uno stile di vita e una cultura del lavoro. Gli Enti giuridici che dirigono le attività e le iniziative sono tutti organismi civili e sia gli organismi che le attività appartengono alla categoria del non profit. Nell’ ELIS operano diversi enti: 1 Associazione Centro ELIS: riconosciuta dallo Stato con Dpr n.738 del 26 maggio 1965 e, in quanto organismo non governativo, organizzazione non lucrativa di utilità sociale (ONLUS). Nel Centro ELIS, chiamato anche "Centro Internazionale della Gioventù Lavoratrice" sono promosse e gestite iniziative che spaziano dal volontariato ai campi di lavoro per i giovani, alla formazione professionale, dai club di studio alla formazione avanzata tecnologica e informatica. Tutte le iniziative sono finalizzate alla formazione di giovani di varia origine ed estrazione sociale, di nazionalità e religione diverse, facendo maturare in tutti la consapevolezza delle proprie potenzialità umane, per diventare individui capaci di assumersi personalmente il compito della loro formazione, agendo collettivamente in relazione fra loro e adoperandosi per il conseguimento di un bene comune al 142 quale tutti cooperano; 2 Cedel: cooperativa sociale educativa e di solidarietà. Cedel eredita le esperienze umane e professionali dell’Associazione Centro ELIS e ne condivide le finalità educative e solidaristiche, agendo in favore dei giovani e dei lavoratori sia in campo nazionale che internazionale. La missione sociale della Cooperativa consiste quindi nel promuovere e supportare in vario modo le iniziative finalizzate alla valorizzazione del lavoro ed alla educazione professionale dei giovani, in modo tale da poterne favorire l’inserimento nel tessuto lavorativo, puntando alla ricerca di soluzioni innovative per dare risposta ai problemi sociali, combinando l’attività di formazione a quella pedagogica, psicologica ed educativa. A tale scopo, collabora con agenzie governative ed aziende pubbliche e private; 3 Consel: consorzio fra imprese impegnate nella formazione di qualità professionale ed umana. Consel nasce per formalizzare il rapporto tra il Centro ELIS e un gruppo di imprese altamente qualificate che sono i fruitori privilegiati delle iniziative formative. Consel, attingendo al patrimonio di conoscenze e valori dei consorziati, si occupa di favorirne il trasferimento all'interno dei corsi Elis affinché questi siano allineati alle esigenze delle imprese; 4 Avel: associazione per il volontariato organizzato. L'AVEL , oltre a contribuire alla realizzazione e al sostegno delle attività del Centro Elis, si propone di svolgere attività sociali e di volontariato in tutti i campi delle organizzazioni non profit, sulla base delle proprie disponibilità finanziarie e umane. Vivai d’impresa "Vivai d'impresa" è un’iniziativa del centro ELIS, finanziata dalle imprese aderenti al Consel, per realizzare un Master per laureati e laureandi in cerca di 143 una tesi di Laurea su progetti avanzati in contesti aziendali di telecomunicazioni e produzione multimediale. Il Master è orientato alla creazione d'impresa, facilitata dall'inserimento nell'incubatore ELIS. Si tratta di un vero e proprio "vivaio", un ambiente in grado sia di favorire la generazione di nuove idee d'impresa (in base alle proposte provenienti dalle aziende), sia di dare ospitalità alle start up companies in un ambiente basato sulla fiducia e sulla collaborazione. L'iniziativa si viene a configurare quale esempio di "educational institution" di tipo completamente innovativo, basata sulla metodologia dell'imparare facendo. Il progetto Vivai è composto da due fasi: 1 Master per la creazione di internet companies 2 Ospitalità alle start up companies La prima fase, della durata di sei mesi, è un periodo di formazione e ricerca finalizzato alla genesi di nuove idee imprenditoriali. Accoglie giovani laureandi o laureati che possiedono già conoscenze specialistiche del settore ICT (Information and Communication Technology), ma che ancora non le hanno applicate a progetti reali. La formazione si basa sulla didattica per progetti. Sul modello delle società di consulenza, i vivaisti, dopo un colloquio di orientamento, vengono assegnati ai progetti commissionati dalle aziende promotrici (Telecom Italia; Siemens; EDS; RAI; WIND; ESA; HP;…) sotto la supervisione di un senior manager che ha anche il compito di seguirne l'apprendimento e effettuare, al termine del progetto, la valutazione e certificazione delle effettive competenze maturate. Questa fase prevede interventi formativi con cadenza periodica. L'attività di formazione copre un 30% del tempo, suddivisa fra seminari su tematiche tecnologiche avanzate e di cultura d'impresa, e interventi specialistici d'interesse per i singoli progetti. Un certo tempo viene dedicato anche ad attività di comunicazione sia interna che esterna, perché tutti i partecipanti siano aggiornati periodicamente sull'evoluzione di tutti i progetti in corso. Durante questo periodo, è possibile ottenere la certificazione CISCO Systems (leader mondiale nelle tecnologie per il Networking), essendo il Centro ELIS la 144 prima Regional Academy italiana e l’unico Training Centre. Al termine della prima fase, ciascun gruppo di lavoro è invitato a presentare i risultati del progetto e le relative idee d'impresa. Nel secondo stadio del vivaio (di durata compresa tra sei e diciotto mesi), i vivaisti hanno la possibilità di dar vita al proprio progetto imprenditoriale e viene loro offerta ospitalità negli spazi attrezzati del progetto: “Incubatore d'Impresa – ELIS”. L'Incubatore è una team room con sistema di videoconferenza ISDN ad alta velocità e stazioni di lavoro dotate di PC in rete locale con connessione permanente a Internet ad alta velocità. Gli Incubatori non svolgono solo la funzione di “hosting” fisico delle imprese consentendo a queste ultime di abbattere i costi di uso locali e impianti (costi di start up). Questa funzione, pur importante, è secondaria rispetto al reale punto di forza dell’Incubatore e cioè la creazione di un’economia distrettuale, una rete di imprese che, lavorando in uno stesso luogo (l’Incubatore appunto) spesso su uno stesso settore, sviluppano quei fenomeni di cooperazione e concorrenza il cui equilibrio è il fattore trainante dell’economia distrettuale. Con un neologismo, si potrebbe parlare di “co-opetition” come conciliazione tra “cooperation” e “competition”. Proprio all’interno dei Vivai si è svolta la mia esperienza, con un progetto per lo sviluppo della Mediateca-ELIS, il sistema di fruizione via Internet di lezioni filmate in diretta o registrate, lo strumento utilizzato per i corsi a distanza della Scuola di Formazione Superiore del Centro ELIS. 145 Bibliografia • American Federation of Teachers “Guidelines for good practice” 2000, http://www.aft.org/higher_ed/downloadable/distance.pdf • Atzeni P., Ceri S., Paraboschi S., Torlone R. “Basi di dati” 1999, McGraw-Hill Italia • Baca M. “METADATA Pathways to Digital Information” 2000, Getty Information Institute • Berge Z. L. “The Role of the Online Instructor/Facilitator” 1995, http://www.emoderators.com/moderators/teach_online.html • Cox B. “Evolving a Distributed Learning Community” 1997, http://www.virtualschool.edu/cox/OnlineClassroom.html • Cross J., Hamilton I. “The DNA of eLearning” 2002, http://www.internettime.com/Learning/articles/DNA.pdf • Crudele M., Dragoni G., Marcovati L. “ICTAD – il primo corso a distanza con certificazione pubblica IFTS, basato su videolezioni via Internet” 2002, http://www.crudele.it/papers/00232.pdf 146 • Ghislandi P. “E-learning: opportunità e rischi per la didattica accademica” 2001, http://cepad.unicatt.it/home/Convegni/Ottobre2001/Materiali/Ghislandi.pdf • Harasim L. “Online Education: A new Domain” in Mason, R, Kaye, A., Mindweave: “Communication, Computer and Distance Education”, 1989, Pergamon Press, Oxford • Horton W. “Leading e-Learning” 2001, The American Society for Training and Development • Institute for Higher Education Policy (The) “What’s the difference?” 1999, http://www.ihep.com/Pubs/PDF/Difference.pdf • Kapp K. “Learning Requirements Planning: An Enterprise-Wide Learning Management Approach” 2001, Bloomsburg Institute for Interactive Technology http://www.e-learningguru.com/wpapers/kapp_lrp.pdf • Kaye A. “Collaborative Learning Through Computer Conferencing” 1992, Springer-Verlag, Berlin • Kearsley G. “Learning and Teaching in Cyberspace” 2001, http://home.sprynet.com/~gkearsley/chapts.htm • Martignago E. 147 “Argomenti di Apprendimento in Rete” 2002, http://www.martignago.com/libri/elearning_toolbook/ • Olimpo G., Trentin G. “La telematica nella didattica: come e quando” 1993, Istituto Tecnologie Didattiche http://www.spbo.unibo.it/pais/giovgraz/td3.htm • Russell T. L. "The No Significant Difference Phenomenon” Articoli dal libro omonimo 1999, http://teleeducation.nb.ca/nosignificantdifference/ • Tanenbaum A.S. “Reti di computer” 1997, Prentice Hall/UTET • Tannenbaum A. “METADATA SOLUTIONS“ 2001, Addison Wesley • Trentin G. “Dalla formazione a distanza alle comunità di pratica attraverso l’apprendimento in rete” 2000, Scuolanews http://www.forminform.it/files/tab2/dista/nds06110.htm • Wiley D.A.(Edited by) “The Instructional Use of Learning Objects” Association for Instructional Technology http://www.reusability.org/read/ 148 RISORSE WEB: • ARIADNE ARIADNE Foundation for the European Knowledge Pool, http://www.ariadne-eu.org • CISCO Cisco Networking Academy Program, http://www.netacad.it/default.asp • DC Dublin Core Metadata Initiative, http://www.dublincore.org/ • IBM IBM Learning Services, www-3.ibm.com/services/learning/ • ICDL International Centre for Distance Learning, http://icdl.open.ac.uk/ • IMS IMS Learning Resource Meta-data Information Model, http://www.imsglobal.org/ • LOMWG IEEE LOM Working Group, http://ltsc.ieee.org/wg12/ • MICROSOFT eLearn Le proposte MS per l’e-learning, http://www.microsoft.com/elearn/ 149 • REAL RealNetworks produzione e sviluppo, http://service.real.com/ • SCORM Sharable Content Object Reference Model, www.adlnet.org • SMIL Synchronized Multimedia Integration Language, http://www.w3.org/AudioVideo/ SMIL nella “RealNetworks Production Guide” http://service.real.com/help/library/guides/realone/ProductionGuide/HTML/realp gd.htm • TILS Telecom Italia Learning Services, http://www.tils.com • XML Extensible Markup Language, http://www.w3.org/XML/ 150 Ringraziamenti I miei genitori, Franca e Virgilio, e mia sorella Lidia, per le possibilità che mi hanno dato e la pazienza nei momenti di nervosismo da studio “matto e disperatissimo”. I professori che ho incontrato in cinque anni, per la disponibilità e la voglia che mi hanno trasmesso di uscire dall’università con molto più di “un pezzo di carta”. Il Prof. Atzeni in particolare, per la fiducia che ha avuto in me. L’ELIS per l’accoglienza e il supporto, in particolare il Prof. Crudele per le conoscenze e i metodi che mi ha aiutato ad avvicinare, condividendo un corso e diversi momenti di verifica con me. I ragazzi con cui fianco a fianco ho affrontato il lavoro e condiviso musica, pranzi e risate: Gianluca P, Flavio, Gheorghe, Gianluca F, Giuseppe, Gianluca S, Manuel e in particolare Federico, Roberto, Antonello e Nicola. Gli amici dentro e fuori l’università, per avermi regalato anni dove nello studio non è mai mancato il divertimento e l’aiuto reciproco. In particolare abbraccio chi ha passato con me tante ore in “aula piscina”, Daniele per i primi anni di musica sulla sua Punto e non solo, Anna, Paoletto e Marco per i loro ritmi folli, Andrea e la sua chitarra, Davide e i sabato pomeriggio a S.Paolo, Ciccio e i suoi stornelli, Mattia, Damiano, Francesca, Benedetta, Stefagna, Adriana, Paola; Antonio per BombaCarta e la sua attenzione, Valentina, Michela, Domenico ddt; Franz e Davide dal quel settembre a Taizè, Pasquale, il “cuginetto” Alberto e infine Silvia, per i mesi durante la scrittura di questa tesi. Ringrazio davvero queste persone e tutte quelle che in questi cinque anni e mezzo mi sono state accanto con amore: nei viaggi, nella scrittura, nell’amicizia 151 quotidiana, nella preghiera. Sono loro che mi hanno aiutato a vivere lo studio come una parte molto bella delle mie giornate, e mai come la mia vita. Grazie. 152