![Page 1: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/1.jpg)
I linguaggi di codifica
Requisiti e tipologia
© Fabio Ciotti – CRILet, Università di Roma “La Sapienza”
![Page 2: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/2.jpg)
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
![Page 3: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/3.jpg)
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
![Page 4: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/4.jpg)
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
![Page 5: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/5.jpg)
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
![Page 6: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/6.jpg)
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)
![Page 7: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/7.jpg)
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
![Page 8: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/8.jpg)
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
![Page 9: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/9.jpg)
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
![Page 10: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/10.jpg)
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
![Page 11: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/11.jpg)
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
![Page 12: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/12.jpg)
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
![Page 13: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/13.jpg)
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
![Page 14: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/14.jpg)
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)
![Page 15: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/15.jpg)
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
![Page 16: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/16.jpg)
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
![Page 17: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/17.jpg)
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
![Page 18: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/18.jpg)
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
![Page 19: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/19.jpg)
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”
![Page 20: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/20.jpg)
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
![Page 21: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/21.jpg)
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}
![Page 22: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/22.jpg)
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
![Page 23: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/23.jpg)
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 …
![Page 24: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/24.jpg)
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
![Page 25: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/25.jpg)
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)
![Page 26: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/26.jpg)
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
![Page 27: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/27.jpg)
Altri requisiti dei linguaggi di mark-up
Tali requisiti possono essere suddivisi in tre aree:
potenza espressiva
portabilità e preservazione
standardizzazione e apertura
![Page 28: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/28.jpg)
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
![Page 29: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/29.jpg)
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)
![Page 30: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/30.jpg)
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.
![Page 31: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/31.jpg)
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
![Page 32: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza](https://reader036.vdocuments.net/reader036/viewer/2022062404/5542eb58497959361e8c3c02/html5/thumbnails/32.jpg)
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