Lezione 3 Codifica di alto livello: dai formati binari ad XML.

32
Lezione 3 Codifica di alto livello: dai formati binari ad XML

Transcript of Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Page 1: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Lezione 3 Codifica di alto livello: dai formati binari ad XML

Page 2: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Definizione della struttura di un documento: superare il livello 0

Il testo codificato al livello zero si presentacome un manoscritto in scriptio continua

Page 3: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Formato grafico e codifica L’uso del formato grafico per rappresentare

una codifica di alto livello è insufficiente Non sufficientemente esplicito (cosa “significa”

un corsivo ?) Difficilmente combinabile

(corsivo+grassetto+apice+… = illegibilità) Non applicabile a certi elementi (p.es. fine

pagina) o legato a determinate realizzazioni del testo (video a colori, stampa,…)

Esteticamente debole

Page 4: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Perché codificare? dato vs informazione

La codifica di alto livello trasforma il dato testuale grezzo in fonte esplicita di informazione

(definizioni da un vocabolario della lingua italiana)

informazione: notizia, dato o elemento che consente di avere conoscenza più o meno esatta di fatti, situazioni, modi di essere.

dato: ciò che è immediatamente presente alla conoscenza, prima di ogni elaborazione; (in informatica) elementi di informazione costituiti da simboli che debbono essere elaborati

Page 5: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Un’informazione è un dato strutturato... un esempio:

56100 su un foglio di carta è un dato e non significa molto

ma se il foglio di carta viene fornito in risposta alla domanda “qual è il cap di Pisa?” oppure “qual è il numero del conto bancario del sig. X?”, allora il dato può essere interpretato come fonte di informazione

Page 6: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Esempio prototipico di dato strutturato

Page 7: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Perché “dati strutturati“ ? le informazioni sono più volatili, i dati più

stabili I dati costituiscono una risorsa strategica, perché

più stabili nel tempo di altre componenti (processi, tecnologie, ruoli umani):

ad esempio, i dati delle banche o delle anagrafi la storia della scienza è caratterizzata dal

continuo cambiamento di informazioni relative a dati relativamente stabili

Page 8: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Perché codificare?I motivi della codifica di alto livello Un testo come flusso di caratteri e parole è una fonte

di dati linguistici Il testo è un’entità altamente strutturata, nella quale i

dati linguistici sono correlati secondo piani di organizzazione multipli struttura del testo

l’ articolazione in sezioni, capitoli, titoli, ecc. struttura del contesto

l’autore, la data di produzione, la finalità del testo, ecc. struttura linguistica (implicita nel testo!!)

Lingua del testo, differenza testo/citazione … informazioni morfologiche, sintattiche, semantiche Strutture retoriche, argomentative, …

Page 9: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Come codificare?

la codifica esplicita di informazione su un testo viene detta annotazione (o “markup”) del testo.

Quali passi seguire per effettuare una annotazione? Individuare il livello di informazione da codificare

strutturale, linguistica, ecc. Definire il repertorio dei tratti giudicati rilevanti per la

codifica Scegliere un formato per associare la annotazione al

testo

Page 10: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Scelta delle informazioni da annotare: un esempio

La codifica morfo-sintattica oggetto: codificare esplicitamente la categoria grammaticale e le proprietà morfologiche delle parole di un testo.

Da definire: quali attributi codificare (cat. grammaticale, persona,

genere, numero, caso, ecc.) quali attributi sono compatibili (p.es. non ha senso

marcare “Caso” su un elemento marcato “avverbio”) quali valori possono avere i diversi attributi (numero =

SING, PLUR; caso = NOM, GEN, ecc.) Cosa fare con elementi ambigui (per es. come codificare

“che” in “Che roba!”, “dico che piove”?) e come specificare eventuali valori disgiuntivi (“X è CONG oppure PRON”)

Quali criteri di applicazione al testo delle categorie selezionate: attribuire la codifica a tutto il testo, o a una parte? Fino a che livello di dettaglio?

Page 11: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Esempio: categorie morfologiche per l’italiano (Rank Xerox Research Centre)

TAG | DESCRIPTION | EXAMPLE---------------- +--------------------------------------- +---------------------NSG | singular noun | casa, balsamoNPL | plural noun | case, ventottesimiPROP | proper name | Bernardo, Monte Isola---------------- +--------------------------------------- +---------------------ADJSG | singular adjective | buono, narcisisticoADJPL | plural adjective | belle, trecentocinquesimi---------------- +--------------------------------------- +---------------------VAUXINF | infinitive auxiliary "essere"/"avere" | esser, essere, aver, avereVAUXF | finite auxiliary "essere" or "avere" | è, sarò, saranno, avreteVAUXGER | gerund auxiliary "essere" or "avere" | essendo, avendoVAUXGER_CLIT | gerund auxiliary + clitic | essendogliVAUXIMP | imperative auxiliary | sii, sia, abbi, abbiamoVAUXIMP_CLIT | imperative auxiliary + clitic | siategliene, abbiatemiVAUXPPSG | singular past participle auxiliary | stato/a, avuto/aVAUXPPPL | plural past participle auxiliary | stati/e, avuti/eVAUXPPSG_CLIT | sg. past part. auxiliary + clitic | statone, avutavelaVAUXPPPL_CLIT | pl. past part. auxiliary + clitic | statine, avutitiVAUXPRPARTSG | singular present participle auxiliary | essente, aventeVAUXPRPARTPL | plural present participle auxiliary | essenti, aventi---------------- +--------------------------------------- +---------------------VINF | verb infinitive | sciupare, trascinarVINF_CLIT | verb infinitive + clitic | spulciarsi, risucchiarsiVF | finite verb form | blatereremo, rantoloVF_CLIT | finite verb + clitic | trattansi, leggevansi… | … | …

Page 12: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Come associare testo e codifica?

Dovendo associare altre informazioni al testo, alcuni requisiti generali:

1. Mantenere una chiara divisione tra il testo e la annotazione relativa (informazione vs. metainformazione); Esempio negativo:“Come Cong. andò V_intr che Cong. Maestro N … “

2. Permettere di scorporare testo e annotazione;3. Avere annotazioni ragionevolmente autoesplicative;4. Non consumare troppo spazio;5. Permettere all’utente facili aggiunte/modifiche6. Permettere l’uso del testo annotato su una varietà di

sistemi informatici (tramite “formati aperti”)7. Limitare la obsolescenza (del formato dati e del

supporto di registrazione)

Page 13: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Come associare testo e codifica?Alcune opzioni:

Usare un formato solo testo (plain text o txt): ogni carattere è stampabile (tabelle ASCII, ISO-8859, UNICODE) Vantaggi

formato “aperto”, indipendente dal sistema operativo e dal programma che lo ha creato

massima portabilità e interscambiabilità dei testi (modificabili con normali editori di testo: notepad, scite, emacs…)

Svantaggi Se l’annotazione è trasparente, tende a occupare

molto spazio. Possibile confondere testo e annotazione

(metatesto)

Page 14: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Come associare testo e codifica? I formati binari del testo

Formati “proprietari” (doc, pdf, ecc.) possono essere creati, letti e interpretati solo da uno

specifico programma (es. Word, Adobe) oltre a sequenze di bit che codificano caratteri, il file

contiene sequenze binarie che corrispondono a istruzioni di formattazione, codificate secondo le convenzioni di un certo programma

Vantaggi massima capacità espressiva e fruibilità per l’utente umano

rappresenta bene alcuni aspetti relativi alla struttura testuale.

File potenzialmente compatti (specialmente PDF) Svantaggi

formato “chiuso”, con minima portabilità e interscambiabilità codifica non per categorie testuali “astratte”, ma per

modalità di visualizzazione (procedurale) le informazioni linguistiche rimangono comunque implicite

nel testo Obsolescenza?

Page 15: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Formati dati proprietari Videoscrittura

.doc (MS Word), .wp (Word Perfect), .odt (OO Writer), .html (Google’s DOCS), etc.

Tutti differenti, spesso rapida obsolescenza, decente compatibilità verso il passato

Desktop Publishing i formati di: PageMaker, FrameMaker, Quark XPress, Ventura

Publisher, etc. Tutti differenti, tutti estremamente specializzati, rapidissima

obsolescenza, nessuna compatibilità col passato DBMS

I formati di: Oracle, MS Access, MS SQLserver, IBM DB2, etc. Estremamente orientati all'efficienza, opacissimi, decente

obsolescenza, buona compatibilità col passato

Page 16: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Word: oltre la formattazione

A parte la formattazione di singoli caratteri/paragrafi, Word dispone di un sistema di annotazione più astratta delle caratteristiche di un testo: gli Stili

Formato > Stili e formattazione > Nuovo stile …

Page 17: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Gli “stili” (di carattere, di paragrafo), sono il modo assegnare ad una parte di testo una etichetta (il nome di un particolare “stile”), anche ideata dall’utente.

A ciascuno stile a cui si può poi associare una certa resa grafica.

Dunque gli stili costituiscono un modo per effettuare una codifica di alto livello (una annotazione/markup)

Uso degli stili

Page 18: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Stile “2_colonne”(basato su “testo”, modif.)

Word: uso degli “stili”Stile “titolo 3”

Stile “indice”

Resa grafica

Page 19: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Word: uso degli “stili”

Page 20: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Stili di Word Vantaggi

Una volta associato una porzione di testo ad uno stile, diventa facile cambiare ogni elemento di quello stile.

Facile definire nuovi stili sulla base di quelli vecchi Possibile salvare i nuovi stili definiti

Svantaggi formato “chiuso” Gli stili sono limitati alla specifica di caratteristiche di

formattazione (impossibile marcare p.es. la “frase”: soli livelli “carattere” e “paragrafo”)

Impossibile regolare la esatta successione di una serie di stili (unico concetto definito: “stile per il paragrafo successivo”)

Impossibile scorporare testo e annotazione (posso solo salvare il documento come .txt (“solo testo”) , annullando così gli stili inseriti)

Scarsamente utilizzati

Page 21: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Come associare testo e codifica?Una alternativa: i linguaggi di marcatura

Codifica di alto livello con linguaggi di markup (linguaggi di marcatura) dal punto di vista del formato digitale un testo codificato

con un linguaggio di marcatura è in formato solo testo buona interoperabilità Scarsa obsolescenza (specie se associato ad uno

standard e non semplicemente ad un software) l’informazione strutturale è rappresentata attraverso

l’aggiunta al testo di etichette (o tag) di marcatura, chiaramente identificabili Buona distinzione testo/metatesto Non un buon modo per risparmiare spazio

(ma esiste sempre la possibilità di comprimere il file; non un problema di conservazione con gli hardware attuali; problema, in caso, di trasmissione via rete)

Page 22: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Un linguaggio di marcatura targato Microsoft: RTF

Page 23: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

RTF Prodotto/letto da Word (ed altri

programmi Office) Problemi di compatibilità all’indietro Non uno standard Limitato (come gli “stili” Word) alla

marcatura di istruzioni di visualizzazione

Non direttamente scrivibile da umani molto poco usato

Page 24: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Un linguaggio di marcatura targato UNIX: LaTeX

Page 25: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

LaTeX: Un documento completo

\documentclass[12pt]{article}\usepackage{times,a4wide}

\begin{document}\section{Introduzione}\label{sec:introduzione}

\begin{itemize}

\item Primo punto\item Secondo punto

\begin{enumerate} \item Sottopunto A \item Sottopunto B \end{enumerate}

\end{itemize}\end{document}

Page 26: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

LaTeX (e TeX) Tradotto in testo formattato stampabile dal

programma (gratuito) “latex” (esatto contrario dell’approccio WYSIWYG)

Limitato (come RTF) alla marcatura di istruzioni di visualizzazione

Direttamente scrivibile da umani (con l’ausilio di un editor, più addestramento)

Usato in alcune comunità scientifiche(matematica, informatica,…)

non uno strumento generale di annotazione

Page 27: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Un passo indietro: due tipi di marcatura del testo

Marcatura procedurale (detta anche marcatura tipografica) che consiste in una serie di istruzioni operative che forniscono le specifiche di formattazione e impaginazione del testo per la visualizzazione e la stampa (es. RTF, LaTeX)

Marcatura dichiarativa (detta anche marcatura logica o descrittiva) dove i codici di marcatura indicano la funzione assolta dal blocco di testo a cui si riferiscono, ad esempio titolo, paragrafo, nota, citazione ecc. senza fornire indicazione di come tali elementi del testo dovranno apparire fisicamente sulla pagina o sul video (es. SGML, XML)

Page 28: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Marcatura procedurale basata sull’aspetto

ad ogni elemento del documento viene associata la procedura per visualizzarlo in maniera voluta: font, dimensione, corsivi, grassetti, margini, interlinea, ecc.

dipendente dal sistema ogni sistema di visualizzazione impone le proprie regole e la

propria sintassi associata agli elementi individuali

ogni elemento ha le proprie procedure per la visualizzazione, che possono anche essere tutte diverse anche per elementi dello stesso tipo.

non contestuale le regole di visualizzazione non dipendono dal contesto in cui

vengono fatte, ma ognuna fa specie a sé non è possibile porre vincoli sulla "correttezza" di un documento.

Page 29: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Marcatura dichiarativa basata sul ruolo

di ogni elemento viene descritto il ruolo all’interno del testo, più che le regole per la sua visualizzazione

indipendente dal sistema poiché il markup descrittivo assegna ruoli (e non regole di

visualizzazione) agli elementi del testo, questi sono intrinseci agli elementi stessi, e non alle funzionalità disponibili nel sistema di visualizzazione

contestuale con il markup descrittivo è possibile definire delle regole

che permettano o impediscano l’assegnazione di un ruolo ad un elemento del testo a seconda del contesto

è possibile specificare regole di correttezza sui documenti, ad esempio che ad un'immagine segua necessariamente una didascalia, ecc.

Page 30: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

Marcatura dichiarativa: vantaggi

facilità nella creazione: l’autore si concentra sul ruolo organizzativo delle singole parti di testo, piuttosto che sul loro aspetto stampato

indipendenza dalla formattazione: riformattare un documento secondo nuove regole richiede semplicemente di ricodificare dei parametri esterni, non di modificare in alcuna maniera il testo codificato

flessibilità: riusare un testo codificato in un nuovo contesto è facile, perché non è necessario rimuovere la vecchia informazione per far posto alla nuova

visioni di documenti dinamicamente riconfigurabili: è possibile selezionare viste diverse dello stesso documento

Page 31: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

L’XML (eXtensible Markup Language) è un nuovo linguaggio di markup sviluppato dallo XML

Working Group del W3C a partire dal 1996

XML è uno dei più importanti sviluppi nella storia della computazione. Negli ultimi anni è stato adottato in campi molto diversi tra loro: legge, aeronautica, finanza, sicurezza, robotica, turismo, arte, design del software, fisica, letteratura, …

XML è nato dallo sforzo di dare forza e struttura all’SGML (“Standard Generalized Markup Language”, ISO standard: ISO 8879:1986) nel web, in una forma che fosse però abbastanza semplice per gli utenti non esperti.

Page 32: Lezione 3 Codifica di alto livello: dai formati binari ad XML.

XML XML nasce dalla lunga storia dei sistemi di elaborazione di

testi allo scopo di permettere l’elaborazione delle informazioni piuttosto che la loro visualizzazione

in un documento XML, quindi, non e’ necessario fare alcun riferimento al modo in cui le informazioni verranno visualizzate: le regole per la visualizzazione saranno inserite in un foglio esterno chiamato foglio di stile

XML permette all’utente di definire il proprio insieme di tag (elementi) e in questo senso può essere considerato un meta-markup language: i tag definiti dall’utente possono avere dei nomi che rispecchiano il contenuto del documento stesso