Relazione di ETL - progetto etl

UNIVERSITÁ DEGLI STUDI DI MILANO
Facoltá di Scienze Matematiche Fisiche e Naturali
Corso di Laurea in Informatica
Relazione di ETL
Relazione di
Luca BLEGGI Matr. 718184
Paolo CERUTTI Matr. 679495
Anno accademico 2006 - 2007
Indice
Introduzione
0.1 WordPress, Altervista e blogspot . . . . . . . . . . . . . . . .
1 L’ambiente di lavoro: il blog
1.1 Definizione e origini del termine
1.2 Cenni storici . . . . . . . . . . .
1.3 Strutturazione e funzionamento
1.4 Tipologie di blog . . . . . . . .
1.5 Come creare un blog . . . . . .
2 Google
2.1 Storia dell’azienda . . . . . . .
2.2 Etimologia . . . . . . . . . . . .
2.3 I server . . . . . . . . . . . . . .
2.4 Ottimizzazione . . . . . . . . .
2.5 Strumenti e servizi di Google .
2.5.1 PageRank . . . . . . . .
2.5.2 AdWords . . . . . . . .
2.5.3 AdSense . . . . . . . . .
2.5.4 Alcune opzioni di ricerca
2.5.5 Descrizione strumenti . .
3 W3Schools
3.1 W3C . . . . . . . . . . . . . .
3.1.1 Storia . . . . . . . . .
3.1.2 Membri . . . . . . . .
3.1.3 Principali obiettivi . .
3.1.4 Organizzazione interna
3.1.5 Come lavora . . . . . .
3.1.6 Recommendations . . .
3.1.7 Progetti già realizzati .
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
avanzata .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
8
.
.
.
.
.
9
9
9
10
11
11
.
.
.
.
.
.
.
.
.
.
13
13
14
14
15
16
16
16
16
16
18
.
.
.
.
.
.
.
.
23
23
23
24
24
25
25
26
26
3.2
3.3
3.4
3.5
3.6
3.7
3.8
3.9
3.10
HTML . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Storia e sviluppi . . . . . . . . . . . . .
3.2.2 Sintassi e struttura . . . . . . . . . . .
3.2.3 L’editing . . . . . . . . . . . . . . . . .
3.2.4 Sviluppi . . . . . . . . . . . . . . . . .
XML . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Storia . . . . . . . . . . . . . . . . . .
3.3.2 A cosa serve l’XML . . . . . . . . . . .
3.3.3 Sintassi . . . . . . . . . . . . . . . . .
3.3.4 I Tag . . . . . . . . . . . . . . . . . . .
3.3.5 XML Well Formed e Valid . . . . . . .
3.3.6 Strumenti aggiuntivi per l’XML . . . .
3.3.7 XML e le pagine web: XHTML . . . .
XSL . . . . . . . . . . . . . . . . . . . . . . .
3.4.1 Storia . . . . . . . . . . . . . . . . . .
3.4.2 Struttura . . . . . . . . . . . . . . . .
XSLT . . . . . . . . . . . . . . . . . . . . . .
3.5.1 Storia . . . . . . . . . . . . . . . . . .
3.5.2 Struttura . . . . . . . . . . . . . . . .
DOM . . . . . . . . . . . . . . . . . . . . . . .
3.6.1 Livelli, specifiche e raccomandazioni . .
JavaScript . . . . . . . . . . . . . . . . . . . .
3.7.1 Storia . . . . . . . . . . . . . . . . . .
3.7.2 Java, JavaScript, e JScript . . . . . . .
3.7.3 Aspetti strutturali . . . . . . . . . . .
3.7.4 Uso . . . . . . . . . . . . . . . . . . . .
3.7.5 Filiazioni . . . . . . . . . . . . . . . .
AJAX . . . . . . . . . . . . . . . . . . . . . .
3.8.1 Storia . . . . . . . . . . . . . . . . . .
3.8.2 Principali utilizzi . . . . . . . . . . . .
3.8.3 Confronto con applicazioni tradizionali
3.8.4 Pro e contro . . . . . . . . . . . . . . .
RDF . . . . . . . . . . . . . . . . . . . . . . .
3.9.1 Storia . . . . . . . . . . . . . . . . . .
3.9.2 Principi e Data Model . . . . . . . . .
3.9.3 Rappresentazione fisica del modello . .
SVG . . . . . . . . . . . . . . . . . . . . . . .
3.10.1 Storia degli sviluppi . . . . . . . . . . .
3.10.2 Caratteristiche . . . . . . . . . . . . .
3.10.3 Utilizzo . . . . . . . . . . . . . . . . .
3.10.4 Grafica vettoriale scalabile . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
28
28
29
30
30
31
31
32
32
32
33
33
35
35
36
36
36
37
37
39
40
40
40
41
41
42
43
43
44
45
46
49
49
50
51
51
52
52
53
54
54
5
4 Web 2.0
4.1 Analisi storica . . . . . . . . . . . . . . . . . .
4.2 Differenze e confronti con il Web 1.0 . . . . .
4.3 Dai siti web personali ai blog . . . . . . . . .
4.4 Dai sistemi per Content Management ai Wiki
4.5 Dalla stickiness al syndication . . . . . . . . .
4.6 Strumenti per la creazione di contenuti . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
57
57
58
58
59
59
59
6
Introduzione
In questa relazione presentiamo il lavoro che abbiamo svolto per sostenere
l’esame del corso di Elaborazione Testi Letterali. Richiesta principale è la
realizzazione di un blog, in cui sono presentati alcuni argomenti collegati al
W3C Schools, di cui parleremo in dettaglio più avanti.
In una prima parte presentiamo alcuni concetti generali che stanno alla
base degli strumenti che abbiamo utilizzato per realizzare il blog, vengono
poi presentati gli applicativi utili alla presentazione sul web di questi argomenti e alcuni accenni agli sviluppi sociali che questi comportano. Argomenti
principali di questa sezione sono i blog, gli strumenti offerti da google, alcuni metalinguaggi molto utilizzati in questo periodo e gli sviluppi che hanno
portato all’ideazione del termine Web 2.0.
Nella relazione saranno riportati solo i link indispensabili per raggiungere
i siti e i blog relativi al progetto. Per una ulteriore bibliografia, link utili,
referenze, approfondimenti, invitiamo il lettore a consultare il blog, dove
troverà commentati i link che abbiamo ritenuto utile segnalare per integrare
il nostro lavoro. Questa relazione è da considerarsi integrativa per analizzare
il nostro lavoro riguardo la realizzazione del blog, ma è più sintetica di quanto
invece è presente nel sito riguardo gli argomenti centrali. Invitiamo pertanto
il lettore ad utilizzare parallelamente entrambi gli strumenti.
I concetti che abbiamo presentato nel nostro blog, sono stati raccolti sui
siti ufficali o su alcuni tra i più aggiornati ed attendibili, come:
• http://www.w3c.it/
• http://www.w3.org/
• http://en.wikipedia.org/
Abbiamo poi studiato e rielaborato questi argomenti senza la pretesa di
fornire una guida completa, ma fornendo piuttosto al lettore gli elementi
essenziali per cominciare ad interfacciarsi con questi concetti.
Per quanto possibile è stato cercato di presentare ogni argomento con
una breve descrizione introduttiva, un paragrafo riguardo la storia, una descrizione più dettagliata riguardante alla specificità dell’oggetto in questione,
7
8
il funzionamento e i possibili sviluppi futuri. Ogni pagina del blog si chiude con alcuni link bibliografici, utili per eventuali approfondimenti, esempi,
referenze e tutorial.
0.1
WordPress, Altervista e blogspot
La scelta della piattaforma WordPress non è stata casuale, infatti ci è sembrato opportuno parlare di concetti inerenti al Web 2.0 e al W3C, mettendoli
anche in pratica. WordPress infatti raduna molte tecnologie che presentiamo,
come contenuto, all’interno del nostro blog. Inoltre WordPress è un ottimo
pacchetto, gratuito, che offre la possibilità di creare un blog molto efficace e
professionale.
Citando quanto presente nella home della release in italiano del progetto
WP: “WordPress è nato dal desiderio di un sistema di pubblicazione personale, elegante e ben strutturato, costruito attorno a PHP e MySQL e licenziato
sotto licenza GPL. È il successore ufficiale di b2/cafelog e offre una potente
piattaforma di editoria personale, fornita di un ottimo insieme di funzionalità progettate per rendere l’esperienza di editoria virtuale su Internet la
più semplice, piacevole e attraente possibile.”
Il nostro blog è stato installato su uno spazio web gratuito (progettoetl.altervista.org), perchè ci troviamo in pieno accordo con la possibilità
di un internet gratuito e raggiungibile a tutti e questo chiaramente favorisce
la condivisione di conoscenze tra gli utenti di internet.
L’installazione della piattaforma è piuttosto semplice: si tratta di uploadare tramite protocollo ftp i file necessari ed eseguire uno script php che esegue
una formattazione e configurazione guidata del database MySql. Tramite il
pannello di amministrazione è possibile poi personalizzare il proprio blog
tramite numerosi temi e svariati plug-in.
La pagina “Gli Autori” linka ai blog dei redattori, nei quali sono contenute
le informazioni personali, i commenti, i curriculum vitae, etc.
Capitolo 1
L’ambiente di lavoro: il blog
1.1
Definizione e origini del termine
In informatica, e più propriamente nel gergo di Internet, un blog è un diario
in rete.
Il termine blog è la contrazione di web-log, ovver “traccia su rete”. Il
fenomeno ha iniziato a prendere piede nel 1997 in America; il 18 luglio 1997,
è stato scelto come data di nascita simbolica del blog, riferendosi allo sviluppo, da parte dello statunitense Dave Winer del software che ne permette la
pubblicazione (si parla di proto-blog), mentre il primo blog è stato effettivamente pubblicato il 23 dicembre dello stesso anno, grazie a Jorn Barger,
un commerciante americano appassionato di caccia, che decise di aprire una
propria pagina personale per condividere i risultati delle sue ricerche sul web
riguardo al suo hobby. Nel 2001 è divenuto di moda anche in Italia, con la
nascita dei primi servizi gratuiti dedicati alla gestione di blog.
1.2
Cenni storici
Il termine weblog è stato creato da Barger nel dicembre del 1997, e apparve
per la prima volta nel suo sito personale. La versione tronca blog è stata
creata da Peter Merholz che nel 1999 ha usato la frase “we blog” nel suo sito,
dando origine al verbo “to blog” (ovvero: bloggare, scrivere un blog).
Attraverso i blog la possibilità di pubblicare documenti su Internet si è
evoluta da privilegio di pochi (università e centri di ricerca) a diritto di tutti
(i blogger, appunto).
I blog hanno anche alcune somiglianze con i wiki, nel modo in cui vengono
gestiti gli aggiornamenti, favoriti i commenti dei lettori e stimolate le nascite
di community.
9
10
1.3
CAPITOLO 1. L’AMBIENTE DI LAVORO: IL BLOG
Strutturazione e funzionamento
La struttura è costituita, solitamente, da un programma di pubblicazione
guidata che consente di creare automaticamente una pagina web, anche
senza conoscere necessariamente il linguaggio HTML; questa struttura può
essere personalizzata con vesti grafiche dette template (ne esistono diverse
centinaia).
Il blog permette a chiunque sia in possesso di una connessione internet
di creare facilmente un sito in cui pubblicare storie, informazioni e opinioni
in completa autonomia. Ogni articolo è generalmente legato ad un thread, in
cui i lettori possono scrivere i loro commenti e lasciare messaggi all’autore.
Il blog è un luogo dove si può (virtualmente) stare insieme agli altri e
dove in genere si può esprimere liberamente la propria opinione. È un sito
(web), gestito in modo autonomo dove si tiene traccia (log) dei pensieri; quasi
una sorta di diario personale. Ciascuno vi scrive, in tempo reale, le proprie
idee e riflessioni. In questo luogo cibernetico si possono pubblicare notizie,
informazioni e storie di ogni genere, aggiungendo, se si vuole, anche dei link
a siti di proprio interesse: la sezione che contiene links ad altri blog è definita
blogroll.
Tramite il blog si viene in contatto con persone lontane fisicamente ma
spesso vicine alle proprie idee e ai propri punti di vista. Con esse si condividono i pensieri, le riflessioni su diverse situazioni poichè raramente si tratta
di siti monotematici. Si può esprimere la propria creatività liberamente,
interagendo in modo diretto con gli altri blogger.
Un blogger è colui che scrive e gestisce un blog, mentre l’insieme di tutti
i blog viene detto blogsfera o blogosfera (in inglese, blogsphere). All’interno del blog ogni articolo viene numerato e può essere indicato univocamente attraverso un permalink, ovvero un link che punta direttamente a
quell’articolo.
In certi casi possono esserci più blogger che scrivono per un solo blog.
In alcuni casi esistono siti (come Slashdot) simili a blog, però sono aperti a
tutti.
Alcuni blog si possono considerare veri e propri diari personali e/o collettivi, nel senso che sono utilizzati per mettere on-line le storie personali e i
momenti importanti della propria vita. In questo contesto la riservatezza, il
privato, il personale va verso la collettività.
1.4. TIPOLOGIE DI BLOG
1.4
11
Tipologie di blog
La maggior parte dei blogger usa il blog come diario personale, per far
conoscere i propri sentimenti e le proprie opinioni ai lettori che hanno a
loro volta un blog, ma anche sconosciuti che vagano per la blogsfera (o Blogosfera) passando di link in link. Sono molto diffusi anche i blog tenuti da
giornalisti, oppure i blog umoristici e autoironici, impegnati, satirici, “televisivi” o umoristici; non mancano infine blog di scrittori o di poesia. Alcuni
blog includono interviste o vere e proprie trasmissioni radiofoniche.
1.5
Come creare un blog
Dal 2001 ad oggi sono nati molti servizi in italiano che permettono di gestire un blog gratuitamente. Tra i più utilizzati citiamo: Blogger, Splinder,
Clarence, Blogsome, Tiscali, Il Cannocchiale, Iobloggo, Bloggerbash, Blogdrops, Libero, Windows Live Spaces, MySpace. Esistono poi alcuni network
autogestiti.
Chi invece vuole creare un blog da gestire in totale autonomia, può utilizzare una delle numerose piattaforme di gestione blog; le più diffuse sono:
Wordpress, MovableType, TypePad, dBlog CMS Open Source, Nucleus, Pivot, Dotclear, Drupal. Queste piattaforme possono essere utilizzate su un
dominio proprio (anche con hosting a pagamento), per generare un servizio
maggiormente personalizzato.
12
CAPITOLO 1. L’AMBIENTE DI LAVORO: IL BLOG
Capitolo 2
Google
Google è un motore di ricerca per Internet che non si limita a catalogare
il World Wide Web, ma si occupa anche di immagini, foto, newsgroup, notizie, mappe, video, oltre a mantenere una copia cache di tutte le pagine che
conosce.
Con un indice che comprende più di otto miliardi di pagine Web, è riconosciuto come il più grande e affidabile tra i motori di ricerca, occupandosi
dell’80% di tutte le ricerche effettuate su internet attraverso il suo sito e
avendo clienti come AOL o Microsoft.
La popolarità di Google è talmente grande che nella lingua inglese è nato
il verbo “to google” col significato di ”fare una ricerca sul web”. Allo stesso
modo in tedesco è nato il verbo “googeln”, con lo stesso significato.
2.1
Storia dell’azienda
Google è stato creato nel 1998 da Larry Page e Sergey Brin, allora studenti dell’Università di Stanford, dopo aver sviluppato la teoria secondo cui
un motore di ricerca basato sull’analisi matematica delle relazioni tra siti
web avrebbe prodotto risultati migliori rispetto alle tecniche empiriche usate
precedentemente. Convinti che le pagine citate con un maggior numero di
link fossero le più importanti e meritevoli (Teoria delle Reti), decisero di approfondire la loro teoria all’interno dei loro studi e posero le basi per il loro
motore di ricerca. Fondarono l’azienda nel settembre del 1998.
L’azienda, che ha il proprio quartier generale a Mountain View in California, nel cosiddetto Googleplex, è al momento gestita con capitali privati,
i maggiori detentori di quote sono Kleiner Perkins Caufield & Byers and
Sequoia Capital. Nell’ottobre 2003, discutendo una possibile offerta pubblica iniziale la società fu contattata da Microsoft a proposito di un possibile
13
14
CAPITOLO 2. GOOGLE
accordo o di una fusione; Google rifiutò l’offerta. Nel gennaio 2004 è stata
annunciata l’assunzione di Morgan Stanley e Goldman Sachs Group per organizzare l’offerta pubblica iniziale, che ha raggiunto i 4 miliardi di dollari
americani, dando a Google un capitale di mercato di 12 miliardi di dollari.
Il 9 marzo 2006, Google ha acquistato dalla compagnia Upstartle Writely
un word processor utilizzabile tramite Browser, che permette il salvataggio
dei files prodotti in formati assai diffusi, permettendo una facile interoperabilità con vari Software di produttività personale. Infine, il 9 ottobre 2006,
Google ha rilevato il portale per video amatoriali YouTube, vero fenomeno
di massa tra i giovani per la facilità di condivisione di video amatoriali con
circa 20 milioni di visitatori al mese, per l’astronomica cifra di 1,65 miliardi
di dollari.
2.2
Etimologia
La parola “Google” deriva da googol, termine coniato da Milton Sirotta
(nipote all’epoca minorenne del matematico americano Edward Kasner) nel
1938, per riferirsi al numero rappresentato da 1 seguito da 100 zeri. L’uso
della parola fatto da Google riflette la volontà della società di organizzare
l’immensa quantità di informazioni disponibili sul Web. Inoltre il termine
viene associato con un gioco di parole alla parola ”binocolo” (in inglese goggles) infatti il motore permette di ”guardare da vicino” la rete. La parola
Google infatti richiama ad una fantomatica formula magica capace di trovare
qualsiasi cosa sul web. Riguardo alla derivazione della formula esistono tesi
opposte e contrastanti, ma la più comune la attribuisce ad una popolazione
africana che usava la formula come buon auspicio per la caccia.
2.3
I server
Google utilizza un parco macchine con più di 450.000 computer GNU/Linux
per rispondere alle ricerche e catalogare il web. La catalogazione è fatta da un
programma (googlebot) che richiede periodicamente nuove copie delle pagine
web che conosce. I link in queste pagine vengono esaminati per scoprire nuove
pagine e aggiungerle nel database, il cui indice, insieme alla cache, occupa
milioni di terabyte.
2.4. OTTIMIZZAZIONE
2.4
15
Ottimizzazione
Da quando Google è diventato uno dei motori di ricerca più popolari, molti
webmaster hanno cominciato a seguire e cercare di spiegare i cambiamenti
nel posizionamento (rank) del loro sito.
Una nuova categoria professionale è nata per assistere i webmaster e le
aziende nel migliorare la posizione dei loro siti nei risultati delle ricerche su
Google, cosı̀ come su altri motori di ricerca. Questi consulenti si occupano
di un’attività chiamata “ottimizzazione per i motori di ricerca” (dall’acronimo statunitense SEO: Search Engine Optimization) che si propone di creare
pagine e siti che rispettino le regole (i “gusti”) dei motori di ricerca riuscendo
a migliorare la propria posizione nei risultati delle ricerche.
Sul web si possono trovare discussioni su forum o siti che fanno riferimento
a fenomeni come la Google dance. Si riferisce a un fenomeno, ora non più
presente, che si verificava in un periodo di pochi giorni (circa ogni mese) in cui
Google aggiornava il suo database e di conseguenza i risultati delle ricerche.
Fra una dance e l’altra i risultati rimanevano inalterati. Il termine dance
si riferiva al fatto che per alcuni giorni i risultati delle ricerche variavano
(danzavano quindi) continuamente prima di assestarsi. Nell’estate del 2003
Google ha cambiato le sue abitudini di catalogazione limitando gli effetti della
“danza”: ora i risultati delle ricerche variano in modo dinamico e continuativo
senza nessuno stravolgimento periodico.
Una delle sfide più importanti di Google, ora che il motore è diventato
popolare tra gli utenti del web, è impedire che soggetti spregiudicati riescano
a forzare le debolezze dell’algoritmo per sovvertire i risultati delle ricerche a
loro vantaggio. Molti consulenti di ottimizzazione scarsamente professionali
hanno utilizzato tecniche artificiose e dannose per influire sul posizionamento
dei siti di alcuni loro clienti. Google è riuscito a limitare molti di questi
tentativi raffinando il proprio algoritmo per individuare i siti che realizzano
abusi e limitarne la rilevanza nei risultati (o addirittura rimuovere questi
siti dai suoi archivi). Un corretto posizionamento fra i risultati di Google
può portare a ritorni economici elevati, soprattutto per i siti di e-commerce.
La scelta di un consulente serio è spesso strategica per la sopravvivenza o
il successo di un sito. Per questi motivi, Google ha pubblicato un insieme
di linee guida per aiutare i proprietari di siti a capire come individuare i
consulenti professionali e come evitare truffe e raggiri da parte di operatori
scorretti.
16
2.5
CAPITOLO 2. GOOGLE
Strumenti e servizi di Google
Molti degli strumenti offerti da google, possono rientrare nelle definizioni di
web 2.0. Il numero di questi strumenti cresce di mese in mese. Ci limitiamo
a descriverne i primi ed elencarne i più utilizzati, con qualche parola di spiegazione sul funzionamento e sulle potenzialità di tali strumenti. Rimandiamo
alla bibliografia per un elenco più aggiornato.
2.5.1
PageRank
PageRank è un servizio di Google per dare informazioni sulla “affidabilità”
della pagina grazie al suo grado di visita.
2.5.2
AdWords
Adwords è un semplice servizio di Google che permette la pubblicazione sul
web degli annunci riguardanti il proprio sito. Costi per click e tetti massimi
impostabili. Viene anche denominato “Pay per click” (pubblicità in cui si
pagano i click). Il costo per click dipende anche dalla frequenza con cui la
parola prescelta viene mediamente cercata.
2.5.3
AdSense
È il servizio di Google che permette di mostrare sul proprio sito gli annunci
pubblicati da altri siti tramite Adwords. Adsense permette di guadagnare
una determinata cifra per clik sulla publicità messa nel proprio sito. In genere
questo guadagno si basa su due valori principali, le impressioni (più visite ci
sono e più questo valore è alto, e maggiore sarà il guadagno per clik) e i clik
(un tot cent di dollaro o più per ogni clik sulla pubblicità)
2.5.4
Alcune opzioni di ricerca avanzata
Ricerca con operatori “+” e “-”
Per cercare testi dove compaiono in sequenza (una subito dopo l’altra) due o
più parole chiave occorre separarle col segno “+”: es. l’istruzione “wikipedia+google”
fa comparire le pagine in cui compare la parola wikipedia subito seguita da
google. Nelle posizioni più basse (con minore ranking) si trovano le pagine
che risultano anche da una ricerca senza l’operatore “+” che non è esattamente l’operatore booleano ”AND”, in quanto oltre a cercare entrambi i
termini nel testo, li cerca uno di seguito all’altro. Per cercare invece solo i
risultati che contengono le due parole in sequenza si usano le virgolette (”), si
2.5. STRUMENTI E SERVIZI DI GOOGLE
17
scrive quindi la frase desiderata tra virgolette, e google troverà solo i risultati
che contengono l’intera frase.
In maniera complementare, l’operatore “-” esclude i testi che contengono
una certa parola chiave, e funziona da filtro: es. ”wikipedia -google” ricerca
alcune pagine di Wikipedia, in ciascuna delle quali non compare la parola
“google”.
Ricerca interna ad un sito
Per effettuare una ricerca di parole chiave all’interno di un sito occorre
digitare l’istruzione:
site:nomesito.com uno spazio bianco e le parole chiave.
Un altro modo è scrivere nella barra degli indirizzi: www.google.it/custom?domain=www.nomesito
Compare una barra di Google con un opzione selezionabile per la ricerca
all’interno del sito richiesto.
Ricerca di una definizione
Per cercare la definizione di un termine o il significato di un acronimo basta
digitare nel campo di ricerca di Google “define: termine” dove “termine”
indica la parola da cercare. Ad esempio ”define: TCP” darà come risultato
la definizione della sigla. I risultati di Google-define spesso sono di Wikipedia.
Conversione unità di misura e valute
Digitando “1Û to USD” google convertirà il valore di un euro in dollari
americani. Funziona con tutte le valute e con le unità di misura di tutto il
mondo.
Calcoli matematici e costanti
Si può ottenere il risultato di un calcolo anche complicato digitandolo nel
capo di ricerca utilizzando i comuni operatori matematici.
Esempi: 9 ∗ 2, (5 + 6)/8, 21 6, sqr81
Si possono anche introdurre le costanti matematiche e fisiche: c, e, G, h,
i, k, pi, phi
Indicizzare una pagina web
Occorre scrivere nella barra degli indirizzi www.google.it/addurl.html e nella
pagina aperta digitare URL della pagina web e parole chiave. Se Google
indicizza la pagina, digitando le parole chiave scelte compare fra i risultati.
18
CAPITOLO 2. GOOGLE
Altre funzionalità particolari del motore di ricerca, anche in fase di beta
testing, si trovano all’indirizzo labs.google.com.
2.5.5
Descrizione strumenti
Di seguito riportiamo un elenco di alcuni tra gli strumenti più utilizzati, con
una breve descrizione.
• Blogger - è uno dei siti più utilizzati per creare un blog autoconfigurante, con la possibilità di personalizzare struttura, temi e contenuti. In
pochi minuti è possibile ottenere un blog semplice e funzionale, molto
sintetico e semplice nella gestione e nell’utilizzo. Un aspetto negativo
è la scarsa possibilità di sviluppo personale.
• Google Apps - pacchetto di applicazioni in stile web 2.0. Gratuito
per utenti normali ed istituzioni scolastiche, a pagamento per imprese.
Questo pacchetto software offre la possibilità di registrare un dominio
(10$ per 1 anno) nel quale viene creata una pagina che contiene i link
necessari a Gmail, Google Talk, Google Calendar, Google Docs, Page
Creator and Start Page. Questo pacchetto software è utilizzabile online, senza la necessità di scaricare nulla.
• Google Books - motore di ricerca finalizzato a libri. I testi sono visualizzabili per una lettura on-line (non è possibile ovviamente scaricarli sul
proprio pc) ed è possibile (se loggati con il proprio account di google)
creare una vera e propria libreria virtuale, tramite il sistema di link.
• Google Analytics - questo tool permette di aumentare e monitorare il
traffico sul proprio sito al fine di migliorarne l’efficacia e aumentare i
guadagni.
• Google Calendar - permette di oganizzare i propri impegni e condividere con altri utenti gli eventi di comune interesse. Inoltre è possibile
importare ed esportare calendari nei formati più utilizzati (ad esempio
iCal o ics), ma anche utilizzare dei calendari “pubblici” come quelli
relativi alle festività.
• Google Code Search - motore di ricerca finalizzato al codice di dominio
pubblico.
• Google Desktop search - ricerca nel computer con la stessa rapidità e
semplicità con cui si cerca sul Web con Google.it, avvia applicazioni e
file con pochissimi clic.
2.5. STRUMENTI E SERVIZI DI GOOGLE
19
• Google Earth - combina la potenza delle ricerche di Google con le
immagini satellitari, cartine, terreni e costruzioni 3D per portare le
informazioni geografiche a portata di mouse in pochi clik. Diventa
quindi possibile volare sopra la propria casa, semplicemente inserendo
l’indirizzo, ricercare scuole, posteggi, parchi, ristoranti, hotel e percorsi
stradali. Si può inclinare e ruotare la vista per visionare in dettaglio
il terreno tridimensionale o perfino osservare il cielo e le costellazioni
celesti. Si possono poi anche salvare e condividere le proprie ricerche.
Inoltre è possibile visualizzare direttamente fotografie e commenti per
moltissime località e ricercare diverse strutture e servizi su tutto il
territorio.
• Google Product Search (ex Froogle) - motore di ricerca per compra
vendita di prodotti (equivalente ad eBay).
• Google Labs - raccoglie feedback da parte di utenti riguardo i nuovi
prodotti google in fase di sviluppo.
• Google Maps - è la versione semplificata di Google Earth, consultabile on-line. Vi si possono osservare mappe della terra, con possibilità
di calcolare percorsi, distanze. Sono inoltre possibili diverse visualizzazioni utilizzando immagini satellitari oppure cartine, oppure una
visualizzazione ibrida.
• Google Adsense - permette di ottenere un guadagno derivante, in base
al contratto stipulato, in proporzione al numero di visite e al numero
di clic sulla pubblicità inserita all’interno del proprio sito web.
• Google Mars - collezione di immagini satellitari e link su attività delle
sonde sulla superficie del pianeta. 3 possibili visualizzazioni: elevation,
infrared e visible.
• Google Moon - collezione di immagini satellitari e raccolta di link su
attività delle sonde, delle missioni lunari Apollo sulla superficie del
pianeta. 3 possibili visualizzazioni: elevation, apollo e visible. Inoltre
sono disponibile due cartine, una geologica e una topografica, con molte
informazioni relative al satellite.
• Google Notebook - raccoglie informazioni utili: si possono annotare
testi, immagini e link dalle pagine web senza abbandonare la finestra
del proprio browser. Organizza le annotazioni: si possono creare serie
di annotazioni, divise in sezioni, si possono anche organizzare tramite
“drag-and-drop”. Accesso da ovunque: si può accedere alle note di
20
CAPITOLO 2. GOOGLE
google da qualsiasi computer utilizzando l’account google. Si possono
pubblicare, condividerle e renderle pubbliche. Ora sono anche consultabili da telefono mobile utilizzando l’indirizzo http://www.google.com/notebook/m.
• Google Pack - pacchetto software, scaricabile gratuitamente. Comprende: Google Earth, Google Toolbar, Norton Security Scan, Spyware Doctor Starter Edition, Google Desktop, Picasa, Firefox, Google
Photos Screensaver, Adobe Reader, Google Talk, Skype, RealPlayer,
StarOffice.
• Google Pages - editor di pagine web online, con diversi tool facili da
includere e molti temi da applicare. Semplice, essenziale e facile all’uso.
• Picasa - applicazione per organizzare ed editare foto, fornisce opzioni
di libreria fotografica e semplici effetti.
• Google Reader - news aggregator in grado di leggere Atomi e feed RSS.
Permette all’utente di ricercare, importare e sottoscriversi a feed. Il
servizio include inoltre audio enclosures nella pagina. Notevoli miglioramenti sono stati fatti nell’ottobre 2006.
• Google Scholar - ricerca tra le pubblicazioni accademiche e scientifiche
in lingua inglese
• Google SketchUp - semplice programma per disegnare in 3D con una
semplice interfaccia e integrazione diretta con Google Earth.
• Google Suggest - auto-completamento dei risultati mentre si compie
una ricerca per fornire i più popolari.
• Google Talk - applicazione per VoIP e instant messaging. Consiste di
entrambi i servizi e un client utilizzato per connettersi al servizio, che
utilizza il protocollo XMPP protocol.
• Google Toolbar - toolbar per web browser con opzioni come Google
Search box, protezione da phishing, pop-up blocker e strumenti per i
possessori di siti web per creare buttoni.
• Google Video - motore di ricerca per video e negozi online per clips
sottoscritte internamente da compagnie e pubblico generico. Le principali collaborazioni di video google includono accordi con CBS, NHL
e la NBA. Ricerca inoltre video inseriti all’interno di YouTube.
2.5. STRUMENTI E SERVIZI DI GOOGLE
21
• Google Web Toolkit (in inglese) - sito per gli sviluppatori interessati
agli sviluppi di tool collegati a Google. Il sito contiene codice Open
Source e una lista dei loro servizi API.
• iGoogle - homepage personalizzabile, che può contenere Web feeds e
Google Gadgets (da maggio 2005).
22
CAPITOLO 2. GOOGLE
Capitolo 3
W3Schools
3.1
W3C
Il World Wide Web Consortium (W3C) è la principale organizzazione internazionale per gli standard per il World Wide Web (abbreviato con WWW o
W3). Esso è organizzato come un consorzio, dove le organizzazioni membo
mantengono a tempo pieno dipendenti che hanno lo scopo di collaborare con
obiettivo comune gli standard per il W3.
3.1.1
Storia
Nell’ottobre del 1994 Tim Berners Lee, considerato padre del Web, fondò al
MIT (Massachusset Institute of Technlogy), in collaborazione con il CERN
(il laboratorio dal quale proveniva), un’associazione di nome World Wide
Web Consortium (abbreviato W3C), con lo scopo di migliorare gli esistenti
protocolli e linguaggi per il WWW e di aiutare il Web a sviluppare tutte le
sue potenzialità.
Nell’aprile del 1995 l’INRIA (Istituto Nazionale di Ricerca Informatica ed
Automatica francese) divenne il primo membro europeo dell’organizzazione.
Nel 1996 approdò anche l’Asia, grazie alla Keio University of Japan.
Nel 2003 l’ERCIM (Il Consorzio Europeo di Ricerca in Informatica e
Matematica) prese il ruolo di host europeo del W3C dall’INRIA (che è
l’istituzione francese dell’ERCIM).
Il W3C è ancora guidato da Tim Berners-Lee, il creatore del primo web
browser e il principale autore delle specifiche originali di URL (Uniform Resource Locator), di HTTP (HyperText Transfer Protocol) e di HTML (HyperText Markup Language), che sono le principali tecnologie che formano le
basi del World Wide Web.
23
24
CAPITOLO 3. W3SCHOOLS
A marzo 2007, il W3C aveva superato i 440 membri ed è sempre aperto
all’adesione di nuove organizzazioni.
Il W3C si impegna anche nel campo dell’educazione e della ricerca, sviluppa software e funge da “open forum” per discussioni riguardanti il Web.
3.1.2
Membri
Attualmente il W3C comprende circa 450 membri, tra questi:
• aziende informatiche del calibro di Microsoft, Oracle, IBM, Sun Microsystems, Apple, Macromedia, Adobe, Google, Intel, Cisco Systems,
Sony, Siemens e aziende telefoniche come Ericsson, Nokia, NTT DoCoMo;
• società di grandi dimensioni appartenenti ai più svariati settori, ma
strategicamente interessate alla crescita del Web: American Express,
Agfa-Gevaert N. V., Boeing, ChevronTexaco;
• associazioni come la Mozilla Foundation e The Open Group;
• università e istituzioni per la ricerca: innanzitutto il CSAIL del MIT,
Inria e altri membri dell’ERCIM e Keio University; altre istituzioni
ospitano gli uffici nazionali del Consorzio (per l’Italia l’ISTI di Pisa
del CNR); sono numerose le università e gli istituti di ricerca tra i
più prestigiosi:, come l’Academia Sinica, la Library of Congress, il Los
Alamos National Laboratory, il National Institute of Standards and
Technology.
L’importanza dei suoi membri fa del W3C un organismo di grande autorevolezza e molti sono portati a chiamarlo il Consorzio, per antonomasia.
3.1.3
Principali obiettivi
Il web ormai non è più uno strumento per “appassionati”, ma è diventato
parte integrante della vita comune dell’essere umano. Attualmente esistono
diversi tipi di apparecchi (come cellulari e PDA) che accedono ad internet.
Ciò è possibile solo grazie ad un “comune linguaggio di comunicazione” (nello
specifico protocollo di comunicazione e linguaggio in cui è scritto il file) tra
server, PC ed altri dispositivi. Il W3C si occupa di aggiornare e creare queste
specifiche.
Il Web ha un potenziale praticamente illimitato, ed apre nuove strade
anche ai portatori di handicap. Il W3C cerca di studiare i modi per rendere
quanto più agevole l’accesso al web.
3.1. W3C
25
Il web è unico perchè è libero. Chiunque può creare un documento html
e metterlo gratuitamente online. Il W3C cerca di evitare che interessi di
qualsiasi genere possano porre un freno a questa assoluta libertà.
Comprensibile quindi che il motto del Consorzio sia “To lead the World
Wide Web to its full potential by developing protocols and guidelines that
ensure long-term growth for the Web”.
3.1.4
Organizzazione interna
L’Advisory Committee è la mente dell’organizzazione. È un organismo formato da un membro per ogni società iscritta al W3C. Si occupa di rivedere i
piani del W3C, effettuare a grandi linee revisioni delle tecnologie attualmente
esistenti, eleggere i membri dell’Advisory Board.
Il W3C Team può essere visto come le braccia dell’organizzazione. È
formato da professionisti pagati e da membri inviati dalle società membro.
Si occupa di organizzare e gestire le attività del gruppo.
L’Advisory Board ha solo un ruolo di consigliere e non ha alcun potere
decisionale. Essa ha il compito di risolvere controversie legali che potrebbero
presentarsi. È formata da 9 membri in carica per 2 anni. Le elezioni sono
state organizzate in modo da far decadere 4 o 5 membri l’anno. Il presidente
di questo organismo è chiamato Chairman. Egli può invitare membri del
Team a partecipare ad una riunione. L’elezione dei membri avviene quando il Chairman manda un avviso all’Advisory Committee. Tale avviso deve
contenere il numero di persone da eleggere, il tempo massimo per farlo e
l’indirizzo a cui spedire i risultati. Tali risultati devono contenere un’informativa sul candidato e non possono essere mandati senza il consenso dello
stesso.
3.1.5
Come lavora
Per comodità, le attività del W3C sono state divise in 4 aree di lavoro (in
gergo chiamate domini):
• Architecture Domain: ha il compito di gestire la tecnologia che è alla
base del web.
• Interaction Domain: cerca di semplificare l’interazione uomo-informazioni
ed il modo di connettersi al web.
• Technology and Society Domain: ha il ruolo di adattare l’infrastruttura
tecnologica agli interessi sociali, legali e pubblici.
26
CAPITOLO 3. W3SCHOOLS
• Web Accessibility Initiative (WAI): il suo lavoro è garantire che chiunque possa sfruttare appieno le potenzialità del web. Il suo lavoro
si articola in 5 aree tematiche: tecnologia, linee guida, strumenti,
educazione ed aiuto ai bisognosi, ricerca e sviluppo.
Per questo esiste la Quality Assurrance che formalizza i progressi fatti dai
domini in documenti (chiamati Recomendations) che sono la principale fonte
d’informazione per chiunque voglia creare nel web, e la Patent Policy che si
assicura che questi progressi non violino alcun diritto d’autore o brevetto.
3.1.6
Recommendations
La definizione di uno standard nell’ambito del W3C passa attraverso gli stadi
di Working Draft, Last Call, Proposed Recommendation e Candidate Recommendation e si conclude con la pubblicazione di una Recommendation. Una
Recommendation può venire migliorata da documenti di Errata pubblicati
separatamente, fino a che il complesso delle modifiche non richiede di produrre una nuova versione della Recommendation. Ad es. XML è ora alla sua
terza Edizione. Talora una Recommendation viene ritirata per essere riorganizzata attraverso un nuovo procedimento: questo è accaduto alla recommendation di RDF. Il W3C inoltre pubblica delle note (appunti) informative
che non pretendono di essere trattate come standard.
Il Consorzio non è un corpo di standardizzazione, come invece lo sono
l’ISO, ITU-T o la Commissione Elettrotecnica Internazionale (IEC); esso
si limita a sollecitare i produttori a seguire le sue raccomandazioni. Contrariamente ai corpi di standardizzazione W3C non ha un programma di
certificazione e molti dei suoi standards de facto non definiscono formalmente i livelli di conformità. Conseguentemente molte Recommendations
sono implementate solo parzialmente.
3.1.7
Progetti già realizzati
Nell’ambito del W3C sono state proposte, discusse, definite e ufficializzate
oltre 50 specifiche tecniche di vasta portata:
• il protocollo HTTP, le specifiche per gli identificatori URI e i locatori
URL per le risorse sul Web (in collaborazione con IETF);
• lo strategico metalinguaggio XML;
• i linguaggi per i documenti Web HTML, XHTML, MathML, SVG,
XForms, XLink, Xpath, XPointer, SMIL, RDF, OWL, ;
3.1. W3C
27
• gli strumenti per il governo dello stile CSS, XSL e XSLT;
• gli strumenti per il controllo dei contenuti come RDF ed OWL;
• le linee guida per l’accessibilità WAI, i profili CC/PP, l’interfaccia
DOM, le piattaforme P3P e PICS;
• il formato grafico PNG e il formato per inchiostro digitale InkML.
Nell’ambito del W3C vengono sviluppati prodotti software del genere
open-source e pubblicazioni liberamente scaricabili finalizzati alla promozione
e al sostegno del WWW. In particolare segnaliamo il browser/web-editor
Amaya, la piattaforma Java per HTTP 1.1 Jigsaw, la Web API Libwww.
Sono poi resi disponibili vari programmi validatori: per fogli di stile CSS,
per HTML e i linguaggi collegati, per i sistemi di links, per RDF, per
XMLSchema, etc .
Il Consorzio organizza e promuove nell’ambito internazionale convegni e
seminari volti a stimolare e discutere criticamente le prospettive del Web ed
a stimolare l’adozione delle sue Recommendations e Guidelines.
Considerando nel loro complesso le specifiche, gli strumenti e le attività promozionali sviluppati nell’ambito del W3C si deve sottolineare che essi compongono un disegno complessivo di grande portata e lungimiranza,
basato su una lucida consapevolezza dell’importanza che il Web riveste per
il mondo attuale.
Molte delle iniziative del Consorzio hanno avuto pieno successo. Di fatto
ha determinato vari standard ampiamente adottati, la cui autorevolezza ha
dato ordine e organicità alla crescita del Web dagli ultimi anni ’90 ad oggi.
Occorre dire che alcune Recommendations sono state definite dopo dibattiti
molto accesi che hanno visto lo scontro di grandi interessi industriali contrapposti. In questo senso il Consorzio si può considerare un ambiente che
favorisce il raggiungimento di compromessi molto utili per la crescita aperta
del Web.
Altre iniziative invece non hanno ottenuto le adesioni sperate e molti
standard avanzati non si sono imposti. In particolare, mentre XML viene
adottato da numerose nuove iniziative di interscambio di documenti e di
interoperabilità, la transizione per i documenti più basilari da HTML ad
XHTML, anche se va nella direzione della piena adozione di XML, sembra
poco rilevante.
28
3.2
CAPITOLO 3. W3SCHOOLS
HTML
HTML è l’acronimo per Hyper Text Mark-Up Language, è il linguaggio di
markup predominante per le pagine web, è un linguaggio usato per descrivere
i documenti ipertestuali disponibili nel Web. Gran parte dei siti web presenti
su Internet sono costituiti da codice HTML, questo codice è letto ed elaborato
dal browser, il quale genera la pagina come noi la vediamo. L’HTML non è un
linguaggio di programmazione, ma un linguaggio di markup, ossia descrive il
contenuto, testuale e non, di una pagina web. HTML (.html) o HTM (.htm)
è l’estensione comune dei documenti HTML.
Esso fornisce una maniera per descrivere la struttura di informazioni
basate su testo in un documento - denotando alcuni testi come “headings”,
“paragraph”, “list” e cosı̀ via - e per supporto a questo testo con una forma
interattiva, inmmagini e altri oggetti. L’HTML è scritto utilizzando “labels” (chiamate anche tags), contornate da parentesi angolari. L’HTML può
anche descrivere, l’apparenza e la semantica di un documento e può anche
includere codice di linguaggio di scripting incapsulato, che può modificare il
comportamento del browser.
3.2.1
Storia e sviluppi
È stato sviluppato alla fine degli anni ’80 da Tim Berners-Lee al CERN di
Ginevra. Verso il 1994 ha avuto una forte diffusione, in seguito ai primi
utilizzi commerciali del web.
HTML è un linguaggio di pubblico dominio la cui sintassi è stabilita dal
World Wide Web Consortium (W3C), e che è basato su un altro linguaggio
avente scopi più generici, l’SGML. Durante gli anni l’HTML ha subito molte
revisioni e miglioramenti, che sono stati indicati secondo la classica numerazione usata per descrivere le versioni dei software. Attualmente l’ultima
versione disponibile è la versione 4.01, resa pubblica il 24 dicembre 1999.
Da allora, da parte del W3C non è stata manifestata alcuna intenzione di
apportare ulteriori modifiche all’HTML, poichè verrà presto sostituito dai
nuovi linguaggi XHTML ed XML.
Origini
Nel 1980, il fisico Tim Berners-Lee, il quale era collaboratore indipendente
presso il CERN, propose un prototipo chiamato ENQUIRE, un sistema di
ipertesto per i ricercatori del CERN per condividere i propri documenti.
Nel 1989, Berners-Lee e Robert Cailliau, avanzarono nuove proposte per un
sistema per ipertesti rivolto alla rete internet, che forniva funzionalità simili
3.2. HTML
29
al precedente. Nell’anno successivo collaborarono ad una proposta congiunta,
il WorldWideWeb (W3) project, che fu accettata dal CERN.
Prime specifiche
Dal 1991 comparvero i primi documenti pubblici, ad opera di Berners-Lee,
che descrivevano l’HTML, i tags e alcuni elementi per il design. Berners-Lee
considerò l’HTML inizialmente come una applicazione di SGML, ma non
venne formalmente definito come tale fino ad una pubblicazione del 1993,
dal IETF, che fù la prima proposta di specifica per l’HTML: “Berners-Lee
and Dan Connolly’s ”Hypertext Markup Language (HTML)” Internet-Draft,
which included an SGML Document Type Definition to define the grammar”.
Da qui vennero poi sviluppate e presentate svariate versioni come “HTML+
(Hypertext Markup Format)”, da Dave Raggett, che standardizzava caratteristiche già implementate come tabelle e fill-out forms. Nel 1994, l’IETF
creò l’HTML Working Group, che completò nel 1995 “HTML 2.0”, la prima
specifica considerata e trattata come standard.
Dal 1996, ulteriori sviluppi da parte di IETF e di World Wide Web
Consortium (W3C) furono spinti da parte di venditori di software commerciale. Nel 2000 l’HTML divenne uno standard (ISO/IEC 15445:2000).
L’ultima specifica è stata pubblicata dal W3C nell’articolo “HTML 4.01
Recommendation” nel 1999 e rivista nel 2001.
3.2.2
Sintassi e struttura
Ogni documento ipertestuale scritto in HTML deve essere contenuto in un
file, la cui estensione deve essere .htm o .html. L’atomo principale della
sintassi di questo linguaggio è l’elemento. Gli elementi sono le strutture
del linguaggio a cui è delegata la funzione di formattare i dati o indicare
al Web browser delle informazioni. Ogni elemento è racchiuso all’interno di
tag, uno di apertura ed uno di chiusura. Quest’ultimo, per certi elementi, è
opzionale. I tag sono dei segnalini (markup) costituiti da una sequenza di
caratteri, racchiusi da due parentesi angolari (Esempio: < br >; il tag di
questo esempio serve per indicare un ritorno a capo). Spesso le informazioni
su cui “agisce” il tag devono essere racchiuse fra un tag di apertura ed uno
di chiusura, quest’ultimo indicato apponendo il carattere slash (/) dopo la
parentesi angolare aperta (Esempio: < b >testo testo testo< /b >. In questo
caso, il testo compreso tra questi due tag verrà visualizzato in grassetto dal
browser.
Un documento HTML comincia con l’indicazione della DTD (Document
Type Definition), la quale dice al browser l’URL delle specifiche html che stia-
30
CAPITOLO 3. W3SCHOOLS
mo utilizzando per il nostro documento (indicando quindi, implicitamente,
quali elementi, attributi ed entità possiamo utilizzare). Tutte le informazioni
contenute nel documento devono essere indicate tra i tag < HT M L > e
< /HT M L >. All’interno di questi due tag la sintassi HTML permette due
sezioni: una racchiusa tra i tag < HEAD > e < /HEAD >, ed una racchiusa tra i tag < BODY > e < /BODY >. All’interno della prima sezione
sono indicate delle informazioni generali riguardanti l’intero documento e
che non vengono visualizzate dal browser. All’interno della sezione body
sono indicate tutte le informazioni effettivamente presenti nel documento.
3.2.3
L’editing
Il tag principale dell’HTML è probabilmente il tag < A >, che descrive
un collegamento (o link) ad un altro documento ipertestuale. Sui browser
grafici è possibile chiedere al computer di passare alla risorsa indicata dal
link semplicemente facendo un clic con il mouse.
L’HTML prevede tag specifici per far fronte a molte necessità di formattazione e per fornire molte funzionalità, come ad esempio la visualizzazione
di immagini e filmati, o l’accompagnamento audio della pagina, la visualizzazione di tabelle, la visualizzazione di liste, la gestione delle informazioni da
passare ai motori di ricerca o ancora l’aspetto grafico del documento.
Un’ulteriore ed importante caratteristica di HTML è che esso è stato concepito per definire il contenuto logico e non l’aspetto finale del documento. I
dispositivi che possono accedere ad un documento HTML sono molteplici e
non sempre dotati di potenti capacità grafiche. Proprio per questo gli sviluppatori di HTML hanno optato per un linguaggio che descrivesse dal punto di
vista logico, piuttosto che grafico il contenuto dei documenti. Questo significa
che non esiste alcuna garanzia che uno stesso documento venga visualizzato
in egual modo su due dispositivi. Se da una parte questo ha imposto in passato dei forti limiti agli sviluppatori di pagine Web, ha dall’altro garantito la
massima diffusione di Internet ed evitato che essa diventasse un medium di
èlite.
Al giorno d’oggi pochi sviluppatori si occupano di scrivere una pagina web
direttamente nel linguaggio HTML. Questo compito è invece spesso delegato
ad un software detto editor WYSIWYG, che permette allo sviluppatore di
occuparsi dell’aspetto grafico finale della pagina.
3.2.4
Sviluppi
Attualmente i documenti HTML incorporano molte tecnologie, che offrono
la possibilità di aggiungere al documento ipertestuale delle animazioni inter-
3.3. XML
31
attive o degli effetti particolari. Si tratta di linguaggi come CSS, JavaScript
o Java, o di altre applicazioni multimediali di animazione vettoriale o di
streaming audio.
In futuro HTML verrà probabilmente soppiantato dai suoi successori
XHTML e XML, che rendono il codice estensibile; questo significa che in
XHTML e in XML è possibile definire e usare nuovi elementi, in aggiunta a
quelli definiti in HTML.
3.3
XML
L’XML, acronimo di eXtensible Markup Language, ovvero “Linguaggio di
marcatura estensibile” è un metalinguaggio creato e gestito dal World Wide
Web Consortium (W3C), e più precisamente dal presidente di tale “consorzio”, Michael Sunshine. È una semplificazione e adattamento dell’SGML,
da cui è nato nel 1998, e permette di definire la grammatica di diversi
linguaggi specifici derivati.
3.3.1
Storia
Internet ed il Web, per la loro stessa natura non centralizzata ed aperta a
macchine e persone di diversa natura, 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.
Tuttavia, 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 ufficiale. Il risultato di tale battaglia era
che un sito Web che voleva utilizzare le estensioni proprietarie di un browser
rischiava di risultare inaccessibile agli altri browser. La situazione peggiorò
con l’introduzione del Dynamic HTML, le cui implementazioni erano quasi
totalmente arbitrarie.
In questo panorama il W3C era costretto a rincorrere le evoluzioni de facto dell’HTML e doveva scegliere quali caratteristiche standardizzare e quali
invece lasciare fuori dalle specifiche ufficiali dell’HTML.
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. Fu cosı̀ che nel 1996 si costituı̀
32
CAPITOLO 3. W3SCHOOLS
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ı̀, come era già accaduto in passato per l’HTML, dal linguaggio SGML (Standard Generalized Markup Language), un meta-linguaggio
per la definizione di linguaggi di markup. Questo linguaggio risultava però
troppo complesso per gli scopi della ricerca e pertanto fu snellito da alcune
caratteristiche e semplificato in alcuni punti per renderlo adatto allo scopo.
Nel dicembre ’97 le specifiche di XML venivano pubblicate come Proposed
Recommendation. Tuttavia, 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.
Esso 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.
3.3.2
A cosa serve l’XML
Rispetto all’HTML, l’XML ha uno scopo ben diverso: mentre il primo è
un linguaggio creato principalmente per la descrizione e la formattazione di
pagine web e, più in generale, di ipertesti, il secondo è un meta linguaggio
utilizzato per creare nuovi linguaggi, atti a descrivere documenti strutturati.
Mentre l’HTML ha un insieme ben definito e ristretto di tag, con l’XML è
invece possibile definirne di propri a seconda delle esigenze.
L’XML è oggi molto utilizzato anche come mezzo per l’esportazione di
dati tra diversi DBMS (Database Management System).
3.3.3
Sintassi
La prima riga indica la versione di XML in uso e specifica la codifica ISO per
la corretta interpretazione dei dati. L’XML non riconosce i caratteri speciali
all’interno di una sua struttura: le lettere accentate, la & (e commerciale) ed
altri vanno quindi sostituiti con le rispettive sequenze Unicode.
3.3.4
I Tag
L’XML, come l’HTML, utilizza dei marcatori, detti tag, per assegnare una
semantica al testo. L’XML è molto rigido sulla sintassi da seguire rispetto
all’HTML ed è pertanto necessario rispettare alcune regole: i tag non possono
3.3. XML
33
iniziare con numeri o caratteri speciali e non possono contenere spazi; i tag
devono essere bilanciati, ovvero non sono consentiti errori di annidamento.
Per poter essere correttamente interpretato da un browser, un documento
XML deve essere ben formato, deve cioè possedere le seguenti caratteristiche:
• Un Prologo, che è la prima istruzione che appare scritta nel documento.
• Un unico Elemento radice (ovvero il nodo principale) che contiene tutti
gli altri nodi del documento.
• All’interno del documento tutti i Tag devono essere bilanciati.
3.3.5
XML Well Formed e Valid
Un documento XML viene considerato Well Formed se non contiene errori di
sintassi, tutti tag sono bilanciati ed esiste un unico nodo radice che contiene
tutti gli altri. Se il documento è Well Formed e in più rispetta i requisiti
strutturali definiti nel DTD o nell’XML Schema si dice Valid.
3.3.6
Strumenti aggiuntivi per l’XML
L’XML non si esaurisce qui: esistono diversi strumenti legati all’XML, ognuno con uno scopo differente:
• DTD (acronimo di Document Type Definition): è un documento attraverso cui si specificano le caratteristiche strutturali di un documento XML attraverso una serie di “regole grammaticali”. In particolare
definisce l’insieme degli elementi del documento XML, le relazioni gerarchiche tra gli elementi, l’ordine di apparizione nel documento XML
e quali elementi e quali attributi sono opzionali o meno.
• XML Schema: come la DTD, serve a definire la struttura di un documento XML. Oggi il W3C consiglia di adottarlo al posto della DTD
stessa, essendo una tecnica più nuova ed avanzata. La sua sigla è XSD,
acronimo di XML Schema Definition.
• XLink: serve a collegare in modo completo due documenti XML; al contrario dei classici collegamenti ipertestuali che conosciamo in HTML,
XLink permette di creare link multidirezionali e semanticamente avanzati.
• XSL (acronimo di eXtensible Stylesheet Language): è il linguaggio con
cui si descrive il foglio di stile di un documento XML. La sua versione
estesa è l’XSLT (dove la T sta per Trasformations).
34
CAPITOLO 3. W3SCHOOLS
• XPath: è un linguaggio con cui è possibile individuare porzioni di un
documento XML e sta alla base di altri strumenti per l’XML come
XQuery. A supporto di questo scopo principale, fornisce anche elementari funzionalità per trattare stringhe, numeri e dati booleani. Il suo
funzionamento si basa sulla creazione di un albero a partire dal documento e la sintassi succinta permette di indirizzare una specifica parte
attraverso i nodi dell’albero con la semplice parola path.
• XPointer: serve ad identificare univocamente precise porzioni di un
documento XML; consente poi il loro accesso ad altri linguaggi o oggetti
di interfaccia.
• XQuery: è un linguaggio di query concepito per essere applicabile a
qualsiasi sorta di documento XML e si basa sull’utilizzo di XPath per
la specificazione di percorsi all’interno di documenti. XQuery ha funzionalità che consentono di poter attingere da fonti di dati multiple per
la ricerca, per filtrare i documenti o riunire i contenuti di interesse.
• SAX (Simple API for XML): è un’interfaccia di programmazione, implementata in numerosi linguaggi, che permette di leggere e modificare
i documenti XML. Attraverso SAX è possibile implementare dei parser XML specifici. SAX è event base, al contrario di DOM, e reagisce
agli eventi di parsing facendo rapporto all’applicazione. È compito
del programmatore implementare i metodi per reagire agli eventi di
parsing.
• DOM: è un’interfaccia di programmazione, come SAX, implementata in
una moltitudine di linguaggi di programmazione, per la manipolazione
di file XML. DOM costruisce partendo dal file XML un albero dove
ogni nodo dell’albero corrisponde ad un elemento del file; per questo
motivo è detta tree based. DOM è più facile ed immediata da utilizzare
rispetto a SAX ed è pertanto preferita solitamente dai programmatori
per manipolare un file XML; purtroppo l’albero generato da DOM va
mantenuto completamente nella memoria RAM e di conseguenza non è
possibile utilizzare questa interfaccia per manipolare file che siano più
grandi della memoria disponibile sul computer.
• XForms: come il suo nome lascia intendere, è un linguaggio nato per
creare moduli (forms) di tipo HTML all’interno di un documento XML.
• RSS: è uno standard che serve a creare un documento con una struttura
di tipo XML univoca, atta allo sviluppo di un semplice scambio dati
tra pagine Web ed accessibile da qualsiasi linguaggio di scripting. In
3.4. XSL
35
sostanza si tratta di un documento XML la cui struttura dei nodi ed i
relativi tag hanno lo stesso nome.
• SVG (Scalable Vector Graphics): è uno standard per la creazione di immagini vettoriali che sfrutta dei documenti formattati in XML. Serve inoltre a descrivere immagini bidimensionali, statiche e dinamiche. Leggendo le istruzioni contenute nel documento sorgente XML, l’interprete
disegna le figure-base fino al completamento dell’immagine.
3.3.7
XML e le pagine web: XHTML
L’HTML tradizionale non è un vero standard data la sua eccessiva flessibilità
ed il suo funzionamento immutato anche in presenza di errori semantici, sintattici e grammaticali. Ad affiancarlo c’è XHTML, ovvero l’HTML tradizionale
basato su XML, con la sua struttura rigida e con le sue stesse regole.
Ad esempio in XHTML, al contrario che in HTML tradizionale, i tag
vuoti vanno chiusi con uno slash (/) finale, gli attributi vuoti devono essere
valorizzati con true o false, la chiusura dei tag dev’essere a specchio (se viene
aperto un Tag e prima di chiuderlo ne viene aperto un altro, è necessario
chiudere prima il secondo tag e poi il primo), molti Tag e molti attributi sono
scomparsi, i caratteri speciali vanno gestiti, insieme ad altre peculiarità, ma
soprattutto esiste una DTD dedicata.
Una pagina XHTML (ovvero un codice XHTML, dato che l’estensione
della pagina prescinde dal codice in questo caso) non funziona se scritta
scorrettamente e inviata con il mime type corretto (application/xhtml+xml).
Quando è inviata come text/html funziona perchè viene interpretata come
html (con degli errori, quali i tag chiusi come < br/ >) solo che non rispetta
lo standard e non gode dei suoi vantaggi, primo tra i quali la portabilità su
browser e client differenti.
3.4
XSL
L’XSL, acronimo di eXtensible Stylesheet Language, è il linguaggio di descrizione dei fogli di stile per i documenti in formato XML. Com’è noto,
lo standard XML prevede che i contenuti di un documento siano separati
dalla formattazione della pagina in cui verranno pubblicati. D’altra parte
è proprio questa distinzione a costituire uno dei punti di forza dell’XML
come metalinguaggio, in quanto massimizza la possibilità di associare molti
e diversi linguaggi di marcatura agli elementi del documento, arricchendone
le proprietá semantiche. L’XSL permette di visualizzare lo stesso file XML
36
CAPITOLO 3. W3SCHOOLS
in formati diversi: come pagina web, come pagina stampabile oppure come
traccia per un’esposizione orale.
3.4.1
Storia
XML è una semplificazione del più complesso SGML (Standard Generalized
Markup Language). Anche XSLT ha un suo antesignano: DSSSL (Document Style Semantics and Specification Language), che serve per elaborare
i contenuti SGML e che appare tra le raccomandazioni W3C nei primi anni
’90.
XSLT vede i natali qualche anno dopo. Nell’aprile 1999 viene proposto
come linguaggio di trasformazione all’interno della bozza di descrizione di
XSL e nel novembre dello stesso anno diventa ufficialmente una Raccomandazione.
3.4.2
Struttura
L’XSL incorpora tre linguaggi:
• XSL Transformations (XSLT): il linguaggio di trasformazione dell’XML;
• XSL Formatting Objects (XSL-FO): usato per l’applicazione degli stili
e del modo di apparizione a un documento XML.
• XML Path (XPath): è usato nei fogli di stile XSLT per descrivere come
accedere alle parti di un documento XML.
Tutti questi linguaggi sono codificati e gestiti dal W3C.
Attualmente sono disponibili diverse implementazioni XSL; le versioni
recenti di tutti i principali browser, in particolare Internet Explorer e Mozilla,
supportano la trasformazione di XML in HTML tramite XSL.
Lo standard XSL-FO è molto meno diffuso. La maggior parte delle implementazioni disponibili (se non tutte) sono parziali. FOP, che fa parte del
progetto Apache, può visualizzare una gran parte dello standard XSL-FO
in vari formati, tra cui il dffuso PDF. Il pacchetto PassiveTeX è un’altra
implementazione che usa TeX per convertire XSL-FO in PDF.
3.5
XSLT
L’XSLT (eXtensible Stylesheet Language Transformations) è il linguaggio di
trasformazione dell’XML; deriva direttamente dal linguaggio XSL, infatti i
3.5. XSLT
37
file di questo formato sono essenzialmente file di testo, contengono elementi
ed attributi ed hanno l’estensione “.xsl”.
XSLT è un linguaggio basato su XML che permette di definire delle regole per trasformare un documento XML in un altro documento XML o in un
documento HTML. Utilizzando XSL possiamo ad esempio visualizzare il contenuto di un documento XML in HTML, XHTML o SVG. La trasformazione
viene realizzata da un XSLT Processor che riceve come input il file XML
da trasformare, il file XSL con la definizione dello stylesheet da applicare e
produce come output il file trasformato. Un file XSL è formato da una serie
di template (modelli) che contengono le regole di trasformazione dei tag del
documento XML. Questi template vengono applicati ai tag corrispondenti
dal XSLT Processor in maniera ricorsiva nel corso della trasformazione.
3.5.1
Storia
L’XSLT è diventato uno standard web con una direttiva (Reccomandation)
W3C del 16 novembre 1999. L’obiettivo principale per cui l’XSLT è stato
creato è rendere possibile la trasformazione di un documento XML in un
altro documento.
3.5.2
Struttura
Ci possono essere due casi specifici di trasformazione: da un documento XML
a un altro documento XML (adatto a specifiche applicazioni), oppure da un
documento XML ad un altro formato (ad esempio HTML, XHTML, WML
- il linguaggio delle pagine WAP - e RTF). L’XSLT può essere usato per
entrambi.
Per generare una trasformazione XSLT occorrono due file: il documento
da trasformare (in XML) ed un documento contenente il foglio di stile XSL,
che fornisce la semantica per la trasformazione. Il foglio di stile XSL vede un
documento XML come una serie di nodi strutturati ad albero. È formato da
un insieme di modelli (template) che contengono le regole di trasformazione
dei tag del documento XML. Nella sintassi XSL, i template sono elementi, a
ciascuno dei quali corrisponde l’attributo match, associato al nodo che verrà
trasformato.
È possibile anche aggiungere al documento trasformato elementi completamente nuovi o non prendere in considerazione determinati elementi del
documento origine, riordinare gli elementi, fare elaborazioni in base al risultato di determinate condizioni, ecc. In termini strutturali, il foglio di stile
XSL specifica la trasformazione di un albero di nodi in un altro albero di
nodi.
38
CAPITOLO 3. W3SCHOOLS
Un processore XSLT può trattare sette tipi di nodi presenti in un documento XML:
• Elemento radice
• Attributi
• Commenti
• Elementi
• Namespace
• Istruzioni di elaborazione
• Testo
La trasformazione avviene attraverso un apposito programma detto processore XSLT, che riceve in input il documento XML, da cui prende i contenuti (file 1), poi prende dal foglio di stile (file 2) la struttura e le regole di
presentazione e produce in output il documento XML trasformato (file 3).
Il processore XSLT segue la struttura gerarchica del documento di partenza
(1): individua ciascun nodo grazie alle istruzioni contenute nel foglio di stile
(2), che esegue ricorsivamente, nodo per nodo. Quando il processore trova
una corrispondenza (matching), succede che al contenuto dell’elemento di (1)
vengono applicate le regole del template contenuto in (2). Il primo elemento
template contiene le regole di trasformazione dell’Elemento radice del file di
input, normalmente indicato con “/”.
Alcuni esempi di regole applicate dal processore XSLT:
• Sostituire le tag in XML con le corrispondenti tag in HTML;
• Ordinare il contenuto dei nodi XML secondo le istruzioni fornite dal
foglio di stile XSL;
• Nascondere - oppure mostrare - l’informazione in base al foglio di stile;
• Convertire le tabelle in grafici o in immagini SVG (Scalable Vector
Graphics).
Un documento XML può essere associato a più fogli di stile XSL, ciascuno
dei quali genererà un output diverso. Lo stesso procedimento vale anche al
contrario: uno stesso foglio di stile può essere applicato a più documenti
XML, allo scopo di produrre documenti di formato diverso.
3.6. DOM
3.6
39
DOM
Document Object Model (DOM) è una forma di rappresentazione dei documenti strutturati come modello orientato agli oggetti. DOM è lo standard ufficiale del W3C per la rappresentazione di documenti strutturati in
maniera da essere neutrali sia per la lingua che per la piattaforma. DOM è
inoltre la base per una vasta gamma delle interfacce di programmazione delle
applicazioni; alcune di esse sono standardizzate dal W3C.
Un’API (Application Programming Interface), letteralmente è un’interfaccia per la programmazione di applicazioni; in parole povere è un insieme
di funzioni, metodi e proprietá, che i programmi possono richiamare al fine
di delegare il lavoro al sistema sottostante.
Il DOM (Document Object Model) è un’API, indipendente dalla piattaforma, che descrive la struttura di un documento HTML (e XML), con il
quale i costruttori di pagine per il Web possono accedere e manipolare tutti
gli elementi della pagina stessa.
Rifacendoci alla sua sigla, il DOM è un modello che descrive come i diversi
oggetti di una pagina sono collegati tra loro.
È importante sottolineare che il DOM è indipendente dalla piattaforma,
ovvero è un’interfaccia definita dal W3C per essere lo strumento universale
per tutti i creatori di pagine Web. Questo significa che il DOM definito dal
W3C è indipendente dal tipo di browser, di versione e di sistema operativo.
DOM è stato inizialmente supportato dai browser per modificare gli elementi in un documento HTML. DOM è stato un modo per accedere e aggiornare dinamicamente il contenuto, struttura e stile dei documenti. A causa
delle incompatibilità nell’esecuzione di DOM fra i vari browser, il W3C ha
fornito delle specifiche standard.
DOM non mette limitazioni sulla struttura dei dati del documento. Con
DOM, un documento ben formato può essere visto come un albero. La maggior parte dei parser XML (come Xerces) e i processori XSL (per esempio
Xalan) sono stati sviluppati per usare la struttura ad albero. Questa implementazione richiede che l’intero contenuto di un documento venga analizzato
e salvato in memoria. Quindi, DOM può essere usato molto bene per applicazioni dove gli elementi del documento devono essere trovati in modo casuale
e modificati. Per le applicazioni basate su XML che usano un processo di
lettura e scrittura per analisi, DOM presenta un grande spreco di memoria;
per questo tipo di applicazioni si consiglia di usare il modello SAX
40
CAPITOLO 3. W3SCHOOLS
3.6.1
Livelli, specifiche e raccomandazioni
Le specifiche DOM elaborate da W3C sono suddivise in livelli, ciascuno dei
quali contiene moduli obbligatori o opzionali. Per sostenere di appartenere
ad un certo “livello”, un’applicazione deve soddisfare tutti i requisiti di tale
livello e dei livelli inferiori. La specifica attuale di DOM è al Livello 2, tuttavia
alcune delle specifiche del Livello 3 ora sono già raccomandazioni del W3C.
• Livello 0: include tutto quello che viene fornito a DOM per la creazione
del Livello 1, per esempio: document.images, document.forms, document.layers, e document.all. Questa non è una specifica vera e propria
convenzionale pubblicata dal W3C, piuttosto dà un riferimento a che
cosa esisteva prima del processo di standardizzazione.
• Livello 1: navigazione di un documento DOM e manipolazione del
contenuto.
• Livello 2: supporto al Namespace XML, viste filtrate e Eventi DOM.
• Livello 3: consiste in 6 specifiche differenti: 1) il nucleo del Livello 3; 2)
caricamento e salvataggio del Livello 3; 3) XPath del Livello 3; 4) viste
e formattazione del Livello 3; 5) requisiti del Livello 3; 6) validazione
del Livello 3, che potenzia ulteriormente DOM.
All’interno del blog è possibile ritrovare linkate in dettaglio specifiche e
recomendation del W3C.
3.7
JavaScript
JavaScript è un linguaggio di scripting orientato agli oggetti comunemente
usato nello sviluppo di siti web, per il lato client. Al momento “javascript”
è una implementazione dello standard ECMAScript. Questo linguaggio è
anche utilizzato per la possibilità di fare scripting su oggetti incapsulati in
altre applicazioni.
3.7.1
Storia
Fu originariamente sviluppato da Brendan Eich della Netscape Communications con il nome di Mocha e successivamente di LiveScript, ma in seguito
è stato rinominato “JavaScript” ed è stato formalizzato con una sintassi
più vicina a quella del linguaggio Java di Sun Microsystems. Il passaggio da LiveScript a JavaScript venne effettuato quando, per la prima volta,
3.7. JAVASCRIPT
41
Netscape incluse nel suo browser i supporti per le tecnologie Java. Inizialmente questo nome creò molta confusione in quanto diede l’impressione che
fosse una qualche derivazione di Java e, tale cambiamento, venne considerato da molti come una manovra di marketing per attribuire a Java Script
la nomina di linguaggio di programmazione-web del futuro. Per evitare problemi di marchio, Microsoft attribuı̀ alla propria implementazione il nome di
JScript. JScript fu il primo ad essere supportato da internet explorer nella
versione 3.0 rilasciata nell’Agosto 1996 che includeva anche funzioni “data”
per evitare il problema del millenium bug. Netscape sottopose JavaScript
all’ECMA International al fine di standardizzare il linguaggio. La versione
standard fu chiamata ECMAScript. JavaScript è stato standardizzato per
la prima volta tra il 1997 e il 1999 dalla ECMA con il nome ECMAScript.
L’ultimo standard, del dicembre 1999, è ECMA-262 Edition 3, e corrisponde
a JavaScript 1.5. è anche uno standard ISO.
3.7.2
Java, JavaScript, e JScript
Il cambio di nome da LiveScript a JavaScript si ebbe più o meno nel periodo
in cui Netscape stava includendo il supporto per la tecnologia Java nel suo
browser Netscape Navigator. La scelta del nome si rivelò fonte di grande confusione. Non c’è una vera relazione tra Java e JavaScript; le loro somiglianze
sono soprattutto nella sintassi (derivata in entrambi i casi dal linguaggio C);
le loro semantiche sono piuttosto diverse, e in particolare i loro object model
non hanno relazione e sono ampiamente incompatibili.
Dato il successo di JavaScript come linguaggio per arricchire le pagine
web, Microsoft sviluppò un linguaggio compatibile, conosciuto come JScript.
La necessità di specifiche comuni fu alla base dello standard ECMA 262 per
ECMAScript, di cui sono state pubblicate tre edizioni da quando il lavoro
iniziò, nel novembre 1996.
3.7.3
Aspetti strutturali
La caratteristica principale di Javascript è quella di essere un linguaggio interpretato. Il codice quindi non viene compilato, bensı̀ c’è un interprete
(in questo caso il browser che si sta utilizzando) che esegue riga per riga
in modalità runtime quanto trascritto nello script. In realtà la logica è la
stessa dell’HTML con la differenza di avere una struttura simile a quella di
un linguaggio compilato e quindi la possibilità di poter eseguire funzionalità
complesse vicine anche ai normali linguaggi Object Oriented (creazione di
oggetti, strutture di controllo, cicli, etc). Presenta quindi tutte le caratteristiche di un normale linguaggio interpretato e di conseguenza i suoi vantaggi
42
CAPITOLO 3. W3SCHOOLS
e svantaggi. Da aggiungere il fatto che il codice javascript viene eseguito sul
client quindi il server non viene sollecitato. Ciò risulta essere un vantaggio in
quanto con la presenza di script particolarmente complessi il server non verrebbe sovraccaricato. Di conseguenza però nel caso di script che presentano
una considerevole mole di dati il tempo per lo scaricamento diventa eccessivo.
Inoltre lavorando solamente sul client ogni informazione che presuppone un
accesso al db deve essere rimandato ad un linguaggio che effettua esplicitamente la query per poi restituire i risultati ad una variabili javascript; quindi
operazioni del genere richiedono un caricamento della pagina stessa. Con
l’avvento di Ajax anche questo limite è stato superato.
3.7.4
Uso
JavaScript è un linguaggio di programmazione orientato a oggetti con una
sintassi vagamente basata sul C. Come il C, ha il concetto di parole chiave
riservate, che rendono quasi impossibile espandere il linguaggio (essendo eseguito direttamente dal sorgente). Come nel C, il linguaggio non ha propri
costrutti di input o output; mentre il C si affida alle librerie I/O standard,
un interprete JavaScript si basa su un programma ospite in cui è integrato.
Ci sono molti programmi ospiti di questo tipo, di cui quelli relativi al Web
sono gli esempi più noti.
JavaScript, se integrato in un browser Web, si collega tramite interfacce
chiamate DOM (Document Object Model) alle applicazioni, specialmente al
lato server (web server) e al lato client (browser) delle applicazioni internet.
Molti siti web usano la tecnologia JavaScript lato client per creare potenti
applicazioni web dinamiche. Può usare Unicode e può valutare le espressioni
regolari (introdotte nella versione 1.2, in Netscape Navigator 4 e Internet Explorer 4). Inoltre, le espressioni JavaScript contenute in una stringa possono
essere valutate usando la funzione eval.
Un uso principale del Javascript basato su web è la scrittura di piccole funzioni integrate nelle pagine HTML che interagiscono con il DOM del browser
per compiere determinate azioni non possibili con il solo HTML statico, come
aprire una nuova finestra, controllare i valori nei campi di ingresso, cambiare
le immagini al passaggio del mouse, ecc. Sfortunatamente, i DOM dei vari
browser non sono standardizzati, browser diversi espongono diversi oggetti o
metodi allo script, ed è quindi spesso necessario scrivere differenti versioni di
una funzione JavaScript per ciascuno dei browser.
Al di fuori del Web, interpreti JavaScript sono integrati in diverse applicazioni. Adobe Acrobat e Adobe Reader supportano JavaScript nei file
PDF. La piattaforma Mozilla, che è alla base di molti diffusi browser Web,
usa JavaScript per implementare l’interfaccia utente e la logica di transazione
3.8. AJAX
43
dei suoi vari prodotti. Gli interpreti JavaScript sono integrati anche nelle
applicazioni proprietarie prive di interfacce programmabili via script. Infine
la tecnologia Windows Script Host di Microsoft supporta JavaScript (via
JScript) un linguaggio di scripting per i sistemi operativi.
3.7.5
Filiazioni
Un nuovo esempio di uso di JavaScript sono i Bookmarklet, piccole sezioni
di codice all’interno dei segnalibri o Preferiti dei browser web.
Il linguaggio di programmazione usato in Macromedia Flash (chiamato
ActionScript) ha una forte somiglianza con JavaScript, dovuta alla loro relazione condivisa con ECMAScript. ActionScript ha quasi la stessa sintassi
di JavaScript, ma il modello a oggetti è decisamente diverso.
JavaScript for OSA (JavaScript OSA, or JSOSA), è un linguaggio di
scripting per Macintosh basato sull’implementazione JavaScript 1.5 di Mozilla, è un componente freeware reso disponibile da Late Night Software. L’interazione con il sistema operativo e con le applicazioni di terze parti è gestita
tramite un oggetto MacOS. A parte ciò, il linguaggio è virtualmente identico
all’implementazione Mozilla, è stato proposto come alternativa al più usato
linguaggio AppleScript.
3.8
AJAX
Ajax, acronimo di Asynchronous JavaScript and XML, è una tecnica di
sviluppo web per creare applicazioni web interattive. L’intento di tale tecnica
è quello di ottenere pagine web che rispondono in maniera più rapida, grazie
allo scambio in background di piccoli pacchetti di dati con il server, cosı̀ che
l’intera pagina web non debba essere ricaricata ogni volta che l’utente effettua una modifica. Questa tecnica riesce, quindi, a migliorare l’interattività,
la velocità e l’usabilità di una pagina web.
Il loro progetto comprende anche un framework, che agevola il lavoro
poichè lo divide in due parti separate: una si preoccupa della parte client e
offre funzioni JavaScript per mandare informazioni al server, mentre l’altra si
preoccupa della parte server, processa le richieste e le trasmette al browser.
AJAX è asincrono nel senso che i dati sono richiesti dal server e caricati in
background senza interferire nella visualizzazione e nel comportamento della
pagina esistente. JavaScript è il linguaggio di scripting nel quale solitamente
vengono effettuate le chiamate di funzioni AJAX. Le informazioni sono prelevate utilizzando l’oggetto XMLHttpRequest che è possibile far girare per i
44
CAPITOLO 3. W3SCHOOLS
linguaggi di scripting nel browser moderni. Non c’è tuttavia alcuna richiesta
che i contenuti asincroni debbano essere formattati in XML.
AJAX è una tecnica cross-platform utilizzabile su diversi sistemi operativi, architetture e web browser, è basata su open standards come il JavaScript
e il DOM. Ci sono svariate implementazioni libere e open source di parecchi
frameworks e librerie.
La tecnica Ajax utilizza una combinazione di:
• HTML (o XHTML) e CSS per il markup e lo stile;
• DOM (Document Object Model) manipolato attraverso un linguaggio
ECMAScript come JavaScript e JScript per mostrare le informazioni
ed interagirvi;
• l’oggetto XMLHttpRequest per l’interscambio asincrono dei dati tra il
browser dell’utente e il web server. In alcuni framework Ajax e in certe
situazioni, può essere usato un oggetto Iframe invece di XMLHttpRequest per scambiare i dati con il server e, in altre implementazioni, tag
< script > aggiunti dinamicamente (JSON);
• in genere viene usato XML come formato di scambio dei dati, anche
se di fatto qualunque formato può essere utilizzato, incluso testo semplice, HTML preformattato, JSON e perfino EBML. Questi file sono
solitamente generati dinamicamente da script lato server.
Come DHTML o LAMP, Ajax non è una tecnologia individuale, piuttosto
è un gruppo di tecnologie utilizzate insieme.
Le applicazioni web che usano Ajax richiedono browser che supportano
le tecnologie necessarie (quelle dell’elenco sopra). Questi browser includono:
Mozilla, Firefox, Internet Explorer, Opera, Konqueror e Safari. Tuttavia,
per specifica, “Opera non supporta la formattazione degli oggetti XSL”.
3.8.1
Storia
Il primo utilizzo pubblico del termine venne utilizzato da Jesse James Garrett
nel febbraio 2005. Garrett utilizzò il termine quando realizzò la necessità di
un termine unico per rappresentare una suite di tecnologie che veniva inviata
ad un client.
Nonostante il fatto che il termine Ajax fu coniato nel 2005, la maggior
parte delle tecnologie che hanno permesso ad Ajax di cominciare una decade
prima con le iniziative della Microsoft nello sviluppo del Remote Scripting.
Riferendosi ad una idea come il “Inner-Browsing”, Netscape Evangelism ha
3.8. AJAX
45
pubblicato un articolo nel 2003 che presentava idee per implementare modelli
in cui “all navigation occurs within a single page, as in a typical application
interface”.
Tecniche per il caricamento asincrono di contenuti su una pagina web esistente senza richiedere un reload completo risalgono al 1996 in cui fu inventato
l’utilizzo dell’IFRAME element type, in Internet Explorer 3 e il LAYER element type in Netscape 4 nel 1997 poi abbandonato durante i primi sviluppi
di Mozilla. Entrambi gli element types hanno un attributo “src” che può
prendere un URL esterno e, caricando una pagina contenente JavaScript
che manipola la pagina genitrice, possono essere raggiunti effetti tipo Ajax.
Questo pacchetto di tecnologie lato-client era solitamente raggruppato insieme sotto il termine generico di DHTML. Anche Flash della Macromedia
può, dalla versione 4, caricare file XML e CSV da un server remoto senza
richiedere al browser di eseguire un refresh.
Il World Wide Web Consortium ha molte Recommendations che permettono anche comunicazioni dinamiche tra un server e un “user agent”, se
supportati correttamente. Questi includono:
• gli oggetti definiti in HTML 4 sono definiti al fine di incapsulare nel
codice contenuti di vario tipo;
• the Document Object Model (DOM) di livello 3 salvano e caricano le
Specifiche.
3.8.2
Principali utilizzi
Alcuni utilizzi per interazioni Ajax sono i seguenti:
Real-time form data validation: alcuni dati come lo user ID, i numeri
seriali, i codici postali, o eventuali ulteriori codici che richiedono una
validazione lato-server possono essere validati in una form prima che
l’utente compili il form.
Autocompletion: una specifica porzione di dati contenuti in un form come
un indirizzo email, nome o città possono essere autocompletati mentre
l’utente digita.
Load on demand: basato su un evento del client, una pagina HTML può
caricare dati in background, permettendo al browser di caricare pagine
più velocemente.
46
CAPITOLO 3. W3SCHOOLS
Sophisticated user interface controls and effects: controlli come grafi,
menu, tabelle, editor di rich text, calendari e barre di progressione permettono una migliore interazione con l’utente e con le pagine HTML,
generalmente senza richiedere all’utente di ricaricare la pagina.
Refreshing data and server push: le pagine HTML possono sondare dati
da un server per un aggiornamento come punteggi, quantità immagazzinate, condizioni climatiche o dati specifici dell’applicazione. Un client
può utilizzare tecniche Ajax per prelevare un set di dati senza ricaricare l’intera pagina. Il “polling” non è il significato più efficiente per
assicurarsi che i dati su una pagina siano i più aggiornati. Tecniche
emergenti come “Comet” si stanno sviluppando per fornire un vero
push over HTTP lato server, mantenendo una connessione persistente
tra il client e il server.
Partial submit: una pagina HTML può presentare contenuti in form a
richiesta senza richiedere un refresh dell’intera pagina.
Mashups: una pagina HTML può ottenere dati utilizzando un proxy latoserver o includendo uno script esterno per mixare contenuti esterni con
le proprie applicazioni o i propri servizi sui contenuti. Per esempio, si
possono miscelare contenuti o dati da una applicazione “third-party”
come Google Maps con la propria applicazione.
Page as an application: la tecnica Ajax può essere utilizzata per creare
pagine singole simili ad applicazioni che assomigliano molto ad applicazioni tipo desktop.
3.8.3
Confronto con applicazioni tradizionali
Le applicazioni web tradizionali consentono agli utenti di compilare moduli
e, quando questi moduli vengono inviati, viene inviata una richiesta al webserver. Il web server agisce in base a ciò che è stato trasmesso dal modulo e
risponde bloccando o mostrando una nuova pagina. Dato che molto codice
HTML della prima pagina è identico a quello della seconda, viene sprecata
moltissima banda. Dato che una richiesta fatta al web server deve essere
trasmessa su ogni interazione con l’applicazione, il tempo di reazione dell’applicazione dipende dal tempo di reazione del web server. Questo comporta
che l’interfaccia utente diventa molto più lenta di quanto dovrebbe essere.
Le applicazioni Ajax, d’altra parte, possono inviare richieste al web server
per ottenere solo i dati che sono necessari (generalmente usando SOAP e
JavaScript per mostrare la risposta del server nel browser). Come risultato si
3.8. AJAX
47
Figura 3.1: Questa immagine mostra come un’applicazione web tradizionale
elabora l’interazione dell’utente e come lo fa invece un’applicazione AJAX.
ottengono applicazioni più veloci (dato che la quantità di dati interscambiati
fra il browser ed il server si riduce). Anche il tempo di elaborazione da parte
del web server si riduce poichè la maggior parte dei dati della richiesta sono
già stati elaborati.
Un esempio concreto: molti siti usano le tabelle per visualizzare i dati.
Per cambiare l’ordine di visualizzazione dei dati, con un’applicazione tradizionale
l’utente dovrebbe cliccare un link nell’intestazione della tabella che invierebbe
una richiesta al server per ricaricare la pagina con il nuovo ordine. Il web
server allora invierebbe una nuova query SQL al database ordinando i dati
come richiesto, la eseguirebbe, prenderebbe i dati e ricostruirebbe da zero la
pagina web reinviandola integralmente all’utente. Usando le tecnologie Ajax,
questo evento potrebbe preferibilmente essere eseguito con uno JavaScript lato client che genera dinamicamente una vista dei dati con DHTML. Un altro
esempio potrebbe essere la scelta di un nuovo nickname in fase di creazione
di un account su un sito web, nel caso classico, se il nome che abbiamo scelto
fosse già esistente, dovremmo compilare prima tutto il modulo ed accorgerci
48
CAPITOLO 3. W3SCHOOLS
Figura 3.2: Questa immagine mostra come i componenti delle applicazioni
AJAX interagiscono tra loro comparandolo con quello che accade nelle
applicazioni web classiche.
3.9. RDF
49
solo dopo aver atteso il caricamento della pagina di conferma che il nome è
già esistente e dobbiamo cambiarlo, invece con AJAX può essere introdotto un controllo sull’evento onChange o addirittura OnKeyUp della casella di
testo che ci può informare tempestivamente che il nome inserito non è valido,
magari evidenziando il testo in rosso (CSS + Javascript).
3.8.4
Pro e contro
Come per le applicazioni DHTML, anche le applicazioni AJAX devono essere
testate su più browser per verificarne la compatibilità (librerie come Sarissa
di SourceForge possono tuttavia essere di aiuto). Inoltre è richiesto che nel
client sia attivato Javascript. Il vantaggio di usare AJAX è la grande velocià
alla quale un’applicazione risponde agli input dell’utente.
Un problema abbastanza degno di nota è che, senza l’adozione di adeguate
contromisure, le applicazioni AJAX possono rendere non utilizzabile il tasto
“indietro” del browser: con questo tipo di applicazioni, infatti, non si naviga
da una pagina all’altra, ma si aggiorna di volta in volta una singola parte
del medesimo documento. Proprio per questo i browser, che sono programmi
orientati alla pagina, non hanno possibilità di risalire ad alcuna di tali versioni
“intermedie”. Google, nella sua Google Maps, ha sviluppato una possibile
soluzione al problema: invece di usare XMLHttpRequest quando l’utente
clicca sul bottone di ricerca, il risultato della ricerca viene inviato in un
iframe invisibile, dal quale le informazioni sono portate nella pagina visibile.
In ogni modo, un attento design delle applicazioni AJAX permette di
risolvere totalmente o in parte questi aspetti negativi.
3.9
RDF
Resource Description Framework (RDF) è una famiglia delle specifiche del
World Wide Web Consortium (W3C) originalmente designate come un modello metadata, ma che è divenuto in uso come un metodo generale per
modellare l’informazione, attraverso una varietà di formati di sintassi.
Il modello di metadata RDF è basato sull’idea di creare statements riguardanti le risorse nella forma subject-predicate-object, chiamate “triples”
nella terminologia di RDF. Il soggetto denota la risorsa, il predicato denota
tratti o aspetti della risorsa e esprime una relazione tra il soggetto e l’oggetto. Per esempio, un modo per rappresentare la nozione “The sky has the
color blue” in RDF si usa una tripla di questo tipo: un soggetto che denota
“the sky”, un predicato che denota “has the color” e un oggetto che denota
“blue”.
50
CAPITOLO 3. W3SCHOOLS
Questo meccanismo (framework) per descrivere le risorse è la componente
prncipale di quello che è stato proposto dal W3C per l’attività di Semantic
Web: un passaggio rivoluzionario per il World Wide Web nel quale software
automatizzato può immagazzinare, scambiare e utilizzare informazioni leggibili dalle macchine, distribuite attraverso il web, al fine di dare la possibilità
all’utente di avere a che fare e condividere informazioni di grande efficienza
e certezza. Il semplice modello di rappresentazione dei dati di RDF, concetti
astratti hanno portato a incrementare l’utilizzo di applicazioni per la “gestione della conoscenza” (knowledge management) scollegate dell’attività di
Semantic Web.
Il Resource Description Framework (RDF) è un framework per la descrizione della conoscenza nel web. Esso è stato specificatamente creato, secondo una raccomandazione del W3C, per la descrizione dei metadati relativi
alle risorse. L’RDF si basa su tre principi chiave:
1. Qualunque cosa può essere identificato da un Uniform Resource Identifier (URI)
2. The least power: utilizzare il linguaggio meno espressivo per definire
qualunque cosa
3. Qualunque cosa può dire qualunque cosa su qualunque cosa
RDF è sostanzialmente un modello formale di dati dotato di sintassi di
interscambio, un sistema di schemi di tipo ed un linguaggio d’interrogazione.
3.9.1
Storia
Ci sono svariati antenati di RDF. Tecnicamente il più vicino fu MCF, un progetto iniziato da Ramanathan V. Guha mentre era presso la Apple Computer
e continuò, con contributi da Tim Bray, durante la sua permanenza presso
la Netscape Communications Corporation. Idee provenienti dalla comunità
Dublin Core, e dal PICS (Platform for Internet Content Selection, il primo
sistema di labeling per i conenuti del Web ad opera del W3C) furono anche
chiave nella realizzazione del progetto RDF.
Il W3C pubblicò una specifica per il modello dati RDF e sintassi XML
come una “Recommendation” nel 1999. Ulteriori sviluppi si ebbero in una
nuova versione che fu pubblicata in un set di specifiche correlate nel 2004.
Anche se ci sono diverse implementazioni basate sulle “Recommendation”
del 1999, che non sono state del tutto aggiornate, l’adozione delle specifiche
migliorate è stata rapida dal momento in cui furono sviluppate in pubblico,
diversamente da altre precedenti tecnologie di W3C. La maggior parte dei
3.9. RDF
51
nuovi arrivati in ambito RDF non sono nemmeno a conoscenza che esistano
le vecchie specifiche.
MIME media type application/rdf+xml fu registrata da RFC 3870 e
raccomanda che i documenti RDF seguano le nuove specifiche.
In aggiunta per serializzare DRF come XML, il W3C introdusse Notation 3 (o N3) come una serializzazione non-XML del modello RDF models
designato per essere più semplice per scrivere quando si comincia.
3.9.2
Principi e Data Model
Qualunque cosa descritta da RDF è detta risorsa. Principalmente una risorsa
è reperibile sul web, ma RDF può descrivere anche risorse che non si trovano
direttamente sul web. Ogni risorsa è identificata da un URI, un identificatore
univoco di risorse che può essere un Uniform Resource Locator (URL) o un
Uniform Resource Name (URN).
Il modello di dati RDF è formato da risorse, proprietá e valori. Le proprietá sono delle relazioni che legano tra loro risorse e valori, e sono anch’esse
identificate da URI. Un valore, invece, o è una risorsa o è un tipo di dato
primitivo.
L’unità base per rappresentare un’informazione in RDF è lo statement.
Uno statement è una tripla del tipo:
Soggetto Predicato Oggetto
dove il soggetto è una risorsa, il predicato è una proprietá e l’oggetto è
un valore.
Il data model RDF permette di definire un modello semplice per descrivere le relazioni tra le risorse, in termini di proprietá identificate da un nome
e relativi valori. Tuttavia, RDF data model non fornisce nessun meccanismo
per dichiarare queste proprietá, nè per definire le relazioni tra queste proprietá ed altre risorse. Per poter dichiarare un vocabolario è necessario definire
classi e proprietá in un RDF-Schema.
3.9.3
Rappresentazione fisica del modello
Un modello RDF è quindi rappresentabile da un grafo orientato sui cui nodi
ci sono risorse o tipi primitivi e i cui archi rappresentano le proprietá. Un
grafo RDF è rappresentato fisicamente mediante una serializzazione.
Le principali serializzazioni adottabili per un grafo RDF sono:
• XML: l’RDF è serializzato in un file XML
• N-TRIPLE: si serializza il grafo come un insieme di triple soggetto predicato - oggetto
52
CAPITOLO 3. W3SCHOOLS
• N3: si serializza il grafo descrivendo, una per volta, una risorsa e tutte
le sue proprietá
In particolare la serializzazione in XML può avvenire secondo due metodi,
quello classico e quello abbreviato, più leggibile per l’uomo.
3.10
SVG
Scalable Vector Graphics (SVG) è un linguaggio per descrivere immagini
bi-dimensionali, sia statiche sia animate, e applicazioni in XML. SVG può
essere puramente dichiarativo o può includere dello scripting. Le immagini
possono contenere iperlink utilizzando dei semplici XLinks. Esso è un open
standard creato dal SVG Working Group appartenente al World Wide Web
Consortium.
3.10.1
Storia degli sviluppi
SVG fu sviluppata dal W3C SVG Working Group a cominciare dal 1998.
SVG è diventato una raccomandazione (standard) del World Wide Web Consortium nel settembre 2001. Al W3C Macromedia e Microsoft avevano introdotto il linguaggio VML (Vector Markup Language), mentre Adobe e
Sun Microsystems proponevano un formato concorrente chiamato PGML:
per arrivare alla raccomandazione è stato necessario un certo lavoro di compromesso. Il gruppo di lavoro fu presieduto da Chris Lilley del W3C.
• SVG 1.0 diventò una W3C Recommendation il 4 settembre 2001.
• SVG 1.1 diventò una W3C Recommendation il 14 gennaio 2003. La
specifica SVG 1.1 è modularizzata al fine di permettere sottoinsiemi
definiti come profili. Oltre a questo ci sono davvero poche differenze
tra le 2 versioni.
• SVG Tiny 1.2 diventò una W3C Candidate Recommendation il 10 agosto 2006. SVG Full 1.2 è una bozza di lavoro del W3C. SVG Tiny 1.2 fu
inizialmente rilasciata come profilo e più avanti riorganizzata per essere
una specifica completa, includendo tutte le parti necessarie di SVG 1.1
e SVG 1.2. Una simile bozza rivista per SVG 1.2 Full non è ancora stata rilasciata. Una caratteristica notevole aggiunta nella bozza di lavoro
SVG Full 1.2 del W3C (non presente nel SVG Tiny 1.2) è la sintassi
per i documenti a più pagine.
3.10. SVG
53
SVG è supportato nativamente dal web browser/web editor Amaya e da
Mozilla Firefox dalla versione 1.5. Altri browser per visualizzare immagini
SVG richiedono l’aggiunta di un plugin, come Adobe SVG Viewer o Corel
SVG Viewer. Le immagini SVG possono essere visualizzate anche da editor
e viewer autonomi. Una particolare versione di Mozilla, chiamata “Croczilla”, ora supporta alcune parti dello standard SVG, ma gran parte delle
prestazioni non sono ancora ottenibili: in prospettiva comunque le immagini SVG dovrebbero essere visualizzabili senza l’aggiunta di alcun plug-in.
Anche il web browser Konqueror del progetto KDE attualmente possiede una
implementazione di SVG abbastanza completa chiamata ksvg e c’è da aspettarsi che in futuro questo supporto sarà adattato al web browser Safari della
Apple Inc. Il browser Opera supporta SVG dalla release 8.5 Caratteristiche
Opera. I programmi scritti in Java possono controllare la visualizzazione,
la generazione e la manipolazione di grafici SVG servendosi del Batik SVG
Toolkit.
3.10.2
Caratteristiche
Riassumiamo quanto contenuto nella Overview of SVG del consorzio W3C.
SVG permette di trattare tre tipi di oggetti grafici:
• forme geometriche, cioè linee costituite da segmenti di retta e curve e
aree delimitate da linee chiuse;
• immagini della grafica raster e immagini digitali;
• testi esplicativi, eventualmente cliccabili.
Gli oggetti grafici possono essere raggruppati in oggetti più comprensivi, muniti di attributi di stile e aggiunti ad oggetti grafici precedentemente costruiti
e visualizzati. Un testo può far parte di un qualsiasi namespace XML sottoponibile ad una applicazione; questa possibilità consente di aumentare la
ricercabilità e l’accessibilità delle immagini SVG. Il repertorio delle operazioni attuabili include trasformazioni annidate, percorsi di clipping, Canale
alpha, effetti di filtro, oggetti template ed estensibilità.
Le figure espresse mediante SVG possono essere dinamiche e interattive.
Il Document Object Model (DOM) per SVG, che include il completo XML
DOM, consente una animazione in grafica vettoriale diretta ed efficiente attraverso i linguaggi ECMAScript e SMIL. Agli oggetti grafici SVG si possono
assegnare event handlers tratti da un ampio repertorio: due esempi dal ruolo
facilmente intuibile sono onmouseover e onclick. Grazie alla compatibilità di
SVG con gli altri standard per il web e grazie al mutuo supporto di questi
54
CAPITOLO 3. W3SCHOOLS
meccanismi, si possono dotare gli elementi SVG e gli altri elementi XML di
una pagina web di prestazioni come lo scripting ricavate contemporaneamente
da diversi spazi di nomi.
Il sistema SVG rivaleggia con Macromedia Flash in termini di potenziale
e di efficienza. Per un primo confronto rileviamo che, contrariamente a Flash,
SVG è uno standard aperto, ma d’altra parte il plug-in Flash è molto più
maturo e diffuso degli strumenti omologhi per SVG.
3.10.3
Utilizzo
La maggior parte dei prodotti software per disegnare come Adobe Illustrator
e Corel Draw nelle versioni più recenti sono in grado di esportare immagini descritte in SVG. Anche il pacchetto Draw della OpenOffice.org dalla
versione 1.1 può esportare file SVG. Due strumenti grafici open source e
multipiattaforma che usano il formato SVG sono Sodipodi e Inkscape.
3.10.4
Grafica vettoriale scalabile
Le potenzialità di una grafica vettoriale scalabile sono notevoli:
• la geometria di ciascun elemento grafico è definita matematicamente,
anzichè essere trattata mediante rigidi quadri di pixel
• È possibile ridimensionare a piacere qualsiasi elemento grafico, mantenendone la qualità. Più in particolare, nel visualizzare un dato oggetto
grafico su supporti di differente natura (stampa, video, plotter, schermo di cellulare, ...), si è certi di ottenere sempre la massima qualità che
quei supporti possono fornire.
Tali potenzialità interessano praticamente tutte le applicazioni grafiche che
non siano puramente raster, cioè basate su mappe di pixel (nella pratica
immagini provenienti da fotocamere o da scansioni).
Il vantaggio dell’SVG rispetto ad altri formati di grafica vettoriale consiste nella sua natura di standard aperto: in questo modo in linea di principio
chiunque lo conosca è in grado di realizzare pagine SVG senza avere la necessità di un ambiente di sviluppo commerciale dedicato. Si noti che la natura
di standard aperto è stata una delle ragioni della fortuna dell’HTML.
Trattandosi di un formato derivato dall’XML, eredita da esso la facilità
di generazione con mezzi automatici e tramite linguaggi di programmazione.
Dal lato client è infine possibile operare sul modello ad oggetti del documento (il DOM) utilizzando codice ECMAScript (la standardizzazione di
Javascript definita da ECMA).
3.10. SVG
55
Un file SVG è un semplice file di testo, che può essere visualizzato e
editato con qualsiasi altro markup.
56
CAPITOLO 3. W3SCHOOLS
Capitolo 4
Web 2.0
Web 2.0 è un termine usato per indicare un generico stato di evoluzione di
Internet e in particolare del World Wide Web.
Alcuni hanno tentato di definire il Web 2.0 come una serie di siti web
con interfaccia, facilità e velocità d’uso tali da renderli simili alle applicazioni tradizionali che gli utenti sono abituati a installare nei propri personal
computer.
Per tali siti spesso vengono usate tecnologie di programmazione particolari, come AJAX (Gmail usa largamente questa tecnica per essere semplice
e veloce) o Adobe Flex.
I propositori del termine Web 2.0 affermano che questo differisce dal concetto iniziale di web, retroattivamente etichettato Web 1.0, perchè si discosta
dai classici siti web statici, dall’e-mail, dall’uso dei motori di ricerca, dalla
navigazione lineare e propone un World Wide Web più dinamico e interattivo.
Un esempio potrebbe essere il social commerce, l’evoluzione dell’E-Commerce
in senso interattivo, che consente una maggiore partecipazione dei clienti,
attraverso blog, forum, sistemi di feedback, etc.
Gli scettici replicano che il termine Web 2.0 non ha un vero e proprio
significato, in quanto questo dipende esclusivamente da ciò che i propositori
decidono che debba significare per cercare di convincere i media e gli investitori che stanno creando qualcosa di nuovo e migliore, invece di continuare a
sviluppare le tecnologie esistenti.
4.1
Analisi storica
Originariamente il web è stato concepito come modo per visualizzare documenti ipertestuali statici (creati con l’uso del linguaggio HTML); questo
approccio può essere definito come Web 1.0.
57
58
CAPITOLO 4. WEB 2.0
In seguito, grazie all’integrazione con database e all’utilizzo di sistemi di
gestione dei contenuti (CMS), Internet si è evoluta con siti dinamici (come
ad esempio i forum o i blog); questo web dinamico è stato da alcuni definito
Web 1.5.
Attraverso l’utilizzo di linguaggi di programmazione come Javascript,
degli elementi dinamici e dei fogli di stile (CSS) per gli aspetti grafici, si possono creare delle vere e proprie “applicazioni web” che si discostano dal vecchio concetto di semplice ipertesto e che puntano a somigliare ad applicazioni
tradizionali per computer.
Da un punto di vista strettamente tecnologico, il Web 2.0 è del tutto
equivalente al Web 1.0, in quanto l’infrastruttura di rete continua ad essere costituita da TCP/IP e HTTP e l’ipertesto è ancora il concetto base
delle relazioni tra i contenuti. La differenza, più che altro, sta nell’approccio con il quale gli utenti si rivolgono al Web, che passa fondamentalmente
dalla semplice consultazione (seppure supportata da efficienti strumenti di
ricerca, selezione e aggregazione) alla possibilità di contribuire popolando e
alimentando il Web con propri contenuti.
4.2
Differenze e confronti con il Web 1.0
Nel descrivere le caratteristiche del Web 2.0 si procede spesso per confronto
con il Web 1.0, indicando come nel passaggio di versione gli elementi fondamentali si sono evoluti o sono stati sostituiti da nuovi. Si tratta di un
modo di rappresentare il Web 2.0 divulgativo e non prettamente tecnico, ma
piuttosto efficace per riconoscere l’evoluzione dei sistemi su Internet.
4.3
Dai siti web personali ai blog
Se prima la costruzione di un sito web personale richiedeva la padronanza di
elementi di HTML e programmazione, oggi con i blog chiunque è in grado di
pubblicare i propri contenuti, dotandoli anche di veste grafica accattivante,
senza possedere alcuna particolare preparazione tecnica.
Se prima le community web erano in stragrande maggioranza costituite
da esperti informatici, oggi la situazione è completamente ribaltata. A farla
da padroni sui blog sono scrittori, giornalisti, artisti o comunque “animi
sensibili” con una preparazione informatica non particolarmente elevata.
4.4. DAI SISTEMI PER CONTENT MANAGEMENT AI WIKI
4.4
59
Dai sistemi per Content Management ai
Wiki
La tecnologia Wiki (Wikipedia ne è la più celebre applicazione) è il punto di
arrivo del content management, in quanto ne implementa tutti i paradigmi.
Se prima erano necessarie più applicazioni informatiche per la gestione del
ciclo di vita dell’informazione (dall’intuizione alla fruizione), oggi una stessa
tecnologia supporta al meglio tutto il processo. Si fruisce dell’informazione
nell’ambiente stesso in cui essa è nata.
4.5
Dalla stickiness al syndication
Le tecniche utilizzate fino a ieri per tenere più tempo i visitatori su un sito
web (stickiness, letteralmente “l’appiccicosità” di un sito, cioè la capacità
di tenere “incollati” gli utenti ad esso) stanno lasciando il posto ad altre
concezioni di contatto con il fruitore. Attraverso le tecnologie di syndication
RSS, Atom, tagging) chi realizza contenuti fa in modo che questi possano
essere fruiti non solo sul sito, ma anche attraverso canali diversi.
Un esempio di questi nuovi canali sono i feed, cioè delle liste di elementi
con un titolo (es. notizie di un giornale, thread di un newsgroup), che permettono il successivo collegamento ai contenuti informativi. Questi ultimi
possono essere aggiornati e consultati di frequente con programmi appositi o
anche attraverso i browser e quindi consentono di essere sempre a conoscenza
dei nuovi contenuti inseriti su un sito senza doverlo visitare direttamente.
4.6
Strumenti per la creazione di contenuti
Tale possibilità di creazione e condivisione di contenuti su Web, tipica del
Web 2.0, è data da una serie di strumenti (tool in inglese) on-line che permettono di utilizzare il web come se si trattasse di una normale applicazione.
In pratica il Web di seconda generazione è un Web dove poter trovare quei
servizi che finora erano offerti da pacchetti da installare sui singoli computer.
Esempi di Web 2.0 sono FCKEditor e Writely, veri e propri elaboratori di
testi e convertitori di formato, oppure NumSum, una sorta di foglio elettronico. Anche Google ha recentemente lanciato la sua suite di editor, chiamata
Google Docs & Spreadsheet, e Microsoft sta per rilasciare una versione online
della suite Office.
Oltre alla creazione condivisa di contenuto on-line, il Web 2.0 è caratterizzato dalla pubblicazione immediata del contenuto e alla sua classificazione
60
CAPITOLO 4. WEB 2.0
Figura 4.1: .
e indicizzazione nei motori di ricerca, in modo che l’informazione sia subito
disponibile a beneficio dalla comunità, realizzando in maniera veloce il ciclo
di vita del content management. Per la pubblicazione dei contenuti fanno da padrone sul Web (di oggi) i provider di blog come Blogger, Wordpress, Splinder, ma anche piattaforme commerciali come Microsoft Sharepoint Portal che nella prossima versione (3.0) accentuerà le sue caratteristiche
di collaborazione diventando la parte server di Office 12.
Altra applicazione del Web 2.0 sono i cosiddetti web desktop (webtop),
una sorta di sistema operativo online su cui è possibile eseguire operazioni
simili a quelle di un sistema operativo tradizionale.