DOTTORATO IN LINGUISTICA GENERALE STORICA APPLICATA COMPUTAZIONALE E

  • Slides: 106
Download presentation
DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi

DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Linguistica Computazionale Metodi computazionali per l'esplorazione e la rappresentazione dei dati linguistici Alessandro Lenci Dipartimento di Linguistica

Sommario u Esplorare i dati linguistici § § ricerche avanzate nei corpora testuali espressioni

Sommario u Esplorare i dati linguistici § § ricerche avanzate nei corpora testuali espressioni regolari u Rappresentare i dati linguistici § § § annotazione linguistica XML schemi di annotazione u Testo di riferimento A. Lenci, S. Montemagni, V. Pirrelli Testo e Computer. Elementi di linguistica computazionale, Carocci, 2005 2

Strumenti e risorse per l’analisi computazionale dei dati linguistici Tre requisiti per la linguistica

Strumenti e risorse per l’analisi computazionale dei dati linguistici Tre requisiti per la linguistica computazionale e NLP § dati linguistici corpora di testi digitali § metodi e strumenti formali logica , matematica, statistica, algoritmica § software linguaggi di programmazione, strumenti e ambienti di sviluppo u Il recupero di quantità significative di dati linguistici è la precondizione di ogni indagine linguistico-computazionale § uso di corpora generali esistenti è Brown Corpus, Wall Street Journal, ecc. è BNC è PAROLE, ecc. § costruzione di un corpus specializzato per il task in oggetto 3

DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Esplorare i dati

DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Esplorare i dati linguistici

Ricerche avanzate nei corpora Espressioni Regolari u Linguaggio standard per caratterizzare stringhe di testo

Ricerche avanzate nei corpora Espressioni Regolari u Linguaggio standard per caratterizzare stringhe di testo (regular expressions, regex, re) § definite da Kleene nel 1956 u Strumento ideale per § § ricercare testo sostituire testo u Molti programmi supportano le RE: § § § Trova e Sostituisci in Word grep in Unix Emacs e altri editors di testo u Perl è un linguaggio di programmazione che permette un trattamento estremamente avanzato e duttile delle RE 5

RE e Pattern Matching u Il pattern matching è la forma più elementare di

RE e Pattern Matching u Il pattern matching è la forma più elementare di elaborazione di un testo: § § dato un testo T vengono cercate le stringhe in T che corrispondono ad un pattern p un pattern è uno schema di stringhe, ovvero definisce un insieme di stringhe di testo che soddisfano particolari criteri è “le parole che iniziano con la lettera maiuscola” è “le stringhe di numeri la cui seconda cifra è 2” è “le linee di testo che terminano con un punto esclamativo” § le RE sono il linguaggio standard per specificare pattern di testo da ricercare u Stringa di testo § qualsiasi sequenza di caratteri alfanumerici è lettere, numeri, spazi, punteggiatura, caratteri speciali, ecc. u Attenzione!!! § per il pattern matching, anche gli spazi, tabulazioni, ecc. contano come caratteri 6

RE e Pattern Matching u In Perl una RE è un’espressione della forma /<pattern>/

RE e Pattern Matching u In Perl una RE è un’espressione della forma /<pattern>/ u Uso delle espressioni regolari in Perl 1. Si definisce un pattern tramite una RE 2. La RE viene verificata su un testo e produce come risultato un valore booleano (true-false): è true = il testo contiene una stringa che corrisponde (match) al pattern è false = il testo non contiene una stringa che corrisponda al patttern u Altri possibili output § § documenti in cui viene trovata la stringa(stringhe) corrispondente(i) al pattern linee di testo che contengono il pattern (es. grep) 7

Caratteri e sequenze di caratteri u Un qualsiasi carattere o sequenza di caratteri (lettere,

Caratteri e sequenze di caratteri u Un qualsiasi carattere o sequenza di caratteri (lettere, numeri, punteggiatura, spazi, ritorno-a-capo, caratteri speciali) è una RE u le RE sono “case sensitive” RE Esempi di “matching” /testo/ “il testo del corpus” /a/ “il cane di Mario è nero” /mark up/ /Linguistica/ “mark up del testo” “markup del testo” “la Linguistica Computazionale” “la linguistica computazionale” 8

Classe di caratteri u Un insieme di caratteri tra parentesi quadre è una RE

Classe di caratteri u Un insieme di caratteri tra parentesi quadre è una RE che definisce una classe di caratteri disgiunti RE Definizione Esempi di “matching” /[st]/ il carattere ‘s’ o il carattere ‘t’ “la sintassi” “il tempo” /[1234567890]/ qualsiasi cifra “ 2 parole” /[Ll]inguistica/ ‘linguistica’ o ‘Linguistica’ “la Linguistica Computazionale” “la linguistica computazionale” ATTENZIONE!!! - Una classe di caratteri sta sempre per un solo carattere u u /[st]/ il carattere ‘s’ o ‘t’ “la sintassi” “il tema” /st/ la stringa ‘st’ “la sintassi” “il tema” /[123]/ il carattere ‘ 1’ o ‘ 2’ o ‘ 3’ “ 715. 478” /123/ la stringa di caratteri ‘ 123’ “ 715. 478” “ 674. 123” 9

Classe di caratteri u Dentro una classe di caratteri è possibile specificare un intervallo

Classe di caratteri u Dentro una classe di caratteri è possibile specificare un intervallo di caratteri in una scala usando ‘-’: § /[2 -5]/ il carattere 2 o 3 o 4 o 5 RE Definizione Esempi di “matching” /[a-z]/ qualsiasi lettera minuscola “la sintassi” “il tempo” /[0 -9]/ qualsiasi cifra “ 2 parole” /[a-z. A-Z]/ qualsiasi lettera minuscola o maiuscola “la Linguistica” “la linguistica” u Sono solo abbreviazioni: § § /[2 -5]/ /[a-z]/ è equivalente a /[2345]/ è equivalente a /[abcdefghijklmnopqrstuvwxyz]/ 10

Classe di caratteri u Dentro una classe di caratteri è possibile specificare che un

Classe di caratteri u Dentro una classe di caratteri è possibile specificare che un pattern non deve contenere un certo carattere usando il segno ‘^’: § /[^2]/ qualsiasi carattere diverso da 2 RE Definizione Esempi di “matching” /[^a-z]/ qualsiasi carattere diverso da una lettera minuscola “la Sintassi” “il 25%” qualsiasi carattere che non sia né ‘s’ né ‘t’ “ 2 parole” /[^st]/ “il tempo” “ssssss” ATTENZIONE! u ‘^’ ha valore negativo solo quando compare subito dopo la ‘[‘ § /[2^]/ il carattere ‘ 2’ o ‘^’ “ 3^5” 11

Classe di caratteri u Alcune utili abbreviazioni per classi di caratteri RE Classe di

Classe di caratteri u Alcune utili abbreviazioni per classi di caratteri RE Classe di caratteri equivalente /d/ /[0 -9]/ /w/ /[a-z. A-Z 0 -9_]/ /s/ /[ tn]/ /D/ /[^0 -9] /W /[^a-z. A-Z 0 -9_]/ /S/ /[^ tn]/ u Caratteri particolari: § t tabulazione § n a capo 12

Alternativa u L’operatore “|” esprime la disgiunzione tra due RE (operatore di alternativa) RE

Alternativa u L’operatore “|” esprime la disgiunzione tra due RE (operatore di alternativa) RE Definizione Esempi di “matching” /cane|gatto/ la stringa “cane” oppure la stringa “gatto” “il cane abbaia” “il gatto miagola” ATTENZIONE! u /[. . ]/ esprime solo la disgiunzione tra caratteri singoli § /[abc]/ il carattere ‘a’ o ‘b’ o ‘c’ u La disgiunzione tra stringhe deve essere espressa con l’operatore di alternativa § /ab|c/ la stringa ‘ab’ o il carattere ‘c’ 13

Moltiplicatori u I seguenti simboli sono usati in una RE per specificare quante volte

Moltiplicatori u I seguenti simboli sono usati in una RE per specificare quante volte deve comparire il carattere che li precede immediatamente: /<carattere>? / “il carattere precedente è opzionale (occorre 0 o 1 volta)” /<carattere>*/ “il carattere precedente occorre 0 o n volte” (Kleene Star) /<carattere>+/ “il carattere precedente occorre 1 o n volte” RE Definizione Esempi di “matching” /ba? rio/ la stringa ‘brio’ o ‘bario’ (la a è opzionale) “brio” “bario” “berio” /tokens? / l’ultimo carattere ‘s’ è opzionale “token” “tokens” “tokened” 14

Moltiplicatori RE Definizione Esempi di “matching” /ba*/ il carattere ‘b’ seguito da 0 o

Moltiplicatori RE Definizione Esempi di “matching” /ba*/ il carattere ‘b’ seguito da 0 o n ‘a’ “b” “baa” “baaaa” “baaaaa” … /[0 -9]*/ un numero infinitamente lungo, composto da 0 a n cifre “ 2” “ 43” “ 534” “ 3546” “ 3830” “ 87474” un numero infinitamente lungo che deve contenere almeno una cifra “ 2” “ 43” “ 534” “ 3546” “ 3830” “ 87474” /[0 -9]+/ un numero infinitamente lungo che deve contenere almeno una cifra “ 2” “ 43” “ 534” “ 3546” “ 3830” “ 87474” /ba+/ il carattere ‘b’ seguito da 1 o n ‘a’ “ba” “baaa” “baaaaa” … /[0 -9]*/ “la repubblica” 15

Moltiplicatori u Moltiplicatori avanzati: § § § /<carattere>{n, m}/ “il <carattere> deve occorrere almeno

Moltiplicatori u Moltiplicatori avanzati: § § § /<carattere>{n, m}/ “il <carattere> deve occorrere almeno n volte e al massimo m volte /<carattere>{n, }/ “il <carattere> deve comparire almeno n volte /carattere>{n}/ “il <carattere> deve comparire esattamente n volte RE Definizione Esempi di “matching” /a{2, 3}b/ la stringa formata da almeno 2 ‘a’ e al massimo da 3 ‘a’ seguita da una ‘b’ “aab” “ab” “aaaab” /a{2}b/ la stringa formata da esattamente 2 ‘a’ e una b “aab” “aaab” 16

Sostituzione di stringhe in Perl u s/<espressione regolare>/<nuova stringa>/ § § compie la sostituzione

Sostituzione di stringhe in Perl u s/<espressione regolare>/<nuova stringa>/ § § compie la sostituzione solo sul primo match effettuato s/…/…/g sostituzione globale RE Testo originario Nuovo testo s/é/e’/ “…non so il perché” “non so il perche’” s/ab*c/ad/ “abbbbbbc” “ad” “ac” “ad” s/a/i/g “cavallo” “civillo” s/a/i/ “cavallo” “civallo” 17

Wildcard u La RE /. / corrisponde a qualsiasi carattere (eccetto il ritorno-a-capo) RE

Wildcard u La RE /. / corrisponde a qualsiasi carattere (eccetto il ritorno-a-capo) RE Definizione Esempi di “matching” /b. s/ qualsiasi stringa di tre caratteri che inizia con ‘b’ e termina con ‘s’ “bas” “bbs” “b 3 s” “b!s” “b, s” … qualsiasi stringa che inizia per b e termina per s “bs” “bas” “bbs” “b 3 s” “b!s” “b, s” “baas” /b. *s/ “baas” “bisogna prendere l’autobus” /. */ qualsiasi stringa (compresa quella vuota) l’intero corpus, anche se vuoto 18

Ingordigia e pigrizia u I moltiplicatori in Perl sono ingordi (greedy) § fanno sempre

Ingordigia e pigrizia u I moltiplicatori in Perl sono ingordi (greedy) § fanno sempre matching con la stringa più lunga possibile /x+/ “axxxxxxxb” /a. *c. */ “a xxx c xxx d” u E’ possibile rendere i moltiplicatori “pigri” (lazy) facendoli seguire dal carattere “? ” § fanno matching con la stringa più corta possibile /a. *? c. */ “a xxx c xxx d” 19

Raggruppamento e memoria u Le parentesi tonde servono per raggruppare stringhe di caratteri da

Raggruppamento e memoria u Le parentesi tonde servono per raggruppare stringhe di caratteri da moltiplicare: RE Definizione Esempi di “matching” /(ab)+/ una o più stringhe “ab” “abab” “ababab” /ab+/ una “a” seguito da una o più “b” “abb” “abbb” u Le parentesi tonde memorizzano la stringa di testo corrispondente al contenuto delle parentesi § la stringa viene memorizzata in una variabile temporanea § Il contenuto della variabile può essere richiamato con <numero> (1 = contenuto della prima coppia di parentesi; 2 = contenuto della seconda coppia di patentesi, ecc. ) 20

Raggruppamento e memoria RE Definizione Esempi di “matching” /(ab)+1/ la variabile “1” corrisponde a

Raggruppamento e memoria RE Definizione Esempi di “matching” /(ab)+1/ la variabile “1” corrisponde a qualunque stringa abbia fatto matching con il contenuto delle parentesi “abab” “abababab” /(a)+(b)+12/ /p(. )o p1 o/ /p. o/ la variabile “1” corrisponde a qualsiasi stringa abbia fatto matching con il contenuto della prima coppia di parentesi; la variabile “2” idem, ma rispetto alla seconda coppia di parentesi “abab” “abbabb” “aabaab” “abbaab” la variabile “1” corrisponde a qualunque stringa abbia fatto matching con il contenuto delle parentesi “pio pio” “pao pao” “pro pro”, ecc. la wildcard “. ” può essere sostituita da qualsiasi carattere “pio pio” “pio pao” “pro pso”, “pao pio”, ecc. “pio pao” “pao peo” 21

Caratteri speciali u Alcuni caratteri hanno un significato speciale nel linguaggio delle RE §

Caratteri speciali u Alcuni caratteri hanno un significato speciale nel linguaggio delle RE § [ ] ? *. ( ) + - / { } u Se questi caratteri fanno parte del pattern di testo da cercare, devono comparire in una RE con davanti il carattere ‘’ (carattere di escape) § /[a/ § § /[a/ /a. / ERRORE! ‘[‘ è interpretato come operatore di disgiunzione e manca la parentesi ‘]’ la stringa “[a” qualsiasi stringa di due caratteri che inizia con ‘a’ “ab” “au” as” “a 1” “a? ” … § § § /a. / /cane? / /cane? / la stringa di testo “a. ” le stringhe “cane” e “can” la stringa “cane? ” 22

Ancore u Le ancore sono caratteri speciali che specificano dove deve comparire il pattern

Ancore u Le ancore sono caratteri speciali che specificano dove deve comparire il pattern di testo da cercare § § /^<pattern>/ /<pattern>$/ il <pattern> deve comparire all’inizio di una linea il <pattern> deve comparire alla fine di una linea RE Definizione Esempi di “matching” /cane$/ la stringa ‘cane’ quando compare alla fine di una linea “…cane¶” /^La/ /^La Spezia$/ “il cane di Mario” la stringa ‘La’ quando compare all’inizio di una linea “¶La macchina era guasta” una riga che contiene solo la stringa “La Spezia” “¶La Spezia¶” “il treno per La Spezia” “…a La Spezia per lavoro …” 23

Ancore u “b” è un ancora che indica il confine di una parola (“B”

Ancore u “b” è un ancora che indica il confine di una parola (“B” indica ogni punto non confine di parola) § Il confine di una parola è un punto che ha da una parte un carattere di classe w e dall’altra o un carattere di classe W o l’inizio (fine) riga ¶La macchina in giardino¶ confini di parola RE Definizione Esempi di “matching” /bcaneb/ la stringa ‘cane’ deve avere a destra e a sinistra un confine di parola “il cane è …” /Bcaneb/ la stringa ‘cane’ deve avere a destra (ma non a sinistra) un confine di parola “il canestro” “le americane sono” “il cane è …” “il canestro” “le americane sono” 24

Precedenza u I moltiplicatori, le parentesi, l’alternativa, le ancore sono operatori § permettono di

Precedenza u I moltiplicatori, le parentesi, l’alternativa, le ancore sono operatori § permettono di costruire RE complesse a partire da altre RE u Esistono delle regole di precedenza tra gli operatori § /a|b+/ Parentesi Moltiplicatori Sequenze e ancore Alternativa () ? * + {m, n}, ecc. ata ^ $ b | u Le parentesi ( ) permettono di alterare l’ordine di precedenza /a|b+/ vs. /(a|b)+/ 25

DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Rappresentare i dati

DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Rappresentare i dati linguistici

La codifica digitale del testo Rappresentazione del testo su supporto digitale in un formato

La codifica digitale del testo Rappresentazione del testo su supporto digitale in un formato “leggibile” da un computer Machine Readable Form (MRF) u I computer memorizzano ed elaborano dati sotto forma di sequenze di due soli simboli 0 e 1 (cifre binarie) u Ogni tipo di informazione deve essere codificata in cifre binarie § codificare informazione = associare a ciascuna unità di informazione un codice (sequenza di cifre binarie) che la identifica in maniera univoca u I testi per essere elaborati o trasmessi da un programma devono avere una rappresentazione (codifica) binaria 27

La codifica digitale del testo Il testo e la sua organizzazione intestazione capitolo testo

La codifica digitale del testo Il testo e la sua organizzazione intestazione capitolo testo 28

La codifica digitale del testo Il testo e la sua struttura linguistica sintagma nominale

La codifica digitale del testo Il testo e la sua struttura linguistica sintagma nominale V andare pass. rem. 3 sing. frase relativa articolo indefinito femminile singolare stanza come luogo tutti = soggetto 29

La codifica digitale del testo Il testo come sequenza di caratteri Ciascun carattere alfanumerico,

La codifica digitale del testo Il testo come sequenza di caratteri Ciascun carattere alfanumerico, di punteggiatura o di controllo che compone il testo deve essere rappresentato nei termini di un codice binario Le avventure di Pinocchio Capitolo I Come andò che Maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino. C'era una volta. . . - Un re! - diranno subito i miei piccoli lettori. - No, ragazzi, avete sbagliato. C'era una volta un pezzo di legno. Non era un legno di lusso, ma un semplice pezzo da catasta, di quelli che d'inverno si mettono nelle stufe e nei caminetti per accendere il fuoco e per riscaldare le stanze. Non so come andasse, ma il fatto gli è che un bel giorno questo pezzo di legno capitò nella bottega di un vecchio falegname, il quale aveva nome mastr'Antonio, se non che tutti lo chiamavano maestro Ciliegia, per via della punta del suo naso, che era sempre lustra e paonazza, come una ciliegia matura. 30

La codifica digitale del testo Il testo come sequenza di caratteri u “Surrogato” parziale

La codifica digitale del testo Il testo come sequenza di caratteri u “Surrogato” parziale del testo originario § completa equivalenza solo dal punto di vista dei caratteri che lo compongono § perdita di informazione èl’informazione implicitamente veicolata dalla formattazione del testo relativa a: – le coordinate meta-testuali > il nome dell’autore, il titolo, ecc. – la struttura e organizzazione testuale > la suddivisione logica in sezioni, capitoli, paragrafi, ecc. § nessun guadagno di informazione èl’informazione sulla struttura linguistica rimane implicita e nascosta (come nel testo originale) 31

La codifica digitale del testo u Due livelli di codifica del testo digitale §

La codifica digitale del testo u Due livelli di codifica del testo digitale § codifica di basso livello (codifica di livello 0) è riguarda la rappresentazione binaria della sequenza ordinata dei caratteri § codifica di alto livello è arricchisce il testo codificato al livello zero con informazione relativa a dimensioni strutturali – organizzazione del testo in strutture macrotestuali – articolazione del testo in strutture linguistiche La codifica di alto livello permette di rendere esplicita qualsiasi interpretazione, anche di tipo linguistico, si voglia associareal testo 32

Codifica di alto livello Interpretazione e codifica u Interpretazione del testo § § informazioni

Codifica di alto livello Interpretazione e codifica u Interpretazione del testo § § informazioni che caratterizzano la struttura, contenuto, presentazione, natura linguistica, ecc. di un testo e del suo contenuto informativo metadati è “informazione sull’informazione” § esistono vari livelli e gradi di interpretazione è tipografica, extratestuale, linguistica, ecc. u Codifica di alto livello § § processo attraverso cui viene resa esplicita un’interpretazione del testo la codifica permette di rendere machine readable informazioni sul testo e tratti del testo che altrimenti non sarebbero elaborabili dal computer 33

Perché codificare? I motivi della codifica di alto livello u Un testo come flusso

Perché codificare? I motivi della codifica di alto livello u Un testo come flusso di caratteri e parole è una fonte di dati linguistici u Il testo è un’entità altamente strutturata, nella quale i dati linguistici sono correlati secondo piani di organizzazione multipli § struttura del testo è l’ articolazione in sezioni, capitoli, titoli, ecc. § struttura del contesto è l’autore, la data di produzione, la finalità del testo, ecc. § struttura linguistica (implicita nel testo!!) è informazioni morfologiche, sintattiche, semantiche 34

Perché codificare? La gerarchia dell’informazione I dati non hanno un significato intrinseco a meno

Perché codificare? La gerarchia dell’informazione I dati non hanno un significato intrinseco a meno di non inserirli in uno schema o struttura che li organizza e li trasforma in informazione Conoscenza La gerarchia dell’informazione Informazione Dati = contenuto grezzo dell’informazione Informazione = dati + interpretazione (struttura) Conoscenza = informazione + teoria 35

La gerarchia dell’informazione benzina, 4 cil. in linea 1. 997 cc 130 k. W

La gerarchia dell’informazione benzina, 4 cil. in linea 1. 997 cc 130 k. W (180 CV) 02 Nm (20, 6 kgm) manuale a 5 rapporti anteriore 205/50 R 17 4, 35/1, 76/1, 42 m Motori: benzina, 4 cil. in linea Cilindrata: 1. 997 cc Potenza max: 130 k. W (180 CV) Coppia max: 02 Nm (20, 6 kgm) Cambio: manuale a 5 rapporti Trazione: anteriore Pneumatici: 205/50 R 17 Dimensioni: 4, 35/1, 76/1, 42 m dati di un auto informazione su un auto conoscenza sulle auto (struttura, funzionamento, tipologie, ecc. ) 36

Perché codificare? La gerarchia dell’informazione linguistica modelli della lingua conoscenza linguistica informazione linguistica dati

Perché codificare? La gerarchia dell’informazione linguistica modelli della lingua conoscenza linguistica informazione linguistica dati linguistici la conoscenza della lingua l’organizzazione strutturale e linguistica di un testo le parole di un testo La codifica di alto livello permette di rendere espliciti e accessibili al computer i livelli di organizzazione strutturale di un testo e lo trasforma in una fonte di informazione linguistica 37

Cosa codificare? I contenuti della codifica di alto livello u Individuare il livello di

Cosa codificare? I contenuti della codifica di alto livello u Individuare il livello di informazione da codificare § § strutturale, linguistica, ecc. la codifica esplicita di informazione linguistica viene detta annotazione del testo è morfologica, semantica, sintattica, ecc. u Definire il repertorio dei tratti giudicati rilevanti per la codifica § un esempio: la codifica morfo-sintattica è oggetto: codificare esplicitamente la categoria grammaticale e le proprietà morfologiche delle parole di un testo è da definire: – quali attributi codificare (cat. grammaticale, persona, genere, numero, caso, ecc. ) – quali valori possono avere i diversi attributi (numero = SING, PLUR; caso = NOM, GEN, ecc. ) 38

Come codificare? I formati digitali del testo u Formato solo testo (plain text o

Come codificare? I formati digitali del testo u Formato solo testo (plain text o txt) è un file solo testo è costituito da una sequenza di bytes dove ciascun byte rappresenta un carattere secondo un particolare codice è gli editori di testo sono programmi in grado di creare e leggere files di tipo solo testo – Emacs, Blocco Note, Word Pad, ecc. > § quando un editore di testo legge un file cerca di associare ogni sequenza di bits a un carattere secondo un particolare codice Vantaggi è formato “aperto”, indipendente dal sistema operativo e dal programma che lo ha creato è massima portabilità e interscambiabilità dei testi § Svantaggi è non può rappresentare aspetti relativi alla codifica di alto livello – minima espressività 39

Come codificare? I formati digitali del testo u Formati proprietari (doc, pdf, ecc. )

Come codificare? I formati digitali del testo u Formati proprietari (doc, pdf, ecc. ) è possono essere creati, letti e interpretati solo da uno specifico programma (es. Word, Adobe) è oltre a sequenze di bits codificano caratteri, il file contiene sequenze binarie che corrispondono a istruzioni di formattazione, codificate secondo le convenzioni di un certo programma § Vantaggi è massima capacità espressiva e fruibilità per l’utente umano – rappresenta aspetti relativi alla codifica di alto livello > § ma solo per quanto riguarda la struttura testuale!! Svantaggi è formato “chiuso”, con minima portabilità e interscambiabilità è codifica non per categorie testuali “astratte”, ma per modalità di visualizzazione è le informazioni linguistiche rimangono comunque implicite nel testo 40

Come codificare? I linguaggi di marcatura u Codifica di alto livello con linguaggi di

Come codificare? I linguaggi di marcatura u Codifica di alto livello con linguaggi di mark-up (linguaggi di marcatura) come XML § § dal punto di vista del formato digitale un testo codificato in XML è in formato solo testo l’informazione strutturale è rappresentata attraverso l’aggiunta al testo di etichette (o tag) di marcatura è sequenze di caratteri visibili secondo una convenzione standard, intercalati nel testo seguendo precise regole di combinazione è “marcano” blocchi di testo a cui viene assegnata una determinata interpretazione § Vantaggi è portabilità e interscambiabilità dei testi codificati è massimo grado di espressività – è possibile esprimere tuttti gli aspetti della codifica di alto livello, compresa l’informazione linguistica 41

Come codificare? I linguaggi di marcatura mark-up per la codifica di informazione strutturale <libro>

Come codificare? I linguaggi di marcatura mark-up per la codifica di informazione strutturale <libro> <titolo>Le avventure di Pinocchio <sottotitolo>Storia di un burattino</sottotitolo> </titolo> <autore>Carlo Collodi</autore> <parte p_id=” 1”> <titolo>Parte prima</titolo> <capitolo c_id=”I”> <titolo> Come andò che maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino. </titolo> <capoverso num=”p 1 c 1 c 1”>C'era una volta. . . </capoverso> <capoverso num=”p 1 c 1 c 2”>- Un re! - diranno subito i miei piccoli lettori. </capoverso> <capoverso num=”p 1 c 1 c 3”>No, ragazzi, avete sbagliato. C'era una volta un pezzo di legno. </capoverso> <capoverso num=”p 1 c 1 c 4”>Non era un legno di lusso, ma un semplice pezzo da catasta, di quelli che d'inverno si mettono nelle stufe e nei caminetti per accendere il fuoco e per riscaldare le stanze. </capoverso> </capitolo></parte> </libro> 42

Come codificare? I linguaggi di marcatura mark-up per la codifica di informazione strutturale •

Come codificare? I linguaggi di marcatura mark-up per la codifica di informazione strutturale • + mark-up per la codifica di informazione linguistica <libro> … <parte> <capitolo c_id=”I”> <titolo>Come <parola cat=“V” tempo=“pass. Rem”>andò</parola> che <parola cat=“N” genere=“m” num=“s”>maestro</parola> Ciliegia, falegname, trovò <sintagma tipo=”nominale”><parola cat=“art. Ind” genere=m” num=“s”>un</parola> pezzo di legno</sintagma>, che piangeva e rideva come un bambino. </titolo> </capitolo></parte> </libro> 43

Come codificare? XML u XML (e. Xtensible Mark-up Language) § (meta)linguaggio di marcatura è

Come codificare? XML u XML (e. Xtensible Mark-up Language) § (meta)linguaggio di marcatura è attraverso le DTD (Document Type Definition) consente di definire linguaggi di marcatura per la codifica del testo e di altri tipi di dato è con i linguaggi di marcatura, in linea di principio, non vi è limite alla tipologia di informazioni codificabili: infatti la tipologia di etichette di marcatura può essere definita in funzione delle finalità della codifica § § standard affermato e diffuso facilmente elaborabile dal computer è chiara distinzione tra testo e markup è ampia disponibilità di software per il trattamento di file XML – parser, estrattori di tag, editor specializzati, ecc. è facilmente interfacciabile con database per l’importazione dei dati codificati § XML è la base di un’intera tecnologia di linguaggi e applicazioni per il trattamento del mark-up 44

Linguaggi di marcatura u Un linguaggio di marcatura è un insieme di convenzioni per

Linguaggi di marcatura u Un linguaggio di marcatura è un insieme di convenzioni per la marcatura di testi u Marcatura di documenti § la marcatura (o etichettatura) permette di rendere esplicita un'interpretazione di un testo. § storicamente è annotazioni in un testo che descrivono al tipografo come stampare o comporre una parte del testo § oggi è qualsiasi tipo di codice inserito in un testo in forma elettronica 45

HTML - Hyper. Text Markup Language u È un linguaggio di marcatura (non un

HTML - Hyper. Text Markup Language u È un linguaggio di marcatura (non un metalinguaggio!) § § definito in termini di SGML Insieme di etichette prefissato u La marcatura non denota il “significato” ovvero la struttura “logica” di un documento § § che insieme di informazioni rappresenta un documento? come faccio a selezionare le informazioni rilevanti? u Studiato espressamente per il Web § § § collegamenti ipertestuali immagini marcatura finalizzata alla presentazione del documento come pagina Web è diversi tipi di titoli, tabelle, ecc. § non c’è un legame tra marcatura e tipi di informazione nel documento 46

Una pagina HTML <html> <head> <title>Le avventure di Pinocchio</title> </head> <body> <h 2>Carlo Collodi</h

Una pagina HTML <html> <head> <title>Le avventure di Pinocchio</title> </head> <body> <h 2>Carlo Collodi</h 2> <h 1>Le avventure di Pinocchio</h 1> <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> 47

XML e. Xtensible Mark-up Language u La marcatura è dettata dalla struttura logica del

XML e. Xtensible Mark-up Language u La marcatura è dettata dalla struttura logica del documento u L’insieme di etichette può cambiare in base l'applicazione u Viene usato il concetto di tipo di documento § § specificato attraverso una Document Type Definition o DTD (è parte dello standard XML) permette di imporre al documento una certa struttura (ovvero come si compongono le sue parti) u Naturale successore di HTML come linguaggio per il Web § § più espressivo e flessibile per la visualizzazione è necessario una descrizione a parte con un altro linguaggio (XSL) è ma per lo stesso documento XML è possibile definire più visualizzazione 48

Esempio di Documento XML <libro> <intestazione> Le avventure di Pinocchio </intestazione> <autore>Carlo Collodi</autore> <titolo>Le

Esempio di Documento XML <libro> <intestazione> Le avventure di Pinocchio </intestazione> <autore>Carlo Collodi</autore> <titolo>Le avventure di Pinocchio</titolo> <capitolo> <intestazione. Capitolo>Capitolo I</intestazione. Capitolo> <titolo>Come andò che Maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino. </titolo> </capitolo> </libro> 49

Le origini di XML u 1969 § Charles Goldfarb (IBM) dirige lo sviluppo di

Le origini di XML u 1969 § Charles Goldfarb (IBM) dirige lo sviluppo di GML u 1974 § Charles Goldfarb inventa SGML, il padre dei linguaggi di marcatura u 1986 § SGML diventa uno standard ISO (ISO 8879 ``Information Processing - Text and Office Systems - Standard Generalized Markup Language'') u 1989 § Tim-Berners Lee (CERN di Ginevra) inventa HTML u 1995 § Fondazione del World Wide Web Consortium (W 3 C) 50

Le origini di XML u 1996 § Inizio dello sviluppo di XML presso il

Le origini di XML u 1996 § Inizio dello sviluppo di XML presso il W 3 C u 1998 § XML 1. 0 diventa una raccomandazione W 3 C (uno standard di fatto) u 1996 -oggi § Sviluppo di standard associati ad XML (coordinato da W 3 C) u 2002 § XML 1. 1 diventa una raccomandazione candidata W 3 C (Il consorzio internazionale per la standardizzazione di linguaggi e strumenti per il WEB) 51

I tratti caratterizzanti di XML u Marcatura dichiarativa § usa etichette di marcatura che

I tratti caratterizzanti di XML u Marcatura dichiarativa § usa etichette di marcatura che indicano la funzione astratta assolta dalla porzione di testo a cui si riferiscono u Marcatura strutturata § permette di raggruppare porzioni del testo e di definirle come unità strutturali complesse, che riflettono l’organizzazione interna del testo u Marcatura gerarchica § le strutture identificate nel testo possono combinarsi in maniera gerarchica è un’unità strutturale del testo può a sua volta contenere altre strutture incassate; quello che otteniamo è una gerarchia di strutture definibili a livelli incrementali di dettaglio 52

I componenti della marcatura XML gli elementi Elemento delimitatore di apertura Contenuto delimitatore di

I componenti della marcatura XML gli elementi Elemento delimitatore di apertura Contenuto delimitatore di chiusura u Gli elementi rappresentano i blocchi costitutivi in cui si articola un testo u ogni elemento viene marcato in modo esplicito nel testo inserendo un delimitatore di apertura all’inizio dell’elemento e uno di chiusura alla fine § Es: <autore>Carlo Collodi</autore> 53

I componenti della marcatura XML i nomi degli elementi u ogni tipo di elemento

I componenti della marcatura XML i nomi degli elementi u ogni tipo di elemento è identificato da un nome (etichetta o tag): il nome associato a ogni tipo di elemento è chiamato identificatore generico (generic identifier o GI) u XML è case-sensitive § l’identificatore generico deve essere sempre specificato con lo stesso tipo di carattere, maiuscolo o minuscolo: è <tag>…</tag>, <TAG>…</TAG>, <Tag>…</Tag> è *<tag>…</TAG> u norme per la sintassi del nome degli elementi § § possono contenere solo lettere, cifre, . , -, _ possono iniziare solo con una lettera o con _ è nomi consentiti: <autore. libro>, <_autore>, <AUTORE-LIBRO>, <autore_1> è nomi proibiti: <1 autore>, <autore libro>, <autore; @? libro> § non esiste un limite di lunghezza per il nome di un elemento 54

I componenti della marcatura XML relazioni tra elementi u due elementi XML possono essere

I componenti della marcatura XML relazioni tra elementi u due elementi XML possono essere annidati l’uno nell’altro LIBRO CAPITOLO SEZIONE SEZIONE u l’elemento più esterno è detto elemento genitore, quello interno elemento figlio u questo meccanismo di annidamento degli elementi permette la rappresentazione di strutture gerarchiche di profondità variabile 55

I componenti della marcatura XML relazioni tra elementi LIBRO CAPITOLO SEZIONE u struttura XML

I componenti della marcatura XML relazioni tra elementi LIBRO CAPITOLO SEZIONE u struttura XML mal formata in quanto esiste un elemento “a cavallo” di due elementi (annidamento improprio) u in XML non è consentita la sovrapposizione tra elementi CAPITOLO SEZIONE u un elemento figlio deve essere completamente incluso nell’elemento padre 56

I componenti della marcatura XML l’elemento radice CAPITOLO SEZIONE u ogni documento XML ben

I componenti della marcatura XML l’elemento radice CAPITOLO SEZIONE u ogni documento XML ben formato deve contenere un elemento che contiene tutti gli altri elementi (elemento radice) SEZIONE CAPITOLO SEZIONE u la figura rappresenta una struttura mal formata in quanto in XML non è possibile avere più elementi a livello di radice u ogni documento XML deve contenere uno solo elemento radice u l’elemento radice è “orfano” e senza “fratelli” 57

I componenti della marcatura XML il documento XML come albero LIBRO CAPITOLO sezione stringa

I componenti della marcatura XML il documento XML come albero LIBRO CAPITOLO sezione stringa di caratteri SEZIONE capitolo SEZIONE sezione LIBRO CAPITOLO SEZIONE stringa di caratteri sezione capitolo sezione SEZIONE 58

I componenti della marcatura XML contenuto di un elemento Il contenuto di un elemento

I componenti della marcatura XML contenuto di un elemento Il contenuto di un elemento può essere costituito da: u testo libero non contenente altri elementi (dati di tipo carattere) <titolo>Le avventure di Pinocchio</titolo> u altri elementi (detti figli) <capitolo> <titolo>Capitolo primo</titolo> <capoverso>C'era una volta. . . </capoverso> <capoverso>- Un re! - diranno subito i miei piccoli lettori. </capoverso> </capitolo> 59

I componenti della marcatura XML contenuto di un elemento u contenuto misto (elementi+ testo)

I componenti della marcatura XML contenuto di un elemento u contenuto misto (elementi+ testo) <titolo>Le avventure di Pinocchio <sottotitolo>Storia di un burattino</sottotitolo> </titolo> u Il contenuto di un elemento può essere “vuoto”. Ci sono due modi di denotare un elemento vuoto: § § coppia di delimitatori di apertura e chiusura è <salto_pagina></salto_pagina> etichetta di elemento vuoto è <salto_pagina/> 60

I componenti della marcatura XML gli attributi u Gli elementi XML possono essere dotati

I componenti della marcatura XML gli attributi u Gli elementi XML possono essere dotati di attributi § gli attributi rappresentano informazioni aggiuntive che specificano alcune caratteristiche dell’elemento (ma che non fanno parte del contenuto del testo) nome_attributo= ”valore” § è <capoverso num=” 1”>C'era una volta. . . </capoverso> nome_attributo è stesse restrizioni definite per i nomi degli elementi § i valori degli attributi devono sempre essere racchiusi tra virgolette (singole o doppie) n nel caso in cui un valore contenga al suo interno delle virgolette, allora diventa obbligatorio differenziarle da quelle più esterne un attributo può ricorrere al massimo una volta all’interno di un elemento Attenzione!!! Gli attributi possono comparire solo nei tag di apertura degli elementi 61

I componenti della marcatura XML elementi vs attributi Elemento = “contenitore” e “classificatore” del

I componenti della marcatura XML elementi vs attributi Elemento = “contenitore” e “classificatore” del dato testuale Attributo = “glossa” associata al dato testuale Codifiche spesso interscambiabili <parola pos=”nome” num=”sing” gen=”masc” lemma=”legno”> <orto>legno</orto> </parola> <orto>legno</orto> <pos>nome</pos> <accordo> <num>sing</num> <gen>masc</gen> </accordo> </parola> 62

I componenti della marcatura XML elementi vs attributi Non è sempre facile stabilire quando

I componenti della marcatura XML elementi vs attributi Non è sempre facile stabilire quando preferire una codifica in termini di elementi o di attributi u gli elementi possono ricorrere più volte mentre un attributo può ricorrere al massimo una volta all’interno di un elemento u per gli elementi è possibile specificare l’ordine in cui devono apparire nel testo, mentre ciò non è possibile per gli attributi u 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 63

I componenti della marcatura XML commenti u Ogni documento XML può contenere una o

I componenti della marcatura XML commenti u Ogni documento XML può contenere una o più “note a margine” dette anche, in gergo tecnico, commenti § § § questo tipo di note non riguardano direttamente i dati da annotare, e come tali sono ignorate da eventuali applicazioni forniscono informazioni preziose riguardo alle intenzioni dell’annotatore, a suoi eventuali dubbi, pro-memoria ecc. Il loro destinatario è tipicamente un lettore umano i commenti possono apparire in qualunque punto all’interno del testo con le seguenti eccezioni: è non possono apparire all’interno di un delimitatore di apertura o di chiusura di un elemento è non possono apparire all’interno di un commento <!– questo è un commento XML --> 64

Document Type Definition - DTD u La DTD definisce la tipologia dei marcatori XML

Document Type Definition - DTD u La DTD definisce la tipologia dei marcatori XML per la codifica del testo e le regole della loro combinazione § definisce la “grammatica” del linguaggio di marcatura associato a una specifica classe o tipo di documenti è la DTD è uno schema di documento § una volta che i marcatori definiti nella DTD sono intercalati nel testo questo diventa un’istanza del tipo di documento (document instance) u La DTD è una lista non ordinata di dichiarazioni § nella dtd vengono dichiarati - ovvero definiti - tutti gli oggetti necessari alla costruzione di un linguaggio di marcatura è elementi è attributi è entità § § non importa in che ordine vengono effettuate le dichiarazioni oggetto deve essere dichiarato una volta sola 65

Dichiarare un elemento u La dichiarazione di un elemento si articola in due parti

Dichiarare un elemento u La dichiarazione di un elemento si articola in due parti § § l’etichetta o tag che lo identifica (identificatore generico o generic identifier) la descrizione del suo contenuto in termini strutturali, denominata modello di contenuto (o content model) <!ELEMENT tag_elemento (modello_di_contenuto)> u Gli elementi si suddividono in § “contenitori” che possono contenere è testo è altri elementi (sotto-elementi) è testo ed elementi (contenuto misto) § vuoti 66

Dichiarare un elemento u Il più semplice modello di contenuto è rappresentato da dati

Dichiarare un elemento u Il più semplice modello di contenuto è rappresentato da dati di tipo carattere u Il modello di contenuto consiste nella parola riservata #PCDATA (Parsed Character data) che specifica che il contenuto dell’elemento in corso di definizione è testo senza marcatori <!ELEMENT tag_elemento (#PCDATA)> u Esempio: <!ELEMENT autore (#PCDATA)> 67

Dichiarare un elemento u Il contenuto di un elemento può essere costituito esclusivamente da

Dichiarare un elemento u Il contenuto di un elemento può essere costituito esclusivamente da sotto-elementi (o elementi figli) per i quali è possibile specificare le modalità di occorrenza u Possono essere stabilite restrizioni sul numero di volte in cui ciascun sotto-elemento può ricorrere all’interno di un elemento padre attraverso indicatori di occorrenza aggiunti come “suffissi” al nome del sotto-elemento Simbolo Descrizione ? occorrenza opzionale + occorrenza obbligatoria e ripetibile * occorrenza opzionale e ripetibile Numero occorrenze 0 o 1 1 0 u Se un sotto-elemento non è seguito da nessuno di questi indicatori, esso deve ricorrere esattamente una volta 68

Dichiarare un elemento u Elemento obbligatorio § deve ricorrere esattamente una volta u Un

Dichiarare un elemento u Elemento obbligatorio § deve ricorrere esattamente una volta u Un libro deve avere un titolo, quindi l’elemento libro deve avere un sotto-elemento titolo u Esempio: <!ELEMENT libro (titolo)> 69

Dichiarare un elemento u Elemento opzionale § ricorre 0 o 1 volta u Un

Dichiarare un elemento u Elemento opzionale § ricorre 0 o 1 volta u Un titolo può avere opzionalmente un sottotitolo, quindi l’elemento titolo può avere un sotto-elemento sottotitolo u Esempio: <!ELEMENT titolo (sottotitolo? )> 70

Dichiarare un elemento u Elemento ripetibile e obbligatorio § che ricorre una o più

Dichiarare un elemento u Elemento ripetibile e obbligatorio § che ricorre una o più volte u Un libro ha degli autori, almeno u Quindi l’elemento libro deve contenere al suo interno una o più occorrenze del sotto-elemento autore u Esempio: <!ELEMENT libro (autore+)> 71

Dichiarare un elemento u Elemento ripetibile e opzionale § che ricorre 0 o più

Dichiarare un elemento u Elemento ripetibile e opzionale § che ricorre 0 o più volte u Ad esempio, un libro può avere dei traduttori oppure no u Quindi l’elemento libro può contenere al suo interno zero o più occorrenze del sotto-elemento traduttore u Esempio: <!ELEMENT libro (traduttore*)> 72

Dichiarare sequenze di sotto-elementi u Nel caso in cui i sotto-elementi di un elemento

Dichiarare sequenze di sotto-elementi u Nel caso in cui i sotto-elementi di un elemento siano più di uno, è possibile specificare la loro co-occorrenza e il loro ordinamento u Un libro è articolato al suo interno in diversi tipi di informazioni: gli autori, il titolo, eventualmente il sottotitolo, eventualmente i traduttori e così via u L’elemento libro contiene al suo interno una sequenza di sottoelementi: la virgola specifica che i sotto-elementi devono ricorrere all’interno dell’elemento nell’ordine specificato autore titolo sottotitolo traduttore u Esempio: <!ELEMENT libro (autore+, titolo, sottotitolo? , traduttore*)> 73

Dichiarare alternative tra sotto-elementi u Un elemento padre può contenere uno a scelta tra

Dichiarare alternative tra sotto-elementi u Un elemento padre può contenere uno a scelta tra più sottoelementi elencati u Un libro può avere un ISBN oppure un codice u L’elemento libro contiene al suo interno una tra le alternative elencate: la barra verticale indica che i sottoelementi rappresentano scelte alternative ISBN u Esempio: codice <!ELEMENT libro (ISBN | codice)> 74

Dichiarazione di un elemento Modelli di contenuto complessi u È possibile definire modelli di

Dichiarazione di un elemento Modelli di contenuto complessi u È possibile definire modelli di contenuto complessi raggruppando scelte alternative e/o sequenze di sotto-elementi attraverso l’uso di parentesi u Ai sotto-elementi complessi così definiti possono essere associati indicatori di occorrenza: ad esempio, la dichiarazione (s 2|s 3)* indica che l’elemento in corso di definizione può contenere un numero indefinito da 0 a n sotto-elementi di tipo s 2 e/o s 3 senza vincoli sull’ordine reciproco di occorrenza. u Esempi: <!ELEMENT tag_elemento (s 1, s 2? , s 3*)> <!ELEMENT tag_elemento (s 1|s 2|s 3)> <!ELEMENT tag_elemento (s 1+, (s 2|s 3)*)> 75

Dichiarazione di un elemento Modelli di contenuto misto u È possibile definire elementi a

Dichiarazione di un elemento Modelli di contenuto misto u È possibile definire elementi a contenuto misto, caratterizzati dalla presenza di sotto-elementi intervallati da dati di tipo carattere § Modello di contenuto particolarmente utile nella codifica di un testo u Un elemento a contenuto misto è dichiarato come segue <!ELEMENT tag_elemento (#PCDATA|s 1|. . . |sn)*> u Nel modello di contenuto misto: § § la parola riservata #PCDATA deve essere obbligatoriamente la prima della lista i vincoli riguardano soltanto la tipologia dei sotto-elementi, e non l’ordinamento reciproco o il numero delle loro occorrenze è ad es. (#PCDATA|s 1|s 2)* specifica che l’elemento definito può contenere qualsiasi numero ( 0) di elementi di tipo s 1 e s 2 in qualsiasi ordine, opzionalmente intervallati da dati di tipo carattere 76

Altri tipi di elementi u Elemento vuoto § Non può contenere niente (né testo

Altri tipi di elementi u Elemento vuoto § Non può contenere niente (né testo né sotto-elementi) u Un elemento a contenuto vuoto è dichiarato come segue § <!ELEMENT tag_elemento EMPTY> esempio: <!ELEMENT salto_pagina EMPTY> u Elemento jolly § § può contenere qualsiasi cosa esempio: <!ELEMENT tutto ANY> 77

Dichiarare elementi un esempio <!ELEMENT libro (autore+, titolo, sottotitolo? , capitolo+)> <!ELEMENT autore (#PCDATA)>

Dichiarare elementi un esempio <!ELEMENT libro (autore+, titolo, sottotitolo? , capitolo+)> <!ELEMENT autore (#PCDATA)> <!ELEMENT titolo (#PCDATA)> <!ELEMENT sottotitolo(#PCDATA)> <!ELEMENT capitolo(#PCDATA|verbo)*> <!ELEMENT verbo(#PCDATA)> <libro> <autore>Carlo Collodi</autore> <titolo>Le avventure di Pinocchio</titolo> <capitolo> C‘<verbo>era</verbo> una volta. . . - Un re! - <verbo>diranno</verbo> subito i miei piccoli lettori. </capitolo> <capitolo>Questo è un altro capitolo</capitolo> </libro> 78

Dichiarazione di attributi u Definisce l’insieme degli attributi pertinenti per la descrizione di un

Dichiarazione di attributi u Definisce l’insieme degli attributi pertinenti per la descrizione di un elemento u Per ciascun attributo § stabilisce vincoli sulla tipologia dei valori che può assumere § fornisce informazioni circa l’obbligatorietà della sua specificazione e, eventualmente, sul suo valore di default <!ATTLIST tag_elemento tag_attributo 1 tipo_valore modificatore … tag_attributon tipo_valore modificatore> 79

Tipi di attributo Tipo di attributo Valori associati CDATA Il valore dell’attributo può contenere

Tipi di attributo Tipo di attributo Valori associati CDATA Il valore dell’attributo può contenere qualsiasi stringa di caratteri (anche spazi) (Character DATA) NMTOKEN, NMTOKENS Questo attributo può contenere una o più (nel caso di NMTOKENS) stringhe contenenti caratteri alfanumerici (numeri e lettere) più i seguenti caratteri: ‘. ’ (punto), ‘-’ (meno), ‘_’ (trattino basso), ‘: ’ (due punti). (valore 1 | valore 2 | … | valoren) È un tipo di attributo che può assumere un valore solo tra un insieme di possibili valori definiti dall’autore della DTD enumerated 80

Tipi di attributo Tipo di attributo Valori associati ID Il valore dell’attributo deve essere

Tipi di attributo Tipo di attributo Valori associati ID Il valore dell’attributo deve essere una sequenza di caratteri che costituisce l’identificatore univoco dell’elemento a cui l’attributo è associato IDREF, IDREFS Il valore dell’attributo è una sequenza di caratteri che costituisce il valore dell’attributo ID di un altro elemento nello stesso documento XML. IDREFS permette invece di specificare una lista di sequenze di caratteri ciascuna delle quali costituisce il valore dell’attributo ID di un altro elemento nello stesso documento XML ENTITY, ENTITIES Il valore dell’attributo deve contenere uno o più (nel caso di ENTITIES) nomi di entità, dichiarate a loro volta all’interno della DTD 81

Modificatori per gli attributi u #REQUIRED § l’ attributo deve essere obbligatoriamente specificato nell’elemento

Modificatori per gli attributi u #REQUIRED § l’ attributo deve essere obbligatoriamente specificato nell’elemento u #IMPLIED § la specificazione dell’attributo è opzionale u #FIXED § permette di fissare nella dichiarazione dell’attributo il valore associato a quell’attributo che rimane costante e immutabile è es. #FIXED “valore_fisso” u Literal § ovvero un valore predefinito – o valore di default è l’attributo è opzionale; se non viene reso esplicito, all’elemento viene automaticamente assegnato in fase di validazione l’attributo ocn il valore predefinito § es. “valore_default” 82

Dichiarazioni di attributo: esempi <!ATTLIST capitolo c_id ID #REQUIRED> attributo obbligatorio <!ATTLIST telefono tipo

Dichiarazioni di attributo: esempi <!ATTLIST capitolo c_id ID #REQUIRED> attributo obbligatorio <!ATTLIST telefono tipo (casa|ufficio|cell) “casa”> <!ATTLIST parola lemma CDATA #REQUIRED pos (n|v|agg|avv|art|prep) #REQUIRED num (sing|plur) #IMPLIED gen (fem|masc) #IMPLIED id_parola ID #REQUIRED ref_forma IDREF #IMPLIED> attributo opzionale con valore predefinito attributi opzionali 83

Uso di identificatori e riferimenti <!ELEMENT biblioteca (autori, libri)> <!ELEMENT autori (autore*)> <!ELEMENT libri

Uso di identificatori e riferimenti <!ELEMENT biblioteca (autori, libri)> <!ELEMENT autori (autore*)> <!ELEMENT libri (libro*)> <!ELEMENT autore (nome, cognome, data. Nascita)> <!ELEMENT nome (#PCDATA)> <!ELEMENT cognome (#PCDATA)> <!ELEMENT data. Nascita (#PCDATA)> <!ATTLIST autore ident ID #REQUIRED> <!ELEMENT libro (titolo, data)> <!ELEMENT titolo (#PCDATA)> <!ELEMENT data (#PCDATA)> <!ATTLIST libro scritto. Da IDREFS #REQUIRED> 84

Uso di identificatori e riferimenti <biblioteca> <autori> <autore ident=“ 001”> … </autore> <autore ident=“

Uso di identificatori e riferimenti <biblioteca> <autori> <autore ident=“ 001”> … </autore> <autore ident=“ 002”> … </autore> <autore ident=“ 003”> … </autore> … </autori> <libro scritto. Da=“ 001”> … </libro> <libro scritto. Da=“ 001 002”> … </libro> <libro scritto. Da=“ 003 005 009”> … </libro> … </libri> </biblioteca> 85

Struttura di un documento XML u Un documento XML si articola in due parti:

Struttura di un documento XML u Un documento XML si articola in due parti: § prologo è contiene le informazioni che permettono di interpretare il documento come un documento XML, ricollegandolo alla corrispondente DTD (ove esista) § istanza del documento è racchiude il dato testuale vero e proprio con la relativa marcatura u ATTENZIONE! § il prologo è facoltativo ma è sempre consigliabile inserirlo nei propri documenti per favorire completezza di informazione e possibilità di validazione automatica 86

Il prologo del documento XML u Si articola a sua volta in due parti

Il prologo del documento XML u Si articola a sua volta in due parti § dichiarazione XML (XML Declaration) è fornisce informazioni sulla versione di XML utilizzata per scrivere il documento – attributo version (il valore attuale è “ 1. 0”) è specifica il set di caratteri utilizzato per la codifica – attributo encoding (il valore è il nome di un seto di caratteri, es. “iso-8859 -1”) – se l’attributo è omesso, il documento è interpretatao coms codificato in UTF-8 è indica se al documento è associata o meno una DTD esterna – attributo standalone (vali valori sono “yes” o “no”); se omesso è interpretato come “no” <? XML version="1. 0" encoding=“iso-8859 -1" standalone="no"? > § dichiarazione del tipo di documento (Doc. Type Declaration) è specifica qual è l’elemento radice dell’istanza del documento che segue è associa al documento XML la relativa DTD che può essere interna o esterna al documento è è opzionale; deve essere aggiunta solo quando bisogna validare il documento XML rispetto a una DTD <!DOCTYPE elemento_radice DTD> 87

Dichiarazione del tipo di documento <!DOCTYPE elemento_radice DTD> dove DTD può corrispondere a u

Dichiarazione del tipo di documento <!DOCTYPE elemento_radice DTD> dove DTD può corrispondere a u l’intera DTD riportata tra parentesi quadre [ … ] (DTD interna al documento) u Esempio: <!DOCTYPE libro [ <!ELEMENT libro (titolo, autore+, parte+)> <!ELEMENT titolo (#PCDATA | sottotitolo)*> … ] > 88

Dichiarazione del tipo di documento <!DOCTYPE elemento_radice DTD> dove DTD può corrispondere a u

Dichiarazione del tipo di documento <!DOCTYPE elemento_radice DTD> dove DTD può corrispondere a u un riferimento al file in cui la DTD è contenuta (DTD esterna) § la sintassi del riferimento può essere è SYSTEM “URI_DTD” – URI_DTD è un nome di file oppure di un indirizzo Web – le virgolette sono obbligatorie è PUBLIC Formal_Public_Identifier “URI_DTD” nel caso il riferimento riguardi una DTD standard <!DOCTYPE libro SYSTEM “pinocchio. dtd”> <!DOCTYPE libro SYSTEM “http: //www. unipi. it/pinocchio. dtd>” 89

Dichiarazione del tipo di documento u DTD mista § suddivisa in due porzioni, una

Dichiarazione del tipo di documento u DTD mista § suddivisa in due porzioni, una interna e una esterna al documento (in questo caso si distingue tra internal subset e external subset) <!DOCTYPE libro SYSTEM “libro. dtd” [ <!ELEMENT traduttore (nome, cognome)> <!ELEMENT nome (#PCDATA)> <!ELEMENT cognome (#PCDATA)> ] > § § il sottoinsieme interno viene elaborato per primo e gli viene data la precedenza su qualsiasi sottoinsieme esterno funzionalità utile quando si ricorra a una DTD esterna, di cui si desidera modificare alcune parti per un’applicazione specifica 90

Livelli di correttezza u Due livelli di correttezza di un documento XML § Documento

Livelli di correttezza u Due livelli di correttezza di un documento XML § Documento ben formato è obbedisce a tutte le regole della sintassi XML – esiste un elemento radice – a ogni tag di apertura corrisponde uno di chiusura (senza accavallamenti) – i valori degli attributi sono racchiusi tra virgolette – le entità sono tutte dichiarate – i caratteri speciali sono stati sostituiti da riferimenti a entità § Documento valido è è ben formato è rispetta la struttura prevista dalla DTD – il documento diventa un’istanza valida della classe di documenti definiti dalla DTD 91

Parser XML u Parser non validanti § controllano solo se il documento XML è

Parser XML u Parser non validanti § controllano solo se il documento XML è ben formato è costruiscono un “albero” dei tag del documento § Es. Internet Explorer u Parser validanti § controllano se il documento XML è ben formato è costruiscono un “albero” dei tag del documento § § verificano se il documento è conforme alla DTD Es. TEI Emacs 92

Un esempio di DTD <!-- dtd per un libro --> <!ELEMENT libro (titolo, autore+,

Un esempio di DTD <!-- dtd per un libro --> <!ELEMENT libro (titolo, autore+, parte+)> <!ELEMENT titolo (#PCDATA | sottotitolo)*> <!ELEMENT sottotitolo (#PCDATA)> <!ELEMENT autore (#PCDATA)> <!ELEMENT parte (titolo, capitolo+)> <!ELEMENT capitolo (titolo, capoverso+)> <!ELEMENT capoverso (#PCDATA)> <!ATTLIST parte p_id ID #REQUIRED> Le dichiarazioni di <!ATTLIST capitolo elementi, attributi ed entità c_id ID #REQUIRED> possono essere anche <!ATTLIST capoverso mescolate num ID #REQUIRED> <!ENTITY ograve "&#x 00 F 2; "> <!ENTITY egrave "&#x 00 E 8; "> 93

Un esempio di documento XML valido <? xml version=” 1. 0” encoding=”utf-8”? > Se

Un esempio di documento XML valido <? xml version=” 1. 0” encoding=”utf-8”? > Se mettiamo solo il nome del file della DTD, questa <!DOCTYPE libro SYSTEM “libro. dtd”> deve stare nella stessa <!-- qui comincia l’istanza del --> cartella del documento XML <libro> <titolo>Le avventure di Pinocchio <sottotitolo>Storia di un burattino</sottotitolo> </titolo> <autore>Carlo Collodi</autore> <parte p_id=”cap 1”> <titolo>Parte prima</titolo> <capitolo c_id=”I”> <titolo> Come andò che maestro Ciliegia, falegname, trovò un pezzo di legno, che piangeva e rideva come un bambino. </titolo> <capoverso num=”p 1 c 1 c 1”>C'era una volta. . . </capoverso> <!-- altri capoversi del capitolo qui --> </capitolo> <!-- altri capitoli della parte qui --> </parte> <!-- altre parti qui --> </libro> 94

DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Annotare i dati

DOTTORATO IN LINGUISTICA GENERALE, STORICA, APPLICATA, COMPUTAZIONALE E DELLE LINGUE MODERNE Annotare i dati linguistici

Cosa annotare? L’annotazione linguistica di un testo consiste nella codifica di informazione linguistica associata

Cosa annotare? L’annotazione linguistica di un testo consiste nella codifica di informazione linguistica associata al dato testuale u Schema di annotazione § un repertorio di categorie per la codifica, corrispondenti alla tipologia dei tratti da rappresentare nel testo è generalmente espresso nella forma di attributi e dei loro possibili valori § la definizione delle regole di compatibilità tra categorie è es. l’aggettivo non possiede un attributo di persona, o un nome quello di tempo § la specifica accurata dei criteri di applicazione al testo delle categorie selezionate 96

Schemi di annotazione u Elementi critici § § il grado di copertura dello schema;

Schemi di annotazione u Elementi critici § § il grado di copertura dello schema; la riproducibilità dell’annotazione l’interazione con altri livelli di descrizione il grado di espressività dell’annotazione u ATTENZIONE!! § § il ruolo del linguista nell’annotazione testuale NON si ferma solo alla definizione del contenuto dello schema di annotazione le modalità della sua applicazione sul testo NON rappresentano un aspetto contingente e puramente secondario rispetto alla fase di specifica linguistica 97

Livelli di annotazione u Annotazione morfosintattica § categorie grammaticali, lemma, glosse morfemiche, ecc. u

Livelli di annotazione u Annotazione morfosintattica § categorie grammaticali, lemma, glosse morfemiche, ecc. u Annotazione sintattica § costituenti, relazioni grammaticali, ecc. u Annotazione semantica § sensi o categorie semantiche (es. ANIMATO), ruoli semantici (es. AGENTE), ecc. u Annotazione pragmatica § atti illocutori, relazioni anaforiche u ecc. 98

Anatomia di uno schema di annotazione u I “gradi di libertà” di uno schema

Anatomia di uno schema di annotazione u I “gradi di libertà” di uno schema di annotazione § § § gli scopi della ricerca per la quale l’annotazione è progettata la teoria linguistica di riferimento la modalità (ad es. manuale, semi-automatica, ecc. ) con cui l’annotazione viene effettuata la “granularità” della descrizione linguistica le caratteristiche stesse della lingua dei testi da annotare esistono molteplici schemi di annotazione per ciascuno livello linguistico 99

Anatomia di uno schema di annotazione u Uno schema di annotazione è la risultante

Anatomia di uno schema di annotazione u Uno schema di annotazione è la risultante della combinazione di un ristretto insieme di tipi di informazione linguistica di base, trasversali ai livelli di analisi linguistica § § § informazione categoriale - l’assegnazione di categorie alle unità e relazioni linguistiche identificate in un testo (ad es. verbo, sintagma nominale, soggetto, animato, ecc. ); informazione strutturale - l’identificazione nel testo di strutture che possono o essere interne a un particolare token (ad es. la sua articolazione in morfermi) o raggruppare più token (ad es. i costituenti dell’annotazione sintattica); informazione relazionale - la definizione di relazioni tra le unità linguistiche identificate, (ad es. soggetto e oggetto diretto, le relazioni anaforiche, i ruoli semanticiecc. ) Ogni tipo di informazione pone specifici problemi di rappresentazione in XML 100

Annotazione e informazione categoriale u Etichette che associano categorie o tratti linguistici alle unità

Annotazione e informazione categoriale u Etichette che associano categorie o tratti linguistici alle unità identificate nel testo (o alle loro relazioni) § Maestro_Ciliegia/np_ms , /pun falegname/nc_ms , /pun trovò/v_ s 3 ir un/arti_ms pezzo/nc_ms di/prep legno/nc_ms u Rappresentazioni XML § l’informazione categoriale come attributi XML <pm cat=”nc_ms”> <orto>legno</orto> </pm> <pm pos=”nome” sottotipo=”nome_comune” num=”sing” gen=”masc” lemma=”legno”> <orto>legno</orto> </pm> 101

Annotazione e informazione categoriale u Rappresentazioni XML § l’informazione categoriale come elementi XML <pm>

Annotazione e informazione categoriale u Rappresentazioni XML § l’informazione categoriale come elementi XML <pm> <orto>legno</orto> <pos>nome</pos> <accordo> <num>sing</num> <gen>masc</gen> </accordo> </pm> 102

Annotazione e informazione strutturale u Identificazione delle unità strutturali del testo (sia internamente al

Annotazione e informazione strutturale u Identificazione delle unità strutturali del testo (sia internamente al singolo token sia tra token diversi) e la loro organizzazione in strutture gerarchiche § [ [[Maestro Ciliegia] [falegname]] [[trovò] [[un pezzo] [di [legno]]]]] u Generalmente l’annotazione strutturale si accompagana anche all’indicazione di informazione categoriale § es. tipi di costituenti 103

Annotazione e informazione strutturale Rappresentazioni XML u Strutture sintattiche u Strutture morfologiche <struct><cat>F</cat> <struct><cat>SN</cat>

Annotazione e informazione strutturale Rappresentazioni XML u Strutture sintattiche u Strutture morfologiche <struct><cat>F</cat> <struct><cat>SN</cat> <orto>mangiarlo</orto> <struct><cat>SN</cat> <orto>Maestro</orto> <struct lemma=”MANGIARE”/> <orto>Ciliegia</orto> <struct lemma=”LO”/> </struct> <struct><cat>SN</cat> <orto>falegname</orto> </struct> <struct><cat>SV</cat> <struct><cat>V</cat> <orto>trov&#x 00 F 2; </orto></struct> <struct><cat>SN</cat> <orto>un</orto> <orto>pezzo</orto> </struct> <struct><cat>SP</cat> <orto>di</orto> <struct><cat>SN</cat> <orto>legno</orto> </struct></struct></struct> 104

Annotazione e informazione relazionale u L’informazione relazionale collega tra loro unità linguistiche previamente identificate

Annotazione e informazione relazionale u L’informazione relazionale collega tra loro unità linguistiche previamente identificate (ad es. token, unità morfolessicali, costituenti sintattici) u Dipendenze sintattiche SOGG Maestro Ciliegia, falegname, trovò un pezzo OGG di legno COMP Maestro Ciliegia, falegname, trovò un pezzo di legno u Dipendenze anaforiche Maestro Ciliegiah regala il pezzo di legnoi al suoh amico Geppettoj, il qualej loi prende per fabbricarsi un burattino maravigliosok chek sappia ballare, tirar di scherma e fare i salti mortali. 105

Annotazione e informazione relazionale Rappresentazioni XML u Annotazione distribuita <pm id=”pm_1”> <orto>Maestro</orto><orto>Ciliegia</orto></pm> <pm id=”pm_2”><orto>falegname</orto></pm>

Annotazione e informazione relazionale Rappresentazioni XML u Annotazione distribuita <pm id=”pm_1”> <orto>Maestro</orto><orto>Ciliegia</orto></pm> <pm id=”pm_2”><orto>falegname</orto></pm> <pm id=”pm_3”><orto>trov&#x 00 F 2; </orto></pm> <pm id=”pm_4”><orto>un</orto></pm> <pm id=”pm_5”><orto>pezzo</orto></pm>. . . <rel tipo=”sogg” testa=”pm_3” dipendente=”pm_1”/> <rel tipo=”ogg_diretto” testa=”pm_3” dipendente=”pm_5”/> u Dipenzenze come attribuiti <pm id=”pm_1” deprel=”sogg” testa=”pm_3”> <orto>Maestro Ciliegia</orto></pm> <pm id=”pm_3”><orto>trov&#x 00 F 2; </orto></pm> <pm id=”pm_5” deprel=”ogg_diretto” testa=”pm_3”> <orto>pezzo</orto> </pm> 106