Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono...
Transcript of Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono...
2 novembre 2016
Linguistica Computazionale
Laboratorio introduzione a XML
2
Linguaggi di marcatura l Un linguaggio di marcatura è un insieme di
convenzioni per la marcatura di testi l Marcatura di documenti
l la marcatura (o etichettatura) permette di rendere esplicita un'interpretazione di un testo.
l storicamente l annotazioni in un testo che descrivono al tipografo come
stampare o comporre una parte del testo l oggi
l qualsiasi tipo di codice inserito in un testo in forma elettronica
3
{\rtf1\ansi\ansicpg1252\uc1 \deff0\deflang1040\deflangfe1040{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman
Tipi di marcatura l Due tipi di marcatura
l marcatura procedurale l descrive come processare il documento l postscript, rtf, ecc.
l marcatura descrittiva l descrive la struttura logica del documento l HTML, SGML, XML
4
SGML - Standard Generalized Markup Language l Il padre degli attuali linguaggi di marcatura l È un metalinguaggio di marcatura, che permette di definire
linguaggi di marcatura l estremamente espressivo e configurabile l l’alta espressività rende l’elaborazione automatica del testo
complicata l utilizzato per grandi progetti di digitalizzazione del testo l non studiato espressamente per il Web
l Manca di alcune caratteristiche fondamentali per il Web: l gestione dei link l gestione del conflitto sui nomi delle etichette l tutti i documenti devono essere “validi” (oltre a essere “ben formati”)
l È troppo complicato per poter essere adoperato come linguaggio di marcatura
5
HTML - HyperText Markup Language l È un linguaggio di marcatura (non un metalinguaggio!)
l definito in termini di SGML l Insieme di etichette prefissato
l La marcatura non denota il “significato”, ovvero la struttura “logica” di un documento, ma solo il suo formato
l Studiato espressamente per il Web l collegamenti ipertestuali l immagini l marcatura finalizzata alla presentazione del documento come
pagina Web l diversi tipi di titoli, tabelle, ecc.
l non c’è un legame tra marcatura e tipi di informazione rappresentati nel documento
6
Una pagina HTML <html>
<head> <title>Le avventure di Pinocchio</title> </head>
<body>
<h2>Carlo Collodi</h2>
<h1>Le avventure di Pinocchio</h1> <p> <p>Capitolo I</p> <p><i>Come andò che Maestro Ciliegia, falegname, trovò un pezzo di legno, che
piangeva e rideva come un bambino.</i><p> </body>
</html>
7
XML eXtensible Mark-up Language l La marcatura è dettata dalla struttura logica del documento l L’insieme di etichette può cambiare in base l'applicazione l Fondamentale il concetto di tipo di documento
l specificato attraverso una Document Type Definition o DTD (parte dello standard XML)
l permette di dichiarare la struttura che tutti i documenti di un certo tipo devono rispettare
l Naturale successore di HTML come linguaggio per il Web l più espressivo e flessibile l la visualizzazione del documento è indipendente dalla sua
organizzazione logica l per lo stesso documento XML è possibile definire più modalità di
visualizzazione (es. attraverso stylesheets XSL)
8
Esempio di documento XML <libro>
<intestazione> Le avventure di Pinocchio </intestazione>
<autore>Carlo Collodi</autore>
<titolo>Le avventure di Pinocchio</titolo> <capitolo> <intestazioneCapitolo>Capitolo I</intestazioneCapitolo> <titolo>Come andò che Maestro Ciliegia, falegname, trovò un pezzo di legno, che
piangeva e rideva come un bambino.</titolo> </capitolo>
</libro>
9
Le origini di XML l 1969
l Charles Goldfarb (IBM) dirige lo sviluppo di GML l 1974
l Charles Goldfarb inventa SGML, il padre dei linguaggi di marcatura
l 1986 l SGML diventa uno standard ISO
(ISO 8879 ``Information Processing - Text and Office Systems - Standard Generalized Markup Language'')
l 1989 l Tim-Berners Lee (CERN di Ginevra) inventa HTML
l 1995 l Fondazione del World Wide Web Consortium (W3C)
10
Le origini di XML l 1996
l Inizio dello sviluppo di XML presso il W3C l 1998
l XML 1.0 diventa una raccomandazione W3C (uno standard di fatto)
l 1996-oggi l Sviluppo di standard associati ad XML
(coordinato da W3C) l 2002
l XML 1.1 diventa una raccomandazione candidata W3C l consorzio internazionale per la standardizzazione di
linguaggi e strumenti per il Web
11
I tratti caratterizzanti di XML l Marcatura dichiarativa
l usa etichette di marcatura che indicano la funzione astratta della porzione di testo a cui si riferiscono
l Marcatura strutturata l permette di raggruppare porzioni del testo e di definirle come
unità strutturali complesse, che riflettono l’organizzazione interna del testo
l Marcatura gerarchica l le strutture identificate nel testo possono combinarsi in maniera
gerarchica l un’unità strutturale del testo può a sua volta contenere altre
strutture incassate l otteniamo una gerarchia di strutture definibili a livelli
incrementali di dettaglio
12
delimitatore di apertura
<tag>
delimitatore di chiusura
</tag>
Contenuto
Elemento
I componenti della marcatura XML gli elementi
l Gli elementi rappresentano i blocchi costitutivi in cui si articola un testo
l ogni elemento viene marcato in modo esplicito nel testo inserendo un delimitatore di apertura all’inizio dell’elemento e uno di chiusura alla fine l Es: <autore>Carlo Collodi</autore>
13
I componenti della marcatura XML i nomi degli elementi l Ogni tipo di elemento è identificato da un nome (etichetta o tag)
l il nome associato a ogni tipo di elemento è chiamato identificatore generico (generic identifier o GI)
l XML è case-sensitive l l’identificatore generico deve essere sempre specificato con lo stesso tipo
di carattere, maiuscolo o minuscolo: <tag>…</tag>, <TAG>…</TAG>, <Tag>…</Tag> *<tag>…</TAG>
l norme per la sintassi del nome degli elementi l possono contenere solo lettere, cifre, ., -, _ l possono iniziare solo con una lettera o con _
l nomi consentiti: <autore.libro>, <_autore>, <AUTORE-LIBRO>, <autore_1>
l nomi proibiti: <1autore>, <autore libro>, <autore;@?libro> l non esiste un limite di lunghezza per il nome di un elemento
14
LIBRO
CAPITOLO
SEZIONE
SEZIONE
CAPITOLO
SEZIONE
SEZIONE
SEZIONE
I componenti della marcatura XML relazioni tra elementi
l due elementi XML possono essere annidati l’uno nell’altro
l l’elemento più esterno è detto elemento genitore, quello interno elemento figlio
l questo meccanismo di annidamento degli elementi permette la rappresentazione di strutture gerarchiche di profondità variabile
15
LIBRO
CAPITOLO
SEZIONE
SEZIONE
CAPITOLO
SEZIONE
SEZIONE
I componenti della marcatura XML relazioni tra elementi
l struttura XML mal formata in quanto esiste un elemento “a cavallo” di due elementi (annidamento improprio)
l in XML non è consentita la sovrapposizione tra elementi
l un elemento figlio deve essere completamente incluso nell’elemento padre
16
CAPITOLO
SEZIONE
CAPITOLO
SEZIONE
SEZIONE
SEZIONE
I componenti della marcatura XML l’elemento radice
l ogni documento XML ben formato deve contenere un elemento che contiene tutti gli altri elementi (elemento radice)
l la figura rappresenta una struttura mal formata in quanto in XML non è possibile avere più elementi a livello di radice
l ogni documento XML deve contenere uno e uno solo elemento radice
17
SEZIONE
SEZIONE
SEZIONE
LIBRO
capitolo
sezione
sezione
capitolo
sezione
sezione
sezione
LIBRO
capitolo
capitolo
sezione
sezione sezione
sezione
sezione
stringa di caratteri
stringa di caratteri
I componenti della marcatura XML il documento XML come albero
18
I componenti della marcatura XML contenuto di un elemento l Il contenuto di un elemento può essere costituito da: l testo libero non contenente altri elementi (dati di tipo
carattere) <titolo>Le avventure di Pinocchio</titolo>
l altri elementi (figli) <capitolo>
<titolo>Capitolo primo</titolo> <capoverso>C'era una volta...</capoverso> <capoverso>- Un re! - diranno subito i miei piccoli lettori.</capoverso>
</capitolo>
19
I componenti della marcatura XML contenuto di un elemento l contenuto misto (elementi+ testo)
<titolo>Le avventure di Pinocchio <sottotitolo>Storia di un burattino</sottotitolo>
</titolo>
l Il contenuto di un elemento può essere “vuoto” l due modi di denotare un elemento vuoto:
l coppia di delimitatori di apertura e chiusura <salto_pagina></salto_pagina>
l etichetta di elemento vuoto <salto_pagina/>
20
I componenti della marcatura XML gli attributi l Gli elementi XML possono essere dotati di uno o più attributi
l gli attributi rappresentano informazioni aggiuntive che specificano alcune caratteristiche dell’elemento (ma che non fanno parte del contenuto del testo) l nome_attributo= “valore” <capoverso num=”1”>C'era una volta...</capoverso>
l nome_attributo l stesse restrizioni definite per i nomi degli elementi
l i valori degli attributi devono sempre essere racchiusi tra virgolette (singole o doppie) l nel caso in cui un valore contenga al suo interno delle virgolette, allora
diventa obbligatorio differenziarle da quelle più esterne l un attributo può ricorrere al massimo una volta all’interno di un elemento
l ma ci possono essere più attributi differenti l Attenzione!!! Gli attributi possono comparire solo nei tag di apertura
degli elementi
21
Elemento = “contenitore” e “classificatore” del dato testuale Attributo = “glossa” associata al dato testuale
<parola> <orto>legno</orto> <pos>nome</pos> <accordo>
<num>sing</num> <gen>masc</gen>
</accordo> </parola>
<parola pos=”nome” num=”sing” gen=”masc” lemma=”legno”> <orto>legno</orto>
</parola>
Codifiche spesso interscambiabili
I componenti della marcatura XML elementi vs. attributi
22
I componenti della marcatura XML elementi vs. attributi l Non è sempre facile stabilire quando preferire una
codifica in termini di elementi o di attributi l spesso è una questione di “stile di codifica”
l Differenze espressive l gli elementi dello stesso tipo possono ricorrere più volte
mentre un attributo può ricorrere al massimo una volta all’interno di un elemento
l per gli elementi è possibile specificare l’ordine in cui devono apparire nel testo, mentre ciò non è possibile per gli attributi
l un attributo non può descrivere strutture complesse (il valore di un attributo XML è semplicemente una stringa di caratteri), mentre questo è un tratto caratterizzante degli elementi
23
I componenti della marcatura XML commenti l Ogni documento XML può contenere una o più “note
a margine” dette anche, in gergo tecnico, commenti l questo tipo di note non riguardano direttamente i dati da
annotare, e come tali sono ignorate da eventuali applicazioni
l forniscono informazioni preziose riguardo alle intenzioni dell’annotatore, a suoi eventuali dubbi, pro-memoria ecc. Il loro destinatario è tipicamente un lettore umano
l i commenti possono apparire in qualunque punto all’interno del testo con le seguenti eccezioni: l non possono apparire all’interno di un delimitatore di
apertura o di chiusura di un elemento l non possono apparire all’interno di un commento
<!– questo è un commento XML -->
24
Caratteri e XML l I file XML sono file solo testo,
ma … che tipo di testo contengono? l Tutti i file XML contengono per default file testo secondo la codifica Unicode
UTF-8 l tutti i file XML, indipendentemente dal sistema grafico con cui sono scritti, usano la
stessa modalità di rappresentazione dei caratteri in sequenze binarie l (virtuale) indipendenza dei dati da piattaforme e totale interscambiabilità l è possibile specificare una codifica di caratteri diversa (nella Dichiarazione XML)
l È possibile rappresentare qualsiasi carattere Unicode in un file XML con un riferimento a carattere l &#<codice decimale Unicode>; &#x<codice esadecimale Unicode>;
l “è” è è l “ш” ш ш l <nome>РоссИя</nome> l <nome>Россия</nome>
25
à à é é è è ì ì ò ò ù ù
Riferimenti a carattere esadecimali per le lettere accentate minuscole
XML - riferimenti a carattere l Scelta raccomandata per qualsiasi carattere non
ASCII Standard l <frase> Pisa è una città </frase> l <frase> Pisa è una città </frase>
26
Tipi di entità
entità generali entità parametriche possono occorrere solo
nella DTD
entità interne entità esterne
Il valore associato al nome è specificato nella DTD
Il valore associato al nome è rappresentato dal contenuto di una sorgente esterna (ad
es. un altro file in XML o altro formato, inclusi formati grafici)
Entità e riferimenti a entità l Le entità sono sequenze arbitrarie di byte (che vanno da una
stringa di caratteri a un file intero) associate a nomi mnemonici l i riferimenti a entità usano questi nomi nei documenti XML come
“segnaposto” del contenuto effettivo (valore) dell’entità
27
entità predefinite
carattere
& &
< <
> >
" "
' '
Entità generali l I riferimenti a entità generali hanno la forma &nome_entità; l Le entità interne sono associazioni tra un nome convenzionale e un frammento
di testo, definite nella DTD: l <!ENTITY JFK “John F. Kennedy”> l quando un parser XML incontra un riferimento a entità, sostituisce il nome con la
stringa associata ad esso l <nome>&JFK;</nome> = <nome>John F. Kennedy</nome>
l Riferimenti a entità predefinite l corrispondono a caratteri riservati di XML e devono essere sempre usati quando
questi compaiono nel testo da codificare (e non come segni di marcatura) l non devono essere dichiarati nella DTD