Introduzione
2
l’esplorazione dei linguaggi di markup per la Rete con particolare
attenzione all’XML, linguaggio estremamente nuovo che, sebbene in
piena fase di definizione, è considerato la vera rivoluzione del Web.
Il TAO (TeleAction Object), introdotto da S.K.Chang in
[Chang95a], è un oggetto multimediale con associate due parti: un
ipergrafo per specificare le relazioni e gli oggetti che lo costituiscono,
ed una struttura di conoscenza che descrive l'ambiente e le azioni del
TAO. La struttura ipergrafica supporta l'effettiva presentazione e
l'efficiente comunicazione delle informazioni multimediali, mentre la
conoscenza può essere creata e modificata dall’utente in modo che i
TAO possano reagire a certi eventi. I linguaggi multimediali basati su
TAO, dunque, forniscono uno strumento valido per presentazioni
multimediali interattive nello spazio multidimensionale.
L’XML (eXtensible Markup Language) è un linguaggio di
markup per la strutturazione e descrizione dei dati. Rispetto all’HTML
presenta numerosi vantaggi tra cui: estensibilità, che permette la
definizione di set personalizzati di tag; validazione, grazie alla quale
ogni documento passa attraverso un controllo che ne attesta la
conformità rispetto a regole stabilite nella definizione del linguaggio
(contenuta nel DTD, Document Type Definition); separazione tra
contenuto e rappresentazione, il che permette di avere una base
comune per la descrizione del contenuto dell’informazione a
prescindere dalle tecniche utilizzate per la visualizzazione. In sintesi
l’XML è un linguaggio che oltre alla estrema portabilità e riusabilità
offre la flessibilità necessaria alla descrizione e gestione di strutture
Introduzione
3
complesse.
L’analisi di queste due tecnologie ha portato nel nostro lavoro
alla definizione del linguaggio TAO_XML. Questo linguaggio,
ottenuto dal TAOML con opportune modifiche, ha permesso di
raggiungere il primo obiettivo: eliminare la fase di traduzione di
TAOML in HTML per renderlo fruibile su WEB.
Le notevoli proprietà del TAO_XML hanno però mostrato che si
può andare ben oltre: sebbene esso possa essere usato nello stesso
ambiente di sviluppo delle applicazioni multimediali del TAOML, si è
modificato tutto l’ambiente ottenendo allo stesso tempo
semplificazione e potenziamento.
Il risultato di questo lavoro è dunque un nuovo linguaggio
multimediale che alla potenza espressiva dei TAO unisce fruibilità su
Internet, portabilità e riusabilità propria dei linguaggi XML,
delineando nuovi scenari nei campi di utilizzo di entrambe le
metodologie.
Il lavoro è strutturato come segue:
I primi 3 capitoli sono uno stato dell'arte del linguaggio XML. In
particolare il Cap. 1 è dedicato all'introduzione dell’XML e inquadra
l'esigenza di quest’ultimo fra i linguaggi della stessa famiglia (HTML,
SGML); sono descritte inoltre le peculiarità di ciascuno. Il Capitolo 2
presenta un’analisi tecnica della sintassi del linguaggio base. Il
Capitolo 3 si occupa dei meccanismi linguistici di indirizzamento,
elaborazione e visualizzazione dei contenuti di un documento XML;
essi sono definiti nei linguaggi XML avanzati: XLink, XPointer,
Introduzione
4
XPath, XSL, ampiamente descritti nel capitolo sulla base delle ultime
specifiche disponibili (Dicembre 1999). La mancanza di specifiche
stabili e mature e la conseguente scarsità di implementazioni efficienti
rappresentano i maggiori ostacoli per il concreto utilizzo di tali
linguaggi
I Capitoli 4 e 5 descrivono lo stato dell’arte dei TAO: nel
Capitolo 4 si richiama la teoria dei TAO descrivendone caratteristiche
e definizioni; sono presentate inoltre le estensioni relative ai TAO
unificati. Nel capitolo 5 si analizza l’ambiente di sviluppo per
applicazioni multimediali basato sui TAO, descrivendone i
componenti principali con particolare attenzione ai linguaggi TAOML
e TAOML per TAO unificati.
Il Capitolo 6 costituisce il cuore del lavoro ovvero il linguaggio
TAO_XML. La definizione del linguaggio è ottenuta attraverso la
trasformazione del linguaggio TAOML in linguaggio XML-based in
una riformulazione delle sue specifiche BNF e conseguente
costruzione del DTD. E’ presentata la riprogettazione dell’ambiente di
sviluppo per applicazioni multimediali ottenendo un’architettura più
snella ed efficiente; sono indicate inoltre le linee guida per la
costruzione dei fogli di stile. Infine vi è la definizione dell’estensione
del linguaggio per i TAO unificati.
Il Capitolo 7 presenta la metodologia di costruzione di un
documento TAOXML applicata all’esempio del chiosco informativo.
Tale esempio risulta completo e validato nell’ambito dell’Internet
Explorer 5 e realmente funzionante come documento XML. La stessa
Introduzione
5
applicazione è poi realizzata anche utilizzando i TAO unificati.
Il Capitolo 8 presenta le conclusioni del lavoro svolto e delinea i
possibili sviluppi futuri, quali la realizzazione dei fogli di stile e la
possibilità di applicare tecniche di recentissima definizione per
interrogazioni (query) relative a informazioni contenute in documenti
XML. Inoltre sono forniti cenni sulla teoria dei metadati e i possibili
sviluppi nell’ambito dei linguaggi multimediali.
Infine in appendice, oltre alle modalità di visualizzazione e
validazione degli esempi svolti prodotte da Internet Explorer 5, sono
presenti un elenco dei principali tool e parser XML disponibili in
Rete, e una descrizione dei siti Web più importanti che forniscono
risorse XML.
Il presente lavoro contiene i riferimenti che puntano direttamente
alle risorse in rete citate; sono inoltre disponibili, per una rapida
verifica sotto Internet Explorer 5, il tool Xml Validator e i file DTD e
XML relativi agli esempi (da appendice A?).
Il presente lavoro è frutto della collaborazione tra il DMI
(Dipartimento di Matematica e Informatica) dell’Università di Salerno
(dott.ssa Giuliana Vitiello), e il DIS (Dipartimento di Informatica e
Sistemistica) della Facoltà di Ingegneria di Napoli nella persona del
Prof. Ing. Paolo Maresca.
Introduzione
6
6
Capitolo 1
Introduzione all’XML
1.1 Il World Wide Web e l’HTML
In questi ultimi anni si è assistito ad uno sviluppo e una
diffusione straordinaria di Internet e di tutto ciò che ad esso è legato,
come posta elettronica, chat, gruppi di discussione, e-commerce; ma è
soprattutto con l’acronimo WWW (World Wide Web) che oggi per
molti si identifica Internet; è pertanto il caso di ricordare le differenze
tra questi due termini.
Con Internet si indica la rete fisica di computer, di diverso tipo,
connessi tra loro a vari livelli in tutto il mondo che permette a milioni
di utenti di interagire in vario modo: Internet è insomma un immenso
serbatoio di informazioni di diverso tipo fruibili attraverso diverse
modalità;
con WWW si intende, invece, il metodo ipertestuale e interattivo
di accedere alle risorse su Internet, ossia la possibilità, grazie ai
browser, di accedere alle informazioni di ogni genere, disponibili in
rete sotto forma di pagine Web, e di saltare da una all’altra con la
semplice pressione di un dito della mano (click sul mouse).
Le pagine Web sono presentate per mezzo del linguaggio HTML
(HyperTest Markup Language) che fino ad ora è stato il più famoso
linguaggio basato sui marcatori (linguaggio di markup).
Capitolo 1: Introduzione all’XML
7
Per markup si intende tutto ciò che permette di caratterizzare
un’informazione che ha un significato speciale: il testo scritto in
grassetto o il testo sottolineato sono esempi di markup. Nei linguaggi
di markup tutto ciò che è compreso tra le parentesi angolari "<" e ">"
è considerato markup e viene detto tag; l’idea di base, quindi, dei
linguaggi di markup è quella di marcare porzioni di testo con
opportuni tag che ne indichino le caratteristiche, siano esse di
struttura, presentazione, interattività con altri documenti o di altro
tipo; sarà poi compito del browser applicare al testo ciò che è indicato
dai tag.
In particolare l’HTML è un insieme ben definito (non estensibile)
di tag concepiti specificatamente per la visualizzazione di pagine Web,
ossia tag per indicare come l’informazione contenuta nella pagina
debba essere visualizzata; è grazie all’HTML che è stato possibile
combinare testo e grafica sulla stessa pagina e creare sistemi di
iperlink tra documenti diversi in un modo concettualmente semplice.
Dunque, da una parte, la diffusione di Internet ha permesso
l’accesso all’informazione ad un numero elevato di persone e
organizzazioni che desiderano rendere disponibili enormi moli di dati,
dall’altra, l’estrema semplicità del linguaggio HTML è stata uno dei
punti di forza del World Wide Web rendendolo in brevissimo tempo il
principale mezzo di comunicazione tra gli utenti Internet.
Capitolo 1: Introduzione all’XML
8
1.1.1 Limiti dell’HTML
Come spesso accade, però, la semplicità è sufficiente per
muovere i primi passi, ma è poi inefficace a rispondere ai requisiti di
utenti che cominciano a diventare esperti e a pretendere dall’HTML
servizi per il quale non era stato creato, evidenziandone
inevitabilmente i limiti.
Vogliamo ora fare una panoramica sui limiti dell’HTML che
hanno portato alla necessità di un linguaggio quale l’XML:
• Non estensibile.
HTML è un linguaggio con una sintassi ben definita, è un
linguaggio di markup fisso, ossia ha un certo insieme, prefissato, di
tag utilizzabili, per cui non è permesso all’utente di creare tag e
attributi secondo le proprie esigenze; ogni estensione alla sintassi
HTML deve essere approvata da un organo preposto, il W3C (World
Wide Web Consortium, l’ente di governo del Web) affinché diventi
standard.
Tuttavia la necessità di espandere le capacità di HTML ha spinto
i produttori di browser a introdurre nuovi tag nella sintassi, rendendola
a tutti gli effetti proprietaria e non più standard. Da ciò segue che una
pagina HTML che sfrutta i tag proprietari non può essere visualizzata
correttamente se non con il browser adatto, con conseguenti problemi
di incompatibilità; tale processo è concluso dalla definizione di un
nuovo standard, il che ovviamente comporta tempi molto più lunghi
dei continui aggiornamenti dei browser.
• Mancanza di strutturazione dell’informazione
Capitolo 1: Introduzione all’XML
9
L’HTML, in pratica, non fornisce mezzi per una descrizione
efficiente della struttura dell’informazione che va a rappresentare.
In effetti tra i tag dell’HTML ve ne sono alcuni che possono dare
una struttura al documento (a partire dai principali quali <HEAD> e
<BODY> il cui compito è indicare, il primo, informazioni di supporto,
non visibili, il secondo, il testo da visualizzare), e vi sono anche tag
come gli Heading per i quali esiste una gerarchia, (dal carattere più
grande per H1 fino al carattere più piccolo per H6). Tale gerarchia
potrebbe essere usata per dare diversa importanza alle vari parti del
testo; quello che invece è successo è che gli sviluppatori si sono per lo
più concentrati su esigenze estetiche e hanno usato i tag senza tenere
nella minima considerazione il loro eventuale significato di gerarchia.
Per esempio, non esistendo regole ferree per le quali un H1 debba
contenere un H2 viene fatto anche il contrario, perdendo così la
valenza di struttura di certi tag e quindi la capacità di organizzare il
contenuto del documento.
Tutto ciò ha, per esempio, indebolito la potenzialità dei motori di
ricerca in un momento in cui la mole di documenti in rete è diventata
tale da richiedere meccanismi più raffinati e efficaci: si ci trova a fare
ricerca su tutto il testo a parità di importanza, quando si sarebbe potuta
stabilire la rilevanza di una tale parola in un testo in base alla sua
posizione e restringere a tale rilevanza la ricerca.
La mancanza di una struttura del contenuto, infine, impedisce il
riutilizzo dello stesso documento per scopi diversi dalla
visualizzazione; ovvero con l’HTML è difficile riusare l’informazione
Capitolo 1: Introduzione all’XML
10
pubblicata su Web al fine di stamparla in un catalogo o inserirla in un
database automaticamente: è necessaria sia una conversione che una
riformattazione manuale, e ciò deve essere ripetuto ogni qualvolta
l’informazione originale cambi.
• Mancanza di descrizione dell’informazione
L’HTML è solo un linguaggio di presentazione, il suo compito
non è descrivere il contenuto di una pagina ma il modo in cui quel
contenuto deve essere visualizzato; in effetti non lo descrive affatto, in
quanto non esiste modo con l’HTML di marcare una porzione di testo
in base al suo significato: poiché non è estensibile da utente e non è
possibile creare uno standard fisso che contenga tag universali non è
capace minimamente di descrivere tutti i contenuti possibili.
L’HTML si preoccupa solo di come visualizzare una certa
informazione, ma non sul cosa rappresenta, non è stato progettato per
lavorare con cosa il dato rappresenta; per esempio, nel caso dei motori
di ricerca, non potendo impostare una ricerca sul significato della
parola da cercare, lo si fa sulla stringa che lo rappresenta, con risultati,
spesso, insoddisfacenti.
• Mancanza di validazione
L’HTML non prevede un controllo della correttezza formale del
documento (ossia, una validazione) da parte dei browser e questo ha
fatto sì, tra l’altro, che nel tempo si perdessero delle specifiche
(caratteristiche) del linguaggio che non erano rigide ma consigliate,
come per esempio la capacità di strutturazione (indicare struttura) di
certi tag.
Capitolo 1: Introduzione all’XML
11
• Costruzione dei link
Il link è l’elemento chiave della struttura ipertestuale e l’HTML
attraverso il tag A e il suo attributo HREF assicura la possibilità di
saltare da un punto all’altro di un documento o dell’intero Web;
questo semplice concetto ha reso possibile tutto ciò che oggi è il Web.
Però l’HTML implementa solo la più semplice delle tecnologie
dei link, ossia il link unidirezionale in due varianti: link da un punto di
un documento ad un altro documento e link da un punto ad un altro
punto dello stesso o di un altro documento; vi sono molti altri tipi di
link, come:
∗ il link bidirezionale che non è il semplice ritorno indietro di un
link unidirezionale ma un sorta di ponte i cui estremi sono
entrambi sorgente e destinazione del link,
∗ il link multiplo che mette in relazione una risorsa e un gruppo
di risorse o viceversa,
∗ i link verso sezioni strutturate di un dato documento.
Tutti questi tipi di link, (ve ne sono ancora altri meno noti) non
sono realizzabili con l’HTML; ciò comincia a rappresentare una forte
limitazione per lo sviluppo di ambienti complessi sul Web.
In più bisogna considerare il problema dei link scomparsi.
Ci si imbatte in link scomparsi o “dead link” quando seguendo
un link non si arriva alla pagina desiderata ma si riceve il messaggio di
errore: “404 Page not Found” da parte del server. Ciò accade perché
l’indirizzo della risorsa di destinazione dei link viene riportato
esplicitamente nel documento HTML come valore dell’attributo
Capitolo 1: Introduzione all’XML
12
HREF del tag A, e non in un database o in un altro documento, per cui
in caso di cancellazione della risorsa di destinazione o anche di una
semplice modifica del suo path, non si ha più modo di raggiungere
quella pagina seguendo quel link. Diventa pertanto necessario
modificare tutti i documenti che a quella risorsa avevano un
riferimento se si vuole evitare di lasciare in giro testi contenenti link
scomparsi.
Se si considera la complessità e la vastità del Web, in cui spesso i
documenti hanno collegamenti anche a risorse su server diversi,
amministrati da persone che non sanno neppure chi e come ha
costruito quei link, si capisce come, anche volendo, sarebbe
impossibile arginare il problema dei link scomparsi semplicemente
con il buon senso di modificare tutti i documenti che si sa essere
collegati.
Una soluzione, invece, sarebbe utilizzare nei documenti dei
semplici identificativi contenuti fuori dal documento stesso, in archivi
che, modificati in seguito ad un cambiamento dell’indirizzo della
risorsa, aggiornano immediatamente tutti i collegamenti; ciò è, però,
impossibile con lo stato attuale dell’HTML.
• Mancanza di internazionalizzazione
In genere in HTML, come nella maggior parte dei word
processor, un documento è in un linguaggio specifico, sia esso Inglese,
Giapponese o Arabo. Se un software (a partire dai browser) non può
leggere i caratteri di un dato linguaggio, allora non potrà utilizzare i
documenti scritti in quel linguaggio; software nato per essere
Capitolo 1: Introduzione all’XML
13
utilizzato in un certo paese, non potrà essere utilizzato in un altro
paese se c’è incompatibilità tra le rispettive codifiche dei caratteri. Per
ora la soluzione è che per particolari lingue vi sono software, codifica
dei caratteri e font particolari, che bisognerà installare affinché le
pagine scritte per quei paesi possano essere visualizzate correttamente.
• Problemi di portabilità
Per superare questa serie di limitazioni si è dato inizio allo
sviluppo di una miriade di tecnologie parallele che potessero
assicurare la sopravvivenza dell’HTML stesso, ossia linguaggi come
Javascript, ma anche lo stesso Java o programmi CGI o plug-in come
Acrobat reader. In pratica, l’HTML è diventato un assemblatore di
tecnologie piuttosto che un linguaggio vero e proprio. Questo ha
comportato problemi di portabilità delle applicazioni Web perché tutte
queste nuove tecnologie non sono standard bensì soluzioni
proprietarie più o meno diffuse che necessitano, per essere utilizzate,
di software particolari o particolari versioni di esso.
Tutto ciò è lontanissimo dalla tendenza, sicuramente vincente, di
costruire ambienti standard in grado di permettere la costruzione di
applicazioni portabili a prescindere dal sistema operativo o dal tool di
sviluppo. Non sono affatto rari:
∗ documenti che per essere letti necessitano di Explorer o di
Netscape e che, nel caso siano visualizzati in modo alternativo,
risultano diversi o addirittura illeggibili;
∗ documenti che contengono file che obbligano a scaricare una
miriade di programmi,
Capitolo 1: Introduzione all’XML
14
∗ siti ottimizzati per certe versioni di browser e non per altre,
∗ documenti che non sono accessibili per chi ha versioni troppo
vecchie.
In altre parole il mondo delle applicazioni Web è diventato una
sorte di Babele in cui, per orientarsi, diventa necessaria una certa
competenza che non ne favorisce la diffusione.
1.2 Dall’ SGML all’ XML
Da quanto emerso dal paragrafo precedente è evidente la
necessità di colmare le lacune di HTML e di favorire lo sviluppo del
Web anche in direzioni diverse dalla pubblicazione di documenti.
Quello che serve è un linguaggio che sia estensibile, permetta
una strutturazione del documento (anzi separi struttura da
visualizzazione), ne descriva il contenuto, ne permette una
validazione, fornisca un sistema più efficiente di link, riduca i
problemi di portabilità.
Un linguaggio che possiede buona parte di queste caratteristiche
c’è già ed è addirittura antecedente all’HTML e allo stesso Web:
l’SGML (Standard Generalized Markup Language). Lo stesso HTML
è stato definito usando questo linguaggio, costituendone la sua più
nota “applicazione”.
L’SGML è un meta-linguaggio, ossia un linguaggio che permette
di definire altri linguaggi; in particolare SGML è uno standard
internazionale (standard ISO ossia approvato dall’International