Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 Il trattamento informatico di dati multilinguistici Federico Greselin Dipartimento di Studi sullAsia Orientale Venezia
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile Nei sistemi operativi non c'è corrispondenza univoca tra collocazione nel codice e caratteri di testo, ovvero lo stesso codice può portare a glifi diversi, diverse lettere, addirittura diversi significati PARTE I: ASPETTI GENERALI DEL PROBLEMA In sostanza, le diverse lingue del mondo, almeno fino ad un determinato stadio dell'evoluzione dell'informatica, si sono dovute servire degli stessi codici per diversi alfabeti o sistemi di rappresentazione grafica delle lingue stesse In rete si trovano vari documenti che spiegano l'evoluzione del processo di sviluppo conosciuto da questo particolare aspetto dell'informatica. Fabio Vitali dell'Università di Bologna fornisce, in un documento molto sintetico e tecnico sull'utilizzazione delle varie codifiche, sul processo di ampiamento degli spazi-codice dedicati al testo e sulle differenze tra i vari sistemi in uso…
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 …tuttavia le informazioni di questo studioso vanno prese con le molle. Sussiste una certa confusione, di fatto, su quello che è il reale oggetto del contendere, come si suol dire, ovvero su cosa sia realmente una stringa di testo e di cosa occorra tener conto nella gestione informatica di documenti in lingue diverse. Per esempio, Vitali afferma che: "Il carattere è lentità atomica di un testo scritto in una lingua umana. In alfabeti diversi i caratteri hanno particolarità diverse: Negli alfabeti di derivazione greca (greco, latino e cirillico), esiste la distinzione tra maiuscole e minuscole, ignota altrove Negli alfabeti di derivazione latina si sono inventati segni particolari sulle lettere per soddisfare le esigenze delle varie lingue che lo usano (accenti, segni diacritici, ecc.). In ebraico, le vocali sono modificatori grafici della forma delle consonanti In arabo, la giustapposizione di lettere diverse nella parola provoca una differenziazione della forma delle lettere stesse. In cinese, è possibile creare nuovi caratteri come composizione di altri caratteri esistenti" 2.Gestione informatica di stringhe di testo e di documenti multilingue Una stringa di testo è un oggetto come gli altri, che ha sì determinbate caratteristiche, ma che sostanzialmente consiste in una serie di 1 e 0 in una delle aree di memoria di un computer.
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 Una stringa di testo è un oggetto come gli altri, che ha sì determinbate caratteristiche, ma che sostanzialmente consiste in una serie di 1 e 0 in una delle aree di memoria di un computer. A livello informatico, una lingua è una proprietà specifica riservata ad una stringa di testo, anche se non in maniera esclusiva. Ad esempio, la lingua serve anche per definire la localizzazione di un sistema operativo, di un applicativo ecc. In questo senso, la lingua serve a riassumere una serie di formati attribuibili ad oggetti e comportamenti anche molto diversi tra loro, quali il formato della data, l'uso di sistemi di misurazione, l'uso di un dato correttore ortografico ecc. La lingua, intesa come localizzazione, è importante anche per l'interfaccia (uso del colore, sviluppo dei testi da destra a sinistra ecc. ecc.) Inizialmente la gestione della proprietà "lingua" di una stringa di testo era affidata ai singoli applicativi, mentre il sistema operativo si incaricava di assegnare inizialmente una codifica a tutte le stringhe di testo attive. Ecco dunque che le varie "codifiche" disponibili per una pagina sul Web si riferiscono al modo in cui un applicativo (il browser, nel caso specifico), attribuisce determinati glifi e/o caratteri a unità di codice significative.
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 Quindi il browser può trattare stringhe di testo in lingue diverse, ovvero può disporre di più codifiche per regolare la visualizzazione (ovvero il comportamento) di una stessa stringa di testo. Ad un altro livello, può sussistere un certo livello di incompatibilità tra applicativi e localizzazione di un sistema operativo. Ad esempio, un applicativo nato per una versione localizzata di Windows 3.1 può non essere gestibile in un'altra versione dato che il sistema può gestire unicamente una sola localizzazione il che significica che per gli oggetti di sistema contenenti stringhe di testo è ammessa una sola codifica…
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 Ecco dunque che la stessa finestra di dialogo nello stesso applicativo viene visualizzata in diversi modi, dei quali solo uno - quello corrispondente alla localizzazione nativa - sarà corretto localizzazione Repubblica Popolare Cinese: le stringhe di testo vengono rese secondo la codifica dbcs Guobiao localizzazione Italia: le stringhe di testo vengono rese con uno dei set ANSI disponibili per le codifiche Latin
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 I sistemi operativi si sono in pratica evoluti da un sistema ad una sola lingua (l'inglese), priva di segni diacritici, che poteva contare su un insieme limitato di caratteri (sistema ASCII, a 7 bit), ad un sistema che consentisse una localizzazione a livello di stringhe di testo, oltre che delle proprietà generiche (data, ora ecc.), a seconda delle esigenze dell'utente. Il sistema ANSI, a 8 bit, permette un certo grado di localizzazione utilizzando la pate superiore della tabella di spazi destinati alle stringhe di testo. La metà inferiore è uguale alla tabella ASCII. Le lingue cosiddette alfabetiche utilizzavano il sistema ANSI, così i sistemi operativi permettavano la differenziazione tra i vari sistemi di gestione dei diacritici per le lingue europee basate sui caratteri latini (italiano, francese, tedesco, svedese, ungherese ecc.) e addirittura di gestione degli stessi glifi tra queste lingue e le altre (russo, greco, serbo ecc.). Una visita alla pagina internazionale di Yahoo può rendere l'idea dell'ampiezza del problema:
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 Da qui le varie varianti di DOS per le varie lingue arabo, cinese RPC, cinese Taiwan, giapponese, hindi, thai ecc., in cui in pratica non erano ammessi caratteri accentati, ma solo le lettere latine dello standard ASCII, e, dal 1990, le varie versioni di Windows. Le lingue non alfabetiche, quelle che cioè basano i loro sistemi di scrittura su un numero di caratteri e/o un trattamento dei glifi molto più esteso che non le lingue europee, potevano comunque utilizzare la tabella ANSI, gestendo i caratteri come composti di due byte, da cui l'acronimo DBCS (= Double Byte Character System). In sostanza, i sistemi operativi rimanevano sistemi che gestivano le stringhe di testo destinando un byte per carattere, solo che alcuni sistemi abbinavano certi caratteri/byte per costruirne di diversi, la cui visualizzazione presupponeva anche l'impiego di font particolari. Da qui le varie varianti di DOS per le varie lingue arabo, cinese RPC, cinese Taiwan, giapponese, hindi, thai ecc., in cui in pratica non erano ammessi caratteri accentati, ma solo le lettere latine dello standard ASCII, e, dal 1990, le varie versioni di Windows, del Mac OS ecc.
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile Contrariamente a quanto prospettato, la possibilità di gestire una sola lingua per volta non è sufficiente L'uso delle codifiche ANSI, pur ampliando notevolmente le lingue in grado di gestire dati digitali, limitava ad una singola lingua le possibilità di gestione dell'OS. Tuttavia è chiaro come sia necessario gestire talvolta più lingue contemporaneamente: questo è evidente nel mondo dell'editoria. È impensabile infatti che un applicativo di Desktop Publishing riesca a gestire una sola lingua o un set limitato di lingue occidentali: eppure, chi lavorava con applicativi prestigiosi un tempo come Framemaker, Quarkpress o Ventura Publisher, in vari ambienti operativi, si trovava di fatto a gestire solo le lingue occidentali, giocando sulla possibilità di cambiare font e di attribuire determinate proprietà linguistiche a singole sottostringhe e/o paragrafi. Alcuni espedienti consentivano di bypassare questa difficoltà che tuttavia persisteva a livello di sistema operativo.
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 WorldScript determinò in sostanza il successo del Macintosh in alcuni ambienti professionali (editoria, stampa periodica, mondo accademico ecc.) appunto grazie alla capacità di gestire insieme lingue alfabetiche e non, facendole coesistere addirittura nella stessa pagina. In pratica all'interno di una stessa stringa di testo era possibile dotare sottostringhe di diversi attributi linguistici, in pratica ogni sottostringa veniva "taggata" in maniera specifica. Il Mac OS addirittura elevava uno di questi espedienti a livello di strumento di sistema, addirittura permettendo, negli applicativi predisposti, la coesistenza tra stringhe caratterizzate da proprietà di tipo "lingua" diverse. Questa soluzione non riuscì però ad imporsi anche in ambienti operativi diversi da quelli che caratterizzavano i prodotti Apple. In ambiente Windows si poteva optare per sistemi operativi localizzati sulla lingua prevalente, per poi affidarsi ad applicativi di terze parti (Universe per varie lingue, Twinbridge pwer il cinese e il giapponese ecc.) per la gestione dei codici di identificazione delle stringhe di testo. Chi vi parla ha addirittura pubblicato un libretto (La versione cinese di Windows 3.0. Ottimizzazione dell'ambiente a fini sinologici: installazione e guida all'uso delle più note applicazioni, Venezia, Cafoscarina, 1992) per spiegare come la versione taiwanese di Windows 3.0 potesse essere attrezzata ed utilizzata estesamente per la gestione di testi che contenessero insieme stringhe scritte in cinese non semplificato (codifica Big5) e stringhe scritte in lingue occidentali
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 Se anche questi sistemi "sporchi" di gestire più lingue avevano una loro funzionalità, anche piuttosto elevata, e quindi permettevano la preparazione di documenti di qualità professionale per la stampa, rimaneva insoluto il problema più grave… 4.Com'è possibile gestire dati testuali "puri", ovvero non formattati e non formattabili riferiti a lingue diverse? Da quanto fin qui detto appare chiaro che, lavorando di "tag" e di formattazione è certo possibile dotare le stringhe di testo che formano un documento di diverse proprietà linguistiche e addirittura farle coesistere in uno stesso sistema operativo. Nella gestione di basi di dati non è invece possibile farlo in un sistema basato sulle codifiche ANSI: così, un database di dati contenenti testo non potrà comprendere nella stessa stringa di testo (ovvero in un campo) sottostringhe a diversa codifica. I sistemi di catalogazione delle grandi biblioteche sinologiche e nipponistiche si basano ancora prevalentemente sull'implementazione di codifiche localizzate DBCS: pur trattando prevalentemente testi appunto cinesi e giapponesi, questa scelta, frutto di varie considerazioni tecniche, comporta alcune oggettive difficoltà e l'insorgere di problemi non facilmente risolvibili
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 La soluzione di questo problema cruciale passa sostanzialmente attraverso due passi, tra loro collegati: a. È necessario che tutte le stringhe di testo vengano codificate in modo univoco e che questo modo sia implementato a livello di sistema b. Occorre che la nuova codifica consenta uno spazio di codice autonomo per ogni glifo appartenente a una qualsiasi lingua del globo, o quasi ANSI - 8 bit: in teoria 256 spazi/codice per gestire il testo ASCII - 7 bit: in teoria 128 spazi/codice per gestire il testo DBCS bit: in pratica circa caratteri derivati dalle combinazioni possibili Codifiche a 16 bit ed oltre: da oltre spazi/codice a milioni di caratteri possibili
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 Unicode e ISO/IEC (1) Il compito di creare uno standard unico è stato affrontato indipendentemente da due commissioni di standard, Unicode e ISO/IEC Le due commissioni, una industriale, l'altra espressione governativa, hanno lavorato indipendentemente per le prime versioni, salvo poi convergere Attualmente la versione 3.0 di Unicode e la versione ISO/IEC :2000 associano gli stessi codici agli stessi caratteri. Questo però non è garantito nel futuro. Citiamo ancora dal documento di Fabio Vitali: Il primo sistema operativo ad implementare Unicode fu Windows NT, nel 1994, anche se i primi applicativi non specializzati a gestire in qualche modo stringhe di testo a 16 bit furono alcuni esponenti della versione 97 di Microsoft Office, segnatamente Word e, in qualche modo, Access. Dalla metà degli anni Novanta, comunque, tutte le grandi software house hanno operato nella direzione di dedicare 16 bit ad ogni singolo carattere; questo è avvenuto sia a livello di OS (Windows NT, 2000 e XP sono del tutto predisposti ad Unicode, 98 e Me lo erano solo in parte. Le ultime versioni di Linux e Unix, Mac SystemX sono pure compatibili completamente), sia di applicativi.
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 Una visita al sito del Consorzio Unicode può far capire meglio la vastità dei problemi che sono già stati risolti e l'importanza dell'adozione a livello informatico di una codifica unica Tra gli applicativi di rilievo che possono gestire Unicode, oltre ai vari linguaggi di programmazione e authoring tools (C++, VisualNet, VBA ecc.), possiamo notare che tutti i grandi sistemi DBMS da tempo ammettono la nuova codifica (Novell, Oracle, SQL). Unicode permette di fatto, anche solo nella sua implementazione a 16 bit, la gestione insimultanea di molte lingue diverse. Sussiste un rapporto univoco molto stretto tra area di codice, glifo, proprietà e caratteristiche di comportamento riferite ad un singolo carattere. Ad esempio, per i caratteri compresi nell'area CJK, non è previsto l'impiego di font a spaziatura variabile, mentre per quelli nell'area Arabic, è previsto l'impiego di font che cambiano sostanzialmente la morfologia dei glifi e la presenza di caratteri (diacritici) a spazio zero. Inoltre, nei dati disponibili nei vari chart è possibile trovare riferimenti a codifiche DBCS preesistenti, per consentire una facile indicizzazione a scopi di compatibilità
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile 2005 PARTE I: ASPETTI SPECIFICI E PRATICI 1.A lingue diverse, in particolar modo se le lingue hanno sistemi di scrittura sostanzialmente differenti, corrispondono anche rese diverse nella pagina stampata, com'è naturale, ma anche nella pagina Web Esempi: Sito di commercio elettronico Quotidiani on-line
Il trattamento informatico di dati multilinguistici Dipartimento di Informatica, 15 aprile La gestione di dati multilinguistici implica sia un diverso modo di rapportarsi ai diversi applicativi, sia l'apertura di nuovi campi d'intervento, per gli informatici e gli operatori culturali in genere Basi di dati: Gestione di bibliografie per gli studi orientali (vedi: e manuale2004.pdf. manuale2004.pdf Uno schedario elettronico del cinema cinese Il dizionario analitico dei sinonimi cinesi (prof. Harbsmeyer) Applicativi orizzontali: i vantaggi di ambienti completamente multilingue.