Presentazione 1.4
Codifica dell'informazione testuale
Architettura dell'informazione | Prof. Luca A. Ludovico
Informazione testuale
• Obiettivo: definire e descrivere i principali formati di
file per la codifica di informazione testuale
• Solo testo semplice? Non necessariamente: sia
nell’editoria tradizionale sia in quella digitale, i testi
possono essere arricchiti da informazione ulteriore:
– Aspetti di formattazione (tipo e dimensione del carattere,
colore del testo, …) e di layout (margini, disposizione del
testo in colonne, …)
– Aggiunta di immagini, grafici, formule matematiche,
collegamenti ipertestuali, suoni, …
– Strutturazione logica del documento (titoli di vario livello,
citazioni, …)
Architettura dell'informazione
Prof. Luca A. Ludovico
Testo semplice
Parte 1
Testo semplice (plain text)
• Il formato più semplice per codificare testo digitale è
il cosiddetto testo semplice, o plain text
• Si tratta del contenuto di un file binario interpretabile
come materiale testuale semplicemente traducendo la
codifica dei caratteri uno ad uno, senza ricorrere a
ulteriori elaborazioni
• La codifica storicamente ha utilizzato i caratteri della
tabella ASCII e i suoi derivati
Architettura dell'informazione
Prof. Luca A. Ludovico
ASCII
• L’American Standard Code for Information Interchange (pronuncia
fonetica: /ˈæski/ ass-kee) è uno schema di codifica dei caratteri
basato originariamente sull’alfabeto inglese
• La standardizzazione trae origine dal mondo dei codici
telegrafici, e ha inizio nel 1960 presso i laboratori Bell. I codici
telegrafici vengono migliorati per quanto riguarda l’ordine dei
caratteri e il supporto di caratteristiche superiori rispetto alle
telescriventi dell’epoca
• Al giorno d’oggi si utilizzano schemi estesi con un maggior
numero di caratteri (si veda ad es. l’UTF-8 più avanti), ma spesso
basati sulla codifica ASCII
Architettura dell'informazione
Prof. Luca A. Ludovico
ASCII
• ASCII utilizza una codifica a 7 bit. Ne consegue la
possibilità di rappresentare 27 diverse combinazioni di
caratteri binari {0000000..1111111}2 = {0..127}10
• ASCII fornisce la definizione di 128 caratteri:
– 33 caratteri di controllo non stampabili (parecchi obsoleti)
che riguardano il controllo dei dispositivi di stampa
Ad esempio, il carattere 8 è il backspace mentre il 10
rappresenta la funzione "line feed“, che provoca
l’avanzamento della carta in una stampante
– 95 caratteri stampabili, tra cui le cifre 0..9, le lettere
minuscole a..z e le corrispettive maiuscole A..Z, comuni segni
di punteggiatura e il carattere spazio (segno grafico invisibile)
Architettura dell'informazione
Prof. Luca A. Ludovico
ASCII
Tabella dei codici
ASCII a 7 bit
{0..127}
Esempio di file TXT
• Creiamo un file di testo contenente la stringa:
Ciao alunni!
• Una volta salvato, ha dimensione 12 Byte = 12 · 8 bit
– Coerente con la codifica ASCII estesa, in quanto il file
contiene 12 caratteri da 8 bit ciascuno
• Apriamo il file con un viewer esadecimale
– Ad esempio, si può sfruttare il servizio on-line gratuito offerto
da http://webhex.net/
43
69
61
6F
C
i
a
o
Architettura dell'informazione
Prof. Luca A. Ludovico
20
61
6C
75
6E
6E
69
21
a
l
u
n
n
i
!
ASCII esteso
Aggiungendo un ottavo
bit, si raddoppia lo spazio
di indirizzamento e di
conseguenza il numero di
caratteri rappresentabili.
Alla tabella precedente
{0..127} si aggiungono i
caratteri qui mostrati
{128..255}
Curiosità: ASCII art
• L’ASCII art è una tecnica grafica per la creazione di
immagini facendo uso di combinazioni opportune dei
95 caratteri stampabili ASCII
• Un’opera in ASCII art può essere creata con qualsiasi
editor di testo semplice
• La maggior parte degli esempi richiede per la
visualizzazione l’adozione di un font monospaziato,
quale il Courier
– In un font monospaziato, ogni carattere tipografico occupa un
ugual numero di punti, che sia “largo” (ad esempio “m”) o
stretto (ad esempio “l”)
Architettura dell'informazione
Prof. Luca A. Ludovico
Emoticon e smiley
• Sono le forme più semplici di ASCII art: combinazioni
di pochi caratteri, convenzionalmente usate per
esprimere emozioni all’interno di messaggi di testo
semplice
– SMS, applicazioni di messaggistica istantanea, …
:-)
:-(
:’(
:D
=D
• Al contrario, i kaomoji o ASCII face non richiedono la
rotazione mentale dell’immagine
(O.O)
Architettura dell'informazione
Prof. Luca A. Ludovico
(-.-')
(>.<)
http://upload.wikimedia.org/wikipedia/commons/4/4a/Wikipedia-Ascii.png
Esempio
ASCII art converter
Esempio di software di conversione online (gratuito): http://picascii.com/
Esempi di conversione: http://www.text-image.com/samples.html
Architettura dell'informazione
Prof. Luca A. Ludovico
Evoluzioni dell’ASCII: ISO/IEC 8859
• Standard per la codifica di caratteri ad 8 bit per il trattamento
informatico di testi. La norma è divisa in parti numerate
pubblicate separatamente (ISO/IEC 8859-1, ISO/IEC 8859-2, etc),
ognuna delle quali può essere considerata standard a sé stante.
Ci sono attualmente 15 parti definite, escludendo la ISO/IEC
8859-12, abbandonata.
• Idea: usando l'ottavo bit del byte, si definiscono altri 128
caratteri rispetto ad ASCII. Vengono dunque sviluppate diverse
mappe di caratteri, in cui i 128 caratteri aggiuntivi si fanno
corrispondere a simboli differenti a seconda della mappa
–
Una decina di mappe copre le sole lingue latine
Architettura dell'informazione
Prof. Luca A. Ludovico
Comparazione tra le parti di ISO 8859
Binario
Oct
Dec
Hex
1010 0000
240
160
A0
1010 0001
241
161
A1
¡
1010 0010
242
162
A2
¢
1010 0011
243
163
A3
£
1010 0100
244
164
A4
1010 0101
245
165
A5
¥
Ľ
1010 0110
246
166
A6
¦
Ś
1010 0111
247
167
A7
§
Ї
1010 1000
250
168
A8
¨
Ј
¨
Ļ
จ
1010 1001
251
169
A9
©
Š
Љ
©
Đ
ฉ
1010 1010
252
170
AA
ª
Ē
Њ
Š
ช
Ŗ
Ẃ
1010 1011
253
171
AB
«
Ť
Ğ
Ģ
Ћ
«
Ŧ
ซ
«
ḋ
1010 1100
254
172
AC
¬
Ź
Ĵ
Ŧ
Ќ
¬
Ž
ฌ
¬
Ỳ
1010 1101
255
173
AD
1010 1110
256
174
AE
®
1010 1111
257
175
AF
¯
1011 0000
260
176
B0
1011 0001
261
177
B1
…
1
2
3
4
5
6
7
8
9
10
11
13
14
15
16
¡
Ą
ก
”
Ḃ
¡
Ą
¢
Ē
ข
¢
ḃ
¢
ą
Ģ
ฃ
Non-breaking space (NBSP)
Ą
Ħ
˘
Ł
£
Ą
Ё
‘
ĸ
Ђ
’
Ŗ
Ѓ
¤
Є
Ĥ
Š
İ
Ş
Ĩ
Ѕ
Ļ
І
¢
£
¤
€
¤
Ī
ค
¤
Ċ
₯
¥
Ĩ
ฅ
„
ċ
Ķ
ฆ
¦
Ḋ
¦
§
ͺ
،
ª
×
Ż
Ž
Ў
¯
Џ
А
°
±
ą
ħ
ą
Б
Ø
¥
„
Š
š
©
ª
Ș
«
¬
Ź
SHY
®
Ū
ฎ
¯
Ŋ
ฏ
Æ
Ÿ
ฐ
°
Ḟ
°
ฑ
±
ḟ
±
°
±
€
Ẁ
ญ
―
Ł
§
ง
soft hyphen (SHY)
Ž
£
ą
®
ź
¯
Ż
Evoluzioni dell’ASCII: Unicode
• Unicode è un sistema di codifica che assegna un numero univoco
ad ogni carattere usato per la scrittura di testi, in maniera
indipendente dalla lingua, dalla piattaforma informatica e dal
programma utilizzato
• Unicode incorpora, nella primissima parte, la codifica ISO/IEC
8859-1, ma va molto oltre, codificando i caratteri usati in quasi
tutte le lingue vive e in alcune lingue morte, nonché simboli
matematici e chimici, cartografici, l'alfabeto Braille, ideogrammi
ecc.
• Il codice assegnato al carattere viene rappresentato con U+,
seguito dalle quattro (o sei) cifre esadecimali del numero che lo
individua
–
Esempio: in Windows, si apra Mappa caratteri relativa al font Times New Roman
Architettura dell'informazione
Prof. Luca A. Ludovico
Evoluzioni dell’ASCII: Unicode
• Unicode è un sistema di codifica che assegna un numero univoco
ad ogni carattere usato per la scrittura di testi, in maniera
indipendente dalla lingua, dalla piattaforma informatica e dal
programma utilizzato
• Il codice assegnato al carattere viene rappresentato con U+,
seguito dalle quattro (o sei) cifre esadecimali del numero che lo
individua
• Unicode incorpora, nella primissima parte, la codifica ISO/IEC
8859-1, ma va molto oltre, codificando i caratteri usati in quasi
tutte le lingue vive e in alcune lingue morte, nonché simboli
matematici e chimici, cartografici, l'alfabeto Braille, ideogrammi
ecc.
Architettura dell'informazione
Prof. Luca A. Ludovico
UTF-8
• UTF-8 (Unicode Transformation Format, 8 bit) è una codifica dei
caratteri Unicode in sequenze di lunghezza variabile di byte
• UTF-8 usa da 1 a 4 byte per rappresentare un carattere Unicode.
Per esempio un solo byte è necessario per rappresentare i 128
caratteri dell'alfabeto ASCII, corrispondenti alle posizioni Unicode
da U+0000 a U+007F.
• La IETF (Internet Engineering Task Force) richiede che tutti i
protocolli Internet identifichino la codifica dei caratteri
utilizzata, e che siano in grado di utilizzare UTF-8
Architettura dell'informazione
Prof. Luca A. Ludovico
Codifica dei caratteri in UTF-8
• Quanti caratteri differenti si possono rappresentare in UTF-8?
In teoria 232 = 4.294.967.296 = circa 4 miliardi
• In realtà le sequenze di byte godono di queste proprietà:
–
–
–
Il bit più significativo di ogni sequenza composta di un singolo byte è sempre
0.
I bit più significativi del primo di una sequenza di più byte indicano la
lunghezza della sequenza. Questi bit sono 110 per le sequenze di due byte, e
1110 per quelle di tre.
I byte successivi al primo in una sequenza composta da più byte hanno
sempre 10 come bit più significativi
• UTF-8 è stato progettato per soddisfare queste tre proprietà, in
modo da garantire che nessuna sequenza di byte corrispondente a
uno specifico carattere sia contenuta in una sequenza più lunga,
usata per codificare un carattere diverso.
Architettura dell'informazione
Prof. Luca A. Ludovico
Testo formattato
Parte 2
Plain text vs. styled (rich) text
• Secondo lo standard Unicode, esistono due proprietà
che permettono di distinguere immediatamente il
testo semplice da quello formattato:
1. Il testo semplice è il contenuto cui si può applicare la
formattazione
«Plain text is the underlying content stream to which
formatting can be applied»
2. Il testo semplice è pubblico, standard e universalmente
leggibile
«Plain text is public, standardized, and universally
readable»
Architettura dell'informazione
Prof. Luca A. Ludovico
Rich Text Format (RTF)
• Formato proprietario per documenti multipiattaforma, sviluppato
nel 1981 e perfezionato nel 1987 da Microsoft
• La maggior parte degli editor di testo e dei word processor
disponibili per Microsoft Windows, Mac OS e Linux sono in grado
di leggere e scrivere documenti RTF → interoperabilità (anche se
è un formato proprietario e mai standardizzato, spesso
«protetto» da Microsoft contro i concorrenti)
• Un documento RTF è un file ASCII con stringhe di comandi speciali
in grado di controllare le informazioni riguardanti la
formattazione del testo: il tipo di carattere e il colore, i margini,
i bordi ecc.
Architettura dell'informazione
Prof. Luca A. Ludovico
Caratteristiche supportate in RTF
• Immagini: JPEG, Portable Network Graphics (PNG),
Enhanced Metafile (EMF), Windows Metafile (WMF),
Apple PICT, Windows bitmap
• Oggetti disegnati: rettangoli, ellissi, ecc.
• Font: inclusione di font specifici (spesso non gestita
dai software) e di generiche famiglie di font per le
sostituzioni: roman (serif), swiss (sans-serif), modern
(monospace), ecc.
• Commenti e metadati (titolo, autore, …)
Architettura dell'informazione
Prof. Luca A. Ludovico
Un semplice esempio RTF
{ \rtf Ciao!\par Ecco del testo in {\b grassetto}.\par }
Ciao!
Ecco del testo in grassetto.
•
•
•
•
La barra rovesciata (backslash) indica l'inizio di un codice di comando RTF
Il comando \par introduce una nuova riga
Il comando \b attiva il testo in grassetto
Le parentesi graffe { e } definiscono un gruppo per limitare il raggio d'azione
di un comando
• Tutto il resto viene trattato come testo semplice o da formattare
• Un documento RTF valido è un gruppo il cui primo comando è \rtf
Architettura dell'informazione
Prof. Luca A. Ludovico
Markup (vedi prossima lezione)
• Un linguaggio di marcatura (markup) è un insieme di
regole (convenzioni) che descrivono i meccanismi di
rappresentazione di un testo. Un file in un linguaggio
di marcatura contiene dati testuali e metadati
strutturali, semantici o presentazionali.
• Situazione ambigua:
– i file contenenti markup generalmente sono considerati plain
text in quanto contengono testo semplice (anche i marcatori
sono espressi in testo semplice)
– però contengono anche informazione di formattazione (si
pensi ad HTML e RTF)
Architettura dell'informazione
Prof. Luca A. Ludovico
Conclusioni
Il plain text nelle definizioni Unicode
Plain text represents the basic, interchangeable content of text.
Plain text represents character content only, not its appearance.
It can be displayed in a variety of ways and requires a rendering
process to make it visible with a particular appearance.
If the same plain text sequence is given to disparate rendering
processes, there is no expectation that rendered text in each
instance should have the same appearance. Instead, the disparate
rendering processes are simply required to make the text legible
according to the intended reading.
The relationship between appearance and content of plain text may
be summarized as follows: Plain text must contain enough
information to permit the text to be rendered legibly, and nothing
more.
Architettura dell'informazione
Prof. Luca A. Ludovico
Contesti d’uso
• Indipendenza da software e architetture HW
– I file plain text si possono aprire, leggere e modificare con
numerosissime applicazioni, tra cui Notepad (Windows), edit
(DOS), ed, emacs, vi, vim, Gedit or nano (Unix, Linux),
SimpleText (Mac OS) e TextEdit (Mac OS X).
• Uso radicato per alcune applicazioni, quali i file di
configurazione e di avvio, la posta elettronica e i web
browser testuali (ad es. Lynx)
• Scrittura di codice sorgente (istruzioni) nei linguaggi di
programmazione ad alto livello (ad es. C++, Java,
HTML)
Architettura dell'informazione
Prof. Luca A. Ludovico
Scarica

Presentazione del corso