Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono...

27
2 novembre 2016 Linguistica Computazionale Laboratorio introduzione a XML

Transcript of Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono...

Page 1: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

2 novembre 2016

Linguistica Computazionale

Laboratorio introduzione a XML

Page 2: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 3: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 4: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 5: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 6: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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>

Page 7: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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)

Page 8: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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>

Page 9: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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)

Page 10: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 11: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 12: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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>

Page 13: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 14: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 15: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 16: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 17: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 18: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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>

Page 19: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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/>

Page 20: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 21: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 22: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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

Page 23: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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 -->

Page 24: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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  “è” &#232; &#xE8; l  “ш” &#1096; &#x448; l  <nome>РоссИя</nome> l  <nome>&#1056;&#1086;&#1089;&#1089;&#1080;&#1103;</nome>

Page 25: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

25

à &#x00E0; é &#x00E9; è &#x00E8; ì &#x00EC; ò &#x00F2; ù &#x00F9;

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 &#232; una citt&#224; </frase>

Page 26: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

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à

Page 27: Linguistica Computazionale · Tipi di entità entità generali entità parametriche possono occorrere solo nella DTD entità interne entità esterne Il valore associato al nome è

27

entità predefinite

carattere

&amp; &

&lt; <

&gt; >

&quot; "

&apos; '

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