Introduzione
Johanna è una piattaforma aperta che offre un supporto per una tecnologia collaborativa basata su conoscenza, un progetto abbastanza unico nel suo genere. Per comprendere in che modo e in quali ambienti Johanna può essere utilizzata con successo, consideriamo una generica organizzazione, nella quale tutti i membri controllano regolarmente l'email e hanno accesso al web. In situazioni di questo tipo, sempre più comuni, i messaggi di posta elettronica vengono utilizzati per attivare procedure che fanno parte del funzionamento dell'organizzazione stessa, sia in contesti semi-ufficiali (come gruppi di lavoro), sia in comunicazioni ufficiali, sia verso persone esterne all'organizzazione interessate comunque ad ottenere certe informazioni.
Ma come avviene questo tipo di comunicazione nella vita reale?
In genere in un modo decentralizzato ed inefficiente.
Per esempio, in una situazione dove un utente deve spedire lo stesso messaggio a più persone, viene in genere adottata la soluzione che prevede di inserire gli indirizzi dei destinatari nel campo CC («carbon copy»). Utenti più avanzati preferiscono l'utilizzo degli
alias, con i quali è possibile spedire un messaggio ad una lista di indirizzi, scritti una volta per tutte (finché la lista non cambia!). In entrambi i casi però sono gli stessi utenti i responsabili della creazione e dell'aggiornamento delle liste, che diventano quindi un deposito statico di informazioni. Un ulteriore livello di raffinamento si può ottenere utilizzando software come Majordomo, Mailman, Listproc o Sympa, tanto per citarne alcuni, dove una persona, che ricopre il ruolo di Listmaster, si occupa di inserire, aggiornare e cancellare utenti in apposite mailing list.
Anche se alcuni software, come appunto Sympa, forniscono la possibilità di prelevare le informazioni degli utenti mediante interrogazioni su database, l'integrazione tra le mailing list e la base di dati sottostante non è soddisfacente, perché il database è visto solo come un deposito di dati esterno, scollegato dai servizi offerti dalla mailing list.
In questi casi una piattaforma che integra in modo intelligente il database e il mailing list manager rappresenta la soluzione che permette il massimo livello di automatismo. Johanna permette proprio questo: aiuta ad organizzare l'informazione e ad integrarla con un gestore di posta (e in principio con un qualsiasi altro strumento di comunicazione). Con poche operazioni gli utenti di Johanna sono in grado di creare canali di comunicazione personalizzati, sfruttando ogni dato esistente nel database.
Ma Johanna non è solo un mezzo per razionalizzare l'utilizzo di email, l'idea è molto più generale: è lo strumento per la creazione e l'utilizzo di un deposito di informazioni strutturate.
Caso di studio: la gestione del corso di laurea in Economia di Internet
Anche se Johanna è stato adottato da diverse organizzazioni, il progetto è nato principalmente per facilitare la gestione e l'organizzazione del corso di laurea di Economia di Internet, presso la Facoltà di Economia di Bologna - Sede di Forlì, dove viene utilizzato da quasi 3 anni. Johanna è la piattaforma con la quale vengono gestiti i dati degli studenti, dei docenti e degli insegnamenti di tale corso di laurea.
Ma quali servizi offre Johanna a questo tipo di organizzazione?
Dal punto di vista dei docenti, Johanna offre la possibilità basilare di comunicare con tutti gli studenti che frequentano lo specifico corso, un'operazione senz'altro semplice, ma che non era possibile realizzare in modo automatico prima dell'adozione di Johanna.
Inoltre i dati sugli studenti vengono sfruttati da un modulo aggiuntivo, chiamato «cruscotto», che genera automaticamente statistiche e istogrammi sui singoli studenti e su interi insegnamenti circa la frequenza, i voti conseguiti, la media dei voti conseguiti dagli studenti di tale corso e così via. Tutto ciò permette al docente di tenere sotto controllo l'andamento globale della propria classe.
Il lavoro di segreteria è anch'esso facilitato. La comunicazione verso studenti con particolari caratteristiche (ad esempio tutti gli studenti del secondo anno che non hanno superato un determinato esame) si riduce alla spedizione di una mail dove i destinatari sono prelevati da un'interrogazione sul database. L'interrogazione sul database, che ora viene specificata in linguaggio SQL, verrà generata tramite un modulo ancora in fase di sviluppo attraverso una semplice navigazione grafica del database, permettendo l'utilizzo anche all'utente meno esperto. Sempre per quanto riguarda il lavoro di segreteria, statistiche complesse sul corso di laurea vengono facilmente estrapolate dal database.
Con Johanna viene gestito anche un insieme di persone esterne all'Università interessate a convegni e novità riguardanti il corso di laurea. I navigatori interessati si registrano tramite una semplice interfaccia web presente nel sito del corso
http://www.ei.unibo.it e da quel momento sono inserite in una mailing list dedicata alle novità.
Un altro modulo aggiuntivo, attualmente in fase di test, permette l'integrazione con il Learning Content Manager ATutor. ATutor è un software che permette di pubblicare facilmente contenuti multimediali di ogni tipo, che in questo caso vanno ad integrare un particolare insegnamento. L'integrazione permette ad uno studente di autenticarsi nell'ambiente di ATutor e di poter usufruire dei contenuti di tutti e soli i corsi che frequenta.
Infine, un ultimo modulo permette la conversione di tutti i dati utilizzati relativi a studenti, docenti ed insegnamenti, prelevati direttamente dal database del CESIA, l'organismo che gestisce i dati informatici dell'intero Ateneo di Bologna. Una volta configurato il sistema, l'aggiornamento è completamente automatico e nessun dato viene inserito manualmente!
Johanna in dettaglio
Dal punto di vista puramente pratico, Johanna trasforma una descrizione ad alto livello dell'organizzazione in database, interfacce web e servizi. Per adottare Johanna è quindi necessario modellare la struttura dell'organizzazione estendendo un template base attraverso un programma specifico: Protégé-2000. Protégé-2000 è un editor open source che offre una comoda interfaccia grafica per modellare conoscenza. La figura 1 mostra il programma con incluso la struttura utilizzata nel corso di laurea di Economia di Internet.
Figura 1: Interfaccia di Protégé-2000
Nella parte sinistra è possibile vedere le entità coinvolte: tutte le persone fisiche, quindi i docenti, il personale esterno, ecc., i corsi, gli esami e così via. Nella parte destra della figura sono invece presenti le proprietà relative all'entità selezionata, in questo caso «corsi», come il numero di ore, il nome del corso, i crediti forniti.
Protégé-2000 permette il salvataggio delle informazioni in vari formati, tra i quali OWL, il formato suggerito dal W3C ed utilizzato all'interno di Johanna.
Una volta codificata con attenzione la descrizione, un insieme di strumenti messi a disposizione da Johanna ne permette il completo sfruttamento. Anche se un' interfaccia di installazione è in via di sviluppo, al momento Johanna si compone di due programmi principali che devono essere invocati manualmente.
Mediante il programma
dbwriter è possibile estrapolare dalla descrizione l'insieme delle query per la creazione del database. Il programma supporta sia il database Mysql che Postgres e le query generate riguardano chiaramente solo la creazione della struttura del database, sia per i dati prelevati dalla descrizione, sia per il mailing list manager utilizzato (Sympa).
Il programma
owl2jml si occupa invece di leggere le informazioni sull'organizzazione e di memorizzarle in un formato java-compatibile. Il codice servlet di Johanna sfrutta queste informazioni generando una serie di pagine web che permettono l'inserimento, la modifica e la cancellazione dei dati nel database.
In figura 2 è mostrata l'interfaccia di inserimento dati creata automaticamente, relativa all'entità «corsi» vista in precedenza.
Figura 2: Interfaccia di inserimento dati
Per conoscere più nel dettaglio Johanna si rimanda alla bibliografia, dove sono elencati i siti da cui reperire sia documenti tecnici che il codice sorgente stesso.
Riassumendo, le tecnologie utilizzate dal progetto open source Johanna sono:
- Java e tecnologia Servlet per il linguaggio di programmazione
- OWL per il linguaggio di descrizione
- Mysql o Postgres per quanto riguarda il dbms
- Sympa come mailing list manager
- Tomcat come servlet container.
Futuri sviluppi
Le nuove caratteristiche pianificate per le prossime versioni comprendono la creazione di una interfaccia di installazione, una migliore integrazione con Sympa e diverse sperimentazioni sull'utilizzo di servizi web semantici.
Essendo un programma creato ed utilizzato all'interno dello stesso ambiente, l'interfaccia di installazione non è mai stata realizzata, in quanto i programmatori stessi sono anche gli amministratori del sistema. Tuttavia la crescente domanda di utilizzo del programma da parte di strutture esterne sta guidando la creazione di una installazione più semplice.
Un'integrazione più profonda con Sympa e con lo strumento di navigazione del database permetterà ad ogni utente di creare canali di comunicazione, perché non sarà più necessario scrivere query SQL per ottenere dei dati.
Infine l'integrazione con i servizi web semantici permetterà di creare componenti riutilizzabili, che individuano funzionalità base in un ambiente popolato da agenti. Funzionalità complesse saranno quindi realizzabili tramite composizioni (anche automatiche) di servizi web, permettendo la creazione di un contesto dove sperimentare la composizione semantica di servizi.
Conclusioni
Johanna è un progetto open source in costante evoluzione. Il progetto è ospitato su SourceForge (
http://sourceforge.net/projects/johanna/), dove avrà la possibilità di evolvere in base alla comunità che ne sarà interessata!
Riconoscimenti
Diverse persone hanno contribuito alla sua creazione e al suo sviluppo, tra le quali Giovanni Faglioni, Mauro Gaspari, Lucio Picci e Andrea Petrucci. Johanna è un progetto nato all'interno del corso di laurea di Economia di Internet (
http://www.ei.unibo.it/) e poi cresciuto all'interno dei seguenti progetti: