Skip to topic | Skip to bottom
Home

Tesi
Tesi.BetterVersioningEnginer1.7 - 29 Sep 2005 - 18:05 - AngeloDiIoriotopic end

Start of topic | Skip to actions

Better Versioning Engine

Introduzione

Il sistema IsaWiki utilizza un motore interno di versionamento tra documenti XML. Informazioni sul motore attuale alla pagina VersioningEngine.

Questo motore di versionamento è funzionante ma va ulteriormente testato ed eventualmente completato nell'implementazione.

I test da effettuare sono di due tipi:

  • Verifica di correttezza. Testare il corretto funzionamento dell'algoritmo di Diff (anche su documenti lunghi e complessi)
  • Prestazioni: analizzare la complessità computazionale dell'algoritmo, sia da un punto di vista teorico che misurando il reale tempo di esecuzione delle operazioni.

Quanto all'implementazione si potrebbe discutere del formato dati XML utilizzato per esprimere i risultati e pensare a ricostruzioni multilivello (più versioni nello stesso documento). Attualmente infatti è possibile ri-applicare separatamente ed uno per volta i delta,ma non è possibile applicarli tutti a cascata sullo stesso documento.

Organizzazione del lavoro

Tre fasi fondamentali (+ la quarta, ovviamente, scrittura della tesi!!!):
  • Verifica e test dell'algoritmo (indipendente da IsaWiki), che comprende sia una verifica del funzionamento che la complessità computazionale.
  • Integrazione del motore di diff (per ora a 2 livelli) in IsaWiki
  • Potenziamente del motore per ricostruzione multilivello, cioè ricostruzione di un unico documento nel quale sono riportate tutte le modifiche di tutte le versioni precedenti ( a la XanaWord?).

Verifica e test dell'algoritmo

Test dell'algoritmo significa: 1 il motore non dà errore: correggere gli errori trovati e nel caso di "problemi insormontabili"(!!!!) definire precisamente i casi che non sappiamo gestire. Obiettivo: ottenere sempre un risultato o una spiegazione e MAI un errore o warning.
  1. verifica con i file lunghi e complessi: non lo sappiamo a priori, organizziamo una test-suite di file e su questi verifichiamo il comportamento. Obiettivo: capire i limiti in termini di tempo e complessità strutturale dei file dell'algoritmo.
  2. verifichiamo sulla test-suite il tempo di esecuzione dell'algoritmo.
  3. praticamente: raccogliere ed organizzare 100/200 file molto diversi tra loro (struttura, informazioni, codifica, lingua, etc.) e su questi eseguire le prove. Obiettivo: avere a disposizione una casistica ed un insieme di file di prova.
  4. complessità computazionale: fare uno studio teorico della complessità. Info alla pagina ComplessitaComputazionale

FASE 1 Test suite

La raccolta di file xml per la creazione di una test-suite di prova(circa 100/200 file) deve avere criteri ben definiti ed una descrizione dettagliata sugli esempi portati per attestare la validità dell'algoritmo.

Diversità per struttura, informazioni, codifica, lingua, dimensioni. Specifichiamo in dettaglio:

  • Struttura = la forma dell'albero !!!
    • Documenti di dati: database estratti in XML
    • Formati di contenuti noti: xhtml, docbook, tei-lite, xsl-fo, ecc.
    • Documenti speciali: XML Schema, XSLT, SVG, SOAP.
  • Informazioni = tipologia del contenuto del file (testo, numeri, ecc.)
  • Codifica = Encoding (utf8- ISO8859-1, ecc)
  • Lingua = Italiano, inglese, lingue nordiche, lingue orientali, ecc..
    • 50% inglese, 30% italiano, 15% altre lingue con alfabeto latino, 5% lingue non europee (giapponese, cinese, russo)
  • Dimensioni = da pochi byte fino a 1 Mega

Occorre stabilire anche che tipo di cambiamento vogliamo apportare ai sopra citati files. Tipi di modifica:

  • testo all'interno di un tag
  • eliminazione intera di un tag
  • rinominare un tag
  • posizione testo all'interno di un tag
  • posizione del tag
  • eccc...

Aspetto delucidazioni in merito !!!! 11.04.2005

Occorre studiare molta letteratura! http://scholar.google.com http://www.acm.org/dl http://ieeexplore.ieee.org/

19.04.2005 Informazioni su algoritmi Diff analizzati

03.05.2005 Test suite per HML-Diff

http://rcavina.web.cs.unibo.it/index_tesi.html

Integrazione del motore di diff in IsaWiki

Qui si tratta di modificare il server, il protocollo ed il client IsaWiki per usare realmente HML. In particolare:

  1. Aggiungere le classi al pacchetto IsaWiki
  2. Ampliare il protocollo per gestire una nuova richiesta DIFF e relativi parametri, definendo la struttura della richiesta (URL) e della quesry string.
  3. Modificare il server per gestire questa richiesta, usando le classi HML. Qui ti dò una mano e non dovrebbe essere molto complicato. Importante l'integrazione con IML.
  4. Modificare l'interfaccia client per richiedere questi servizi.

Ricostruzione multilivello (???)

Qui si tratta di migliorare il motore di ricostruzione per avere in un unico documento tutte le modifiche precedenti.
to top


You are here: Tesi > ArgomentiDiTesi > BetterVersioningEngine

to top

Copyright © 1999-2017 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Fabio's Wiki? Send feedback