I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La...

32
I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma “La Sapienza”

Transcript of I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La...

Page 1: I linguaggi di codifica Requisiti e tipologia © Fabio Ciotti – CRILet, Università di Roma La Sapienza.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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