Gestione dei vincoli in ambiente Wiki - Università degli Studi di Bologna Corso di Laurea Triennale in Informatica
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Università degli Studi di Bologna Corso di Laurea Triennale in Informatica Gestione dei vincoli in ambiente Wiki Relatore: Candidato: Chiar.mo Prof. Francesco Draicchio Fabio Vitali Correlatore: Dott. Stefano Zacchiroli 1
The Wiki Way Il Wiki è uno strumento sociale che abilita gli utenti senza competenze tecniche a pubblicare contenuti sul web in modo facile, veloce e senza restrizioni. In ambiente wiki, durante la sessione di editing, l'utente può: ● pubblicare liberamente qualsiasi tipologia di contenuti ● creare e modificare pagine HTML mediante un linguaggio di markup semplificato ● condurre l'attività editoriale direttamente dal browser ● collaborare con altri utenti alla realizzazione di una singola pagina 2
Convenzioni e Requisiti sui Contenuti Wiki Gli utenti stessi stabiliscono spontaneamente procedure per semplificare e rendere più efficiente l'attività di editing dei contenuti. Tali procedure sono costituite da insiemi di convenzioni e requisiti. Alcuni esempi sono: ● uniformità presentazionale delle pagine ● uniformità strutturale dei contenuti appartenenti a domini specifici ● organizzazione dei contenuti sulla base di determinati modelli semantici Gli utenti che non rispettano le procedure durante la sessione di editing producono pagine wiki non conformi. 3
Constrained Wiki Per supportare l'attività di editing si introduce il concetto di Constrained Wiki, ovvero un sistema che assiste gli utenti a rispettare le procedure, traducendo convenzioni e requisiti nel concetto di vincolo. Si definisce il concetto di “vincolo in relazione al contenuto wiki” come l'insieme dei requisiti che una pagina dovrebbe idealmente soddisfare. La violazione di tali vincoli non compromette il corretto funzionamento del wiki, pertanto vengono classificati “vincoli deboli”, ovvero light constraint. 4
Lightly Constrained Wiki Lo scopo della tesi è implementare un sistema di supporto automatico per gli utenti sulla base del wikiengine MoinMoin per: ● verificare la realizzabilità e la compatibilità del concetto di “Constrained Wiki” nei reali scenari wiki. ● realizzare un'infrastruttura generica che formalizzi tutti i possibili vincoli e assista gli utenti a rispettarli durante la sessione di editing. Requisiti dell'implementazione: ● integrare le funzionalità di supporto in maniera modulare ● evitare di modificare il codice sorgente di MoinMoin 5
Architettura di funzionamento Il sistema di supporto consiste nella realizzazione di un motore di validazione che, mediante la traduzione dei vincoli in validatori: ● rileva la violazione dei vincoli ● stimola gli utenti a rispettare convenzioni e requisiti ● non altera la libertà di editing del wiki I principali componenti sono: ● validatore: i vincoli vengono esplicitati dagli utenti, associando i rispettivi validatori alla pagina mediante la sintassi wiki. ● motore di validazione: a tempo di salvataggio della pagina vengono invocati i validatori in funzione del contenuto. Il workflow del wiki viene sensibilmente modificato introducendo: ● Visualizzazione Annotata ● Salvataggio Condizionale 6
Visualizzazione Annotata L'azione di “stimolare gli utenti a rispettare i vincoli” consiste nel notificare e localizzare all'interno del contenuto della pagina gli eventuali errori, al fine di agevolare gli utenti nell'attività di correzione. 7
Salvataggio Condizionale A tempo di salvataggio della pagina si effettua la validazione del contenuto. Tale azione valuta se la pagina soddisfa i vincoli “imposti” su di essa. Viene introdotto il concetto di Salvataggio Condizionale, riproponendo una ulteriore sessione di editing se la pagina non risulta valida. Il paradigma di editing dei wiki viene preservato dal Salvataggio Forzato, per il quale una pagina che non rispetta i vincoli può comunque essere pubblicata. 8
Implementazione ● I validatori sono stati implementati creando una nuova classe di plugin, validators. ● Il motore di validazione è stato realizzato mediante un modulo che utilizza le API dei plugin events di MoinMoin, estendendo le funzionalità del salvataggio. ● Il sistema di notifica delle violazioni dei vincoli è stato realizzato mediante un modulo che utilizza le API del parser di MoinMoin. ● È stato necessario apportare modifiche al sorgente del wikiengine. Tali modifiche ammontano a non più di 20 righe di codice python. 9
Conclusioni e Sviluppi futuri ● È stato integrato nel wiki un motore di validazione per supportare gli utenti a rispettare i vincoli in fase di editing. ● È stato modificato sensibilmente il processo di editing, senza però alterare in maniera sostanziale la libertà di utilizzo di questo strumento. ● È stato possibile implementare le funzionalità principali che realizzano il sistema di editing assistito in maniera non invasiva. Per ufficializzare e dare maggiore visibilità al lavoro svolto, un passo importante sarebbe quello di generalizzare le modifiche apportate al sorgente MoinMoin, in modo da renderle includibili nell'attuale branch di sviluppo. 10
Puoi anche leggere