I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La...
-
Upload
bice-pesce -
Category
Documents
-
view
219 -
download
2
Transcript of I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La...
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 dall’elaboratore 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 dell’informazione testuale sono i sistemi di codifica dei caratteri
In generale, ogni documento elettronico è costituito da un flusso (o stringa) di caratteri
Il carattere dunque è l’unità atomica per la rappresentazione l’organizzazione ed il controllo di dati testuali sull’elaboratore
La codifica dei caratteri
Come qualsiasi altro tipo di dati, anche i caratteri vengono rappresentati all’interno 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) l’insieme 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
33 ! 49 1 65 A 81 Q 97 a 113q34 " 50 2 66 B 82 R 98 b 114 r35 # 51 3 67 C 83 S 99 c 115s36 $ 52 4 68 D 84 T 100d 116 t37 % 53 5 69 E 85 U 101e 117u38 & 54 6 70 F 86 V 102 f 118v39 ' 55 7 71 G 87 W 103g 119w40 ( 56 8 72 H 88 X 104h 120x41 ) 57 9 73 I 89 Y 105 i 121 y42 * 58 : 74 J 90 Z 106 j 122 z43 + 59 ; 75 K 91 [ 107k 123 {44 , 60 < 76 L 92 \ 108 l 124 |45 - 61 = 77 M 93 ] 109m 125 }46 . 62 > 78 N 94 ^ 110n 126~47 / 63 ? 79 O 95 _ 111o 127_48 0 64 @ 80 P 96 ` 112p
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 è l’ISO 8859-1 (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 10646-2:2001: Universal Character Set
Unicode 4.2 (http://www.unicode.org) 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 l’uso 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 all’interno 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 all’elaboratore 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
L’origine 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 l’appartenenza 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 Grassettocentrato, etc
Paragrafo
Enfasi
Termine straniero
Spazioorizzontale
Spazioverticale
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 dall’hardware, 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 l’analisi 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