Gestione dei cambiamenti per documenti digitali sul Web Tesi di Laurea di: MICHELE SCHIRINZI Relatore: Chiar.mo Prof. FABIO VITALI.

Slides:



Advertisements
Presentazioni simili
Power Point Lezione breve.
Advertisements

CONOSCIAMO IL WINDOWS '95.
Metodologie di Programmazione = decomposizione basata su astrazioni
Lez. 121 Universita' di Ferrara Facolta' di Scienze Matematiche, Fisiche e Naturali Laurea Specialistica in Informatica Algoritmi Avanzati Progettazione.
Modulo 4 – terza ed ultima parte Foglio Elettronico Definire la funzionalità di un software per gestire un foglio elettronico Utilizzare le operazioni.
STRUMENTI DI PRESENTAZIONE
Chiara Mocenni - Sistemi di Supporto alle Decisioni I – aa Sistemi di Supporto alle Decisioni I Scelte di consumo Chiara Mocenni Corso di laurea.
RB-alberi (Red-Black trees)
Alberi binari di ricerca
Fondamenti di Informatica II Ingegneria Informatica / Automatica (A-I) Meccanica Prof. M.T. PAZIENZA a.a – 3° ciclo.
Algoritmi e strutture Dati - Lezione 7
Capitolo 4 Ordinamento Algoritmi e Strutture Dati.
Windows Sistema operativo con interfaccia grafica per PC IBM compatibili (varie versioni dal 95) La gestione dei file viene fatta secondo le modalità.
Fondamenti di Informatica1 Ripetizioni di segmenti di codice Spesso è necessario ripetere più volte uno stesso segmento dell'algoritmo (e.g. I/O, elaborazioni.
introduzione a Windows
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
1 IsaPress. 2 Obiettivo Realizzare uno strumento di facile uso per estrarre il contenuto da documenti binari di vario tipo in un formato utile per l'impaginazione.
BRIDGE-3K Verso il futuro La migrazione dai sistemi HP3000. Un ponte verso il futuro conservando la cultura e le risorse aziendali. NOVITA 2007.
Corso di formazione su Microsoft® Office Outlook® 2007
WINDOWS XP PRIMI PASSI. Caratteristiche del sistema Le caratteristiche di base del PC (tipo e versione del sistema operativo installato, tipo e velocità
Modulo 7 – reti informatiche u.d. 3 (syllabus – )
Proprieta di file/cartella Pannello di controllo
Progettazione multimediale
Anche la RB-Delete ha due fasi: Nella prima viene tolto un nodo y avente uno dei sottoalberi vuoto sostituendolo con la radice dellaltro sottoalbero. Per.
Metodo della moltiplicazione
Prof. Salvatore Riegler
La Revisione dei documenti
Esercizio 10.* Un cassiere vuole dare un resto di n centesimi di euro usando il minimo numero di monete. a) Descrivere un algoritmo goloso per fare ciò.
Tutorial Google Drive.
Strutture dati per insiemi disgiunti
2. Formattare il floppy disk Attualmente, tutti i floppy in commercio sono già formattati, ma può capitare di dover eseguire questa operazione sia su.
Lavagna interattiva Smart Board Installazione Presentazione
RB-insert(T, z) // z.left = z.right = T.nil Insert(T, z) z.color = RED // z è rosso. Lunica violazione // possibile delle proprietà degli alberi // rosso-neri.
Per valutare la complessità ammortizzata scomponiamo ogni Union: nelle due FindSet e nella Link che la costituiscono e valuteremo la complessità in funzione.
SY-MAP tools Guida allutilizzo. SY-MAP tools I SY-MAP tools permettono di collegare informazioni memorizzate su un database e elementi grafici dei file.dgn.
Il Sistema Operativo: il File System
Applicativo Power Point
WORD Lezione n. 1 Aprire il programma Aprire un documento esistente
3^ writer Presentazione 1 Presentazione 1.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Interrogare il database
Percorso didattico per l’apprendimento di Microsoft Access Modulo 5
Modulo 6 Test di verifica
1 (7) Word prima lezione. Word – per iniziare – aprire il programma Per creare un nuovo documento oppure per lavorare su uno già esistente occorre avviare.
Prof.ssa Stella Beccaria a.s. 2013_2014
Percorso didattico per l’apprendimento di Microsoft Access Modulo 5
Alberi CORDA – Informatica A. Ferrari Testi da
1 Sharpdesk Descrizione generale Editoria ComposerRicerca Elaborazione immagini.
Microsoft Word Interfaccia grafica
Word: gli strumenti di formattazione
Introduzione ai sommari j quindi premere F5 oppure fare clic su Presentazione > Dall'inizio per avviare il corso. Sulla barra dei messaggi fare clic su.
Tag FRAMESET. I frame sono un particolare tipo di struttura HTML, che consente di suddividere la finestra del browser in diversi riquadri distinti. Un'insieme.
Microsoft Word Lezione 6 Riccardo Sama' Copyright  Riccardo Sama'
I FILE I File sono l’ unità base di informazione nell’interazione tra utente e sistema operativo I File sono l’ unità base di informazione nell’interazione.
1 Ordinamento (Sorting) INPUT: Sequenza di n numeri OUTPUT: Permutazione π = tale che a 1 ’  a 2 ’  … …  a n ’ Continuiamo a discutere il problema dell’ordinamento:
Compitino del 2004 Alberi Generici. Idea Si vuole un tipo di dato astratto che definisca una struttura ad albero in cui nodi e foglie hanno associato.
WWW Domande Fabio Vitali. WWW Fabio Vitali2 Domanda 1 Vorrei sapere se quando definiamo un tag a livello di working group, cioè per definire i tag comuni.
1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
Tesi di Laurea di: Relatore: Mariano Diasio Prof. Fabio Vitali
1 Metodologie di Programmazione = decomposizione basata su astrazioni.
ELABORAZIONE TESTI MICROSOFT WORD EM 09.
Rappresentazione dell'informazione
1 Ordinamento (Sorting) Input: Sequenza di n numeri Output: Permutazione π = tale che: a i 1  a i 2  ……  a i n Continuiamo a discutere il problema dell’ordinamento:
Elaborazione Testi Elementi di Base
Microsoft Access (parte 3) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
Cloud Tecno V. Percorso didattico per l’apprendimento di Microsoft Access 4 - Le maschere.
Algoritmi e Strutture Dati HeapSort. Select Sort: intuizioni L’algoritmo Select-Sort  scandisce tutti gli elementi dell’array a partire dall’ultimo elemento.
Analisi matematica Introduzione ai limiti
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo La ricorsione 15 Approccio ricorsivo, esercizi sulla.
Prof.ssa Rossella Petreschi Lezione del 17 /10/2014 del Corso di Algoritmica Lezione n°5.
Transcript della presentazione:

Gestione dei cambiamenti per documenti digitali sul Web Tesi di Laurea di: MICHELE SCHIRINZI Relatore: Chiar.mo Prof. FABIO VITALI

Introduzione “ Un documento non può essere semplicemente pensato come una sequenza statica di caratteri invariata nel tempo, ma è una struttura evolutiva a cui vengono aggiunte, eliminate o modificate delle parti. Queste modifiche sono parte integrante del documento stesso: è utile (se non fondamentale) poter ricostruire qualsiasi porzione di una qualsiasi versione, così come era in un qualsiasi momento della storia del documento ” [Nelson T.H.] Un sistema che soddisfi questa definizione deve poter memorizzare tutti gli stati di sviluppo intermedi (versioni) di un documento. Possono esserci due modi per compiere questa operazione: 1.Memorizzare interamente ogni stato del documento. 2.Memorizzare i cambiamenti avvenuti fra una versione e la sua successiva.

Memorizzazione delle versioni Nel primo caso immaginiamo di “fotografare” il documento in diversi momenti del suo sviluppo e mantenere ordinatamente le varie “fotografie”. Nel secondo caso andiamo a memorizzare solo i cambiamenti avvenuti fra una versione e la sua successiva (delta). Questo è il documento nella sua versione originale, la prima stesura del documento Prima stesura del documento Delete(8) Delete(15) Insert(testo1) Update(4,Ndelta) Insert(testo) Insert(testo2) Update(7,Ndelta) Delete(12) Insert(testo4) Delete(4) Delete(9) Insert(testo5) Questo è il documento nella sua versione originale, la prima stesura del documento Questo è il documento nella sua seconda versione, la seconda stesura del documento Questo è il documento nella sua terza versione, la terza stesura del documento Questo è il documento nella sua versione attuale, l’ultima stesura del documento Prima stesura del documento Versione attuale del documento Algoritmi di Diff. Versione del documento Diff (Delta) Differenze fra le due versioni L’input consiste in due versioni di uno stesso documento; Il risultato è un documento delta che rappresenta i cambiamenti avvenuti fra questi.

HML-diff: Un algoritmo di Diff per documenti XML 1.Ricerca della massima parte invariata fra i documenti. 2.Ricerca delle parti spostate dei documenti (una parte è considerata spostata se appare in punti diversi fra le due versioni rispetto alla parte più grande rimasta invariata delle versioni). 3.Ricerca delle parti aggiornate dei documenti (una parte è considerata aggiornata se appare nella stessa posizione fra le due versioni e differisce per una certa quantità limitata da una costante). 4.Espressione delle informazioni rilevate nelle fasi precedenti. Presentiamo ora un algoritmo ideato da noi per la ricerca dei cambiamenti fra versioni all’interno del progetto IsaWiki. L’algoritmo è stato implementato in PHP per essere usato all’interno del sistema IsaWiki. Sono state realizzate la funzionalità di Diff, la ricostruzione di un documento e la possibilità di visualizzare i cambiamenti fra due versioni. L’algoritmo si divide in 4 passi principali:

Ricerca delle parti invariate Il primo passo è serializzare i documenti XML. La serializzazione avviene attraverso una visita in profondità con pre-ordine degli alberi dei documenti. Ogni elemento della sequenza è un valore hash che rappresenta un sottoalbero dell’albero del documento E1E1 E2E E 11 sequenza

Ricerca delle parti invariate Se S 1 [i]=S 2 [j] allora anche gli N elementi successivi a i e j saranno uguali, dove N è il numero di nodi appartenenti al sottoalbero radicato nel nodo associato all’elemento S 1 [i]. Dividiamo gli elementi di una sequenza in classi, in modo da limitare i confronti (Ha senso confrontare un nodo di testo con un nodo di testo). Questa suddivisione può essere compiuta in tempo lineare all’atto della creazione della sequenza. Applichiamo un algoritmo per trovare la LCS (Longest Common Subsequence) fra le sequenze che rappresentano i documenti da confrontare. L’algoritmo per trovare la LCS suppone che una LCS sia formata dalla concatenazione ordinata di LCCS(Longest Common Continuous Subsequence). Durante il calcolo della LCS possiamo usare i seguenti accorgimenti:

Passi successivi Una volta ottenute le parti uguali maggiori fra le due sequenze esaminiamo le parti restanti per rifinire la qualità del delta. In verde sono contrassegnate le parti uguali fra le due sequenze. Sequenza A Sequenza B

Espressione del delta Raccolte tutte le informazioni delle fasi precedenti, consideriamo: 1.Se un nodo della sequenza A non è stato trovato in nessuna delle fasi precedenti viene considerato cancellato 2.Se un nodo della sequenza B non è stato trovato in nessuna delle fasi precedenti viene considerato inserito 3.I nodi mossi e i nodi aggiornati sono quelli trovati nelle rispettive fasi Nell’espressione del delta vengono prima esplicitate tutte le operazioni di cancellazione e aggiornamento, di seguito vengono esplicitate le operazioni di inserimento. Quest’ordine è importante perché ci garantisce di trovare dopo l’esecuzione dell’ N-esima operazione, il documento nello stato in cui deve essere applicata N+1-esima operazione.

Complessità e Qualità Move, riconosce parti del documento spostare fra le due versioni. Update, riconosce aggiornamenti di nodi Testo, Elemento, Commento. L’algoritmo descritto ha una complessità di O(N * C * D) dove: N sono i numeri di nodi del documento A C la cardinalità media delle classi in cui vengono divisi gli elementi del documento. C << N. D un valore proporzionale alle differenze fra i due documenti confrontati. La qualità del delta ottenuto è buona in quanto oltre alle classiche operazioni di inserimento e cancellazione descrive operazioni di:

Conclusioni Con la transizione del Web verso XML, sistemi di questo tipo assumono un’importanza rilevante all’interno di CMS(Content Management System). Inoltre questi sistemi possono essere di supporto ad applicazione che usano i nuovi standard basati su XML(DocBook, RSS, RDF, ecc..). In generale è un’utilità fondamentale all’interno di sistemi in cui è interessante seguire lo sviluppo dei documenti in funzione del tempo, infatti permettono un’analisi semplice e comoda dell’evoluzione di un documento.

Book Chapter TitlePara Img Text 2Text 8 Chapter Title Para Text 6Text 7 Chapter Title Para Text 4Text 5 Chapter Title Para Text 11Text 12 Chapter Title Para Text 9Text 10 Text1 Book Chapter Para Img Text 2 Text 8 Chapter Title Para Text 6Text 7 Chapter Title Para Text 4 Text 11 Chapter Title Text 12 Chapter Title Para Text 9Text 10 Para Text updatematch move

Chapter Title Para Text 9 Text b5g43g eewgrt qtrhky oxfbng bcnngh Chapter Title Para Text 9 Text b5g43g eewgrt + b5g43g qtrhky oxfbng bcnngh qtrhky + bcnngh Chapter Title Para Text 9 Text b5g43g eewgrt + b5g43g qtrhky oxfbng + eewgrt + b5g43g bcnngh Chapter Title Para Text 9 Text b5g43g eewgrt + b5g43g oxfbng + eewgrt + b5g43g bcnngh qtrhky + bcnngh Chapter Title Para Text 9 Text b5g43g eewgrt + b5g43g oxfbng + eewgrt + b5g43g + qtrhky + bcnngh bcnngh

X= Y= X= Y= X= Y= X=<> Y=<> X= Y= X= Y= X= Y= X= Y= X=<> Y=<> LCCS LCS

fcteabcdabba abcdafcteabcddbbe n m l1l1 abcda l3l3 l1l1 l2l2 l2l2 l3l3 fcteabcdabba abcdafcteabcddbbe n m abcda l1l1 l1l1 l2l2 l2l2 l3l3 l3l3 max 1 = l 2 = 4 max 2 = l 1 = 4 2° Ciclo 1° Ciclo

Confrontare documenti con 'Diff Doc' Ora è possibile confrontare documenti in modo veloce e preciso. “Diff Doc” è una potente utility per confronti e correzioni di cartelle/file di facile utilizzo. Permette infatti il confronto di file di tutti i tipi, compresi MS Word/Excel, PDF, RTF, HTML, Wordperfect e altri. “Diff Doc” può indicare le differenze fra i file in due diverse schermate, “All in One”, o “Side by Side”. Entrambe presentano dei vantaggi, per passare da una all’altra basta un clic col mouse (o premere F6). Infine, sono disponibili numerosi report, incluso quello in HTML, in cui vengono specificate le differenze Indipendentemente dal programma di editing utilizzato (MS Word, WordPad, Visual Basic, ecc), basta caricare i file originali e quelli modificati, premere il tasto Refresh (Aggiorna) (o F5), e il documento confrontato apparirà immediatamente. E’ inoltre possibile confrontare le cartelle per vedere esattamente quali file sono cambiati, prima ancora di effettuare il confronto. Confrontare file con 'Diff Doc' Ora è possibile confrontare documenti in modo rapido e preciso. “Diff Doc” è una potente utility per confronti e correzioni di cartelle/file di facile utilizzo. Permette infatti di confrontare file di tutti i tipi, compresi MS Word/Excel, PDF, RTF, Text, XML, HTML, Wordperfect e altri. Indipendentemente dal programma di editing utilizzato (MS Word, WordPad, Visual Basic, ecc), basta caricare i file originali e quelli modificati, premere il tasto Refresh (Aggiorna) (o F5), e il documento confrontato apparirà immediatamente. E’ inoltre possibile confrontare le cartelle per vedere esattamente quali file sono cambiati, prima ancora di effettuare il confronto. “Diff Doc” può indicare le differenze fra i file in due diverse schermate, “All in One”, o “Side by Side”. Entrambe presentano dei vantaggi, per passare da una all’altra basta un clic col mouse (o premere F6). Infine, sono disponibili numerosi report, incluso quello in HTML, in cui vengono specificate le differenze Aggiornamento Spostamento Invariato HML-diff: Esempio

A A AA A A A A A B B B B B B B B B B Nodo update Nodo Mosso Nodo Cancellato Nodo Inserito