Si tratta di una presentazione in PowerPoint™ della durata di circa tre ore,
che preparai in seguito alla mia partecipazione alla
16ª Conferenza Unicode,
tenutasi ad Amsterdam nel 2000.
La presentazione nacque da una duplice richiesta:
l’ICL, la ditta per cui lavoravo allora (e che finanziò la mia iscrizione alla conferenza
Unicode) mi chiese di riferire ai miei colleghi su quanto avevo appreso su Unicode,
e di come questo standard potesse essere impiegato nei nostri prodotti software;
contemporaneamente, Giovanni Lussu (che conobbi proprio alla conferenza di Amsterdam),
mi chiese di tenere una lecture su Unicode agli studenti del suo corso di
comunicazione visiva del Politecnico di Milano.
Non avevo mai usato prima PowerPoint o altri software di presentazione e,
come spesso avviene ai novizi, mi lasciai prendere la mano dalle potenzialità
dello strumento tecnico. Col senno di poi, le slide sono troppo piene di elementi
in movimento che vanno a sovrapporsi gli uni sugli altri, talvolta nascondendo
informazioni importanti prima che l’ascoltatore abbia avuto il tempo di assimilarle,
e il percorso volutamente non lineare non aiuta l’ascoltatore a orientarsi.
Queste ingenuità sono state corrette nella successiva versione del
2002, che segue un percorso più semplice e
fa un uso più sobrio dell’animazione.
Questa versione della presentazione è stata proiettata nelle seguenti occasioni:
Slide | Speaker’s notes |
|
1. Scripta manent
(1 clic)
Pagina introduttiva.
Autore: Marco Cimarosti.
Data: dicembre 2000.
I paragrafi numerati descrivono i “clic” di mouse che
l’oratore deve fare durante la presentazione per far apparire gli
elementi animati presenti nelle slide.
- Appare una nota sulla proprietà del logo e nome “Unicode”.
|
|
2. Si va a parlare di
(nessun clic)
Sommario generale delle 4 sezioni.
La statua rappresenta Sarasvati, la dea hindu della scrittura.
|
|
3. A numero uguale
(nessun clic)
Sommario della sezione 1: una breve storia dei sistemi di codifica del testo
su computer, da ISO-646 (ASCII) a ISO-10646 (Unicode).
|
|
4. Testo ricco e testo povero
(5 clic)
Si discutono le differenze fra rich text (testo contenente
informazioni di formato: font, colori, ecc.) e plain text, che
specifica solo “cosa c’è scritto nel testo”. Si specifica
che in questa presentazione si parla solo del secondo: le informazioni
grafiche non riguardano i sistemi di codifica.
- Documento: un esempio di rich text, un volantino preparato al
computer da un ipotetico gruppo politico [nota: È l’incipit de Il
programma anarchico di E. Malatesta].
- Fumetto: il rich text altro non è che plain text (mostrato
in nero) con l’aggiunta di informazioni di mark-up (mostrate in
rosso) [nota: il mark-up dell’esempio è ispirato a HTML].
- Documento: lo stesso testo senza il mark-up: questo è plain text,
che il computer ci mostrerà in un unico font.
- Fumetto: appaiono i codici numerici che, all’interno della memoria
del computer, rappresentano ogni carattere del testo [nota: i numeri sono
espressi in notazione esadecimale che, oltre alle normali cifre 0-9
utilizza le sei lettere A-F come cifre].
- Si apre una parentesi.
|
|
5. Parentesi - I numeri esadecimali
(9 clic)
Questa parentesi è superflua per programmatori e persone esperte in
informatica.
- Si introducono i numeri decimali (quelli che usiamo solitamente).
- Potenze di 10.
- Servono 10 simboli (0-9).
- Esempio: valore del numero 2345 è duemilatrecentoquarantacinque.
- Si introducono i numeri esadecimali (quelli che usano i
programmatori).
- Potenze di 16.
- Servono 16 simboli (0-9 e lettere A-F).
- Esempio: valore del numero 2345 è novemilaventinove.
- Si chiude la parentesi.
|
|
6. Nonno ASCII
(2 clic)
Si sipiegano le codifiche a 128 caratteri degli anni ’60.
Appare la tabella di ISO-646-US (detto “ASCII”) e una vecchia
macchina da scrivere americana: ecco da dove vengono strani caratteri come `
~ @ # ^ \ | ecc.
- Tabella: ISO-646-IT (detto “UNI” ): la variante
italiana di ASCII.
- Si evidenziano le differenze fra le due codifiche: in quella italiana,
diversi caratteri “strani” (“@”, ecc.) sono sostituiti dalle vocali
accentate, ecc.
|
|
7. “OEM”: gli ASCII estesi
(4 clic)
Si parla del proliferare di codifiche a 256 caratteri degli anni
’70-’80.
Appare un personal computer dell’epoca (un AT IBM) e la tabella della
code page usata sui sistemi Windows in lingue occidentali: la
cp1252.
- Tabella: la code page usata negli stessi anni (e sugli stessi
computer!) dal sistema operativo DOS: cp850.
- Fumetto: appare un testo espresso in cp1251 (la riga di uno scontrino: si
è comprato un profumo francese per quasi 5 sterline) che contiene due
caratteri “estesi”.
- Fumetto: si mostra come appare il testo quando il computer “si
confonde” e ce lo mostra interpretando i codici numerici secondo la
cp850.
- Si evidenzia che la cp850, comunque, avrebbe I caratteri necessari, ma in
tutt’altra posizione.
|
|
8. Latin 1
(6 clic)
Si parla di ISO-8859: un primo standard (anni ’80-’90) di
codifica internazionale che comprendeva sottosezioni per diversi alfabeti
(latino, greco, cirillico, ebraico, arabo, thai, ecc.).
Appare un personal computer contemporaneo (un laptop Fujitsu) e la tabella
di ISO-8859-1 (detto “Latin 1”).
- Tabella: la tabella di ISO-8859-5 (detto “ISO Cyrillic”).
- Fumetto: appare una parola in alfabeto cirillico, traslitterata in
alfabeto latino. La freccia rappresenta un comando di trasformazione in
tutte maiuscole che il computer esegue correttamente.
- Si mostra come il computer conosca la correlazione maiuscola-minuscola
che esiste fra alcuni codici nella tabella cirillica: è questo che rende
possibile la trasformazione in maiuscole appena vista.
- Fumetto: si mostra come (non) funziona la trasformazione in maiuscole
quando il computer “si confonde” e esegue la trasformazione
interpretando i codici numerici secondo la tabella Latin 1.
- Si evidenzia come le due lettere latine nel nostro testo hanno lo stesso
codice anche nella tabella sbagliata.
- Si evidenzia come i codici delle due lettere cirilliche nel nostro testo,
interpretate secondo la tabella sbagliata, non risultano essere lettere
minuscole e, quindi, non vengono interessate dalla trasformazione.
|
|
9. Il pianeta del doppio byte
(6 clic)
Si parla di come le 256 combinazioni di un byte siano insufficienti per
rappresentare le migliaia di caratteri delle scritture dell’estremo
oriente e di come questo rese necessaria l’invenzione dei DBCS
(double-byte character sets).
Appare una pagina internet in giapponese.
- Tabella: il set di caratteri JIS (giapponese). Le prime 128 caselle sono
uguali all’ASCII (o quasi: la \ e sostituita dal simbolo dello yen) e,
come al solito, ogni byte rappresenta un carattere. Le 128 caselle (95 di
esse, in effetti) seguenti non rappresentano caratteri, ma sono utizzati
come lead bytes (in giapponese: ku) che rimandano a 95
sottotabelle.
- Appaiono tre esempi di sottotabelle: la prima contiene segni di
punteggiatura, le altre due sono fra le molte che contengono le migliaia di
kanji (= carattei cinesi) necessari in giapponese.
- Fumetto: il testo continene due caratteri: un kanji (che significa
“pace”) seguito da un punto esclamativo. Usando la
serializzazione EUC (= Extended Unix Code) del set di caratteri JIS
il primo carattere richiede due byte: il primo identifica la
sottotabella, il secondo il carattere all’interno di questa.
- Fumetto: anche in questo caso, se il computer “si confonde”
vedremo il testo in modo bizzarro: solo il segno di punteggiatura, essendo
un singolo byte, ci appare corretto.
- Fumetto: i set di caratteri DBCS sono passibili di più serializzazioni
in byte. Eccone un’altra: shift-JIS, che utilizza solo byte minori
di 128. Se i byte vadano interpretati come caratteri ASCII o, a coppie, come
caratteri JIS viene specificato con l’uso di sequenze di escape
.
- Fumetto: anche in questo caso sono possibili equivoci.
|
|
10. Arriva Unicode!
(2 clic)
Si descrive lo schema originario di Unicode (primi anni ’90): ogni
carattere ha 16 bit.
Appare la pagina web del Consorzio Unicode.
- Tabella: i primi 256 caratteri di Unicode, identici a Latin 1.
- Tabella: si mostra come l’intera tabella di prima (di 256) non sia
altro che una casella della tabella generale. Quindi, il
“vecchio” Unicode permetteva 256x256=65536 caratteri: più che
sufficiente per le scritture usate da tutte le lingue contemporanee.
|
|
11. Unicode fa carriera
(1 clic)
Alla fine degli anni ’90 Unicode diventa uno standard ufficiale:
ISO-10646. L’ISO impone però l’aggiunta di circa un milione di
codici-carattere in più. Attualmente (dicembre 2000) nessuno di questi nuovi
codici è stato allocato, ma questo cambierà presto: sono in arrivo un nuovo
set di caratteri cinesi molto rari e, soprattutto, verranno codificate molte
scritture antiche (geroglifici, caratteri cuneiformi, ecc.) ad uso degli
studiosi di linguistica e archeologia.
Appare il “vecchio schema” di Unicode.
- Tabella: il “vecchio schema” ora si chiama BMP (Basic
Multilingual Plane) ed è solo il primi di 17 “piani”. I 16
piani nuovi si chiamano ufficialmente “piani estesi” ma qualcuno
li chiama scherzosamente “piani astrali”.
|
|
12. Pausa
(nessun clic)
|
|
13. Pellegrinaggio in oriente
(nessun clic)
Sommario della sezione 2: un viaggio intorno al mondo alla scoperta dei
sistemi di scrittura.
|
|
14. Partenza dall’Europa
(9 clic)
In questa slide, come in quelle che seguono appariranno tre elementi
standard: un tragitto rosso sulla cartina geografica; la tabella di Unicode
con evidenziate in rosso le caselle relative ai blocchi (ogni blocco
contiene fino a 256 caratteri) di cui si sta parlando; un’immagine
della divinità locale della scrittura.
- Tragitto.
- Tabella Unicode.
- Appare Odino (o Wodan), dio germanico della scrittura [Nota: Odino è orbo
di un occhio, che perse quando rubò le rune a un titano, per donarle
agli uomini].
- Scrittura latina [Nota: ogni scrittura è rappresentata dalle parole
latine “Scripta manent.” (tratte dal noto motto “Verba
volant, scripta manent.” = “Le parole dette volano via, la
scrittura rimane”). Il suono di questa frase viene
traslitterato in ogni scrittura. I numeri fra parentesi rappresentano
il minimo e il massimo codice allocato per questa scrittura in Unicode].
- Scrittura greca.
- Scrittura cirillica.
- Scrittura armena (Armenia, repubblica ex sovietica).
- Scrittura georgiana (Georgia, repubblica ex sovietica) [Nota: a
differenza delle altre quattro, questa scrittura non usa le lettere
maiuscole. O meglio: le usa solo in alcuni tipi di testi religiosi].
- Si apre una parentesi.
|
|
15. Parentesi - Maiuscole e minuscole
(4 clic)
Le scritture europee (tranne la georgiana contemporanea) presentano due
serie di lettere: maiuscole e minuscole. Queste vengono considerati
caratteri separati ma in molti casi (ad esempio nelle funzioni di ricerca)
il computer deve sapere che “a, b, c.” sono la stessa cosa che
“A, B, C.”. Ecco come.
- Conversione m/M in ASCII: totalmente algoritmica (cioè non
richiede tabelle di dati) ed estremamente semplice.
- Conversione m/M in Latin 1: quasi semplice come in ASCII, ma con un caso
speciale.
- Conversione m/M in Unicode: estremamente complicata e con tantissimi casi
speciali, talvolta non risolvibili se non si conosce in quale lingua è
scritto il testo.
- Si apre un’altra parentesi.
|
|
16. Parentesi - Accento cosmopolita
(4 clic)
Cos’è una lettera accentata dal punto di vista della codifica: un
carattere o due caratteri (carattere lettera + carattere accento)?
- Accenti in ASCII: non esistono accenti in inglese americano.
- Accenti in Latin 1: parecchi caratteri rappresentano le combinazioni
lettera+accento necessari nell’Europa occidentale.
- Accenti in Unicode: esistono centinaia di combinazioni lettera+accento,
in uso nelle lingue più disparate. Ma esistono anche dei caratteri
diacritici (detti combining characters) che si combinano con i
caratteri lettera per formare combinazioni arbitrarie.
- Si chiudono le due parentesi.
|
|
17. Nella culla dell’alfabeto
(7 clic)
Le scritture del Medio Oriente, usate prevalentemente per lingue semitiche.
Caratteristiche comuni: si scrivono da destra a sinistra; le vocali non si
scrivono (o si scrivono tramite “accenti” diacritici).
- Tragitto e tabella Unicode.
- Appare Thot (o Djehuti, o Hermes Trismegistos), dio egiziano della
scrittura [Nota: il dio ha corpo di uomo e testa di ibis; sta scrivendo su
un papiro arrotolato usando una penna di giunco. Per la precisione, sta
verbalizzando il “processo” all’anima di un faraone].
- Scrittura ebraica (lingue ebraica e jiddisch).
- Scrittura araba (lingue araba, persiana, urdu, pashto, ecc.).
- Scrittura siriaca (o aramaica; usata solo nei testi religiosi degli arabi
cristiani).
- Scrittura maldiviana.
- Si apre una parentesi. [Nota: in queste scritture l’aperta parentesi
è uguale alla nostra chiusa parentesi!]
|
|
18. Parentesi - Bidirezionalità
(7 clic)
Unicode prevede un complicato algoritmo bidirezionale per quando le
scritture mediorientali vengono mischiate ad altre.
- Linea LTR (= left-to-right): le lettere occidentali (qui in rosso)
hanno direzionalità LTR; il segno di punteggiatura (in bianco) è neutro ma
assume la direzionalità dei caratteri vicini; la direzionalità della linea è
quella del primo carattere a direzionalità non neutra.
- Linea RTL (= right-to-left): le lettere mediorientali (qui in
giallo) hanno direzionalità RTL.
- Linea LTR contenente testo RTL. Il left-to-right mark (U+200E) è
un carattere invisibile il cui unico scopo è quello di influenzare la
direzionalità dei caratteri neutri adiacenti.
- Linea RTL contenente testo LTR. Il right-to-left mark (U+200F) è
analogo a U+200E, ma con direzionalità opposta.
- L’algoritmo bidirezionale pone grossi problemi al processo di
editing del testo. Qui vediamo un blocco di testo (in rosso)
selezionato col mouse: I due caratteri sono logicamente contigui ma,
visivamente, sono distanti. Questa soluzione (“selezione
logica”) è più semplice per il programmatore, ma sconcertante per
l’utente che, in questo caso, vedrà due blocchi di testo
selezionato.
- La scelta opposta (“selezione visiva”) è più amichevole per
l’utente, ma complica la vita del programmatore perche’ i
caratteri selezionati, nella memoria, non sono più contigui.
- Si apre un’altra parentesi.
|
|
19. Parentesi - Il modello carattere/glifo - 1
(8 clic)
La vecchia idea che ogni carattere ha una e una sola forma non vale in
Unicode. Moltre scritture, ad es. l’arabo, hanno lettere di forma
variabile. Questo si risolve in una forte complicazione nella struttura dei
font e della parte di software che li usa.
- Forma isolata di una lettera araba.
- Forma finale della stessa lettera araba.
- Forma iniziale della stessa lettera araba.
- Forma mediana della stessa lettera araba.
- Esempio di legatura fra due lettere arabe adiacenti [Nota:
la legatura è opzionale, e solo certi stili calligrafici/tipografici la
richiedono].
- Altro esempio di legatura [Nota: questa particolare legatura, chiamata
laam-alif, è assolutamente obbligatoria].
- Esempio di violazione del comportamento di default per mezzo dei
controlli ZWJ (= zero-width joiner) e ZWNJ (= zero-width
non joiner).
- Si chiudono le due parentesi.
|
|
20. Passaggio in India
(5 clic)
Le scritture dell’India sono tutte derivate dall’antica
scrittura brahmi
- Tragitto e tabella Unicode.
- Appare Ganesh (o Ganapati), dio hindu della scrittura e della scienza
[Nota: il dio ha corpo di uomo con quattro braccia e testa di elefante.
Appare spesso danzante o assiso su un trono, intento ad offrire un lauto
pranzo ad un topo. La svastica tatuata sulla mano del dio è un antichissimo
simbolo religioso, solo successivamente travisato ed abusato
dall’ideologia nazista].
- Scritture dell’India settentrionale (usate per le lingue
indo-arie): bengalese (o bengali), devanagari (o nagri), gujarathi, gurmukhi
(o punjabi).
- Scritture dell’India meridionale (usate per le lingue dravidiche):
kannada (o canarese), malayalam, tamil (o tamizh), telugu.
- Si apre una parentesi.
|
|
21. Parentesi - Il modello carattere/glifo - 2
(7 clic)
Le vocali delle scritture indiane sono particolarmente problematiche: in
memoria sono sei semplici caratteri che seguono la relativa
consonante ma, in visualizzazione, devono essere convertite in uno o più
glifi posizionati su uno o più lati della consonante.
- Una consonante da sola: si legge con una implicita vocale, di solito la
a, [Nota: questo come gli altri esempi utilizzano la lettera ka
dell’alfabeto devanagari].
- Un esempio di vocale il cui glifo è alla destra della
consonante.
- Un esempio di vocale il cui glifo è sopra la consonante.
- Un esempio di vocale il cui glifo è sotto la consonante.
- Un esempio di vocale il cui glifo è alla sinistra della
consonante.
- Un esempio di vocale che viene visualizzata con due glifi,
disposti sui due lati della consonante [Nota: in questo caso si tratta della
ka dell’alfabeto bengalese].
- Si chiude la parentesi.
|
|
22. Dall’Indocina al Tibet
(9 clic)
Altre scritture derivate dalla brahmi, strettamente imparentate a
quelle indiane.
- Tragitto e tabella Unicode.
- Appare Marpa (detto “il traduttore”), il monaco tibetano che
diffuse il buddismo in Tibet e in Cina traducendo i testi provenienti
dall’India.
- Scrittura singalese (Sri Lanka).
- Scritttura thai [Nota: non c’è spaziatura fra le parole].
- Scrittura laotiana [Nota: non c’è spaziatura fra le parole].
- Scrittura tibetana [Nota: c’è un segno, lo tsheg, che separa
le sillabe].
- Scrittura birmana.
- Scrittura khmer (Cambogia).
- Si apre una parentesi.
|
|
23. Parentesi - Il modello carattere/glifo - 3
(8 clic)
Un’ulteriore complicazione delle scritture brahmi è
rappresentata dalle consonanti non seguite da una vocale: quando due o più
consonanti si susseguono, formano “grappoli” (consonant
cluster) tipograficamente molto complessi.
- Una consonante devanagari da sola: si legge con la vocale a
implicita.
- Per eliminare questa vocale si aggiunge un segno diacritico detto
virama (o halant) che, in devanagari, è una specie di virgola
sotto la consonante.
- Ma se segue un’altra consonante si forma un grappolo. Il
devanagari e le altre scritture del nord rappresentano questi
grappoli prevalentemente con un glifo speciale (dimezzato)
della prima consonante. Notare che, in Unicode, questo si codifica inserendo
una virama logica che non viene mostrata sullo schermo.
- Una consonante telugu da sola: si legge con la vocale a
implicita.
- Per eliminare questa vocale si aggiunge il virama (o
halant) che, in telugu, è una specie di “E” posta sopar
la consonante. Notare che la forma della consonante cambia quando ha il
virama (perde il cappello).
- Ma, se segue un’altra consonante, anche qui si forma un
grappolo. Il telugu e le altre scritture del sud rappresentano
questi grappoli prevalentemente sottoscrivendo un glifo
alternativo per la seconda consonante. Notare che, in Unicode, anche
questo si codifica inserendo una virama logica.
- Sia le scritture del nord che quelle del sud, infine, richiedono talvolta
glifi speciali, detti legature, per rappresentare l’intero
grappolo.
- Si chiude la parentesi.
|
|
24. Estremo Oriente espress
(9 clic)
Si analizzano le scritture dette in Unicode CJK (=
Chinese, Japanese, Korean). Tradizionalmente in
quest’area si scriveve in colonne verticali, allineate da destra a
sinistra. Oggi è comune anche l’orientamento orizzontale di
derivazione occidentale.
- Tragitto.
- Tabella Unicode (quasi piena!).
- Appare una tartaruga [Nota: secondo il mito, una enorme tartaruga emerse
dalle acque e disse a Cangjie, consigliere dell’imperatore, di copiare
e diffondere fra gli uomini gli ideogrammi incisi sul suo guscio].
- Caratteri cinesi (cinese = hanzi; giapponese = kanji;
coreano = hanja). Ogni carattere rappresenta, grosso modo, una
parola (un morfema, più precisamente) [Nota: nelle lingue
europee gli hanzi si chiamano comunemente ideogrammi ma questo
termine è molto improprio].
- Alfabeto sillabico giapponese katakana [Nota: si usa prevalentemente per
trascrivere parole straniere].
- Alfabeto sillabico giapponese hiragana [Nota: si usa prevalentemente per
scrivere le terminazioni grammaticali delle parole giapponesi; il corpo
della parola è invece solitamente scritto con i caratteri cinei].
- Alfabeto coreano hangul [Note - Le lettere che compongono ogni sillaba
sono raggruppate in un gruppo. Fu inventato a tavolino, alcuni secoli fa, da
una commissione governativa. I caratteri cinesi si usano solo per scrivere
parole di origine cinese].
- Alfabeto cinese bo-po-mo-fo [Note - Inventato all’inizio di questo
secolo. Si usa solo, in dizionari e simili, per indicare la pronuncia dei
caratteri cinesi. È ormai usato solo a Taiwan].
- Si apre una parentesi (ovviamente alla maniera verticale).
|
|
25. Parentesi - Dizionari “ideografici”
(6 clic)
Il corpo dei dizionari CJK, oggigiorno, è ordinato alfabeticamente
per pronuncia. Però è necessario avere uno o più indici per reperire gli
ideogrammi di cui non si conosce la pronuncia.
- Colonna I: 9 esempi di ideogrammi. I primi 5 sono ideogrammi
originari (quelli portati dalla trataruga:-). I successivi due sono
composti logici antichi (donna col bambino = bontà;
trasmesso di bocca in bocca per dieci generazioni = antico).
Gli ultimi due sono composti pittofonetici il componente di sinistra
(donna) dà il senso generale, il componente sulla destra dà la pronuncia
(mamma e cavallo si pronunciano ma; zia e antico si pronunciano
gu).
- Colonna II: esempio di ordinamento alfabetico cinese (scrittura
pinyin, basata sull’alfabeto latino).
- Colonna III: esempio di ordinamento alfabetico giapponese (scrittura
hiragana).
- Colonna IV: ordinamento non fonetico per numero di tratti. I caratteri
sono ordinati secondo il loro numero di tratti tracciati dalla
penna; quando questo è uguale fa testo il primo tratto, ecc.
- Colonna V: ordinamento non fonetico per radicali. 214 ideogrammi usati
come componente logica vengono usati come chiavi o radicali
(es. la “donna” di “mamma” è il radicale n. 38). I
caratteri che hanno lo stesso radicale si ordinano per numero di tratti
della parte rimanente.
- Si apre un’altra parentesi.
|
|
26. Parentesi - Metodi di input
(5 clic)
Come si battono gli ideogrammi sulla tastiera dei computer? Battendo più
tasti per un singolo carattere. Questa componente del sistema operativo, che
sta fra il driver della tastiera e il software applicativo, si chiama IME (=
input method editor).
- Esempi di IME fonetico semplice, in pinyin (cinese) e hiragana
(giapponese).
- Esempi di IME fonetico complesso (una sequenza di tasti emette più
caratteri), in pinyin e hiragana.
- Esempi di battitura non fonetica. I tasti vengono associati a
rappresentazioni mnemoniche di pezzi di caratteri.
- Esempio di lianxi: sulla base di dati statistici, alcuni IME
complessi cercano di indovinare e suggerire il prossimo carattere da
battere.
- Si chiudono le due parentesi.
|
|
27. Volata finale
(9 clic)
Si vedono il resto delle scritture. Tranne l’etiopica-eritrea (usata
da decine di milioni di persone), si tratta di scritture minoritarie. Le
ultime due sono addirittura estinte.
- Tragitto e tabella Unicode.
- Appare la torre di Babele.
- Scrittura mongola (Mongolia, Cina) [Nota: è usata solo in ambienti
religiosi buddisti; nella vita civile si usa il cirillico].
- Scrittura sillabica yi (Cina meridionale).
- Scrittura sillabica cree/eschimese (Canada).
- Scrittura sillabica cherokee (USA).
- Scrittura sillabica etiopica (o ge’ez - Etiopia ed Eritrea).
- Scrittura ogham (antico irlandese).
- Scrittura runica (lingue germaniche antiche).
|
|
28. Un po’ dappertutto
(8 clic)
Caratteri condivisi da scritture diverse.
La tabella Unicode compare automaticamente.
- Ricompaiono tutte le mitche mascottes del viaggio.
- Punteggiatura.
- Simboli.
- Altri simboli.
- Codici surrogati: presi due a due codificano il milione di nuovi
caratteri dell’ISO-10646 (l’esempio mostra il geroglifico
egiziano: una delle scritture che, probabilmente, verrà allocata nei
“piani estesi”).
- Area ad uso privata: ognuno può farci ciò che vuole (l’esempio
mostra uno degli alfabeti del mondo dei romanzi di Tolkien).
- Si apre una parentesi.
|
|
29. Parentesi - Gli UTF
(5 clic)
Unicode è un insieme di numeri idenificativi (detti scalari) che
vanno da U+0000 a U-0010FFFF esadecimale. Questi codici possono essere
serializzati in byte in diversi modi, detti UTF (= Unicode
Transformation Formats).
- UTF-32: l’unità di codifica è di 32 bit (= 4 byte); ogni scalare
sta direttamente in una unità [Nota: la signature 00.00.FE.FF (o
FF.FE.00.00) identifica la endianness, cioè in quale ordine i 4 byte
si presentano fisicamente. Si basa sul fatto che il codice
“invertito” U-FFFE0000 è illecito].
- UTF-16: l’unità di codifica è di 16 bit (= 2 byte); ogni scalare
fino a U+FFFF sta direttamente in una unità; i caratteri dei piani estesi si
rappresentano con coppie di codici surrogati [Nota: la
signature FE.FF (o FF.FE) identifica la endianness, cioè in
quale ordine i 2 byte si presentano fisicamente. Si basa sul fatto che il
codice “invertito” U+FFFE è illecito].
- UTF-8: l’unità di codifica è di 8 bit (= 1 byte); ogni scalare fino
a U+007F (“caratteri ASCII”) sta direttamente in una unità; gli
altri si rappresentano con sequenze di byte superiori a 128 [Nota: la
signature EF.BB.BF serve solo a identificare il tipo di UTF].
- UTF-7 (obsoleto): derivato dal base-64, riesce a rappresetare gli
scalari da U+0000 a U+FFFF usando solo byte inferiori a 128.
- Si chiude la parentesi.
|
|
30. Pausa
(nessun clic)
|
|
31. La tipografia di babele
(nessun clic)
Sommario della sezione 3: note sui font e sulle tecnologie di
visualizzazione.
|
|
32. True Type all’acqua di rose
(3 clic)
“Plain vanilla” (qui tradotto “all’acqua di
rose”) in inglese americano significa “rozzo”,
“terra-terra”.
- Tabella: le principali sezioni (tabelle) di un font True Type. La tabella
cmap mappa i codici del set di caratteri (esempio, gli
scalari di Unicode) in codici-glifo interni al font. Il problema è
che la corrispondenza è uno a uno.
- Esempio di file contenente la parola “filza” in italiano e
traslitterata in arabo e in hindi. [Nota: le lettere rosse rappresentano il
contenuto (“logico”) della memoria].
- Si mostra il processo di visualizzazione. La mappatura uno a uno è a
malapena adeguata alla nostra scrittura: l’arabo e lo hindi sono
completamente sbagliati (rispettivamente “azlif” e
“falzia”). [Note - Le lettere blu rappresentano ciò che si vede
sullo schermo]
|
|
33. Open Type
(4 clic)
La nuova tecnologia Microsoft.
- Tabella: un font Open Type estende il modello True Type con nuove
tabelle. A noi interessa la GSUB, che mappa caratteri
multipli con glifi multipli, in modo sensibile al contesto
(cioè alla posizione dei caratteri nel testo).
- Esempio di file contenente la parola “filza” in italiano e
traslitterata in arabo e in hindi.
- Un primo processo, indipendente dal font, esegue gli spostamenti
di glifi.
- Un secondo processo esegue, consultando la GSUB del font in
questione, le sostituzioni di glifi. Il risultato è ora corretto.
|
|
34. AAT/ATSUI
(4 clic)
La nuova tecnologia Apple (AAT = Apple Advanced Typography; ATSUI =
Apple Type Services for Unicode Imaging).
- Tabella: anche un font ATSUI estende il modello True Type con nuove
tabelle. A noi interessa la mort, (che brutto nome!) che, come
la GSUB dell’Open Type mappa caratteri multipli con
glifi multipli in modo sensibile al contesto. La mort di
ATSUI, però, è anche in grado di operare spostamenti di glifi.
- Esempio di file contenente la parola “filza” in italiano e
traslitterata in arabo e in hindi.
- Un primo processo, indipendente dal font, esegue i soli
spostamenti di glifi richiesti dalla bidirezionalità.
- Un secondo processo esegue, consultando la mort del font in
questione, le sostituzioni o spostamenti di glifi. Il
risultato è corretto.
|
|
35. Graphite
(4 clic)
Il SIL (= Summer Institute of Linguistics) è un ente non a fini di
lucro che si occupa di etnologia e dello studio delle lingue minoritarie. È
anche attivissimo nel tentativo di alfabetizzazione delle lingue ancora
prive di scrittura, al fine di salvarle dall’estinzione.
- Box: un normale font True Type.
- Box: un programma scritto in GDL (= Graphite Description
Language), un linguaggio di programmazione speciale inventato dal
SIL.
- Box: dalla fusione dei primi due (operata da un apposito
compilatore) viene generano un font esteso, concettualmente molto
simile allo schema AAT/ATSUI, ma molto più flessibile.
- Fumetto: un esempio di sorgente in GDL che opera sostituzioni e
spostamenti di glifi.
|
|
36. Che fare
(nessun clic)
Sommario della sezione 4: note sull’impiego di Unicode nello sviluppo
di software e siti web.
|
|
37. l WWW
(3 clic)
Note su HTML e XML.
- I codici delle entities fanno sempre riferimento a Unicode,
qualunque sia l’encoding del documento.
- HTML: come impostare l’encoding del documento a Unicode (UTF-8 è la
scelta normale, ma si possono utilizzare anche gli altri UTF).
- XML: come impostare l’encoding del documento a Unicode.
|
|
38. I database
(2 clic)
Dichiarare e usare campi Unicode in diversi “dialetti” di
SQL.
- SQL Server e Oracle.
- SQL in standard ANSI.
|
|
39. La programmazione
(3 clic)
Dichiarare e usare stringhe Unicode in diversi linguaggi.
- C/C++.
- VB.
- Java.
|
|
40. E non finisce qui...
(10 clic)
3 libri e 8 siti web interessanti.
|