• Non ci sono risultati.

XML Sistemi per il recupero delle informazioni

N/A
N/A
Protected

Academic year: 2021

Condividi "XML Sistemi per il recupero delle informazioni"

Copied!
233
0
0

Testo completo

(1)

Sistemi per il recupero delle informazioni

XML

(2)

HTML

(3)

Il linguaggio HTML

HTML = Hypertext Markup Language

Linguaggio per la costruzione delle pagine web

definisce come devono essere visualizzate le pagine

permette di realizzare legami ipertestuali tra pagine diverse

Linguaggio di markup

indica come disporre gli elementi all’interno di una pagina mediante delle istruzioni dette “tag”

i browser leggono il file html, interpretano i tag e visualizzano la pagina con le giuste formattazioni

Nota: una pagina HTML altro non è che un normalissimo file di testo, che fa riferimento ad altri elementi separati, come immagini, filmati, file multimediali.

(4)

I tag

Le istruzioni HTML sono formate da parole chiave racchiuse tra i simboli “<” e “>”

Si introducono dei tag che hanno il formato

<comando> </comando>

Tutto quello racchiuso tra le coppie di tag deve essere interpretato secondo quanto specificato dal comando

Esistono tag che non vogliono la chiusura

<br>

<hr>

(5)

Template di una pagina web

<html>

<head>

<title> titolo </title>

</head>

<body>

contenuto del documento </body>

</html>

Struttura di una pagina HTML

(6)

Struttura di una pagina HTML

<html> </html>:

contenitore del documento

è chiuso a fine documento

contiene due sezioni

<head> </head>

<body> </body>

<head> </head>

: contiene informazioni quali

titolo del documento

fogli di stile

scripting

<body> </body>

: racchiude il contenuto

(7)

Il tag head

Il tag <head> contiene informazioni non visualizzate nel corpo della pagina

i motori di ricerca classificano i siti

queste informazioni servono ai motori di ricerca

Il tag <title> racchiude il titolo della pagina

visibile nella barra del titolo

il testo contenuto può comparire anche in seguito alla ricerca in un motore, come titolo del link. Sarà dunque importante impostarlo in modo pertinente; es:

<head>

<title> Il sito di Anna <title>

</head>

(8)

Il tag meta

Il tag <meta> contiene informazioni non visualizzate nel corpo della pagina

si tratta di una serie di parole chiave e descrizioni, che aiutano i motori di ricerca a classificare il sito; la sintassi è

<meta name=“…” content =“…”>

Ad es. il meta-tag "description" permette di impostare una descrizione sintetica del sito stesso

anche in questo caso, la descrizione compare talvolta nei risultati della ricerca

<meta name = "description" content = “home page di Annalisa Pascarella">

il meta-tag "keywords" permette di indicare alcuni contenuti relativi al sito stesso

(9)

Il Doc type

DTD = document type definition

prima di <html>, fornisce le specifiche del documento. Non è obbligatorio

di solito generato automaticamente dall'editor. In mancanza, il documento è identificato come HTML 2.0

es: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN“

http://www.w3.org/TR/html4/loose.dtd >

HTML: il tipo di linguaggio utilizzato è l'HTML

PUBLIC: il documento è pubblico

W3C: il documento fa riferimento alle specifiche del W3C,

- : le specifiche non sono registrate all'ISO. Se lo fossero, sarebbe "+",

DTD HTML 4.01 Transitional: il documento fa riferimento a una DTD, a seguire c’è l’indirizzo del DTD;

EN: la lingua con cui è scritta la DTD è l'inglese

(10)

Un pò di utili tag

<br>

per andare a capo

non vuole il tag di chiusura!

<hr>

per tracciare una linea orizzontale

<b> </b> (<i> </i>)

per visualizzare in grassetto (in corsivo)

<!-- questo è un commento -- >

(11)

Attributi

Molti tag hanno degli attributi. La sintassi corretta per un tag e’ infatti

<tag attributo1=“val” attributo2=“val”> testo <tag>

es.

<body bgcolor=“blue” background =“img.jpg”> testo

<body>

Si tende ad avere il contenuto separato dallo stile

i fogli di stile (CSS) contengono le regole di formattazione per i vari tag

(12)

Tag di formattazione

<p> </p>

delimita un paragrafo

lascio spazio sopra e sotto

<div> </div>

non lascia spazio prima e dopo la chiusura

va a capo

<span> </span>

elemento inline, non va a capo

(13)

Elenchi

<ol>

tag da utilizzare per aprire un elenco ordinato (ol = ordered list)

gli elementi sono individuati dal tag <li>

<ul>

tag da utilizzare per aprire un elenco non ordinato (ul = unordered list)

gli elementi sono individuati dal tag <li>

(14)

Elenchi – esempio

<ol type = "a">

<li> primo elemento <li> secondo elemento

</ol>

l'attributo type può assumere i valori ”1”,”i”,”I”,”a”,”A”

è un attributo case-sensitive

<ul type=”disc”>

<li>primo elemento <li>secondo elemento

</ul>

l’attributo type definisce il tipo di bullet e può assumere i seguenti valori

“disc”, “circle”,”square”

(15)

Immagini

<img src ="nomefile">

tag per inserire immagini

i browser supportano file .jpg, .gif, .png

il valore dell’attributo src è il pathname del file

il pathname del file può essere assoluto o relativo

esistono diversi attributi per definire le proprietà delle immagini

dimensioni

posizione rispetto al testo

dimensione bordo dell’immagine

non vuole chiusura

(16)

Immagini - esempio

<img src="nomefile" low src="nomefile“

height="x" width="x"

alt="nome_alternativo"

align="x"

vspace="x" hspace="x"

border="x“>

(17)

Link

I link sono "il ponte" che consente di passare da un testo all’altro:

all’interno della pagina web i link ci consentono di muoverci da un documento all’altro del web

si parla di ipertesti

I link sono definiti con il tag

<a>

<a href="http://www.w3.org"> W3C </a>

il parametro href del tag permette di specificare l’URL cui il legame deve portare

il testo tra <a> e </a> e’ usato come label per il link

è indifferente che la destinazione sia una pagina HTML di un sito, un’immagine, un file pdf , un file zip, o un file exe: il meccanismo del link funziona allo stesso modo indipendentemente dal tipo di risorsa; poi il browser si comporterà in modo differente a seconda della risorsa

(18)

Link - esempio

<a title =“vai ai link”

href=”/sito/link.html”> Link </a>

<a href="mailto: pascarel@dima.unige.it">

Contatti

</a>

realizza il collegamento alla pagina link.html

si aprirà il client di posta predefinito

(19)

Caratteristiche di HTML

HTML descrive la struttura logica dell'informazione allo scopo di presentarla come pagina Web

molte pagine ancora generate manualmente

sempre più pagine generate da applicazioni

le pagine HTML sono destinate agli umani

marcatura descrive la presentazione

non c'è un legame diretto tra marcatura e informazione

(20)

Limitazioni di HTML

Insieme di etichette prefissato

non permette di estendere il linguaggio con tag personali

Marcatura non denota il significato

come faccio a sapere quali sono le informazioni che mi interessano?

· non ci dice nulla sul contenuto del documento

come faccio ad estrarre le informazioni che mi interessano (e solo quelle)?

· non supporta dati strutturati -> inefficiente per i motori di ricerca

Marcatura usata per la presentazione del documento

Serve un formalismo più flessibile;

separazione tra:

contenuto

presentazione

navigazione

definizione di domini o contesti

indipendenza dalla piattaforma (media)e supporto multilingue

(21)

XML

(22)

Sommario

Esaminiamo:

Parte I:

Cos’è il markup

Parte II:

Storia e Introduzione all’XML

Parte III:

Documenti, dati e rappresentazioni

Parte IV:

Definizione e applicazione di grammatiche

Parte V:

Modelli di presentazione dei documenti XML

Parte VI:

Strumenti e indirizzi per XML

(23)

Parte I

Cos’è il markup

Definizione di markup Tipi di markup

Il markup procedurale Il markup dichiarativo

(24)

Perché tutto questo chiasso?

Quando si porta una collezione di documenti in forma elettronica, si ha di solito in mente in generale una specifica applicazione (metterla in rete, prepararla per la stampa, ecc.).

di solito, si cerca di trasformare il documento nella forma più opportuna perché venga utilizzato nell’applicazione suddetta.

spesso per questo si fanno delle scelte che impediscono o ostacolano notevolmente un ulteriore riuso della stessa collezione per una diversa applicazione.

L’impaginato poco si adatta ad un’indicizzazione per la rete, o viceversa i linguaggi di visualizzazione su rete sono troppo poco sofisticati per una produzione tipografica di buon livello, ecc.

I linguaggi di markup derivati da SGML sono i linguaggi più opportuni per strutturare e marcare i documenti in maniera indipendente dall’applicazione, favorendo la riusabilità, la flessibilità e la apertura ad applicazioni complesse.

(25)

Cos’è il markup? (1)

Definiamo markup ogni mezzo per rendere esplicita una particolare interpretazione di un testo.

per esempio, tutte quelle aggiunte al testo scritto che permettono di renderlo più fruibile.

Oltre a rendere il testo più leggibile, il markup permette anche di specificare ulteriori usi del testo.

Con il markup per sistemi informatici, specifichiamo le modalità esatte di utilizzo del testo nel sistema stesso.

Esempi di markup: testo in corsivo, testo sottolineato

in XML tutto ciò che è compreso tra i caratteri “<” e “>” (angled brackets, parentesi angolari) è considerato markup, viene detto anche tag (etichetta),

esempio: <nome>

Anche HTML è un markup language inizialmente definito in SGML.

(26)

Cos’è il markup? (2)

Quando un autore scrive, da millenni a questa parte, specifica anche i delimitatori di parola (chiamati spazi), i delimitatori di frase (chiamati virgole) e i delimitatori di periodo (chiamati punti).

La numerazione delle pagine o l’uso dei margini per creare effetti sul contenuto sono noti da centinaia di anni.

Eppure questo a stretto rigore non fa parte del testo, ma del markup:

nessuno dirà ad alta voce ‘virgola’ o ‘punto’ nel leggere un testo, ma creerà adeguati comportamenti paralinguistici (espressioni, toni, pause) per migliorare in chi ascolta la comprensione del testo.

(27)

Tipi di markup

Il markup assolve a diversi ruoli a seconda del sistema di elaborazione, dell’applicazione, dello scopo a cui il documento è soggetto.

Puntuazionale: punteggiatura, spazi, ecc.

Presentazionale: ritorni a capo, allineamenti, cambi pagina, ecc.

Procedurale: le istruzioni di computer da eseguire per ottenere un certo effetto

Descrittivo (o dichiarativo): l’associazione ad ogni porzione di un documento dell’etichetta che ne descrive il senso e il ruolo

Referenziale: l’uso di abbreviazioni e sigle che fanno riferimento e vengono sostituite con entità più lunghe e complesse.

(28)

Tre Uomini in Barca

Jerome K. Jerome

1889

Capitolo primo

Tre invalidi - Le sofferenze di George e Harris - La vittima di centosette malattie inguaribili - […]

Eravamo in quattro: George, William Samuel Harris, e io, Montmorency. Standocene seduti in camera mia, fumavamo e parlavamo di quanto fossimo malridotti… malridotti, dal punto di vista della salute, intendo, naturalmente.

Ci sentivamo tutti piuttosto giù di corda, ...

3

Un testo su carta

(29)

Treuominiinbarcajeromekjerome1889capitolopri motreinvalidilesofferenzedigeorgeeharrislavittim adicentosettemalattieinguaribilieravamoinquattr ogeorge,williamsamuelharrisioemontmorencyst andocenesedutiincameramiafumavamoeparlav amodiquantofossimomalridottimalridottidalpunto divistadellasaluteintendonaturalmentecisentiva motuttipiuttostogiùdicorda

Il testo senza markup

Questo è il testo completamente senza markup, come poteva essere scritto su un papiro della biblioteca di Alessandria, nel II o III secolo a.C.

(30)

Tre Uomini in Barca

Jerome K. Jerome (1889) Capitolo primo

Tre invalidi - Le sofferenze di George e Harris - La vittima di centosette malattie inguaribili - […]

Eravamo in quattro: George, William Samuel Harris, io, e Montmorency. Standocene seduti in camera mia, fumavamo e parlavamo di quanto fossimo malridotti… malridotti, dal punto di vista della salute, intendo, naturalmente.

Ci sentivamo tutti piuttosto giù di corda, ...

Markup metabolizzato

Aggiungiamo markup puntuazionale e presentazionale:

maiuscole/minuscole, punteggiatura, spazi e ritorni a capo sono essi stessi elementi di markup.

(31)

{\rtf1 \mac \ansicpg10000 \uc1 \pard \plain \s15 \qc \widctlpar \adjustright

\f4 \fs48 \cgrid {Tre Uomini in Barca \par } \pard \plain \widctlpar

\adjustright \f4 \cgrid { \line \par \par \par \par \par } \pard \plain \s1 \qc \keepn

\widctlpar \outlinelevel0 \adjustright \i \f4 \fs36 \cgrid {Jerome K. Jerome \par } \pard \plain \qc \widctlpar \adjustright \f4 \cgrid { \fs36 […] \par 1889 \line

\par } \pard \widctlpar \adjustright { \page } { \b \fs36 Capitolo primo} { \par

\par \par \line } { \i Tre invalidi - Le sofferenze di George e Harris - La vittima di centosette malattie inguaribili - [ \u8230 \'c9] \par } { \line } {

\fs28 Eravamo in quattro: George, William Samuel Harris, io, e Montmorency. Standocene seduti in camera mia, fumavamo e

parlavamo di quanto fossimo malridotti \u8230 \'c9 malridotti, dal punto di vista della salute, intendo, naturalmente. \line Ci sentivamo tutti

piuttosto gi \u249 \'9d di corda, ... \par }}

Markup procedurale

Sono comandi, o istruzioni che il sistema di lettura (umano o elettronico) deve eseguire sul testo. Ad esempio, istruzioni su come andare a capo, come decidere i margini, ecc. Questo è RTF.

(32)

Il markup procedurale

Basato sull’aspetto

Ad ogni elemento del documento viene associata la procedura per visualizzarlo in maniera voluta: font, dimensione, corsivi, grassetti, margini, interlinea, ecc.

Dipendente dal sistema

ogni sistema di visualizzazione impone le proprie regole e la propria sintassi.

Associato agli individui

ogni elemento possiede le proprie procedure per la visualizzazione, che possono anche essere tutte diverse anche per elementi dello stesso tipo.

Non contestuale

le regole di visualizzazione non dipendono dal contesto in cui vengono fatte, ma ognuna fa specie a sé.

(33)

<ROMANZO>

<TITOLO>Tre Uomini in Barca</TITOLO>

<AUTORE>Jerome K. Jerome</AUTORE>

<ANNO>1889</ANNO>

<CAPITOLO>

<TITOLO>Capitolo primo</TITOLO>

<INDICE>

<EL>Tre invalidi</EL>

<EL>Le sofferenze di George e Harris </EL>

<EL>La vittima di centosette malattie inguaribili</EL>

</INDICE>

<PARA>Eravamo in quattro: George, William Samuel Harris,

io, e Montmorency. Standocene seduti in camera mia, fumavamo e parlavamo di quanto fossimo malridotti… malridotti, dal punto di vista della salute, intendo, naturalmente. </PARA>

<PARA>Ci sentivamo tutti piuttosto giù di corda,</PARA>

</CAPITOLO>…

</ROMANZO>

Markup descrittivo

Sono informazioni (descrizioni) sugli elementi del documento, che ne specificano il ruolo, la giustificazione, la relazione con gli altri elementi.

(34)

Il markup descrittivo

Basato sul ruolo

di ogni elemento viene descritto il ruolo all’interno del testo, più che le regole per la sua visualizzazione:

ad esempio: “questo è un titolo, questo è un paragrafo, questo è il nome dell’autore, questa è una citazione.”

Indipendente dal sistema

poiché il markup descrittivo assegna ruoli (e non regole di visualizzazione) agli elementi del testo, questi sono intrinseci agli elementi stessi, e non alle funzionalità disponibili nel sistema di visualizzazione.

un sistema incapace di variare l’interlinea, o con un elenco limitato di font e dimensioni, può aver problemi ad interpretare un markup procedurale troppo ricco, ma la differenza tra (per esempio) un “titolo” o un “elenco” o un “paragrafo” non dipende dalla sofisticazione del sistema di visualizzazione.

(35)

Il markup descrittivo

Basato su categorie

i ruoli sono categorie. Ogni elemento è associato ad una categoria, e ne riflette tutte le caratteristiche automaticamente.

Contestuale

con il markup dichiarativo è possibile definire delle regole che permettano o impediscano l’assegnazione di una categoria (ruolo) ad un elemento del testo a seconda del contesto.

ad esempio, si può richiedere che il titolo vada all’inizio del testo, o che una lista sia composta solo di elementi della lista, e non da paragrafi, ecc.

(36)

La storia del markup

1969 : Charles Goldfarb (IBM) dirige lo sviluppo di GML

1974 : Charles Goldfarb inventa SGML, il padre dei linguaggi di marcatura

1986: SGML diventa uno standard ISO (ISO 8879 – “Standard Generalized Markup Language'')

1989: Tim-Berners Lee (CERN di Ginevra) inventa HTML

1995: Fondazione del World Wide Web Consortium (W3C)

1996: Inizio dello sviluppo di XML presso il W3C

1998: XML 1.0 diventa una raccomandazione W3C

(37)

SGML

SGML (Standard Generalized Markup Language) è un meta-linguaggio standard e non proprietario per il markup dichiarativo. Facilita markup leggibili, generici, strutturati, gerarchici.

Un meta-linguaggio è un linguaggio per definire linguaggi, una grammatica di costruzione di linguaggi.

non proprietario significa che non esiste un’unica ditta o casa produttrice che ne detiene il controllo.

In SGML il markup è posto in maniera leggibile a fianco degli elementi del testo a cui si riferiscono.

SGML ha teorizzato l’uso del markup per informazioni (descrizioni) sugli elementi dei documenti, che ne specificano il ruolo, la giustificazione, la relazione con gli altri elementi.

SGML permette di definire delle strutture, suggerite o imposte, a cui i documenti si debbono adeguare.

le strutture imposte da SGML sono tipicamente a livelli di dettaglio successivi.

(38)

Parte II

Storia e Introduzione a XML

(39)

INTRODUZIONE - I

L'eXtensible Markup Language (XML) non è l'ennesimo linguaggio di markup né l'evoluzione dell'HTML.

Esso è un meta-linguaggio di markup, cioè un linguaggio che permette di definire altri linguaggi di markup.

progettato per lo scambio e la interusabilità di documenti strutturati su Internet.

A differenza di HTML, XML non ha tag predefiniti e non serve per definire pagine Web né per programmare.

Serve esclusivamente per definire altri linguaggi.

(40)

XML di per sé è un insieme standard di regole sintattiche per modellare la struttura di documenti e dati.

Questo insieme di regole, dette specifiche, definiscono le modalità secondo cui è possibile crearsi un proprio linguaggio di markup.

Le specifiche ufficiali sono state definite dal W3C (Worl Wide Web Consortium) e sono consultabili a partire dall'indirizzo http://www.w3.org/XML.

INTRODUZIONE - II

(41)

XML: cos’è?

Un meta-linguaggio di markup derivato da SGML

XML e SGML sono meta-linguaggi di markup descrittivo

inseriscono all'interno del documento delle etichette o marcature (tag), che permettono di descrivere il contenuto del documento stesso.

in questo modo un'applicazione, ad esempio un motore di ricerca , è in grado di leggere le informazioni contenute nel documento e di elaborarle in maniera efficiente e corretta.

Ecco l'esempio di un documento, che descrive gli estremi di una legge, in formato XML:

<?xml version="1.0"?>

<Legge>

<Intestazione>

<DataLegge>7 dicembre 2000</DataLegge>

<NumeroLegge>383</NumeroLegge>

<TitoloLegge>Disciplina delle associazioni di promozione sociale</TitoloLegge>

</Intestazione>

</Legge>

(42)

XML: cos’è?

I tag non sono predefiniti dal linguaggio, e’ compito dell’autore del documento a definirli

l'insieme delle marcature utilizzabili per creare un documento XML non è predefinito come succede per il linguaggio HTML per il quale un organismo unico internazionale, il Web Consortium, ha definito l'insieme dei tag utilizzabili e il loro significato.

l'autore del documento XML definisce i propri tag in base alla tipologia dei dati da descrivere.

per autore s'intende l'insieme dei soggetti interessati alla distribuzione di documenti XML che descrivono una certa tipologia semantica e che concordano insieme una struttura comune da adottare

ad esempio, se un ente pubblico o privato intende rendere accessibile su Internet le schede bibliografiche del catalogo della propria biblioteca, utilizzando il linguaggio XML, dovrà contattare gran parte degli enti pubblici e/o privati che hanno la stessa esigenza e concordare con essi una struttura da utilizzare, ossia definire il numero e il tipo di tag.

(43)

XML: cos’è?

E’ stato inventato per descrivere semanticamente i dati

XML è stato progettato per trattare la descrizione delle informazioni, ossia concentra l'attenzione sul significato dei dati.

ad esempio, in questo documento XML, che descrive gli estremi di una legge,

<?xml version="1.0"?>

<Legge>

<Intestazione>

<DataLegge>7 dicembre 2000</DataLegge>

<NumeroLegge>383</NumeroLegge>

<TitoloLegge>Disciplina delle associazioni di promozione sociale</TitoloLegge>

</Intestazione>

</Legge>

le marcature indicano in maniera non ambigua il significato di ciascun dato, per cui un'applicazione è in grado di estrarre correttamente tutte le informazioni contenute nel documento senza incorrere in errori interpretativi.

(44)

XML: cos’è?

XML non è orientato ad uno specifico tipo di elaborazione

XML è stato creato esclusivamente come uno strumento per strutturare, memorizzare e scambiare informazioni.

ad esempio, in questo documento XML che descrive un articolo di una legge,

<?xml version="1.0"?>

<Articolo Num="1">

<Rubrica>Finalità e oggetto della legge</Rubrica>

<Comma Num="1" >La Repubblica riconosce il valore...</Comma>

</Articolo>

non è contenuta alcuna istruzione finalizzata all'elaborazione dei dati; si tratta di pura informazione confezionata nelle marcature XML. Occorre utilizzare un'applicazione specifica per inviare, ricevere o visualizzare il documento XML. Le marcature, evidenziando la semantica delle informazioni contenute in un documento, rendono semplice la progettazione e la realizzazione di applicazioni in grado di elaborare i dati.

(45)

PERCHE’ ?

Ma perché si sente tanto parlare di XML?

Perché tutti ne parlano quasi come una rivoluzione in ambito informatico?

Cosa è possibile fare con questo meta- linguaggio?

Come è possibile definire ed utilizzare un proprio linguaggio di markup?

(46)

UN PO’ DI STORIA

Internet ed il Web hanno bisogno di standard per poter essere utilizzabili e per poter evolvere senza forzature.

A questo scopo è stato istituito il Worl Wide Web Consortium nel dicembre del 1994 con l'obiettivo di definire standard accettati dai maggiori produttori di software per il Web, primo fra tutti il linguaggio HTML.

L'assalto commerciale ad Internet degli anni '90 e la rapida diffusione del Web ha scatenato una delle lotte più agguerrite sul piano tecnico e commerciale: la guerra dei browser tra Netscape e Microsoft.

ciascun contendente introduceva, con ogni nuova versione del proprio browser, una estensione proprietaria all'HTML.

Risultato: un sito Web che usava le estensioni proprietarie di un browser rischiava di risultare inaccessibile agli altri browser.

(47)

UN PO’ DI STORIA

In questo contesto cominciò a delinearsi la necessità di un linguaggio di markup che offrisse maggiore libertà nella definizione dei tag pur rimanendo nell'ambito del rispetto di uno standard.

Nel 1996 si costituì l'XML Working Group nell'ambito del W3C.

lo scopo del gruppo di lavoro era quello di definire un linguaggio che salvasse gli standard e offrisse libertà di estensione.

La ricerca partì dall’SGML un meta-linguaggio per la definizione di linguaggi di markup.

questo linguaggio risultava troppo complesso per gli scopi della ricerca e fu semplificato

Nel dicembre '97 le specifiche di XML venivano pubblicate.

(48)

UN PO’ DI STORIA

Anche se gli obiettivi iniziali della nascita di XML erano rivolti alla soluzione di un problema di standard per il Web, ben presto ci si accorse che XML non era limitato al solo contesto Web.

L’XML risulta essere abbastanza generale per poter essere utilizzato nei più disparati contesti: dalla definizione della struttura di documenti allo scambio di informazioni tra sistemi diversi, dalla rappresentazione di immagini alla definizione di formati di dati.

questo aspetto rappresentava una rivoluzione

XML è un acronimo per eXtensible Markup Language

Language perché si tratta di un linguaggio

Markup perché è fondato sull'utilizzo dei marcatori

eXtensible perché consente a chi lo utilizza di creare i tag di cui ha bisogno.

(49)

IL MONDO DI XML

Dopo aver conosciuto la storia dell'origine di XML, la domanda che sorge è: allora XML sostituirà l'HTML?

Anche se il dubbio risulta legittimo, possiamo dire che XML e HTML non sono in diretta concorrenza.

Le specifiche di HTML sono ferme alla versione 4.0 del dicembre 1997 (ignorando le piccole revisioni della 4.01) , tuttavia XML contribuisce proprio all'evoluzione dell'HTML.

(50)

IL LINGUAGGIO XHTML

L'evoluzione del linguaggio HTML è XHTML (eXtensible HTML), una ridefinizione di HTML in termini di XML.

XHTML è HTML definito secondo le regole di XML.

Le differenze più evidenti si riassumono brevemente:

tutti i tag e i loro attributi sono espressi in minuscolo

è obbligatorio inserire il tag di chiusura

(es. se usiamo <p> dobbiamo chiudere con </p>)

i valori degli attributi devono essere specificati tra doppi apici o singoli apici

(es. <table width="30%">)

i tag vuoti seguono la cosiddetta sintassi minimizzata

(es, il tag <br> diventa <br/>)

Possono sembrare differenze di poco conto, soprattutto perché la tolleranza dei browser ci ha abituato a commettere errori sintattici, ma sono molto importanti.

Le pagine strutturate in XHTML possono essere elaborate da software diversi dai classici browser

ad es. gli spider dei motori di ricerca, i sintetizzatori vocali, i dispositivi wireless, …

(51)

XML: standardizzato e strutturato

Abbiamo detto che XML è un insieme standard di regole sintattiche per modellare la struttura di documenti e dati.

Due parole sono di fondamentale importanza: standard e struttura.

Le regole sono standard e questo garantisce l'indipendenza da una specifica piattaforma hardware e software o da uno specifico produttore.

Le regole di XML consentono di definire la struttura di documenti e dati, ma non altre caratteristiche come il tipo o la presentazione dei dati o documenti. Questo compito non è di XML ma è delegato ad altre tecnologie, alcune delle quali sono basate sullo stesso XML.

(52)

I vantaggi di XML

Documenti auto-descrittivi

la scelta dei nomi degli elementi può essere fatta per facilitare la comprensione del ruolo strutturale dell’elemento.

Struttura navigabile dei documenti

la rigida struttura ad albero e l’assenza di regole di minimizzazione rendono semplice la visualizzazione

Platform-independence

XML è uno standard aperto, e chiunque può realizzare strumenti che lo usino come formato di dati.

Facile convertibilità a formati Web

la totale interdipendenza tra XML, SGML, HTML etc. fa sì che la conversione tra formati interni e formati per il Web sia facile.

(53)

Cosa c’è con XML?

XML è in realtà una famiglia di linguaggi, alcuni già definiti, altri in corso di completamento. Alcuni hanno l’ambizione di standard, altri sono solo proposte di privati o industrie interessate. Alcuni hanno scopi generali, altri sono applicazioni specifiche per ambiti più ristretti.

XML 1.0: un meta-linguaggio di markup, sottoinsieme di SGML

XML-Namespace: un meccanismo per la convivenza di nomi di tag appartenenti a DTD diversi

XPath per la creazione di link ipertestuali

XSL: un linguaggio di stylesheet per XML

XML schema: un linguaggio per la specifica di criteri di validazione di documenti XML

(54)

Cosa si fa con XML?

Data Interchange

Ogni volta che più programmi si debbono scambiare dati, ci sono problemi di compatibilità. Ogni programma ha le proprie assunzioni in termini di caratteri, separatori, ripetibilità di elementi, differenza tra elementi vuoti e assenti, ecc.

XML si propone come la sintassi intermedia più semplice per esprimere dati anche complessi in forma indipendente dall’applicazione che li ha creati.

Document publishing

XML è ideale come linguaggio per esprimere documenti strutturati o semi strutturati, e per esprimerli in maniera indipendente dalla loro destinazione finale.

Lo stesso documento XML può essere preso e trasformato per la stampa, il Web, il telefonino, l’autoradio.

(55)

Cosa si fa con XML? (2)

Interazione tra database eterogenei

Ogni volta che è necessario trasferire dei dati da un database all’altro, la soluzione più economica è stampare i dati dal primo DB su carta e ribatterli a mano sul secondo.

Idealmente si vorrebbe accedere via Web ai dati del primo DB, selezionare quelli di interesse, e spostarli sul secondo DB, che si preoccupa di adattarli alle sue esigenze.

Il secondo DB, dunque, deve essere in grado di comprendere la sintassi dei dati, di interpretare la struttura e di isolare le informazioni di suo interesse.

Per questo potrebbe essere aiutato da un formato di interscambio tipo XML, che permetterebbe di etichettare i dati esplicitamente.

(56)

HTML vs XML

HTML nacque come evoluzione del SGML, che permetteva di mettere in rete documenti di un tipo molto specifico, semplici documenti di testo con qualche immagine e dei link ipertestuali.

Con il successo del WWW, HTML venne iniziato ad usare per molti scopi, molti più di quelli per cui era stato progettato.

Si iniziò ad abusare dei tag di HTML per gli effetti grafici che forniva, più che per gli aspetti strutturali o semantici.

Si iniziarono a desiderare elaborazioni sofisticate sui dati HTML, elaborazioni che non era possibile fornire.

Si iniziò a trovare limitata la capacità grafica di HTML, anche abusando dei tag.

(57)

Cosa è questo ?

<td> 12 </td>

• Il numero civico di una via ?

• Il numero di telefono per ottenere informazioni sugli abbonati ?

• Entrambe le cose ?

• Nessuna delle due ?

HTML vs XML

(58)

<p> <b> Sig. Mario Rossi </b>

<br>

Via Verdi, 12

<br>

56100, Pisa

Un markup con HTML

Sig. Mario Rossi Via Verdi, 12

56100, Pisa

Il nostro algoritmo per trovare il numero civico:

Se un paragrafo contiene due tag <br> allora la prima parola dopo la prima virgola dopo il primo tag <br> è il numero civico.

(59)

<business-card>

<persona>

<titolo> Sig. </titolo>

<nome> Mario </nome>

<cognome> Rossi </cognome>

</persona>

<indirizzo>

<strada> Via Verdi </strada>

<numero-civico> 12 </numero-civico>

<cap> 56100 </cap>

<città> Pisa </città>

</indirizzo>

</business-card>

Un semplice markup in XML

(60)

Visualizzazione dell’XML

Come l’HTML Sig. Mario Rossi Via Verdi, 12

56100, Pisa

ma anche…

Sig. Mario Rossi Via Verdi, 12

56100, Pisa

Un algoritmo migliore e più semplice per trovare il numero civico:

il numero civico è il contenuto del tag <numero-civico>

(61)

Visualizzazione dell’XML

Il linguaggio XML non produce nessun effetto: non comprende le istruzioni di elaborazioni (neanche quelle di visualizzazioni)

Neccessita sempre di qualche applicazione che decide cosa fare per ogni tag.

Gli attuali browser non sono in grado di visualizzare i documenti XML senza il supporto di altri linguaggi di formattazione (es. XSL, eXtensible Style Sheet)

Es. senza XSL

cdcatalog.xml

Es. con XSL

cdcatalog_xsl.xml

(62)

Visualizzazione dell’XML

(63)

XML vs HTML

XML non è stato progettato per sostituire HTML

XML e HTML sono stati progettati per svolgere compiti diversi:

XML è stato pensato per descrivere i dati ed è incentrato sul loro valore semantico

riguarda la descrizione delle informazioni

HTML è stato pensato per visualizzare i dati ed è incentrato sull'aspetto con il quale il dato è presentato

tratta la visualizzazione delle informazioni

XML è estensibile, è un metalinguaggio nel senso che permette di definire altri linguaggi di marcatura (si veda, ad esempio, il linguaggio Wireless Markup Language usato per le connessioni senza cavo)

HTML non è estensibile

XML mantiene separate la struttura del documento dalle regole per la sua visualizzazione

HTML usa elementi per la struttura insieme ad elementi per la visualizzazione

(64)

XML: gli obiettivi

Questi gli obiettivi progettuali di XML secondo il W3C XML Working Group:

XML deve essere utilizzato in modo semplice su Internet.

XML deve supportare un gran numero di applicazioni.

XML deve essere compatibile con SGML.

Deve essere facile lo sviluppo di programmi che elaborino XML.

Il numero di caratteristiche opzionali deve essere mantenuto al minimo possibile, idealmente a zero.

I documenti XML dovrebbero essere leggibili da un uomo e ragionevolmente chiari.

La progettazione XML dovrebbe essere rapida.

La progettazione XML dovrebbe essere formale e concisa.

I documenti XML devono essere facili da creare.

Non è di nessuna importanza l’economia nel markup XML.

(65)

Parte III

Documenti, dati e rappresentazioni

(66)

Le componenti di XML

Tre parti fondamentali da tenere distinte:

il documento XML;

le specifiche relative agli elementi, la struttura (DTD);

le specifiche relative alla rappresentazione, lo stile (Stylesheet).

(67)

STRUTTURA DEI DOCUMENTI XML

Concretamente, un documento XML è un file di testo che contiene una serie di tag, attributi e testo secondo regole sintattiche ben definite.

documento va inteso nel senso generale di contenitore di informazioni

Analizziamo ora XML dal punto di vista logico e sintattico e i documenti che con esso si possono creare dando uno sguardo alla struttura logica.

Un documento XML è intrinsecamente caratterizzato da una struttura gerarchica. E’ composto da componenti denominati elementi.

ciascun elemento rappresenta un componente logico del documento e può contenere altri elementi (sottoelementi) o del testo.

gli elementi possono avere associate altre informazioni che ne descrivono le proprietà, chiamate attributi.

L'organizzazione degli elementi segue un ordine gerarchico o arboreo che prevede un elemento principale (root element o radice).

la radice contiene l'insieme degli altri elementi del documento.

(68)

Struttura gerarchica di un documento XML

Possiamo rappresentare graficamente la struttura di un documento XML tramite un albero, noto come document tree.

Prendiamo in considerazione la rappresentazione di un generico articolo a carattere tecnico e proviamo a rappresentarlo secondo il modello XML.

(69)

Struttura gerarchica di un documento XML

Root element

elementi

Attributo

(70)

Element root

Ogni documento XML deve contenere un solo elemento radice, cioè un elemento che racchiude tutti gli altri elementi secondo una struttura di relazione padre-figlio, cioé strettamente gerarchica.

L'elemento radice è il primo elemento di un documento XML.

(71)

Struttura logica di un documento XML

La struttura logica di un documento XML dipende dalle scelte progettuali. Siamo noi a decidere come organizzare gli elementi all'interno di un documento XML.

non esistono regole universali per l'organizzazione logica di un documento.

La struttura logica di un documento XML viene tradotta in una corrispondente struttura fisica composta di elementi sintattici chiamati tag.

questa struttura fisica viene implementata tramite un file di testo creato con un qualsiasi editor.

(72)

Struttura logica di un documento XML

<?xml version="1.0" ?>

<articolo titolo="Titolo dell'articolo">

<paragrafo titolo="Titolo del primo paragrafo">

<testo>

Blocco di testo del primo paragrafo

</testo>

<immagine file="immagine1.jpg">

</immagine>

</paragrafo>

<paragrafo titolo="Titolo del secondo paragrafo">

<testo>

Blocco di testo del secondo paragrafo

</testo>

<codice>

Esempio di codice

</codice>

<testo>

Altro blocco di testo

</testo>

</paragrafo>

<paragrafo tipo="bibliografia">

<testo>

Riferimento ad un articolo

</testo>

</paragrafo>

</articolo>

rappresentazione fisica del documento XML visto prima

tag

attributo element root

elemento paragrafo

(73)

Struttura logica di un documento XML

La prima riga del documento lo identifica come un documento XML e ne specifica la versione (in questo caso la 1.0): <?xml version="1.0" ?>

deve essere sempre presente

Sempre nella stessa dichiarazione può essere specificato l'insieme (set) di caratteri che si desidera includere all'interno dei propri documenti. Il set di caratteri usato, nel caso in cui non venga specificato diversamente, è UNICODE (UTF-8), una sorta di ASCII esteso.

Un altro set di caratteri utilizzato è il LATIN (ISO-8859-1). In questo caso la prima linea di un documento diventa:

<?xml version="1.0" encoding="ISO-8859-1"?>

(74)

XML e Unicode

XML abbandona completamente ASCII e le codifiche ad un byte.

Questo porta a due vantaggi nei riguardi dell’internazionalizzazione:

È possibile scrivere documenti misti, senza ricorrere a trucchi strani per identificare la parte che usa un alfabeto dalla parte che ne adopera un altro.

Un documento scritto in un linguaggio non latino non deve basarsi su parametri esterni per essere riconosciuto come tale, ma la codifica stessa dei caratteri lo identifica.

(75)

Struttura logica di un documento XML

Il corpo del documento segue questa prima riga, rappresentando gli elementi tramite tag, cioè sequenze di caratteri delimitate dai segni '<' e '>‘, come in HTML. Ma a differenza dell'HTML in cui i tag sono predefiniti, XML ci lascia liberi di definire i tag che vogliamo.

Per specificare un attributo per un elemento inseriamo il nome dell’attributo con il relativo valore all’interno del tag di apertura dell’elemento

l'organizzazione gerarchica degli elementi viene rappresentata in XML tramite il loro annidamento.

Alcuni elementi possono essere vuoti, cioè possono essere privi di contenuto testuale. A differenza di quanto avviene per l'HTML, XML prevede che vengano sempre specificati i tag di apertura e chiusura.

È questo il caso del tag immagine.

Sintassi abbreviata: <immagine file="immagine1.jpg“/>

(76)

I componenti di XML

Un documento XML contiene una varietà dei seguenti componenti

Elementi

caratteristiche della partizione logica della sezione di testo (es.<nomepersona>Francesca</nomepersona>)

Attributi

caratteristiche specifiche dell’elemento (es.<nomepersona tipo=“f”>Francesca</nomepersona>)

Entità

riferimento ad oggetti “esterni” al documento. Convenzione &nomeentità;

Testo (detto anche #PCDATA)

Commenti

Processing Instructions

(77)

Elementi

Gli elementi sono le parti di documento dotate di un senso proprio.

il titolo, l’autore, i paragrafi del documento sono tutti elementi.

Un elemento XML è l’insieme di un tag iniziale, un contenuto ed un tag finale.

<TITOLO>Tre uomini in barca</TITOLO>

Alcuni elementi possono essere vuoti

Tutti gli elementi devono avere un tag di chiusura

ciò non è richiesto in HTML, dove alcuni elementi possono non avere il tag di chiusura, dato che la sintassi del linguaggio non lo richiede obbligatoriamente.

<p>Questo è un paragrafo.

(78)

Elementi

Differenze tra caratteri maiuscoli e caratteri minuscoli (case sensitive)

I caratteri maiuscoli e minuscoli sono rilevanti per la definizione di un tag XML.

I seguenti elementi:

<articolo></articolo>

<Articolo></Articolo>

sono diversi fra loro, quindi i tag di apertura e di chiusura devono essere scritti con lo stesso uso dei caratteri maiuscoli e minuscoli; non è corretto scrivere:

<articolo></Articolo>

(79)

Elementi

Elementi correttamente nidificati

In XML un elemento può essere contenuto (nidificato) in un altro; nell'esempio che segue, l'elemento paragrafo è nidificato all'interno dell'elemento Articolo.

<Articolo>

< paragrafo >1. ... </ paragrafo >

</Articolo>

In XML l'ordine di chiusura dei tag deve essere inverso rispetto all'ordine di apertura; il successivo è un esempio errato di uso della sintassi degli elementi:

<Articolo>< paragrafo >1. ... </Articolo></ paragrafo

>

Ciò non è richiesto in HTML, dove alcuni tag possono non rispettare l'ordine di apertura e chiusura, come nell'esempio che segue:

<b><i>Questo testo è in grassetto e in corsivo</b></i>

(80)
(81)
(82)
(83)

Gli attributi sono informazioni aggiuntive sull’elemento che non fanno effettivamente parte del contenuto (meta-informazioni).

Essi sono posti dentro al tag iniziale dell’elemento. Tipicamente hanno la forma nome=valore

<romanzo file=“threemen.sgm”>…</romanzo>

<capitolo N=“1”>Capitolo primo</capitolo>

Ogni attributo è una coppia di oggetti:

nome dell’attributo

valore dell’attributo

Il valore dell’attributo viene indicato nello start-tag

Il valore deve essere sempre racchiuso fra le virgolette (singole o doppie)

Un elemento può contenere uno o più attributi

Attributi

(84)

Attributi

Gli attributi servono ad aggiungere informazioni che:

sarebbero irrilevanti se inserite nel testo

ma che sono utili per le applicazioni che devono elaborare il documento

<file type="gif">compu.gif</file>

Uno stesso dato può essere usato sia come attributo che come elemento:

<persona cittadinanza=”italiana">

<nome>Anna</nome>

<cognome>Rossi</cognome>

</persona>

<persona>

<cittadinanza>italiana</cittadinanza>

<nome>Anna</nome>

<cognome>Rossi</cognome>

</persona>

(85)

DOCUMENTI BEN FORMATI

XML richiede un certo rigore sugli aspetti sintattici.

ad es. un tag vuoto deve prevedere il tag di chiusura o la sua forma abbreviata

Un principio fondamentale a cui tutti i documenti XML devono sottostare è infatti:

tutti i documenti XML devono essere ben formati (well formed).

Un documento XML è ben formato se è un documento conforme alle regole di sintassi descritte precedentemente

questo concetto è assimilabile in qualche modo alla correttezza ortografica di una lingua ed è un principio a cui i documenti XML non possono sottrarsi.

(86)

DOCUMENTI BEN FORMATI

Perché un documento XML sia ben formato deve rispettare le seguenti regole:

ogni documento XML deve contenere un unico elemento di massimo livello (root) che contenga tutti gli altri elementi del documento. Le sole parti di XML che possono stare all'esterno di questo elemento sono i commenti e le direttive di elaborazione

<Capitolo>

</Capitolo>

ogni elemento deve avere un tag di chiusura o, se vuoti, possono prevedere la forma abbreviata (/>)

XML fa distinzione tra maiuscole e minuscole,

<paragrafo> I </paragrafo>

(87)

DOCUMENTI BEN FORMATI

Perché un documento XML sia ben formato deve rispettare le seguenti regole:

gli elementi devono essere opportunamente nidificati, cioè i tag di chiusura devono seguire l'ordine inverso dei rispettivi tag di apertura

<Capitolo>

<paragrafo>

</paragrafo>

</Capitolo>

i valori degli attributi devono sempre essere racchiusi tra singoli o doppi apici

<paragrafo id=“primo”> </paragrafo>

(88)

DOCUMENTI non BEN FORMATI

La violazione di una qualsiasi di queste regole fa in modo che il documento risultante non venga considerato ben formato.

Codice del tipo

<articolo titolo=test>

...

</Articolo>

darà qualche problema, e lo stesso dicasi per situazioni analoghe alla seguente:

<paragrafo>

<testo>

abcdefghi...

</paragrafo>

</testo>

Anche la scelta dei nomi dei tag deve seguire alcune regole. Un tag può iniziare con un lettera o un underscore (_) e può contenere lettere, numeri, il punto, l'underscore (_) o il trattino (-). Non sono ammessi spazi o altri caratteri. XML è sensibile all'uso di maiuscolo e minuscolo, quindi i tag <prova> e <Prova> sono considerati diversi.

Riferimenti

Documenti correlati

 Se i sistemi di indicizzazione e ricerca tradizionali sono basati sui termini, sulla logica delle parole chiave i sistemi di recupero più innovativi richiedono

 un documento che descrive come i dati devono essere elaborati per la presentazione, chiamato foglio di stile XSLT.  un componente software, chiamato processore XSLT,

Le caratteristiche delle basi di dati sono garantite da un sistema per la gestione di basi di dati (DBMS, Data Base Management System), che ha il controllo dei dati e

 Data una collezione di documenti e un bisogno informativo dell’utente, obiettivo dell’IR è di recuperare, all’interno di una collezione, tutti e solo i

 un componente software, chiamato processore XSLT, in grado di prendere in input un documento XML e un foglio di stile XSLT e di produrre in output i dati

un documento che descrive come i dati devono essere elaborati per la presentazione, chiamato foglio di stile XSLT. un componente software, chiamato processore XSLT, in grado

Questa funzione deve anche costruire un nuovo file numeri_bis.txt che contiene gli stessi elementi di numeri.txt con l’eccezione di tutte le occorrenze del massimo e

A dire il verso sembrava un’aspettativa molto elevata, ma Caiden credeva che se fosse stato abbastanza coraggioso da dire la verità su di sé a Rick, forse questa