I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza
I linguaggi di codifica Un linguaggio di codifica del testo è un formalismo o linguaggio informatico mediante il quale è possibile rappresentare un documento testuale su supporto digitale in modo che sia trattabile dallelaboratore in quanto testo Un linguaggio di codifica testuale permette di creare dati di tipo testuale
La codifica dei caratteri I formalismi più elementari per la codifica informatica dellinformazione testuale sono i sistemi di codifica dei caratteri In generale, ogni documento elettronico è costituito da un flusso (o stringa) di caratteri Il carattere dunque è lunità atomica per la rappresentazione lorganizzazione ed il controllo di dati testuali sullelaboratore
La codifica dei caratteri Come qualsiasi altro tipo di dati, anche i caratteri vengono rappresentati allinterno di un elaboratore mediante una codifica numerica binaria A B C
I coded character set Per codificare i caratteri si stabilisce una associazione biunivoca tra: gli elementi di una collezione ordinata di caratteri (character repertoir) un insieme (code set) di codici numerici (code point) linsieme risultante viene denominato tecnicamente coded character set
I coded character set È consuetudine rappresentare un coded character set in forma di tabella, in cui ogni cella, ordinata e indicizzata, contiene un simbolo (ragione per cui viene anche denominato code page o code table)
La tavola dei caratteri ASCII
La codifica dei caratteri Per ciascun coded character set si definisce una codifica dei caratteri (character encoding) La codifica mappa una o più sequenze di 8 bit (ottetto) a un numero intero che rappresenta un carattere in un determinato coded character set Il numero di caratteri rappresentabili in un certo coded charachter set è determinato dal numero di bit utilizzati per codificare ogni singolo carattere
I principali Coded Character Set: ASCII /ISO 646 IRV ASCII ISO 646 ISO 646 IRV / US ASCII Code set di 128 caratteri con codifica a 7 bit
I principali Coded Character Set: ISO 8859 ISO 8859 famiglia di 14 code set di 256 caratteri ciascuna con codifica a 8 bit Tutti includono ISO 646 IRV nei primi 128 caratteri e variano sui secondi 128 Il più utilizzato è lISO (o ISO Latin 1) che coincide con la tavola di caratteri di Microsoft Windows (ANSI) ed è lo standard più diffuso sul Web
I principali Coded Character Set: ISO 10646/Unicode ISO/IEC :2001: Universal Character Set Unicode 4.2 ( Due standard diversi ma perfettamente sincronizzati dotati di diverse codifiche di riferimento Attualmente sono stati codificati 95,221 caratteri
I principali Coded Character Set: ISO 10646/Unicode Tutte le principali scritture con alfabeto latino le scritture slave ad alfabeto cirillico le scritture mediorientali (arabo ed ebraico) molte scritture africane, asiatiche e indiane la scrittura cinese Han la scrittura giapponese CJK i caratteri IPA per la trascrizione fonetica … e tantissimi altri sistemi di scrittura e di simboli
I principali Coded Character Set: ISO 10646/Unicode ISO 10646/Unicode adottano vari sistemi di codifica UTF-8: usa un ottetto (byte) per i primi 128\ caratteri (coincide con ASCII) e combinazioni variabili da due a sei per i successivi UTF-16: utilizza due ottetti consecutivi per i primi 65 mila caratteri e quattro per i successivi UTF-32/UCS 4: utilizza sempre quattro ottetti consecutivi
I linguaggi di codifica La codifica dei caratteri non esaurisce i problemi di rappresentazione delle caratteristiche di un testo Un testo è un oggetto complesso caratterizzato da molteplici livelli strutturali che non si limitano alla sequenza di simboli del sistema di scrittura (simboli alfabetici, numerici, ortografici, diacritici)
I linguaggi di mark-up Si parla propriamente di linguaggio di codifica testuale solo in riferimento ai linguaggi che consentono la rappresentazione o il controllo di uno o più livelli strutturali di un documento testuale Tali linguaggi vengono correntemente denominati mark-up language, linguaggi di marcatura
I linguaggi di mark-up Un linguaggio di mark-up è composto da: un insieme di istruzioni detti tag o mark-up che rappresentano o determinano le caratteristiche del documento testuale una grammatica che regola luso del mark-up un semantica che definisce il dominio di applicazione e la funzione del mark-up
I linguaggi di mark-up Il mark-up viene inserito direttamente allinterno del testo cui viene applicato Ogni istruzione è a sua volta costituita da una sequenza di caratteri, preceduta da caratteri speciali che la delimitano e permettono allelaboratore di distinguere il testo dal mark- up
Tipologia dei linguaggi di mark-up Tradizionalmente i linguaggi di mark-up sono stati divisi in due gruppi tipologici in relazione a considerazioni semantiche e funzionali linguaggi procedurali o specifici linguaggi descrittivi, o generici, o analitici
Tipologia dei linguaggi di mark-up Lorigine di questa tassonomia risale a Charles Goldfarb, il padre di SGML Markup should describe a document's structure and other attributes rather than specify processing to be performed on it, as descriptive markup need be done only once and will suffice for all future processing
I linguaggi procedurali Nei linguaggi procedurali il mark-up specifica quali operazioni un dato programma deve compiere su un documento elettronico per ottenere una determinata presentazione la semantica è un processo computazionale di trattamento del testo, una procedura informatica le caratteristiche specificate sono strutture di formattazione, di resa grafica
Un linguaggio procedurale: LaTeX \documentclass{article} \usepackage{xtheorem} \DeclareInstance{theoremstyle}{example}{std} { pre-skip = 1cm, post-skip = 1cm, body-style = \ttfamily, head-style = \sffamily, post-head-action = \newline, } \newtheorem{plain}{Thm}{Theorem}[section] \newtheorem{plain}{Prop}[Thm]{Proposition} \newtheorem{plain}{Lem}[Thm]{Lemma} \newtheorem{plain}{Cor}[Thm]{Corollary} \newtheorem{definition}{Def}[Thm]{Definition} \newtheorem*{remark}{Rem}{Remark} \newtheorem*{example}{Exam}{Example} \begin{document} \section{First Section} \begin{Def} \emph{My package} is the \textsf{xtheorem} package. \end{Def} \begin{Thm} My package works as advertised. \end{Thm} \begin{Cor}[Achim] It can be used. \end{Cor} \begin{Rem} This is good. \end{Rem} \section{Second Section}
I linguaggi dichiarativi nei linguaggi descrittivi il mark-up descrive la struttura di un documento testuale identificandone i componenti la semantica predica lappartenenza di una porzione di testo a una determinata classe di elementi testuali le caratteristiche codificate sono strutture o componenti astratti o logici
I linguaggi dichiarativi In particolare ci si riferisce alla struttura editoriale, costituita da componenti (content object) organizzati in modo gerarchico (OHCO) Frontespizio,introduzione, corpo, appendice … Capitoli, sottocapitoli, atti, scene, canti … Titoli, epigrafi, abstract … Paragrafi, versi, battute, entrate di dizionario… Enfasi, citazioni …
1. La codifica dei testi La codifica dei testi è la rappresentazione di un testo su un supporto informatico mediante un linguaggio formale. Per effettuare tale codifica vengono utilizzati dei markup language. Il rapporto tra presentazione e struttura editoriale astratta Titolo Grassetto centrato, etc Paragrafo Enfasi Termine straniero Spazio orizzontale Spazio verticale italico
Tipologia dei linguaggi di mark-up La classificazione tradizionale dei linguaggi di mark-up è stata di recente sottoposta a diverse analisi critiche: Allen Renear (modo imperativo/indicativo/performativo dominio logico/presentazionale) Wendell Piez (validazione stretta/lasca e prospettiva prolettica/metalettica) Mavis Courname … e Fabio Ciotti (semantica dichiarativa/procedurale dominio astratto/presentazionale)
Altri requisiti dei linguaggi di mark-up Oltre alla tipologia semantica vanno considerati altri requisiti per caratterizzare un linguaggio di mark-up Tali requisiti sono importanti elementi di valutazione per verificare se e in che misura un linguaggio di mark-up soddisfa le complesse esigenze della elaborazione e trasmissione digitale di dati in ambito scientifico
Altri requisiti dei linguaggi di mark-up Tali requisiti possono essere suddivisi in tre aree: potenza espressiva portabilità e preservazione standardizzazione e apertura
Potenza espressiva La potenza espressiva di un linguaggio di mark-up riguarda: la capacità di modellizzare il maggior numero di tipologie e generi testuali la capacità di rappresentare adeguatamente il maggior numero di livelli strutturali e di caratteristiche di un documento testuale la capacità di esprimere tali caratteristiche secondo diverse prospettive metodologiche la capacità di associare metadati descrittivi e gestionali ai documenti digitali
Portabilità e riusabilità Un documento è un dispositivo comunicativo, che valore in quanto può essere fruito dal maggior numero di individui, senza limitazioni di spazio e di tempo Un documento digitale dovrebbe essere accessibile su ogni piattaforma e dispositivo informatico (portabilità) Un documento digitale dovrebbe essere accessibile anche a distanza di tempo dalla sua creazione (preservazione)
Portabilità e riusabilità indipendenza dallhardware, ovvero da una particolare architettura (processore), da un particolare supporto (disco magnetico, disco ottico, etc.), o da un particolare dispositivo o sistema di output (video, stampa) indipendenza dal software ovvero da singoli sistemi operativi e software deputati alla creazione, analisi, elaborazione e visualizzazione di testi elettronici indipendenza logica e funzionale dai processi e dai contesti applicativi ovvero da un particolare processo di elaborazione, quale ad esempio la produzione di versioni a stampa di un documento, o lanalisi grammaticale di un corpus linguistico, etc.
Apertura e standardizzazione Un linguaggio di codifica (come ogni altra tecnologia) dovrebbe essere adottato universalmente dalla comunità di utenti interessata al suo utilizzo esso deve essere uno standard Un linguaggio di codifica (come ogni altra tecnologia) dovrebbe essere aperto e di pubblico dominio
Tipi di Standard Standard formale insieme di norme relative ad una particolare tecnologia emesse da un ente istituzionale nazionale o internazionale (UNI, ANSI, ISO) Standard informale insieme di norme e linee guida relative ad una particolare tecnologia adottate da una comunità di utenti o produttori, eventualmente rappresentata da enti associativi Standard di fatto standard che si impongono per la diffusione commerciale