Il 0% ha trovato utile questo documento (0 voti)
14 visualizzazioni192 pagine

Dati e Web

Caricato da

richysnivy
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
14 visualizzazioni192 pagine

Dati e Web

Caricato da

richysnivy
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

CastanoWSU cap0 18-12-2008 16:39 Pagina I

Informazione,
conoscenza e Web
per le scienze umanistiche
CastanoWSU cap0 18-12-2008 16:39 Pagina II
CastanoWSU cap0 18-12-2008 16:39 Pagina III

Silvana Castano, Alfio Ferrara, Stefano Montanelli

Informazione,
conoscenza e Web
per le scienze
umanistiche
CastanoWSU cap0 18-12-2008 16:39 Pagina IV

© 2009 Pearson Paravia Bruno Mondadori S.p.A.

Le informazioni contenute in questo libro sono state verificate e documentate con la mas-
sima cura possibile. Nessuna responsabilità derivante dal loro utilizzo potrà venire impu-
tata agli Autori, a Pearson Paravia Bruno Mondadori S.p.A. o a ogni persona e società
coinvolta nella creazione, produzione e distribuzione di questo libro.
Per i passi antologici, per le citazioni, per le riproduzioni grafiche, cartografiche e fotogra-
fiche appartenenti alla proprietà di terzi, inseriti in quest’opera, l’editore è a disposizione
degli aventi diritto non potuti reperire nonché per eventuali non volute omissioni e/o er-
rori di attribuzione nei riferimenti.

I diritti di riproduzione e di memorizzazione elettronica totale e parziale con qualsiasi


mezzo, compresi i microfilm e le copie fotostatiche, sono riservati per tutti i paesi.
LA FOTOCOPIATURA DEI LIBRI È UN REATO Le fotocopie per uso personale del
lettore possono essere effettuate nei limiti del 15% di ciascun volume dietro pagamento
alla SIAE del compenso previsto dall'art. 68, commi 4 e 5, della legge 22 aprile 1941
n. 633.
Le riproduzioni effettuate per finalità di carattere professionale, economico o commercia-
le o comunque per uso diverso da quello personale possono essere effettuate a seguito di
specifica autorizzazione rilasciata da AIDRO, corso di Porta Romana n. 108, 20122 Mi-
lano, e-mail segreteria@[Link] e sito web [Link].

Copy-editing: Federica Sonzogno


Impaginazione: TOTEM di Andrea Astolfi
Grafica di copertina: Nicolò Cannizzaro
Stampa: [Link]. – S. Bonico (PC)

Tutti i marchi citati nel testo sono di proprietà dei loro detentori.

978-88-7192-548-6

Printed in Italy

1a edizione: febbraio 2009

Ristampa Anno
00 01 02 03 04 09 10 11 12 13
CastanoWSU cap0 18-12-2008 16:39 Pagina V

Sommario

Prefazione IX
Introduzione Il ruolo dell’umanista XI
La natura e la storia dell’informatica XI
Il digital divide XII
Informatizzare gli umanisti XIII

Capitolo 1 Dati, informazioni, sistemi informativi 1


Memorizzazione dei dati e basi di dati 2
I sistemi di gestione di basi di dati (DBMS) 2
Dati e livelli di astrazione 4

Capitolo 2 Semantica dei dati: ontologie e rappresentazione


della conoscenza 7
Ontologie e informatica: concetti introduttivi 9
Ontologie: definizioni e contenuto 10

Capitolo 3 La progettazione concettuale 15


Entità e attributi 15
Relazioni fra entità 16
Cardinalità delle relazioni 17
Identificatori 19
Gerarchie di generalizzazione 20
Indicazioni metodologiche per la progettazione 21

Capitolo 4 Il modello relazionale 25


Teoria del modello relazionale 26
Valori nulli 28
Relazioni fra tabelle 29
Coerenza dei dati 30
Algebra relazionale 32
Proiezione e selezione 32
Operazioni insiemistiche 35
CastanoWSU cap0 18-12-2008 16:39 Pagina VI

VI Sommario

Capitolo 5 La progettazione logica 39


Eliminazione delle gerarchie di generalizzazione 40
Traduzione delle entità e degli attributi 40
Traduzione delle relazioni 41

Capitolo 6 Creazione e interrogazione di una base di dati:


il linguaggio SQL 45
Creazione di una base di dati 46
Definizione di associazioni fra tabelle 50
Popolamento di una base di dati 51
Violazione dei vincoli di integrità referenziale 54
Modifica ed eliminazione di tabelle 55
Interrogazione di una base di dati 56
Condizioni di selezione 58
Join di tabelle 59
Criteri di ordinamento 61
Ulteriori esempi di interrogazione 62

Capitolo 7 Analisi e classificazione automatica di testi 65


Information Retrieval 65
Tecniche di analisi 68
Tecniche di indicizzazione 70
Tecniche di interrogazione e matching 71
Valutazione dei risultati di una ricerca 73
Considerazioni 75

Capitolo 8 Architettura e standard per il Web 77


Breve storia di Internet e del World Wide Web 77
Struttura e funzionamento della rete Internet 78
Indirizzamento degli elaboratori 80
DNS e struttura dei domini 81
Protocolli di comunicazione 83
Il servizio World Wide Web 85
Lo standard URI 87
Richiesta di una pagina web 87
Pagine statiche e pagine dinamiche 89
Altri servizi di livello applicativo: la posta elettronica 90

Capitolo 9 Contenuti sul Web: i linguaggi di marcatura 93


HyperText Markup Language 93
Definire stile e formattazione dei documenti con CSS 97
CastanoWSU cap0 18-12-2008 16:39 Pagina VII

Sommario VII

Capitolo 10 I motori di ricerca 103


Funzionamento di un motore di ricerca 104
Esempi e tipologie di motori di ricerca 105
Calcolo della rilevanza di una pagina web: il caso PageRank di Google 106
Utilizzo di un motore di ricerca: esempi con Google 107
Servizi e strumenti aggiuntivi dei motori di ricerca 111

Capitolo 11 Progettazione di siti web: usabilità e accessibilità 113


Principi generali di usabilità 114
L’approccio di Jakob Nielsen 115
Usabilità e sforzo cognitivo 117
Valutazione di un sito web 120

Capitolo 12 L’evoluzione del Web: Web 2.0 e Semantic Web 121


Web 2.0: da un Web di documenti a un Web di applicazioni 121
Semantic Web: da un Web di documenti a un Web di informazioni 123

Capitolo 13 Gli strumenti essenziali: XML 127


Cos’è e cosa non è XML 127
Struttura di un documento XML 129
Elementi di sintassi 131
XML namespace 133
Validazione e XML schema 136

Capitolo 14 Editoria elettronica e biblioteche digitali 139


Metadati e interoperabilità 140
I problemi dell’editoria elettronica 141
Nuovi fenomeni e nuovi mercati 144

Capitolo 15 Organizzazione dei contenuti:


ipertestualità e multimedialità 147
Codifica e organizzazione testuale 147
Testi e strumenti digitali 148
Modelli del testo 152
Ipertesto, multimedialità e principi di progettazione 153

Capitolo 16 Blog, comunità e social networking 157


Autorialità sul Web: blog e spazi di pubblicazione 157
Comunità di utenti e interazione sociale 160
Directory di contenuti e portali collaborativi 163
La vastità dei fenomeni sociali sul Web 165
CastanoWSU cap0 18-12-2008 16:39 Pagina VIII

VIII Sommario

Capitolo 17 Nuove modalità di fruizione dei contenuti:


topic map e ontologie 167
Il linguaggio RDF 168
Il linguaggio RDFS 171
Semantica formale e ontologie 173

Riferimenti bibliografici 175


CastanoWSU cap0 18-12-2008 16:39 Pagina IX

Prefazione

Informazioni, conoscenza e web per le scienze umanistiche è un testo che si rivolge in primo
luogo agli studenti dei corsi di laurea di area umanistica in cui si svolgano insegnamenti
introduttivi di informatica.
L’insegnamento dell’informatica è solo uno degli ambiti in cui si propone oggi il te-
ma dell’incontro fra le discipline umanistiche e le scienze dell’informazione. Sempre di
più l’informatica si presenta, nella vita professionale e in quella personale, come un sape-
re generale, necessario alla cultura di ognuno così come lo sono i fondamenti della cono-
scenza della lingua o dell’aritmetica.
L’informatica è un territorio nuovo su cui si giocano diverse competenze esistenti e
non si riduce all’uso del calcolatore ma, al contrario, si presenta come teoria dell’informa-
zione tradotta in oggetto del consumo e in metafora del mondo reale. Non è dunque pos-
sibile usare criticamente gli strumenti dell’informatica prescindendo dalla conoscenza
della teoria che essa comporta: non basta il saper fare o il saper usare, ma occorre il sape-
re in sé, sapere cosa sia l’informatica e come operi sulle informazioni che comunichiamo
e manipoliamo. Trova dunque conferma il motto baconiano “Ipsa Scientia Potestas Est”,
poiché nel mondo in cui viviamo cresce la differenza fra chi sa usare e chi conosce e, an-
che agli umanisti, è sempre più spesso richiesto di comprendere l’informatica e non solo
di usare il calcolatore.
Per queste ragioni abbiamo deciso di descrivere un ampio spettro di applicazioni
dell’informatica, dalle basi di dati all’information retrieval, dal Web al social networking,
dai contenuti testuali a quelli multimediali, insistendo soprattutto sull’analisi critica dei
fenomeni e cercando di fornire le conoscenze necessarie alla comprensione degli strumen-
ti e delle tecnologie.
Il volume è idealmente diviso in tre parti: nella prima si affronta il tema, sempre più
cruciale, della rappresentazione e memorizzazione dell’informazione, dalle basi di dati re-
lazionali alle ontologie. Nella seconda sezione, si discutono i temi del reperimento e della
pubblicazione dell’informazione in rete, con particolare riferimento al Web e alle sue ap-
plicazioni. Nella terza, infine, si presentano alcuni dei fenomeni più recenti di applicazio-
ne dell’informatica a temi e aree di tradizionale competenza umanistica, quali l’editoria di-
gitale, il social networking e l’organizzazione dei contenuti multimediali.

Silvana Castano, Alfio Ferrara, Stefano Montanelli


Dipartimento di Informatica e Comunicazione
Università degli Studi di Milano
CastanoWSU cap0 18-12-2008 16:39 Pagina X
CastanoWSU cap0 18-12-2008 16:39 Pagina XI

Introduzione

Il ruolo dell’umanista

L’informatica è la disciplina che si occupa del trattamento automatico dell’informazione


e più in particolare della sua rappresentazione, conservazione e trasmissione. Se questa
definizione coglie i tratti essenziali dell’informatica come scienza, indicandone l’oggetto e
gli obiettivi, certamente è insufficiente a esprimere la portata dei fenomeni di informatiz-
zazione della vita lavorativa e personale di ognuno di noi. La sua pervasività in tutti i
campi fa infatti dell’informatica un sapere generale, necessario alla cultura personale di
ognuno così come lo sono i fondamenti della conoscenza della lingua o dell’aritmetica.
Questo tipo specifico di sapere si presenta frequentemente come una conoscenza di natu-
ra essenzialmente pratica, come un saper fare o, spesso, come un saper usare: usare stru-
menti come i word processor o il telefono cellulare. Ma, a fronte dell’esigenza di vivere e
operare in un mondo informatizzato, bisogna domandarsi se questo sapere di ordine pra-
tico sia sufficiente a garantirci una comprensione dei fenomeni. Per rispondere a questa
domanda occorre guardare più da vicino l’informatica come scienza e riflettere sul ruolo
che l’umanista è chiamato a svolgere in questo contesto.

La natura e la storia dell’informatica


Il dibattito sullo statuto epistemologico dell’informatica come scienza e persino il tentati-
vo di raccontarne una storia unitaria sono problemi del tutto aperti. La difficoltà nell’in-
quadrare l’informatica in modo unitario, sia dal punto di vista dei suoi metodi e fonda-
menti teorici sia dal punto di vista della sua storia, nasce dal fatto che la sua natura e la
sua storia sono da declinarsi al plurale. Con questo intendiamo dire che l’informatica è
soprattutto un territorio nuovo su cui si giocano diverse competenze esistenti.
La natura profondamente interdisciplinare dell’informatica è evidente sin dalle sue
origini e continua a esserlo nell’evoluzione delle sue applicazioni. Anche la storia del-
l’informatica è, infatti, un insieme di storie diverse ma collegate. La storia dei metodi e
delle teorie del calcolo, che nasce con la matematica antica e, passando per autori come
Pascal o Leibniz, giunge allo sviluppo, a cavallo della seconda guerra mondiale, dei meto-
di di calcolo e automazione della moderna informatica a opera di autori come Alan
Turing o John von Neumann, è collegata alla storia, non meno determinante, delle sco-
CastanoWSU cap0 18-12-2008 16:39 Pagina XII

XII Introduzione

perte tecnologiche indispensabili all’informatica moderna, dal transistor ai moderni perso-


nal computer. Insieme a queste storie vi sono poi le vicende affascinanti delle conquiste
applicative, soprattutto nel campo del software, che hanno portato alla creazione dei siste-
mi operativi, dei linguaggi di programmazione e delle vere e proprie applicazioni, dalla
posta elettronica al Web. In tutte queste storie, le idee e le invenzioni sono il frutto del
rapporto costante fra saperi diversi: vi sono le competenze matematiche e fisiche, ma an-
che, non meno importanti, i contributi delle scienze cognitive, della linguistica, delle di-
scipline della comunicazione.
Se da un lato questa varietà, in una disciplina giovane e ancora poco definita, non
consente di tracciare confini definiti e formulare una teoria unitaria sulla sua natura,
dall’altro non può che indurci a vedere l’informatica come una grande opportunità di in-
contro e sviluppo delle diverse competenze.
La varietà e complessità dell’informatica ci pone di fronte anche a un’altra impor-
tante evidenza: l’informatica può essere ridotta al mero trattamento dell’informazione e
del calcolo solo in senso strettamente tecnico ma, se guardiamo alla varietà dei prodotti e
alla fecondità delle idee, ci rendiamo conto che ciò che è calcolo in teoria diviene mondo
in pratica. Un moderno film di animazione o un videogioco, osservato in sé e tecnica-
mente è certamente solo calcolo e manipolazione dell’informazione ma, se osservato per
sé e per i fruitori, costituisce un’esperienza cognitiva completa e più ampia del codice che
lo genera. Il programma informatico, ridotto a algoritmi e dati, è di per sé un mondo e
un’esperienza di realtà altra. La natura propriamente virtuale dei prodotti informatici, a
cavallo fra il potenziale e il reale, li differenzia da ogni altro prodotto della tecnica e fa
dell’informatica qualcosa di più di uno strumento. Nel motore a scoppio infatti o nella
tecnologia della macchina per il caffè non vi è nulla di virtuale in questo senso, poiché
queste tecnologie non mirano a tradurre in prodotto una visione del mondo e una teoria.
L’informatica, al contrario, è teoria dell’informazione tradotta in oggetto del consumo e
in metafora del mondo reale. Non è dunque possibile usare criticamente alcuno di questi
oggetti prescindendo dalla conoscenza di tale teoria: non basta il saper fare ma occorre il
sapere in sé cosa sia l’informatica e come operi sulle informazioni che comunichiamo e
manipoliamo.

Il digital divide
Con il termine digital divide si indica tradizionalmente un fenomeno sociale e culturale
caratterizzato dal divario esistente fra chi ha accesso alle tecnologie dell’informazione e
della comunicazione e chi ne è escluso. In genere, parliamo di digital divide in grande
quando pensiamo all’esistenza di paesi tecnologicamente ed economicamente più avan-
zati di altri e in piccolo se ci riferiamo alle diverse condizioni economiche e culturali
all’interno di una stessa popolazione. Il divario descritto dal digital divide è dovuto, in
entrambi i casi, al fatto che le condizioni di competizione e di accesso ai beni, non ulti-
mo il lavoro, nelle società tecnologicamente avanzate è condizionato dalla possibilità di
accedere alle tecnologie. Insomma, la disponibilità della tecnologia è una condizione ne-
cessaria a non perdere il passo della società che ci circonda e a garantire un soddisfacente
ingresso nel mondo del lavoro. Tuttavia, la semplice disponibilità materiale della tecnolo-
gia non è sufficiente. L’altro fattore determinante è infatti di ordine non materiale e con-
CastanoWSU cap0 18-12-2008 16:39 Pagina XIII

Introduzione XIII

siste nella conoscenza degli strumenti tecnologici. La cosiddetta alfabetizzazione infor-


matica si riferisce appunto all’esigenza di formare le persone all’uso degli strumenti tec-
nologici, come condizione fondamentale per ridurre il divario. Per usare una similitudi-
ne, potremmo dire che per spostarci con l’automobile non basta possederne una, ma
occorre saperla guidare.
Gli strumenti informatici però, lo abbiamo ribadito in precedenza, non sono come
le automobili, nel senso che non sono strumenti neutri rispetto al loro scopo, ma incido-
no in maniera determinante sui contenuti e sui processi comunicativi, cambiandone la
natura e la cognizione. Possiamo dunque prendere a prestito la nozione di digital divide
per introdurre un’ulteriore causa di divario relativa alle tecnologie: la distanza fra chi sa
usare e chi conosce. Immaginiamo ad esempio di dover diffondere un messaggio sul Web e
di avere per obiettivo l’efficacia della comunicazione e della sua diffusione. Certamente,
per poter in primo luogo realizzare il nostro obiettivo occorre avere accesso alla pubblica-
zione sul Web e possedere le conoscenze pratiche necessarie a comporre una pagina di un
sito. Questo saper usare ci distingue da chi non ha gli stessi strumenti e ci dà accesso alla
rete e al suo pubblico. Ma tutto ciò è sufficiente perché il nostro messaggio competa in un
contesto nel quale milioni di informazioni sono contemporaneamente presenti e fruibili?
Pensiamo a come si accede alla rete: in primo luogo è ragionevole immaginare che i nostri
destinatari arrivino al messaggio passando da qualche punto di accesso, come ad esempio
un motore di ricerca o un blog. Arrivati al messaggio lo interpreteranno alla luce di pro-
cessi cognitivi a cui sono abituati dalla consultazione costante di pagine web: giudiche-
ranno il messaggio per come è scritto, per come appare sul nostro sito, per il suo corredo
iconografico o ipertestuale. Adotteranno insomma un criterio interpretativo abituato alla
fruizione di contenuti manipolati e trasformati dall’informatica. Perché dunque il nostro
messaggio sia efficace dobbiamo garantirgli una buona visibilità sui motori di ricerca e
comporlo alla luce delle trasformazioni rese possibili dalla tecnologia. Ottenere questi ri-
sultati richiede di sapere come funziona un motore di ricerca, come sono organizzati blog
e comunità web, come il testo e le immagini vengono codificati, rappresentati e infine
trasmessi. Occorre in definitiva conoscere e non solo saper fare. In altri termini è quanto
mai vero il monito baconiano:
La mano nuda e l’intelletto abbandonato a se stesso servono poco. Per compiere le opere
sono necessari strumenti e mezzi d’aiuto, sia per la mano che per l’intelletto; e come gli
strumenti meccanici servono ad ampliare o regolare i movimenti delle mani, così gli
strumenti mentali estendono o trattengono il movimento dell’intelletto. La scienza e la
potenza umana coincidono, perché l’ignoranza della causa preclude l’effetto, e alla natu-
ra si comanda solo ubbidendole: quello che nella teoria fa da causa nell’operazione pra-
tica diviene regola. (Bacone, 1620)

Informatizzare gli umanisti


Alla luce di quanto detto possiamo ora comprendere meglio cosa significhi per un uma-
nista accedere all’informatica. Per molto tempo, per gli umanisti insegnare e apprendere
l’informatica ha significato soprattutto indicarne gli strumenti e suggerirne l’uso. In virtù
di questi sforzi e per la diffusione rapidissima degli strumenti informatici nella vita quo-
CastanoWSU cap0 18-12-2008 16:39 Pagina XIV

XIV Introduzione

tidiana, questo tipo di conoscenza è nel migliore dei casi già posseduta dalle giovani gene-
razioni e inutile nel peggiore. In generale l’informatizzazione intesa come guida all’uso è
insufficiente. Come abbiamo infatti già detto è necessaria anche una conoscenza della di-
sciplina. Vi sono però due approcci alla conoscenza dell’informatica: da un lato la cono-
scenza dei metodi e degli strumenti informatici per come essi si applicano e agiscono nel
contesto delle discipline umanistiche; dall’altro la conoscenza dell’informatica in sé, come
problema culturale e teorico, alla luce però degli strumenti interpretativi e conoscitivi
propri della tradizione delle discipline umanistiche. Possiamo dunque dire che c’è
un’informatica umanistica che studia gli strumenti dell’informatica nella loro applicazio-
ne ai contenuti considerati tradizionalmente umanistici, dall’analisi del testo alla gestione
dei contenuti editoriali ad esempio e c’è un’informatica umanistica che studia i problemi
sollevati dall’informatica alla luce delle discussioni filosofiche e culturali precedentemen-
te sviluppate dalle discipline umanistiche, dai problemi di logica e rappresentazione della
conoscenza ai problemi della comunicazione. L’obiettivo dell’informatizzazione degli
umanisti è dunque in primo luogo un problema culturale e scientifico. Esso ha però un
impatto rilevante sulla collocazione professionale delle persone che hanno studiato e fre-
quentato discipline tradizionalmente umanistiche. Da un lato, infatti, molte professioni
tradizionali si avvalgono e richiedono oggi competenze di tipo informatico. Nel settore
editoriale e della comunicazione, ad esempio, i contenuti sono sempre più spesso veicola-
ti da strumenti informatici. Parallelamente, l’informatica ha dato origine a nuove profes-
sioni che richiedono conoscenze umanistiche affiancate da solide conoscenze informati-
che. Un primo settore in cui sono fiorite nuove professioni è certamente il Web. Il
numero di siti web cresce a ritmi elevati e, allo stesso tempo, la natura dei siti stessi cam-
bia. In origine le competenze necessarie alla creazione di un sito erano quasi esclusiva-
mente di tipo informatico, poiché molte pagine erano statiche e l’attenzione per i conte-
nuti bassa; a un progettista serviva poco più che la conoscenza di HTML. Ovviamente, la
trasformazione dei siti web in vere e proprie applicazioni software e il conseguente accre-
scimento della complessità tecnologica connessa alla pubblicazione sul Web produce una
distinzione maggiore fra il ruolo degli informatici, degli amministratori dell’infrastruttu-
ra e dei programmatori delle applicazioni e di chi deve invece occuparsi di contenuti e la-
vorare alla progettazione dei siti. Questi ultimi devono possedere un’ampia conoscenza
dei fenomeni legati al Web, dai blog al social networking e, al tempo stesso, devono posse-
dere gli strumenti informatici necessari a comprendere come si possono organizzare i
contenuti e diffonderli. Queste conoscenze non sono tradizionalmente competenze
informatiche e coinvolgono in prima battuta gli strumenti linguistici e interpretativi di
molte discipline umanistiche. Un altro settore di rilievo è legato al mondo della formazio-
ne. Gli strumenti informatici introducono e rendono possibile un approccio nuovo all’in-
segnamento, il cosiddetto e-learning, in cui non solo la formazione può svolgersi a distan-
za, ma le modalità di fruizione e composizione dei materiali di apprendimento è del tutto
nuova. In questo ambito, dunque, vi è l’esigenza non solo di avere esperti della gestione
dei contenuti o di comunicazione ma anche esperti nella formazione e nell’insegnamento
che, dotati di competenze tecnologiche, individuino le potenzialità degli strumenti e ac-
compagnino i discenti nella fruizione dei contenuti formativi. Infine, un ambito di recen-
te sviluppo e grandi potenzialità riguarda la gestione della conoscenza o knowledge
management. Si è scritto e detto più volte di come la conoscenza, intesa come patrimonio
di dati organizzati e fruibili, sia una ricchezza di organizzazioni e aziende. In generale i
CastanoWSU cap0 18-12-2008 16:39 Pagina XV

Introduzione XV

dati e metadati che un’organizzazione raccoglie nel tempo hanno un valore commerciale
ed economico che è possibile sfruttare e ulteriormente valorizzare. Affinché però i dati e
le informazioni acquistino un reale valore occorre che siano organizzati e gestiti in modo
efficiente ed efficace. La gestione della conoscenza non deve occuparsi solo della proget-
tazione di strumenti software efficienti; al contrario, lo sviluppo in ambito commerciale
dei prodotti informatici rende sempre meno indispensabili queste competenze tipica-
mente tecnologiche all’interno di un’organizzazione che può reperire gli strumenti mi-
gliori direttamente sul mercato. Diviene quindi più strategico il ruolo di chi gestisce e or-
ganizza, per mezzo degli strumenti disponibili, il patrimonio conoscitivo. Quest’ultima
attività richiede competenze logiche e conoscenze che sono a disposizione degli umanisti
e che vanno applicate al contesto informatico.
Più in generale, possiamo concludere che gli umanisti sono chiamati a svolgere un
ruolo di mediazione e di guida. Vi è una mediazione fra l’utenza e le squadre di sviluppo,
composte da informatici, e una mediazione, sul piano dei contenuti, fra il messaggio e le
modalità di fruizione. Gli umanisti sono sempre più spesso chiamati in ambiti diversi a
guidare lo sviluppo informatico orientandolo verso l’obiettivo comunicativo che, in sé, è
esterno all’attività specifica dell’informatica. D’altra parte, non tutto ciò che il commit-
tente o l’utenza richiede è tecnicamente realizzabile; in questo caso la mediazione viene
svolta nella direzione opposta. L’umanista competente di informatica raccoglie i problemi
e i limiti tecnici e li converte in direzioni di sviluppo e in confini entro cui sviluppare il
progetto comunicativo. Accanto alle competenze tecniche, quindi, l’umanista necessita di
una conoscenza generale e ampia di ciò che gli strumenti informatici hanno creato nei di-
versi ambiti, come il Web, l’editoria, la comunicazione sociale.
L’ultima parte del presente testo affronta dunque alcuni di questi temi ritenuti cen-
trali per il rapporto fra discipline umanistiche e informatica, cercando di introdurre gli
strumenti tecnologici accanto agli strumenti interpretativi e di analisi dei fenomeni infor-
matici.
CastanoWSU cap0 18-12-2008 16:39 Pagina XVI
CastanoWSU cap1 18-12-2008 16:39 Pagina 1

Capitolo 1

Dati, informazioni, sistemi informativi

La ricerca e gestione di dati e informazioni sono elementi essenziali di molteplici attività


che svolgiamo quotidianamente come, ad esempio, la consultazione di un catalogo di una
biblioteca o di un sito web cinematografico, la stampa dell’elenco degli esami attraverso i
sistemi informativi delle università o il versamento di una somma su un conto corrente.
In tutte queste attività siamo interessati a reperire tutte le informazioni che rispondono
alle nostre specifiche esigenze del momento. Ad esempio, potremmo voler trovare tutte le
informazioni disponibili su un libro di cui conosciamo l’autore oppure sui film di un cer-
to regista o, ancora, su tutti gli esami universitari sostenuti. Infine, ogni volta che eseguia-
mo un’operazione di versamento o prelevamento comunichiamo il nostro numero di
conto corrente all’operatore della filiale bancaria, che è così in grado di reperire tutti i da-
ti del nostro conto e di registrare l’avvenuta operazione all’interno del sistema informati-
vo della banca.
È chiaro che in tutti questi scenari c’è un sistema informatico in grado di memoriz-
zare e gestire le informazioni di interesse, rendendo possibili le operazioni di reperimento
e di aggiornamento dei dati in un certo momento.
Abbiamo utilizzato due termini importanti: dati e informazioni. In genere per dato
si intende la descrizione di una caratteristica della realtà costituita da simboli, che ne ga-
rantiscono la comprensione, e registrata su un supporto, che ne garantisce la conservazio-
ne. Se prendiamo in considerazione il valore 2005 scritto su un foglio, questo è un dato.
Siamo infatti in grado di leggere e comprendere il valore 2005 e il foglio ne garantisce la
conservazione. Tuttavia, non siamo in grado di comprendere il significato del valore
2005, ovvero che cosa questo insieme di simboli rappresenti. Per informazione intendia-
mo invece l’interpretazione di un dato in grado di arricchire la nostra conoscenza. Se il
valore 2005 è associato a una descrizione come “Titolo: Be Cool – anno di produzione:
2005”, allora siamo in presenza di un’informazione, ovvero di un dato interpretato. Al
dato è associato un contesto interpretativo che consente di comprendere il significato del
dato rispetto alla sua funzione descrittiva di una certa realtà. Nel nostro caso il dato rap-
presenta l’anno di produzione di un certo film. I sistemi informatici per la gestione dei
dati normalmente sono in grado di memorizzare i dati nel tempo e di fornire il contesto
interpretativo che li rende informazioni utili per gli utenti.
CastanoWSU cap1 18-12-2008 16:39 Pagina 2

2 Capitolo 1 Dati, informazioni, sistemi informativi

Memorizzazione dei dati e basi di dati


Tornando ai nostri esempi di consultazione di un catalogo di una biblioteca, di un sito
web cinematografico, di stampa dell’elenco degli esami o del versamento di una somma
su un conto corrente, osserviamo che in tutte queste attività i dati di interesse (ovvero i
dati relativi ai libri, ai film, agli esami, ai conti correnti) vengono reperiti da un grande ar-
chivio elettronico dove sono memorizzati e conservati nel tempo.
Una base di dati (database) è una collezione di dati correlati creata con lo scopo spe-
cifico di rappresentare adeguatamente e memorizzare le informazioni relative a una realtà
di interesse. La base di dati del sito cinematografico conterrà dati su attori, registi, film e
così via; quella relativa agli esami conterrà dati su studenti, corsi di laurea, esami, docen-
ti e così via. Un’altra caratteristica fondamentale delle basi di dati è che i dati memorizza-
ti vengono mantenuti continuamente aggiornati nel tempo, per riflettere le modifiche
che man mano si verificano nella realtà, al fine di fornire dati sempre attuali agli utenti e
alle applicazioni che ne necessitano per lo svolgimento delle varie attività. Ad esempio,
ogni volta che uno studente supera un esame, questa nuova informazione viene registrata
nella base di dati dell’università. In questo modo, i certificati rilasciati allo studente con-
terranno l’elenco aggiornato degli esami che ha sostenuto fino a quel momento. General-
mente, per effettuare la ricerca dei dati di interesse in una base di dati, l’utente può fare
uso di appositi programmi software che mettono a disposizione interfacce, spesso di tipo
grafico, che guidano l’utente alla corretta formulazione delle sue richieste.

I sistemi di gestione di basi di dati (DBMS)


Un sistema di gestione di basi di dati (DBMS, Database Management System) è un siste-
ma software specificamente realizzato per supportare la definizione e la manipolazione
della base di dati da parte degli utenti. In particolare, un DBMS offre le seguenti prin-
cipali funzionalità.
◆ Fornisce agli utenti una visione di alto livello dei dati contenuti nella base di dati at-
traverso l’uso di un modello, nascondendo i dettagli di basso livello relativi alla me-
morizzazione fisica dei dati.
◆ Fornisce supporto per la condivisione della base di dati da parte di molteplici uten-
ti e applicazioni, garantendo la corretta gestione degli accessi contemporanei.
◆ Garantisce la sicurezza dei dati, ovvero permette l’accesso ai dati solo agli utenti au-
torizzati, che possono effettuare solamente operazioni lecite.
◆ Fornisce la possibilità di definire una visione personalizzata dei dati per le diverse ti-
pologie di utenti e applicazioni, contenente il sottoinsieme di dati di utilità.
◆ Fornisce funzionalità di salvataggio e ripristino (backup e recovery) dei dati contenu-
ti nella base di dati per garantire che non ci siano perdite di dati anche in caso di
guasti e malfunzionamenti del software o dei dispositivi hardware del sistema di
elaborazione.
◆ Assicura la coerenza dei dati contenuti nella base di dati facendo in modo che su di
essi vengano rispettati un insieme di vincoli di integrità.
CastanoWSU cap1 18-12-2008 16:39 Pagina 3

I sistemi di gestione di basi di dati (DBMS) 3

Informazione Descrizione Esempio


Oggetti Elementi individuali e L’attrice Uma Thurman,
particolari della realtà, a cui il film Pulp Fiction
riconosciamo un’esistenza
Insiemi di oggetti Classi di oggetti dotati di L’insieme degli attori,
caratteristiche comuni l’insieme dei film
Attributi Caratteristiche secondarie Il nome degli attori, il titolo
(proprietà) degli oggetti dei film
Associazioni Legami logici fra oggetti Uma Thurman ha recitato
in Pulp Fiction

Figura 1.1 Esempi di oggetti, attributi e associazioni per una base di dati cinematografica.

Un DBMS realizza in termini concreti un modello dei dati. Il modello descrive la strut-
tura dei dati che caratterizzano la realtà di interesse a cui si riferisce la base di dati. Un
modello dei dati comprende un insieme di costrutti, una notazione per specificare i da-
ti tramite i costrutti stessi e un insieme di operazioni per esprimere le interrogazioni e le
modifiche. Un modello dei dati deve permettere la rappresentazione degli (insiemi di)
oggetti del mondo reale, dei legami (o associazioni) fra tali oggetti e delle caratteristiche
(o attributi) degli oggetti e/o delle loro associazioni. Esempi di oggetti, attributi e asso-
ciazioni di interesse nel caso di una base di dati cinematografica sono mostrati nella Fi-
gura 1.1.
La descrizione delle caratteristiche dei dati di una base di dati utilizzando un model-
lo dei dati costituisce lo schema della base di dati. Lo schema fornisce una descrizione del
contenuto della base di dati, sostanzialmente invariante nel tempo. In termini tecnici, si
dice che lo schema costituisce la componente intensionale della base di dati e quindi viene
definito una sola volta, indipendentemente dalla numerosità dei dati che saranno archivia-
ti. Allo scopo di definire correttamente lo schema della base di dati è necessario procedere
a una concettualizzazione delle informazioni sulla realtà osservata, ovvero all’individuazione
e alla rappresentazione della realtà di interesse in termini degli insiemi di oggetti che la rap-
presentano, delle loro caratteristiche e dei legami che intercorrono fra di essi. Ad esempio,
nella definizione di una base di dati per le informazioni cinematografiche lo schema de-
scriverà attori, registi, film, case di produzione e così via. I film a livello di schema saranno
descritti attraverso un unico concetto FILM, con una serie di proprietà quali ad esempio
Titolo, Anno di produzione, Nazione, Durata, Genere, Lingua originale. Cambiamenti al-
lo schema sono operazioni poco frequenti che devono però essere possibili per modificare
o estendere la struttura dei dati contenuti nella base di dati qualora se ne verificasse l’esi-
genza nel tempo. Ad esempio, potremmo decidere che alla descrizione dei film vogliamo
aggiungere un’ulteriore proprietà, Colore (SI/NO), perché ci interessa conoscere se un
film è realizzato a colori o in bianco e nero. Normalmente i DBMS mettono a disposizio-
ne opportuni comandi per la definizione e la modifica dello schema. Il primo passo nello
sviluppo di una base di dati è rappresentato dalla definizione del suo schema.
I dati veri e propri contenuti in un certo momento nella base di dati costituiscono
lo stato corrente o insieme delle istanze della base di dati (quella che in termini tecnici vie-
ne denominata componente estensionale). Lo stato varia molto frequentemente nel tempo
CastanoWSU cap1 18-12-2008 16:39 Pagina 4

4 Capitolo 1 Dati, informazioni, sistemi informativi

per riflettere gli aggiornamenti apportati ai dati (inserimenti, cancellazioni, modifiche).


Nella base di dati cinematografica saranno archiviati dati relativi a vari film, centinaia o
migliaia, a seconda della vastità del nostro archivio. L’inserimento dei dati rappresenta il
passo successivo nello sviluppo di una base di dati, ovvero il suo popolamento iniziale. Il
DBMS garantisce che ogni stato sia valido, ovvero che i dati inseriti e modificati verifichi-
no la struttura e i vincoli sui dati definiti nello schema. Nel nostro caso, ciascun film sarà
caratterizzato da un titolo, un anno, una nazione, una durata, un genere, la lingua origi-
nale e l’informazione sul colore.
In questo testo noi considereremo il modello relazionale, che rappresenta il model-
lo dei dati sul quale si fondano la maggior parte delle basi di dati e dei DBMS oggi dispo-
nibili. Infatti, anche se i primi DBMS apparsi negli anni ’60/’70 si basavano su modelli
dei dati diversi1, a partire dagli anni ’80/’90 le basi dati e i DBMS relazionali sono ormai
diventati uno standard per la gestione delle informazioni nell’ambito delle organizzazioni
pubbliche e private. Come avremo modo di vedere più approfonditamente nel seguito,
nel modello relazionale i dati sono memorizzati in tabelle, dette relazioni, composte da
un certo numero di colonne, dette attributi, e da un certo numero di righe, dette tuple.
Questa organizzazione tabellare risulta essere piuttosto intuitiva e fa sì che le basi di dati
relazionali possano essere interrogate con relativa facilità anche da utenti non esperti del-
la tecnologia relazionale.

Dati e livelli di astrazione


Una base di dati gestita da un DBMS può essere vista a tre livelli di astrazione, a ciascuno
dei quali corrisponde una descrizione dei dati sotto forma di uno schema specifico.
A livello logico la rappresentazione dei dati è di alto livello ed è descritta attraverso
uno schema logico che fornisce una descrizione dell’intera base di dati vicina alla concet-
tualizzazione della realtà per mezzo del modello dei dati del DBMS utilizzato. Nel nostro
caso, consideriamo DBMS relazionali, in cui cioè il modello dei dati utilizzato è quello
relazionale. A livello logico possiamo quindi considerare oggetti della realtà come i film
facendo riferimento a una tabella FILM, in cui le colonne rappresentano i vari attributi
che caratterizzano i film e le varie righe descrivono i diversi film.
A livello fisico la visione dei dati è quella di più basso livello, descritta attraverso
uno schema fisico in cui si considerano direttamente i record che descrivono i vari ogget-
ti, memorizzati in file su un supporto fisico come, ad esempio, file sequenziali su disco.
Questo livello è nascosto all’utente finale ed è gestito internamente direttamente dal
DBMS relazionale.
Al livello esterno, i dati possono essere presentati a utenti diversi secondo schemi
esterni differenti, detti viste, che contengono un sottoinsieme di tutti i dati, quelli di inte-

1 Le prime basi di dati e i primi DBMS erano basati sul modello gerarchico e su quello reticolare, ma si sono
rivelati meno vincenti rispetto ai successivi DBMS relazionali poiché l’organizzazione dei dati risultava essere
molto vicina al livello dei file, richiedendo quindi conoscenze di tipo tecnico per poter formulare corretta-
mente le richieste di accesso.
CastanoWSU cap1 18-12-2008 16:39 Pagina 5

Dati e livelli di astrazione 5

resse per lo specifico utente. Ad esempio, nel nostro caso possiamo immaginare di avere
una vista relativa ai soli film americani e un’altra relativa invece ai soli film italiani. Alcuni
DBMS, come ad esempio quelli mono-utente per la gestione di basi dati personali, posso-
no non supportare il livello esterno, che è invece molto importante nel caso di DBMS che
operano in ambienti multi-utente, tipici delle organizzazioni pubbliche e private.
L’aspetto importante di questa architettura è che gli utenti formulano le loro richie-
ste facendo riferimento allo schema logico oppure agli schemi esterni e quindi a descrizio-
ni di alto livello dei dati contenuti nella base di dati e non a una descrizione di basso li-
vello in termini di record e file di record, che risulterebbe troppo tecnica e complessa da
gestire. Sarà compito del DBMS tradurre internamente le richieste di accesso formulate
dagli utenti sullo schema logico e/o sugli schemi esterni in opportune richieste di accesso
a file di record nelle strutture fisiche di memorizzazione al fine di reperire i dati di interes-
se per l’utente che ha formulato la richiesta.
CastanoWSU cap1 18-12-2008 16:39 Pagina 6
CastanoWSU cap2 18-12-2008 16:40 Pagina 7

Capitolo 2

Semantica dei dati: ontologie


e rappresentazione della conoscenza

Il problema della rappresentazione delle informazioni relative a una realtà di interesse ci


costringe a interrogarci su quali formalismi e quali criteri occorra adottare per esprimere
il significato dei termini con cui parliamo degli oggetti e il significato dei dati che rappre-
sentano la realtà di interesse. Dobbiamo anche comprendere che, nel rappresentare una
realtà in una base di dati o, in generale, in un sistema informatico, la nostra ambizione
non è quella di descriverla per come essa è, ma piuttosto la creazione di una nostra realtà,
che colga in quella di interesse i soli elementi utili ai fini dell’applicazione che intendiamo
realizzare. La natura di questi problemi ha, in qualche modo, avvicinato gli informatici a
temi propri di altre tradizioni di pensiero. Uno di questi, connesso appunto alla rappre-
sentazione della conoscenza, è il tema dell’ontologia.
La parola ontologia compare nella terminologia filosofica in tempi relativamente re-
centi, ovvero nel XVII secolo, per indicare una disciplina filosofica molto più antica, la
scienza dell’essere in generale, che si occupa della conoscenza dell’essere in quanto tale.
L’origine di tale disciplina si deve ad Aristotele che assegna tale compito alla filosofia pri-
ma. Nel medioevo essa prende il nome di metafisica, dal termine tà metà tà physicà asso-
ciato ai libri in cui Aristotele tratta la filosofia prima, successivi ai libri sulla fisica. Nella
concezione aristotelica, la filosofia prima è la scienza teoretica suprema, rispetto alle altre
due scienze teoretiche subordinate, ovvero la fisica e la matematica. Alla filosofia prima
viene dato anche il nome di teologia o teologia razionale, per distinguerla, a partire dal
medioevo, dalla teologia basata sui contenuti di fede. La ricerca sulla natura dell’essere e
la teologia rimangono tuttavia legate strettamente nel corso del medioevo e oltre.
La nozione centrale dell’ontologia aristotelica è quella di sostanza, cioè di individuo
che è o ente. Essa si contrappone alla nozione di sostanze seconde, cioè di generi e specie
che ne compongono la definizione, e proprietà accidentali che ne caratterizzano gli attri-
buti. In questo senso, l’ontologia si occupa di conoscere ciò che rende una sostanza ciò
che è, ovvero la sua essenza, e non la sua categorizzazione rispetto agli universali e ai ge-
neri, né i suoi attributi accidentali. È tuttavia fondamentale il contributo aristotelico alla
teoria della definizione, poiché svolgerà un ruolo fondamentale nel campo della logica e
incide profondamente sulla nozione contemporanea di ontologia in informatica. In gene-
rale, se il problema dell’essere in sé e il problema della definizione delle sostanze sono in
CastanoWSU cap2 18-12-2008 16:40 Pagina 8

8 Capitolo 2 Semantica dei dati: ontologie e rappresentazione della conoscenza

qualche misura distinti in Aristotele, dove l’interesse per la metafisica ha una natura di-
versa dalle ricerche di carattere logico, in informatica il ruolo centrale del linguaggio e dei
problemi di rappresentazione fanno sì che i due temi coincidano e si declinino in senso
logico.
Nel medioevo la dialettica fra essenza ed esistenza assume un ruolo di primo piano.
Due posizioni fondamentali in questo dibattito sono quella tomista, nella quale essenza
ed esistenza sono distinte nelle creature e coincidenti solo in Dio, e la posizione occami-
sta, nella quale l’essere predicato di Dio e delle creature non differisce. Già nel medioevo,
l’ontologia è strettamente legata al problema di definire e rappresentare gli oggetti della
realtà, in termini di generi (classi) e differenze specifiche (proprietà), e alla questione rela-
tiva all’esistenza dei termini astratti o universali. Molti altri temi, dagli universali ai futu-
ri possibili, sviluppati nel dibattito di età medievale, costituiscono argomenti che, con
poche differenze, caratterizzano anche il dibattito odierno in informatica.
Il termine ontologia deve la sua fortuna a un’opera molto più tarda, ovvero l’Onto-
logia di Wolf (1729), la cui definizione risente del pensiero di Leibniz. Il reale si contrap-
pone al possibile e l’ente si definisce come ciò che può esistere, mentre l’esistenza diviene
il complemento della possibilità. Gli strumenti dell’ontologia diventano i principi di non
contraddizione e di ragion sufficiente e l’ontologia è la scienza degli attributi essenziali
dell’ente, ovvero delle sue proprietà o modi, e di coppie concettuali ritenute fondamen-
tali, come quantità e qualità, singolarità e universalità, identità e diversità o causa ed ef-
fetto.
Con la rivoluzione copernicana kantiana, l’interesse si sposta dal problema di cono-
scere la realtà in sé a quello di conoscere le categorie fondamentali con le quali la nostra
mente la conosce. La metafisica diviene conoscenza razionale pura per concetti e l’ontologia
viene sostituita dallo studio delle modalità e delle categorie della conoscenza, che prende
il nome di analitica trascendentale in Kant e di logica in Hegel. Il pensiero contempora-
neo riprende la nozione di ontologia con Husserl, che la definisce ontologia regionale, ov-
vero scienza ideale di generi di enti che sono oggetto empirico di più scienze, e con
Heidegger (EFG, 1993).
Ma il principale significato di ontologia nella storia del pensiero contemporaneo è
quello assunto dalla filosofia analitica e dalla filosofia del linguaggio, e si intreccia dunque
con l’evoluzione della logica matematica. In questa accezione, gli aspetti ontologici di una
teoria dipendono dal tipo di variabili di cui si ammette una quantificazione e dalla se-
mantica del linguaggio utilizzato. Ciò è particolarmente rilevante ai fini del significato di
ontologia in informatica: l’ontologia non è costituita dalle asserzioni che una teoria fa su
ciò che esiste e non esiste, ma sulla tipologia di significati che il linguaggio utilizzato è in
grado di rappresentare. Il discorso ontologico non è più dunque un discorso sull’essere,
ma piuttosto un discorso sulla nostra rappresentazione dell’essere e sulle possibilità del
nostro linguaggio. Da questa concezione discende l’idea di ontologia formale, intesa come
teoria formale dei modi dell’essere. La costruzione della teoria coincide con la definizione
della semantica di un linguaggio logico che definisce le entità di cui si parla e le relazioni
che intercorrono fra tali entità con lo scopo di esprimere tutte le teorie di cui si accetta la
validità o, più propriamente, le condizioni di validità di una teoria particolare.
CastanoWSU cap2 18-12-2008 16:40 Pagina 9

Ontologie e informatica: concetti introduttivi 9

Ontologie e informatica: concetti introduttivi


A partire dagli anni ’80, il termine ontologia entra a far parte della terminologia del-
l’informatica, e più specificatamente nelle discipline dell’Intelligenza Artificiale e dell’In-
gegneria della Conoscenza.
Con la diffusione di Internet e del Web negli anni ’90 e, più recentemente, del
Semantic Web, le ontologie hanno acquisito una rilevanza sempre maggiore in ambito
informatico.
Secondo le teorie dichiarative, la strada verso l’Intelligenza Artificiale era quella di
dotare le macchine di knowledge that, ovvero di basi di conoscenza capaci di descrivere in
maniera dichiarativa le caratteristiche di interesse di un dominio applicativo. Sulle basi di
conoscenza era poi possibile operare attraverso tecniche di ragionamento automatico e di
problem-solving. Nel 1991, il DARPA Knowledge Sharing Effort identificava un nuovo
approccio alla costruzione di sistemi intelligenti, basato sullo sviluppo di componenti
riusabili capaci di rappresentare sia conoscenza dichiarativa sia metodi di problem-
solving. Secondo questo approccio, la conoscenza dichiarativa è modellata attraverso
ontologie, mentre i metodi di problem-solving specificano meccanismi generici di ragiona-
mento. Le ontologie e i metodi di problem-solving rappresentano quindi elementi com-
plementari per la progettazione basata sul riuso di nuovi sistemi fondati sulla conoscenza.
Da allora, molta attività di ricerca si è concentrata sullo sviluppo di tecnologie per la con-
divisione e il riuso di componenti di conoscenza e di metodi di problem solving.
Molte discipline dell’informatica hanno contribuito e dato impulso all’attività di ri-
cerca sulle ontologie (Figura 2.1). Dagli anni ’90 fino a oggi, sono sempre più numerose
le applicazioni che fanno uso di ontologie, da applicazioni di commercio elettronico al-
l’integrazione semantica di informazioni eterogenee, dalle librerie digitali all’elaborazione
del linguaggio naturale, dalla bioinformatica all’e-learning tanto per citarne alcune.
L’avvento del Semantic Web ha prodotto un ulteriore stadio nell’evoluzione delle
ontologie. La sostanziale ragione del grande interesse maturato recentemente nei riguardi
delle ontologie con il Semantic Web risiede nel divario esistente tra i metodi con i quali

Figura 2.1 Discipline e applicazioni delle ontologie.


CastanoWSU cap2 18-12-2008 16:40 Pagina 10

10 Capitolo 2 Semantica dei dati: ontologie e rappresentazione della conoscenza

vengono memorizzati i dati e il loro significato, ovvero tra la loro sintassi (cioè il modo
utilizzato per la loro rappresentazione) e la loro semantica. Molto spesso, infatti, la sim-
bologia con la quale i dati vengono rappresentati non è di alcuna utilità per la loro inter-
pretazione. Di conseguenza, la comprensione del loro significato con il semplice formato
di memorizzazione è un compito molto complesso, specialmente se la rappresentazione
dei dati non è corredata da ulteriori opportune informazioni. In contesti distribuiti, tale
difficoltà aumenta per l’enorme quantità di informazioni disponibili, generalmente me-
morizzate secondo formati di rappresentazione diversi ed eterogenei (ad esempio, infor-
mazioni strutturate in basi di dati, informazioni semi-strutturate in pagine web, docu-
menti non strutturati). Come affermato dal suo fondatore Tim Berners-Lee, il Semantic
Web è un’estensione del Web in cui si attribuisce un significato ben definito alle informa-
zioni al fine di rendere possibile la cooperazione fra esseri umani e macchine.
The Semantic Web is an extension of the current web in which information is given
well-defined meaning, better enabling computers and people to work in cooperation.
(Berners-Lee, 2001)
Tale cooperazione si ottiene attraverso la condivisione di ontologie rappresentanti la co-
noscenza di dominio. Realizzare il Semantic Web significa quindi creare e mantenere on-
tologie in tutti i domini della conoscenza (ad esempio, arte, commercio, geografia). Inol-
tre, il Semantic Web prevede un insieme di servizi intelligenti, basati su tecniche di
problem-solving riusabili che modellano i processi di ragionamento basati sulla cono-
scenza disponibile nelle varie ontologie. Le ontologie costituiscono le componenti stati-
che del Semantic Web mentre i servizi quelle dinamiche. Quindi il Semantic Web non si
sostituisce al Web tradizionale, ma negli intendimenti dei suoi fondatori, lo estenderà
dapprima con funzioni evolute di ricerca delle informazioni capaci di sfruttare le rappre-
sentazioni della conoscenza contenute nelle varie ontologie e, successivamente, realizzan-
do una infrastruttura intelligente composta da numerosi agenti software in grado di risol-
vere specifici problemi della vita quotidiana.
Da quando se ne fa uso anche in ambito informatico, per distinguerne il significato,
è stato proposto di utilizzare “Ontologia” con la O maiuscola quando ci si riferisce all’am-
bito filosofico e “ontologia” quando ci si riferisce all’ambito informatico (Guarino e
Giarretta, 1995). La distinzione fra i due ambiti si manifesta anche per il fatto che spesso,
in ambito informatico, si ricorre al termine plurale ontologie, che nell’accezione origina-
ria non ha senso.

Ontologie: definizioni e contenuto


Una definizione di ontologia comunemente accettata da tutti i ricercatori non è ancora di-
sponibile. Di seguito, riportiamo una serie di definizioni che sono apparse in letteratura:
ciascuna si focalizza su alcune caratteristiche particolari che un’ontologia deve possedere.

Definizioni di ontologia
Definizione 1. “An ontology defines the basic terms and relations comprising the vocabulary
of a topic area, as well as the rules for combining terms and relations to define extensions to the
vocabulary.” (Neches, 1991)
CastanoWSU cap2 18-12-2008 16:40 Pagina 11

Ontologie: definizioni e contenuto 11

Definizione 2. “An ontology is a hierarchically structured set of terms for describing a domain
that can be used as a skeletal foundation for a knowledge base.” (Swartout, 1997)
Definizione 3. “An ontology is an explicit specification of a conceptualization” (Gruber, 1993)
Definizione 4. “An ontology is a formal, explicit specification of a shared conceptualization.”
(Studer, 1998)
Definizione 5. “An ontology is a shared understanding of a domain of interest.” (Uschold,
1996)

Le prime due definizioni sono incentrate sull’aspetto dei termini costituenti un’ontolo-
gia. Esse interpretano un’ontologia come un insieme di termini e di relazioni fra termini
che definiscono il vocabolario per la descrizione di una realtà di interesse. Inoltre, un’on-
tologia definisce anche le regole e le relazioni necessarie per estendere il vocabolario stes-
so. Le definizioni 3 e 4 sono incentrate sulla concettualizzazione e la specifica. Una con-
cettualizzazione è una visione astratta e semplificata della realtà di interesse che si vuole
rappresentare per qualche scopo. La concettualizzazione rappresenta i concetti e le loro
proprietà nella realtà di interesse e le relazioni che sussitono fra essi (Genesereth e Nils-
son, 1987). Le basi di dati, le basi di conoscenza e più in generale i sistemi e gli agenti ba-
sati su conoscenza fanno riferimento a qualche concettualizzazione, implicita o esplicita.
Le definizioni 3 e 4, inoltre, fanno emergere due elementi importanti: il fatto che un’on-
tologia è una concettualizzazione di una realtà di interesse e l’esigenza di un formalismo o
linguaggio per la specifica esplicita della concettualizzazione stessa. Inoltre, la seconda de-
finizione sottolinea anche la necessità che la specifica sia formale e che la concettualizza-
zione sia condivisa dagli utenti/agenti coinvolti, ovvero che la conoscenza descritta nel-
l’ontologia sia consensuale.
Anche la quinta definizione mette in rilievo l’esigenza che l’ontologia sia condivisa
da parte della comunità di utenti/agenti. Si dice che gli agenti si impegnano a usare (o fan-
no il commit di) un’ontologia, ovvero che le loro azioni sono coerenti con le definizioni
contenute nell’ontologia. Si parla di ontological commitment per indicare un accordo a
utilizzare la specifica condivisa dell’ontologia in modo coerente.
In base alle definizioni precedenti, diamo di seguito una definizione generale di ri-
ferimento. Con il termine ontologia si intenderà d’ora in poi:
◆ un vocabolario condiviso, ovvero un insieme di termini rappresentativi dei concet-
ti e delle relazioni che caratterizzano la realtà di interesse che l’ontologia si propone
di descrivere per una comunità di riferimento;
◆ un formalismo (o linguaggio) che consente di esprimere la concettualizzazione sot-
to forma di concetti, proprietà, relazioni fra concetti, facendo uso dei termini del
vocabolario;
◆ un insieme di regole per specificare, in modo non ambiguo ed esplicito, il significa-
to dei concetti e delle relazioni tra concetti e i vincoli di integrità che sussistono nel-
la realtà di interesse.
In sintesi quindi, un’ontologia è una descrizione esplicita e formale della concettualizza-
zione di una realtà in termini di concetti, proprietà dei concetti e relazioni semantiche fra
concetti. Inoltre un’ontologia definisce un vocabolario comune e un significato condiviso
della realtà di interesse per cui viene creata.
CastanoWSU cap2 18-12-2008 16:40 Pagina 12

12 Capitolo 2 Semantica dei dati: ontologie e rappresentazione della conoscenza

Contenuto di un’ontologia
Una differenziazione spesso ripresa fra tipologie di ontologie le divide in ontologie “leg-
gere” (lightweight) e “pesanti” (heavyweight). Le prime sono prevalentemente tassonomie
di concetti, ovvero ontologie in cui sono presenti concetti, proprietà e relazioni semanti-
che fra concetti essenzialmente di tipo gerarchico (ad esempio, is-a, kind-of ). Le ontolo-
gie pesanti aggiungono regole a quelle leggere per specificare formalmente vincoli che de-
vono essere soddisfatti (ad esempio, vincoli sulle proprietà) al fine di definire in maniera
formale il significato dei concetti contenuti nell’ontologia.
Ortogonalmente, si distinguono diverse tipologie di ontologie in base al livello di
formalità, che può variare a seconda del formalismo di specifica che si utilizza per la defi-
nizione. In particolare, un’ontologia può essere informale se viene specificata mediante il
linguaggio naturale, semi-informale se viene specificata secondo un insieme ristretto del
linguaggio naturale con qualche forma di strutturazione, semi-formale se viene specificata
in un linguaggio artificiale formalmente definito e, infine, rigorosamente formale se si for-
nisce una precisa definizione dei termini, con una semantica formale e con teoremi e di-
mostrazioni di correttezza e completezza.
Nel seguito considereremo in particolare ontologie processabili, ovvero specificate
attraverso formalismi o linguaggi di specifica processabili automaticamente, il che esclu-
de ontologie informali e semi-informali. In sintesi, possiamo riassumere le tipologie di
costrutti presenti in un’ontologia formale in termini di concetti (o classi) che rappresen-
tano astrazioni del mondo reale di interesse, proprietà che descrivono le caratteristiche di
un concetto, regole che specificano vincoli sui valori che le proprietà possono assumere.
Inoltre, un’ontologia è caratterizzata dalla presenza di assiomi che predicano le condizio-
ni solo necessarie o necessarie e sufficienti per la definizione dei concetti. In molti ap-
procci, ad esempio nelle logiche descrittive, tale definizione viene fornita in termini in-
siemistici, ovvero interpretando i concetti come insiemi di oggetti. Tali insiemi possono
avere relazioni: due o più insiemi possono essere infatti semanticamente equivalenti,
cioè denotare le stesse entità del mondo reale o che hanno lo stesso significato. Ad esem-
pio, potremmo immaginare un’ontologia in cui i concetti Attore e Interprete sono con-
siderati equivalenti (equivalent); i due concetti hanno lo stesso significato, ovvero l’insie-
me di oggetti reali che denotano è il medesimo. Se due concetti sono equivalenti, ciò
significa che sono uno condizione necessaria e sufficiente per la definizione dell’altro.
Nel nostro esempio, essere un interprete è non solo necessario per essere considerato un
attore, ma è anche sufficiente: tutti gli interpreti sono anche attori e viceversa. Un con-
cetto invece può essere una specializzazione di un altro. In termini insiemistici significa
che un certo concetto denota un sottoinsieme degli oggetti denotati dall’altro concetto.
Ad esempio, potremmo dire che Cortometraggio è una specializzazione di Film
(subclass-of, is-a). Con questo intendiamo che tutti i cortometraggi sono film, ma non
tutti i film sono cortometraggi. Essere un film è dunque una condizione necessaria, ma
non sufficiente, per essere un cortometraggio.
Un’altra peculiare relazione fra concetti è quella di parte (part-of ). Possiamo ad
esempio dire che i Titoli di coda sono parte di un Film, per intendere il fatto che gli og-
getti denotati dal concetto di Titolo di coda sono componenti degli oggetti denotati dal
concetto di Film. I concetti possono essere poi legati da altre generiche proprietà, nel sen-
so che gli oggetti che denotano sono legati da specifiche relazioni. Diciamo in questo ca-
CastanoWSU cap2 18-12-2008 16:40 Pagina 13

Ontologie: definizioni e contenuto 13

so che vi è un’associazione (associates) fra i concetti. Il concetto Film ad esempio è associa-


to al concetto Attore nel senso che vi è una relazione di partecipazione attori e film.
Ai concetti dell’ontologia sono associate le istanze, che rappresentano gli specifici og-
getti del mondo reale. Fra un concetto e le sue istanze sussiste (spesso in forma implicita)
una relazione di appartenenza (is-member-of, instance-of ). Le istanze possiedono le pro-
prietà e le relazioni definite per i corrispondenti concetti. Osserviamo che le ontologie in
generale forniscono la descrizione dei concetti senza contenere la descrizione delle corri-
spondenti istanze limitandosi a fornire solo la descrizione intensionale. La combinazione
di ontologia e delle corrispondenti istanze, costituisce una base di conoscenza.

Meccanismi di astrazione
Nella progettazione concettuale in generale, ovvero nella definizione di un’ontologia e
nella rappresentazione concettuale di una realtà di interesse, un meccanismo del pensiero
di primaria importanza è l’astrazione. Per astrazione intendiamo qui l’attività di indivi-
duazione delle proprietà essenziali e comuni a un insieme di oggetti, prescindendo dalle
loro differenze. Definire le proprietà essenziali o, in altri termini, ciò che rende un ogget-
to ciò che è, è propriamente il problema centrale dell’ontologia, anche nel senso classico.
Questo problema, apparentemente solo teorico, si ripropone continuamente nei processi
che, in informatica, presiedono alla definizione di basi di dati e alla rappresentazione
dell’informazione e della conoscenza. In generale, il processo di astrazione mira alla defi-
nizione di un concetto, ovvero alla definizione di una descrizione unica e universale di un
insieme di oggetti particolari. Il concetto descrive un insieme di oggetti specificandone le
proprietà, in modo cioè intensionale, e non enumerando i contenuti, in modo cioè esten-
sionale. L’utilità di poter far riferimento a un insieme di oggetti per mezzo di un concet-
to, ovvero di un solo termine generale, è evidente se si pensa a insiemi infiniti o a insiemi
di cui vogliamo predicare le caratteristiche ma di cui ancora non conosciamo il contenu-
to. Prendiamo ad esempio i numeri pari. Abbiamo due modi di descriverne l’insieme: il
primo modo è elencare tutti i numeri pari; il secondo consiste nel fornire la definizione in
base alla quale inseriamo un numero nell’insieme dei numeri pari, per esempio “numeri
che si possono dividere per 2 con resto zero”. È evidente che la prima definizione è impra-
ticabile: i numeri pari sono infiniti e se ogni qualvolta dovessimo predicare della classe dei
numeri pari dovessimo enumerarli non potremmo mai dirne nulla. Per utilizzare il secon-
do approccio facciamo invece astrazione dalle caratteristiche proprie di ogni specifico nu-
mero pari per concentrarci solo su quelle che esso ha in comune con gli altri (la divisibi-
lità per due ad esempio). Quando progettiamo un’ontologia o una base di dati ci occorre
parlare di classi di oggetti (ad esempio film, attori) senza sapere a priori quali oggetti me-
morizzeremo. Per parlare di dati che non ancora possediamo facciamo ancora astrazione,
individuando le caratteristiche che i nostri oggetti hanno in comune.
Nella progettazione concettuale usiamo tre principali strategie di astrazione: la clas-
sificazione, l’aggregazione e la generalizzazione. Nel meccanismo di classificazione definia-
mo gli insiemi di oggetti individuando le proprietà caratterizzanti di tali oggetti. Succes-
sivamente inseriamo ogni oggetto in un insieme se esso rispetta la caratteristiche che
definiscono l’insieme. Supponiamo ad esempio di definire l’insieme degli Attori come
l’insieme delle persone che hanno recitato in almeno un film. Sulla base della nostra defi-
nizione, ogni persona presa in esame sarà classificata come attore se rispetterà la condizio-
ne di aver partecipato almeno a un film. Nel meccanismo di aggregazione, invece, una
CastanoWSU cap2 18-12-2008 16:40 Pagina 14

14 Capitolo 2 Semantica dei dati: ontologie e rappresentazione della conoscenza

classe di oggetti è definita a partire dalle classi di oggetti che ne costituiscono le parti.
Supponiamo ad esempio di aver individuato alcune tipologie di oggetti come i titoli di te-
sta, le scene e i titoli di coda: sulla base di queste classi di oggetti possiamo definire il con-
cetto di film come aggregato di titoli di testa, scene e titoli di coda. Analogamente, è pos-
sibile partire da un concetto aggregato (il film) per definire delle classi come suoi
componenti (i titoli e le scene). Infine, nel caso della generalizzazione, si definisce un
concetto più generale a partire da concetti più specifici, generalizzandone le proprietà co-
muni. Immaginiamo ad esempio di considerare i concetti di Attore e Regista. Entrambi
hanno caratteristiche generali che condividono (ad esempio un nome, una data di nasci-
ta) e alcune differenze, come il fatto che gli attori recitano nei film, mentre i registi li di-
rigono. Quando generalizziamo, prescindiamo da tali differenze per concentrarci sulle
proprietà comuni che non dipendono dalle classi specifiche ma dal fatto che sia attori sia
registi appartengono a una classe più ampia di oggetti, come le Persone. Il concetto di
Persona è quindi definito generalizzando i tratti delle classi specifiche e possiede le pro-
prietà che le due classi specifiche hanno in comune. Analogamente all’aggregazione, pos-
siamo procedere in senso inverso, per specializzazione, definendo classi più specifiche (ad
esempio Attore, Regista) a partire da una classe generale come Persona.
CastanoWSU cap3 18-12-2008 16:41 Pagina 15

Capitolo 3

La progettazione concettuale

La creazione di una base di dati per la rappresentazione e l’archiviazione dell’informazio-


ne relativa a una realtà di interesse richiede una fase di progettazione che precede la sua
realizzazione in un sistema software. La progettazione concettuale è estremamente impor-
tante poiché la maggior parte dei problemi nella gestione dei dati può essere risolta con
una corretta rappresentazione dei dati stessi. In particolare, la progettazione si avvale di
un’analisi concettuale della realtà da rappresentare e di considerazioni di carattere appli-
cativo, relative cioè agli scopi e alla mole di lavoro a cui l’applicazione verrà sottoposta.
Qui ci concentreremo sulla progettazione concettuale, dal momento che l’altro ordine di
problemi è di tipica pertinenza tecnica.
La progettazione concettuale ha per scopo la produzione di uno schema concettuale,
ovvero di un diagramma che, utilizzando uno specifico formalismo, rappresenti la realtà
di interesse in termini di classi di oggetti e relazioni fra tali classi. Uno dei formalismi più
usati per tali scopi è il modello Entità-Relazione (modello ER). Questo modello, la cui pri-
ma introduzione risale al 1976 (Chen, 1976), è costituito da un insieme di costrutti e di
relativi elementi grafici che, combinati opportunamente, consentono di documentare
l’attività di concettualizzazione della realtà di interesse sottoforma appunto di schema
ER. Inoltre, lo schema ER costituisce uno strumento da cui è semplice derivare successi-
vamente, per traduzione, la struttura della base di dati nel sistema software. I principali
costrutti del modello ER sono le entità, le relazioni (spesso denominate associazioni) e gli
attributi. A questi costrutti si aggiungono poi ulteriori notazioni per rappresentare vinco-
li e proprietà come ad esempio la notazione di cardinalità delle relazioni o le gerarchie di
generalizzazione.

Entità e attributi
Un’entità nel modello ER rappresenta una classe, o insieme, di oggetti della realtà che
hanno proprietà comuni ed esistenza autonoma ai fini dell’applicazione di interesse. Im-
maginiamo di voler rappresentare concettualmente le informazioni relative alla cinemato-
grafia. Possibili entità in tale contesto sono le persone che lavorano nel cinema, come i re-
gisti, gli attori, gli sceneggiatori, oppure l’entità film che rappresenta le opere cinemato-
CastanoWSU cap3 18-12-2008 16:41 Pagina 16

16 Capitolo 3 La progettazione concettuale

Figura 3.1 Esempio di entità con attributi.

grafiche. Si noti che rappresentiamo come entità sia insiemi di oggetti concreti, come le
persone, sia insiemi di oggetti astratti, come l’opera cinematografica. Il punto importan-
te è che, in entrambi i casi, riconosciamo a tali categorie di oggetti un ruolo autonomo e
il fatto di avere alcune caratteristiche in comune. L’entità FILM rappresenterà dunque
l’insieme dei film che sono archiviati nella base di dati, caratterizzati tutti dalle stesse pro-
prietà, come il titolo o l’anno di produzione. L’entità PERSONA, invece, rappresenterà
l’insieme delle persone che lavorano nel cinema.
Osserviamo che ogni entità all’interno di uno schema ha un nome univoco che la
identifica ed è rappresentata graficamente per mezzo di un rettangolo, come illustrato
nella Figura 3.1.
Ogni entità è poi caratterizzata da un insieme di proprietà elementari comuni agli
oggetti della realtà rappresentati dall’entità. Ogni proprietà è rappresentata da un attribu-
to che denota una caratteristica specifica degli oggetti dell’entità. È importante compren-
dere che gli attributi sono caratteristiche che dipendono dall’entità e non hanno dunque
un’esistenza autonoma nella realtà descritta. Nel caso dei film, ad esempio, il titolo è una
caratteristica di ogni film che dipende dalla nozione di film (è cioè il titolo di un film) e
non un oggetto a sé stante. Gli attributi sono rappresentati nel modello ER come piccoli
cerchi associati al nome dell’attributo e collegati da una linea all’entità a cui si riferiscono,
come mostrato nella Figura 3.1.
Nel nostro esempio, i film sono caratterizzati da un codice, un titolo, un anno di
produzione, una durata e una nazionalità. Analogamente, le persone sono caratterizzate
da un nome, una nazionalità e una data di nascita.

Relazioni fra entità


Una relazione fra entità rappresenta un legame logico fra due o più entità. Una relazio-
ne nel modello ER ha un nome che la identifica ed è rappresentata graficamente per
mezzo di un rombo, connesso alle entità poste in relazione (o, come si dice, che parteci-
pano alla relazione) per mezzo di una linea. Anche le relazioni, come le entità, rappre-
sentano insiemi; tuttavia, se per le entità gli elementi dell’insieme sono i singoli oggetti
della realtà di riferimento, per le relazioni essi sono costituiti dalle combinazioni di og-
getti effettivamente correlati fra quelli appartenenti alle entità poste in relazione. Tali
combinazioni saranno costituite da un numero di oggetti pari al numero di entità che
partecipano alla relazione. Supponiamo ad esempio di rappresentare per mezzo di una
relazione TROUPE il legame che intercorre fra un film e le persone che vi lavorano.
CastanoWSU cap3 18-12-2008 16:41 Pagina 17

Cardinalità delle relazioni 17

L’entità FILM rappresenta un insieme che contiene i singoli film presenti nella base di
dati, mentre l’entità PERSONA rappresenta un insieme che contiene le singole persone
descritte nella base di dati. La relazione TROUPE rappresenta dunque un insieme i cui
elementi sono coppie. Per ogni coppia, un elemento è costituito da un film e l’altro ele-
mento è costituito da una persona che lavora a quel film. Anche le relazioni possono
avere attributi. In questo caso, l’attributo rappresenta una caratteristica non di una delle
entità coinvolte, ma piuttosto del loro legame logico. Ad esempio, per rappresentare nel-
la nostra realtà cinematografica il ruolo svolto da ogni persona nella lavorazione del film
(regista, sceneggiatore, tecnico delle luci), possiamo definire un attributo ruolo per la re-
lazione TROUPE. Infatti dobbiamo intendere il ruolo non come una caratteristica di
un film o di una persona, ma come una caratteristica propria del legame fra una persona
e un film. In altri termini, esprimiamo l’idea che una certa persona lavori a un certo film
con un certo ruolo. Ogni relazione si legge in due direzioni: TROUPE, ad esempio, in
un senso esprime il fatto che i film hanno una troupe composta di persone; nell’altro che
le persone fanno parte di una troupe di un film. Fra due entità vi possono essere più re-
lazioni diverse per indicare che nella realtà sussistono legami con significati differenti fra
gli oggetti di quelle entità. Il film, ad esempio, è legato alle persone in due modi: la trou-
pe, rappresentata dalla relazione TROUPE, che denota il legame che sussiste fra le per-
sone e i film per esprimere il fatto che le persone lavorano alla realizzazione di un film
con ruoli di natura tecnica, e il cast, rappresentato dalla relazione CAST, che denota il
legame fra i film e le persone che vi lavorano in qualità di attori. Una relazione può an-
che interessare la stessa entità: in questo caso si parla di relazione ricorsiva. Una relazione
ricorsiva viene utilizzata per rappresentare un legame logico fra elementi dello stesso in-
sieme, ovvero della stessa entità, e quindi rappresenta sempre un insieme di coppie di
oggetti dell’entità in questione. Un esempio sono i rifacimenti cinematografici o remake.
Un remake può essere infatti rappresentato come una relazione ricorsiva sull’entità
FILM e denota coppie di film tali che uno dei due è il rifacimento dell’altro. Una rela-
zione ricorsiva ha comunque due direzioni, dal momento che gli individui dell’insieme
sono legati ad altri individui dello stesso insieme analogamente a quanto avviene nelle
relazioni fra entità diverse. Per distinguere le due direzioni si annotano le linee che con-
nettono il rombo all’entità con due termini che qualificano il ruolo svolto che ciascuno
dei due oggetti correlati dell’entità in questione. Nel nostro esempio, la relazione
REMAKE ha due direzioni: la prima (che chiamiamo rifacimento) indica che il primo
film è il remake del secondo; l’altra direzione (che chiamiamo originale) indica il fatto
che il secondo film ha come remake il primo. Per indicare la differenza fra le due direzio-
ni ricorriamo alla notazione mostrata nella Figura 3.2.

Cardinalità delle relazioni


Come si è detto, ogni relazione rappresenta un legame logico fra oggetti di due entità.
Una caratteristica importante delle relazioni è il numero minimo e massimo di combina-
zioni, o corrispondenze, che si possono avere fra gli oggetti delle due entità nella realtà di
riferimento. Tale caratteristica prende il nome di cardinalità della relazione. In particola-
re, dal momento che ogni relazione ha due sensi di lettura, è importante indicare il nu-
mero minimo e il numero massimo di corrispondenze in entrambe le direzioni. Genera-
CastanoWSU cap3 18-12-2008 16:41 Pagina 18

18 Capitolo 3 La progettazione concettuale

Figura 3.2 Esempi di relazioni fra entità.

lizzando questo processo, possiamo dire che se sussiste una relazione R fra due entità A e
B, determinare la cardinalità di R consiste nel domandarsi quanti oggetti di B possano
corrispondere a un oggetto di A come minimo e come massimo rispetto al significato del
legame rappresentato da R. La domanda si ripete poi nell’altro senso: quanti oggetti di A
possono corrispondere a un oggetto di B come minimo e come massimo? Riportiamo
questo esempio al caso della relazione CAST fra FILM e PERSONA: da un lato, dato un
film, ci chiediamo quante persone possano far parte del cast: la risposta è che il numero
minimo è zero (per esempio nei film di animazione) e quello massimo è un numero gran-
de a piacere, che indicheremo con N; dall’altro lato, data una persona, ci chiediamo a
quanti film possa essere associata dalla relazione CAST, ovvero in quanti film abbia reci-
tato. La risposta, anche in questo caso, è zero come numero minimo (una persona potreb-
be non essere un attore) e N come massimo (non vi è un limite prefissato al numero di
film in cui una persona possa recitare). Tale ragionamento si applica anche alle relazioni
ricorsive. Nel caso della relazione REMAKE, dato un film, ci chiediamo di quanti altri
film esso possa essere un remake: la risposta è che potrebbe non essere affatto un remake
(cardinalità minima zero) o esserlo al massimo di un solo film (cardinalità massima uno);
nell’altro senso invece, dato un film, ci chiediamo quanti remake possa avere. In questo
caso la risposta sarà ragionevolmente zero per la cardinalità minima e N per la cardinalità
massima. Le cardinalità si indicano annotando i due lati della relazione con la notazione
(m,M), dove m denota la cardinalità minima e M quella massima, con m ≤ M. L’esempio
della Figura 3.2 viene quindi modificato esprimendo le cardinalità come mostrato nella
Figura 3.3.
Definendo le cardinalità è importante osservare che lo schema non rappresenta la
realtà di riferimento in termini assolutamente veri, ma solo funzionali all’applicazione
che necessita della base di dati. Nell’esempio precedente, supponiamo che un film possa
essere il remake di un solo altro film. Ciò non deve essere necessariamente vero: infatti
nella progettazione delle basi di dati l’obiettivo è la definizione della realtà di riferimento
dell’applicazione e non la mimesi della realtà in quanto tale.
CastanoWSU cap3 18-12-2008 16:41 Pagina 19

Identificatori 19

Figura 3.3 Esempi di relazioni fra entità con l’indicazione della cardinalità.

Identificatori
Un identificatore di un’entità E è una collezione di attributi e/o entità connesse a E che
permettono di identificare univocamente gli elementi di E. Un attributo che identifica
univocamente gli elementi di un’entità è tale per cui non vi sono due o più elementi di E
caratterizzati dallo stesso valore per quell’attributo. Nella nostra base di dati ipotizziamo,
per esempio, che ogni film abbia un codice che, analogamente a quanto avviene con il co-
dice fiscale o il numero di passaporto, lo identifica in modo univoco. Un identificatore è
denotato nello schema annerendo il cerchio che denota l’attributo corrispondente. Un
identificatore può essere composto anche da più attributi. Ciò avviene quando un solo at-
tributo non è sufficiente all’identificazione, ma occorre considerare l’insieme di più carat-
teristiche di un’entità. In alcuni casi, ad esempio, per identificare una persona in un grup-
po può non essere sufficiente il solo nome o il solo cognome, mentre l’insieme di nome e
cognome può costituire un identificatore valido. In questo caso un cerchio nero viene
collegato a tutti gli attributi interessati dall’identificatore composto per mezzo di una riga
trasversale. Un ultimo, e più raro, tipo di identificatore è quello esterno. Vi sono infatti
entità che non hanno un identificatore univoco, nemmeno considerando tutti i loro attri-
buti: per l’identificazione di un’entità E che, per sottolineare l’eccezionalità della situazio-
ne, viene denominata entità debole, si ricorre alla combinazione dei suoi attributi con
quelli di altre entità in relazione con E. Ricorriamo a un esempio esterno al dominio ci-
nematografico e relativo alla situazione degli studenti universitari. Ogni studente ha in-
fatti una matricola che lo identifica in modo univoco. Ciò è vero però solo se ci riferiamo
a una base di dati di un singolo ateneo. Se invece consideriamo un’ipotetica base di dati
relativa all’intero sistema universitario, la matricola di per sé non è più sufficiente per
identificare gli studenti, dal momento che vi possono essere studenti di università diverse
dotati della stessa matricola. Perché la matricola continui a funzionare da identificatore in
questo caso, occorre abbinarla al codice identificativo dell’università frequentata dallo
studente. In un caso del genere, l’entità STUDENTE sarebbe considerata un’entità debo-
CastanoWSU cap3 18-12-2008 16:41 Pagina 20

20 Capitolo 3 La progettazione concettuale

Figura 3.4 Esempi di diverse tipologie di gerarchie di generalizzazione.

le, poiché deve ricorrere all’attributo identificativo dell’entità UNIVERSITA, che funge
da entità forte. In questo caso un cerchio nero viene collegato a tutti gli attributi interes-
sati dall’identificatore esterno per mezzo di una riga trasversale alle due entità.

Gerarchie di generalizzazione
Le gerarchie di generalizzazione rappresentano un particolare tipo di legame che intercor-
re fra entità. Mentre le relazioni viste in precedenza rappresentano un generico legame fra
entità, le gerarchie rappresentano un legame di specializzazione di un’entità rispetto a
un’altra. Più precisamente, se esiste una gerarchia di generalizzazione fra un’entità E e
un’entità E1, ciò indica che ogni oggetto che è elemento di E1 è anche elemento di E,
mentre non vale necessariamente l’opposto. La relazione di generalizzazione è dunque
equivalente alla nozione di sottoinsieme e indica il fatto che E1 è un tipo specifico del
concetto denotato da E. Nelle gerarchie l’entità più generale è denominata entità padre,
mentre le entità più specifiche prendono il nome di entità figlie. Il legame fra entità figlie
ed entità padre è rappresentato da una freccia orientata dall’entità figlia all’entità padre,
come mostrato nella Figura 3.4.
Una caratteristica importante delle gerarchie di generalizzazione discende dal fatto
che esse rappresentano un legame di specializzazione: le entità figlie sono caratterizzate da
tutti gli attributi e da tutte le relazioni propri dell’entità padre, mentre non è vero il con-
trario. Per convincersene, basti pensare che ogni oggetto di un’entità figlia è anche un og-
getto dell’entità padre e ne possiederà quindi tutte le caratteristiche, mentre un oggetto
dell’entità padre non è necessariamente un oggetto dell’entità figlia e sarebbe pertanto
sbagliato attribuirgliene le caratteristiche. Consideriamo ad esempio la gerarchia (d) nel-
la Figura 3.4: l’entità padre rappresenta il generico insieme degli sportivi che sono tutti
caratterizzati da un nome, un’età e una nazionalità. L’entità figlia CESTISTA rappresen-
CastanoWSU cap3 18-12-2008 16:41 Pagina 21

Indicazioni metodologiche per la progettazione 21

ta invece uno specifico tipo di sportivo, il giocatore di pallacanestro. Ogni giocatore di


pallacanestro è anche uno sportivo, pertanto avrà un nome, un’età e una nazionalità che,
per così dire, eredita dall’entità padre. Tuttavia un cestista ha anche un ruolo, che è inve-
ce una caratteristica non pertinente a tutti gli sportivi. Infatti i tennisti, che svolgono uno
sport individuale, non hanno un ruolo in una squadra. In generale, gli attributi e le rela-
zioni che valgono per tutte le entità figlie di una certa entità padre si rappresentano solo
sull’entità padre, poiché sono implicitamente applicati anche alle entità figlie. Sulle entità
figlie si rappresentano solo gli attributi e le relazioni specifiche per il sottoinsieme di og-
getti rappresentato dall’entità figlia in questione.
Un’altra importante caratteristica delle gerarchie di generalizzazione è la distinzione
fra gerarchie totali/parziali e gerarchie esclusive/sovrapposte. Una gerarchia si dice totale se
l’unione degli insiemi di oggetti rappresentati dalle entità figlie coincide con l’insieme de-
gli oggetti rappresentati dall’entità padre, altrimenti si dice parziale. In altri termini, im-
maginiamo di costruire un insieme che contenga tutti gli oggetti che sono elementi di al-
meno un’entità figlia. Se l’insieme ottenuto contiene esattamente gli stessi oggetti
contenuti nell’entità padre la gerarchia è totale, altrimenti è parziale. In una gerarchia to-
tale, quindi, non vi sono oggetti dell’entità padre che non siano anche oggetti di almeno
un’entità figlia, mentre in una gerarchia parziale vi possono essere oggetti dell’entità pa-
dre che non sono elementi di alcuna entità figlia definita. Analogamente, possiamo im-
maginare di costruire un insieme che contenga tutti gli oggetti che sono elementi di tut-
te le entità figlie, ovvero l’insieme intersezione delle entità figlie. Se l’insieme così ottenuto
non contiene alcun oggetto, allora si dice che la gerarchia di generalizzazione è esclusiva,
ovvero ogni oggetto compare al più in una sola delle entità figlie, altrimenti essa è detta
sovrapposta (overlapping). Le caratteristiche delle gerarchie si indicano con una coppia di
lettere fra parentesi: la prima lettera può essere una T (totale) o una P (parziale), mentre
la seconda lettera può essere una E (esclusiva) o una O (overlapping). Consideriamo ad
esempio le quattro gerarchie della Figura 3.4. In (a) le persone si dividono in uomini e
donne: in questo caso, se costruiamo l’insieme di tutti gli uomini e di tutte le donne, è
evidente che avremo lo stesso insieme denotato dall’entità PERSONA, cioè tutte le per-
sone sono o uomini o donne. La gerarchia è quindi totale. Inoltre, se intersechiamo le en-
tità UOMO e DONNA otteniamo l’insieme vuoto, poiché non vi sono persone che sia-
no sia uomo sia donna. Pertanto, la gerarchia è esclusiva. Nel caso (b), non vi sono società
cinematografiche che non siano o società di produzione o società di distribuzione. La ge-
rarchia è quindi totale. Vi possono però essere società che fanno sia produzione sia distri-
buzione di film. La gerarchia è quindi sovrapposta. Il caso (c) rappresenta una gerarchia
parziale ed esclusiva, poiché vi possono essere veicoli che non sono né automobili né mo-
tocicli, ma non vi possono essere veicoli che siano sia automobili sia motocicli. Infine, nel
caso (d) abbiamo una gerarchia parziale e sovrapposta, poiché vi sono sportivi che non so-
no né tennisti né cestisti, ma vi possono essere sportivi che sono sia tennisti sia cestisti.
L’esempio è illustrato in termini insiemistici nella Figura 3.5.

Indicazioni metodologiche per la progettazione


Nella letteratura sulle basi di dati sono state proposte diverse metodologie per la proget-
tazione concettuale. In questo contesto, ci avvarremo di elementi di queste metodologie
per illustrare, per mezzo di un esempio, come si possa pervenire alla definizione di uno
CastanoWSU cap3 18-12-2008 16:41 Pagina 22

22 Capitolo 3 La progettazione concettuale

Figura 3.5 Rappresentazione insiemistica delle tipologie di gerarchie di generalizzazione.

schema concettuale a partire da una descrizione testuale della realtà di interesse. Per pri-
ma cosa, riprendendo l’esempio relativo alla cinematografia, introduciamo una descrizio-
ne testuale di una porzione di interesse relativa al mondo del cinema. Nella realtà esami-
nata vi sono alcuni film, intesi come l’opera cinematografica e non come la specifica
versione che esce nelle diverse sale dei diversi paesi, che chiameremo invece edizione. Un
film è caratterizzato da un codice, un titolo, un anno di produzione, una durata e una na-
zionalità. L’edizione, invece, oltre ad avere un codice che la identifica, è caratterizzata da
un titolo che può essere diverso da quello del film, come avviene in molti paesi in cui è
prassi doppiare i film stranieri, da una nazione, che indica il paese di uscita, dalla durata,
che può anch’essa variare, dalla lingua in cui è editato e dall’indicazione del tipo di censu-
ra eventualmente applicato. Ogni edizione è l’edizione di un solo film, mentre un film ha
tipicamente più edizioni. Inoltre, un film può essere il remake di un altro film. Volendo
rappresentare questa porzione iniziale della realtà di interesse, dobbiamo per prima cosa
individuare le entità e i loro attributi. È naturale, nell’esempio, immaginare di introdurre
un’entità FILM e un’entità EDIZIONE, corredandole con un attributo per ogni loro ca-
ratteristica. Entrambe le entità sono identificate tramite un attributo codice. Un’edizione
è legata logicamente a un film per il fatto di esserne l’edizione. Pertanto introdurremo
una relazione VERSIONE fra le due entità. Al momento di determinare la cardinalità di
tale relazione, dobbiamo leggerla nei due sensi: data un’edizione, di quanti film essa può
costituire la versione? Leggendo il testo, la risposta più naturale è almeno uno e al massi-
mo uno. Pertanto, introdurremo la cardinalità (1,1) sulla relazione dal lato dell’entità
EDIZIONE. Analogamente, è facile verificare che la cardinalità nell’altra direzione è
(0,N). Procediamo allo stesso modo per la relazione REMAKE che lega un film a un al-
CastanoWSU cap3 18-12-2008 16:41 Pagina 23

Indicazioni metodologiche per la progettazione 23

tro di cui il primo è il rifacimento. La prima porzione di schema ER avrà dunque la se-
guente forma:

Figura 3.6 Prima porzione di schema ER.

Ogni film ha poi un cast e una troupe. Ogni persona è caratterizzata da un nome, una na-
zionalità e una data di nascita. Dal momento che sia cast sia troupe sono insiemi di per-
sone legate a un film, è ragionevole che tali insiemi siano rappresentati per mezzo di due
relazioni fra un’entità PERSONA e l’entità FILM. Il ruolo di ogni persona nella troupe,
così come il personaggio interpretato da ogni attore nel cast, non sono caratteristiche né
del film in se stesso, né della persona in sé. Entrambi gli attributi sono caratteristiche del
legame fra persona e film e saranno dunque rappresentati per mezzo di attributi delle due
relazioni TROUPE e CAST. Lasciamo al lettore per esercizio la spiegazione delle cardina-
lità espresse nella seguente porzione di schema ER risultante:

Figura 3.7 Seconda porzione di schema ER.

Come ultimo passaggio, veniamo alla rappresentazione delle informazioni relative ai pro-
duttori dei film. Come è noto, ogni film è associato a una o più società cinematografiche
CastanoWSU cap3 18-12-2008 16:41 Pagina 24

24 Capitolo 3 La progettazione concettuale

che producono il film e a una o più società che lo distribuiscono nei diversi paesi. Le so-
cietà di produzione e di distribuzione sono entrambe società e, pertanto, possiamo rap-
presentarle per mezzo di una gerarchia di generalizzazione che ha la SOCIETA come en-
tità padre e PRODUTTORE e DISTRIBUTORE come entità figlie. Le due tipologie di
società condividono alcune caratteristiche in quanto società, come ad esempio il nome e
la nazionalità. Pertanto rappresenteremo queste informazioni come attributi della entità
padre, in modo che siano ereditati da entrambe le società figlie. Tuttavia, vi sono alcune
differenze specifiche fra le due: in particolare, le società di produzione producono i film,
mentre le società di distribuzione distribuiscono le edizioni dei film. È quindi naturale
rappresentare queste due informazioni come relazioni rispettivamente fra l’entità PRO-
DUTTORE e l’entità FILM, per la produzione, e fra l’entità DISTRIBUTORE e l’entità
EDIZIONE per la distribuzione. Si noti che tali relazioni sono attribuite alle entità figlie
poiché non sono condivise da tutte le società. La gerarchia introdotta è tale per cui, nella
nostra realtà, esistono solo due tipologie di società e non vi sono società che non siano
produttori o distributori. La gerarchia è quindi totale. Inoltre, è ragionevole immaginare
che vi possano essere società che si occupano sia di produzione sia di distribuzione. Per-
tanto la gerarchia è sovrapposta. Con l’aggiunta delle informazioni relative alla produzio-
ne e distribuzione dei film lo schema di esempio è completo e ha la forma illustrata nella
Figura 3.8.

Figura 3.8 Esempio completo di schema ER.


CastanoWSU cap4 18-12-2008 16:41 Pagina 25

Capitolo 4

Il modello relazionale

Il modello relazionale dei dati è stato proposto come modello logico di riferimento per la
rappresentazione di ingenti moli di dati da Edgard F. Codd nel 1970 (Codd, 1970). L’i-
dea centrale in tale modello di rappresentazione è che i singoli dati a nostra disposizione
in un dominio acquistano valore di informazione nel momento in cui vengono posti in
relazione fra loro. Per tale ragione, il modello è fondato sulla nozione matematica di rela-
zione che fornisce non solo la base teorica per la rappresentazione dei dati, ma anche lo
strumento fondamentale per lo studio delle proprietà dei dati e delle operazioni su di es-
si. La nozione di relazione consente inoltre una rappresentazione naturale dei dati per
mezzo di tabelle. Il modello relazionale, sebbene non sia stato utilizzato nei primi sistemi
di gestione dei dati (DBMS), è divenuto progressivamente quello più importante, al pun-
to che oggi è comunemente usato in quasi tutti i DBMS disponibili commercialmente.
La ragione principale della popolarità di questo modello è che esso fornisce linguaggi
semplici e di tipo dichiarativo, ma al tempo stesso potenti, con cui esprimere le operazio-
ni di accesso e manipolazione dei dati.
Un esempio di come i dati siano rappresentati nel modello relazionale è illustrato
nella Figura 4.1.
Una relazione (o tabella) è caratterizzata da un insieme di righe, dette anche tuple, e
da un insieme di colonne, dette anche attributi. Ogni riga rappresenta i dati relativi a uno
specifico oggetto della realtà. I dati vengono inseriti nelle celle (o campi) della tabella, in
corrispondenza del relativo attributo. Dunque, l’intera tabella rappresenta una classe di
oggetti della realtà, le cui caratteristiche sono rappresentate dagli attributi. Come il mo-
dello ER, introdotto nei precedenti capitoli, anche il modello relazionale rappresenta una
realtà di riferimento. Tuttavia, se il modello ER ha lo scopo di fornire una rappresentazio-
ne concettuale dei dati per fini di progettazione, ovvero un modello orientato alle classi di
oggetti e ai loro rapporti, il modello relazionale è basato su una struttura logica più adat-
ta alla memorizzazione dei dati nelle applicazioni informatiche ed è orientato ai valori dei
dati stessi.
CastanoWSU cap4 18-12-2008 16:41 Pagina 26

26 Capitolo 4 Il modello relazionale

Figura 4.1 Esempio di rappresentazione tabellare dei dati.

Teoria del modello relazionale


Dopo aver presentato i concetti fondamentali del modello relazionale, introduciamo al-
cune nozioni che facilitano la comprensione delle basi teoriche. In primo luogo, definia-
mo una base di dati relazionale come un insieme di relazioni Ri, ognuna delle quali descri-
ve una classe di oggetti della realtà di riferimento. Per comprendere meglio come sia
definita ognuna delle relazioni Ri della base di dati occorre partire dalle nozioni di domi-
nio e di prodotto cartesiano. Per dominio intendiamo un insieme di valori, come ad esem-
pio l’insieme delle stringhe di testo, l’insieme dei numeri interi, l’insieme delle date, ecc.
Il prodotto cartesiano è invece un’operazione su insiemi. Supponiamo ad esempio di ese-
guire il prodotto cartesiano fra due insiemi A e B (A × B): il risultato è un insieme costi-
tuito da tutte le coppie ordinate di valori tali che il primo valore di ogni coppia è un ele-
mento dell’insieme A e il secondo valore è un elemento dell’insieme B. Sulla base di
questa definizione, possiamo avvalerci di un esempio per mostrare come sia possibile de-
finire una relazione del modello relazionale come un sottoinsieme del prodotto cartesia-
no sui suoi domini. Supponiamo di dover descrivere una realtà costituita da tre attori:
Nicolas Cage, attore americano nato nel 1964; Meg Ryan, attrice americana nata nel
1961; Jean-Paul Belmondo, attore francese nato nel 1933. Le tipologie di dati presenti
nella nostra realtà di riferimento sono tre: i nomi degli attori, la loro nazionalità e i rispet-
tivi anni di nascita. Possiamo quindi definire tre domini come segue:
D_nomi = {Nicolas Cage, Meg Ryan, Jean-Paul Belmondo}
D_nazioni = {USA, Francia}
D_anni = {1964, 1961, 1933}
CastanoWSU cap4 18-12-2008 16:41 Pagina 27

Teoria del modello relazionale 27

I tre domini sono definiti come gli insiemi che contengono tutti i dati disponibili nella
nostra realtà di riferimento. Si noti che nell’insieme delle nazionalità vi sono solo due va-
lori, pur essendo tre gli attori: ciò dipende dal fatto che due attori su tre hanno la stessa
nazionalità. È facile intuire che, combinando fra loro i valori di tutti i domini, possiamo
ottenere tutti i possibili oggetti descritti dai dati a nostra disposizione. Definiamo quindi
il prodotto cartesiano dei nostri domini come segue:
D_nomi × D_nazioni × D_anni = {
1: (Nicolas Cage, USA, 1964), 2: (Nicolas Cage, USA, 1961), 3: (Nicolas Cage, USA,
1933), 4: (Nicolas Cage, Francia, 1964), 5: (Nicolas Cage, Francia, 1961), 6: (Nicolas
Cage, Francia, 1933), 7: (Meg Ryan, USA, 1964), 8: (Meg Ryan, USA, 1961), 9: (Meg
Ryan, USA, 1933), 10: (Meg Ryan, Francia, 1964), 11: (Meg Ryan, Francia, 1961),
12: (Meg Ryan, Francia, 1933), 13: (Jean-Paul Belmondo, USA, 1964), 14: (Jean-Paul
Belmondo, USA, 1961), 15: (Jean-Paul Belmondo, USA, 1933), 16: (Jean-Paul
Belmondo, Francia, 1964), 17: (Jean-Paul Belmondo, Francia, 1961), 18: (Jean-Paul
Belmondo, Francia, 1933)
}
Guardando al contenuto dell’insieme ottenuto tramite il prodotto cartesiano è facile ren-
dersi conto che non tutti gli elementi rappresentano aggregazioni di dati sensate rispetto
alla realtà di riferimento da cui siamo partiti. Infatti, mentre, ad esempio, l’elemento
1: (Nicolas Cage, USA, 1964) rappresenta correttamente le caratteristiche dell’attore
Nicolas Cage, l’elemento 2: (Nicolas Cage, USA, 1961) costituisce un esempio di aggre-
gazione dei dati che non corrisponde a nessun attore della nostra realtà di riferimento.
Dunque, per ottenere una relazione che rappresenti i nostri attori occorre scegliere fra gli
elementi generati dal prodotto cartesiano i soli elementi che effettivamente descrivono la
realtà da rappresentare. La relazione ATTORE sarà quindi definita come un sottoinsieme
del prodotto cartesiano e conterrà i seguenti elementi:
ATTORE = {(Nicolas Cage, USA, 1964), (Meg Ryan, USA, 1961), (Jean-Paul
Belmondo, Francia, 1933)}
Tale relazione può poi essere facilmente rappresentata in forma tabellare:

Nicolas Cage USA 1964


Meg Ryan USA 1961
Jean-Paul Belmondo Francia 1933

Osservando la tabella, ci si rende conto che ogni colonna contiene dati omogenei, cioè
provenienti dallo stesso dominio. Inoltre, ogni colonna corrisponde a una caratteristica
degli oggetti rappresentati nella tabella. Per rendere più semplice l’interpretazione e l’ac-
cesso ai dati della tabella è possibile aggiungere a ogni colonna un nome e l’indicazione
del dominio di provenienza (tipo dei dati). In tal modo si definiscono degli attributi. La
nostra tabella attore prenderà dunque la seguente forma:
CastanoWSU cap4 18-12-2008 16:41 Pagina 28

28 Capitolo 4 Il modello relazionale

Nome Nazionalità Anno di nascita


Nicolas Cage USA 1964
Meg Ryan USA 1961
Jean-Paul Belmondo Francia 1933

Si noti che, con l’introduzione degli attributi, possiamo fare riferimento a ogni colonna
utilizzandone il nome, prescindendo dall’ordine in cui le colonne compaiono nella rela-
zione. Ogni riga contiene poi i dati riferiti allo stesso oggetto reale: pertanto anche l’ordi-
ne delle righe è irrilevante. L’insieme degli attributi che caratterizza una tabella è detto
schema della relazione. Lo schema della relazione ATTORE può essere quindi indicato co-
me segue:
ATTORE(Nome, Nazionalità, Anno di nascita)

Valori nulli
Negli esempi visti finora, tutti i dati relativi agli oggetti descritti erano disponibili. Nella
realtà, tuttavia, può accadere che il dato corrispondente a qualche attributo di una rela-
zione non sia disponibile. Immaginiamo, ad esempio, di definire la relazione FILM con il
seguente schema, in cui l’attributo Numero di Oscar rappresenta il numero di premi
oscar vinti da un film.
FILM(Titolo, Anno, Regista, Numero di Oscar)
In un’applicazione reale, può sorgere la necessità di inserire nella tabella un film senza co-
noscere il numero di Oscar vinti dalla pellicola. Si noti che tale dato può essere assente
per ragioni diverse. Potremmo, infatti, ignorare l’informazione oppure potrebbe non es-
sere disponibile a causa del fatto che, al momento dell’inserimento del film, non si è an-
cora svolta la cerimonia di premiazione. Come rappresentiamo questa assenza di dati?
Ovviamente dobbiamo inserire nella colonna un dato compatibile con il dominio (l’in-
sieme dei numeri interi nel nostro caso), ma dobbiamo fare attenzione a non generare
confusione. Se infatti inserissimo il numero 0 per indicare l’informazione mancante ge-
nereremmo un’immediata confusione fra i film che non hanno vinto alcun Oscar e quel-
li di cui ignoriamo l’informazione. Per evitare questo problema, ogni dominio del model-
lo relazionale viene esteso con un particolare valore, detto valore nullo (NULL).
Immaginiamo ad esempio di inserire nella base di dati informazioni circa i film Full
Metal Jacket, Via col vento e La piovra:

Titolo Anno Regista Oscar


Full Metal Jacket 1987 Stanley Kubrick 0
Via col vento 1939 Victor Fleming 9
La piovra 1984 Damiano Damiani NULL
CastanoWSU cap4 18-12-2008 16:41 Pagina 29

Relazioni fra tabelle 29

Si noti come sia Full Metal Jacket, sia La piovra non abbiano vinto Oscar. Tuttavia, men-
tre il primo ha vinto zero Oscar, cioè ha partecipato alla competizione ma non ha ricevu-
to alcun riconoscimento, il secondo rappresenta un caso in cui l’informazione è nulla
perché non pertinente, dal momento che i film per la TV non partecipano alla premia-
zione californiana. Allo stesso modo, avremmo utilizzato il valore NULL anche per tutti
i film per i quali l’informazione circa il numero di Oscar vinti non fosse nota al momen-
to dell’inserimento.

Relazioni fra tabelle


Nelle basi di dati relazionali, ogni classe di oggetti ha una rappresentazione in una corri-
spondente tabella. In una base di dati cinematografica, ad esempio, avremo una tabella
per i film, una per gli attori e così via. Tuttavia, fra i dati di tabelle diverse intercorre spes-
so una relazione. A un film partecipano più attori e ogni attore partecipa a più film, così
come un film ha tipicamente una casa di produzione associata. Supponiamo ad esempio
di prendere in considerazione la seguente base di dati:
FILM(Titolo, Anno)
ATTORE(Nome, Nazionalità)
PRODUZIONE(Codice, Nome, Sito web)
Se vogliamo rappresentare le relazioni fra i film e le rispettive case di produzione, un me-
todo molto intuitivo consiste nell’aggiunta di un attributo “produzione” alla tabella
FILM nel quale inserire il codice della casa di produzione. In tal caso, supponendo di re-
gistrare il film Pulp Fiction, prodotto dalla casa di produzione A Band Apart, otterremmo
le seguenti relazioni:
FILM
Titolo Anno Produzione
Pulp Fiction 1994 0216

PRODUZIONE
Codice Nome Sito web
0216 A Band Apart NULL

Dall’esempio si nota come questa soluzione ci consente di memorizzare una sola volta le
informazioni relative al nome e al sito web della casa di produzione e, al tempo stesso, po-
ne in relazione il film con la produzione. Tramite il codice della casa di produzione è in-
fatti semplice risalire, partendo dal film, alle informazioni sul produttore. Inoltre, per rea-
lizzare il collegamento ci siamo avvalsi esclusivamente dei dati che caratterizzano il
produttore, come il suo codice. Tale caratteristica delle basi di dati relazionali prende il
nome di orientamento ai valori e si riferisce al fatto che tutte le caratteristiche di una realtà
di interesse, compresi i legami logici fra gli oggetti che la caratterizzano, sono rappresen-
tati esclusivamente per mezzo dei valori che descrivono i singoli oggetti. Se però volessi-
CastanoWSU cap4 18-12-2008 16:41 Pagina 30

30 Capitolo 4 Il modello relazionale

mo estendere questa soluzione al caso della relazione fra film e attori, incontreremmo al-
cune difficoltà. Ogni film è infatti associato a più attori. Di conseguenza, non possiamo
aggiungere un singolo campo “attore” alla tabella dei film, poiché occorre riportare un
numero arbitrario di attori in associazione a ogni film. Allo stesso modo, non possiamo
nemmeno aggiungere un campo “film” alla tabella degli attori, dal momento che ogni at-
tore può recitare in più film. Per risolvere tale inconveniente, creiamo un’ulteriore tabella
PARTECIPA(Film, Attore) in cui ogni riga rappresenta il legame fra un film e un attore.
In questo modo avremo più righe con lo stesso film, ma attore diverso, per i film in cui
hanno recitato più attori e più righe con lo stesso attore, ma diverso film, per gli attori
che hanno girato più film. Estendiamo quindi l’esempio di base di dati precedente con
queste informazioni.
FILM
Titolo Anno Produzione
Pulp Fiction 1994 0216
Il sesto senso 1999 NULL

PRODUZIONE
Codice Nome Sito web
0216 A Band Apart NULL

ATTORE
Nome Nazionalità
Bruce Willis USA
John Travolta USA

PARTECIPA
Pulp Fiction Bruce Willis
Pulp Fiction John Travolta
Il sesto senso Bruce Willis

Coerenza dei dati


Un requisito fondamentale delle basi di dati è che l’insieme di informazioni relative alla
realtà di interesse sia coerente (o, come spesso di dice in informatica con un calco dall’in-
glese, consistente) sia rispetto allo schema della base di dati sia internamente. Per evitare
che i dati inseriti nella base di dati generino incoerenze, lo schema è arricchito con un in-
sieme di vincoli. Il DBMS ha poi il compito di abilitare l’inserimento dei soli dati che ri-
spettano i vincoli.
CastanoWSU cap4 18-12-2008 16:41 Pagina 31

Coerenza dei dati 31

I vincoli del modello relazionale si possono distinguere in tre principali categorie:


vincoli di dominio, vincoli di chiave e vincoli di integrità referenziale.
I vincoli di dominio riguardano i valori che si possono inserire in corrispondenza di
un certo attributo di una relazione. Supponiamo ad esempio di voler rappresentare, nella
tabella FILM, l’anno di uscita di un film. Poiché il cinema è stato inventato nel 1895 è ra-
gionevole porre un vincolo sull’attributo “anno” che ammetta solo valori superiori a
1895. Altri vincoli possono riguardare il formato della data o la correlazione fra dati in at-
tributi diversi. Un caso interessante di vincolo di dominio è NOT NULL che, impeden-
do l’inserimento di valori nulli per un certo attributo, garantisce che l’attributo in que-
stione presenti sempre un valore nelle diverse righe della relazione.
I vincoli di chiave hanno l’obiettivo di garantire che gli oggetti rappresentati nella
base di dati sotto forma di righe nelle tabelle siano sempre distinguibili l’uno dall’altro e
univocamente identificabili. Tale identificazione viene effettuata per mezzo dei valori del-
le righe, definendo un insieme di attributi che combinati insieme assumono valori diver-
si per ogni riga. Ogni insieme di attributi con tale caratteristica è detto superchiave. Pren-
diamo ad esempio la seguente tabella ATTORE:

Nome Nazionalità Anno di nascita


Nicolas Cage USA 1964
Meg Ryan USA 1961
Matt Dillon USA 1964

Volendo identificare i diversi attori controllando i valori degli attributi è evidente che non
possiamo basarci né sul solo attributo Nazionalità, né solo sull’Anno di nascita, né sulla
coppia {Nazionalità, Anno di nascita} poiché tutte queste soluzioni corrispondono a va-
lori ripetuti nella tabella. Gli insiemi di attributi che presentano nel loro complesso valo-
ri diversi nelle varie tuple sono: A = {Nome, Nazionalità, Anno di nascita}, B = {Nome,
Anno di nascita}, C = {Nome, Nazionalità}, D = {Nome}. Pertanto A, B, C, e D sono su-
perchiavi della relazione ATTORE. Tuttavia, è particolarmente utile individuare l’insie-
me di attributi più piccolo fra quelli che sono superchiave della relazione. Una superchia-
ve minimale (ovvero una superchiave che non contiene altre superchiavi) è detta chiave
della relazione. Considerando l’esempio, A, B, e C sono superchiavi ma non chiavi poi-
ché contengono tutti l’insieme D che è a sua volta superchiave. D invece non contiene al-
tre superchiavi e costituisce pertanto la chiave della relazione ATTORE. Per garantire che
vi sia sempre una chiave a cui fare riferimento per identificare le righe di una tabella si de-
finisce il vincolo di chiave primaria (primary key). Una chiave primaria è una chiave che
non ammette valori nulli. Una volta definito un insieme di attributi come chiave prima-
ria, il sistema verifica e garantisce che in corrispondenza di tali attributi siano inseriti so-
lo valori univoci non nulli. Spesso, quando i dati non possiedono attributi che costitui-
scono una chiave primaria “naturale” (come ad esempio il codice fiscale o la matricola
degli studenti universitari), le tabelle vengono ampliate aggiungendo un attributo “artifi-
ciale” che funga da chiave primaria, come ad esempio un ID o un codice alfanumerico in-
crementato automaticamente dal DBMS. Le chiavi primarie vengono usualmente evi-
denziate sottolineando il nome/i dell’attributo/i coinvolto/i.
CastanoWSU cap4 18-12-2008 16:41 Pagina 32

32 Capitolo 4 Il modello relazionale

I vincoli di integrità referenziale garantiscono che i legami logici fra righe di tabelle
diverse, come ad esempio il legame fra film e casa di produzione, siano coerenti e che
quindi sia sempre possibile, partendo da un dato, risalire ai dati di altre tabelle a esso le-
gati. Nel nostro esempio, le righe delle tabelle FILM e PRODUZIONE sono legate fra
loro tramite il codice della casa di produzione, ovvero ogni singolo film fa riferimento,
per mezzo dell’attributo “produzione”, alla riga della sua corrispondente casa di produzio-
ne. Affinché la base di dati sia corretta, il codice della casa di produzione presente all’in-
terno di una riga della tabella FILM deve essere un valore già presente come valore di
chiave primaria nella tabella PRODUZIONE. In altri termini, la casa di produzione di
un certo film, qualora specificata, deve essere presente nella base di dati e univocamente
identificabile. Per garantire che questo controllo sia effettuato automaticamente dal siste-
ma, nelle basi di dati relazionali l’attributo “produzione” della tabella FILM viene dichia-
rato come chiave esterna (foreign key) nella tabella film, ovvero si specifica che i suoi valo-
ri devono essere valori presenti nella tabella riferita (PRODUZIONE) in corrispondenza
dell’attributo “codice” che ne è la chiave primaria.

Algebra relazionale
Il modello relazionale, come si è visto, fornisce un formalismo per la rappresentazione dei
dati. Il passo successivo per ottenere un modello logico completo è introdurre un linguag-
gio per l’interrogazione dei dati organizzati secondo tale modello. Nel modello relaziona-
le tale linguaggio prende il nome di algebra relazionale. L’idea fondamentale dell’algebra
relazionale è di definire un insieme di operazioni che, applicate a una o più relazioni (ta-
belle), producano come risultato un’altra relazione, frutto dell’elaborazione dei dati delle
relazioni d’ingresso. In questa sede vedremo i principali operatori algebrici, tralasciando
alcuni dei cosiddetti operatori derivati, ottenibili comunque per combinazione degli ope-
ratori principali. Al fine di illustrare le operazioni algebriche introduciamo alcuni dati di
esempio, mostrati nella Figura 4.2.
Nell’esempio, la relazione FILM contiene le informazioni relative a due film, men-
tre nella relazione PERSONA troviamo le informazioni relative a persone che lavorano o
hanno lavorato nel mondo del cinema. La relazione CAST, invece, rappresenta l’insieme
di attori che hanno partecipato a un film, mettendo in relazione i valori di chiave prima-
ria della relazione FILM (l’attributo codice) con la chiave primaria della relazione
PERSONA (l’attributo nome). La relazione CAST riporta inoltre il personaggio inter-
pretato da ogni attore. La chiave primaria della relazione CAST è composta dagli attribu-
ti film, attore, e personaggio, il che significa che non solo un film può avere più attori as-
sociati e un attore più film, ma anche che lo stesso attore può partecipare più volte alla
relazione con lo stesso film, purché con un diverso personaggio.

Proiezione e selezione
Le prime operazioni algebriche che introduciamo hanno lo scopo di estrarre una porzio-
ne dei dati di una relazione operandone una scomposizione. Tale scomposizione ha lo
scopo di eliminare, nella relazione risultato, alcune colonne (proiezione) o alcune righe
CastanoWSU cap4 18-12-2008 16:41 Pagina 33

Proiezione e selezione 33

FILM
Codice Titolo Anno Durata Nazione
0033467 Citizen Kane 1941 119 USA
0052311 Touch of Evil 1958 95 USA

CAST
Film Attore Personaggio
0033467 Orson Welles Charles Foster Kane
0033467 Fortunio Bonanova Mr. Matiste
0052311 Orson Welles Hank Quinlan
0052311 Charlton Heston Ramon Miguel Vargas
0052311 Janet Leigh Susan Vargas

PERSONA
Nome Nazione Data di nascita
Orson Welles USA 06/05/1915
Fortunio Bonanova Spagna 13/01/1895
Charlton Heston USA 04/10/1924
Janet Leigh USA 06/07/1927

Figura 4.2 Esempio di basi di dati relazionale nel dominio della cinematografia.

(selezione) della relazione originale. Più precisamente, data una relazione R in ingresso, la
proiezione, restituisce una relazione risultato R' contenente l’insieme delle righe di R li-
mitate però ai soli valori di un sottoinsieme degli attributi di R. La proiezione si indica
con il simbolo π, a cui è associato l’insieme di attributi che si intende considerare nel ri-
sultato R'. Intuitivamente potremmo dire che la proiezione consiste nel “sezionare” verti-
calmente una tabella. Ad esempio, supponiamo di voler individuare il titolo e l’anno dei
film contenuti nella base di dati della Figura 4.2: per ottenere tale risultato è sufficiente
isolare gli attributi titolo e anno della tabella FILM. Scriveremo dunque l’operazione
πtitolo, anno(FILM), che avrà come risultato la seguente relazione:
πtitolo, anno(FILM)

Titolo Anno
Citizen Kane 1941
Touch of Evil 1958
CastanoWSU cap4 18-12-2008 16:41 Pagina 34

34 Capitolo 4 Il modello relazionale

La proiezione si limita a isolare alcune colonne della relazione interessata, considerando


invece tutte le sue righe.
Per effettuare una selezione sulle righe e poter considerare le sole righe che risponda-
no a certi criteri di interrogazione si ricorre alla operazione di selezione. La selezione, indi-
cata con il simbolo σ, restituisce una relazione composta dalle sole righe della relazione in
ingresso che rispettino una condizione di selezione. La condizione di selezione è espressa
come un predicato composto da operazioni di confronto sui singoli attributi, combinate
fra loro per mezzo dei connettivi logici AND, OR e NOT1. La condizione di selezione è
valutata per ogni riga della relazione in ingresso: se essa risulta vera per la riga esaminata,
questa viene inclusa nel risultato della selezione, altrimenti viene omessa. Supponiamo ad
esempio di essere interessati solo ai film prodotti dopo il 1950: è possibile esprimere tale
condizione nei termini di un confronto sui valori dell’attributo anno nelle righe della re-
lazione FILM. La condizione di selezione sarà dunque: anno > 1950 e l’operazione di se-
lezione avrà la forma σanno > 1950(FILM). La relazione risultato di tale operazione contie-
ne le sole righe della tabella FILM in cui il valore dell’attributo anno è superiore a 1950
(rendendo così vera la condizione di selezione):
σanno > 1950(FILM)

Codice Titolo Anno Durata Nazione


0052311 Touch of Evil 1958 95 USA

Un’operazione algebrica può anche restituire una relazione vuota, priva cioè di righe.
Supponiamo ad esempio di voler individuare tutti i film prodotti prima del 1950 e di du-
rata inferiore a 100 minuti. È facile verificare che l’operazione algebrica corrispondente è
una selezione nella forma σanno < 1950 AND durata < 100(FILM). In questo caso la condizione
di selezione è verificata se il valore dell’attributo anno è inferiore a 1950 e, al tempo stes-
so, il valore dell’attributo durata è inferiore a 100. Se proviamo a valutare l’espressione su
tutte le righe della relazione FILM, verifichiamo che il film Citizen Kane non viene resti-
tuito poiché, anche se l’anno è inferiore a 1950 (1941), la durata è superiore a 100. Nel-
la riga successiva, la durata è inferiore a 100, ma l’anno è superiore a 1950. Essendo ter-
minate le righe della tabella FILM la valutazione della selezione termina restituendo un
risultato vuoto.
Proiezione e selezione sono spesso combinate insieme per isolare porzioni arbitrarie
dei dati contenuti in una relazione, ovvero i dati di interesse relativi a un sottoinsieme di
oggetti che rispettino una certa condizione. Supponiamo ad esempio di voler individuare i
nomi delle persone di nazionalità americana. In questo caso vogliamo che i nostri dati ri-
spettino una condizione di selezione (la nazionalità delle persone deve essere quella ameri-
cana); inoltre, siamo interessati solo a una porzione dei dati (il nome delle persone). Per ot-

1 Ricordiamo brevemente la semantica dei tre connettivi logici introdotti: un’espressione nella forma
A AND B è vera se e solo se sono vere sia A sia B; un’espressione nella forma A OR B è vera se e solo se è ve-
ra almeno una fra A e B (o entrambe); infine, un’espressione nella forma NOT A è vera se e solo se A è falsa.
CastanoWSU cap4 18-12-2008 16:41 Pagina 35

Operazioni insiemistiche 35

tenere tale risultato, procediamo prima a selezionare le righe della tabella PERSONA in
cui l’attributo nazione abbia valore USA. Successivamente operiamo la proiezione dell’at-
tributo nome. L’operazione di proiezione opera dunque sul risultato della selezione, dando
origine alla seguente espressione algebrica:
σnazione = ‘USA’(PERSONA))
πnome(σ

Nome
Orson Welles
Charlton Heston
Janet Leigh

Dal momento che il risultato di ogni operazione algebrica è una relazione, è possibile ve-
dere ogni espressione dell’algebra relazionale come la definizione di una relazione.
Una conseguenza di ciò è che ogni operazione può avere in ingresso un’altra opera-
zione. In questo senso si intende che l’operazione più esterna opera sul risultato dell’ope-
razione più interna nell’espressione algebrica. Nell’esempio precedente, l’espressione
πnome(σnazione = ‘USA’(PERSONA)) definisce la relazione contenente appunto i nomi delle
persone di nazionalità americana. Si noti che l’eseguire prima la proiezione e poi la sele-
zione sarebbe, in questo caso, scorretto: infatti la proiezione restituisce una relazione do-
tata del solo attributo nome e, su tale risultato, la verifica del valore dell’attributo nazio-
ne, richiesta dalla selezione, sarebbe impossibile.

Operazioni insiemistiche
Un’altra importante classe di operazioni algebriche è data dalle operazioni insiemistiche.
Tali operazioni si basano sull’idea che le relazioni sono a tutti gli effetti insiemi di righe e
che, pertanto, vi si può operare con le operazioni di intersezione, unione e differenza fra in-
siemi. Ovviamente, gli elementi dei due insiemi (relazioni) che vengono confrontati de-
vono essere compatibili. Le relazioni in ingresso alle operazioni insiemistiche devono
dunque avere lo stesso numero e lo stesso tipo di attributi. L’intersezione (indicata con il
simbolo ∩) consiste nel creare una nuova relazione che contiene le sole righe che com-
paiono in entrambe le relazioni in ingresso. Supponiamo ad esempio di voler trovare il
nome degli attori che hanno recitato sia nel film Citizen Kane (codice 0033467) sia nel
film Touch of Evil (codice 0052311). Per ottenere tali attori occorre operare una selezione
sulla tabella CAST: tuttavia non possiamo usare la condizione di selezione (film =
0033467 AND film = 0052311), poiché la selezione viene valutata riga per riga e la par-
tecipazione di un attore a più film è riportata in righe diverse: non troveremo mai, quin-
di, una riga in cui il valore dell’attributo film sia al tempo stesso 0033467 e 0052311.
Procediamo in modo diverso: immaginiamo di trovare tutti i nomi degli attori che han-
no recitato nel film 0033467. Per quanto detto sopra, è facile verificare che ciò si ottiene
con l’espressione πattore(σfilm = ‘0033467’(CAST)). Analogamente, possiamo trovare tutti gli
attori che hanno partecipato al film 0052311 con l’espressione πattore(σfilm = ‘0052311’
(CAST)). A questo punto, se intersechiamo il risultato delle due operazioni, troviamo le
CastanoWSU cap4 18-12-2008 16:41 Pagina 36

36 Capitolo 4 Il modello relazionale

righe che compaiono sia nella prima espressione sia nella seconda, ovvero gli attori che
hanno recitato in entrambi i film:
πattore(σ
(π σfilm = ‘0033467’(CAST)))

πattore(σ
σfilm = ‘0033467’(CAST)) πattore(σ
σfilm = ‘0052311’(CAST)) (π
πattore(σ
σfilm = ‘0052311’(CAST)))

Attore Attore Attore


Orson Welles Orson Welles Orson Welles
Fortunio Bonanova Charlton Heston
Janet Leigh

Analogamente, l’unione (indicata con ∪) opera su due relazioni introducendo nella rela-
zione risultante tutte le righe che compaiono in almeno una delle relazioni in ingresso. La
differenza fra due relazioni R1 e R2 (R1 – R2), invece, produce come risultato una rela-
zione contenente le sole righe di R1 che non compaiono in R2. Supponiamo ad esempio
di voler individuare i nomi degli attori che non hanno recitato nel film 0033467. Se ci li-
mitassimo a selezionare gli attori di CAST per cui l’attributo film è diverso da 0033467
otterremmo di escludere la riga uno, ma non la riga tre della tabella CAST, in cui però
l’attore è sempre Orson Welles. Dunque Orson Welles verrebbe incluso nel risultato, an-
che se ha recitato nel film 0033467. La soluzione consiste invece nel selezionare gli attori
che hanno recitato nel film 0033467 e sottrarli dalla lista completa dei nomi di attore: il
risultato sarà la lista dei nomi degli attori che non hanno recitato nel film 0033467. Tale
operazione ricorre alla differenza ed è illustrata di seguito:
πattore(CAST))


πattore(CAST) πattore(σ
σfilm = ‘0033467’(CAST)) (π
πattore(σ
σfilm = ‘0033467’ (CAST)))

Attore Attore Attore


Orson Welles Orson Welles Charlton Heston
Fortunio Bonanova Fortunio Bonanova Janet Leigh
Charlton Heston
Janet Leigh

L’ultima operazione insiemistica che consideriamo è il prodotto cartesiano. In termini rela-


zionali, il prodotto cartesiano produce come risultato una relazione che ha per schema
l’insieme di tutti gli attributi delle relazioni in ingresso e per righe tutte le possibili com-
binazioni fra le righe delle due relazioni considerate. Ad esempio, il prodotto cartesiano
fra FILM e CAST (FILM × CAST) è definito come segue:
CastanoWSU cap4 18-12-2008 16:41 Pagina 37

Operazioni insiemistiche 37

FILM × CAST

Codice Titolo Anno Durata Nazione Film Attore Personaggio


0033467 Citizen Kane 1941 119 USA 0033467 Orson Welles Foster Kane
Charles
0033467 Citizen Kane 1941 119 USA 0033467 Fortunio Mr. Matiste
Bonanova
0033467 Citizen Kane 1941 119 USA 0052311 Orson Welles Hank
Quinlan
0033467 Citizen Kane 1941 119 USA 0052311 Charlton Ramon
Heston Miguel Vargas
0033467 Citizen Kane 1941 119 USA 0052311 Janet Leigh Susan Vargas
0052311 Touch of Evil 1958 95 USA 0033467 Orson Welles Foster Kane
Charles
0052311 Touch of Evil 1958 95 USA 0033467 Fortunio Mr. Matiste
Bonanova
0052311 Touch of Evil 1958 95 USA 0052311 Orson Welles Hank
Quinlan
0052311 Touch of Evil 1958 95 USA 0052311 Charlton Ramon
Heston Miguel Vargas
0052311 Touch of Evil 1958 95 USA 0052311 Janet Leigh Susan Vargas

Naturalmente il prodotto cartesiano in sé non è di grande utilità, poiché combina fra lo-
ro dati che non sono necessariamente correlati. Ad esempio, l’attore Fortunio Bonanova
è posto in corrispondenza anche con il film Touch of Evil in cui non ha mai recitato. Tut-
tavia, il prodotto cartesiano è indispensabile per realizzare tutte le interrogazioni che re-
periscono dati da relazioni diverse ma collegate fra loro per mezzo delle chiavi esterne.
Supponiamo ad esempio di voler individuare il titolo del film e il suo cast, ovvero, per
ogni film, il nome degli attori e il personaggio interpretato. Il titolo del film compare nel-
la tabella FILM, mentre nome dell’attore e personaggio nella tabella CAST. Occorre allo-
ra combinare le due relazioni, ma in modo che i dati si corrispondano nel modo corretto.
Se si esamina la relazione FILM × CAST ci si rende conto facilmente che tale risultato si
può ottenere filtrando i risultati del prodotto cartesiano. Il criterio di selezione da adotta-
re consiste nell’imporre che il valore dell’attributo di CAST che si riferisce ai film (ovve-
ro l’attributo Film) deve essere uguale all’attributo della tabella FILM a cui esso fa riferi-
mento (ovvero all’attributo Codice). Dunque, possiamo operare una selezione sulla
relazione prodotto cartesiano con l’operazione σfilm = codice(FILM × CAST). In tal modo
avremo messo nella giusta corrispondenza le righe di CAST con le righe di FILM a cui es-
se fanno effettivamente riferimento.
CastanoWSU cap4 18-12-2008 16:41 Pagina 38

38 Capitolo 4 Il modello relazionale

Per ottenere poi il risultato richiesto basterà applicare una corretta proiezione, come mo-
strato di seguito:
σfilm = codice(FILM × CAST))
πtitolo, attore, personaggio(σ

Titolo Attore Personaggio


Citizen Kane Orson Welles Charles Foster Kane
Citizen Kane Fortunio Bonanova Mr. Matiste
Touch of Evil Orson Welles Hank Quinlan
Touch of Evil Charlton Heston Ramon Miguel Vargas
Touch of Evil Janet Leigh Susan Vargas

La combinazione di selezione e prodotto cartesiano può essere direttamente espressa in


algebra relazionale per mezzo di una sola operazione, che prende il nome di theta join, in
cui la condizione di selezione applicata, è detta condizione di join. L’interrogazione del-
l’esempio precedente espressa mediante join diventa quindi:
πtitolo, attore, personaggio(FILM film = codiceCAST))

in cui il simbolo rappresenta l’operazione di theta join.


CastanoWSU cap5 18-12-2008 16:42 Pagina 39

Capitolo 5

La progettazione logica

L’attività di progettazione logica consiste nel definire la base di dati informatizzata utiliz-
zando il modello relazionale a partire da uno schema concettuale. Per illustrare le moda-
lità con cui si effettua la traduzione da schema concettuale a relazionale, prenderemo in
considerazione lo schema ER introdotto nel Capitolo 3 e riportato nella Figura 5.1.
Il primo passo per comprendere la metodologia di traduzione dallo schema ER allo
schema relazionale consiste nell’osservare che i costrutti disponibili nel modello ER (ad
esempio, entità, relazioni, gerarchie di generalizzazione) non coincidono con quelli del
modello relazionale, che si riducono alla sola nozione di relazione. Sarà dunque necessa-
rio, a partire dalle diverse tipologie di oggetti nello schema ER, definire opportune regole
per definire relazioni che rispettino il significato e i vincoli espressi a livello concettuale.

Figura 5.1 Esempio di schema ER.


CastanoWSU cap5 18-12-2008 16:42 Pagina 40

40 Capitolo 5 La progettazione logica

Eliminazione delle gerarchie di generalizzazione


Il primo passo della traduzione consiste nel modificare lo schema ER eliminando le gerar-
chie di generalizzazione, per le quali non è disponibile un corrispondente costrutto nel
modello relazionale. Lo scopo è produrre uno schema ER privo di gerarchie di generaliz-
zazione che però non perda le informazioni presenti nello schema originale. L’eliminazio-
ne avviene adottando una fra tre strategie alternative: la prima strategia consiste nell’eli-
minare le entità figlie della gerarchia, accorpando le informazioni sulla sola entità padre;
la seconda strategia consiste nell’eliminare l’entità padre, mantenendo nello schema le so-
le entità specializzazione, ovvero le entità figlie; la terza strategia consiste nel mantenere
tutte le entità della gerarchia, introducendo però fra esse alcune relazioni generiche in so-
stituzione del legame di specializzazione. In questo contesto vedremo nel dettaglio solo il
primo approccio, che risulta essere di ampia applicabilità. Come si è detto, l’operazione
di ristrutturazione consiste nell’eliminazione delle entità figlie, mantenendo la sola entità
padre. Ciò implica la perdita dell’informazione relativa alla tipologia specifica di alcuni
individui. Se, per esempio, consideriamo la gerarchia di generalizzazione fra le entità
SOCIETA, DISTRIBUTORE e PRODUTTORE mostrata nella Figura 5.1, ci accorgia-
mo che eliminando DISTRIBUTORE e PRODUTTORE tutte le case di distribuzione
e produzione verrebbero catalogate come generiche società, senza l’indicazione della tipo-
logia di attività svolta. Per ovviare a tale inconveniente, aggiungiamo all’entità padre un
attributo “tipo” che ha lo scopo di rappresentare, attraverso un valore testuale, la tipolo-
gia di oggetto rappresentato. Nel caso di gerarchie totali, tale attributo non potrà assume-
re valore nullo, poiché vi possono essere oggetti istanza dell’entità padre che non sono
istanza di alcuna entità figlia. Nel caso di gerarchie esclusive, il numero di valori possibili
per l’attributo “tipo” sarà uguale al numero di diverse entità specializzate presenti. Nel ca-
so di gerarchie sovrapposte, invece, dovrà essere possibile la registrazione delle tipologie
miste. Nel caso delle case cinematografiche, essendo la gerarchia totale e sovrapposta, il
nuovo attributo “tipo” dell’entità SOCIETA non potrà assumere valore nullo e potrà as-
sumere i valori “produttore”, “distributore” o “produttore e distributore”. L’eliminazione
delle entità figlie comporta anche che tutti gli attributi e le relazioni propri delle specifi-
che entità figlie siano riportati sull’entità padre. Qualora tali attributi o relazioni fossero
obbligatori per l’entità figlia, divengono opzionali per l’entità padre, poiché essa rappre-
senta una classe più ampia di oggetti. Nel nostro esempio un produttore produce un film.
Questa relazione, anche nel caso fosse obbligatorio per un produttore produrre almeno
un film, avrà cardinalità minima pari a zero quando riportata sull’entità SOCIETA. Se
infatti per un produttore può essere obbligatorio produrre almeno un film, lo stesso non
può dirsi per una generica società, poiché essa potrebbe non essere una società produttri-
ce. Lo schema ER modificato è mostrato nella Figura 5.2.

Traduzione delle entità e degli attributi


Sullo schema modificato si opera poi la traduzione in relazionale delle entità e degli attri-
buti. Un’entità rappresenta, come si è detto, un insieme di oggetti della realtà di riferi-
mento e ha come naturale traduzione una relazione (quindi una tabella) dello schema re-
lazionale, in cui le righe rappresenteranno i diversi oggetti dell’entità. Gli attributi
dell’entità divengono quindi attributi della relazione corrispondente all’entità. Prenden-
CastanoWSU cap5 18-12-2008 16:42 Pagina 41

Traduzione delle relazioni 41

Figura 5.2 Esempio di schema ER modificato mediante eliminazione delle gerarchie di generalizzazione.

do in considerazione ad esempio l’entità FILM, la traduzione darà origine a una relazio-


ne FILM, i cui attributi saranno codice, titolo, anno, durata e nazione. La chiave prima-
ria di tale relazione (sottolineata) sarà costituita dagli attributi che costituiscono l’identi-
ficatore dell’entità di partenza. La tabella FILM avrà quindi il seguente schema:
FILM(codice, titolo, anno, durata, nazione)
Le entità deboli, che devono la loro identificazione anche all’identificatore di un’altra en-
tità, verranno tradotte in relazioni con chiave primaria composta dagli attributi identifica-
tivi dell’entità debole e da quelli della/e entità forte/i utilizzate per l’identificazione esterna.
Se ad esempio avessimo un’entità STUDENTE identificata dall’attributo matricola e dal-
l’attributo codice di un’altra entità UNIVERSITA, la tabella STUDENTE avrà come
chiave primaria la coppia di attributi (matricola, ID-università), in cui ID-università è
chiave esterna verso la tabella UNIVERSITA e contiene i codici delle università.

Traduzione delle relazioni


Le relazioni del modello ER rappresentano un legame logico fra gli oggetti della realtà di
riferimento. Poiché ogni oggetto diviene una riga della corrispondente tabella nel model-
lo relazionale, tali legami vengono rappresentati ponendo in corrispondenza fra loro righe
diverse di due o più tabelle tramite i loro valori. Consideriamo ad esempio il caso della re-
lazione VERSIONE che lega l’entità EDIZIONE a FILM. Tale legame mostra che un’e-
dizione è legata a un film poiché è la versione di quel film. Sia le edizioni sia i film sono
rappresentati da righe delle tabelle EDIZIONE e FILM rispettivamente, secondo il se-
guente schema:
CastanoWSU cap5 18-12-2008 16:42 Pagina 42

42 Capitolo 5 La progettazione logica

EDIZIONE(codice, titolo, nazione, durata, lingua, vietato)


FILM(codice, titolo, anno, durata, nazione)
Porre in relazione un’edizione e un film significa dunque riportare i dati identificativi di
un film, ovvero la sua chiave primaria codice, nella tabella delle edizioni, per porli in cor-
rispondenza con le rispettive edizioni. Per far ciò, è necessario aggiungere alla tabella
EDIZIONE un attributo che svolge il ruolo di chiave esterna e che ospiterà il codice dei
film. Su tale attributo viene definito un vincolo di integrità referenziale. Convenzional-
mente, diamo alle chiavi esterne il nome della tabella a cui si riferiscono e le indichiamo
in corsivo:
EDIZIONE(codice, titolo, nazione, durata, lingua, vietato, film)
FILM(codice, titolo, anno, durata, nazione)
A titolo di esempio, riportiamo le tabelle menzionate con alcuni dati.

EDIZIONE
codice titolo nazione durata lingua vietato film
0668982 Citizen Kane USA 119 Inglese USA:PG 0033467
0689934 Quarto Potere IT 119 Italiano IT:T 0033467

FILM
codice titolo anno durata nazione
0033467 Citizen Kane 1941 119 USA
0052311 Touch of Evil 1958 95 USA

L’esempio riporta la versione americana e italiana del film Citizen Kane. Si noti che a
un’edizione corrisponde sempre un solo film, mentre a un film possono corrispondere
più edizioni. Inoltre, possono esserci film di cui non viene registrata l’edizione. Questo
esempio ci aiuta a comprendere come sia fondamentale, nella traduzione di una relazione
dello schema ER, il ruolo delle cardinalità. Di fronte a una relazione da tradurre, la prima
domanda da farsi è su quale delle due tabelle risultanti dalle entità vada posta la chiave
esterna. Perché porre in EDIZIONE il riferimento a FILM e non in FILM il riferimento
a EDIZIONE? Ricordiamo che la chiave esterna è un campo aggiuntivo di ogni riga del-
la tabella su cui viene posta e in quanto tale può contenere un solo valore per ogni riga.
Pertanto, è necessario osservare con attenzione le cardinalità della relazione e in particola-
re le cardinalità massime. La chiave esterna va posta infatti nella tabella corrispondente al-
l’entità che partecipa con cardinalità massima pari a 1 alla relazione dello schema ER. Os-
servando l’esempio appare infatti evidente che se ponessimo la chiave esterna sulla tabella
corrispondente all’entità sul lato in cui la cardinalità massima è N, ovvero sulla tabella
FILM, ci troveremmo nella situazione in cui a ogni film può corrispondere un numero
imprecisato di edizioni. Il campo della chiave esterna però può contenere un solo valore
per ogni film e, quindi, non potremmo rappresentare correttamente il legame. Al contra-
rio, la cardinalità massima 1 garantisce di avere al più un solo film in corrispondenza di
ogni edizione, e ci permette dunque di utilizzare in modo corretto la chiave esterna. Nel
CastanoWSU cap5 18-12-2008 16:42 Pagina 43

Traduzione delle relazioni 43

caso di relazioni con cardinalità massima 1 da entrambi i lati, è possibile scegliere libera-
mente quale delle due tabelle debba contenere la chiave esterna. Una volta definita la
chiave esterna, si osserva la cardinalità minima dal lato interessato. Se tale cardinalità è
pari a zero, la relazione è opzionale, ovvero l’oggetto rappresentato dalla riga della tabella
che contiene la chiave esterna può non avere alcuna corrispondenza con gli oggetti della
tabella riferita. In questo caso, la chiave esterna sarà un attributo che può assumere valo-
re nullo. Se invece la cardinalità minima è pari a uno, l’oggetto rappresentato dalla riga
della tabella che contiene la chiave esterna ha obbligatoriamente una corrispondenza con
un oggetto della tabella riferita e la chiave esterna non può assumere valore nullo. Nel no-
stro esempio, l’edizione partecipa alla relazione con cardinalità (1,1) e quindi la chiave
esterna film non può assumere valori nulli. Infine, se la relazione presenta attributi, essi
vanno aggiunti alla tabella su cui abbiamo posto la chiave esterna.
Al criterio appena esposto per la traduzione delle relazioni dello schema ER fanno
eccezione tutte le relazioni che hanno entrambe le cardinalità massime pari a N (dette re-
lazioni molti-a-molti). In questo caso infatti non possiamo utilizzare la chiave esterna su
nessuna delle tabelle coinvolte nella relazione, ma dobbiamo creare un’ulteriore tabella
dedicata a rappresentare specificamente la relazione stessa. Tale tabella sarà composta da
due (o più) chiavi esterne, una per ogni entità coinvolta nella relazione, e da tutti gli even-
tuali attributi. La chiave primaria della nuova relazione sarà poi composta dall’insieme di
tutte le chiavi esterne appena create. Prendiamo ad esempio la relazione CAST della Fi-
gura 5.2: essa collega, con cardinalità massima N da entrambi i lati, i film e le persone.
Ciò significa che a un film possono essere associate più persone e a una persona possono
essere associati più film. Creiamo dunque una tabella CAST che conterrà due chiavi
esterne, ovvero film, che si riferisce alla chiave primaria della tabella FILM, e persona (o
attore), che si riferisce alla chiave primaria della relazione PERSONA. Aggiungiamo poi
a tale tabella l’attributo personaggio che proviene dalla relazione CAST. La chiave prima-
ria è l’insieme degli attributi film e persona. In tal modo è infatti possibile inserire più ri-
ghe in cui compaia la stessa persona, ma film diverso (a una persona possono corrispon-
dere più film), e più righe in cui compaia lo stesso film, ma diversa persona (a un film
possono corrispondere più persone). La chiave garantisce tuttavia che non vi possano es-
sere più righe con lo stesso film e la stessa persona, il che sarebbe una ridondanza. Lo
schema risultante è dunque il seguente:
FILM(codice, titolo, anno, durata, nazione)
PERSONA(nome, nazione, data di nascita)
CAST(film, persona, personaggio)
In alcune applicazioni può essere opportuno utilizzare anche gli attributi della relazione
dello schema ER come parte della chiave. Guardando all’esempio, infatti, ci rendiamo
conto che lo schema ottenuto non consentirebbe di rappresentare il caso in cui lo stesso
attore recita nello stesso film interpretando personaggi diversi. Se vogliamo rendere più
flessibile lo schema possiamo includere l’attributo personaggio nella chiave primaria del-
la relazione CAST: in questo modo saranno ammessi i casi in cui la coppia (film, attore)
è ripetuta, a patto che cambi il personaggio (pur non essendo possibile introdurre più vol-
te la stessa tripla film, attore, personaggio). Un esempio di questa situazione è illustrato
dallo schema seguente:
CastanoWSU cap5 18-12-2008 16:42 Pagina 44

44 Capitolo 5 La progettazione logica

FILM
codice titolo anno durata nazione
0033467 Citizen Kane 1941 119 USA
0052311 Touch of Evil 1958 95 USA
0062779 Capriccio all’italiana 1968 95 IT

PERSONA
Nome Nazione Data di nascita
Orson Welles USA 06/05/1915
Fortunio Bonanova Spagna 13/01/1895
Charlton Heston USA 04/10/1924
Janet Leigh USA 06/07/1927
Totò Italia 15/02/1898

CAST
Film Persona Personaggio
0033467 Orson Welles Charles Foster Kane
0033467 Fortunio Bonanova Mr. Matiste
0062779 Totò Anziano signore
0062779 Totò Iago

Nell’esempio, compaiono sia film di cui non è stato inserito il cast (Touch of Evil), sia atto-
ri che non compaiono in alcun cast (ad esempio Charlton Heston), sia attori, come Totò,
che sono associati due volte allo stesso film, poiché hanno recitato personaggi diversi1.
I criteri adottati per la traduzione delle relazioni dello schema ER sono adottati esat-
tamente nello stesso modo anche nelle relazioni ricorsive, come ad esempio i remake, con
l’accortezza che però vi è un’unica tabella che partecipa alla relazione.
Lo schema relazionale completo relativo allo schema ER della Figura 5.2 è dunque
il seguente:
FILM(codice, titolo, anno, durata, nazione, remake)
PERSONA(nome, nazione, data di nascita)
CAST(film, persona, personaggio)
TROUPE(film, persona, ruolo)
EDIZIONE(codice, titolo, nazione, durata, lingua, vietato, film)
SOCIETA(nome, nazione, tipo)
DISTRIBUZIONE(edizione, società)
PRODUZIONE( film, società)

1 Nel nostro caso Totò, Antonio De Curtis, ha recitato nel film Capriccio all’italiana in due episodi: in Il mo-
stro della domenica di Steno ha svolto il ruolo di un anziano signore, mentre nel celebre Che cosa sono le nuvo-
le? di Pier Paolo Pasolini ha svolto il ruolo di Iago nella rappresentazione di marionette.
CastanoWSU cap6 18-12-2008 16:42 Pagina 45

Capitolo 6

Creazione e interrogazione
di una base di dati: il linguaggio SQL

Il linguaggio SQL (Structured Query Language) è lo standard di riferimento per le basi di


dati relazionali ed è diffusamente utilizzato all’interno di tutti i principali DBMS dispo-
nibili. Le ragioni di questo successo sono da ricercare nell’estrema semplicità di questo
linguaggio, i cui comandi consentono all’utente di dichiarare le proprietà del risultato de-
siderato, piuttosto che la sequenza di operazioni necessarie per ottenerlo. Per questo mo-
tivo, si dice che SQL è un linguaggio dichiarativo. I comandi SQL sono distinti in due ca-
tegorie: comandi che consentono di definire la struttura e i vincoli dello schema di una
base di dati, chiamati comandi di tipo SQL DDL (Data Definition Language), e coman-
di che consentono la manipolazione e l’interrogazione dei dati contenuti nella base di da-
ti, chiamati comandi di tipo SQL DML (Data Manipulation Language). Ad esempio, un
comando SQL DDL di uso molto comune è CREATE TABLE che permette di creare una
nuova tabella della base di dati specificandone la struttura. Con riferimento alla nostra
base di dati cinematografica, il seguente comando definisce la tabella PERSONA:
CREATE TABLE persona (
Nome varchar(50) PRIMARY KEY,
Nazione varchar(50),
Data_Nascita date
);
Al contrario, il comando SELECT è un comando SQL DML e permette di interrogare la
base di dati al fine di reperire le informazioni di interesse. Ad esempio, il seguente coman-
do restituisce i dati relativi alle persone memorizzate nella base di dati che sono di nazio-
nalità italiana:
SELECT nome, nazione, data_nascita
FROM persona
WHERE nazione = 'Italia';
Anche se ampiamente utilizzato, il linguaggio SQL è spesso “invisibile” agli utenti finali.
Ciò è dovuto al fatto che la maggior parte dei DBMS esistenti affiancano a editor SQL
CastanoWSU cap6 18-12-2008 16:42 Pagina 46

46 Capitolo 6 Creazione e interrogazione di una base di dati: il linguaggio SQL

minimali anche strumenti visuali che consentono di realizzare funzionalità DDL e DML
senza utilizzare i comandi SQL in modo diretto. Tale scelta è motivata dalla necessità di
offrire strumenti di supporto alle basi di dati che siano di facile utilizzo anche per gli
utenti meno esperti. Tuttavia, è bene sapere che, sotto alle interfacce semplificate di tipo
visuale, il DBMS utilizza sempre SQL per tradurre internamente i comandi utente for-
mulati tramite l’interfaccia grafica in comandi effettivi per la base di dati. Va precisato
che l’uso diretto dei comandi SQL permette di sfruttare appieno tutte le potenzialità del
linguaggio che non sarebbero altrimenti accessibili utilizzando i soli strumenti visuali. Il
linguaggio SQL offre inoltre un vantaggio in termini di portabilità. Essendo un linguag-
gio standard molto diffuso, i comandi SQL possono essere usati con successo su tutti i
principali DBMS disponibili sul mercato.
Nel testo, faremo riferimento a SQL99 (o SQL-3) che è la versione corrente dello
standard e utilizzeremo il software applicativo Microsoft Access per illustrare i vari
esempi1. Access è uno strumento per la gestione di basi di dati relazionali incluso nella
suite di Microsoft Office. Non può essere considerato un vero e proprio DBMS dal mo-
mento che è privo di molte funzionalità caratteristiche di questi prodotti (ad esempio le
funzionalità per la gestione della multi-utenza e della concorrenza); tuttavia, si tratta di
uno strumento molto diffuso per la creazione e la gestione di basi di dati personali, grazie
anche all’interfaccia visuale facile e intuitiva che mette a disposizione.

Creazione di una base di dati


Di seguito, mostreremo come utilizzare Access per definire le tabelle FILM, PERSONA
e CAST della base di dati cinematografica presentata nei Capitoli 3 e 4. All’apertura del
programma, Access permette di creare una nuova base di dati selezionando la voce di me-
nu File→Nuovo→Database vuoto e specificando il nome da assegnare al file che nel no-
stro esempio sarà “db_cinema”. Appare quindi una finestra come nella Figura 6.1 che
rappresenta db_cinema e mostra un pannello con l’elenco degli oggetti raggruppati per
tipologia che sarà possibile inserire nella base di dati (cioè tabelle, query, maschere, re-
port, pagine, macro, moduli)2.
Il primo passaggio consiste nella creazione dello schema di db_cinema e quindi nel-
la definizione delle tabelle in esso contenute. Iniziamo con la tabella FILM e selezionia-
mo la voce Crea una tabella in Visualizzazione Struttura (sono disponibili altre possibilità
di creazione guidata, ma con minore libertà di scelta per l’utente).
La finestra successiva permette di specificare gli attributi e i vincoli della nuova ta-
bella FILM (Figura 6.2).

1 Nella presentazione degli esempi, si farà riferimento alla versione 2003 di Microsoft Access. Questa tratta-

zione non può considerarsi in alcun modo una guida pratica all’utilizzo di Microsoft Access di cui verranno
presentate solo le caratteristiche funzionali agli esempi che verranno di volta in volta discussi. Per una tratta-
zione dettagliata di Microsoft Access si rimanda a un manuale specifico.
2 Nel testo, verranno mostrati esempi relativi a oggetti di tipo tabella e query. Per una trattazione dettagliata

delle varie tipologie di oggetti di Microsoft Access si rimanda a un manuale specifico.


CastanoWSU cap6 18-12-2008 16:42 Pagina 47

Creazione di una base di dati 47

Figura 6.1 Creazione di una base di dati in Microsoft Access.

Figura 6.2 Creazione della tabella FILM.


CastanoWSU cap6 18-12-2008 16:42 Pagina 48

48 Capitolo 6 Creazione e interrogazione di una base di dati: il linguaggio SQL

Tipo di dato SQL Tipo di dato in Access Descrizione


Varchar Testo Memorizza valori alfanumerici con
lunghezza massima fino a 255 caratteri.
Smallint Numerico (byte) Memorizza valori numerici interi
compresi tra 0 e 255.
Integer Numerico (intero), Memorizza valori numerici interi. Intero
Numerico (intero lungo) lungo ha una capacità di rappresentazione
doppia rispetto a intero.
Numeric/Decimal Numerico (decimale) Memorizza valori numerici decimali con
la possibilità di specificare il numero di
cifre decimali significative.
Float/Real Numerico Memorizza valori numerici in virgola
(precisione singola) mobile.
Double precision Numerico (precisione Memorizza valori numerici in virgola
doppia) mobile (con capacità di rappresentazione
doppia rispetto a Float/Real).
Date Data/ora Memorizza date e orari in vari formati.
Boolean Sì/No Memorizza valori come costanti booleane
(Vero/Falso, Sì/No, Acceso/Spento)
BLOB Oggetto OLE Memorizza oggetti di grandi dimensioni,
(Binary come una sequenza di valori binari (ad
Large OBject) esempio immagini, file audio, file video).
CLOB Memo Memorizza valori alfanumerici con
(Character lunghezza massima fino a 65.536
Large OBject) caratteri.

Tabella 6.1 I tipi di dato di Microsoft Access.

In particolare, Access richiede all’utente di specificare il dominio e gli eventuali vincoli as-
sociati a ogni attributo. Per quanto riguarda la scelta del dominio di un attributo, Access
permette di scegliere quello appropriato fra una lista di tipi di dato predefinita. Come ri-
portato nella Tabella 6.1, Access supporta i principali tipi di dato previsti dal linguaggio
SQL. Sono inoltre disponibili altri tipi di dato specifici di questo software come, ad
esempio, Valuta che può essere utilizzato per memorizzare valute, dal momento che sui
valori di questo tipo di dato non vengono effettuati arrotondamenti, e Contatore che per-
mette di memorizzare valori numerici sequenziali incrementati automaticamente dal si-
stema. Questo tipo di dato è particolarmente utile per la gestione di chiavi primarie basa-
te su codici auto-generati, poiché Access gestisce in modo automatico la generazione dei
nuovi valori man mano che sono inseriti nuovi film, garantendo che non vengano utiliz-
zati valori duplicati.
A seconda del tipo di dato scelto, Access consente di impostare la dimensione di ogni
attributo. Ad esempio, per l’attributo codice scegliamo il tipo di dato Numerico. Nella
parte inferiore della finestra, è possibile utilizzare l’opzione Dimensione campo per sceglie-
re la capacità da associare all’attributo. Trattandosi di codici di film, quindi di valori nu-
merici interi, ma potenzialmente molto numerosi, selezioniamo l’opzione Intero lungo.
CastanoWSU cap6 18-12-2008 16:42 Pagina 49

Creazione di una base di dati 49

Analogamente, per l’attributo titolo scegliamo il tipo di dato Testo e tramite l’opzione
Dimensione campo impostiamo il valore 50 per definire che il titolo di un film, almeno nel-
la nostra base di dati, non può avere lunghezza superiore a 50 caratteri alfanumerici.
Oltre al dominio degli attributi, è necessario specificare la chiave primaria della ta-
bella FILM, selezionando l’attributo/i che ne fanno parte e utilizzando l’apposito tasto
sulla barra degli strumenti come mostrato nella Figura 6.2. Inoltre, sempre tramite la gri-
glia nella parte inferiore della finestra, si possono indicare i vincoli specifici di ciascun at-
tributo. Nel caso della tabella FILM, è possibile impostare che l’attributo titolo non
possa contenere valori nulli (opzione Consenti lunghezza zero = No) e che l’attributo
nazione abbia “Italia” come valore predefinito (opzione Valore predefinito = Italia). Ulte-
riori vincoli di uso comune riguardano la possibilità di specificare una lista di valori am-
missibili per un attributo (opzione Valido se) e di definire che un attributo non ammetta
valori duplicati (opzione Indicizzato = Sì (Duplicati non ammessi)). Chiudendo la fine-
stra, Access invita al salvataggio della tabella chiedendo di specificarne il nome. Digitan-
do FILM, la nuova tabella viene inserita in db_cinema ed è visibile fra gli oggetti di tipo
tabella di questa base di dati.
Nell’intera procedura prevista da Access per la definizione di tabelle, il linguaggio
SQL è solo marginalmente menzionato. In verità, la creazione della tabella FILM corri-
sponde al seguente codice SQL (che potrebbe essere direttamente specificato come co-
mando SQL DDL):
CREATE TABLE film (
Codice integer PRIMARY KEY,
Titolo varchar(50) NOT NULL,
Anno varchar(4),
Durata integer,
Nazione varchar(50) DEFAULT 'Italia'
);
Il comando CREATE TABLE specifica il nome della tabella (film in questo caso) seguito
dall’elenco dei suoi attributi separati da virgola. Per ogni attributo, la sintassi del coman-
do prevede la dichiarazione del dominio e di eventuali vincoli, come nel caso di PRIMARY
KEY (che dichiara l’attributo Codice come chiave primaria), NOT NULL (che vieta la pre-
senza di valori nulli per l’attributo Titolo nelle tuple della tabella) e DEFAULT (che asso-
cia il valore predefinito Italia alla nazione di un film, in assenza di valori diversi). Il co-
mando CREATE TABLE, come tutti i comandi SQL, termina con il carattere punto e
virgola (;). Come ulteriore esempio riportiamo il comando SQL DDL per la creazione
della tabella PERSONA:
CREATE TABLE persona (
Nome varchar(50) PRIMARY KEY,
Nazione varchar(50),
Data_Nascita date
);
Procedendo in modo analogo, è possibile creare anche le altre tabelle di db_cinema.
CastanoWSU cap6 18-12-2008 16:42 Pagina 50

50 Capitolo 6 Creazione e interrogazione di una base di dati: il linguaggio SQL

Definizione di associazioni fra tabelle


Consideriamo il caso della tabella CAST. Questa tabella descrive la corrispondenza fra i
film e gli attori che vi partecipano con l’indicazione del corrispondente personaggio in-
terpretato. Per prima cosa, osserviamo che la chiave primaria della tabella è costituita dal-
la coppia di attributi persona e film. In Access, una chiave primaria composta da attri-
buti multipli viene impostata con la medesima procedura prevista per le chiavi semplici
(ovvero costituite da un solo attributo), ma avendo cura di selezionare tutti gli attributi
che partecipano alla chiave prima di utilizzare l’apposito comando sulla barra degli stru-
menti. Inoltre, osserviamo che gli attributi persona e film fungono da chiavi esterne sul-
le corrispondenti omonime tabelle. Questo significa che i valori dell’attributo persona di
CAST3 compaiono come valori di chiave primaria dell’attributo nome nelle tuple della ta-
bella PERSONA. Lo stesso avviene per i valori dell’attributo [Link] rispetto alla ta-
bella FILM e alla sua chiave primaria codice.
In Access, è possibile specificare chiavi esterne selezionando la voce di menu
Strumenti?Relazioni. Selezioniamo le tabelle PERSONA, CAST e FILM e trasciniamo
con la funzione drag&drop gli attributi che vogliamo mettere in associazione. In partico-
lare, colleghiamo [Link] e [Link]. In modo analogo procederemo in
seguito per definire l’associazione fra gli attributi [Link] e [Link]. Come mo-
strato nella Figura 6.3, mediante la finestra Relazioni è possibile confermare l’associazio-
ne e, se necessario, abilitare l’opzione Applica integrità referenziale.
I vincoli di integrità referenziale, anche conosciuti come vincoli di chiave esterna,
impongono ulteriori condizioni sull’associazione fra le due tabelle considerate. Nel no-
stro esempio, applicare il vincolo di integrità referenziale significa richiedere che per ogni

Figura 6.3 Associazioni e vincoli di chiave esterna fra le tabelle PERSONA, CAST e FILM.

3 In seguito, per indicare il nome di un attributo all’interno di una tabella, utilizzeremo la notazione concisa
[Link], anche chiamata dot notation.
CastanoWSU cap6 18-12-2008 16:42 Pagina 51

Popolamento di una base di dati 51

tupla presente nella tabella CAST, il valore dell’attributo persona deve essere un nome
presente nella tabella PERSONA. In altri termini, ogni tupla di CAST deve referenziare
una tupla che esiste in PERSONA. Questo meccanismo tutela l’integrità dei dati: infatti
il sistema impedirà l’inserimento di tuple pendenti, cioè che facciano riferimento a tuple
inesistenti. Esistono inoltre politiche di integrità referenziale che consentono di specificare
le azioni che il sistema dovrà eseguire a fronte di inserimenti di questo tipo che violano i
vincoli di integrità referenziale.
È bene prestare attenzione al fatto che quando si definisce un vincolo di chiave
esterna fra due attributi, è necessario che sussista la condizione di compatibilità fra i do-
mini. Consideriamo l’esempio di [Link] e [Link]. Per la definizione di
chiave esterna, i due attributi conterranno la medesima tipologia di valori ed è quindi ne-
cessario che abbiano anche il medesimo dominio; nel nostro esempio è Testo. Lo stesso
avviene per gli attributi [Link] e [Link] il cui dominio è Numerico (Intero
lungo).
Anche le associazioni e i vincoli di chiave esterna possono essere espressi direttamen-
te mediante il linguaggio SQL all’interno del comando CREATE TABLE, come nel seguen-
te esempio relativo alla tabella CAST:
CREATE TABLE cast (
persona varchar(50) REFERENCES persona(nome),
film integer REFERENCES film(codice),
personaggio varchar(50),
PRIMARY KEY (persona, film)
);
Notiamo come una chiave primaria composta – la coppia (persona, film) – venga di-
chiarata in coda alla definizione della tabella elencando gli attributi che ne fanno parte se-
parati da virgola (clausola PRIMARY KEY). Per quanto riguarda le associazioni fra tabelle,
osserviamo che esse sono dichiarate in corrispondenza dell’attributo che funge da chiave
esterna (l’attributo film) specificando il nome della tabella seguito fra parentesi tonde dal
nome del corrispondente attributo referenziato (film(codice)).

Popolamento di una base di dati


Una volta create le tabelle e le associazioni fra esse mediante chiavi esterne, è possibile po-
polare la base di dati inserendo i dati veri e propri, ovvero le tuple (chiamate anche
record ). In Access, l’inserimento di tuple avviene selezionando con un doppio clic la ta-
bella su cui si intende lavorare. Come negli esempi della Figura 6.4, è visualizzata una
struttura tabellare dove una riga e una colonna rappresentano rispettivamente una tupla e
un attributo.
Utilizzando la prima riga disponibile, l’utente può inserire attributo per attributo i
dati della nuova tupla che sono automaticamente salvati dal sistema nella base di dati. Si
noti che, in presenza di attributi con un valore predefinito (DEFAULT), le tuple da inse-
rire vengono mostrate con le colonne corrispondenti compilate in modo automatico. L’u-
tente può comunque modificare il valore predefinito sostituendolo con un valore diverso,
qualora ne avesse la necessità. Il sistema provvede a segnalare un errore ogni volta che un
CastanoWSU cap6 18-12-2008 16:42 Pagina 52

52 Capitolo 6 Creazione e interrogazione di una base di dati: il linguaggio SQL

Figura 6.4 Inserimento di tuple nella base di dati db_cinema.

vincolo specificato in fase di definizione della tabella viene violato, come nel caso in cui
tentassimo di inserire una tupla della tabella FILM senza specificare un valore per l’attri-
buto titolo (violeremmo il vincolo NOT NULL definito su questo attributo). Inoltre, è im-
portante notare che l’ordine con cui si procede a popolare le varie tabelle non è indiffe-
rente. Nell’esempio considerato, le prime tabelle che dovranno essere popolate sono
PERSONA e FILM; solo in seguito si potrà procedere con il popolamento di CAST.
Questo ordine è motivato dalla presenza di vincoli di integrità referenziale e, più precisa-
mente, dalla necessità che i valori delle chiavi esterne [Link] e [Link] facciano
riferimento a valori già esistenti per i corrispondenti attributi [Link] e [Link]-
dice.
L’inserimento di una tupla è un’operazione che può essere eseguita direttamente uti-
lizzando il comando INSERT di SQL DML come nel seguente esempio relativo alla tabel-
la FILM:
INSERT INTO film VALUES (5,'Il sesto senso',1999,107,'USA');
Il comando INSERT richiede di specificare il nome della tabella in cui effettuare l’inseri-
mento e il valore degli attributi della nuova tupla in modo posizionale, ossia ricordando
che i valori inseriti verranno assegnati agli attributi della tabella rispettando la sequenza
CastanoWSU cap6 18-12-2008 16:42 Pagina 53

Popolamento di una base di dati 53

con la quale tali attributi sono stati specificati nel comando CREATE TABLE. I valori di ti-
po alfanumerico devono essere inseriti fra apici singoli. Qualora si volesse inserire una tu-
pla con un valore nullo per uno o più attributi, il comando INSERT viene modificato co-
me nel seguente esempio:
INSERT INTO film(codice,titolo,anno) VALUES (4,'La vita è bella',1997);
In pratica, il nome della tabella è affiancato dalla lista esplicita di attributi per i quali verrà
fornito un valore da parte dell’utente, valore che verrà specificato posizionalmente dopo
la clusola VALUES. Gli attributi non menzionati esplicitamente nel comando INSERT sa-
ranno impostati al valore nullo (nell’esempio, il film La vita è bella avrà un valore nullo in
corrispondenza dell’attributo durata) oppure a quello predefinito se specificato nel co-
mando CREATE TABLE con la clausola DEFAULT (è il caso dell’attributo nazione, a cui vie-
ne assegnato il valore predefinito Italia).
Dopo l’inserimento, le tuple possono essere successivamente modificate o elimina-
te. In Access, l’operazione di modifica avviene semplicemente sovrascrivendo il vecchio
valore con quello nuovo. Come per l’inserimento, l’operazione di salvataggio è eseguita in
modo automatico quando la modifica della tupla è terminata. Per quanto riguarda l’ope-
razione di eliminazione, è sufficiente posizionarsi sulla tupla da rimuovere e selezionare la
voce di menu Modifica?Elimina record. Viene visualizzato un messaggio di richiesta di
conferma, per avvisare l’utente che non sarà possibile annullare gli effetti dell’operazione.
Le operazioni di modifica e cancellazione di tuple sono eseguibili operando diretta-
mente con il linguaggio SQL mediante i comandi DML UPDATE e DELETE. Questi coman-
di consentono di operare su una singola tupla o su un intero insieme di tuple che soddi-
sfano una condizione espressa mediante una clausola WHERE. Ad esempio, il seguente
comando UPDATE consente di modificare la durata del film Il sesto senso:
UPDATE film SET durata = 130 WHERE titolo = 'Il sesto senso';
In questo caso la modifica interessa solo una tupla della tabella FILM, cioè quella il cui ti-
tolo corrisponde al valore specificato nella condizione WHERE. Per questa tupla, il nuovo
valore (130) dell’attributo durata va a sostituire il valore precedentemente memorizzato.
Le altre tuple di FILM restano invece inalterate. Consideriamo ora il seguente esempio di
comando DELETE:
DELETE FROM persona WHERE nazione = 'Italia';
Questo comando interessa la tabella PERSONA dalla quale chiediamo di cancellarele
persone di nazionalità italiana, come specificato nella condizione espressa nella clausola
WHERE. Con riferimento all’esempio della Figura 6.4, questo comando implica la cancella-
zione di cinque tuple (quelle relative a Gian Maria Volonté, Giorgio Cantarini, Nicoletta
Braschi, Roberto Benigni, Vittorio Gassman), perché corrispondono a persone italiane.
Notiamo che quando non viene utilizzata la clausola WHERE, i comandi UPDATE e DELETE
eseguono rispettivamente l’operazione di modifica e cancellazione su tutte le tuple pre-
senti nella tabella specificata.
CastanoWSU cap6 18-12-2008 16:42 Pagina 54

54 Capitolo 6 Creazione e interrogazione di una base di dati: il linguaggio SQL

Violazione dei vincoli di integrità referenziale


La modifica e la cancellazione può avere conseguenze sull’integrità dei dati contenuti nel-
la base di dati. Consideriamo il caso della tabella FILM e della sua tupla relativa alla pel-
licola Pulp Fiction (codice = 3). Supponiamo che, per ragioni di inventario, il suo codi-
ce identificativo nella base di dati debba essere cambiato in 7 come mostra il seguente
comando UPDATE:
UPDATE film SET codice = 7 WHERE codice = 3;
A questo punto consideriamo la tabella CAST e in particolare la tupla (John Travolta, 3,
Vincent Vega). A seguito della modifica apportata, questa tupla diventa incoerente poi-
ché il valore 3 della chiave esterna [Link] referenzia un film che non c’è più (ora ha
codice 7). Si parla in questo caso di violazione del vincolo di integrità referenziale. Il siste-
ma può essere impostato a reagire in maniera automatica a una violazione di questo tipo
rifiutando l’aggiornamento del codice di un film e restituendo un errore all’utente se per
il film esistono tuple correlate in altre tabelle tramite chiave esterna. Questo comporta-
mento del sistema si può impostare specificando una politica di integrità referenziale de-
nominata NO ACTION (nessuna azione), in cui le operazioni di modifica che portano a
una violazione vengono rifiutate. Esistono altre politiche di integrità referenziale che per-
mettono al sistema di reagire a queste violazioni con un diverso comportamento. Per
esempio, con riferimento al precedente comando UPDATE, è possibile fare in modo che il
sistema aggiorni automaticamente al nuovo valore 7 le tuple di tutti gli attori del cast di
quel film. In altri termini il sistema modifica in 7 il codice del film Pulp Fiction e cambia
in 7 anche il valore 3 della chiave esterna [Link] in tutte le tuple di CAST relative ad
attori di Pulp Fiction. Questa politica di integrità referenziale che propaga automatica-
mente gli aggiornamenti su una tupla a tutte le tuple correlate tramite vincoli di chiave
esterna viene denominata CASCADE (a cascata). Nel nostro esempio, in conseguenza del
comando UPDATE, la politica CASCADE comporterebbe l’aggiornamento delle seguenti
tuple di CAST: (Bruce Willis, 7, Butch Coolidge), (John Travolta, 7, Vincent Vega),
(Uma Thurman, 7, Mia Wallace).
Le politiche di integrità referenziale si applicano analogamente anche alle operazio-
ni di cancellazione di tuple. Per esempio, consideriamo il seguente comando DELETE:
DELETE FROM persona WHERE nome = 'Roberto Benigni';
Con la politica NO ACTION, il sistema rifiuta questo comando per tutelare l’integrità
delle tuple di CAST che fanno riferimento a Benigni mediante la chiave esterna
[Link]. Con la politica CASCADE, il sistema applica a cascata il comando
DELETE alle tuple di CAST che puntano all’attore cancellato, cancellandole a loro volta.
In Access, la politica NO ACTION è applicata in modo predefinito senza che sia
necessario dichiarare nulla di esplicito. La politica CASCADE può essere specificata me-
diante la voce di menu Strumenti→Relazioni con le opzioni Aggiorna campi correlati a ca-
tena (per il comando UPDATE) ed Elimina record correlati a catena (per il comando
DELETE). In SQL, le politiche di integrità referenziale vengono specificate nel comando
CREATE TABLE congiuntamente alla definizione delle chiavi esterne tramite la clausola RE-
FERENCES:
CastanoWSU cap6 18-12-2008 16:42 Pagina 55

Modifica ed eliminazione di tabelle 55

CREATE TABLE cast (


persona varchar(50) REFERENCES persona(nome)
ON UPDATE CASCADE ON DELETE CASCADE,
film integer REFERENCES film(codice)
ON UPDATE CASCADE,
personaggio varchar(50),
PRIMARY KEY (persona, film)
);
In questo esempio relativo alla tabella CAST, decidiamo di applicare la politica
CASCADE alla chiave esterna persona per fare in modo che operazioni di modifica e di
cancellazione di persone che fanno parte di un cast siano propagate sulle corrispondenti
tuple di CAST. Osserviamo invece che alla chiave esterna film si chiede di applicare la
politica CASCADE solo per le operazioni di modifica di codice nelle tuple di FILM.
Quando non si specifica alcuna politica di integrità referenziale in SQL, si intende appli-
cata in modo predefinito l’opzione NO ACTION.

Modifica ed eliminazione di tabelle


È possibile apportare variazioni allo schema di una base di dati aggiungendo nuove tabel-
le, modificando la struttura di quelle esistenti o eliminando quelle divenute inutili.
In Access, l’aggiunta di una nuova tabella è eseguita seguendo la procedura illustra-
ta in precedenza basata sul comando CREATE TABLE del linguaggio SQL.
Per eseguire l’operazione di modifica, è necessario selezionare la tabella di interesse e
invocare l’opzione Visualizzazione struttura dal menu contestuale (attivabile dal tasto de-
stro del mouse). È possibile intervenire aggiungendo, eliminando e modificando le carat-
teristiche degli attributi esistenti. Le modifiche possono interessare sia il dominio degli
attributi che i vincoli a essi associati. È comunque importante ricordare che le modifiche
alla struttura di una tabella hanno ripercussioni sulle tuple già memorizzate nella base di
dati. Ad esempio, considerando la tabella PERSONA, è possibile aggiungere un vincolo
NOT NULL per l’attributo nazione (opzione Consenti lunghezza zero = No) in modo da ri-
chiedere che ogni tupla della tabella abbia un valore definito per questo attributo. Ovvia-
mente tale operazione di modifica non può essere completata con successo qualora nella
base di dati siano presenti tuple con valore nullo in corrispondenza dell’attributo
nazione, poiché questi valori nulli rappresenterebbero una violazione del vincolo NOT
NULL appena introdotto. Soltanto le modifiche che non introducono inconsistenze nei
dati già archiviati nella base di dati possono essere eseguite correttamente dal sistema.
In SQL, le modifiche alla struttura di una tabella esistente sono eseguite mediante il
comando ALTER, come nel seguente esempio in cui si decide di aggiungere il vincolo NOT
NULL per l’attributo nazione della tabella PERSONA:
ALTER TABLE persona
ALTER COLUMN nazione SET NOT NULL;
Per quanto riguarda l’eliminazione di tabelle, Access richiede di selezionare la tabella da
rimuovere e di invocare l’opzione Elimina dal menu contestuale. Questa operazione cor-
CastanoWSU cap6 18-12-2008 16:42 Pagina 56

56 Capitolo 6 Creazione e interrogazione di una base di dati: il linguaggio SQL

risponde al comando DROP TABLE del linguaggio SQL. Il seguente esempio elimina la ta-
bella FILM dalla base di dati db_cinema:
DROP TABLE film cascade;
Il comando DROP non è eseguito dal sistema se esistono tuple memorizzate nella tabella da
eliminare, ovvero se la tabella non è vuota. Per forzare l’eliminazione di una tabella non
vuota occorre specificare esplicitamente la clausola CASCADE che sortirà l’effetto di cancel-
lare tutti i film presenti nella base di dati e anche la definizione della tabella FILM.

Interrogazione di una base di dati


Formulare interrogazioni, o query, significa accedere alla base di dati per reperire le infor-
mazioni di interesse in essa memorizzate. Per esempio, con riferimento alla base di dati
db_cinema precedentemente considerata, potremmo essere interessati a estrarre la durata
del film Shining. Questo richiede di accedere alle tuple della tabella FILM e di filtrarle
opportunamente (eseguendo concettualmente un’operazione di selezione dell’algebra re-
lazionale basata sul titolo dei film) in modo da individuare i dati relativi alla pellicola ri-
chiesta per poter restituire il valore del corrispondente attributo durata che costituisce il
risultato desiderato (eseguendo concettualmente un’operazione di proiezione dell’algebra
relazionale sull’attributo durata).
In Access, le funzionalità di interrogazione sono disponibili attraverso il pannello
Query in cui è possibile selezionare la voce Crea una query in Visualizzazione Struttura.
Access mette a disposizione uno strumento visuale per la formulazione di interrogazioni
denominato Query-By-Example (QBE). In QBE, il primo passaggio per la definizione di
una query prevede che l’utente selezioni le tabelle della base di dati che saranno coinvol-
te nell’interrogazione. Successivamente, come nell’esempio della Figura 6.5 (a), la sezione
superiore di QBE mostra la struttura della tabella/e selezionata, mentre la sezione inferio-
re costituisce l’area di lavoro e riporta una griglia in cui l’utente dovrà specificare le carat-
teristiche della query.

(a) (b)

Figura 6.5 Esempio di query con lo strumento QBE di Microsoft Access.


CastanoWSU cap6 18-12-2008 16:42 Pagina 57

Interrogazione di una base di dati 57

In analogia con l’algebra relazionale, le funzionalità di base di QBE consentono di esegui-


re due tipi di operazioni sulle tabelle selezionate. La prima operazione è di proiezione e
permette di scegliere quali attributi restituire nel risultato della query. L’utente procede
prelevando tali attributi dalle tabelle della sezione superiore, disponendoli colonna per
colonna nella griglia inferiore di QBE mediante trascinamento con la funzione
drag&drop. La seconda operazione è di selezione e permette di scegliere quali tuple resti-
tuire nel risultato della query. L’utente procede definendo una condizione di selezione che
sarà specificata nella riga Criteri.
Nella Figura 6.5 (a) la query lavora sulla sola tabella FILM, dal momento che le
informazioni di interesse sia per la selezione sia per la proiezione sono tutte disponibili
nelle tuple di questa tabella. Il risultato sarà costituito dalle sole colonne titolo e
durata, mentre le righe corrisponderanno alle tuple che soddisfano il criterio titolo =
'Shining'.
Per visualizzare il risultato della query è necessario cambiare modalità di visualizza-
zione utilizzando la voce di menu Visualizza?Visualizzazione Foglio dati. In questa moda-
lità viene visualizzata una tabella le cui colonne sono gli attributi specificati nella query e
le righe sono le tuple del risultato che soddisfano la condizione richiesta. Il risultato della
query considerata nell’esempio è mostrato nella Figura 6.5 (b).
È bene precisare che, per la natura delle operazioni algebriche eseguite sulle relazio-
ni, una query è concettualmente una tabella. Tuttavia, la tabella contenente il risultato di
una query non è un’ulteriore tabella della base di dati (quindi creata tramite un’operazio-
ne di CREATE TABLE), ma è piuttosto una tabella temporanea (assimilabile a una vista sul-
la base di dati), contenente i soli dati che costituiscono il risultato della query. Per como-
dità, in Access è anche possibile salvare una query, in modo che il suo risultato possa
essere rapidamente visualizzato in qualunque momento. Il risultato della query viene cal-
colato quando si passa alla modalità di visualizzazione e, per questo motivo, esso risulta
sempre aggiornato rispetto ai dati memorizzati nelle tabelle della base di dati. Utilizzando
la voce di menu Visualizza?Visualizzazione Struttura, si ritorna all’ambiente QBE per
eventuali modifiche alla query.
Le interrogazioni formulate in QBE sono automaticamente tradotte in sintassi
SQL da Access. Un’ulteriore funzionalità di Access, particolarmente utile in quest’ambi-
to, è rappresentata dalla voce di menu Visualizza?Visualizzazione SQL. In questa moda-
lità Access visualizza l’equivalente sintassi in linguaggio SQL della query espressa me-
diante QBE. In verità non si tratta di una semplice interfaccia di visualizzazione, ma di
un vero e proprio editor testuale. Questo significa che mediante la visualizzazione SQL è
possibile esprimere interrogazioni in Access utilizzando direttamente il linguaggio SQL.
Con riferimento all’esempio della Figura 6.5, la sintassi SQL equivalente alla query QBE
è la seguente:
SELECT titolo, durata
FROM film
WHERE titolo = 'Shining';
La struttura del comando è molto semplice: la clausola SELECT specifica gli attributi che
dovranno essere mostrati nel risultato (operazione di proiezione), la clausola FROM specifi-
ca la tabella da cui i dati dovranno essere prelevati, mentre la clausola WHERE definisce la
condizione di selezione sulle tuple (operazione di selezione).
CastanoWSU cap6 18-12-2008 16:42 Pagina 58

58 Capitolo 6 Creazione e interrogazione di una base di dati: il linguaggio SQL

Condizioni di selezione
L’interrogazione di una base di dati può richiedere operazioni di selezione sulle tuple in
cui è necessario l’uso di operatori di confronto spesso anche in modo combinato. Consi-
deriamo ad esempio l’interrogazione che richiede di estrarre il nome delle persone di na-
zionalità italiana nate negli anni ’50 e ’60. In questo caso, la tabella che contiene le infor-
mazioni di interesse è PERSONA e la condizione di selezione è composta da tre
operazioni di confronto. La prima deve estrarre gli individui di nazionalità italiana:
nazione ='Italia'. Le altre due operazioni di confronto devono prelevare gli individui
nati nel periodo richiesto: data_nascita >= #01/01/1950# e data_nascita <=
#31/12/1969#. Da notare l’uso del carattere cancelletto (#) per delimitare i valori di tipo
date. Affinché una tupla sia restituita nel risultato dell’interrogazione, tutte queste condi-
zioni devono essere soddisfatte. Questo è possibile utilizzando l’operatore logico di con-
giunzione AND in modo che la condizione di selezione finale risulti essere (nazione
='Italia') AND (data_nascita >= #01/01/1950#) AND (data_nascita <=
#31/12/1969#).
In generale, gli operatori di confronto utilizzabili per formulare condizioni di sele-
zione sono riportati nella Tabella 6.2 e consentono di confrontare i valori di due attribu-
ti o il valore di un attributo con un valore costante come accade nei nostri esempi (ad
esempio, nazione ='Italia').
Con lo strumento QBE, l’utilizzo dell’operatore AND non presenta particolari dif-
ficoltà.
Nel caso di due condizioni congiunte applicate al medesimo attributo, come per
data_nascita, esse vengono specificate nella riga Criteri e l’operatore AND viene esplici-
tamente specificato. Ulteriori condizioni congiunte vengono specificate nella medesima
riga Criteri in corrispondenza degli attributi a cui devono essere applicate, come per l’at-
tributo nazione. La struttura dell’interrogazione in QBE è mostrata nella Figura 6.6 (a).
Il risultato della query è mostrato nella Figura 6.6 (b) e comprende gli attori Roberto
Benigni e Nicoletta Braschi: sono le uniche persone nella base di dati a soddisfare tutte le
condizioni richieste.
L’interrogazione può essere espressa in linguaggio SQL come segue:
SELECT nome, nazione, data_nascita
FROM persona
WHERE (nazione ='Italia') AND (data_nascita >= #01/01/1950#) AND
(data_nascita <= #31/12/1969#);
Oltre all’operatore AND che permette di selezionare le tuple che soddisfano congiunta-
mente le condizioni specificate, sono disponibili gli operatori di disgiunzione OR e di ne-

= (uguale) < (minore)


<> (diverso) >= (maggiore o uguale)
> (maggiore) <= (minore o uguale)

Tabella 6.2 Operatori di confronto.


CastanoWSU cap6 18-12-2008 16:42 Pagina 59

Join di tabelle 59

(a) (b)

Figura 6.6 Esempio di query con operatori di confronto e logici.

gazione NOT che permettono di selezionare rispettivamente le tuple che soddisfano al-
meno una delle condizioni specificate e le tuple che soddisfano una condizione negata.

Join di tabelle
In qualche caso, l’interrogazione della base di dati può richiedere di considerare più tabel-
le correlate per arrivare al risultato desiderato. È il caso ad esempio della query che richie-
de di estrarre i nomi degli attori appartenenti al cast del film Pulp Fiction e del loro per-
sonaggio corrispondente. Per la risoluzione di questa interrogazione è necessario utilizzare
entrambe le tabelle FILM e CAST che andranno correlate fra loro in modo opportuno al
fine di collegare i dati di ogni film con i dati relativi al corrispondente CAST. Questa ope-
razione di collegamento fra tabelle viene detta operazione di theta join (o semplicemente
join), ed è già stata introdotta nel Capitolo 4. Obiettivo dell’operazione di join è quello
di selezionare sul prodotto cartesiano delle due tabelle considerate (FILM e CAST ) solo
le tuple che soddisfano una condizione di join specificata, che nel nostro caso è una con-
dizione di uguaglianza fra valori della chiave esterna e valori della corrispondente chiave
primaria riferita, ovvero [Link] = [Link]. Sul risultato di questa operazione di
join è possibile definire operazioni di proiezione e selezione.
Lavorando con lo strumento QBE, la definizione di una query di join non prevede
l’uso di funzionalità specifiche. L’unica particolarità consiste nel fatto che tutte le tabelle
necessarie per la risoluzione della query devono essere inserite nella sezione superiore di
QBE. Nel nostro esempio notiamo che le tabelle FILM e CAST risultano automatica-
mente collegate da Access in virtù dei vincoli di chiave esterna definiti in fase di creazio-
ne dello schema della base di dati. Questo significa che l’operazione di join fra le due ta-
belle è applicata in modo automatico dallo strumento QBE quando esse vengono
utilizzate all’interno di una query. Per completare l’interrogazione, si procede come nella
Figura 6.7 (a)4. In particolare, si esegue l’operazione di proiezione, richiedendo nel risul-

4 In Access le query di join sono genericamente denotate come query di selezione, come indicato nell’intesta-
zione della finestra di esempio nella Figura 6.7.
CastanoWSU cap6 18-12-2008 16:42 Pagina 60

60 Capitolo 6 Creazione e interrogazione di una base di dati: il linguaggio SQL

(a) (b)

Figura 6.7 Esempio di query con join di tabelle.

tato della query gli attributi [Link], [Link] e [Link], e l’opera-


zione di selezione impostando la condizione titolo = 'Pulp Fiction'. Il risultato della
query è mostrato nella Figura 6.7 (b) e comprende gli attori John Travolta, Bruce Willis e
Uma Thurman con il corrispondente personaggio interpretato.
Osserviamo che la prima colonna del risultato (titolo) è identica per tutte le tuple
in ragione della condizione impostata nella query (titolo = 'Pulp Fiction'). Questo
potrebbe suggerirci di eliminare la prima colonna della query con l’attributo titolo la-
sciando nel risultato solo i dati relativi al cast del film specificato ([Link],
[Link]). In verità questa operazione non è possibile perché l’attributo titolo
è utilizzato in QBE per specificare la condizione di selezione. Utilizzando la funzione
Mostra nella griglia inferiore di QBE si può escludere titolo dalla visualizzazione del risul-
tato pur mantenendolo nella struttura della query per le operazioni di selezione. In parti-
colare, è necessario togliere il simbolo di spunta alla casella Mostra dell’attributo titolo:
solo le colonne con la casella Mostra selezionata saranno incluse nel risultato della query.
La sintassi SQL della query di join QBE mostrata in precedenza è la seguente:
SELECT persona, personaggio
FROM film INNER JOIN cast ON codice = film
WHERE titolo = 'Pulp Fiction';
La parola chiave INNER JOIN esprime l’operazione di collegamento fra le due tabelle, la
clausola ON specifica la condizione di join. La parola chiave INNER determina l’uso di un ti-
po di join cosiddetto interno poiché solo le tuple per le quali la condizione di join è veri-
ficata vengono incluse nel risultato dell’operazione (ovvero quelle della tabella FILM per
le quali esiste una tupla corrispondente nella tabella CAST). Non sono invece incluse le
tuple dei film per cui non è specificato il cast. In SQL, esistono anche altri tipi di join co-
siddetti esterni che permettono l’inclusione nel risultato anche di queste ultime tuple.
Un’interrogazione che contiene operazioni di join può essere espressa in linguaggio
SQL anche con la seguente sintassi che risulta in ogni caso equivalente alla precedente:
SELECT persona, personaggio
FROM film, cast
WHERE (codice = film) AND (titolo = 'Pulp Fiction');
CastanoWSU cap6 18-12-2008 16:42 Pagina 61

Criteri di ordinamento 61

In questa seconda forma, la clausola FROM contiene soltanto la lista delle tabelle da consi-
derare nell’interrogazione, mentre la condizione di join è espressa nella clausola WHERE
dove è combinata mediante l’operatore logico AND con la condizione di selezione.

Criteri di ordinamento
Le tuple appartenenti al risultato di una query sono visualizzate secondo un ordinamen-
to che spesso può apparire casuale. In verità, esso dipende dai criteri e dalle operazioni
interne con cui il sistema accede alle tabelle e costruisce il risultato. È comunque possi-
bile impostare criteri di ordinamento alfanumerico crescente o decrescente sugli attribu-
ti del risultato. Ad esempio, consideriamo l’interrogazione in cui si richiede il titolo e il
cast dei film memorizzati, in cui vogliamo visualizzare le tuple del risultato ordinate in
modo crescente.
In QBE, la costruzione di questa query richiede l’inclusione delle tabelle FILM e
CAST dalle quali si selezionano gli attributi titolo e persona, rispettivamente. I criteri
di ordinamento sulle colonne possono essere impostati tramite il comando Ordinamento
della griglia di lavoro. Selezionando l’opzione Crescente per entrambi gli attributi della
query otteniamo il risultato desiderato come nella Figura 6.8.
Notiamo che le clausole di ordinamento sono applicate con precedenza da sinistra a
destra. Questo significa che l’ordinamento è applicato a partire dal primo attributo di si-
nistra e, a seguire, sugli altri attributi procedendo verso destra, se vengono trovati valori
uguali sull’attributo considerato.
In SQL, i criteri di ordinamento sono specificati tramite una clausola ORDER BY co-
me segue:
SELECT titolo, persona
FROM film INNER JOIN cast ON codice = film
ORDER BY titolo, persona;

(a) (b)

Figura 6.8 Esempio di query con clausole di ordinamento.


CastanoWSU cap6 18-12-2008 16:42 Pagina 62

62 Capitolo 6 Creazione e interrogazione di una base di dati: il linguaggio SQL

Non essendo richiesta alcuna operazione di selezione, ovvero essendo interessati a visio-
nare tutti i film con il rispettivo cast, la clausola WHERE viene omessa. Inoltre precisiamo
che nella clausola ORDER BY, non essendo specificato, si applica un ordinamento crescen-
te che è quello predefinito in SQL. Qualora si desiderasse ordinare in modo decrescente,
occorre specificare esplicitamente la parola chiave DESC immediatamente dopo l’attributo
su cui tale ordinamento deve essere applicato. Ad esempio, se volessimo produrre il risul-
tato con un ordinamento alfabetico crescente rispetto al titolo ma con un ordinamento
alfabetico decrescente rispetto alle persone del cast, la clausola ORDER BY avrebbe la se-
guente forma:
ORDER BY titolo, persona DESC

Ulteriori esempi di interrogazione


Presentiamo ulteriori esempi di interrogazione di una base di dati per consolidare le co-
noscenze acquisite e discutere alcuni casi particolari.
Consideriamo l’interrogazione in cui si richiede di estrarre il titolo dei film di dura-
ta maggiore di 120 minuti che sono di produzione statunitense o in cui partecipano atto-
ri statunitensi. Per la risoluzione di questa query è necessario interrogare sia la tabella
FILM, da cui otteniamo i dati relativi al titolo, alla durata e alla nazione di produzione,
sia la tabella CAST e PERSONA, da cui otteniamo rispettivamente i dati sulle partecipa-
zioni alle pellicole e la nazionalità degli attori. Sono quindi necessarie due operazioni di
join: la prima per collegare le tabelle FILM e CAST; la seconda per collegare CAST e
PERSONA. Per quanto riguarda la condizione di selezione, essa può essere espressa come
combinazioni di predicati logici come segue: ([Link] > 120) AND ((FILM.
nazione = 'USA') OR ([Link] = 'USA')).
Notiamo che in questo caso, l’utilizzo delle parentesi non è casuale. Infatti, affinché
una tupla sia inclusa nel risultato, l’interrogazione richiede che la condizione (FILM.
durata > 120) sia sempre soddisfatta (e quindi è posta in AND con quanto segue), men-
tre è sufficiente che sia soddisfatta almeno una delle condizioni ([Link] = 'USA')
e ([Link] = 'USA'), che quindi sono combinate fra loro tramite l’operatore
OR. Sul risultato dell’operatore OR è quindi valutato l’operatore AND con la prima con-
dizione. Se le parentesi fossero omesse, la precedenza degli operatori logici, che va da si-
nistra a destra, comporterebbe una diversa valutazione della condizione di selezione nel
suo complesso e porterebbe a un risultato errato (sarebbe dapprima valutato l’operatore
AND e sul risultato si eseguirebbe l’operatore OR).
Inoltre, osserviamo che il nome dell’attributo nazione è stato prefisso con il nome
della tabella di appartenenza. In questo caso si tratta di una pratica obbligatoria dal mo-
mento che sia la tabella FILM che la tabella PERSONA possiedono un attributo nazio-
ne ed entrambe partecipano alla query. In questo esempio, quando si fa riferimento all’at-
tributo nazione, per evitare ambiguità e quindi di generare un errore in fase di esecuzione
della query, è necessario specificare la tabella di appartenenza.
La struttura di questa query realizzata con lo strumento QBE è mostrata nella Figu-
ra 6.9 (a).
In QBE i predicati disgiuntivi sono espressi su righe diverse della clausola Criteri,
ognuno in corrispondenza dell’attributo al quale sono applicati. Il predicato (FILM.
CastanoWSU cap6 18-12-2008 16:42 Pagina 63

Ulteriori esempi di interrogazione 63

durata > 120)è ripetuto su entrambe le righe di Criteri per far in modo che sia valutato
congiuntamente a ciascun predicato disgiuntivo.
Il risultato della query è riportato nella Figura 6.9 (b) e contiene i film Shining e
Pulp Fiction. È facile notare che nel risultato sono presenti ripetizioni anche multiple del
medesimo titolo di film. Le ripetizioni sono dovute al fatto che un film è restituito nel ri-
sultato ogni volta che viene trovato un attore del suo cast di origini statunitensi. È possi-
bile eliminare i risultati duplicati utilizzando la clausola DISTINCT nel comando SELECT di
SQL che definisce l’interrogazione come segue:
SELECT DISTINCT titolo
FROM film INNER JOIN cast ON codice = film
INNER JOIN persona ON persona = nome
WHERE ([Link] > 120) AND
(([Link] = 'USA') OR ([Link] = 'USA'))
Da notare la concatenazione delle operazioni INNER JOIN nella clausola FROM per collega-
re le tabelle coinvolte nella query. Osserviamo che, quando la condizione di selezione è
abbastanza articolata come in questo esempio, l’utilizzo della presente sintassi ha il van-
taggio di non appesantire la clausola WHERE con le condizioni di join e di non complicare
ulteriormente l’espressione finale a discapito della leggibilità complessiva.
Discutiamo ora il caso di un’interrogazione in cui si richiede l’elenco delle persone
memorizzate nella base di dati, di cui si vuole visualizzare il nome, la corrispondente da-
ta di nascita e il nome del personaggio da esse interpretato. La particolarità di questa
query consiste nel fatto che vogliamo escludere dal risultato quegli individui per i quali
non è nota la data di nascita o il nome del personaggio interpretato. In altre parole, vo-
gliamo costruire il join fra le tabelle PERSONA e CAST e selezionare quelle tuple in cui
gli attributi data_nascita e personaggio non contengono valori nulli. Per richieste di
questo genere, è necessario utilizzare un apposito operatore IS NULL che applicato a un
attributo restituisce un valore booleano (Vero/Falso) che risulta Vero nel caso in cui il va-
lore dell’attributo sia nullo e Falso altrimenti. In questo esempio, siamo interessati alle tu-
ple con attributi il cui valore è non nullo, quindi dovremo ricorrere all’operatore logico

(a) (b)

Figura 6.9 Esempio di query con operatori logici combinati.


CastanoWSU cap6 18-12-2008 16:42 Pagina 64

64 Capitolo 6 Creazione e interrogazione di una base di dati: il linguaggio SQL

NOT. La condizione di selezione risulta dunque essere (data_nascita IS NOT NULL)


AND (personaggio IS NOT NULL).
La struttura e il risultato di questa query realizzata con lo strumento QBE di Access
sono mostrati nella Figura 6.10.
Osserviamo che dal risultato sono state correttamente eliminate le tuple relative agli
attori Haley Joel Osment e Catherine Spaak per i quali abbiamo valori nulli rispettiva-
mente per l’attributo data_nascita e personaggio.
Dalla struttura dell’interrogazione nella Figura 6.10 (a), notiamo che l’intestazione
delle colonne del risultato presentano una particolarità: il nome degli attributi è prece-
duto da stringhe di testo definite dall’utente. Tali stringhe sono chiamate alias di
attributo e sono utilizzate per rinominare gli attributi del risultato della query sostituen-
do il nome originale con denominazioni più significative per migliorare la comprensione
del risultato.
Concludiamo l’esempio con la sintassi equivalente in linguaggio SQL:
SELECT nome AS [Nome attore], data_nascita AS [Data di nascita],
personaggio AS [Personaggio interpretato]
FROM persona INNER JOIN cast ON nome = persona
WHERE (data_nascita IS NOT NULL) AND (personaggio IS NOT NULL)
Osserviamo che gli alias di attributo sono specificati nella clausola SELECT mediante la
parola chiave AS. L’uso delle parentesi quadre è necessario per definire alias composti da
più di una parola. Non tutti i DBMS però le utilizzano; in alcuni sistemi, al posto delle
parentesi quadre, è utilizzato il carattere di doppio apice (").

Figura 6.10 Esempio di query con l’utilizzo dell’operatore IS NOT NULL e dell’alias di colonna.
CastanoWSU cap7 18-12-2008 16:43 Pagina 65

Capitolo 7

Analisi e classificazione automatica


di testi

L’avvento e la rapida evoluzione di Internet e del Web hanno portato alla disponibilità di
grandi quantità di documenti e informazioni in rete garantendo allo stesso tempo un ac-
cesso su larga scala a comunità potenzialmente molto ampie di utenti.
Le tecnologie web nascono con l’obiettivo di consentire la pubblicazione e la condi-
visione di contenuti. In generale, possiamo considerare il Web come una vasta collezione
di testi e documenti che trattano argomenti tipicamente molto diversi fra loro. È impor-
tante notare che, a differenza delle basi di dati, il Web non impone rigide forme di strut-
turazione e organizzazione dei contenuti e neppure vincoli di integrità fra i vari docu-
menti. Non esiste quindi un indice globale dei documenti pubblicati e tanto meno un’au-
torità con ruolo di supervisione che sia preposta alla catalogazione dei contenuti
pubblicati. Ne deriva che le tecniche e i linguaggi di interrogazione discussi nell’ambito
delle basi di dati risultano inadeguate sul Web. Tuttavia, la disponibilità di tecniche di in-
dicizzazione e interrogazione capaci di individuare e reperire i documenti rilevanti rispet-
to alle richieste degli utenti è un requisito fondamentale affinché l’immenso patrimonio
informativo del Web sia di qualche utilità. A tal scopo, le tecniche di Information
Retrieval offrono valide soluzioni e sono ampiamente utilizzate.

Information Retrieval
Information Retrieval (letteralmente, “recupero di informazione”) è la scienza che studia
il problema del reperimento automatico di informazioni da una collezione (corpus) di do-
cumenti.1 Di Information Retrieval si parla già nel 1945, quando Vannevar Bush nel suo
articolo “As We May Think” ipotizzò l’uso di un elaboratore per supportare operazioni di

1 In alcuni testi, si introducono le definizioni di Document, Text e Data Retrieval con riferimento a problema-
tiche di Information Retrieval applicate a particolari tipologie di oggetti come documenti, testi in genere e
dati. Nel testo, si utilizzerà il termine Information Retrieval per indicare genericamente il problema del repe-
rimento di informazioni, indipendentemente dalla particolare tipologia di oggetti considerati.
CastanoWSU cap7 18-12-2008 16:43 Pagina 66

66 Capitolo 7 Analisi e classificazione automatica di testi

ricerca di informazioni. Si tratta dunque di una disciplina che nasce prima del Web e ri-
guarda tutte le realtà in cui si ha la necessità di interrogare un generico insieme di risorse
informative, come archivi elettronici, librerie o biblioteche universitarie. I sistemi di Infor-
mation Retrieval sono stati concepiti con l’obiettivo di mediare l’interazione fra l’utente e
il corpus di documenti che egli desidera interrogare. Tipicamente, l’utente sottopone al
sistema una o più chiavi di ricerca (keyword ) che denotano il suo bisogno di informazio-
ne e il sistema, consultando il corpus, restituisce l’insieme di documenti che sono valuta-
ti come pertinenti rispetto alla richiesta.
Il problema principale dei sistemi di Information Retrieval è riuscire a conciliare ef-
ficacia ed efficienza. È evidente che l’utente desidera una risposta accurata alla propria ri-
chiesta, cioè costituita da tutti i documenti del corpus che sono rilevanti. Allo stesso mo-
do, egli desidera una risposta efficiente, cioè caratterizzata da un basso tempo di attesa (il
più breve possibile) fra la formulazione della richiesta e la ricezione del risultato. Questi
due obiettivi sono fra loro contrastanti: l’accuratezza richiederebbe al sistema di confron-
tare le chiavi di ricerca con tutti i documenti del corpus, l’efficienza di limitare il confron-
to a un sottoinsieme di documenti e possibilmente solo alle parti significative. Per questo
motivo, i sistemi di Information Retrieval eseguono operazioni di manipolazione del cor-
pus finalizzate a estrarre una rappresentazione di sintesi del contenuto informativo di cia-
scun documento e a memorizzare tali rappresentazioni in modo efficiente.
Lo schema di riferimento di un generico sistema di Information Retrieval può esse-
re sintetizzata come nella Figura 7.1.
Il sistema è articolato in quattro componenti (analisi, indicizzazione, interrogazione
e matching), ognuna con il compito di realizzare una attività specifica. Da un lato, le
componenti di analisi e indicizzazione sono invocate in corrispondenza dell’aggiunta di
nuovi documenti al sistema e alimentano l’archivio dei documenti. La componente di ana-
lisi elabora il documento originale memorizzandolo nel corpus e producendone una rap-
presentazione di sintesi. Tale rappresentazione è successivamente utilizzata dalla compo-
nente di indicizzazione per costruire una struttura di accesso efficiente (indice) ai docu-
menti della collezione. In un sistema di Information Retrieval, è importante distinguere

Figura 7.1 Schema di riferimento di un sistema di Information Retrieval.


CastanoWSU cap7 18-12-2008 16:43 Pagina 67

Information Retrieval 67

Figura 7.2 Esempio di Information Retrieval.

il corpus dall’indice dei documenti, anche se spesso i sistemi esistenti utilizzano un archi-
vio unico per memorizzare entrambi gli oggetti. Tuttavia, almeno a livello concettuale, i
due oggetti sono molto diversi: il corpus è l’insieme dei documenti inseriti nel sistema,
mentre l’indice è una struttura basata sulle rappresentazioni di sintesi dei documenti.
Dall’altro lato, l’utente interagisce con il sistema invocando la componente di interroga-
zione. In questa fase, la richiesta subisce un’elaborazione che la prepara per la componen-
te di matching. Tramite quest’ultima componente, il sistema confronta la richiesta dell’u-
tente con l’indice al fine di individuare i documenti del corpus che sono rilevanti e che
costituiranno il risultato dell’interrogazione.
A titolo di esempio, si pensi allo scenario della Figura 7.2 dove un utente è interes-
sato ad avere informazioni relative alla storia della città di Parigi (chiavi di ricerca: “sto-
ria”, “Parigi”) e consulta un archivio di documenti storici mediante un sistema di Infor-
mation Retrieval. Si noti che per favorire la leggibilità dell’esempio, la figura riporta solo
una porzione della rappresentazione di sintesi di ciascun documento nell’archivio.
Dal corpus disponibile, il sistema seleziona i seguenti testi: “Parigi, la storia di una
città e dei suoi abitanti” (documento 1), “I monumenti di Parigi” (documento 2), “La
città di Parigi nella storia d’Europa” (documento 3) e “Storia di Parigi dalle origini al no-
vecento” (documento 6). Tale selezione è il risultato del confronto fra le chiavi di ricerca
e la rappresentazione di sintesi dei documenti del corpus. È importante capire che la qua-
lità del risultato dell’interrogazione dipende da vari fattori. Sicuramente le chiavi di ricer-
ca specificate dall’utente sono molto importanti: la scelta di chiavi di ricerca che ben rap-
presentano il bisogno di informazione dell’utente favoriscono la selezione dei documenti
più rilevanti da parte della componente di matching. Allo stesso modo, le tecniche di
analisi e costruzione delle rappresentazioni di sintesi sono cruciali per l’efficacia del siste-
ma. Ne consegue che, a seconda delle tecniche utilizzate, due sistemi di Information
Retrieval possono restituire risultati diversi anche alla medesima interrogazione posta sul
medesimo corpus di documenti.
L’utente visualizza nel risultato i documenti del corpus che il sistema ha selezionato.
Egli non ha interazioni dirette con l’indice e con le rappresentazioni di sintesi che sono og-
CastanoWSU cap7 18-12-2008 16:43 Pagina 68

68 Capitolo 7 Analisi e classificazione automatica di testi

getti interni al sistema, necessari per il funzionamento delle procedure di ricerca delle infor-
mazioni. Infine, si osservi che sia in fase di analisi sia in fase di matching, il sistema può fa-
re uso di un vocabolario controllato (o thesaurus) e di altre tecniche linguistiche per migliora-
re l’efficacia del reperimento (si veda il paragrafo successivo per ulteriori dettagli).
In ambito Web, i motori di ricerca rappresentano il tipico esempio di sistema di
Information Retrieval dove il corpus di documenti è costituito dalle risorse (come pagine
web, immagini e filmati) pubblicate in rete. Tuttavia, quello del Web non è l’unico ambi-
to in cui le tecniche di Information Retrieval trovano applicazione. Basti pensare a stru-
menti come Google Desktop search ([Link] concepito per sup-
portare l’indicizzazione e la ricerca dei documenti (o file) memorizzati sull’elaboratore
personale di un utente.

Tecniche di analisi
La ricerca scientifica ha portato alla definizione di numerose tecniche connesse alle varie
attività di un sistema di Information Retrieval. Per quanto riguarda la componente di
analisi, l’obiettivo è classificare i documenti del corpus e costruire una rappresentazione
di sintesi del contenuto informativo di ciascuno di essi. Tipicamente, la rappresentazione
di sintesi di un documento consiste in una lista di termini estratti dal documento stesso
mediante tecniche di elaborazione del linguaggio naturale. Le principali tecniche di questo
tipo possono essere classificate come segue.
◆ Tecniche per l’eliminazione delle stop word. Una stop word è una particella linguistica
come una congiunzione, un articolo o una preposizione. L’eliminazione di questi
elementi non ha conseguenze sul contenuto informativo del documento, ma può ri-
durre significativamente la lunghezza del testo. Le tecniche per l’eliminazione di
stop word analizzano il testo di un documento e ne producono una versione ridotta
priva di queste particelle. Sperimentazioni su testi della lingua italiana hanno evi-
denziato che queste tecniche possono ridurre un documento fino a dimezzarne la
lunghezza.
◆ Tecniche per l’estrazione di stem. Uno stem, anche detto tema in morfologia, è la par-
te di un termine (lemma) che rimane dopo essere stata separata dalla desinenza. Ad
esempio, i termini “danzammo”, “danzatrice” e “danzante” sono riconducibili allo
stem “danza”. Il processo di estrazione di stem, conosciuto come processo di stem-
ming, consiste nell’analisi del testo di un documento e nella sostituzione di tutte le
forme derivate con il corrispondente stem. Questo procedimento favorisce l’estra-
zione di termini con elevata rappresentatività che hanno maggiori probabilità di
trovare corrispondenza con i termini specificati nelle interrogazioni degli utenti.2
◆ Tecniche per la scelta di termini con elevato potere discriminante. Queste tecniche mi-
rano a estrarre i termini che meglio rappresentano il contenuto informativo di un
documento. In genere, si tratta di tecniche statistiche basate sulla frequenza di oc-

2 Esistono vari strumenti per l’eliminazione di stop word e l’estrazione di stem, soprattutto per la lingua in-
glese. Tuttavia, sono disponibili prodotti software capaci di supportare anche la lingua italiana come ad esem-
pio lo strumento Snowball ([Link]
CastanoWSU cap7 18-12-2008 16:43 Pagina 69

Tecniche di analisi 69

correnza dei termini. L’approccio di base seleziona come rappresentanti significativi


quei termini che occorrono con maggiore frequenza all’interno di un documento
considerato. Questa tecnica è adeguata quando si considera un corpus eterogeneo
costituito da documenti relativi ad argomenti diversi. Esistono poi approcci più so-
fisticati che misurano la rappresentatività di un termine per uno specifico documen-
to valutando il rapporto tra la frequenza di occorrenza del termine nel documento e
quella del medesimo termine nell’intero corpus. Questa tecnica è adeguata quando
si considera un corpus omogeneo costituito da documenti relativi al medesimo ar-
gomento. In questo caso, i termini che ricorrono frequentemente in un documento,
ma raramente nel corpus sono considerati distintivi per quel documento.
Ciascuna tecnica può essere usata singolarmente, ma l’applicazione combinata di tecni-
che diverse può aumentare l’efficacia del processo di analisi del testo producendo rappre-
sentazioni di sintesi altamente significative. Esempi di rappresentazioni di sintesi prodot-
te con tecniche di elaborazione del linguaggio naturale sono mostrate nella Figura 7.2.
Secondo un approccio alternativo, i termini che costituiscono la rappresentazione di
sintesi di un documento sono scelti da una lista predefinita, detta vocabolario controllato
o thesaurus. Un vocabolario controllato è una raccolta di termini correlati fra loro me-
diante relazioni terminologiche. La tipica relazione terminologica utilizzata in un vocabo-
lario controllato è la sinonimia che collega due termini aventi sintassi diversa ma medesi-
mo significato, come nel caso dei termini calcolatore ed elaboratore. Altri esempi di rela-
zioni terminologiche spesso utilizzate in un vocabolario controllato sono l’iperonimia e
l’iponimia. Le relazioni di iperonimia e iponimia permettono di definire legami di specia-
lizzazione e generalizzazione sui termini del vocabolario controllato. In particolare, l’ipe-
ronimia è usata per mettere in relazione due termini in cui il secondo ha un significato
più specifico del primo (relazione di specializzazione), come per i termini calcolatore e
calcolatore portatile. L’iponimia è la relazione inversa dell’iperonimia ed è usata per met-
tere in relazione due termini in cui il secondo ha un significato più generale del primo
(relazione di generalizzazione), come per i termini calcolatore e dispositivo elettronico.
Altre relazioni terminologiche frequentemente utilizzate in un vocabolario controllato so-
no la meronimia (relazione di composizione o contenimento) e la sua relazione opposta
chiamata olonimia.
Tipicamente, un vocabolario controllato è associato a un dominio di riferimento; per
questo motivo, l’uso di strumenti di questo tipo si rivela particolarmente utile quando il
corpus dei documenti considerati proviene da un dominio specifico. Un esempio di voca-
bolario controllato per il dominio dei dispositivi elettronici è mostrato nella Figura 7.3.
Con il vocabolario controllato, il sistema tende a uniformare la terminologia usata
nelle rappresentazioni di sintesi, semplificando il compito della componente di indicizza-
zione. Tuttavia, forzando la sintesi a termini predefiniti, può capitare che essa non sia
davvero rappresentativa del contenuto informativo del documento associato.
A prescindere dall’uso di un vocabolario controllato, le tecniche di analisi possono
essere eseguite manualmente da un utente esperto associando a ogni documento una lista
di termini che ne rappresentano il contenuto informativo. L’approccio manuale è in ge-
nere poco efficace perché spesso porta a rappresentazioni poco accurate e incoerenti fra
loro. Statisticamente, risultati migliori sono ottenibili perseguendo un approccio automa-
tico in cui il sistema di Information Retrieval applica le tecniche di analisi sulla base di
una configurazione predefinita. In alternativa, si può optare per un approccio semi-
CastanoWSU cap7 18-12-2008 16:43 Pagina 70

70 Capitolo 7 Analisi e classificazione automatica di testi

Figura 7.3 Esempio di vocabolario controllato.

automatico in cui i risultati dell’analisi operata dal sistema sono sottoposti a una fase di
validazione dove l’utente può intervenire modificando le rappresentazioni dei documenti
in base alla propria conoscenza del dominio di interesse.

Tecniche di indicizzazione
I risultati dell’analisi alimentano la componente di indicizzazione che, tramite le rappre-
sentazioni di sintesi, ha il compito di costruire una struttura ausiliaria chiamata indice in
grado di garantire l’accesso e il reperimento efficiente dei documenti del corpus in base
all’interrogazione ricevuta.
Tipicamente, l’indice è costituito da una lista di coppie (ti, ri) dove ti è un termine
dell’indice e ri sono i riferimenti ai documenti del corpus collegati a ti. Nel caso in cui l’a-
nalisi sia stata eseguita mediante tecniche di elaborazione del linguaggio naturale, i termi-
ni ti dell’indice sono costituiti dai termini estratti dai documenti e usati nelle rappresen-
tazioni di sintesi. Opzionalmente, si possono utilizzare strumenti lessicali come
WordNet3 per la lingua inglese e ItalWordNet4 per la lingua italiana per costruire una
sorta di vocabolario controllato sui termini ti dell’indice. Al contrario, nel caso in cui il si-
stema utilizzi un vocabolario controllato predefinito, i termini ti dell’indice sono tutti e
soli i termini del vocabolario controllato.

3 [Link]
4 [Link]
CastanoWSU cap7 18-12-2008 16:43 Pagina 71

Tecniche di interrogazione e matching 71

Termine ti Riferimenti ri
Abitante Documento 1 (frequenza 7);
Città Documento 3 (frequenza 8);
Europa Documento 3 (frequenza 3); Documento 4 (frequenza 6);
Francia Documento 5 (frequenza 12);
Monarchia Documento 5 (frequenza 5);
Metropoli Documento 2 (frequenza 9);
Novecento Documento 6 (frequenza 5);
Parigi Documento 1 (frequenza 12); Documento 2 (frequenza 13); Documento 3
(frequenza 7); Documento 6 (frequenza 15);
Repubblica Documento 5 (frequenza 3);
Rivoluzione Documento 5 (frequenza 12);
Società moderna Documento 4 (frequenza 1)
Storia Documento 1 (frequenza 4); Documento 2 (frequenza 5); Documento 3
(frequenza 5); Documento 4 (frequenza 19); Documento 6 (frequenza 22);

Figura 7.4 Esempio di indice di un corpus di documenti.

Per ogni termine ti, i riferimenti ri possono essere costituiti semplicemente dalla li-
sta di documenti del corpus in cui ti compare. Alcune tecniche di indicizzazione memo-
rizzano in ri non solo il riferimento al documento, ma anche la frequenza di occorrenza
del termine ti al suo interno. Questi dati possono essere utilizzati dalla componente di
matching in fase di valutazione del livello di rilevanza di ciascun documento rispetto alle
interrogazioni. Un esempio di indice (parziale) relativo al caso di studio della Figura 7.2
è mostrato nella Figura 7.4.
In approcci più sofisticati, ri può contenere informazioni ulteriori. Ad esempio, ai
dati sulla frequenza di occorrenza del termine ti possono essere associate informazioni re-
lative alla parte del documento in cui il termine ti è presente e la vicinanza nel testo di al-
tri termini dell’indice.

Tecniche di interrogazione e matching


Le componenti di interrogazione e matching hanno il compito di elaborare le interroga-
zioni degli utenti facendo uso dell’archivio dei documenti preparato con l’analisi e l’indi-
cizzazione. In questo senso, la componente di interrogazione funge da interfaccia del si-
stema di Information Retrieval e permette all’utente di formulare le proprie richieste
espresse in termini di chiavi di ricerca. Tipicamente, l’interfaccia di interrogazione per-
mette all’utente di specificare una lista di chiavi di ricerca da intendersi come condizioni
congiuntive. Questo significa che, affinché un documento sia restituito nel risultato, è
necessario che il sistema trovi almeno una corrispondenza per ciascuna chiave specificata.
In sistemi più sofisticati, l’interfaccia supporta anche l’inserimento di condizioni disgiun-
CastanoWSU cap7 18-12-2008 16:43 Pagina 72

72 Capitolo 7 Analisi e classificazione automatica di testi

tive in cui è sufficiente una corrispondenza per almeno una chiave di ricerca affinché un
documento sia incluso nel risultato.
Le chiavi di ricerca inserite dall’utente possono essere sottoposte a una fase iniziale
di normalizzazione che porta alla definizione della lista di termini su cui sarà effettiva-
mente eseguita la ricerca. Le tecniche di normalizzazione eseguono operazioni preparato-
rie alla fase di matching e possono riguardare operazioni molto basilari, come l’elimina-
zione di eventuali spazi superflui e segni di interpunzione, ma anche procedimenti più ar-
ticolati, come l’eliminazione di stop word e l’estrazione di stem.
In seguito, le chiavi di ricerca che costituiscono l’interrogazione sono passate alla
componente di matching che si occupa concretamente di individuare i documenti che
costituiranno il risultato. Concettualmente, il procedimento è basato sul confronto di
ogni chiave di ricerca kj con tutti i termini ti che compongono l’indice dei documenti
(anche se esistono meccanismi di ottimizzazione che permettono di ridurre il numero di
confronti senza perdere qualità). Esistono numerose tecniche per eseguire questi confron-
ti, le più intuitive sono chiamate tecniche di matching esatto perché il confronto fra due
termini th e tk è positivo se e solo se th = tk. Queste tecniche sono semplici ma non molto
efficaci perché non sono in grado di rilevare la corrispondenza fra termini simili (ad
esempio “cittadella” e “cittadina”) o legati da relazioni terminologiche come la sinonimia
(ad esempio “città” e “centro urbano”) e l’iperonimia (ad esempio “metropoli” e “centro
urbano”). Per questo motivo, le tecniche di confronto più diffuse sono chiamate tecniche
di matching per similarità e sono caratterizzate dal fatto che il risultato del confronto fra
due termini th e tk non è un valore booleano (sì/no) come nelle tecniche di matching esat-
to, ma è un valore numerico che indica la similarità fra th e tk. Le tecniche di matching
per similarità possono essere classificate come segue.
◆ Tecniche sintattiche. Si tratta di tecniche basate sul confronto delle stringhe di testo
che compongono i termini considerati. Appartengono a questa categoria tecniche
quali la distanza di editing che valuta la similarità di due termini th e tk in funzione
del numero di caratteri che è necessario modificare per trasformare th in tk: minore è
il numero di modifiche, maggiore è il livello di similarità fra th e tk. Ad esempio, con
la distanza di editing, termini come “cittadella” e “cittadina” risultano molto simili
dal momento che la loro distanza di editing è tre, ovvero è sufficiente modificare tre
caratteri per trasformare il primo termine nel secondo.
◆ Tecniche linguistiche. Si tratta di tecniche basate sull’uso di strumenti linguistici per
valutare la similarità fra due termini. Appartengono a questa categoria le tecniche
che fanno uso di thesauri, secondo le quali la similarità fra due termini th e tk è mi-
surata considerando la (eventuale) relazione terminologica esistente fra i due. Alle
diverse tipologie di relazione terminologica (quali sinonimia, iperonimia, iponimia)
corrisponde un differente livello di similarità che esprime l’intensità della corrispon-
denza fra i due termini. Ad esempio, alla sinonimia corrisponderà un livello di simi-
larità massimo, seguita dall’iperonimia/iponimia, dalla meronimia e quindi da tutte
le altre relazioni terminologiche. Tecniche di questo tipo possono utilizzare il voca-
bolario controllato del sistema (se definito) per supportare il confronto di similarità
fra una chiave di ricerca e i termini dell’indice. Ad esempio, la similarità fra i termi-
ni “città” e “centro urbano” è molto elevata in virtù della relazione di sinonimia esi-
stente fra i due, mentre la similarità fra i termini “metropoli” e “centro urbano” è
minore, motivata dalla relazione di iperonimia.
CastanoWSU cap7 18-12-2008 16:43 Pagina 73

Valutazione dei risultati di una ricerca 73

Ognuna di queste tecniche di matching può essere utilizzata in modo indipendente, ma


la combinazione di tecniche diverse, anche appartenenti a categorie differenti, può con-
tribuire a ottenere risultati più accurati. Il procedimento di confronto produce una lista
di corrispondenze fra le chiavi di ricerca e i termini dell’indice del corpus, spesso correda-
ti da un valore di similarità se le tecniche di matching utilizzate lo prevedono.
Il risultato dell’interrogazione è composto da una lista di documenti con associato un
valore di rilevanza. In genere, il valore di rilevanza di un documento è funzione dei valori
di similarità fra le chiavi di ricerca dell’interrogazione e i termini dell’indice presenti nella
rappresentazione di sintesi del documento: più elevata è la similarità e più elevata è la rile-
vanza del documento. I documenti che non raggiungono un livello di rilevanza minimo
previsto dal sistema sono scartati e non sono inseriti nel risultato dell’interrogazione.
A titolo di esempio, consideriamo l’archivio di documenti mostrato nella Figura 7.2
e un’interrogazione composta dalle chiave di ricerca “Parigi” e “centro urbano”. Con tec-
niche di matching esatto e tecniche sintattiche, è rilevata la corrispondenza fra la chiave di
ricerca “Parigi” e il termine “Parigi” presente nell’indice che comporta la selezione di Do-
cumento 1, Documento 2, Documento 3 e Documento 6. Con tecniche linguistiche, è ri-
levata la corrispondenza fra “centro urbano” e i termini “città” (relazione di sinonimia) e
"metropoli" (relazione di iperonimia) che comportano la selezione di Documento 2 e Do-
cumento 3. Si noti che solo Documento 2 e Documento 3 sono inclusi nel risultato per-
ché possiedono una corrispondenza con entrambe le chiavi di ricerca. Inoltre, si osservi
che la rilevanza di Documento 3 è superiore a quella di Documento 2 perché la similarità
fra “centro urbano” e “città” è superiore alla similarità fra “centro urbano” e “metropoli”.
In approcci più sofisticati, la rilevanza di un documento può essere calcolata consi-
derando informazioni aggiuntive presenti nell’indice. Ad esempio, è possibile considerare
la frequenza di occorrenza dei termini dell’indice per aumentare la rilevanza dei docu-
menti in cui le chiavi di ricerca sono presenti ripetutamente.

Valutazione dei risultati di una ricerca


Considerando l’esempio della Figura 7.2, notiamo che nel risultato della richiesta di do-
cumenti relativi alla storia di Parigi compaiono sia testi strettamente inerenti all’oggetto
come “Storia di Parigi dalle origini al novecento”, sia testi con un legame meno evidente
come “I monumenti di Parigi”.
Inoltre, osserviamo che nel corpus sono presenti testi come “Manuale di storia mo-
derna” e “La rivoluzione francese” che sono esclusi dal risultato pur essendo pertinenti al-
l’interrogazione. Questo comportamento evidenzia come il risultato di un’interrogazione
prodotto da un sistema di Information Retrieval possa essere incompleto e non sempre
corretto. Questo aspetto distingue i sistemi di gestione di basi di dati dai sistemi di Infor-
mation Retrieval. In una base di dati, le interrogazioni hanno sempre un risultato com-
pleto, corretto e determinabile a priori in base alle tuple memorizzate. Queste proprietà
non sono garantite dai sistemi di Information Retrieval. Per questo motivo, sono state de-
finite tecniche che permettono di valutare la qualità dei risultati prodotti da sistemi di
questo tipo.
Data un’interrogazione I, possiamo suddividere i documenti del corpus in due sot-
toinsiemi: l’insieme dei documenti rilevanti e l’insieme dei documenti non rilevanti. Allo
CastanoWSU cap7 18-12-2008 16:43 Pagina 74

74 Capitolo 7 Analisi e classificazione automatica di testi

Documenti rilevanti Documenti non rilevanti


Documenti reperiti A – documenti reperiti e rilevanti B – documenti reperiti ma
non rilevanti (falsi positivi)
Documenti non C – documenti non reperiti, ma D – documenti non reperiti e
reperiti rilevanti (falsi negativi) non rilevanti

Figura 7.5 Classificazione di un corpus di documenti rispetto a un’interrogazione I e a un sistema


di Information Retrieval IR.

stesso modo, data la medesima interrogazione I e un sistema di Information Retrieval IR,


possiamo suddividere i documenti del corpus in due sottoinsiemi: l’insieme dei documen-
ti reperiti e l’insieme dei documenti non reperiti. Combinando le precedenti classificazio-
ni, il corpus di documenti può essere suddiviso nei seguenti sottoinsiemi (Figura 7.5):
◆ l’insieme A dei documenti reperiti da IR e rilevanti rispetto a I
◆ l’insieme B dei documenti reperiti da IR, ma non rilevanti rispetto a I
◆ l’insieme C dei documenti non reperiti da IR, ma rilevanti rispetto a I
◆ l’insieme D dei documenti non reperiti da IR e non rilevanti rispetto a I.
L’insieme B è chiamato anche insieme dei falsi positivi perché contiene documenti del
corpus che il sistema IR restituisce all’utente come rilevanti per I anche se non lo sono.
Analogamente, C è chiamato insieme dei falsi negativi dal momento che il sistema IR li
classifica non rilevanti rispetto a I anche se in realtà lo sono. È evidente che il comporta-
mento ottimo di IR si ha quando l’insieme A coincide con l’insieme dei documenti rile-
vanti. In tal senso, l’efficacia del sistema IR può essere valutata considerando il numero di
documenti reperiti e rilevanti (A) rispetto al numero di documenti reperiti ma non rile-
vanti (B) e al numero di documenti non reperiti, ma rilevanti (C). A tal scopo, sono sta-
ti introdotti i seguenti coefficienti per la valutazione dei risultati di un sistema di Infor-
mation Retrieval.

Precision (P): misura la precisione del sistema IR, cioè il rapporto fra il numero di docu-
menti reperiti e rilevanti (A) e il totale dei documenti reperiti (A + B):
A
P=
A+B

Recall (R): misura l’accuratezza del sistema IR , cioè il rapporto fra il numero di docu-
menti reperiti e rilevanti (A) e il totale dei documenti rilevanti (A + C):
A
R=
A +C
Precision e recall hanno 1 come valore massimo che corrisponde al comportamento otti-
male del sistema IR, cioè il risultato dell’interrogazione contiene tutti e soli i documenti
CastanoWSU cap7 18-12-2008 16:43 Pagina 75

Considerazioni 75

rilevanti. Quando P < 1, il sistema IR restituisce nel risultato documenti non rilevanti che
l’utente dovrà riconoscere e ignorare, mentre quando R < 1, il sistema IR omette di resti-
tuire nel risultato documenti rilevanti che l’utente non avrà modo di visualizzare e con-
sultare.
Nell’esempio della Figura 7.2, l’insieme dei documenti reperiti e rilevanti (A) è
composto da “Storia di Parigi e dei suoi abitanti”, “La città di Parigi nella storia d’Euro-
pa” e “Storia di Parigi dalle origini al novecento”, l’insieme dei documenti reperiti ma
non rilevanti (B) è composto da “I monumenti di Parigi” e l’insieme dei documenti non
reperiti, ma rilevanti (C) è composto da “Manuale di storia moderna” e “La rivoluzione
francese”. Ne risulta che precision e recall corrispondono a:
A 3 A 3
P= = = 0, 75 R= = = 0, 6
A + B 3+1 A +C 3+ 2
Osserviamo che precision e recall di un singolo sistema IR non permettono di fare con-
siderazioni molto significative. Questi valori sono decisamente più interessanti quando si
hanno a disposizione diversi sistemi di Information Retrieval, al fine di compararne i ri-
sultati e determinare quale presenta il comportamento migliore. In generale, si può asse-
rire che un sistema di Information Retrieval con valori elevati sia per la precision sia per
la recall è da preferire a un sistema con risultati eccellenti solo rispetto a una delle due
misure.

Considerazioni
Come abbiamo visto, il risultato di una ricerca con un sistema di Infomation Retrieval
può essere parziale (per via dei falsi negativi) e contenere documenti non pertinenti ri-
spetto alla richiesta (per via dei falsi positivi). A causa di ciò, potremmo pensare che i si-
stemi di Information Retrieval rappresentino una soluzione meno efficace rispetto ai si-
stemi di gestione di basi di dati dove completezza e correttezza sono proprietà garantite.
In verità, si tratta di tecnologie ugualmente valide ma differenti sia per finalità sia per ca-
ratteristiche e granularità degli oggetti considerati (Figura 7.6).
Come è stato discusso nei precedenti capitoli, una base di dati è in grado di memo-
rizzare dati strutturati, rigidamente organizzati in tabelle e relazioni fra tabelle. Questo li-

Sistema di gestione di basi di dati Sistema di Information Retrieval


Oggetti considerati Dati strutturati Dati non strutturati o
semi-strutturati
Interfaccia di Basata su comandi SQL Basata su lista di chiavi di ricerca
interrogazione
Granularità dei Tuple di valori Interi documenti
risultati

Figura 7.6 Confronto fra sistemi di gestione di basi di dati e sistemi di Information Retrieval.
CastanoWSU cap7 18-12-2008 16:43 Pagina 76

76 Capitolo 7 Analisi e classificazione automatica di testi

vello di strutturazione non è possibile in un sistema di Information Retrieval, dove spes-


so omogeneità e struttura degli oggetti considerati non sono noti a priori. Tipicamente, i
documenti del corpus di un sistema di Information Retrieval sono del tutto privi di strut-
turazione (cioè non strutturati) o al massimo caratterizzati da un livello di strutturazione
essenziale composto da alcuni metadati (ad esempio autore e titolo). In qualche caso, la
strutturazione è presente ma può variare da un documento all’altro, si parla in questo ca-
so di documenti semi-strutturati. L’assenza e la variabilità di struttura nei documenti del
corpus rendono arduo l’utilizzo di un sistema di gestione di basi di dati a causa delle dif-
ficoltà che si dovrebbero affrontare sia per la definizione dello schema, sia per il popola-
mento della base di dati.
Dal punto di vista dell’interazione con l’utente, le basi di dati prevedono la presenza
di applicazioni di interfaccia (spesso di tipo grafico per favorire l’usabilità anche da parte di
utenti meno esperti) in cui le operazioni di manipolazione e interrogazione dei dati sono
predefinite o comunque limitate. In alternativa, è possibile interagire con una base di dati
in modo più flessibile mediante interfacce che permettono di specificare direttamente co-
mandi in linguaggio SQL, anche se quest’ultima è una possibilità riservata a utenti esper-
ti. Al contrario, l’interfaccia dei sistemi di Information Retrieval è generalmente semplice
e intuitiva dal momento che si basa su interrogazioni costituite da liste di chiavi di ricerca.
Anche quando sono supportate opzioni di ricerca avanzate, l’interfaccia di questi sistemi è
facilmente utilizzabile da ogni categoria di utenti, esperti e meno esperti.
Infine, notiamo che sistemi di gestione delle basi di dati e sistemi di Information Re-
trieval si differenziano anche per la granularità dei risultati delle interrogazioni. Nel caso
delle basi di dati, i risultati sono costituiti da insiemi di tuple con struttura omogenea, ma
variabile a seconda dell’interrogazione. Da questo punto di vista, le capacità di un sistema
di Information Retrieval garantiscono minore flessibilità: la granularità del risultato è sem-
pre l’intero documento e non è possibile costruire il risultato selezionando direttamente
porzioni di documenti in base alla rilevanza rispetto all’interrogazione considerata.
In definitiva, possiamo affermare che non è possibile determinare a priori quale sia
la scelta più adeguata fra sistemi di gestione di basi di dati e sistemi di Information
Retrieval. Come è stato discusso, le due soluzioni presentano proprietà ortogonali e la
scelta deve essere operata in base a una valutazione che dipende da vari fattori come l’am-
bito applicativo, la tipologia di dati considerati e il grado di preparazione degli utenti che
utilizzeranno il sistema.
CastanoWSU cap8 18-12-2008 16:44 Pagina 77

Capitolo 8

Architettura e standard per il Web

Web è il termine della lingua inglese con cui comunemente si identifica la rete Internet
(web significa appunto “rete”). In verità, i due termini indicano oggetti sostanzialmente
diversi. Quando si parla di rete Internet, si fa riferimento all’infrastruttura di quella che
oggi è la più grande rete telematica mondiale, tramite la quale sono interconnesse diverse
centinaia di milioni di calcolatori distribuiti in tutto il pianeta. In altre parole, Internet è
l’insieme dei mezzi di trasmissione, degli apparati di comunicazione e degli elaboratori
(detti host) che costituiscono fisicamente la rete. Al contrario, quando si parla di Web, o
meglio di World Wide Web o WWW, si fa riferimento a un servizio della rete Internet che
consente la pubblicazione e la condivisione di contenuti. Il Web non è l’unico servizio di
Internet, ma è probabilmente il più diffuso e comunemente utilizzato. Tale successo è at-
tribuirsi alla semplicità e all’immediatezza degli strumenti su cui è costruito: il protocollo
HTTP e il linguaggio HTML.

Breve storia di Internet e del World Wide Web


Come possiamo vedere nello schema della Figura 8.1, si inizia a parlare di Internet nel 1982
quando la rete già contava alcune centinaia di nodi distribuiti in due continenti (America

Figura 8.1 Breve storia di Internet e del Web.


CastanoWSU cap8 18-12-2008 16:44 Pagina 78

78 Capitolo 8 Architettura e standard per il Web

ed Europa). Tuttavia, il progetto iniziale di una rete telematica decentrata che consentisse la
comunicazione fra un insieme di individui dislocati in postazioni geograficamente remote
risale agli anni ’60. In particolare, è del 1969 il progetto ARPANET del Dipartimento del-
la difesa statunitense che, in un momento storico caratterizzato da una forte competizione
tecnologica fra USA e URSS, prevedeva la realizzazione di una rete capace di garantire la
continuità delle comunicazioni strategiche anche in caso di disastro nucleare.
Uno dei principi progettuali che caratterizzava la rete ARPANET, rimasto inaltera-
to anche nell’attuale rete Internet, era la ridondanza delle connessioni fra i vari nodi del-
la rete. Questo era mirato a garantire che, anche in caso di guasto dovuto all’eliminazio-
ne di un nodo o all’interruzione della connettività fra più nodi, la rete fosse comunque in
grado di continuare a funzionare per i rimanenti nodi attivi.
Alla sua nascita, la rete ARPANET connetteva mediante linea telefonica quattro
elaboratori appartenenti ad altrettante università americane: Stanford University, Univer-
sity of California at Los Angeles (UCLA), University of California at Santa Barbara
(UCSB) e University of Utah. Grazie al successo dell’esperimento iniziale, la rete crebbe
molto rapidamente sia in termini di numerosità degli host collegati sia in termini di
estensione geografica. Infatti, nel 1973, Gran Bretagna e Norvegia si unirono ad ARPA-
NET aggiungendo due nuovi elaboratori e realizzando con la prima dorsale di telecomu-
nicazione transoceanica. Nei primi anni ’80, l’espansione della rete raggiunse un ritmo di
crescita esponenziale e arrivò in Italia dove, nel 1986, un elaboratore del Centro Naziona-
le delle Ricerche (CNR) fu il primo nodo italiano collegato alla rete Internet.
Per la nascita del Web, bisogna comunque aspettare il 1991, quando, presso i labo-
ratori di ricerca del CERN (Consiglio Europeo per la Ricerca Nucleare) di Ginevra, il ri-
cercatore Tim Berners-Lee pubblicò la prima pagina web. L’obiettivo del CERN era defi-
nire un insieme di standard e di protocolli in grado di supportare lo scambio di
documenti su una rete di calcolatori. Furono proposti il protocollo HTTP e il linguaggio
HTML, sulla base dei quali, nel 1993, fu diffuso Mosaic, il primo browser grafico per la
navigazione su Web. Mosaic era un programma software molto semplice con due funzio-
nalità essenziali: gestione della comunicazione fra due nodi mediante HTTP e scambio/
visualizzazione di pagine web scritte in linguaggio HTML.
Negli anni successivi fino ai nostri giorni, Internet e Web sono andate progressiva-
mente consolidandosi. La densità e la diffusione dei nodi a livello planetario ha portato a
definire Internet come la rete globale. Il merito di questo successo è in gran parte da attri-
buire all’impressionante sviluppo tecnologico di cui Internet è stata protagonista. Le cre-
scenti capacità di calcolo dei moderni elaboratori e la disponibilità di mezzi di trasmissio-
ne sempre più potenti ha permesso lo sviluppo di servizi sempre più ricchi e sofisticati,
quali ad esempio la messaggistica istantanea, la compravendita di oggetti e la diffusione in
diretta di filmati televisivi. È proprio questo continuo processo di evoluzione tecnologica
che spinge il Web verso nuove e ambiziose frontiere come il Web 2.0 e il Semantic Web.

Struttura e funzionamento della rete Internet


Internet si presenta come una rete geografica (o WAN, Wide Area Network) che si estende
a livello planetario e consente l’interconnessione (internetworking) di host o sistemi di
host appartenenti a organizzazioni diverse. Per questo motivo, la rete Internet è comune-
mente definita una rete di reti dove i collegamenti fra i nodi sono realizzati mediante
CastanoWSU cap8 18-12-2008 16:44 Pagina 79

Struttura e funzionamento della rete Internet 79

Figura 8.2 Esempio di schema della rete Internet.

strutture fisiche e mezzi di trasmissione di vario tipo (ad esempio fibra ottica, cavo coas-
siale, collegamento satellitare, doppino telefonico, collegamenti in radiofrequenza) ma
senza seguire una struttura uniforme. Spesso accade che gli host appartenenti alla mede-
sima organizzazione siano disposti in una sottorete dove i collegamenti seguono uno
schema regolare (ad esempio, lineare, ad anello, a stella). La sottorete è a sua volta inseri-
ta in Internet collegando uno (o più) host con altri elaboratori appartenenti ad altre sot-
toreti come avviene nello schema della Figura 8.2.
In questo esempio, la sottorete S1 è un tipico esempio di sistema terminale (ad esem-
pio una sottorete aziendale) dove l’accesso alla rete Internet da parte degli elaboratori av-
viene tramite un unico host chiamato gateway (porta di accesso). Il gateway funge da pas-
saggio obbligato per tutto il traffico fra gli host di S1 e gli host di Internet esterni a S1.
Nell’esempio, si nota che la struttura di S3 è molto diversa da quella di S1. Questo perché
S3 è un sistema di interconnessione. In Internet, esistono sottoreti come S3 il cui scopo è ga-
rantire la connettività fra gli host appartenenti a sottoreti diverse. Nel nostro caso, S3 co-
stituisce la dorsale di comunicazione che permette agli host di S1 di comunicare con gli
host di S2, S4, S5. Supponiamo che l’host A di S1 voglia comunicare con l’host B di S2 per
inviare il messaggio m1. La sottorete S1 è in grado di portare il messaggio fino al gateway
di S1 (host H). Come mostrato nella Figura 8.2, dal gateway esistono vari percorsi che per-
mettono di portare m1 fino al nodo B. Compito degli host di S3 è instradare, cioè scegliere
il percorso tramite il quale m1 possa arrivare fino al gateway di S2 (host K) e quindi al de-
stinatario B. Proprio per questo ruolo di instradamento, gli host di S3 sono chiamati rou-
ter (instradatori). Ogni router di S3 che riceve m1 sceglie il nodo a cui inoltrare il messag-
gio tenendo conto di vari fattori come la velocità del mezzo di trasmissione e la
congestione delle varie tratte disponibili fra un host e l’altro. Per garantire l’efficienza e lo
sfruttamento ottimale dei collegamenti, in caso di sottoreti complesse e variamente inter-
connesse, i router utilizzano tabelle di instradamento in cui sono memorizzate informa-
zioni sulle tratte migliori per raggiungere i vari host.
CastanoWSU cap8 18-12-2008 16:44 Pagina 80

80 Capitolo 8 Architettura e standard per il Web

Visto che le condizioni di traffico possono cambiare anche in modo improvviso, non
è detto che i messaggi fra due host seguano sempre il medesimo percorso. Sui router sono
installati appositi protocolli di routing come OSPF, RIP e BGP che determinano le regole
mediante le quali le tabelle di instradamento sono costruite e periodicamente aggiornate.

Indirizzamento degli elaboratori


Ogni host collegato alla rete Internet possiede un indirizzo univoco chiamato indirizzo
IP. Tale indirizzo è un numero di 32 cifre binarie (cioè 32 bit) ed è utilizzato sulla rete per
identificare il destinatario di un messaggio e fare in modo che le operazioni di recapito
possano essere eseguite correttamente. Convenzionalmente, i 32 bit di un indirizzo IP so-
no suddivisi in quattro campi da otto bit ciascuno, ne risulta che un indirizzo IP è com-
posto da quattro ottetti di bit. Per comodità, i 32 bit sono rappresentati mediante quat-
tro numeri decimali in notazione puntata, dove ogni decimale corrisponde alla
conversione di un ottetto come nell’esempio della Figura 8.3.
Per garantire l’univocità, l’assegnazione degli indirizzi IP avviene in modo centraliz-
zato a opera di enti appositi. Inizialmente l'autorità preposta era IANA (Internet
Assigned Number Authority), poi sostituita nel 1998 con ICANN (Internet Corporation
for Assigned Names and Numbers) che è tuttora in funzione.
L’uso di 32 bit comporta la disponibilità di 232 = [Link] di indirizzi IP che
rappresentano il numero massimo di host indirizzabili sulla rete. Questo spazio di indiriz-
zamento è ormai inadeguato se consideriamo le attuali dimensioni della rete Internet in
termini di numerosità degli host esistenti. Una soluzione a questo problema è rappresen-
tata dal meccanismo NAT (Network Address Translation) che permette di “risparmiare”
indirizzi IP quando gli elaboratori appartengono alla medesima sottorete. Come nell’e-
sempio della Figura 8.4, in una sottorete S1, solo il gateway H è direttamente collegato a
Internet ed è visibile all’esterno di S1.
Per questo motivo, solo H necessita di un indirizzo IP univoco sulla rete Internet.
Con NAT, quando l’host A della sottorete S1 intende inviare il messaggio m1 a un host B
esterno alla sottorete S1, la comunicazione passa attraverso il gateway H che la “maschera”
come una propria richiesta utilizzando il proprio indirizzo IP. In altri termini, anche se la
comunicazione è iniziata dall’host A, per gli host esterni la richiesta risulta provenire dal
gateway H. Gli host di una sottorete devono comunque possedere un indirizzo IP univo-
co all’interno della sottorete per supportare le comunicazioni interne (comunicazioni
intranet). Tuttavia, si noti che il medesimo indirizzo IP può essere utilizzato da host diver-

Figura 8.3 Esempio di indirizzo IP.


CastanoWSU cap8 18-12-2008 16:44 Pagina 81

DNS e struttura dei domini 81

Figura 8.4 Esempio di indirizzamento su Internet.

si in sottoreti distinte come per i nodi A e R della Figura 8.4. Questo non rappresenta un
problema di identificazione, dal momento che i due elaboratori non hanno la possibilità
di comunicare fra loro se non previo mascheramento tramite i rispettivi gateway. Inoltre,
il gateway H, essendo collegato a entrambe le sottoreti S1 e S3, possiede due indirizzi IP. Il
primo indirizzo, [Link], identifica l’host H all’interno della sottorete S1. Il secondo,
[Link], è l’indirizzo IP che identifica l’host H sulla rete Internet. Nel nostro
esempio, il nodo A è il mittente del messaggio m1 che deve raggiungere il nodo B. Fuori da
S1, il mittente del messaggio è sostituito con l’indirizzo IP del gateway H. Il nodo B riceve
la richiesta, ma utilizzerà l’indirizzo IP del gateway H come destinatario del messaggio di
risposta. Ricevendo la risposta, il gateway H inoltrerà il messaggio al mittente originario,
cioè l’host A utilizzando l’indirizzo [Link]. NAT è un meccanismo efficace e im-
mediato, dal momento che non richiede alcun aggiornamento degli apparati e del
software di rete. Tuttavia, si tratta di un accorgimento “provvisorio” visto che il numero
di host direttamente connessi a Internet rischia comunque di saturare lo spazio di indiriz-
zamento molto rapidamente. Un soluzione più duratura, ma che richiede maggiori sforzi
economici e tecnici è IPv6. Pensato come un’evoluzione dell’attuale meccanismo di indi-
rizzamento a 32 bit, IPv6 prevede l’uso di 128 bit per rappresentare l’indirizzo di un ho-
st. Questo significa che esso è in grado di indirizzare 2128 host. Per comprendere le di-
mensioni del nuovo spazio di indirizzamento, basti pensare che con IPv6 esisteranno più
indirizzi IP che granelli di sabbia in tutte le spiagge del mondo. Questo renderà tecnica-
mente possibile l’indirizzamento (e quindi il collegamento alla rete Internet) di qualsiasi
tipologia di apparecchio elettronico (come ad esempio telefoni cellulari, automobili ed
elettrodomestici). IPv6 sta lentamente prendendo il posto dell’attuale versione a 32 bit
nota con il nome di IPv4. La difficoltà di migrazione delle attuali strutture di rete verso
IPv6 sono il principale motivo per cui il nuovo meccanismo di indirizzamento stenta ad
affermarsi definitivamente e IPv4 continua a essere utilizzato.

DNS e struttura dei domini


È chiaro che per poter contattare un host è necessario conoscere il corrispondente indiriz-
zo IP. Per semplificare la memorizzazione e l’uso degli indirizzi da parte degli utenti, un
CastanoWSU cap8 18-12-2008 16:44 Pagina 82

82 Capitolo 8 Architettura e standard per il Web

host può associare un indirizzo simbolico al proprio indirizzo IP come nella Figura 8.3,
dove l’indirizzo simbolico [Link] è associato all’indirizzo numerico
[Link]. L’indirizzo simbolico è comunque ignorato dalla rete che utilizza solo
l’indirizzo IP binario per gestire le comunicazioni e propagare i messaggi. Questo signifi-
ca che quando un utente richiede la connessione con un host specificandone l’indirizzo
simbolico, la rete deve essere in grado di ricostruire l’indirizzo IP associato per poter av-
viare la comunicazione. La “risoluzione” di un indirizzo simbolico nel corrispondente in-
dirizzo IP numerico è eseguita invocando un servizio chiamato DNS (Domain Name
System). DNS è costituito da una base di dati distribuita in cui sono memorizzate le cor-
rispondenze fra indirizzi simbolici e numerici di tutti gli host della rete Internet. La base
di dati è distribuita nel senso che il contenuto è ripartito su un insieme di host detti serv-
er DNS organizzati in modo gerarchico in base alla nozione di nome di dominio.
Un nome di dominio è un descrittore simbolico che identifica un gruppo di host
appartenenti a una rete logica di elaboratori. Un dominio può contenere uno o più sotto-
domini, ognuno caratterizzato da un proprio nome. Non esiste un limite massimo al nu-
mero di livelli di sotto-dominio ammissibili: il grado di strutturazione di un dominio di-
pende dalla complessità e dall’articolazione della rete considerata. In un dominio che non
è ulteriormente strutturato (non possiede sotto-domini), ogni host deve possedere un no-
me identificativo univoco. Ad esempio, il termine unimi è un nome di dominio e identi-
fica l’insieme degli host appartenenti alla rete dell’Università degli Studi di Milano. Al-
l’interno di unimi esiste il sotto-dominio dico che identifica gli host appartenenti al
Dipartimento di Informatica e Comunicazione. Non avendo sotto-domini, gli host del
dominio dico sono identificati univocamente dal loro nome, come nel caso di islab.
L’indirizzo simbolico di un host è espresso in notazione puntata ed è determinato
dalla concatenazione dei domini in cui esso è inserito. L’indirizzo è composto da destra a
sinistra a partire dal dominio di primo livello e rispettando la gerarchia dei livelli fino ad
arrivare al nome dell’host. Nella Figura 8.3, [Link] è l’indirizzo simboli-
co dell’host islab precedentemente descritto. In questo esempio, notiamo che il dominio
unimi è inserito nel dominio it. I domini di questo tipo sono definiti domini di primo
livello (top-level ) e sono distinti in due categorie: domini nazionali di primo livello e do-
mini generici di primo livello.
Un dominio nazionale di primo livello è associato a uno specifico paese ed è costi-
tuito da due caratteri (it è il codice riservato all’Italia). Dell’assegnazione e della gestione
dei domini nazionali di primo livello si occupa ICANN che delega a ogni paese la gestio-
ne del proprio dominio. In Italia, l’ente preposto a questo compito è il registro del
CCTLD (Country-Code Top-Level Domain) che a sua volta possiede vari concessionari
privati con il compito di gestire le richieste di assegnazione di dominio da parte degli
utenti, sia privati che commerciali.
Un dominio generico di primo livello è associato a una specifica tipologia di orga-
nizzazioni ed è costituito da tre o più caratteri. Alcuni esempi di domini generici di pri-
mo livello sono riportati nella Tabella 8.1.
Per ogni dominio generico è previsto un organismo internazionale incaricato di ge-
stire le assegnazioni di nuovi domini agli utenti che ne fanno richiesta. In alcuni casi, un
dominio generico di primo livello può limitare la concessione di domini solo a organizza-
zioni in possesso di determinati requisiti (è il caso ad esempio del dominio mil), ma nel-
la maggior parte dei casi non sono previste limitazioni nella concessione di domini appar-
tenenti alle categorie generiche.
CastanoWSU cap8 18-12-2008 16:44 Pagina 83

Protocolli di comunicazione 83

Dominio Descrizione
.com Riservato a organizzazioni di tipo commerciale. È molto utilizzato in tutto il mondo.
.edu Riservato a scuole, università ed enti che si occupano di istruzione in generale.
È utilizzato quasi esclusivamente da organizzazioni statunitensi.
.gov Riservato a enti governativi e ministeriali. È utilizzato quasi esclusivamente
da organizzazioni statunitensi.
.mil Riservato alle strutture militari statunitensi.
.org Riservato alle organizzazioni che non rientrato in alcuna categoria per cui esiste
un apposito dominio di primo livello.

Tabella 8.1 Esempi di domini generici di primo livello.

Protocolli di comunicazione
La comunicazione sulla rete Internet è di tipo gerarchico ed è basata sul modello
client/server. Questo significa che nell’interazione fra due nodi della rete è prevista la pre-
senza di due figure: quella di un nodo client che fa richiesta di un servizio e quella di un
nodo server che eroga il servizio richiesto. Ad esempio, pensiamo al caso di un utente
(client) che vuole acquistare un pacchetto vacanza per un’isola tropicale tramite il sito
web di una compagnia turistica (server). Affinché l’acquisto possa concludersi corretta-
mente, è necessario stabilire una connessione fra client e server. Consideriamo che per co-
me è strutturata la rete Internet, i due nodi possono appartenere a sottoreti molto distan-
ti in termini di host da attraversare. Per questo motivo, la gestione delle questioni legate
alla comunicazione fra client e server sono cruciali per la buona riuscita dell’acquisto. In
particolare, è necessario che la rete si prenda carico dell’indirizzamento e dell’instrada-
mento dei messaggi, facendo in modo che le richieste del client siano recapitate al server
e le successive risposte siano restituite al client. Inoltre, deve esistere un meccanismo ca-
pace di gestire la presenza di eventuali ritardi o errori nella trasmissione dei messaggi. In-
fine, una volta stabilita la connessione fra client e server, sono necessarie regole che per-
mettano di disciplinare lo scambio di messaggi fra i due nodi. Tutte questi aspetti sono
regolati sulla rete Internet da protocolli di comunicazione.
La definizione di un unico protocollo che realizzi tutte le sopracitate funzionalità è
sconsigliata. Basti pensare che anche una banale modifica alla gestione di un singolo
aspetto di comunicazione comporterebbe l’aggiornamento dell’intero protocollo.
Per limitare la complessità di progettazione, i protocolli di comunicazione sono or-
ganizzati in una struttura multi-livello (detta pila) in cui ogni livello assolve una specifica
funzionalità. Per la gestione delle comunicazione in una rete di elaboratori, l’Organizza-
zione Internazionale per la Standardizzazione (ISO) ha definito una pila di protocolli
standard chiamata OSI (Open Systems Interconnection) .
Come mostrato nella Figura 8.5(a), la pila ISO-OSI è articolata in sette livelli (ap-
plicazione, presentazione, sessione, trasporto, rete, collegamento, fisico) con funzionalità
rigidamente distinte. Ogni nodo della rete Internet adotta la pila di protocolli mostrata
nella Figura 8.5(b) che prevede quattro livelli (applicazione, trasporto, rete, collegamen-
CastanoWSU cap8 18-12-2008 16:44 Pagina 84

84 Capitolo 8 Architettura e standard per il Web

Figura 8.5 Protocolli di comunicazione. (a) Lo standard ISO-OSI. (b) Protocolli della rete Internet.

to)1 con un’organizzazione più flessibile rispetto a quella di ISO-OSI (alcuni livelli sono
stati accorpati)2. Vediamo in dettaglio ciascun livello.
◆ Livello applicazione. È il livello più alto della pila ed è l’unico direttamente utilizza-
to dagli utenti. Contiene vari protocolli che determinano il funzionamento dei ser-
vizi di livello applicativo. Sono esempi di questo livello servizi come il World Wide
Web, la posta elettronica e la messaggistica istantanea (chat).

1 L’organizzazione della pila di protocolli Internet in quattro livelli è prevista da un documento ufficiale (RFC
1122). In alcuni testi, sono presenti cinque livelli dove è previsto anche un livello fisico per differenziare le
modalità di trasferimento (livello collegamento) dalle attività di trasmissione (livello fisico).
2 Il motivo per cui Internet non utilizza ISO-OSI è che i protocolli della rete Internet erano già in uso quan-

do lo standard OSI fu rilasciato. Si può dire che i protocolli Internet sono uno standard de facto, spesso pre-
feriti a ISO-OSI proprio per la maggiore flessibilità e semplicità di utilizzo.
CastanoWSU cap8 18-12-2008 16:44 Pagina 85

Il servizio World Wide Web 85

◆ Livello trasporto. È il livello dove opera il protocollo TCP (Transmission Control Pro-
tocol ). Questo protocollo ha il compito di stabilire un canale di comunicazione affi-
dabile per la trasmissione dei messaggi fra l’host sorgente e l’host destinazione. I
messaggi fra due host a livello applicazione hanno lunghezza variabile. Per ragioni di
efficienza, i messaggi sono suddivisi in pacchetti e inviati sulla rete in modo indi-
pendente per evitare congestione del traffico e colli di bottiglia presso i nodi più
sfruttati. TCP si occupa della segmentazione dei messaggi in pacchetti presso l’host
sorgente e della loro corretta ricostruzione presso l’host destinazione. Inoltre, TCP
si occupa di eventuali ritrasmissioni di pacchetti non ricevuti a causa di errore. In al-
tre parole, TCP realizza un canale di comunicazione virtuale fra sorgente e destina-
zione che astrae dall’effettiva trasmissione dei singoli pacchetti sulla rete. L’host de-
stinatario del messaggio percepisce la trasmissione con la sorgente come se fra i due
ci fosse un canale diretto.
◆ Livello rete. È il livello dove opera il protocollo IP (Internet Protocol). IP si occupa
degli aspetti legati all’indirizzamento e all’instradamento dei messaggi. In particola-
re, IP definisce il percorso che i pacchetti, risultanti dalla segmentazione dei messag-
gi operata da TCP, dovranno seguire lungo la rete in modo che un messaggio in
partenza da un host sorgente arrivi fino all’host destinazione.
◆ Livello collegamento. È il livello più basso della pila e si occupa del trasferimento fisi-
co dei dati sul mezzo trasmissivo.
Un utente A collegato al proprio elaboratore in rete (host) può utilizzare un servizio di li-
vello applicativo, diciamo ad esempio il servizio chat, per comunicare con un utente B
presso un altro elaboratore. I due utenti A e B hanno l’impressione che esista una comu-
nicazione diretta fra i protocolli di livello applicazione. In verità, come illustrato nell’e-
sempio della Figura 8.5(b), la comunicazione fra protocolli di livello corrispondente è so-
lo virtuale. Nella pratica, l’interazione avviene fra protocolli di livello gerarchicamente
adiacente: un protocollo di livello n svolge le sue funzioni usando i servizi del livello n–1
e fornisce i servizi al livello n+1. Per ogni coppia di livelli gerarchicamente adiacenti, esi-
ste un’interfaccia che stabilisce le modalità di comunicazione fra i due livelli. Questo si-
gnifica che un messaggio in chat dell’utente A (livello applicazione) è passato ai protocol-
li di livello trasporto, rete e collegamento prima di essere trasmesso sulla rete. Giunto a
destinazione, il messaggio risale la pila di protocolli fino a raggiungere il livello applica-
zione dove è mostrato all’utente B. Tale schema di comunicazione è utilizzato in ogni
scambio di informazioni fra protocolli corrispondenti di due host distinti.

Il servizio World Wide Web


Il World Wide Web (WWW), comunemente abbreviato in Web, è probabilmente il più
popolare fra i servizi applicativi di Internet. Esso è costituito da un insieme di contenuti
organizzati in siti che sono a loro volta definiti come una collezione di pagine web fra lo-
ro collegate mediante hyperlink (collegamenti ipertestuali) o semplicemente link. I link so-
no un elemento peculiare del Web e ne determinano la natura ipertestuale: un utente può
navigare fra le pagine web utilizzando i link e scegliendo di volta in volta la pagina succes-
siva da consultare in base alle proprie preferenze. Il Web è dunque un enorme ipertesto
CastanoWSU cap8 18-12-2008 16:44 Pagina 86

86 Capitolo 8 Architettura e standard per il Web

composto da contenuti testuali (come documenti) e multimediali (come immagini, clip


audio e filmati).
Il funzionamento del Web si regge su due strumenti principali:
◆ il linguaggio HTML (HyperText Markup Language) che è utilizzato per costruire le
pagine web;
◆ il protocollo HTTP (HyperText Transfer Protocol) che stabilisce le regole di comuni-
cazione fra due host per lo scambio di pagine web.
Sia HTML che HTTP sono standard definiti dal W3C3 (World Wide Web Consortium),
l’organismo preposto alla definizione e alla standardizzazione degli strumenti e delle tec-
nologie web.
Mediante HTML, è possibile definire la struttura, il contenuto e gli aspetti di for-
mattazione che costituiscono una pagina web. In particolare, il linguaggio mette a dispo-
sizione comandi per trattare testo e per includere in una pagina web file di varia tipologia,
come documenti PDF, immagini, clip audio e filmati. Inoltre, sono disponibili comandi
per la formattazione di una pagina che supportano molte delle funzioni previste dai tra-
dizionali programmi di video scrittura, come opzioni relative a caratteri, stili, elenchi
puntati e tabelle.
La navigazione sul Web segue il classico modello client/server: i siti web con i corri-
spondenti contenuti (pagine) sono memorizzati presso particolari host chiamati server
web o server http. Un server web possiede sul proprio disco una cartella chiamata root (ra-
dice di pubblicazione), dentro la quale sono memorizzate, con un’eventuale organizzazio-
ne in sotto-cartelle, le risorse web. Quando un utente (client) desidera consultare una cer-
ta pagina web, utilizza il protocollo HTTP per contattare il server web su cui la pagina è
memorizzata. Il server preleva la pagina richiesta dalle proprie cartelle e, sempre median-
te HTTP, la invia in risposta al client.
Per navigare il Web, esistono particolari programmi software denominati browser
(navigatori). Un browser è in grado di gestire gli aspetti legati alla comunicazione HTTP
con i server e alla visualizzazione delle risorse web. In particolare, data una risorsa web ri-
chiesta dall’utente, il browser si occupa di comporre la richiesta HTTP destinata al server
e di intercettare la risorsa restituita. Inoltre, il browser si occupa di interpretare il codice
HTML delle risorse web, visualizzandone il contenuto all’utente. Negli ultimi anni, i
browser sono stati protagonisti di un importante processo di maturazione. Oltre al con-
solidamento delle funzioni di base, questi prodotti offrono molte caratteristiche aggiunti-
ve come la gestione della cronologia delle pagine visitate, i segnalibri e la memorizzazione
di password usate frequentemente. Inoltre, è possibile estendere le funzionalità di un
browser installando opportuni plug-in (moduli aggiuntivi) che permettono di gestire la
corretta visualizzazione di oggetti multimediali (ad esempio filmati) all’interno delle pa-
gine web. Esempi di browser diffusamente utilizzati sono Microsoft Internet Explorer,
Mozilla Firefox e Opera.

3 [Link]
CastanoWSU cap8 18-12-2008 16:44 Pagina 87

Richiesta di una pagina web 87

Lo standard URI
Affinché una risorsa Internet possa essere invocata da un utente, è necessario disporre di
un meccanismo di identificazione univoca. Lo standard URI (Uniform Resource Identi-
fier) è stato definito proprio con questo scopo. In generale, ogni risorsa Internet possiede
una URI che la identifica univocamente sulla rete.
Nel caso del Web, dove le risorse sono tipicamente pagine pubblicate su un server, si
parla di identificatori chiamati URL (Uniform Resource Locator). Una URL è un tipo par-
ticolare di URI che, oltre a fornire un identificatore univoco per una certa risorsa web,
definisce l’indirizzo e il protocollo tramite i quali tale risorsa può essere reperita.
La struttura delle URL segue uno schema prefissato che si articola come nel seguen-
te esempio:
<protocollo> :// <server> / <percorso> ? <parametri>
↓ ↓ ↓ ↓
http :// [Link] / staff/[Link] ? filtro = pubblicazioni

La URL inizia con l’indicazione del protocollo da utilizzare per richiedere la risorsa. Quan-
do si tratta di pagine web, il protocollo da utilizzare è HTTP. Segue l’indirizzo (simbolico
o numerico) del server web che ospita la risorsa. Nel caso si utilizzi un indirizzo simbolico
sarà necessario invocare il servizio DNS per ricavare l’indirizzo numerico del server e per-
mettere al protocollo di rete di indirizzare la richiesta all’host corrispondente. Infine, la
URL continua con l’indicazione della posizione sul server dove la pagina è memorizzata. Si
noti che il percorso contiene il cammino completo dalla radice di pubblicazione del server
fino al nome del file che costituisce la pagina web. Infine, la URL si chiude con una lista di
parametri espressi nella forma <parametro = valore>. La lista di parametri non è sempre
presente e varia a seconda del sito considerato poiché specifica impostazioni aggiuntive per
la visualizzazione della pagina. Nell’esempio, la pagina web indicata nella URL richiede
l’uso di HTTP per essere invocata ed è ospitata sul server web islab appartenente alla re-
te [Link]. Il nome del file è [Link] ed è memorizzato nella cartella staff. Il
parametro filtro = pubblicazioni indica che la pagina, contenente varie informazioni,
deve applicare un criterio di filtraggio orientato alle pubblicazioni.

Richiesta di una pagina web


Lo schema della richiesta di una pagina web è illustrato in dettaglio nella Figura 8.6.
Lo schema è articolato nelle seguenti fasi.
1. Formulazione della richiesta HTTP. Tramite il browser, l’utente (client) specifica la
URI della pagina web che vuole visualizzare. Tale URI ([Link]
[Link]/staff/[Link] nell’esempio) è utilizzata per costruire la richiesta
HTTP destinata al server web che ospita la pagina.
2. Connessione con il server web. Tramite i protocolli di livello trasporto, rete e collegamen-
to, viene aperta una connessione con il server web a cui deve essere inviata la richiesta
HTTP. Come nell’esempio nella figura, l’invocazione del servizio DNS può essere ne-
cessaria per la risoluzione dell’indirizzo simbolico del server eventualmente utilizzato
([Link] → [Link]).
CastanoWSU cap8 18-12-2008 16:44 Pagina 88

88 Capitolo 8 Architettura e standard per il Web

Figura 8.6 Esempio di richiesta di una pagina web.

3. Formulazione della risposta HTTP. Il server web riceve e analizza la richiesta HTTP,
ne verifica la correttezza e compone il messaggio di risposta HTTP mediante il qua-
le la pagina web è inviata al client. La risposta HTTP può contenere un eventuale
messaggio di errore qualora la richiesta sia mal formulata o la pagina sia inesistente.
4. Visualizzazione della pagina richiesta. Il browser del client riceve la pagina web ri-
chiesta e la visualizza all’utente interpretando il codice HTML della pagina. Oltre al
testo, il browser visualizza eventuali oggetti binari inclusi nella pagina, come imma-
gini e altri elementi multimediali.
È importante notare che ogni richiesta HTTP è indipendente dalle altre. Anche quando
un utente richiede in sequenza più pagine memorizzate sul medesimo server web, per
ogni richiesta HTTP si apre una nuova connessione con il server che è chiusa subito do-
po l’invio della risposta al client. Tale meccanismo può sembrare inefficiente, ma è stato
studiato per evitare che i server web consumino risorse mantenendo connessioni con
client caratterizzati da una bassa frequenza di richieste. Infatti, non è possibile prevedere
quando un utente deciderà di spostarsi dalla pagina correntemente visualizzata e soprat-
tutto se la sua prossima richiesta sarà indirizzata al medesimo server. Questo schema è
dunque particolarmente appropriato per la navigazione sul Web, ma non permette di
mantenere informazioni sullo stato di un utente durante la navigazione. Infatti, si dice
che HTTP sia un protocollo stateless (privo di stato) per indicare che alla ricezione di una
richiesta HTTP proveniente da un certo utente, il server web non ha modo di ricostruire
eventuali informazioni relative a precedenti richieste dello stesso utente. Questo è proble-
matico per quei siti che, a causa della natura confidenziale delle informazioni contenute
nelle loro pagine, necessitano di autenticare i propri utenti mediante l’inserimento di op-
portune credenziali (login e password). Si pensi ad esempio ai siti di home banking, di ge-
stione della posta elettronica e di compravendita di prodotti. A causa della condizione
CastanoWSU cap8 18-12-2008 16:44 Pagina 89

Pagine statiche e pagine dinamiche 89

stateless di HTTP, per ogni richiesta inviata a un sito di questo tipo, l’utente dovrebbe in-
serire le proprie credenziali prima di poter visualizzare la pagina. Per ovviare a questo ge-
nere di problematiche, sono state sviluppate tecniche che simulano il mantenimento del-
le informazioni di stato sulla navigazione di un utente: cookie e sessioni.

Pagine statiche e pagine dinamiche


Nelle richieste di risorse web finora considerate, abbiamo implicitamente supposto di la-
vorare con pagine web statiche. Le risorse di questo tipo sono scritte in linguaggio HTML
e sono dette statiche perché il contenuto e la presentazione rimangono invariati per qua-
lunque utente ne faccia richiesta. Si tratta di pagine con contenuto a bassa obsolescenza
che non richiedono elevata frequenza di aggiornamento (ad esempio pagine che conten-
gono lo statuto di un’associazione o una collezione di testi narrativi). La richiesta di una
pagina statica segue lo schema della Figura 8.6, anche conosciuto come architettura a due
livelli. Tale termine deriva dal fatto che lo schema coinvolge due entità con un ruolo (li-
vello) distinto: a un livello il client effettua la richiesta, all’altro il server riceve la richiesta
e provvede a soddisfarla prelevando il file dal proprio disco.
Le pagine statiche si contrappongono alle pagine web dinamiche, in cui contenuto e
presentazione possono variare a seconda dell’istante in cui la richiesta è ricevuta dal ser-
ver. Sono pagine con contenuto a elevata obsolescenza, che spesso contengono informa-
zioni personalizzate in base all’utente che effettua la richiesta. È il caso di siti di compra-
vendita oggetti o di gestione delle caselle di posta elettronica. Le pagine di questo tipo
sono dette dinamiche perché il contenuto è determinato al momento della richiesta ed è
il risultato dell’esecuzione di codice scritto in un linguaggio di programmazione come
PHP e ASP. Molto spesso il contenuto di una pagina dinamica è generato a partire dai da-
ti memorizzati in una base di dati. Questo significa che la richiesta di una pagina web di-
namica necessita di una gestione più elaborata rispetto allo schema della Figura 8.6. Si
parla in questo caso di architettura a tre livelli il cui schema è mostrato nella Figura 8.7.
In questo schema, i primi due livelli sono occupati rispettivamente dal client che ef-
fettua la richiesta e dal server che la riceve per gestirla. Per una pagina dinamica, prima
che il risultato sia restituito, il server deve eseguire il codice associato alla pagina. Questo
può comportare l’invocazione di un server DBMS (terzo livello) per l’estrazione dei dati
di interesse con cui costruire il contenuto della pagina richiesta. Nell’esempio della Figu-
ra 8.7, la richiesta riguarda la pagina [Link] contenente informazioni sul personale
che compone il laboratorio ISLab. I dati relativi allo staff sono memorizzati nella base di
dati islab-db, ed è quindi necessario che il server web [Link] interroghi
questa sorgente dati per costruire il contenuto della pagina richiesta.
Vale la pena notare che, nel caso di pagine dinamiche, il nome del file ha un’esten-
sione che dipende dal linguaggio di programmazione utilizzato (.php nel nostro esem-
pio). Inoltre, è bene precisare che per il client che effettua la richiesta, la differenza fra pa-
gine statiche e dinamiche è inesistente. Questo perché, una volta eseguito il codice di una
pagina dinamica, il risultato dell’elaborazione è inserito nella pagina utilizzando il lin-
guaggio HTML. Quindi l’utente finale riceve sempre una risorsa scritta in linguaggio
HTML e non è in grado di riconoscere la modalità (statica o dinamica) con cui è stata
generata.
CastanoWSU cap8 18-12-2008 16:44 Pagina 90

90 Capitolo 8 Architettura e standard per il Web

Figura 8.7 Architettura a tre livelli di una richiesta web.

Altri servizi di livello applicativo:


la posta elettronica
A livello applicativo, Internet mette a disposizione una vasta gamma di servizi destinati
agli utenti.
Oltre al servizio WWW per la navigazione di siti web, esistono altri servizi molto
diffusi e interessanti di cui riportiamo una lista nella Tabella 8.2.
Si tratta di una lista di servizi selezionata rispetto al numero di servizi disponibili. A
tal proposito, vale la pena notare che qualunque utente può sviluppare nuovi servizi con
funzionalità specifiche in base alle proprie necessità: basta definire le regole che i due ho-
st dovranno rispettare nella comunicazione, è necessario cioè definire il protocollo di li-
vello applicazione che realizza il servizio. Grazie all’organizzazione dei protocolli Internet
in una pila, affinché il servizio possa funzionare correttamente è sufficiente definire le op-
portune interfacce fra il protocollo applicativo del nuovo servizio e il protocollo di tra-
sporto TCP sottostante.
Rispetto alla lista della Tabella 8.2, i servizi relativi all’invio/ricezione di messaggi di
posta elettronica (e-mail) sono fra i più comunemente utilizzati. Un’e-mail può essere
considerata il corrispondente elettronico di una lettera tradizionale in formato cartaceo ed
è caratterizzata da una busta (envelope), un’intestazione (header) e un corpo (body). Nella
busta, sono contenute le informazioni relative allo smistamento del messaggio (ad esem-
pio, mittente e destinatario), mentre nell’intestazione e nel corpo sono memorizzate ri-
spettivamente informazioni di sintesi relative al messaggio (ad esempio, elenco dei desti-
natari, eventuali destinatari in copia e oggetto del messaggio) e contenuto del messaggio
vero e proprio con eventuali allegati. Per poter ricevere e-mail, un utente deve possedere
una casella di posta elettronica dove possono essere recapitati e memorizzati i messaggi. In
Internet, esistono svariati fornitori (provider) che offrono, gratuitamente o meno a secon-
CastanoWSU cap8 18-12-2008 16:44 Pagina 91

Altri servizi di livello applicativo: la posta elettronica 91

Nome del servizio Descrizione


Telnet Permette di aprire una connessione fra due host mediante
la quale inviare comandi. In pratica, consente a un utente
di utilizzare un elaboratore da remoto.
SSH È simile a telnet, ma più sicuro: la connessione fra i due host
(Secure SHell) è cifrata per evitare che utenti non autorizzati possano
intercettare (e manipolare) il flusso di dati.
SMTP Gestisce l’invio e la trasmissione di messaggi di posta
(Simple Mail Transfer Protocol) elettronica.
POP3 Permette di accedere a una casella di posta elettronica (previa
(Post Office Protocol) autenticazione) e di acquisire i messaggi in essa memorizzati.
IMAP È simile a POP3, ma più flessibile: mette a disposizione
(Internet Message Access funzionalità per lavorare interattivamente con i messaggi
Protocol) memorizzati in una casella di posta elettronica.
FTP Supporta il trasferimento di file tra due host. Il formato
(File Trasfer Protocol) dei file da trasferire non è rilevante.
IRC Supporta la comunicazione istantanea (chat) fra due o più
(Internet Relay Chat) utenti.
VoIP Permette di realizzare un canale per la comunicazione vocale
(Voice over IP) fra due utenti.

Tabella 8.2 Alcuni servizi disponibili attraverso la rete Internet.

da dei casi, la possibilità di creare caselle di posta elettronica.4 Ogni provider dispone di
un server di posta elettronica dove sono ospitate le caselle degli utenti. Ogni casella è iden-
tificata da un indirizzo univoco espresso nella forma nome_utente@dominio, dove
nome_utente indica il proprietario e dominio indica il provider che ospita la casella. Il sim-
bolo @ (comunemente chiamato chiocciola), funge da separatore fra nome_utente e domi-
nio ed è un elemento indispensabile in un indirizzo di posta elettronica. È chiaro che, per
evitare ambiguità nel recapito dei messaggi, non possono esistere due caselle di posta elet-
tronica con lo stesso indirizzo. Tuttavia, il medesimo nome_utente può essere utilizzato da
provider diversi visto che gli indirizzi risulterebbero avere dominio differente.
L’invio di un messaggio di posta elettronica, è realizzato mediante il protocollo
SMTP (Simple Mail Transfer Protocol ). In rete, un host su cui è installato questo proto-
collo è chiamato server SMTP e ha il compito di gestire la trasmissione e l’inoltro di e-
mail verso la casella di posta del destinatario. È importante capire che l’invio e la ricezio-
ne di e-mail non sono operazioni istantanee. Consideriamo l’esempio della Figura 8.8
dove è mostrato lo schema di funzionamento di SMTP per un messaggio di posta elettro-
nica destinato all’indirizzo pippo@[Link].

4Provider molto conosciuti sono gmail, hotmail, yahoo e virgilio, ma la disponibilità di alternative in questo
campo è davvero elevata e in continua espansione.
CastanoWSU cap8 18-12-2008 16:44 Pagina 92

92 Capitolo 8 Architettura e standard per il Web

Figura 8.8 Esempio di invio e ricezione di un messaggio di posta elettronica.

Il dominio mail-provider è utilizzato dai server SMTP per inoltrare il messaggio sulla
rete Internet fino a raggiungere il server di posta elettronica di mail-provider che ospita
la casella di pippo. Un’e-mail può attraversare più di un server SMTP prima di arrivare a
destinazione. Il messaggio è successivamente smistato dal server di posta nella casella del
destinatario utilizzando il nome_utente pippo. L’e-mail resta memorizzata nella casella fi-
no a quando il proprietario non accede e acquisisce (o “scarica”) la propria posta.
Per l’accesso e l’acquisizione di messaggi di posta elettronica sono disponibili due
protocolli: POP3 (Post Office Protocol) e IMAP (Internet Message Access Protocol). A parte
i dettagli tecnici che differenziano i due protocolli, sia POP3 che IMAP consentono al
proprietario di una casella di posta elettronica, previa autenticazione, di accedere ai pro-
pri messaggi ricevuti. Come mostrato nella Figura 8.8, l’accesso mediante POP3/IMAP
prevede la connessione al server di posta che ospita la casella (mail-provider nel nostro
esempio) da cui sono acquisiti i nuovi messaggi ricevuti. I messaggi possono essere visua-
lizzati e lasciati sul server di posta oppure possono essere scaricati dal proprietario sul pro-
prio elaboratore e quindi cancellati dal server.
Esistono vari programmi di posta elettronica che permettono di gestire sia l’invio
(tramite SMTP) che la ricezione (tramite POP3 o IMAP) di e-mail. Oltre alle funzioni
basilari, questi strumenti offrono funzionalità aggiuntive sempre più sofisticate, quali ad
esempio la notifica di avvenuta ricezione di un messaggio inviato, il filtraggio automatico
di messaggi pubblicitari indesiderati (spam) e la gestione dei contatti (rubrica). Citiamo,
tra i prodotti più diffusi in questo campo, Microsoft Outlook, Mozilla Thunderbird ed
Eudora. Inoltre, ogni provider mette a disposizione degli utenti la possibilità di accedere
e utilizzare la propria casella di posta elettronica tramite un sito web.
CastanoWSU cap9 18-12-2008 16:45 Pagina 93

Capitolo 9

Contenuti sul Web:


i linguaggi di marcatura

Come si è visto, navigare sul Web significa utilizzare la rete Internet per chiedere a un
server di elaborare una pagina e inviarla al nostro software di navigazione, tipicamente un
browser. La pagina inviata deve però essere codificata in modo da istruire il browser sul
modo in cui i contenuti vanno visualizzati. Ciò significa, essenzialmente, che insieme al
contenuto specifico della pagina, costituito da testo ed eventuali contenuti multimediali,
il browser necessita di ricevere altre informazioni che si traducono in istruzioni di visua-
lizzazione. Per fare un esempio, possiamo immaginare di inviare una pagina web conte-
nente la frase “Pagina personale di Mario Rossi”. Supponiamo poi che si voglia istruire il
browser affinché esso visualizzi la frase inviata come un titolo (con un carattere di dimen-
sione maggiore al normale) e affinché la porzione di testo “Mario Rossi” sia riprodotta in
grassetto. Perché il browser riceva tali informazioni è necessario che insieme alle informa-
zioni vere e proprie esso riceva anche alcune meta-informazioni, ovvero informazioni che
hanno come oggetto il contenuto stesso della pagina. Per risolvere questo problema, si
adotta una classe particolare di linguaggi formali, detti linguaggi di marcatura. I linguag-
gi di marcatura devono il proprio nome all’idea di marcare il testo con particolari simbo-
li che a esso si riferiscono. Esistono a questo scopo molti specifici linguaggi di marcatura:
in questo capitolo esamineremo i due linguaggi più diffusi sul Web, ovvero HTML e
CSS.

HyperText Markup Language


HTML (HyperText Markup Language) ha lo scopo di arricchire il testo con informazioni
relative alla strutturazione e formattazione del contenuto. Il browser ha il compito di in-
terpretare il documento HTML, separare meta-informazioni da informazioni e visualiz-
zare le informazioni coerentemente alle istruzioni specificate dalle meta-informazioni.
Un esempio della differenza fra contenuto ricevuto dal browser ed esito dell’inter-
pretazione è mostrato nella Figura 9.1.
Ignorando il grassetto, inserito al solo scopo di rendere evidente la differenza fra
informazione e meta-informazione, appare evidente come il documento HTML sia del
CastanoWSU cap9 18-12-2008 16:45 Pagina 94

94 Capitolo 9 Contenuti sul Web: i linguaggi di marcatura

Documento HTML Testo visualizzato dal browser


<p><i>Trasumanar significar per Trasumanar significar per verba
verba <br> non si poria; però l'essemplo basti
non si poria; per&ograve; l'essemplo a cui esperienza grazia serba.
basti <br>a cui esperienza grazia
serba. <br>
</i></p><p><i>S'i' era sol di me
quel che creasti <br>novellamente,
amor che 'l ciel governi, <br>tu 'l
sai, che col tuo lume mi levasti. S'i' era sol di me quel che creasti
<br></i></p> novellamente, amor che 'l ciel governi,
tu 'l sai, che col tuo lume mi levasti

Figura 9.1 Esempio di documento HTML e del relativo testo visualizzato dal browser.

tutto privo di formattazione, mentre il testo finale visualizzato sia distinto in paragrafi, ri-
ghe e presenti i caratteri in corsivo. Tutte queste informazioni, assenti nel testo, sono co-
municate al browser dai marcatori, indicati in grassetto nel documento HTML. Più pre-
cisamente, possiamo riconoscere nell’esempio tre diverse tipologie di informazione:
meta-informazioni strutturali e di stile, come ad esempio il marcatore <p>, caratteri spe-
ciali, in questo caso l’espressione &ograve; che denota il carattere accentato “ò”, e infor-
mazioni vere e proprie, rappresentate dal testo.
I marcatori sono distinti dal testo per mezzo di parentesi angolari (< >) e rispettano
la seguente sintassi:
<nome_marcatore>
La maggior parte dei marcatori HTML hanno una “apertura”, un marcatore cioè che
identifica l’inizio della porzione di testo marcata, e una “chiusura”, un marcatore che
identifica la fine della porzione di testo marcata. Se, dunque, nella frase “Pagina persona-
le di Mario Rossi”, la porzione “Mario Rossi” va evidenziata in grassetto, il testo sarà co-
dificato in HTML per mezzo del marcatore b (che indica il grassetto) secondo la seguen-
te sintassi:
Pagina personale di <b>Mario Rossi</b>
Il marcatore si applica a tutto ciò che compare fra l’apertura e la chiusura e il suo conte-
nuto può essere il testo, un altro marcatore, o un insieme delle due cose. In HTML, alcu-
ni marcatori non hanno chiusura, perché non hanno contenuto, come nel caso dell’inter-
ruzione di riga, denotata dal solo marcatore <br>. I marcatori, inoltre, possono avere uno
o più attributi, secondo la seguente sintassi:
<nome_marcatore attributo="valore">...</nome_marcatore>
Lo scopo degli attributi è sia di indicare informazioni supplementari di formattazione per
il marcatore sia, più generalmente, di specificare un’informazione associata al marcatore.
Nella Figura 9.2 vediamo alcuni esempi di usi dei marcatori HTML.
Come in parte già mostrato dagli esempi, è possibile dunque distinguere i marcato-
ri HTML in due principali categorie: i marcatori che determinano la struttura generale
CastanoWSU cap9 18-12-2008 16:45 Pagina 95

HyperText Markup Language 95

Esempio Codice HTML Risultato Commento


Marcatore <b>Solo l’amare,</b> Solo l’amare,
contenente
un testo
Marcatore <i>solo il <b>conoscere</b></i> solo il La parola
contenente conoscere “conoscere” è sia
sia testo in grassetto sia
sia altri in corsivo, poiché
marcatori è contenuta in
entrambi i
marcatori
Marcatore conta, non l’aver amato, <br> non conta, non
senza l’aver conosciuto. l’aver amato,
contenuto non l’aver
conosciuto.
Marcatore D&agrave; Dà angoscia Definizione
con <a href="[Link] di un link il cui
attributi org/wiki/Angoscia">angoscia</a> obiettivo è
indicato per mezzo
dell’attributo href

Figura 9.2 Esempio di uso dei marcatori HTML.

della pagina web e i marcatori che si riferiscono alla formattazione del contenuto. Per
quanto attiene alla struttura della pagina, HTML prevede che l’intero documento sia
contenuto entro il marcatore <html>...</html>. Il documento è poi diviso in due sezio-
ni che prendono il nome rispettivamente di intestazione (head ), denotata dal marcatore
<head>...</head> e corpo (body), denotata del marcatore <body>...</body>.
L’intestazione contiene informazioni che non vengono visualizzate sulla pagina e
servono ad associare al documento altri documenti, come i fogli di stile, o a fornire infor-
mazioni relative al testo, come ad esempio le parole chiave o il titolo. Il corpo del docu-
mento contiene le informazioni che verranno pubblicate effettivamente sulla pagina web
e che sono rappresentate per mezzo di altri marcatori. I marcatori HTML sono molti; nel
testo descriviamo i principali elementi e la loro funzione.1 Gli elementi strutturali hanno
lo scopo di definire l’organizzazione del testo in blocchi e sezioni, sia per quanto attiene
al contenuto sia per la visualizzazione del contenuto sulla pagina. Un esempio di pagina
web che contiene i principali elementi menzionati è mostrato nella Figura 9.3. Gli ele-
menti fondamentali di strutturazione della pagina web sono <div> e <span>. L’elemento
<div> crea un blocco di testo arbitrario spesso associato a informazioni di formattazione
e stile. Un elemento “a blocco” è un elemento che occupa completamente lo spazio della
pagina in larghezza e che quindi non potrà avere altri elementi affiancati. L’elemento

1 L’elenco completo dei marcatori HTML e della loro sintassi è reperibile all’indirizzo
[Link]
CastanoWSU cap9 18-12-2008 16:45 Pagina 96

96 Capitolo 9 Contenuti sul Web: i linguaggi di marcatura

<html>

<head>
<title> Esempio di pagina web </title>
</head>

<body>

<div class="Intestazione">

<h1>L'ultima infedelt&agrave;</h1>
<h2>di <span class="autore">Guido Gozzano</span></h2>

</div>

<div class="Testo">
<p class="strofa">
<span class="verso">Dolce tristezza, pur t'aveva seco,</span><br>
<span class="verso">non &egrave; molt'anni, il pallido bambino</span><br>
<span class="verso">sbocconcellante la merenda, chino</span><br>
<span class="verso">sul tedioso compito di greco...</span><br>
</p>
<p class="strofa">
<span class="verso">Pi&ugrave; tardi seco t'ebbe in suo cammino</span><br>
<span class="verso">sentimentale, adolescente cieco</span><br>
<span class="verso">di desiderio, se giungeva l'eco</span><br>
<span class="verso">d'una voce, d'un passo femminino.</span><br>
</p>
<p class="strofa">
<span class="verso">Oggi pur la tristezza si dilegua</span><br>
<span class="verso">per sempre da quest'anima corrosa</span><br>
<span class="verso">dove un riso amarissimo persiste,</span><br>
</p>
<p class="strofa">
<span class="verso">un riso che mi torce senza tregua</span><br>
<span class="verso">la bocca... Ah! veramente non so cosa</span><br>
<span class="verso">pi&ugrave; triste che non pi&ugrave; essere
triste!</span><br>
</p>
</div>
</body>
</html>

Figura 9.3 Esempio di pagina HTML.

<span> ha la stessa funzione di <div>, ma il contenuto non costituisce un blocco e quin-


di vi possono essere altri contenuti affiancati a esso. Nel nostro esempio i <div> sono uti-
lizzati per dividere l’area della pagina che contiene titolo e autore da quella che contiene
CastanoWSU cap9 18-12-2008 16:45 Pagina 97

Definire stile e formattazione dei documenti con CSS 97

le diverse strofe in cui si articola il testo. Gli <span> invece sono usati per marcare porzio-
ni di testo che si collocano dentro altre porzioni di testo, come ad esempio il nome del-
l’autore all’interno dell’espressione “di Guido Gozzano”.
Un altro elemento molto usato, anche se impropriamente, per strutturare la pagina
sono le tabelle. Le tabelle nascono infatti per la rappresentazione di dati tabellari ma sono
spesso usate per definire la collocazione degli elementi all’interno della pagina. L’elemen-
to che denota una tabella è il marcatore <table>, mentre le righe sono denotate da <tr>
e le celle da <td> (<th> per l’intestazione). Una tabella di due righe e tre colonne avrà
dunque la seguente struttura:
<table>
<tr><td>...</td><td>...</td><td>...</td></tr>
<tr><td>...</td><td>...</td><td>...</td></tr>
</table>
Così come la pagina nel suo insieme, anche le singole porzioni di testo hanno una strut-
turazione. In particolare, il testo di suddivide in HTML in 6 tipologie di titolo, denota-
te dai marcatori <h1>, <h2>, <h3>, <h4>, <h5> e <h6>, e in paragrafi, denotati dal marca-
tore <p>. Sia i titoli sia i paragrafi creano blocchi di testo e impongono l’interruzione di
riga.
Oltre a rappresentare contenuto testuale, HTML deve garantire agli utenti della pa-
gina la possibilità di interagire con il testo. Gli elementi che consentono l’interazione del-
l’utente e l’inserimento di dati sono <form> e i diversi tipi di campo di inserimento
<input>, e i link ipertestuali. L’ipertestualità indica la capacità del testo di riferirsi ad altri
testi o a contenuti aggiuntivi; in HTML l’elemento principale che permette questo tipo
di interazione è anchor (<a>). Esso è usato per definire un collegamento interno a una pa-
gina o esterno verso un’altra pagina. La sintassi generale di un link HTML è la seguente:
<a href="indirizzo">Testo del link</a>
L’indirizzo può essere espresso sia in termini assoluti che relativi, come le URL. Analoga-
mente ai link, l’inserimento di immagini avviene facendo riferimento al file dell’immagi-
ne che va inserito nella pagina, secondo la sintassi:
<img src="indirizzo dell’immagine">

Definire stile e formattazione dei documenti


con CSS
Lo standard CSS (Cascading Style Sheets) ha lo scopo di attribuire uno stile di formatta-
zione agli elementi HTML senza ricorrere agli attributi degli elementi stessi, ottenendo
così il risultato di disaccoppiare fra loro struttura e stile del documento e di generalizzare
quest’ultimo. Per comprendere i vantaggi dei CSS ricorreremo al seguente esempio: sup-
poniamo di voler centrare il testo di tutti i nostri titoli principali (elemento <h1> di
HTML) rispetto alla pagina. Senza ricorrere ai CSS, l’istruzione può essere specificata at-
traverso l’attributo align di HTML, nel seguente modo:
CastanoWSU cap9 18-12-2008 16:45 Pagina 98

98 Capitolo 9 Contenuti sul Web: i linguaggi di marcatura

<html>
<head>
<title> Esempio di pagina web </title>
</head>
<body>
...
<h1 align="center">L'ultima infedelt&agrave;</h1>
...
<h1 align="center">Convito</h1>
...
</body>
</html>
Il problema legato a una simile istruzione è che essa necessita di essere ripetuta per tutte
le occorrenze di titoli principali in ogni pagina del sito. Se fosse poi necessario modifica-
re questo comportamento, occorrerà cambiare l’istruzione per ognuno dei titoli. Per ov-
viare a questi problemi si rende dunque necessario disaccoppiare lo stile dal singolo tito-
lo e generalizzare l’istruzione in modo che sia valida per tutti i titoli di tipo h1. Dunque,
anziché ricorrere all’attributo align, che è mantenuto in HTML solo per ragioni di com-
patibilità rispetto alle precedenti versioni dello standard, utilizzeremo i CSS, specificando
l’istruzione come segue:
<html>
<head>
<title> Esempio di pagina web </title>
<style type="text/css">
h1 {
text-align: center;
}
</style>
</head>
<body>
...
<h1>L'ultima infedelt&agrave;</h1>
...
<h1>Convito</h1>
...
</body>
</html>
Il ricorso a questa soluzione ci consente di specificare l’istruzione una volta sola e di asso-
ciarla a tutti gli elementi h1 senza doverla ripetere nel testo. I CSS possono essere inoltre
memorizzati su un file separato e richiamati all’interno di ogni pagina che ne faccia uso,
CastanoWSU cap9 18-12-2008 16:45 Pagina 99

Definire stile e formattazione dei documenti con CSS 99

consentendo dunque di definire lo stile di una certa famiglia di elementi una sola volta
per ogni sito e realizzando così un unico punto su cui intervenire per eventuali modifiche.
In particolare, lo stile di un documento può essere specificato in tre modi diversi.
1. Definendo lo stile al livello di un singolo elemento HTML attraverso l’attributo
style:
<h1 style="text-align: center;">...</h1>

2. Definendo lo stile al livello della singola pagina attraverso l’elemento style:


<head><style> h1 { text-align: center;} </style></head>

3. Definendo lo stile in un file separato che viene incluso da tutte le pagine di un sito:
<link rel="stylesheet" href="URL del file esterno" type="text/css" />
La caratteristica alla quale i CSS devono il loro nome è che lo stile di un elemento si ap-
plica “a cascata” a tutti gli elementi in esso contenuti. Supponiamo ad esempio di associa-
re alla porzione di pagina
<h2>di <span class="autore">Guido Gozzano</span></h2>
lo stile
h2 {
color: #666666;
}
che specifica che gli elementi di tipo h2 siano riprodotti in grigio (indicato dal codice
#666666). Il risultato ottenuto sarà che lo stile specificato si applicherà anche al testo
“Guido Gozzano”, poiché esso è contenuto in un elemento (span) a sua volta contenuto
entro l’elemento di tipo h2. Naturalmente può accadere che anche per l’elemento span sia
specificato uno stile. In questo caso, sul testo “Guido Gozzano” graverebbero due diverse
informazioni di formattazione, una derivata dallo stile associato all’elemento h2, l’altra
derivata dallo stile associato all’elemento span. In casi come questi, lo standard CSS pre-
vede che il browser applichi un ordine di priorità nel determinare lo stile. In modo parti-
colare, lo stile prevalente è sempre quello associato all’elemento più vicino al contenuto
(span nel nostro caso). Inoltre, lo stile associato per mezzo dell’attributo style su uno
specifico elemento HTML prevale sullo stile definito per mezzo dell’elemento style, che
a sua volta prevale sullo stile associato per mezzo di fogli di stile esterni.
La sintassi generale delle istruzioni CSS è conforme al seguente schema:
selettore {proprietà: valore;}
Il selettore ha lo scopo di indicare l’elemento o il gruppo di elementi a cui si applica lo sti-
le. Generalmente il selettore è costituito dal nome di uno o più elementi HTML a cui vo-
gliamo associare uno stesso stile. Ad esempio, la seguente istruzione associa una dimen-
sione ai caratteri contenuti sia in elementi h1 sia in elementi h2:
h1, h2 {
font-size: 14px;
}
CastanoWSU cap9 18-12-2008 16:45 Pagina 100

100 Capitolo 9 Contenuti sul Web: i linguaggi di marcatura

Spesso, però, è necessario utilizzare gli stessi tipi di elementi con funzioni diverse all’inter-
no del testo. Ad esempio, nella Figura 9.3, abbiamo usato l’elemento span sia per il nome
dell’autore, sia per i singoli versi del componimento poetico, per i quali però intendiamo
avvalerci di un diverso stile. In casi come questi è possibile utilizzare l’attributo class di
HTML per creare classi o raggruppamenti di elementi rispetto alla loro funzione logica
nel testo. Alle classi possono poi essere associati stili diversi adottando la seguente sintassi:
.autore {
font-size: 14px;
}
[Link] {
font-size: 12px;
}
La prima istruzione associa una dimensione di 14 pixel ai caratteri contenuti in qualsiasi
elemento HTML associato alla classe autore, mentre la seconda istruzione assegna una
dimensione di 12 pixel ai caratteri contenuti in tutti gli elementi span associati alla classe
verso. Analogamente, gli elementi possono essere associati ad alcuni identificatori per
mezzo dell’attributo HTML id; in questo caso l’associazione dello stile avverrebbe per
mezzo della sintassi span#verso.
Le vere e proprie istruzioni CSS sono definite dalle proprietà, che identificano l’a-
spetto a cui ci si riferisce, e dal valore, che indica il comportamento desiderato. Ad esem-
pio, possiamo determinare il colore rosso e il tipo di carattere Arial per i versi per mezzo
della seguente istruzione:2
[Link] {
font-family: arial;
color: #FFFFFF;
}
È importante sottolineare che una buona progettazione delle pagine web dovrebbe de-
mandare qualsiasi scelta stilistica all’uso sistematico dei CSS. In questo modo è infatti fa-
cile modificare radicalmente lo stile della pagina semplicemente cambiando il CSS, senza
intervenire sul codice HTML. A dimostrazione delle potenzialità dei CSS, riportiamo
nella Figura 9.4 l’effetto ottenuto sullo stesso codice HTML della Figura 9.3 applicando
CSS diversi.
In conclusione, i CSS permettono di introdurre un importante principio nella pro-
gettazione di siti web e applicazioni informatiche in generale, ovvero la modularizzazione
del codice sorgente. Tale principio si basa sull’idea di definire moduli specifici per funzio-
ni diverse (ad esempio la pagina HTML per il codice HTML e un file separato per i CSS)
che vengono poi realizzate utilizzando i diversi moduli in combinazione fra loro. Questo

2 Un elenco completo delle proprietà e dei valori ammessi dallo standard CSS è reperibile all’indirizzo
[Link]
CastanoWSU cap9 18-12-2008 16:45 Pagina 101

Definire stile e formattazione dei documenti con CSS 101

CSS non specificato

.Intestazione{
border-bottom: solid 1px #ff0000;
width: 20%;
}
.Testo{
width: 20%;
}
h1 {
font-size: 18px;
color: #000066;
}
h2 {
font-size: 14px;
color: #666666;
font-style: italic;
}
[Link] {
color: #333333;
font-style: normal;
}
[Link] {
font-size: 14px;
font-style: italic;
}

Figura 9.4 Esempio delle potenzialità dei CSS.


CastanoWSU cap9 18-12-2008 16:45 Pagina 102

102 Capitolo 9 Contenuti sul Web: i linguaggi di marcatura

body {
font-family: arial;
}
.Intestazione{
border-bottom: solid 4px #000066;
border-top: solid 4px #000066;
text-align: right;
color: #ffffff;
width: 30%;
padding: 5px;
background: url("./[Link]")
no-repeat;
background-color: #000000;
height: 300px;
}
.Testo{
border: dotted 1px #000066;
margin-top: 5px;
padding: 5px;
position: absolute;
top: 80;
left: 220;
background-color: #cccccc;
opacity: .65;
}
h1 {
font-size: 18px;
color: #ffffff;
}
h2 {
font-size: 14px;
color: #ffffff;
font-style: italic;
}
[Link] {
color: #ffffff;
font-style: normal;
}
[Link] {
font-size: 14px;
font-style: italic;
}

Figura 9.4 Esempio delle potenzialità dei CSS.

approccio alla progettazione evita ridondanze e, di conseguenza, rende l’applicazione ri-


sultante più facile da mantenere, poiché vi è un limitato numero di punti su cui concen-
trare le azioni di modifica e ristrutturazione.
CastanoWSU cap10 18-12-2008 16:46 Pagina 103

Capitolo 10

I motori di ricerca

Le crescenti dimensioni del Web e la vastità di contenuti in esso pubblicati richiedono la


disponibilità di strumenti di catalogazione e indicizzazione in grado di guidare gli utenti
durante la navigazione, suggerendo le pagine dove è possibile trovare i contenuti cercati.
Quando le dimensioni del Web ancora lo permettevano, queste necessità erano gestite in
modo manuale. Lo scenario tipico prevedeva che l’utente conoscesse l’URL della pagina
che voleva consultare perché l’aveva ottenuta tramite passaparola di un amico o attraver-
so la pubblicità. Questo meccanismo è valido ancora oggi, ma limitatamente al caso in
cui l’utente desideri consultare una pagina o un sito web ben precisi e noti a priori, come
ad esempio quando un utente vuole consultare il sito del Corriere della Sera dopo aver let-
to la URL corrispondente ([Link] sulla prima pagina (cartacea) del
quotidiano stesso. Esistono però scenari più complessi, in cui l’utente conosce ovviamen-
te cosa sta cercando, ma non conosce né la URL, né il nome del sito (o dei siti) che pos-
sono offrire una risposta adeguata. È il caso di un utente che vuole acquistare sul Web un
pacchetto vacanza. Esistono numerosi siti di agenzie viaggio ed è poco realistico immagi-
nare che un utente ne reperisca le URL in modo manuale per una successiva consultazio-
ne. Nella vita reale, esigenze di questo tipo sono risolte utilizzando strumenti di ricerca,
come gli elenchi telefonici o le Pagine Gialle, che permettono di associare la professione e
le competenze di un soggetto privato o commerciale, ai corrispondenti estremi di contat-
to (tipicamente indirizzo e numero di telefono). Analogamente, sul Web questo compito
è assolto dai motori di ricerca. Data una chiave di ricerca (ad esempio la sequenza di ter-
mini “acquisto pacchetto vacanza”), il motore di ricerca produce come risultato una lista
di siti e pagine web con le corrispondenti URL che possono essere di interesse per l’uten-
te. Il ruolo di un motore di ricerca diventa ancora più cruciale se si considera l’eteroge-
neità dei contenuti pubblicati sul Web (ad esempio, documenti, immagini, filmati) e il li-
vello di dettaglio che possono raggiungere le ricerche degli utenti. Pensiamo a un utente
alla ricerca di informazioni sulla discografia del gruppo musicale Pink Floyd. Il motore di
ricerca non deve fornire solo la URL del sito web ufficiale del gruppo, ma anche quella
delle pagine che trattano l’argomento richiesto in modo più o meno ravvicinato, come si-
ti dei fan, pagine di commento degli utenti alla loro discografia, immagini dei concerti,
clip audio con frammenti delle canzoni. Dunque, per poterlo considerare uno strumento
efficace, un motore di ricerca deve fornire funzionalità che vanno ben oltre quelle di un
normale elenco telefonico cartaceo.
CastanoWSU cap10 18-12-2008 16:46 Pagina 104

104 Capitolo 10 I motori di ricerca

Figura 10.1 Funzionamento di un motore di ricerca.

Funzionamento di un motore di ricerca


Dal punto di vista dell’utente, il funzionamento di un motore di ricerca è estremamente
semplice: l’utente inserisce uno o più parole chiave (keyword) che sintetizzano l’oggetto
della ricerca e il motore restituisce una lista di pagine web con corrispondente URL che
sono potenzialmente interessanti, in ordine decrescente di rilevanza. I tempi di risposta di
un motore di ricerca sono praticamente istantanei, grazie a un notevole lavoro di raccolta
e catalogazione delle pagine web che è svolto in modo invisibile all’utente finale. Inoltre,
per garantire elevate prestazioni, gli elaboratori che costituiscono il motore di ricerca so-
no spesso organizzati in una server farm, cioè una batteria di server interconnessi, dove le
richieste degli utenti, che sono nell’ordine delle migliaia al secondo, sono dinamicamen-
te distribuite ai vari elaboratori in base al carico di ciascuno.
In particolare, le attività di un motore di ricerca si articolano nelle seguenti fasi (Fi-
gura 10.1).
◆ Raccolta. In questa fase, il motore di ricerca utilizza programmi software denomina-
ti crawler (anche conosciuti come spider o robot) che si occupano di navigare fra le
pagine web in modo automatico (attività di crawling). Il procedimento è molto
semplice: il crawler legge una pagina, ne estrae i link che puntano ad altre risorse
web e utilizza le URL per passare alle successive pagine da visitare. Obiettivo di que-
sta fase è acquisire il maggior numero possibile di pagine web memorizzandole in
una base di dati, chiamata web repository (archivio web) dove sono messe in eviden-
za la parte testuale e alcune informazioni di sintesi (come la data di ultimo aggior-
namento).
◆ Analisi e indicizzazione. In questa fase, le pagine raccolte sono sottoposte a un’elabo-
razione mirata a estrarre e classificare i contenuti informativi in esse memorizzati.
L’obiettivo di questa fase è organizzare le pagine in modo efficiente associando a cia-
scuna di esse una rappresentazione sintetica del contenuto, come una lista di parole
chiave (keyword). Le tecniche adottate in questa fase sono derivate dall’Information
Retrieval (si veda il Capitolo 7) e sono spesso di natura statistica, come nel caso del-
le tecniche basate sull’analisi della posizione dei termini nella pagina e della loro fre-
quenza di ricorrenza.
CastanoWSU cap10 18-12-2008 16:46 Pagina 105

Esempi e tipologie di motori di ricerca 105

◆ Interrogazione. In questa fase, il motore di ricerca risponde alle richieste degli utenti
consultando le risorse web indicizzate e memorizzate nella base di dati. L’utente in-
voca il motore di ricerca formulando un’interrogazione composta da chiavi di ricer-
ca e riceve come risultato una lista di pagine ordinata per “rilevanza”. Il modo in cui
la rilevanza di una pagina è misurata dipende dal motore di ricerca ed è tipicamen-
te basato su stime legate alla correlazione fra le pagine, come la misura del numero
di link che puntano alla pagina (link entranti) e il numero di link contenuti nella
pagina (link uscenti).
La fase di interrogazione è invocata ogni volta che un utente sottopone una richiesta al
motore di ricerca. Al contrario, le fasi di raccolta, analisi e indicizzazione sono eseguite
periodicamente anche per la stessa pagina con l’obiettivo di rinnovare la copia memoriz-
zata e i risultati dell’indicizzazione in base a eventuali aggiornamenti.
Il successo di un motore di ricerca deriva in larga misura dall’adeguatezza delle pro-
cedure che realizzano le precedenti fasi. È evidente che tanto più completo è l’insieme di
risorse considerate dal motore in fase di raccolta, tanto più elevata è la probabilità di for-
nire un risultato utile alle interrogazioni degli utenti. Allo stesso modo, tanto più efficaci
sono le funzioni di analisi, indicizzazione e misura della rilevanza, tanto più accurato sarà
il risultato fornito agli utenti.

Esempi e tipologie di motori di ricerca


Vista l’importanza dei motori di ricerca e la complessità delle procedure da essi imple-
mentate, non deve stupire che la concorrenza e la disponibilità di prodotti in questo set-
tore sia particolarmente elevata. Google ([Link] è sicuramente il pro-
dotto di riferimento e vanta il maggior numero di richieste giornaliere, oltre che il web
repository più significativo per numero di pagine indicizzate (oltre otto miliardi). Questo
motore di ricerca nasce nel 1996 a opera di due universitari, Sergey Brin e Larry Page,
studenti presso l’università di Stanford in California. Altri motori di ricerca frequente-
mente utilizzati sono Yahoo! Search (http:// [Link]), Microsoft Live
Search ([Link] e [Link] ([Link]
Una comparazione tecnica dei vari prodotti è piuttosto difficile dato che ogni mo-
tore realizza le proprie funzionalità mediante tecniche proprietarie i cui dettagli non sono
resi pubblici per motivi strategici. Oltre a quelli citati, esistono altri motori di ricerca fre-
quentemente utilizzati dagli utenti, anche se vale la pena notare che spesso i prodotti me-
no potenti si appoggiano a quelli di riferimento per integrare la loro lista di risultati. È il
caso ad esempio del motore AltaVista che utilizza Yahoo! Search. Nel nostro Paese, il pa-
norama dei motori di ricerca è piuttosto ricco, anche se spesso si tratta di strumenti limi-
tati che utilizzano motori di ricerca internazionali in rapporto di partnership commercia-
le, anche se non sempre dichiarata. Nella maggior parte dei casi, il motore di riferimento
è Google come avviene per Libero, Arianna, Tiscali e Virgilio.
Tutti i motori di ricerca finora considerati indicizzano contenuti web di ogni cate-
goria senza distinzione di argomento. Per questo motivo, essi sono comunemente defini-
ti motori di ricerca generalistici. Tuttavia, esistono anche motori di ricerca progettati per
considerare solo specifiche categorie di contenuto. Si parla in questo caso di motori di
CastanoWSU cap10 18-12-2008 16:46 Pagina 106

106 Capitolo 10 I motori di ricerca

ricerca specializzati. I motori di questo tipo seguono uno schema di funzionamento ana-
logo a quello della Figura 10.1, ma limitano l’analisi a pagine e risorse web che riguarda-
no un argomento prefissato. Ad esempio, Scirus ([Link] è un motore
specializzato nella ricerca di materiale scientifico e accademico come articoli su rivista, at-
ti di congresso e pubblicazioni in generale. Recentemente, anche motori generalistici co-
me Google hanno iniziato un processo di sofisticazione affiancando al servizio di ricerca
tradizionale anche componenti specializzate. Si pensi ad esempio a Google News
([Link] specializzato nella ricerca di notizie, Google Scholar
([Link] specializzato nella ricerca di pubblicazioni scientifiche
(e quindi concorrente di Scirus) e Google Books ([Link] specia-
lizzato nella ricerca di libri e volumi.
Talvolta, la specializzazione delle funzioni di ricerca richiede la capacità di raccoglie-
re e indicizzare contenuti che non sono soltanto pagine web. È il caso ad esempio di
Google Images ([Link] per la ricerca di immagini, Google Video
([Link] per la ricerca di filmati e Google Maps
([Link] per la navigazione di mappe geografiche a livello planetario,
anche in versione tridimensionale. Quest’ultimo servizio si presta a innumerevoli applica-
zioni: calcolo di percorsi, localizzazione di monumenti ed edifici di pubblica utilità (co-
me stazioni, aeroporti e punti informativi), pubblicità di esercizi commerciali.
Un’altra categoria interessante è quella dei meta-motori di ricerca come Mamma
([Link] In questa tipologia di strumenti, lo schema di funzionamento
è leggermente diverso, infatti l’interrogazione dell’utente non è gestita direttamente dal
meta-motore, ma è inoltrata ad altri motori di ricerca. Il meta-motore raccoglie i risultati
di tutti i motori interrogati e, tramite tecniche di raggruppamento, aggrega i risultati si-
mili eliminando i duplicati prima di presentare il risultato finale all’utente.

Calcolo della rilevanza di una pagina web:


il caso PageRank di Google
Il calcolo della rilevanza di una pagina web è eseguito mediante opportune funzioni di
ranking e rappresenta un aspetto chiave per l’efficacia di un motore di ricerca. Come an-
ticipato, per tutelare la propria originalità, tutti i principali motori di ricerca mantengo-
no la riservatezza circa i dettagli implementativi, anche se una descrizione generale di tali
funzioni è spesso disponibile e aiuta a comprendere come sono determinati i risultati del-
le ricerche. Ad esempio, analizziamo il caso di Google, le cui funzioni di ranking sono ba-
sate sulla tecnologia PageRank. L’idea alla base di PageRank è misurare la rilevanza di una
pagina web in relazione alla sua popolarità che è a sua volta calcolata in base al numero e
alla rilevanza dei link entranti. Facciamo un esempio e supponiamo di voler calcolare con
PageRank la rilevanza di una pagina P che contiene informazioni sul gruppo musicale
Pink Floyd. Il valore prodotto come risultato dipende essenzialmente da due fattori:
quante pagine web puntano alla pagina P considerata (numero di link entranti) e quanto
sono autorevoli queste pagine, cioè quanto sono rilevanti rispetto all’argomento trattato.
In pratica, nel calcolo della rilevanza di P eseguito da PageRank, i link provenienti da pa-
gine che trattano l’argomento Pink Floyd hanno un peso maggiore, e tale peso è ancor più
CastanoWSU cap10 18-12-2008 16:46 Pagina 107

Utilizzo di un motore di ricerca: esempi con Google 107

significativo se il link proviene da una pagina che sull’argomento Pink Floyd è riconosciu-
ta come molto rilevante. Si tratta di un procedimento analogo al meccanismo delle cita-
zioni in una comunità scientifica: il prestigio di uno scienziato è funzione del numero di
volte che i suoi risultati sono menzionati nei lavori degli altri membri della comunità, e la
citazione è tanto più significativa quanto più alto è il prestigio di colui che la effettua.
Comprendere il funzionamento di PageRank può essere molto utile qualora si fosse
coinvolti nella progettazione di un sito web. È evidente che obiettivo di un progettista è
realizzare un prodotto che abbia un elevato valore di PageRank in modo che sia restituito
fra i primi risultati del motore di ricerca. Pur essendo un elemento importante per il suc-
cesso di un sito web, la bravura del progettista non è di per sé sufficiente a garantire un
buon valore di PageRank: per raggiungere l’obiettivo è necessario coltivare una rete di re-
lazioni con i siti di maggior rilievo nel proprio settore, in modo da incrementare il nume-
ro e la qualità dei link entranti.
Si sarà notato che la procedura illustrata è ricorsiva: la rilevanza di una pagina è fun-
zione della rilevanza di altre pagine a essa collegate mediante link entranti. Data la strut-
tura potenzialmente ciclica dei link, l’implementazione di PageRank richiede la definizio-
ne di opportune condizioni di terminazione che, insieme ai coefficienti di pesatura dei
link, costituiscono gli aspetti riservati della versione che Google attualmente utilizza nel-
l’ambito del proprio motore di ricerca.
Dalla precedente descrizione di PageRank discende che la rilevanza di una pagina
web può essere determinata a priori e non dipende in alcun modo dalle ricerche degli
utenti. A riprova di questo fatto, pensiamo che esistono siti come [Link]
[Link]/ dove è possibile specificare la URL di una pagina web e visualiz-
zare il corrispondente valore di PageRank senza dover inserire alcuna chiave di ricerca.
Questo risultato può stupire: un utente si aspetta che la rilevanza di una pagina nel
risultato del motore di ricerca dipenda dall’adeguatezza delle chiavi di ricerca utilizzate.
In effetti, le chiavi utilizzate dall’utente sono di importanza cruciale nella determinazione
del risultato perché sono utilizzate dal motore di ricerca per selezionare le pagine di po-
tenziale interesse per l’utente. Tuttavia, l’ordinamento dei risultati dipende dal valore di
PageRank e prescinde dalle chiavi di ricerca. In altri termini, è come se tutte le pagine rac-
colte dal motore fossero organizzate in una sequenza ordinata in base al valore di Page-
Rank e la ricerca di un utente avesse come unico effetto quello di filtrare la sequenza
estraendo le pagine pertinenti e scartando le altre.

Utilizzo di un motore di ricerca:


esempi con Google
Vediamo ora le principali funzionalità di un motore di ricerca mediante alcuni esempi
con Google. Al caricamento della prima pagina del motore di ricerca, in base alle impo-
stazioni del browser, è possibile che l’utente sia re-diretto alla versione localizzata in italia-
no del motore di ricerca ([Link] come mostrato nella Figura 10.2; in
ogni caso, si può cambiare la lingua di riferimento e altre impostazioni relative all’inter-
faccia utilizzando il pannello Preferenze accanto alla casella di ricerca.
Riguardo alla lista di chiavi di ricerca, è bene sapere che ogni termine specificato
sarà utilizzato per valutare l’attinenza di una pagina: affinché una pagina sia inclusa nel ri-
CastanoWSU cap10 18-12-2008 16:46 Pagina 108

108 Capitolo 10 I motori di ricerca

Figura 10.2 Esempio di ricerca base con Google.

sultato, è necessario che contenga almeno un’occorrenza di ciascuna chiave. Inoltre, si


tenga presente che Google considera solo le prime dieci chiavi di ricerca, ignorando even-
tuali altri termini specificati dall’utente. Nella formulazione della richiesta, è bene cerca-
re di evitare l’uso di stop word che sono automaticamente eliminate dal motore di ricerca
(si veda il Capitolo 7 per la definizione di stop word). Infine, l’ordine con cui le chiavi di
ricerca sono specificate e la ripetizione dei termini più importanti sono tecniche che pos-
sono influenzare la qualità dei risultati.
L’esempio nella Figura 10.2 riporta il risultato di Google con le chiavi di ricerca
“discografia”, “Pink”, “Floyd”. L’elenco dei risultati è restituito nella parte inferiore della
schermata dove, per ogni elemento, il motore fornisce una breve descrizione del contenu-
to evidenziando la posizione delle chiavi di ricerca e l’URL a cui la pagina può essere re-
perita. Il motore fornisce anche un collegamento alla copia cache che è costituita dalla pa-
gina acquisita da Google in fase di crawling ed è accessibile all’utente qualora la pagina
originale sia temporaneamente indisponibile. Nella parte destra, la schermata riporta al-
cuni dati di sintesi relativi alla ricerca e una lista di collegamenti sponsorizzati. I dati di sin-
tesi riportano una stima del numero di risultati restituiti dal motore (circa 860.000 nel
nostro esempio) e un’indicazione del tempo che è stato necessario per produrli (0,17 se-
condi). Per favorire la leggibilità, Google visualizza i risultati della ricerca in modo pagi-
nato e l’utente può navigare fra le pagine tenendo presente che avanzando nella lista, la ri-
levanza dei risultati decresce fino a diventare poco significativa. I collegamenti
sponsorizzati sono risultati che non provengono dal normale meccanismo di selezione ba-
sato su PageRank, ma derivano da un servizio chiamato Google AdWords che permette la
pubblicazione di annunci sul motore di ricerca. Si tratta di un servizio a pagamento usa-
to dagli utenti che vogliono incrementare la visibilità del proprio sito. L’utente iscritto ad
AdWords prepara un annuncio e il motore lo include nei risultati delle ricerche come col-
CastanoWSU cap10 18-12-2008 16:46 Pagina 109

Utilizzo di un motore di ricerca: esempi con Google 109

Opzione Descrizione
Trova risultati che contengono È l’opzione di base. Una pagina deve contenere almeno
tutte le seguenti parole un’occorrenza di ciascuna chiave specificata (in qualsiasi
posizione e ordine) affinché sia inclusa nel risultato.
Trova risultati che contengano Una pagina deve contenere esattamente la frase specificata
la seguente frase affinché sia inclusa nel risultato.
Trova risultati che contengono È sufficiente che una pagina contenga almeno un’occorrenza
una qualunque delle seguenti di una chiave specificata affinché sia inclusa nel risultato.
parole
Trova risultati che non Esclude dal risultato le pagine che contengono uno o più
contengono le seguenti parole termini specificati.
Lingua Solo le pagine scritte nella lingua specificata saranno incluse
nel risultato.
Regione Solo le pagine provenienti da siti della nazione (o regione)
specificata saranno incluse nel risultato.
Formato file Include (o esclude) nel risultato solo i file nel formato
specificato.
Domini Include (o esclude) nel risultato solo le pagine appartenenti al
dominio specificato

Tabella 10.1 Opzioni di ricerca avanzata con Google.

legamento sponsorizzato quando ne rileva la pertinenza rispetto alle chiavi di ricerca. Il


costo del servizio è funzione dei risultati prodotti, cioè del numero di visite al sito genera-
te dall’annuncio.
Oltre alle caratteristiche di base illustrate nel precedente esempio, Google mette a
disposizione opzioni di ricerca avanzate che permettono di perfezionare e raffinare il risul-
tato. Dal link accanto alla casella di ricerca, è possibile accedere al pannello delle opzioni
avanzate di cui riportiamo una selezione delle principali nella Tabella 10.1.
Consideriamo l’esempio di ricerca avanzata mostrato nella Figura 10.3(a).
Come nella ricerca precedente, l’obiettivo è reperire materiale relativo alla discogra-
fia del gruppo musicale Pink Floyd, ma restringendo il risultato alle risorse che soddisfano
i seguenti vincoli.
◆ Escludere il termine “testi”. Con questa opzione si vogliono eliminare dal risultato
quelle risorse che contengono i testi delle canzoni dei Pink Floyd.1
◆ Limitare il risultato alle pagine web in lingua italiana.
◆ Limitare il risultato ai file in formato Adobe PDF.
◆ Limitare il risultato alle pagine provenienti da siti del dominio .com (commerciale).

1 L’efficacia di questa opzione non è garantita. È sufficiente che la pagina non utilizzi il termine “testi” o un
suo sinonimo affinché sia inclusa nel risultato anche se contiene il testo di una o più canzoni del gruppo.
Questo accade perché l’opzione del motore di ricerca è un criterio sintattico e non è sufficiente a catturare il
significato di ciò che è contenuto in una pagina.
CastanoWSU cap10 18-12-2008 16:46 Pagina 110

110 Capitolo 10 I motori di ricerca

Figura 10.3 Esempio di ricerca avanzata con Google.

Il risultato di questa ricerca è mostrato nella Figura 10.3(b). L’effetto delle opzioni avan-
zate è evidente, se non altro per il fatto che la stima del numero di risultati è sceso drasti-
camente (circa 45). Vale la pena notare che le opzioni selezionate dall’utente sono visibili
anche nella casella di ricerca del risultato:
discografia pink floyd -testi site:.com filetype:pdf
Questo perché le opzioni avanzate possono essere specificate direttamente nella casella di
ricerca senza utilizzare il pannello di ricerca avanzata. In questo caso, è necessario cono-
scere la sintassi di ogni opzione. Ad esempio, anteporre il trattino (-) a un termine signi-
fica escludere dal risultato le risorse che contengono quel termine, mentre site: e
filetype: sono le parole riservate da usare per impostare rispettivamente vincoli sul do-
minio e sul formato dei file da includere nel risultato.
Nei precedenti esempi, i risultati delle ricerche erano essenzialmente costituiti da pa-
gine web. Google, come tutti i principali motori di ricerca, permette di indirizzare una ri-
CastanoWSU cap10 18-12-2008 16:46 Pagina 111

Servizi e strumenti aggiuntivi dei motori di ricerca 111

Figura 10.4 Esempio di ricerca per immagini con Google.

cerca anche su tipologie di risorse di natura diversa, come immagini, filmati e mappe geo-
grafiche. L’utente può selezionare la tipologia che desidera utilizzare nella pagina principa-
le di Google: in alto a sinistra sono visualizzate, oltre ad alcuni servizi aggiuntivi del moto-
re di ricerca, tutte le opzioni disponibili. A questo proposito, l’esempio della Figura 10.4
mostra il risultato di una ricerca relativa ancora una volta alla discografia del gruppo musi-
cale Pink Floyd, ma questa volta utilizzando le immagini come tipologia di risorse da con-
siderare nel risultato. Vale la pena notare che il meccanismo usato dal motore di ricerca per
selezionare i risultati non è diverso da quello descritto in precedenza. In fase di indicizza-
zione, le risorse, siano esse immagini, filmati o altro, sono annotate con parole chiave che
ne descrivono il contenuto. In fase di interrogazione da parte degli utenti, tali annotazioni
sono utilizzate dal motore per determinare quali risorse includere nel risultato.

Servizi e strumenti aggiuntivi dei motori di ricerca


Negli ultimi anni, le funzionalità dei motori di ricerca sono andate perfezionandosi e
consolidandosi senza trascurare l’obiettivo di ampliare l’offerta di nuovi servizi. In questo
senso, il caso di Google è significativo. Accanto alle funzioni di ricerca, sono comparse
nuove funzionalità che, previa registrazione (gratuita), consentono agli utenti di Google
di disporre di una piattaforma software completamente realizzata con tecnologie web. Ad
esempio, è disponibile il servizio Google Mail ([Link] per la gestio-
ne di caselle di posta elettronica (Figura 10.5(a)) e la suite Google Docs
([Link] composta da uno strumento di video scrittura, un foglio di
CastanoWSU cap10 18-12-2008 16:46 Pagina 112

112 Capitolo 10 I motori di ricerca

Figura 10.5 Esempi di servizi aggiuntivi di Google. (a) Google Mail (GMail), (b) Google Docs.

calcolo e uno strumento per la creazione di presentazioni (Figura 10.5(b)), in concorren-


za con le tradizionali suite per l’ufficio come Microsoft Office.
Negli obiettivi di Google, la scelta di realizzare questi prodotti completamente su
Web mira a favorire la collaborazione fra gli utenti supportando meccanismi di utilizzo
condiviso di documenti. In questo scenario, ogni utente è dotato di uno spazio web dedi-
cato che funge da area di lavoro personale e da piattaforma di condivisione con gli altri
utenti dove è possibile memorizzare i propri documenti.
Inoltre, sempre più spesso, i motori di ricerca mettono a disposizione strumenti che
possono essere scaricati e installati sul proprio elaboratore. L’esempio tipico è la barra di
strumenti (toolbar) che si integra con il browser e consente all’utente di avere accesso diret-
to ai servizi del motore di ricerca. Google Toolbar, Yahoo! Toolbar, Windows Live Toolbar
sono esempi di questo tipo. Nel caso di Google, la varietà di software disponibili per il
download e l’installazione è anche più ampia e arriva a includere uno strumento per l’indi-
cizzazione e la ricerca di file su un elaboratore (Google Desktop search - [Link]
.[Link]/) e un browser (Google Chrome - [Link]
Oltre a quelli appena considerati, altri servizi sono disponibili o stanno facendo la
loro comparsa in Google come in altri motori di ricerca. C’è da aspettarsi che la lista di
servizi e funzionalità sarà ulteriormente arricchita nei prossimi anni, fino ad arrivare al
punto, ipotizzato da qualcuno, in cui documenti e programmi software di un utente sa-
ranno sul Web e non si avrà bisogno di altro se non di un browser e di un accesso alla re-
te Internet per poter lavorare da una qualunque postazione.
CastanoWSU cap11 18-12-2008 16:47 Pagina 113

Capitolo 11

Progettazione di siti web:


usabilità e accessibilità

La progettazione di siti web, e delle applicazioni informatiche in generale, non si riduce


alla risoluzione di problemi tecnici e di gestione dei dati. Le applicazioni informatiche
necessitano, infatti, di confrontarsi con l’utente finale e richiedono dunque di essere pro-
gettate tenendo in considerazione i problemi di natura cognitiva e pratica connessi all’u-
so di tali applicazioni. Un primo problema è l’accessibilità, intesa come la capacità di un
sito web di essere fruibile da utenti con difficoltà di accesso e lettura delle risorse digitali,
come ad esempio le persone ipovedenti. Un secondo e più generale ordine di problemi,
su cui concentreremo l’attenzione in questa sede, è l’usabilità. Per usabilità intendiamo il
grado in cui un prodotto può essere usato da particolari utenti per raggiungere certi
obiettivi con efficacia, efficienza e soddisfazione in uno specifico contesto. L’importanza
di tali obiettivi è evidente se si pensa che un sito web ha la peculiarità di produrre un pos-
sibile guadagno economico solo in seguito al suo utilizzo. La soddisfazione dell’utente di-
viene quindi un parametro di successo commerciale di questa specifica applicazione
dell’informatica. Il Web è anche il punto d’incontro fra due metodi di lavoro e professio-
nalità diversi: l’orientamento all’efficacia comunicativa e il design, lo stile e l’impatto del-
l’immagine sui processi cognitivi dell’utente. In tale contesto poi, occorre ricordare che
chi progetta un sito web ha una visione del prodotto finale molto differente da quella del-
l’utente. Questa diversa visione è schematizzata nella Figura 11.1, in cui il risultato finale
è contrapposto al codice che lo genera.
L’usabilità diviene dunque uno strumento di progettazione che mira a ridurre que-
sta distanza. La nozione di usabilità tenta dunque di catturare in termini più formali la
sensazione di soddisfazione o di frustrazione che ognuno di noi ha esperito nell’uso di di-
versi siti web. In generale, infatti, riteniamo un sito più facile da usare o più utile o grade-
vole per ragioni connesse in larga misura allo sforzo cognitivo che richiede. L’usabilità ha
un ruolo importante nel determinare il successo di un sito e influisce persino sulla valuta-
zione del contenuto trasmesso. Per rendercene conto possiamo ricorrere all’esempio di un
libro stampato in caratteri minuscoli e con il testo estremamente fitto. Supponendo di
chiedere a un gruppo di persone di leggere il testo, ci renderemmo conto che la fatica ri-
chiesta agli occhi influisce spesso in maniera determinante sulla valutazione complessiva
del testo e sulla qualità dei contenuti. Dare però una misura del grado di usabilità di un
CastanoWSU cap11 18-12-2008 16:47 Pagina 114

114 Capitolo 11 Progettazione di siti web: usabilità e accessibilità

Figura 11.1 Risultato finale e codice sorgente di un sito web.

sito web o definire alcuni criteri generali è difficile poiché l’usabilità è, per definizione,
una nozione dipendente dal tipo di utente e dai suoi obiettivi, dalla natura e dagli obiet-
tivi comunicativi del sito e, infine, dal contesto nel quale il sito è consultato. Per loro na-
tura i siti web, a eccezione di casi specifici, possono difficilmente fare affidamento sul ti-
po di utente che li consulterà o sul contesto in cui la fruizione avrà luogo. In ogni caso,
anche avendo questo tipo di informazione, sarà necessario riferirsi ad alcuni criteri gene-
rali per la progettazione. Recentemente, la letteratura sui problemi di usabilità ha avuto
un grande sviluppo a partire da alcune pubblicazioni di notevole successo (Nielsen, 1999;
Krug, 2005). Lo scopo della ricerca in questo campo è propriamente l’individuazione di
alcuni principi generali che guidino lo sviluppo delle applicazioni web tenendo conto
delle esigenze di usabilità.

Principi generali di usabilità


Il primo criterio di usabilità è la percezione dell’utente. Un sito web è visto essenzialmen-
te come un esercizio cognitivo in cui, in ogni momento, l’utente è posto di fronte a un’e-
sperienza complessa e altra rispetto alla sua quotidianità (la pagina web) in cui non può
sfruttare i riferimenti percettivi e logici che adotta invece in situazioni di vita non virtua-
li. La complessità è causata sia dalla percezione contemporanea di testo e immagini fisse o
in movimento, sia dal susseguirsi delle pagine web durante il processo di navigazione del
sito. In generale, il Web è un mezzo comunicativo caotico e veloce, in cui in una sola pa-
gina si condensano diverse tipologie di segni che hanno scopi diversi, come ad esempio la
CastanoWSU cap11 18-12-2008 16:47 Pagina 115

L’approccio di Jakob Nielsen 115

decorazione, la trasmissione di informazione o la realizzazione di funzioni di navigazione


e fruizione del sito. Inoltre, i link permettono all’utente una navigazione potenzialmente
frenetica, in cui la percezione è chiamata a confrontarsi rapidamente con scenari anche
molto disomogenei fra loro.
Il secondo criterio riguarda la capacità di un’applicazione web di accompagnare l’u-
tente nella fruizione del sito. In generale, infatti, non siamo abituati all’interruzione im-
provvisa del flusso della nostra esperienza e tendiamo ad applicare alla percezione criteri
di continuità. In campo informatico, invece, un comportamento anomalo o un errore di
un’applicazione possono modificare radicalmente lo scenario percettivo lasciando l’uten-
te spaesato e incapace di affrontare la nuova situazione. Per fare un esempio, se di colpo la
legge di gravità si “rompe”, la nostra capacità di abitare gli spazi fisici cambia radicalmen-
te. Analogamente, un sito può smettere di funzionare e presentare all’utente un errore che
blocca la sua capacità di utilizzare lo strumento.
Un terzo criterio, infine, è relativo al fatto che l’esperienza di un sito web è un’espe-
rienza di natura tecnologica, tale cioè da richiedere strumenti software per essere fruita.
Chi progetta un sito web non è in grado di controllare con quale browser un utente fruirà
il sito web né se vi accederà da un calcolatore fisso o da un dispositivo mobile come un te-
lefono cellulare o un palmare. Il progettista ha dunque l’obiettivo di garantire una frui-
zione uniforme al sito a prescindere dalla strumentazione tecnologica dell’utente.
Alla luce della vastità dei criteri enunciati, dunque, la progettazione dell’usabilità è
un’attività complessa che richiede competenze di tipo comunicativo, linguistico e tecnico.

L’approccio di Jakob Nielsen


Per esemplificare i criteri specifici che mirano ad aumentare l’usabilità di un sito, prendia-
mo in esame le tesi di Jakob Nielsen, uno dei maggiori esperti di tali problematiche.
I principi promossi da Nielsen sono ben illustrati dal suo sito web, riportato nella Figu-
ra 11.2.1
La posizione di Nielsen ha provocato molte discussioni per la decisione di risolvere
in maniera radicale il problema della contrapposizione fra usabilità e scelte grafiche. Per
molto tempo infatti, soprattutto a causa dei limiti di HTML e CSS, la veste grafica di un
sito e la sua usabilità sono stati visti come elementi fortemente contrapposti. Per ottenere
un risultato grafico d’impatto infatti era necessario ricorrere a tecnologie non standard
(come Flash) o non sempre adatte a ogni browser. Nielsen risolve la contrapposizione sce-
gliendo la via della minimalità grafica a vantaggio della leggibilità e dell’usabilità. Va det-
to che tale contrapposizione è oggi meno attuale, poiché le possibilità grafiche di HTML
e, soprattutto, dei CSS è fortemente cresciuta. A patto di ricorrere a una progettazione at-
tenta agli standard è dunque possibile realizzare un sito fortemente orientato all’usabilità
senza rinunciare all’elaborazione grafica. Molti esempi di siti rigidamente rispettosi degli
standard, ma molto elaborati graficamente, si possono trovare all’indirizzo
[Link] (Figura 11.3).
Tornando a Nielsen, possiamo individuare alcuni criteri di riferimento per schema-
tizzare l’approccio proposto. In primo luogo viene ribadita l’esigenza di sostenere quanto

1 [Link]
CastanoWSU cap11 18-12-2008 16:47 Pagina 116

116 Capitolo 11 Progettazione di siti web: usabilità e accessibilità

Figura 11.2 Esempio commentato del sito [Link].

Figura 11.3 Esempio di sito web graficamente elaborato ma altamente usabile.

più possibile l’attività di navigazione dell’utente, rendendo evidente dove egli si trovi e
quali interazioni abbia avuto, utilizzando un linguaggio a lui chiaro, fornendo metodi ra-
pidi per ottenere l’informazione e prevedendo la possibilità di errori umani o del softwa-
re. Per tale ragione, un’indicazione essenziale del livello di usabilità di un sito è la presen-
za di link e menu che collochino la pagina attualmente visitata all’interno della struttura
del sito. Prendendo ad esempio la Figura 11.2, ci si rende conto del ruolo della barra in
CastanoWSU cap11 18-12-2008 16:47 Pagina 117

Usabilità e sforzo cognitivo 117

testa alla pagina: essa contiene l’indicazione del percorso di navigazione (sulla sinistra) e
una casella di ricerca (sulla destra) che consente il rapido accesso a nuovi contenuti. Un
secondo importante principio è orientato a minimizzare gli elementi tecnici che rendono
complessa e non intuitiva l’interazione uomo-macchina, utilizzando uno stile minimali-
sta e bilanciando la quantità di informazione fornita in una sola pagina. Inoltre, tutta la
costruzione della pagina è orientata ad anticipare le necessità dell’utente, a rendere l’uten-
te cosciente in ogni momento delle operazioni del sistema e delle pagine di un sito coe-
renti strutturalmente. Tutto ciò si ottiene con alcuni semplici accorgimenti: utilizzare
coerentemente i colori, favorire la leggibilità del testo, usare i link per definire con chia-
rezza i percorsi di navigazione possibili. In generale, l’obiettivo finale è massimizzare l’ef-
ficienza dell’utente, non dell’applicazione.

Usabilità e sforzo cognitivo


I problemi di usabilità ruotano attorno all’idea che la consultazione di un sito richieda
all’utente due tipologie di sforzi cognitivi: da un lato lo sforzo richiesto per concentrarsi e
comprendere i contenuti del sito o per reperire ciò che si stava cercando; dall’altro lato, lo
sforzo rivolto esclusivamente all’uso dell’applicazione. A titolo di esempio, possiamo uti-
lizzare la metafora dell’automobile. Immaginiamo qualcuno impegnato nel viaggiare in
automobile dal punto A al punto B. Egli dovrà concentrarsi sulla strada migliore per arri-
vare a B partendo da A in modo da raggiungere l’obiettivo di arrivare rapidamente a de-
stinazione. Accanto a questo sforzo però si colloca l’attenzione necessaria per guidare l’au-
tomobile, per cambiare le marce in maniera adeguata e per rispettare il codice della strada.
I due sforzi cognitivi sono entrambi fondamentali, ma hanno finalità diverse: il primo, in-
fatti, è orientato all’obiettivo primario del soggetto, per così dire all’efficienza dell’utente;
il secondo è solo strumentalmente connesso all’obiettivo, poiché la concentrazione richie-
sta non è rivolta al raggiungimento del punto B, ma solo all’efficienza del mezzo con cui
arrivarci. Analogamente, possiamo distinguere fra efficienza dell’utente di un sito web,
cioè quanto facilmente e velocemente egli apprenda il contenuto proposto, ed efficienza
dell’applicazione, cioè quanto facilmente e velocemente egli riesca a utilizzare il sito. Poi-
ché lo scopo dell’usabilità è la massimizzazione dell’efficienza dell’utente, occorre ridurre
al minimo lo sforzo cognitivo per utilizzare il sito, in modo da lasciare all’utente la libertà
di concentrarsi esclusivamente sul contenuto. Questo principio è stato enunciato da Krug
con la provocatoria massima “Don’t make me think” (non farmi pensare). In definitiva, si
intende che un’applicazione web ideale non dovrebbe richiedere alcuno sforzo cognitivo.
Krug indica poi due criteri che consentono di ridurre tale sforzo.
1. Ogni click deve essere una scelta che non richiede impegno e non è ambigua.
2. Sbarazzati di metà delle parole di ogni pagina, e poi sbarazzati della metà di quello
che resta.
Tali criteri si concentrano sui due aspetti centrali dell’attività di consultazione di un sito
web. Le due attività principali sono infatti l’uso delle funzionalità attive del sito (pulsanti
e link) e la lettura. Partendo dall’azione di selezione operata con il mouse, Krug spiega
che ogni click inutile o ambiguo genera frustrazione nell’utente e rallenta l’attività di con-
sultazione del sito stesso. Quello del tempo di consultazione è, in particolare, un punto
CastanoWSU cap11 18-12-2008 16:47 Pagina 118

118 Capitolo 11 Progettazione di siti web: usabilità e accessibilità

(a) (b)

Figura 11.4 Punto di vista dell’utente (a) e punto di vista del progettista (b).

centrale. L’attività di navigazione sul Web è tipicamente frenetica e basata sull’aspettativa


di una reazione immediata dell’applicazione alle azioni di consultazione. Ogni latenza di-
viene indice di un malfunzionamento o di una perdita di tempo. Pertanto, sono da evita-
re le pagine copertina, usatissime fino a qualche tempo fa. Per pagina copertina intendia-
mo tutte le pagine che non hanno alcun ruolo informativo, ma fungono solo da punto di
accesso al sito vero e proprio. Tali pagine richiedono all’utente un inutile click per prose-
guire; è invece più utile e funzionale presentare alcune informazioni di primo piano diret-
tamente sulla pagina principale del sito. Il messaggio e la struttura del sito devono essere
auto-esplicativi. Dove ciò non sia possibile, il sito deve fornire spiegazioni semplici su co-
me usarlo e puntare a mantenere l’utente concentrato sul contenuto e sui propri bisogni,
senza ingenerare frustrazione, grazie alla chiarezza nella strutturazione delle pagine e all’u-
so di riferimenti ormai canonici in ambito web. A tale scopo occorre ricordare in ogni
momento della progettazione, che il punto di vista del progettista non è quello dell’uten-
te, come esemplificato nella Figura 11.4.
Il compromesso fra il progetto tecnico e gli obiettivi dell’utenza è ottenuto ponendo
in primo piano le esigenze dell’utente e, appunto, cercando di minimizzare il numero di
attività necessarie allo scopo. In generale dunque, il numero di interazioni (click) necessa-
ri per raggiungere un’informazione è determinante. Le interazioni devono essere giustifi-
cate per quantità e qualità, considerando che siti estesi e siti profondi utilizzano i link in
modo diametralmente opposto. Il fattore determinante è che il Web è visto come un con-
testo nel quale l’utente è chiamato a fare delle scelte e quindi ogni scelta deve avere delle
ragioni che la giustifichino.
Il Web inoltre richiede un adeguamento delle tecniche di scrittura al mezzo. La pa-
gina web non è una pagina stampata e il costo della lettura è maggiore. Ciò implica un ri-
dimensionamento della quantità di testo e una diversa organizzazione spaziale e tipogra-
fica della scrittura. Anche in questo caso un esempio comparativo rende immediate le
differenze di fruizione fra testi organizzati in modo diverso (Figura 11.5).
La scrittura sul Web è condizionata da due fattori decisivi legati alle abitudini di let-
tura degli utenti. In primo luogo occorre considerare che la lettura su monitor è dal 20%
al 30% più lenta e faticosa che sulla carta; inoltre, gli utenti passano velocemente in ras-
segna la pagina alla ricerca di parole chiave, piuttosto che leggere sequenzialmente. Come
CastanoWSU cap11 18-12-2008 16:47 Pagina 119

Usabilità e sforzo cognitivo 119

(a) (b)

Figura 11.5 Diverse organizzazioni della scrittura sul Web.

conseguenza, il testo di una pagina web deve interessare il lettore e spingerlo alla lettura e,
al tempo stesso, fornirgli informazioni “consumabili” rapidamente. L’assenza di un proce-
dimento di lettura sequenziale richiede inoltre di guidare lo spostamento dell’attenzione
rispetto allo spazio della pagina, poiché lo spazio della scrittura è fisicamente determina-
to dal browser e dalle sue funzioni di scorrimento del testo. Il testo deve poi essere breve
e incisivo, privo di ambiguità e deve bilanciare con attenzione le quantità di informazio-
ne. In generale, si dice che la scrittura per il Web segue una regola denominata “piramide
rovesciata”, in cui i concetti più rilevanti e le conclusioni vanno enunciate sempre all’ini-
zio poiché, in assenza di attenzione prolungata, la parte iniziale del testo ha più probabi-
lità di essere letta. Per la stessa ragione, i blocchi di testo compatti sono difficilmente leg-
gibili; il testo va spezzato frequentemente e le colonne non devono essere troppo larghe
né il testo eccessivamente lungo. Un ulteriore problema, riguarda la formattazione dei ca-
ratteri. In particolare, occorre utilizzare caratteri tipografici standard a elevato contrasto
(testo nero su sfondo bianco), usando titoli e sommari frequentemente. Questi risultati
sono ottenibili anche ricorrendo a speciali marcatori di HTML. Ad esempio, HTML 4.0
introduce due marcatori che consentono di sfruttare il browser per rendere fruibili all’u-
tente abbreviazioni e acronimi. Tali marcatori sono attualmente poco usati, ma indicato-
ri di un sito molto coerente agli standard: ad esempio, le due istruzioni seguenti introdu-
cono un’abbreviazione e un acronimo rispettivamente.
<abbr title="ad libitum">ad lib.</abbr>

<acronym title="Fondamenti di
Informatica per le
Scienze Umanistiche">FISU</acronym>
Nell’interpretare tali marcatori, il browser procede a definire una piccola finestra che mo-
stra all’utente l’acronimo o l’abbreviazione per esteso. In generale, la percezione dei carat-
teri dipende dalla risoluzione e dalla luminosità dello schermo e dalla scomodità fisica
della lettura. Per tali ragioni è importante usare famiglie di caratteri adatti allo schermo,
come Verdana, Georgia, Arial o Sans-serif.
CastanoWSU cap11 18-12-2008 16:47 Pagina 120

120 Capitolo 11 Progettazione di siti web: usabilità e accessibilità

Valutazione di un sito web


Per concludere, possiamo dunque riassumere alcune categorie che consentono di valutare
la progettazione di un sito web sul piano dell’usabilità. Una prima categoria riguarda cri-
teri quantitativi e oggettivi, come il tempo di esecuzione dell’applicazione web e il nume-
ro di errori prodotti. Vi sono poi criteri qualitativi e oggettivi, come ad esempio il fatto
che il colore sia usato per veicolare informazioni sui dati e non solo a scopo decorativo.
Altri criteri sono di tipo quantitativo e soggettivo, come ad esempio una scala di valuta-
zione circa una caratteristica del sito e i voti degli utenti. Infine, si possono individuare
criteri qualitativi e soggettivi come l’assegnazione di attributi specifici a un sito, a una
persona, a qualunque aspetto dell’attività di navigazione. In tutti questi casi è però deter-
minante capire che fra i due estremi della progettazione tecnica del codice di un’applica-
zione web e la progettazione dei contenuti vi è una attività di progettazione delle moda-
lità di comunicazione dei contenuti che determina l’usabilità di un sito web e, con essa, le
sue probabilità di successo come prodotto di comunicazione.
CastanoWSU cap12 18-12-2008 16:47 Pagina 121

Capitolo 12

L’evoluzione del Web:


Web 2.0 e Semantic Web

Il Web, in virtù soprattutto dell’ampio successo e della rapidità di crescita che lo caratte-
rizza, è in costante mutamento, sia dal punto di vista tecnologico, sia per la tipologia di
contenuti e applicazioni. Due fenomeni importanti nell’attuale processo di evoluzione
del Web sono il Web 2.0 e il Semantic Web.

Web 2.0: da un Web di documenti


a un Web di applicazioni
Il Web tradizionale, soprattutto ai suoi esordi, era popolato di pagine statiche, il cui sco-
po era proporre documenti che gli utenti potessero consultare e leggere. Nel parlare di
Web, ci si riferiva infatti prevalentemente alla nozione di sito web, piuttosto che di appli-
cazione web. Con il termine applicazione si intende, infatti, uno strumento software ca-
pace di operazioni complesse e con un livello elevato di interazione con l’utente. L’idea
centrale del Web 2.0 è proprio quella di sfruttare tecnologie nuove per arricchire e poten-
ziare le capacità di elaborazione e di interazione delle pagine web, passando così da con-
tenuti statici (documenti) a contenuti fortemente dinamici e interattivi (applicazioni). Il
Web, cioè, tende sempre più ad assomigliare al calcolatore domestico, sul quale vengono
eseguiti programmi complessi e svolta la quotidiana attività lavorativa. Tutto ciò con i
vantaggi della delocalizzazione delle applicazioni, tipica del Web, e di comunità di utenti
potenziali molto vaste. Quando si parla di Web 2.0 si intende quindi non tanto una par-
ticolare tecnologia, quanto un diverso approccio alla costruzione di siti web. La realizza-
zione concreta di questa visione del Web è resa poi possibile attraverso specifiche tecniche
di programmazione e progettazione delle pagine, come ad esempio Ajax. Ajax e altre tec-
nologie del Web 2.0 utilizzano un insieme di linguaggi di programmazione come
Javascript, di elementi dinamici e di fogli di stile (CSS) per gli aspetti grafici; parallela-
mente si ricorre a meccanismi comunicativi tipici delle comunità sociali per definire il ti-
po e il livello della interazione. Il tipo di transizione fra Web 1.0 e Web 2.0 è particolar-
mente interessante per noi come esempio sia di un cambiamento che consta più in un
CastanoWSU cap12 18-12-2008 16:47 Pagina 122

122 Capitolo 12 L’evoluzione del Web: Web 2.0 e Semantic Web

nuovo modo di intendere tecnologie esistenti che in un cambiamento delle tecnologie


stesse. Infatti, dal punto di vista dei contenuti tecnologici il Web 2.0 è pressoché identico
al Web tradizionale. Il cambiamento consiste soprattutto nel modo in cui gli utenti utiliz-
zano il mezzo, del quale si enfatizzano soprattutto la dimensione sociale e il problema del-
l’autorialità e del cosiddetto self-publishing.
Che il Web abbia una dimensione sociale è in qualche modo ovvio se pensiamo alla
struttura a rete delle connessioni fra calcolatori. Tuttavia, questa strutturazione era pro-
pria in origine solo dell’infrastruttura e delle dinamiche di navigazione, non delle comu-
nità di utenti che frequentano il Web. In altri termini, erano connesse fra loro pagine e
macchine, non persone. Una caratteristica invece dell’approccio del Web 2.0 è il pensare
ai siti come ad applicazioni a cui corrispondono gli utenti umani. In altri termini, la pre-
senza sul Web con un sito personale o un profilo corrisponde a una sorta di seconda iden-
tità; ecco dunque che, associando siti e profili, si ottiene una rete di identità o rete di per-
sone. La dimensione sociale del fenomeno è quindi tale non solo per le sue ripercussioni,
ma proprio perché collega luoghi in cui si gioca l’identità dei soggetti. Un altro fenome-
no tipico e rilevante è il self-publishing. Sino all’avvento del Web, tutte le tecnologie di
comunicazione di massa, dalla stampa alla radio-televisione, erano caratterizzate da un
tratto comune: la fruizione è libera, semplice e incoraggiata, mentre la produzione di con-
tenuti è complessa e richiede investimenti di competenze e risorse economiche fuori dal-
la portata dei singoli soggetti. Pensiamo ad esempio alla pubblicazione di un libro. Il libro
viene diffuso a costi relativamente bassi e in luoghi in cui l’accesso del pubblico di lettori
è vasto, come le librerie o, più recentemente, le catene di grande distribuzione. La produ-
zione del libro invece richiede competenze editoriali e tipografiche in aggiunta all’accesso
alle catene distributive; un singolo autore non può affrontare i costi di produzione e dif-
fusione di un libro. Nel caso di altri mezzi di comunicazione, come la televisione, questo
fenomeno è persino più accentuato. Una conseguenza di ciò è che non si può creare un
canale di comunicazione diretto fra autore e fruitore, poiché l’autore non possiede i mez-
zi di produzione e distribuzione della sua opera. Ciò ha comportato che fra autori e letto-
ri vi fosse tradizionalmente una terza figura, l’editore. L’editore svolge un ruolo di media-
zione (la mediazione editoriale, appunto) fra i soggetti coinvolti nella produzione e
fruizione di un’opera di ingegno. Il Web invece è uno strumento di comunicazione in cui
non solo i costi di fruizione sono bassissimi, ma anche quelli di produzione e distribuzio-
ne. Aprire e gestire uno spazio web e costruire pagine web sono operazioni alla portata di
tutti; la visibilità delle pagine è poi garantita dai motori di ricerca, che svolgono una fun-
zione analoga a quella della catena di distribuzione per i libri, ma a costo nullo. Nono-
stante questa facilità di accesso per gli autori, il Web tradizionale non ha annullato la me-
diazione editoriale. Una delle ragioni è che la scrittura delle pagine, così come la gestione
dello spazio di un server, pur avendo costi bassi richiedono comunque alcune competen-
ze tecniche e si scontrano così con un limite più di conoscenza degli autori che di natura
economica. Il Web 2.0 affronta questo problema mettendo a disposizione degli autori
strumenti e servizi che facilitano enormemente la creazione di pagine senza richiedere
specifiche competenze tecniche. La costruzione di un blog con strumenti come Word-
Press o Splinder, la pubblicazione di video con YouTube o la creazione di pagine persona-
li con MySpace, Flickr o Facebook sono esempi di come il Web 2.0 consenta agli autori
di pubblicare i propri contenuti per un pubblico potenzialmente vastissimo riducendo al
minimo la mediazione editoriale. Ciò non significa che il ruolo degli editori tradizionali
sia nullo, ma certamente è un esempio di come il Web 2.0 modifichi radicalmente il con-
CastanoWSU cap12 18-12-2008 16:47 Pagina 123

Semantic Web: da un Web di documenti a un Web di informazioni 123

cetto stesso di produzione editoriale. Torneremo su molti di questi fenomeni nel Capito-
lo 16 dedicato al social networking e per il momento, citiamo un ultimo esempio di ap-
plicazione del Web 2.0, che consiste nel fornire agli utenti un’intera piattaforma di lavo-
ro on-line, che modifica radicalmente la visione del calcolatore come strumento di lavoro
quotidiano. Infatti, il personal computer si è affermato come strumento di lavoro soprat-
tutto per la sua capacità di ospitare programmi per la produzione di testi, fogli di calcolo,
calendari, lettura della posta elettronica e molto altro. In generale, l’idea tradizionale del-
la stazione di lavoro è che ogni applicazione utile sia fisicamente legata al calcolatore che la
ospita. Per poter lavorare con i nostri documenti quando viaggiamo, ad esempio, è neces-
sario portare con sé fisicamente un calcolatore portatile e la presenza di un accesso a In-
ternet è solo funzionale all’uso di alcune di queste applicazioni, come ad esempio la posta
elettronica. L’idea di alcuni fornitori di servizi, Google primo fra tutti, è invece di ribalta-
re questa concezione, fornendo on-line uno spazio di lavoro completo, comprendente ap-
plicazioni di videoscrittura, di office automation e di memorizzazione di dati. In questo
modo, il calcolatore diviene solo il punto di accesso a uno spazio di lavoro che è sempre a
disposizione su un server. Pertanto, è sufficiente utilizzare un qualsiasi calcolatore dotato
di accesso alla rete e di un browser per poter svolgere il lavoro quotidiano. Questo ap-
proccio, noto col nome di Desktop remoto, apre al Web nuove potenzialità, superando l’i-
niziale vocazione di luogo di pubblicazione verso il nuovo ruolo di luogo di produzione.1

Semantic Web: da un Web di documenti


a un Web di informazioni
Se il Web 2.0 è basato sulla metafora del sistema operativo, in cui il Web è visto come un
enorme sistema capace di far funzionare applicazioni per milioni di utenti, il Semantic
Web è basato sulla metafora della base di dati o, più in generale di una base di conoscen-
za, in cui il Web è visto come una gigantesca sorgente di informazioni da interrogare co-
me una base di dati locale. Il Semantic Web nasce da un’idea del fondatore stesso del
Web, Tim Berners-Lee (Berners-Lee, 2001), che concepisce il Web come un potenziale
patrimonio di informazione sul quale possano operare non solo utenti umani, ma anche
agenti software che, opportunamente interrogati, reperiscano e riportino le informazioni
richieste, interagendo con altri agenti software. In altri termini, il Semantic Web prevede
che i dati pubblicati siano definiti e relazionati fra loro in modo da poter essere ricercati,
processati automaticamente, integrati e riutilizzati da più applicazioni, esattamente come
avviene per quelli memorizzati in una base di dati relazionale. Per comprendere appieno
l’idea, occorre capire perché le forme con cui i dati sono consultabili negli attuali siti web
non siano sufficienti. Certamente, infatti, possiamo visualizzare i nostri dati bancari sul
Web, pubblicare le nostre fotografie o i nostri appuntamenti, ma non possiamo sapere ad
esempio, con una sola interrogazione, quali appuntamenti avevamo il giorno in cui ab-
biamo scattato una certa fotografia. Eppure, una simile interrogazione sarebbe semplicis-
sima se avessimo memorizzato le informazioni di partenza in una tradizionale base di da-

1 Un elenco delle applicazioni per il desktop remoto offerte da Google è consultabile all’indirizzo
[Link]
CastanoWSU cap12 18-12-2008 16:47 Pagina 124

124 Capitolo 12 L’evoluzione del Web: Web 2.0 e Semantic Web

ti. Perché dunque i dati sul Web non hanno le stesse caratteristiche? I dati sul Web non
sono immediatamente accessibili, ma sono gestiti da applicazioni, come i siti, che li con-
servano nei propri formati e con le proprie procedure di interrogazione. L’idea di rendere
tutti i dati accessibili e scambiabili fra organizzazioni diverse richiede però alcuni cambia-
menti nel modo in cui attualmente essi vengono gestiti dalle applicazioni web. In parti-
colare i problemi principali sono due.
1. Il Web tradizionale è orientato allo scambio di documenti: per poter scambiare dati
è necessario prevedere nuovi formati di rappresentazione dell’informazione che sia-
no adatti alle esigenze di integrazione e combinazione dei dati.
2. È necessario disporre di linguaggi e modelli dei dati che consentono di rendere espli-
cita la relazione che intercorre fra i dati e gli oggetti reali denotati: ciò rende possibi-
le determinare automaticamente quando dati diversi provenienti da differenti fonti
informative si riferiscano allo stesso oggetto reale o alla stessa classe di oggetti reali.
Soprattutto il secondo punto pone però una sfida ardua e stimolante. Infatti, ciò che qui si
mette in discussione è il riferimento fra dato simbolico e oggetto reale denotato. Il proble-
ma della denotazione è un modo di mettere in discussione il problema del significato di un
dato o, se si preferisce, della sua semantica. Il Semantic Web deve il proprio nome soprattut-
to a questa impostazione, che solleva problemi enormi nella tradizione logico-filosofica oc-
cidentale. Vedremo più avanti come le risposte nell’ambito del Semantic Web siano soprat-
tutto di natura logica e mirino a definire linguaggi (come RDF o OWL) che permettano di
rendere esplicito il significato associato ai dati. Per comprendere meglio il problema, è ne-
cessario porsi dal punto di vista di una macchina, piuttosto che di un utente umano. Il Se-
mantic Web nasce, infatti, dall’osservazione che il Web tradizionale è completamente orien-
tato a un’utenza umana. Pertanto, il significato di una pagina web è demandato
all’interpretazione del lettore, di cui si presuppone la conoscenza del linguaggio naturale in
cui essa è scritta. Tuttavia, realizzare gli obiettivi di integrazione e interoperabilità auspicati
dal Semantic Web significa rendere il significato di una pagina web accessibile a una mac-
china, ovvero esplicito. Osserviamo ad esempio la porzione di pagina web nella Figura 12.1.

Pagina web fruita da un lettore umano La stessa pagina fruita da un agente software

Figura 12.1 Comprensibilità e significato di una pagina web.


CastanoWSU cap12 18-12-2008 16:47 Pagina 125

Semantic Web: da un Web di documenti a un Web di informazioni 125

La prima immagine rappresenta una pagina web come siamo abituati a vederla. In
questa pagina si descrivono alcune offerte di viaggio con mete e costi. Nella seconda im-
magine, la struttura della pagina è identica, ma la rappresentazione dei contenuti è stata
alterata per aiutarci a capire come un agente software possa misurarsi con il problema del
significato: esso infatti ha accesso alla struttura delle informazioni così come un utente
umano, ma è totalmente incapace di interpretare tali informazioni, così come un utente
umano posto di fronte a una pagina in cui ogni parola è sostituita con una stringa casua-
le di caratteri.
Il problema di interpretare automaticamente il significato delle pagine web non è
nuovo nel contesto del Web tradizionale: i motori di ricerca risolvono il problema indivi-
duando occorrenze ripetute dei lemmi, parole chiave, titoli, link, didascalie, ecc. Il tratto
comune di queste tecniche è che la semantica degli oggetti nel documento non è conside-
rata, ma solo il computo del numero e del tipo di occorrenze di una certa stringa o di un
certo contenuto. L’idea del Semantic Web è invece un’altra: associare alla pagina una di-
chiarazione esplicita relativa al significato degli elementi che essa contiene. Questa atti-
vità è detta annotazione semantica. Non potendo però associare i diversi dati che com-
paiono su una pagina direttamente agli oggetti reali che essi denotano, il problema
dell’interpretazione è risolto mettendo esplicitamente in relazione dati diversi fra loro, in
modo che il significato non dipenda tanto dall’interpretazione del singolo dato, quanto
dalla rete di relazioni che un certo dato ha con altri dati. Un esempio di questo approccio
è mostrato nella Figura 12.2.

Figura 12.2 Relazioni fra i dati all’interno di una pagina web.


CastanoWSU cap12 18-12-2008 16:47 Pagina 126

126 Capitolo 12 L’evoluzione del Web: Web 2.0 e Semantic Web

Astraendo dunque lo schema delle relazioni interne agli elementi della pagina, otte-
niamo la reale percezione del significato dell’informazione per come essa si presenta a un
agente software del Semantic Web (Figura 12.3).
Il Semantic Web mette a disposizione un insieme di linguaggi e tecniche per rappre-
sentare la descrizione semantica di una pagina web annotata. L’insieme di questi linguag-
gi e delle ricerche in questo campo è vasto ed esula dagli obiettivi di questa trattazione. È
però importante comprendere come il Semantic Web, così come, per altri versi, il
Web 2.0, metta in discussione problematiche che richiedono, a fianco di soluzioni tecni-
che e informatiche, anche una discussione di carattere teorico e metodologico che coin-
volge temi e problemi della tradizione umanistica e che può, potenzialmente, cambiare
radicalmente il Web come oggi lo conosciamo.

(L01 is-a Location)


(L02 is-a Location)
(L01 name "Polinesia Francese")
(L01 image "[Link]")
(L02 name "New York")

(T01 is-a Travel)


(T01 name "Cocktail Polinesiano")
(T01 price "3.560")
(T01 destination L01)

(T02 is-a Travel)


(T02 name "New York & Polinesia")
(T02 price "3.250")
(T02 destination L02)
(T02 period "13 giorni 10 notti")

Figura 12.3 Visualizzazione grafica e sintassi testuale di una pagina web annotata semanticamente.
CastanoWSU cap13 18-12-2008 16:48 Pagina 127

Capitolo 13

Gli strumenti essenziali: XML

Nei diversi ambiti in cui l’informatica entra in contatto con le discipline umanistiche, il
trattamento, l’archiviazione e la trasmissione di contenuti hanno un ruolo preminente.
Queste attività si avvalgono di strumenti tecnici fra i quali XML, il linguaggio di marca-
tura più diffuso per la rappresentazione di tipologie diverse di contenuto. XML
(eXtensible Markup Language) è dunque uno strumento in cui presto o tardi ci si imbatte
lavorando nell’ambito dell’informatica e sempre più presente in quella zona di confine
che si colloca fra il lavoro dell’umanista e quello dell’informatico. La conoscenza di XML
diviene dunque fondamentale per ragioni pratiche, ma anche indispensabile per com-
prendere alcune delle caratteristiche tipiche di molti prodotti dell’informatica.

Cos’è e cosa non è XML


XML è in primo luogo un linguaggio di marcatura, ovvero un linguaggio che definisce
particolari costrutti, i marcatori, che sono usati per associare informazione a una porzio-
ne di testo. In questo senso, XML fa parte della stessa famiglia del linguaggio HTML, ma
differisce per scopi e natura. HTML nasce infatti con l’obiettivo di definire come un te-
sto debba essere visualizzato da un browser. XML invece non ha per scopo la visualizza-
zione di un contenuto, ma la sua pura rappresentazione e organizzazione, ai fini di me-
morizzarlo e trasmetterlo. Inoltre, mentre HTML è un linguaggio specifico, in cui i
marcatori sono predefiniti e il loro uso regolato, XML è un meta-linguaggio, ovvero un
insieme di regole con cui è possibile costruire i propri marcatori e stabilire come vadano
usati. In altri termini, se sottomettiamo a un processo di validazione una pagina HTML,
il validatore controllerà non solo la posizione e la sintassi dei diversi marcatori, ma anche
l’esistenza nel linguaggio del marcatore usato. Un validatore XML invece si occupa solo
di validare il documento rispetto alla posizione e alla sintassi usata per i vari marcatori e
non rispetto al tipo di marcatori usati. Infatti, qualsiasi documento XML corretto sintat-
ticamente e strutturalmente è un documento valido, a prescindere dai marcatori utilizza-
ti. Con XML possiamo quindi definire molti linguaggi analoghi a HTML, specificando i
marcatori che compongono il nostro linguaggio e il modo in cui vanno usati. Ad esempio
è possibile riscrivere il linguaggio HTML in modo che sia compatibile con la sintassi e la
CastanoWSU cap13 18-12-2008 16:48 Pagina 128

128 Capitolo 13 Gli strumenti essenziali: XML

<email>
<a> ferrara@[Link] </a>
<da> [Link]@[Link] </da>
<oggetto> Messaggio </oggetto>
<testo> Questo è un messaggio di esempio </testo>
</email>

Figura 13.1 Una possibile codifica XML di un messaggio di posta elettronica.

struttura di XML, ovvero costruire una versione di HTML in XML. In effetti questa ope-
razione è stata compiuta dando origine al linguaggio XHTML1.
I dati codificati per mezzo di XML si dicono semi-strutturati poiché per definire un
documento valido non siamo costretti a definirne prima lo schema, come nel caso delle
basi di dati, ma è sufficiente fornire un’istanza del documento voluto: in un documento
XML lo schema, se non specificato, è implicito nella definizione dei dati. Per proseguire
nel paragone, avremmo un’analoga situazione nelle basi di dati relazionali se le costruissi-
mo definendo solo i dati che compaiono nelle righe di una tabella e non la struttura del-
la tabella stessa che rimarrebbe implicita nella strutturazione delle diverse righe.
Un’altra importante precisazione riguarda lo scopo dei linguaggi di marcatura in ge-
nerale e di XML in particolare: XML non è un linguaggio di programmazione, ovvero
non consente di definire azioni o comportamenti delle applicazioni software, ma solo la
struttura dei dati usati da tali applicazioni. Supponiamo ad esempio di rappresentare in
XML un messaggio di posta elettronica (Figura 13.1) :
Il messaggio nella Figura 13.1 rappresenta un esempio di piccolo documento XML
valido. Tuttavia, la codifica XML non comporta l’invio del messaggio e non ha nulla a
che fare con le applicazioni che si occupano di inviare, ricevere e mostrare il messaggio
stesso. XML ha il solo scopo di strutturare l’informazione aggiungendo metadati (ad
esempio il mittente, il destinatario, l’oggetto) e di costituire il formato in cui il messaggio
viene trasmesso. I marcatori in grassetto sono semplicemente informazioni testuali al pa-
ri delle altre, da cui si distinguono solo per ragioni sintattiche come l’uso delle parentesi
angolari. Questa caratteristica è molto importante perché consente di codificare l’infor-
mazione testuale mantenendone la natura di testo, senza ricorrere ad altra codifica delle
informazioni. Ciò significa che qualsiasi software capace di lavorare con file di testo è in
grado di lavorare anche con XML, senza richiedere funzionalità aggiuntive. Per compor-
re un documento XML è sufficiente quindi usare un qualsiasi strumento di scrittura del
testo. Il ricorso a strumenti di editazione specifici per XML è utile solo nella misura in cui
può semplificare il lavoro per mezzo di funzionalità specifiche, ma non è di per sé neces-
sario.

1 [Link]
CastanoWSU cap13 18-12-2008 16:48 Pagina 129

Struttura di un documento XML 129

Struttura di un documento XML


XML deve larga parte della sua fortuna e della sua diffusione alla semplicità di utilizzo e
di apprendimento. Le regole necessarie alla composizione di un documento XML valido
sono semplici ma rigorose e vanno rispettate letteralmente. Mentre infatti molti strumen-
ti software, fra i quali la maggior parte dei browser, consentono di visualizzare un docu-
mento HTML anche se contiene errori o non è del tutto valido, XML richiede sempre
una validazione e non può essere utilizzato se non perfettamente conforme al linguaggio.
Per introdurre le regole di composizione di un documento XML valido, prendiamo in
esame l’esempio della Figura 13.2, relativo al dominio cinematografico.
<?xml version="1.0" encoding="UTF-8"?>
<cinematografia>
<film codice="0052216">
<titolo> I soliti ignoti </titolo>
<regista> Mario Monicelli </regista>
<anno> 1958 </anno>
<cast>
<ruolo>
<attore> Vittorio Gassman </attore>
<personaggio> Peppe il pantera </personaggio>
</ruolo>
<ruolo>
<attore> Carla Gravina </attore>
<personaggio> Nicoletta </personaggio>
</ruolo>
</cast>
</film>
<film codice="0060125">
<titolo> L'armata Brancaleone </titolo>
<regista> Mario Monicelli </regista>
<anno> 1966 </anno>
</film>
</cinematografia>
Figura 13.2 Esempio di applicazione di XML ai dati del dominio cinematografico.2

Il documento inizia obbligatoriamente con un’istruzione speciale costituita dalla riga


<?xml version="1.0" encoding="UTF-8"?>

2 Per verificare il documento XML di esempio è sufficiente copiare il testo riportato in un documento di te-

sto e dotarlo dell’estensione .xml. Il documento può poi essere aperto con un browser che mostrerà la strut-
tura dei marcatori appena definita.
CastanoWSU cap13 18-12-2008 16:48 Pagina 130

130 Capitolo 13 Gli strumenti essenziali: XML

Questa istruzione ha una sintassi diversa dagli altri marcatori e ha lo scopo di dichiarare
alle applicazioni che accederanno al documento che si tratta di un documento XML e che
la codifica dei caratteri è conforme allo standard UTF-8. Nella restante parte del docu-
mento troviamo marcatori, detti anche tag, e testo. I marcatori sono inclusi fra parentesi
angolari. Le parentesi angolari sono pertanto caratteri che non possono essere usati nel re-
sto del documento, sono riservati alla dichiarazione dei marcatori. I tag si distinguono in
marcatori di apertura e di chiusura. Tutto ciò che è racchiuso fra l’apertura e la chiusura è
l’argomento o contenuto del marcatore. I marcatori di apertura sono caratterizzati dalla
sintassi <nome>, in cui nome può essere sostituito da qualsiasi stringa di testo che rappre-
senti il nome del marcatore. I marcatori di chiusura sono invece caratterizzati dalla sintas-
si </nome>. L’idea di XML è che il significato del marcatore si applichi a ogni elemento
contenuto in esso, fra la sua apertura e la sua chiusura. Pertanto, se, come nell’esempio,
vogliamo dire che Mario Monicelli è un regista, inseriremo la stringa “Mario Monicelli”
all’interno di un opportuno marcatore “regista”, secondo la seguente sintassi:
<regista> Mario Monicelli </regista>
I marcatori possono essere usati gli uni all’interno di altri. Nell’esempio della Figura 13.2,
titolo, regista e anno sono usati all’interno del marcatore film, indicando che si tratta
del titolo, regista e anno di un determinato film.
Riassumendo, le regole fondamentali di composizione di un documento XML vali-
do sono solo tre.
1. Ogni documento XML deve essere preceduto dalla dichiarazione:
<?xml version="numero della versione" encoding="codifica"?>
in cui l’indicazione della codifica è opzionale; se omessa, si presuppone che il docu-
mento sia codificato secondo lo standard UTF-8.
2. Ogni documento XML deve avere un marcatore che racchiude tutti gli altri, det-
to marcatore radice del documento. Nell’esempio della Figura 13.2, esso è
cinematografia.
3. I marcatori XML non possono essere sovrapposti, ovvero ogni marcatore deve chiu-
dersi entro la chiusura del marcatore che lo contiene. Ad esempio, lo schema:
<a> testo <b> testo </b> testo </a>
è corretto, mentre lo schema
<a> testo <b> testo </a> testo </b>
è scorretto, poiché il marcatore b viene chiuso dopo la chiusura del marcatore a che
lo contiene.
La principale conseguenza delle regole 2 e 3 è che il contenuto di ogni documento XML
può essere rappresentato come un albero rovesciato, in cui il marcatore radice costituisce
la radice dell’albero, i marcatori sono i nodi dell’albero che compaiono nell’ordine in cui
sono inseriti l’uno nell’altro e i contenuti testuali sono le foglie o nodi terminali dell’albe-
ro dal momento che non possono contenere marcatori. Per tale ragione, si fa spesso rife-
rimento ai marcatori XML denominandoli nodi. Un esempio di questa strutturazione è
mostrato nella Figura 13.3.
CastanoWSU cap13 18-12-2008 16:48 Pagina 131

Elementi di sintassi 131

Figura 13.3 Rappresentazione ad albero del documento XML della Figura 13.2.

La rappresentazione ad albero evidenzia il fatto che un insieme di dati in XML non ha


una struttura fissa, come avviene invece nelle basi di dati relazionali. Infatti, nel caso del
film L’armata Brancaleone, i dati relativi al cast sono assenti; contrariamente a quanto av-
verrebbe in una tabella di una base di dati, in questo caso il nodo cast è semplicemente as-
sente e non invece presente con valore nullo. Un’altra importante differenza è che in
XML il collegamento fra oggetti diversi della realtà di riferimento avviene sempre inse-
rendo il nodo riferito entro il nodo referente e non, come nelle basi di dati relazionali, per
mezzo di una chiave esterna. Un esempio di questa situazione è dato dal regista dei due
film presi in esame: in entrambi i casi si tratta del regista “Mario Monicelli”, ma il nodo
a lui riferito è ripetuto in entrambi i rami dell’albero che rappresentano i film. In una ba-
se di dati relazionale, al contrario, avremmo avuto una sola istanza del regista Monicelli a
cui entrambi i film avrebbero fatto riferimento, riducendo così la ridondanza dei dati.

Elementi di sintassi
Dopo aver visto la struttura generale di un documento XML, occorre guardare più da vi-
cino la sintassi con cui scriviamo ogni nodo. Partiamo da una differenza importante fra la
sintassi XML e la sintassi HTML: in HTML esistono marcatori privi del corrispondente
marcatore di chiusura. Ad esempio, l’elemento <br>, che indica l’interruzione di riga in
CastanoWSU cap13 18-12-2008 16:48 Pagina 132

132 Capitolo 13 Gli strumenti essenziali: XML

HTML, non è pensato per racchiudere alcun contenuto ma solo per indicare un punto in
cui il browser deve andare a capo. Pertanto, questo marcatore non viene chiuso, ovvero
non esiste il corrispondente marcatore </br>. In XML invece vige la regola per cui ogni
marcatore deve obbligatoriamente essere usato insieme al corrispondente marcatore di
chiusura. In XHTML, la versione XML di HTML, l’interruzione di riga si scriverà quindi
nella forma <br></br>. Poiché però è scomodo e prolisso scrivere un marcatore e la sua
chiusura nei casi in cui il marcatore non ha alcun contenuto, XML introduce la speciale
sintassi <br />. Inoltre, in XML il nome dei marcatori è sensibile al maiuscolo (o, come
spesso si dice case sensitive). Ciò significa che il marcatore <Nome> è diverso da <nome>.
Come mostrato nella Figura 13.2, i marcatori XML possono avere attributi che ne
specificano alcune caratteristiche. Gli attributi sono caratterizzati da un nome e da un va-
lore che è indicato fra doppi apici. Come per i marcatori, è possibile introdurre un nume-
ro qualsiasi di attributi arbitrari. Supponiamo ad esempio di indicare come attributi per
ogni film il codice e il paese di produzione:
<film codice="0056432" paese="USA">
...
</film>
Gli attributi hanno un ruolo diverso dal contenuto del marcatore. In generale sono pen-
sati per associare a un marcatore una caratteristica e non un argomento. Poiché però l’in-
troduzione di attributi è libera così come l’introduzione di marcatori innestati entro un
marcatore precedente, è di fatto possibile associare un’informazione a un marcatore nei
due modi. Potremmo ad esempio associare a un film il paese di produzione anche nel
modo seguente:
<film codice="0056432">
<paese> USA </paese>
...
</film>
I due documenti sono diversi, ma l’informazione disponibile circa il film è la medesima.
La scelta di usare un attributo o un elemento innestato è generalmente dettata dall’utiliz-
zo che verrà fatto, da parte di altre applicazioni, del documento o dalla presenza di una
specifica dello schema XML. In genere infatti, pur essendo implicita nei documenti XML
la definizione dello schema, più organizzazioni che usano XML per scambiare dati rag-
giungono un accordo su uno schema di riferimento che detta il tipo e la forma dei mar-
catori ammessi e le modalità del loro utilizzo.
L’ultimo elemento di sintassi che introduciamo riguarda l’uso dei caratteri riservati
in XML. Abbiamo visto infatti che alcuni caratteri, come ad esempio le parentesi angola-
ri < e >, sono utilizzati per funzioni specifiche come la distinzione tra marcatori e testo.
Pertanto non è ammesso l’uso di tali caratteri come contenuto del marcatore. Supponia-
mo ad esempio di voler scrivere la seguente diseguaglianza in XML:
<formula> X < Y + 2 </formula>
La presenza del carattere < nel contenuto del marcatore formula complica il lavoro del
software che interpreta il documento, poiché nel momento in cui esso incontra il caratte-
re < si aspetta che esso indichi la presenza di un marcatore, cosa che non avviene nel nostro
esempio. La formulazione è dunque scorretta. Per risolvere il problema, in XML occorro-
CastanoWSU cap13 18-12-2008 16:48 Pagina 133

XML namespace 133

XML entity Carattere corrispondente Codice XML Risultato


&lt; < <a> X &lt; Y </a> X<Y
&gt; > <a> X &gt; Y </a> X>Y
&amp; & <a> X &amp; Y </a> X&Y
&apos; ‘ <a> &apos;X&apos; </a> ‘X’
&quot; “ <a> &quot;X&quot; </a> “X”

Figura 13.4 Principali entity XML.

no speciali combinazioni di caratteri, denominate entity che, se inserite nel testo, verranno
tradotte in uno dei caratteri riservati. La Figura 13.4 riporta le principali entity XML.
Le entità si usano direttamente nel testo al posto dei caratteri vietati per eliminare
l’ambiguità fra ciò che è testo e ciò che è parte della definizione dei marcatori. Alcuni di
questi problemi sono risolti dalla codifica del documento. Ad esempio i caratteri accenta-
ti, in assenza di codifica, vanno anch’essi scritti come entity ma, in presenza di una codi-
fica (come ad esempio UTF-8), possono essere espressi digitando direttamente il caratte-
re accentato. Inoltre le stesse entity definite per XML sono valide e obbligatorie anche in
HTML.

XML namespace
Nel corso del capitolo si è visto come in XML si possono definire nomi arbitrari per ogni
elemento e per i suoi attributi. Questa caratteristica rende il linguaggio XML particolar-
mente flessibile e adattabile per le diverse applicazioni. Tuttavia, questa stessa liberalità
nella definizione dei nomi crea alcuni problemi nel caso in cui due diversi utenti o due
diverse applicazioni tentino di lavorare sui rispettivi documenti XML. Supponiamo ad
esempio di considerare due porzioni di documenti XML diversi:

Documento 1 Documento 2
<paese> <paese>
<nome> Italia </nome> <denominazione> Milano
<continente> Europa </denominazione>
</continente> <regione> Lombardia </regione>
</paese> </paese>

I due documenti contengono informazioni relative a classi di oggetti diverse: il primo si rife-
risce ai paesi come a nazioni incluse in un continente, il secondo a città o villaggi collocati in
una regione geografica. Entrambi i documenti, tuttavia, fanno uso del marcatore paese, che
risulta dunque ambiguo. Ciò non è dovuto solo all’ambiguità del termine “paese” nella lin-
gua italiana, ma più in generale al fatto che i due documenti contengono collezioni diverse di
dati e, pertanto, non è lecito interpretare univocamente il significato degli elementi dell’uno
e dell’altro. In altri termini, se un’applicazione deve processare automaticamente i due docu-
CastanoWSU cap13 18-12-2008 16:48 Pagina 134

134 Capitolo 13 Gli strumenti essenziali: XML

menti deve essere in grado di distinguere gli elementi di ciascuno di essi anche nel caso in cui
il nome associato al marcatore sia lo stesso. Per risolvere questo problema, si ricorre all’uso dei
namespace. L’idea di fondo è che, se associamo una o più stringhe di testo univoche a ogni do-
cumento, possiamo poi usare tali stringhe come prefisso dei nomi contenuti all’interno dei
documenti stessi: essendo i prefissi univoci, anche i nomi completi degli elementi saranno
univoci. Il modo più semplice di dotare un documento di una stringa di testo che lo identi-
fichi univocamente è utilizzare come identificativo una URI che, per definizione, è appunto
univoca. Supponiamo allora di associare al primo documento l’URI [Link]
.[Link]/doc1/ e al secondo [Link] Il nome completo
del marcatore paese all’interno del primo documento sarà dunque:
[Link]
mentre il marcatore paese nel secondo documento sarà denominato
[Link]
Con questo semplice accorgimento, i due marcatori sono ora distinti da due denomina-
zioni diverse.
Per mantenere brevi e facilmente utilizzabili i nuovi nomi all’interno del documen-
to, l’URI che funge da prefisso può essere associata a un marcatore e a tutti i marcatori in
esso contenuti per mezzo dell’attributo xmlns. Nel seguente esempio associamo al primo
documento due namespace:
<d:paese
xmlns:d="[Link]
xmlns:c="[Link]
<d:nome> Italia </d:nome>
<c:continente> Europa </c:continente>
</d:paese>
Questo tipo di sintassi abbreviata ci consente di introdurre alcuni prefissi brevi (d e c
nell’esempio) in luogo delle URI corrispondenti che sono dichiarate come attributi del
marcatore di riferimento e che si applicano a tutti gli elementi in esso contenuti. Nel no-
stro esempio, i marcatori d:paese e d:nome saranno tradotti dunque nei rispettivi nomi
estesi [Link] e [Link]
doc1/nome, mentre l’elemento c:continente verrà tradotto nel corrispondente
[Link] Per rendere disponibile un na-
mespace a tutti i marcatori del documento sarà sufficiente associare la dichiarazione dei
namespace all’elemento radice del documento. Se, infine, l’attributo xmlns non è seguito
da un prefisso, la URI specificata va intesa come il namespace predefinito dell’intero do-
cumento. Otteniamo dunque un documento identico al precedente con la seguente di-
chiarazione:
<paese
xmlns="[Link]
xmlns:c="[Link]
<nome> Italia </nome>
<c:continente> Europa </c:continente>
</paese>
CastanoWSU cap13 18-12-2008 16:48 Pagina 135

XML namespace 135

I marcatori paese e nome non si presentano più caratterizzati da un prefisso, ma il loro


nome completo si ottiene aggiungendo il nome del marcatore al namespace predefinito
([Link]
I namespace sono particolarmente utili quando si deve utilizzare all’interno di un
proprio documento un insieme di elementi definito da una terza parte. Alcune organizza-
zioni hanno infatti definito vocabolari standard per la specificazione di metadati. Tali vo-
cabolari constano di elementi XML che possono essere riutilizzati all’interno di un docu-
mento arbitrario. Un buon esempio è lo standard Dublin Core3 che ha per obiettivo la
definizione di nomi univoci per i metadati in ambito editoriale. La necessità di uno stan-
dard, come vedremo, è motivata dell’esigenza che organizzazioni diverse che intendono
collaborare codifichino la propria informazione in modo uniforme. Supponiamo ad
esempio che due biblioteche debbano condividere i dati relativi ai volumi in loro posses-
so: in primo luogo è necessario che le due organizzazioni chiamino gli stessi oggetti nello
stesso modo. A tal fine le due biblioteche possono, invece di creare un proprio termine
per indicare ad esempio il titolo dei volumi, utilizzare il vocabolario Dublin Core, che in-
troduce l’elemento title. Il marcatore title è di fatto un elemento definito in un altro
documento XML e va quindi utilizzato con il nome completo, ovvero [Link]
dc/terms/title. Utilizzando dunque i namespace, potremmo ridefinire il film L’armata
Brancaleone della Figura 13.2 come nella Figura 13.5.
Nell’esempio, dopo aver introdotto il namespace come attributo dell’elemento radi-
ce, abbiamo usato l’elemento title dello standard Dublin Core per indicare il titolo del
film. Come si vede, il documento contiene ora sia elementi definiti dall’utente, sia ele-
menti tratti da uno standard. Il vantaggio dell’uso di elementi standard consiste nel fatto
che, se non possiamo aspettarci che sia noto a organizzazioni esterne il significato che at-
tribuiamo a marcatori come film o anno, è invece uniformemente accettata l’interpreta-
zione dell’elemento dc:title che indica i titoli nello standard Dublin Core.

<?xml version="1.0" encoding="UTF-8"?>


<cinematografia
xmlns:dc="[Link]

<film codice="0060125">
<dc:title> L’armata Brancaleone </dc:title>
<regista> Mario Monicelli </regista>
<anno> 1966 </anno>
</film>
</cinematografia>

Figura 13.5 Esempio di uso dello standard Dublin Core.

3 [Link]
CastanoWSU cap13 18-12-2008 16:48 Pagina 136

136 Capitolo 13 Gli strumenti essenziali: XML

Validazione e XML schema


La definizione di un documento XML, come si è detto, richiede semplicemente di com-
pilare un documento che utilizzi marcatori arbitrari e che rispetti la sintassi XML. In de-
finitiva, non siamo costretti a definire inizialmente uno schema dei nostri documenti
XML che stabilisca il tipo di marcatori ammessi e le regole del loro uso. Tuttavia, in mol-
ti casi reali, la definizione di uno schema è una necessità imprescindibile. Supponiamo ad
esempio di dover interagire con diversi operatori che devono fornirci alcuni dati usando
XML. È nostro interesse che ogni operatore crei i propri dati utilizzando gli stessi marca-
tori per dare origine a documenti uniformi. Non potendo prevedere tutti i possibili docu-
menti generabili a partire dallo stesso insieme di marcatori, occorre fornire agli operatori
uno schema di documento XML a cui attenersi. Per specificare tale schema si utilizza un
linguaggio a sua volta definito per mezzo di XML e denominato XML Schema. XML
Schema sostituisce il linguaggio DTD precedentemente utilizzato. Poiché la definizione
di un documento XML Schema è relativamente complessa, considereremo solo i tratti
generali e gli obiettivi utili alla nostra trattazione.
In termini generali, la funzione di uno schema XML è duplice: da un lato ogni sche-
ma definisce una classe di documenti conformi allo schema; in secondo luogo, lo schema
può essere utilizzato per validare un qualsiasi documento XML. L’obiettivo della valida-
zione è verificare che un certo documento sia conforme allo schema. In particolare, uno
schema XML ha i seguenti scopi:
◆ definire quali elementi e quali attributi possono comparire in un documento XML
conforme allo schema;
◆ definire, per ogni elemento, quali elementi esso possa contenere e in quali elementi
esso possa essere contenuto;
◆ definire il numero di elementi che possono essere contenuti da un altro elemento e
se tale elemento possa contenere testo;
◆ definire tipi di dato che possono comparire all’interno del documento, per distin-
guere, ad esempio, stringhe di caratteri, numeri interi, date.
A titolo di esempio, supponiamo di voler definire uno schema per i documenti XML usa-
ti in precedenza per i dati cinematografici:
<?xml version="1.0" encoding="UTF-8" ?>

<xs:schema xmlns:xs="[Link]
targetNamespace="[Link]
xmlns="[Link]
elementFormDefault="qualified">

<xs:element name="cinematografia">
<xs:complexType>
<xs:sequence>
<xs:element ref="film" maxOccurs="unbounded" />
CastanoWSU cap13 18-12-2008 16:48 Pagina 137

Validazione e XML schema 137

</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="film">
<xs:complexType>
<xs:sequence>
<xs:element ref="titolo" />
<xs:element ref="regista" />
<xs:element ref="anno" />
<xs:element ref="cast" minOccurs="0" />
</xs:sequence>
<xs:attribute name="codice" type="xs:NMTOKEN" use="required" />
</xs:complexType>
</xs:element>

<xs:element name="personaggio" />


<xs:element name="regista" />
<xs:element name="anno" />
<xs:element name="attore" />
<xs:element name="titolo" />

<xs:element name="cast">
<xs:complexType>
<xs:sequence>
<xs:element ref="ruolo" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>

<xs:element name="ruolo">
<xs:complexType>
<xs:sequence>
<xs:element ref="attore" />
<xs:element ref="personaggio" />
</xs:sequence>
</xs:complexType>
</xs:element>
Figura 13.6 Esempio di XML Schema.
CastanoWSU cap13 18-12-2008 16:48 Pagina 138

138 Capitolo 13 Gli strumenti essenziali: XML

L’idea essenziale di XML Schema è che, utilizzando il marcatore xs:element e gli altri co-
strutti del linguaggio, come ad esempio xs:attribute o xs:sequence, si proceda a defi-
nire ogni elemento ammesso nei documenti conformi allo schema. Ogni elemento è defi-
nito sulla base del suo nome e del suo contenuto. Ad esempio, nella definizione
dell’elemento cinematografia indichiamo la sequenza di elementi che esso può contene-
re (nel nostro caso una sequenza di elementi film). A sua volta, ogni elemento sarà defini-
to nei termini di altri elementi che contiene, fino ad arrivare alla definizione di elementi
semplici, ovvero che non contengono altri elementi, come ad esempio gli elementi
personaggio o attore. Quando lo schema viene associato a un documento XML, il vali-
datore ricostruisce la struttura ammissibile per la classe di documenti XML conformi allo
schema e verifica che lo specifico documento che intendiamo validare sia conforme a essa.
CastanoWSU cap14 18-12-2008 16:48 Pagina 139

Capitolo 14

Editoria elettronica e biblioteche digitali

Le tecnologie digitali hanno avuto un impatto rilevante in molti settori della vita produt-
tiva e culturale del nostro tempo. Alcune attività tradizionali sono tuttavia più coinvolte
di altre in questi processi di trasformazione. I prodotti editoriali e i libri in particolare so-
no senza dubbio coinvolti da questi cambiamenti poiché sono, al tempo stesso, contenu-
to e mezzo di diffusione dello stesso. Abbiamo visto come l’informatica incide su entram-
bi questi aspetti, modificando la natura dei contenuti e cambiando i mezzi della loro
diffusione. Oggi nessuno teorizza più la scomparsa del libro e dei mezzi di diffusione tra-
dizionali dei contenuti culturali, ma ci si rende conto che vi è una complessa situazione
nella quale i prodotti editoriali devono essere adattati e, in parte, ripensati a fronte di
nuove esigenze di fruizione e nuovi mercati potenziali. L’innovazione del mondo editoria-
le coinvolge sia i processi di produzione, gestione e distribuzione del prodotto editoriale,
sia il prodotto in sé. Il processo che porta un libro dalla mente dell’autore agli scaffali del-
le nostre librerie è fortemente condizionato dall’utilizzo dei sistemi di gestione dei conte-
nuti (content management system) che consentono agli operatori del settore di seguire i
processi produttivi e monitorare il ciclo di vita dei prodotti. I prodotti stessi cambiano ra-
dicalmente trasformandosi in veicoli di fruizione dei contenuti che sfruttano più suppor-
ti, utilizzano più media e sono raggiungibili attraverso più canali di fruizione.
Questi processi di trasformazione del testo e del libro come prodotto interessano sia
il mondo dell’editoria, che ha l’esigenza di ripensare il ruolo stesso della mediazione edi-
toriale oltre agli specifici processi di produzione, sia il mondo delle biblioteche e dei mu-
sei, che vedono cambiare la natura degli oggetti di cui devono garantire la conservazione
e la consultazione. Per queste ragioni sono sempre più diffuse le discussioni sulla natura
della cosiddetta editoria elettronica e i progetti europei e nazionali di biblioteca digitale.
CastanoWSU cap14 18-12-2008 16:48 Pagina 140

140 Capitolo 14 Editoria elettronica e biblioteche digitali

Metadati e interoperabilità
Nei nuovi processi editoriali, la gestione dei prodotti passa in larga misura attraverso i
metadati, ovvero attraverso gli attributi degli oggetti editoriali che consentono di identi-
ficare, gestire e descrivere libri e periodici. La necessità di manipolare descrizioni elettro-
niche di questi oggetti è viva sia nei sistemi di gestione dei contenuti delle case editrici, sia
nelle banche dati delle biblioteche. Il mondo editoriale e bibliotecario si scontra però con
le difficoltà generate dalla diffusione di molteplici standard diversi per la descrizione de-
gli oggetti editoriali, che crea difficoltà di integrazione e di interoperabilità. I due princi-
pali problemi legati ai metadati sono quello dell’identificazione univoca dei diversi ogget-
ti editoriali e la descrizione dei differenti attributi che caratterizzano libri e periodici. Per
risolvere il problema dell’identificazione, già proprio dell’editoria tradizionale, è stato in-
trodotto lo standard ISBN. ISBN è uno standard per la produzione di codici che identi-
ficano univocamente un titolo o un’edizione di un titolo di un determinato editore; vale
solo per i libri e ha lo scopo di identificare l’edizione di un testo e non l’opera in sé o la ri-
stampa di un’edizione. L’analogo sistema di identificazione per i periodici prende il nome
di ISSN. Dal 2007, i codici ISBN sono composti da 13 cifre, secondo il seguente schema:
AAA – BB – CCCCC – DD – E
Le prime tre cifre (A) identificano la categoria merceologica secondo lo standard GS1 per
la classificazione dei prodotti di largo consumo, che attualmente riserva il codice 978 ai
libri. Le successive due cifre (B) identificano invece il gruppo linguistico (ad esempio 88
per le edizioni dell’area linguistica italiana). Le successive cinque cifre (C) identificano
invece l’editore che può essere in possesso di più prefissi identificativi dell’editore stesso.
Le ultime tre cifre, (D) ed (E), identificano rispettivamente il titolo e un codice calcolato
automaticamente sulla base delle cifre precedenti e che ha lo scopo di verificare la corret-
tezza del codice ISBN nel suo complesso. Anche l’ISBN è interessato dal cambiamento
introdotto dall’editoria digitale. Infatti, l’identificazione di un titolo assume un ruolo im-
portante per gestire elettronicamente, in banche dati e sistemi di gestione dei contenuti, i
metadati di un libro. Tuttavia, i libri si trovano nel contesto digitale immersi in un mer-
cato in cui vi è una pluralità di contenuti (testi, immagini, video) che necessitano anch’es-
si di essere identificati. Non è chiaro, inoltre, se l’edizione digitale di un testo cartaceo sia
da considerarsi una nuova edizione del volume, dotata pertanto di codice ISBN o, piut-
tosto, una forma di ristampa. Si pone quindi il problema di un’identificazione omogenea
di qualsiasi oggetto editoriale e il problema di associare servizi elettronici a tali identifica-
tori. A questo scopo è stato creato lo standard DOI (Digital Object Identifier) che identi-
fica qualsiasi oggetto editoriale digitale in modo persistente. I codici DOI sono analoghi
alle URL, con la differenza che essi sono associati direttamente agli oggetti che identifica-
no, mentre le URL identificano una pagina web sulla base della sua collocazione fisica su
un server. A titolo di esempio, prendiamo in esame il seguente codice DOI:
10.1007/b102069
Un DOI è diviso da una barra in due parti: la prima identifica il soggetto che ha registra-
to il DOI, che può essere un editore o un mediatore. Le prime due cifre (10) specificano
a un sistema di risoluzione del DOI che la stringa rappresenta un DOI e non un altro co-
dice identificativo. Le cifre successive rappresentano invece il soggetto registrante. La se-
conda parte, invece, identifica univocamente l’oggetto registrato. L’idea principale legata
CastanoWSU cap14 18-12-2008 16:48 Pagina 141

I problemi dell’editoria elettronica 141

ai DOI è quella di associare un comportamento attivo al codice. In altri termini, il codi-


ce DOI dovrebbe funzionare come un link che, una volta selezionato, possa essere risolto
da un sistema software che può quindi associare al codice sia la visualizzazione dei meta-
dati relativi all’oggetto sia eventuali servizi in rete per gli utenti.
Anche per la descrizione degli oggetti editoriali sono stati proposti molti standard,
che mirano a fornire codici e attributi predefiniti per tutte i principali metadati che carat-
terizzano un prodotto editoriale (autore, titolo, editore, ecc.). Uno standard molto utiliz-
zato è ONIX for Books ([Link]), che ha la caratteristica di consentire la codifi-
ca e trasmissione di informazioni sia bibliografiche sia commerciali, come ad esempio la
disponibilità dei titoli in magazzino o il prezzo. In altri termini, ONIX consente di copri-
re le esigenze dei diversi attori lungo la filiera del libro (editori, distributori, librari).
ONIX fa parte in realtà di una famiglia di standard, che comprende anche formati speci-
fici per le testate editoriali e i fascicoli di rivista per la descrizione delle licenze (ONIX for
licensing Terms).
Le biblioteche usano invece Unimarc e Marc 21, formati di catalogazione più sofi-
sticati, meno adatti alla gestione delle informazioni commerciali e distributive, ma più
ricchi sul versante bibliografico e di soggettazione. Fra i principali riferimenti, citiamo la
Library of Congress per quanto riguarda Marc 211 e IFLA (International Federation of
Library Associations) per quanto riguarda Unimarc2.
La presenza dunque di molteplici standard produce la necessità di strumenti e solu-
zioni per consentire la comunicazione e lo sfruttamento dei metadati editoriali anche
quando questi siano codificati diversamente. Questo problema riguarda sia l’interopera-
bilità fra strumenti diversi nell’ambito dello stesso processo di produzione che fra attori
diversi come gli editori e le biblioteche.

I problemi dell’editoria elettronica


Il tema della rappresentazione e codifica dei metadati è solo uno dei problemi dell’edito-
ria elettronica. Potremmo anzi definire l’editoria elettronica come un insieme di proble-
matiche che si possono schematicamente ridurre a tre categorie principali. Un primo or-
dine di problemi è di natura teorica e riguarda la trasformazione del testo da oggetto a
fruizione lineare a oggetto a consultazione puntuale. Il testo, concepito tradizionalmente
come un oggetto di lettura, in cui l’argomentazione segue un ordine lineare, subisce in-
fatti un processo di destrutturazione connesso all’attività di digitalizzazione. Questo av-
viene sia perché i meccanismi cognitivi della lettura a video sono diversi, sia per le moda-
lità di organizzazione e memorizzazione del testo. Ciò pone la questione di quali siano le
tipologie di prodotti editoriali che possano avere una fruizione elettronica e quali debba-
no essere le forme di questa fruizione. In generale, la digitalizzazione, pensiamo ad esem-
pio alla pubblicazione sul Web, spinge il fruitore a concepire il testo prevalentemente co-
me una banca dati di contenuti ricercabili, più che come un oggetto di lettura. Questa
dinamica spiega perché il successo delle forme di pubblicazione elettronica abbia coinvol-

1 [Link]
2 [Link]
CastanoWSU cap14 18-12-2008 16:48 Pagina 142

142 Capitolo 14 Editoria elettronica e biblioteche digitali

to prevalentemente le pubblicazioni già originariamente pensate per la consultazione, co-


me ad esempio le enciclopedie, piuttosto che i prodotti orientati alla lettura, come ad
esempio la narrativa. Un testo, infatti, richiede, per essere editato elettronicamente, che
non solo di ripensarne la forma, ma di concepirne in modo radicalmente diverso la strut-
tura e l’organizzazione. L’editore è posto quindi di fronte a un duplice problema: da un
lato deve ristrutturare prodotti originariamente pensati per la sola edizione cartacea e
dall’altro deve concepire prodotti nuovi che prendano in esame, già in fase di creazione, i
problemi connessi all’edizione digitale.
La seconda categoria di problemi riguarda invece la gestione dei diritti legali sulle
opere editoriali. I prodotti editoriali sono, infatti, opere d’ingegno e, come tali, sono sot-
toposti a un’articolata legislazione sul diritto d’autore e sui diritti di edizione. Non entre-
remo in questa sede nel dettaglio dei problemi giuridici, ma cercheremo invece di com-
prendere quali conseguenze abbia su di essi l’avvento dei prodotti editoriali digitali. In
particolare, i termini legali che regolano i rapporti editore-autore ed editore-fruitore ri-
guardano precisamente la natura dell’oggetto editato. Occorre quindi una definizione,
che guidi il processo contrattuale, di cosa sia esattamente un prodotto editoriale digitale.
La prima questione riguarda l’opera e le forme della sua diffusione: immaginiamo ad
esempio un testo che abbia una versione cartacea e una versione digitale. La domanda che
si pone è se la versione digitale debba essere intesa come la riproduzione con altro messo
della stessa edizione cartacea o invece come una diversa edizione della stessa opera. Se poi
la versione digitale non si limita a riprodurre in formato elettronico gli stessi contenuti
dell’edizione cartacea, ma opera una ristrutturazione del testo e introduce nuove modalità
di fruizione, allora il problema diventa l’identificazione dell’opera, fino a che punto la
trasformazione digitale si limita a introdurre cambiamenti nella forma del testo o invece
ne altera il contenuto e la natura. In questo contesto è importante comprendere che,
qualsiasi sia la soluzione legale a questi problemi, ciò che appare evidente è che la digita-
lizzazione mette in discussione la natura stessa dell’oggetto a cui si applica. Inoltre, una
caratteristica degli oggetti digitali è la riproducibilità e l’insieme dei diritti a essa collega-
ti. Un testo cartaceo, ad esempio, è riproducibile per mezzo di fotocopie. I limiti alla
quantità del testo legalmente fotocopiabile, i diritti reprografici, sono fissati per legge e
sono oggetto di controllo di diversi organismi a tutela di editori e autori. Tuttavia, la fo-
tocopia non soltanto è un mezzo di riproduzione in qualche misura “scomodo”, ma non
garantisce l’identità fra l’oggetto copiato e l’originale. Un’edizione on-line di un testo, in
forma ad esempio di file, è copiabile con estrema facilità e consente di produrre un ogget-
to in tutto identico all’originale. Immaginiamo ad esempio che un soggetto acquisti un
file che contiene l’edizione digitale di un’opera. In primo luogo occorre domandarsi cosa
il soggetto in questione abbia acquistato: il file o il diritto a un certo numero di fruizioni
di esso? In secondo luogo, occorre verificare che l’acquirente faccia uso del file entro i li-
miti dei suoi diritti d’acquisto. Se infatti è ragionevole che il soggetto abbia la possibilità
di copiare il proprio file su altri supporti, è più discutibile il fatto che egli possa diffonde-
re un numero potenzialmente illimitato di copie ad altri utenti che non abbiano effettua-
to lo stesso acquisto. Questi problemi comportano la necessità di definire licenze d’uso
specifiche per i contenuti digitali. In questo contesto, si è fatta strada l’idea, in qualche
modo legata a quella dell’open source in ambito informatico, di nuove forme di copy-
right, che vanno sotto il nome di copyleft. Per copyleft si intende un modello di gestione
dei diritti d’autore basato sull’idea che l’autore, originariamente detentore di tutti i dirit-
CastanoWSU cap14 18-12-2008 16:48 Pagina 143

I problemi dell’editoria elettronica 143

ti dell’opera, indichi ai fruitori dell’opera come essa possa essere utilizzata, diffusa e spes-
so anche modificata liberamente, pur nel rispetto di una licenza. Spesso la condizione
principale obbliga i fruitori a rilasciare eventuali modifiche apportate all’opera a loro vol-
ta sotto la stessa licenza, dando origine a un sistema giuridico di tipo “virale”. In questo
modo, il regime di copyleft identifica tutto l’insieme di libertà connesse alla fruizione di
un’opera, secondo l’intenzione del suo ideatore, Richard Stallman, che diede origine all’i-
dea per i prodotti informatici. In campo editoriale, la principale tipologia di licenze lega-
te all’idea di copyleft prende il nome di Creative Commons. Le licenze Creative Commons
offrono sei diverse articolazioni dei diritti d’autore per tutti i creatori di un’opera che in-
tendono diffonderla liberamente secondo la formula “alcuni diritti riservati”, che si con-
trappone direttamente alla formula tipica del copyright, per la quale “tutti i diritti sono
riservati”. È importante citare queste esperienze perché esse mettono in discussione diret-
tamente i diritti intorno ai quali si articola comunemente l’attività editoriale e costitui-
scono quindi una realtà con cui il mondo editoriale deve confrontarsi. In ogni caso, qual-
siasi sia il tipo di licenza connesso a un prodotto di editoria elettronica, c’è poi il
problema tecnico di verificarne l’applicabilità. L’idea più immediata è associare al file o al
sistema software che consente di fruirlo tecniche di verifica dei diritti. Dal punto di vista
tecnologico questo è un problema complesso sul quale si sviluppa l’attività di ricerca sui
cosiddetti sistemi DRM (Digital Right Management). I sistemi DRM sono tutti i sistemi
informatici che consentono di erogare i servizi di fruizione di un file solo quando l’uten-
te ha il diritto di farlo. Due paradigmi prevalenti di articolazioni di questi sistemi sono la
limitazione all’uso e la verifica del contratto di licenza. Nel primo caso, il file registra l’u-
so nel tempo del contenuto, ad esempio quante volte abbiamo riprodotto una traccia au-
dio o un testo oppure copiato il file, e smette di garantire certe funzioni (riproduzione o
copiatura) dopo il raggiungimento di una certa soglia. In questo caso, l’utente acquista
non il file, ma il diritto a riprodurlo o copiarlo a certe condizioni. Nel secondo caso inve-
ce, il file è venduto unitamente a una licenza che può essere usata una tantum allo scopo
di sbloccare il file. Qualsiasi altro utilizzo dipende dal possesso della licenza che, in sé,
non può essere riutilizzata.
La terza categoria è legata alla necessità di editori e operatori del settore editoriale di
creare nuovi modelli di offerta e di creazione del valore, altrimenti denominati modelli di
business. Questi problemi mettono in discussione le ragioni stesse per cui un editore deb-
ba aprire la propria attività al contesto digitale. In primo luogo occorre infatti compren-
dere quale possa essere il ruolo delle nuove tecnologie nel processo di produzione dei pro-
dotti editoriali. Una prima soluzione è sfruttare le tecnologie informatiche per creare
nuovi punti di contatto con il pubblico e associare ai prodotti funzionalità di commercia-
lizzazione on-line, come avviene nel caso di servizi come Amazon o IBS. Le tecnologie
informatiche investono solo l’ultimo passaggio del processo, quello di distribuzione,
mentre la produzione e manipolazione del contenuto editoriale rimangono immutate.
Un tipo diverso di uso dell’informatica consiste invece nella produzione di prodotti digi-
tali che affianchino la vendita di quelli tradizionali. In questo caso, il prodotto principale
è tradizionale, tipicamente cartaceo, ma l’attività editoriale e non solo la distribuzione
consta della produzione di una pluralità di oggetti di consumo che affiancano il prodotto
primario. In generale, ciò comporta lo sfruttamento di nuovi supporti: inizialmente si è
assistito a una rapida diffusione dei CD-ROM allegati ai testi, soprattutto in campo sco-
lastico, mentre oggi è sempre più diffuso l’uso del Web. Inoltre, i prodotti collaterali non
CastanoWSU cap14 18-12-2008 16:48 Pagina 144

144 Capitolo 14 Editoria elettronica e biblioteche digitali

constano solo di una diversa edizione del contenuto originario, ma anche di altro mate-
riale di supporto, come apparati iconografici o esercizi e test per le pubblicazioni in cam-
po educativo. Infine, l’uso più pervasivo delle tecnologie informatiche riguarda la produ-
zione di contenuti specificamente pensati per il Web o per la digitalizzazione e non
disponibili in formato cartaceo. In questo ambito vi sono stati molti esperimenti di lan-
cio degli e-book e si propongono piattaforme per l’erogazione di contenuti educativi on-
line. Gli e-book in particolare rappresentano un esempio molto controverso di editoria
on-line. Per e-book si intende un testo pensato per l’esclusiva consultazione e distribuzio-
ne in formato digitale. La creazione di e-book richiede sia la definizione di formati speci-
fici per la codifica del testo, sia la disponibilità di software e dispositivi hardware per la
fruizione. Il vantaggio indiscusso degli e-book rispetto al libro cartaceo consiste nella
grande capacità di memorizzazione dei dispositivi di lettura, che consentono di portare
con sé molti testi in poco spazio, e nel fatto che il testo diviene direttamente fruibile in un
contesto ipertestuale e ipermediale. Tuttavia, gli e-book devono lo scarso successo soprat-
tutto ai limiti, tutt’ora molto presenti, degli schermi rispetto alla carta come supporto per
la lettura.

Nuovi fenomeni e nuovi mercati


Le possibilità offerte dall’editoria digitale non stanno di fatto cambiando solo il tipo di
attività di editori e biblioteche, ma stanno anche modificando radicalmente la struttura
del mercato editoriale nel suo complesso. Il fenomeno più visibile è la convergenza in at-
to fra operatori di settori diversi in direzione di funzioni prima legate esclusivamente al
mondo editoriale. Gli attori del mercato editoriale tradizionale, soprattutto le case editri-
ci, si evolvono dotandosi di infrastrutture e competenze necessarie a far di loro dei provid-
er di contenuti. In questo processo, il tentativo degli operatori editoriali consiste nel capi-
talizzare le competenze editoriali, che garantiscono la qualità del prodotto, in un mondo
in cui l’accesso alle procedure di pubblicazione è più semplice e la competizione più ser-
rata. Un esempio di tali processi è costituito dalle edizioni on-line dei principali quotidia-
ni. Nella Figura 14.1, confrontiamo la prima pagina on-line del Corriere della Sera dell’8
Maggio 1999 con quella del 3 Novembre 2008.
La comparazione rende evidente, al di là delle differenze dovute all’evoluzione della
tecnologia, come il prodotto editoriale sia concepito oggi in modo radicalmente diverso
dal passato. Nell’edizione del ’99, infatti, il sito web si presentava come un elenco di no-
tizie e rubriche che, quando non ricalcavano del tutto quelle dell’edizione cartacea ne ri-
prendevano certamente la struttura. Nell’edizione del 2008, invece, il sito si presenta co-
me un portale in cui, al fianco delle notizie tradizionali, corredate di testo e immagini, si
ha accesso a video, rubriche e servizi per l’utente specificamente concepiti per il Web con
l’obiettivo di creare una comunità stabile di fruitori. Per realizzare questo obiettivo, l’edi-
tore deve modificare in parte non solo i propri processi produttivi, ma anche il modo di
concepire se stesso, arrivando a pensarsi come una banca dati per i contenuti, piuttosto
che, semplicemente, un produttore di contenuti.
Parallelamente, assistiamo all’evoluzione di operatori tradizionali del Web, che na-
scono come fornitori di servizi tecnologici, che oggi entrano nel mondo dell’editoria con
progetti che tendono a qualificarli come soggetti del mercato editoriale. Un esempio mol-
CastanoWSU cap14 18-12-2008 16:48 Pagina 145

Nuovi fenomeni e nuovi mercati 145

8 Maggio 1999 3 Novembre 2008

Figura 14.1 Esempio di evoluzione dei quotidiani on-line.

to noto è fornito da Google Book Search.3 Google nasce come motore di ricerca ed è an-
dato acquisendo nel tempo un ruolo di primo piano anche come fornitore di tecnologia
per il Web. Il progetto Book Search nasce invece con l’intento dichiarato di far entrare
Google nel mercato editoriale, attraverso l’accordo con editori e biblioteche, con l’ambi-
zioso intento di costituire un punto di riferimento privilegiato per la ricerca e fruizione
dei libri sul Web. A questo scopo, Google acquisisce una mole significativa di metadati,
relativi ai libri in commercio e non, e li propone ai propri utenti insieme alla riproduzio-
ne digitale dei libri stessi. L’idea è che un’anteprima del testo sia consultabile gratuita-
mente, mentre l’accesso all’intero testo sia a pagamento. Google indica tre tipologie di
contenuti accessibili attraverso il servizio: 1) libri protetti da copyright e in commercio,
per i quali Google si propone come piattaforma di distribuzione, offrendo servizi di ante-
prima e di acquisto; 2) libri protetti da copyright ma fuori stampa, per i quali il servizio
si propone come una banca dati di conservazione e riproposizione del testo; 3) libri non
protetti da copyright, per i quali Google diviene un motore di ricerca che rende possibile
la loro totale consultazione. Il progetto è presentato come un’opportunità per editori e bi-
blioteche, ma non sfugge il fatto che un provider tecnologico stia entrando significativa-
mente in un mercato a lui nuovo e si proponga come un validissimo concorrente sia per
la pubblicazione (quando gli autori si potranno rivolgere a Google direttamente come
piattaforma di pubblicazione?), sia per la conservazione (Google Book Search è come
un’enorme banca dati che svolge funzioni molto simili a una biblioteca).
Questa peculiare forma di convergenza fra operatori di settori diversi è un’altra ca-
ratteristica tipica della diffusione delle nuove tecnologie. Possiamo concludere afferman-
do che, anche se molti dei problemi accennati sono aperti e molte possibilità rimangono
inesplorate, il fenomeno della digitalizzazione del mondo editoriale sembra inarrestabile.
Come tutti i macro processi spinti dalle tecnologie, inoltre, l’evoluzione è rapidissima e il

3 [Link]
CastanoWSU cap14 18-12-2008 16:48 Pagina 146

146 Capitolo 14 Editoria elettronica e biblioteche digitali

mercato fortemente competitivo. Gli scenari che si aprono sono al tempo stesso per gli
operatori del settore editoriale un’opportunità e un rischio potenziale: ciò che sembra cer-
to, guardando a esperienze analoghe, è che l’unico errore che l’editoria non può fare è
quello di rimanere ferma di fronte ai processi evolutivi in atto e non raccogliere la sfida
delle nuove tecnologie, anche quando questo implica la capacità di rimettersi in discus-
sione.
CastanoWSU cap15 18-12-2008 16:49 Pagina 147

Capitolo 15

Organizzazione dei contenuti:


ipertestualità e multimedialità

Abbiamo visto in più occasioni come l’informatica abbia lo scopo di manipolare e trasmet-
tere informazione e come abbia prodotto nuovi strumenti di comunicazione. Occorre ora
guardare più da vicino la natura e il contenuto dei messaggi che gli strumenti informatici
aiutano a comunicare. L’elemento più evidente è che anche gli strumenti informatici, co-
me gli strumenti di comunicazione tradizionali, trasmettono soprattutto testi. La defini-
zione del termine testo non è immediata o scontata come potrebbe apparire: tradizional-
mente ci riferiamo al testo considerando l’origine etimologica del termine, dal latino textus
che significa trama o tessuto. Tale riferimento ci induce a concepire il testo in primo luogo
come un insieme di relazioni fra oggetti simbolici e segni. In questa accezione ampia il te-
sto è dunque ogni relazione fra segni, siano essi parole, immagini o suoni. Il carattere di-
stintivo del testo in quanto tale è la struttura delle relazioni fra i segni prima ancora che il
loro contenuto, poiché la relazione fra elementi è vista come la dinamica centrale nella for-
mazione del significato della comunicazione testuale. Un simile punto di vista è interessan-
te per lo studio delle applicazioni dell’informatica alle scienze umanistiche, e alle scienze
della comunicazione in particolare, poiché gli elementi su cui gli strumenti informatici
agiscono maggiormente nella rappresentazione e trasmissione del testo sono proprio la
struttura generale del testo e l’organizzazione dei segni. Possiamo affermare dunque che
non solo l’oggetto testuale si modifica nella sua rappresentazione digitale, ma che tale cam-
biamento interessa il punto più delicato di un testo, il luogo che lo definisce come tale. A
fronte di un tale fenomeno occorre cioè domandarsi che tipo di oggetto nuovo il testo di-
venga e in che modo la conoscenza delle dinamiche di questa trasformazione possa guida-
re lo sviluppo degli strumenti informatici per la rappresentazione del testo.

Codifica e organizzazione testuale


La rappresentazione digitale del testo altera il contenuto testuale in due modi: in primo
luogo, ogni oggetto memorizzato da un calcolatore è sottoposto a un processo di codifica.
Per codifica intendiamo la conversione del testo dalla sua forma originale a una sequenza
di bit, l’unità minima di memorizzazione dell’informazione in ogni calcolatore. Tale tra-
CastanoWSU cap15 18-12-2008 16:49 Pagina 148

148 Capitolo 15 Organizzazione dei contenuti: ipertestualità e multimedialità

duzione avviene appunto per mezzo di un codice che stabilisce la corretta corrispondenza
fra i segni del testo originale e le corrispondenti sequenze di bit. Nonostante questa pri-
ma trasformazione sia cruciale per l’informatica, poiché senza sarebbe impossibile memo-
rizzare e trattare alcun tipo di informazione, essa è meno rilevante ai fini del nostro di-
scorso perché interviene sulle modalità di memorizzazione dei segni ma non sulla loro
fruizione né sulle relazioni interne al testo. In altri termini, il fatto che l’espressione “mo-
dalità di fruizione dei contenuti” all’interno di un testo sia memorizzata in realtà come
una sequenza di bit non influisce sul fatto che un utente possa leggerla nella sua forma
originaria né sui rapporti interni fra le parole che la compongono. Per tali ragioni, trala-
sciamo la codifica e spostiamo l’attenzione sulla ristrutturazione dell’organizzazione in-
terna di un testo, con particolare attenzione per il testo scritto. Il testo, inteso come nar-
razione e rappresentazione del mondo dell’esperienza, ha origini molto antiche e non si
presenta da subito nelle forme a cui siamo abituati. Dalle pitture rupestri alla tradizione
orale, vi sono molti esempi di come la fruizione del testo non fosse in origine vincolata al-
la sua struttura scritta, e in particolare alfabetica. L’avvento della scrittura alfabetica ha
portato da un lato a una più rapida diffusione del testo e delle pratiche di scrittura e
dall’altro a una sua trasformazione profonda, proprio nei termini della sua strutturazione
interna (McLuhan, 1964). Gli strumenti informatici non costituiscono quindi il primo
esempio di tecnologia che modifica la natura degli oggetti testuali ma, anzi, agiscono sul
risultato di una trasformazione precedente. In particolare, si è sottolineato più volte come
proprio nella scrittura alfabetica sia da ricercare l’origine dell’attuale struttura lineare del
testo e di quella peculiare modalità di fruizione che è la lettura (McLuhan, 1964; Ong,
1982). Il testo scritto come lo conosciamo oggi è dunque prodotto in funzione della let-
tura e, in particolare, della lettura sequenziale e lineare. Questa tipica modalità di struttu-
razione dei contenuti è presente sia nelle forme della lingua scritta, caratterizzate da una
direzione di lettura, sia nell’ordine della struttura argomentativa che presuppone l’acces-
so a premesse e conclusioni linearmente disposte.
Sia in campo letterario sia nel campo dell’analisi critica del testo sono però rintrac-
ciabili diversi tentativi di mettere in discussione la natura lineare della narrazione e della
comunicazione testuale. A questo proposito vengono menzionate spesso le opere di Joyce
e Borges o le riflessioni critiche di Barthes, Deleuze e Guattari. Questi tentativi sottoli-
neano la possibilità di nuove forme di strutturazione del testo, ma si scontrano però con
i limiti e le rigidità di quella particolare tecnologia che è il testo scritto e quello a stampa
in particolare. In questa sede, tuttavia, proveremo ad affrontare il problema dal punto di
vista dell’informatica, lasciando sullo sfondo le discussioni teoriche sulla natura del testo.
In altri termini, non ci chiediamo quali forme strutturali possa avere il testo come ogget-
to teorico, ma se la sua natura lineare corrisponda alla migliore strutturazione possibile
dell’informazione relativa a quel testo.

Testi e strumenti digitali


Come punto di partenza della nostra indagine, ci chiediamo come il testo appaia oggi
sulla principale applicazione dell’informatica, ovvero il Web. Supponiamo di andare alla
ricerca di testi sul cinema allo scopo di comprendere quali tipologie di testi il Web possa
proporci. Naturalmente, una simile indagine su un qualsiasi motore di ricerca proporreb-
be milioni di pagine, ognuna contenente, a suo modo, un testo. Possiamo provare a met-
CastanoWSU cap15 18-12-2008 16:49 Pagina 149

Testi e strumenti digitali 149

tere ordine fra questi risultati individuando tre principali categorie di oggetti testuali, uti-
lizzando come criterio distintivo la tipologia di fruizione:
1. testi a fruizione lineare
2. testi a fruizione semi-lineare
3. testi a fruizione non lineare.
I testi a fruizione lineare sono caratterizzati dalla riproposizione sulla pagina web del testo
a stampa, senza significative variazioni. In molti di questi casi, l’alterazione del testo ri-
guarda solo la sua forma tipografica (ad esempio il carattere di stampa o il formato del pa-
ragrafo), ma l’attività di fruizione richiesta al lettore è del tutto simile a quella ipotizzata
per il testo a stampa. Anche in questo caso, infatti, ci aspettiamo che il testo sia letto se-
quenzialmente, dall’inizio alla fine. Un esempio di testo a fruizione lineare di tema cine-
matografico è presentato nella Figura 15.1.

Figura 15.1 Esempio di testo a fruizione lineare.1

1 [Link]
CastanoWSU cap15 18-12-2008 16:49 Pagina 150

150 Capitolo 15 Organizzazione dei contenuti: ipertestualità e multimedialità

Inoltre, il testo è riprodotto in sé, ovvero non è corredato da riferimenti ad altri testi o pa-
gine web. In generale, infatti, un testo vive in un contesto fatto di rimandi ad altre lettu-
re, sia riferimenti tipicamente testuali (note, citazioni, opere, fatti storici, persone), sia ri-
ferimenti al contesto del testo come prodotto (punti di distribuzione, edizioni a stampa,
informazioni per l’acquisto). Nel testo a fruizione lineare, tutti questi riferimenti sono in-
clusi solo in forma linguistica, senza che vi sia un link o un qualsiasi strumento di acces-
so diretto ai contenuti del contesto.
I testi a fruizione semi-lineare sono invece caratterizzati dal fatto che il testo, di per
sé riprodotto in forma analoga o identica alla forma a stampa, è corredato da rimandi
azionabili (link, pulsanti, funzioni dell’interfaccia) ad altri testi o servizi. Un esempio
tratto dal servizio Google Book Search è presentato nella Figura 15.2.
Il testo si presenta dunque in forma lineare e richiede al lettore una modalità di let-
tura sequenziale. Esso è però, per così dire, immerso in una rete di rimandi e altre infor-
mazioni, dai metadati veri e propri (autore, titolo, edizione) a informazioni di contesto
(luoghi di acquisto, immagini, gruppi di discussione): tali rimandi sono realizzati sia per
mezzo di collegamenti nel testo sia per mezzo delle informazioni complementari al testo
nella pagina web. In questo caso, la fruizione ipotizzata da parte del lettore non si limita
alla sola lettura; possiamo infatti immaginare che in questo caso l’attività di lettura sia più
frammentata e intervallata da azioni di accesso alle informazioni di contorno. La sequen-
zialità è dunque parziale, poiché permane nel processo di lettura del testo ma si perde nel-
la lettura della pagina, che si presenta piuttosto come una mappa del mondo in cui vive il
testo esaminato.
I testi a lettura non lineare, infine, sono caratterizzai dal fatto che un insieme di
informazioni fra loro logicamente connesse, in questo senso un testo, sono presentate

Figura 15.2 Esempio di testo a fruizione semi-lineare.2

2 [Link]
CastanoWSU cap15 18-12-2008 16:49 Pagina 151

Testi e strumenti digitali 151

esclusivamente nei termini di rimandi ad altri testi. Come esempio prendiamo in esame
il risultato della ricerca di informazioni su Stanley Kubrick in IMDB (Figura 15.3).
La pagina di IMDB “racconta” la biografia e la filmografia di Stanley Kubrick. Tale
racconto però, al contrario di quanto avviene nel caso del testo lineare, non presuppone

Figura 15.3 Esempio di testo a fruizione non lineare.3

3 [Link]
CastanoWSU cap15 18-12-2008 16:49 Pagina 152

152 Capitolo 15 Organizzazione dei contenuti: ipertestualità e multimedialità

Figura 15.4 Rappresentazione schematica delle modalità di fruizione del testo digitale.

in alcun modo una lettura sequenziale: il fruitore si muove del tutto liberamente entro
una serie di rimandi a porzioni della narrazione, siano essi i commenti degli altri utenti
del sito o i veri e propri dati sulla produzione e la vita del regista. I testi che costituiscono
queste letture non hanno quindi una funzione contestuale o di contorno, ma sono in pri-
mo luogo il testo di riferimento e contengono a loro volta rimandi e collegamenti ad altri
testi. La struttura complessiva risultante è quindi una rete.

Modelli del testo


Come abbiamo visto, le tre categorie di testo sul Web si distinguono per ragioni eminen-
temente strutturali. Tutte infatti possono essere costituite di medesimi contenuti (parole,
immagini, suoni), ma è la disposizione e, soprattutto, il tipo di fruizione richiesto a fare
la differenza. Possiamo isolare tali differenze ricorrendo ai diagrammi della Figura 15.4.
Nei diagrammi di esempio abbiamo immaginato di dividere un testo e le sue infor-
mazioni contestuali in unità minime di significato, contrassegnate dalle lettere maiusco-
le. Nel caso della fruizione lineare, le unità sono disposte secondo un ordine sequenziale.
Non solo è possibile un unico percorso di accesso alle diverse unità, ma ogni connessione
logica fra esse è orientata. Dunque è possibile accedere a un testo da un punto arbitrario,
ma, a partire da tale punto, il percorso rimane obbligato. Nel testo a fruizione semi-
lineare è possibile individuare un punto di accesso (indicato dalla lettera A) e, a partire da
esso, un percorso lineare (A, C, E, G). Tuttavia, all’interno del percorso possiamo reperi-
CastanoWSU cap15 18-12-2008 16:49 Pagina 153

Ipertesto, multimedialità e principi di progettazione 153

re collegamenti e biforcazioni che rimandano ad altre porzioni del testo o del contesto. La
caratteristica di questi percorsi alternativi è l’assenza di punto di ritorno al percorso prin-
cipale, se non indirizzati esclusivamente al punto di accesso iniziale. In altri termini, il te-
sto lineare rimane invariato ed è inteso come un’unità di contenuto complessiva, attor-
niata da informazioni collaterali. Nel testo a fruizione non lineare, invece, il testo è
completamente destrutturato nelle sue unità elementari e non è possibile individuare un
percorso lineare privilegiato. Ogni unità è potenzialmente connessa a tutte le altre da per-
corsi che sono, in molti casi, reversibili. In generale, si smarrisce la distinzione fra testo e
contesto e con essa la nozione di unità testuale.
Sulla base dei diagrammi, possiamo istituire un rapporto fra le varie tipologie di or-
ganizzazione testuale e le tecnologie di rappresentazione dell’informazione digitale. La
struttura lineare è infatti tipica della memorizzazione dell’informazione su file. Nono-
stante la memorizzazione fisica, i criteri di accesso ai file possono non essere sequenziali,
il file è visto come un’unità informativa che contiene informazioni concettualmente ordi-
nate. Una pagina web, invece, contiene una sequenza di informazioni associate a link. I
link “escono” dalla pagina e riproducono l’organizzazione semi-lineare. L’organizzazione
reticolare tipica del testo non lineare trova invece il suo analogo negli schemi della base di
dati, in cui le unità elementari, ovvero i record nelle tabelle, sono collegati logicamente
secondo una logica relazionale e non sequenziale. Questa analogia consente dunque di
studiare il rapporto fra il testo e le modalità della sua rappresentazione e memorizzazione.

Ipertesto, multimedialità e principi di progettazione


L’idea che il testo possa essere organizzato e fruibile per modalità semi- o non lineari è sta-
ta studiata soprattutto da George Landow (Landow, 2006; Landow, 1992). Landow af-
fronta il prolema a partire dalla nozione di ipertesto e, successivamente, di ipermedia. L’i-
pertesto è un testo i cui contenuti sono collegati da riferimenti direttamente fruibili
dall’utente o, come spesso si dice, navigabili. L’idea di ipertesto è anteriore al Web e si
può far risalire al lavoro di Vannevar Bush sul sistema Memex (1945) e di Ted Nelson sul
progetto Xanadu (1960). Il Web tuttavia ha dato il via alla diffusione capillare di questa
idea di consultazione del testo diffondendo le pratiche di scrittura e fruizione non lineare
del testo. In questa sede ci concentreremo soprattutto sulle implicazioni che le tecnologie
hanno sulla progettazione di un ipertesto. Possiamo distinguere tre fasi principali: la fase
di destrutturazione del testo originario; la fase di memorizzazione e organizzazione dei
contenuti; la fase di progettazione dell’interfaccia di fruizione del testo. Immaginiamo ad
esempio di lavorare sulla seguente porzione della biografia di Stanley Kubrick tratta da
Wikipedia4:
A 19 anni trascorre cinque sere a settimana nella sala di proiezione del Museum of Mo-
dern Art di New York a guardare vecchi film e dopo quattro anni di studio all’accade-
mia di arte cinematografica pagati grazie allo stipendio da giornalista locale, decide di

4 [Link]
CastanoWSU cap15 18-12-2008 16:49 Pagina 154

154 Capitolo 15 Organizzazione dei contenuti: ipertestualità e multimedialità

dedicarsi attivamente al cinema. Nel 1949 dirige il cortometraggio Day of the Fight, un
documentario sul pugile Walter Cartier autoprodotto con soli 3900 dollari raggranellati
tra parenti ed amici, e che rivende alla RKO per 4000 dollari.
Durante la prima fase di progettazione, siamo interessati a individuare le unità minime di
significato in cui destrutturare il testo. Questo è un problema molto complesso, poiché
non è chiaro cosa si intenda per unità minima del testo, se una parola, un insieme arbitra-
rio di simboli o altra parte del testo. Spesso si fa uso della nozione di lessia, definita come
“unità funzionale significativa del discorso che può essere costituita da una parola, da più
parole o da un sintagma”.5 Il problema in questa definizione è che la significatività di una
porzione di testo è strettamente dipendente dagli scopi per cui lo intendiamo destruttu-
rare. La destrutturazione del testo è quindi non soltanto funzionale alla sua rappresenta-
zione ipertestuale, ma è un esplicito atto di interpretazione del testo. Per questa ragione,
uno dei problemi legati agli ipertesti è quello dell’autorialità. Infatti, riprogettare un testo
che ha un autore come ipertesto, significa interpretarlo e creare un altro testo: il risultato
non è semplicemente il testo originario presentato in altra forma, ma il testo originario ri-
scritto. Dunque si pone il problema di comprendere se il nuovo testo sia una riscrittura,
a opera di altro autore, dell’originale o una semplice edizione dell’originale. Collateral-
mente, come vedremo, l’ipertesto può utilizzare materiali (immagini o testi scritti) non
originariamente nel testo di partenza, anch’essi potenzialmente sottoposti a specifici dirit-
ti d’autore. Lasciamo però questi problemi all’ambito giuridico e procediamo con la pro-
gettazione. Per individuare le lessie di interesse nel testo di partenza occorre dunque do-
tarsi di un criterio interpretativo. Decidiamo ad esempio di isolare ogni riferimento a
luoghi e prodotti legati a Kubrick e di categorizzare il resto del testo come funzioni logi-
che di collegamento fra le varie attività dell’autore nel periodo di interesse. Avremo dun-
que due categorie di oggetti: attività ed elementi oggetto o complemento dell’attività.
Possiamo dunque operare una prima distinzione come segue:

Codice Attività (A) Oggetto/Complemento (B)


UA A 19 anni trascorre cinque sere a settimana nella sala di proiezione del Museum of
[…] a guardare vecchi film Modern Art di New York
UB dopo quattro anni di studio […] pagati all’accademia di arte cinematografica
grazie allo stipendio da giornalista locale
UC decide di dedicarsi attivamente al cinema
UD Nel 1949 dirige il cortometraggio Day of the Fight, un
documentario sul pugile Walter Cartier
autoprodotto con soli 3900 dollari
raggranellati tra parenti ed amici
UE che rivende alla RKO per 4000 dollari

Ogni unità informativa sarà dunque caratterizzata da un codice. In virtù di questo sche-
ma possiamo dunque iniziare a lavorare sull’organizzazione del contenuto ricostruendo

5 [Link]
CastanoWSU cap15 18-12-2008 16:49 Pagina 155

Ipertesto, multimedialità e principi di progettazione 155

Figura 15.5 Organizzazione delle unità elementari del testo.

schematicamente le connessioni interne al testo. Tali connessioni sono sia orizzontali, fra
attività e suo complemento, sia verticali, nei termini della successione cronologica delle
attività. Vi sono poi peculiari connessioni dovute al fatto che l’oggetto di un’attività può
essere il soggetto di un’attività successiva. Ad esempio, l’attività UD_A ha per oggetto il
complemento UD_B, il quale a sua volta è soggetto della successiva attività UE_A. In ter-
mini generali, possiamo rappresentare l’intero schema come nella Figura 15.5.
A ognuna delle unità individuate possiamo poi associare alcuni dati che corrispon-
dono a riferimenti nella realtà, come date, oggetti, o luoghi. Considerando le unità
UA_A e UA_B, ad esempio, possiamo associare l’età di Kubrick a UA_A e il riferimento
al Museo d’Arte Moderna di New York a UA_B. Riprendendo le nozioni già introdotte
sulle basi di dati relazionali, non è difficile vedere come un tale schema possa tradursi fa-
cilmente in una memorizzazione all’interno di una base di dati.
L’ultima fase della progettazione consiste nel definire una modalità di fruizione del
testo destrutturato. L’organizzazione che abbiamo dato alle porzioni del testo è soggetta ai
criteri interpretativi scelti, ma è totalmente indipendente dalla fruizione lineare, semi-
lineare o non lineare del testo. In altri termini, possiamo, sulla base dello stesso diagram-
ma della Figura 15.5, ricostruire un testo a lettura lineare o una pagina web a lettura non
lineare. Qualsiasi sia la modalità di rappresentazione scelta, lo strumento che la realizzerà
attingerà alla base di dati le singole porzioni di contenuto, organizzandole secondo la pro-
pria logica di fruizione. Infine, occorrerà dotare lo strumento della fruizione, ad esempio
una pagina web, di particolari funzionalità a sostegno della lettura da parte dell’utente. In
generale, più il testo prevede una lettura non sequenziale e più lo strumento dovrà forni-
re indici, mappe del testo e strumenti di appoggio che rendano la navigazione agevole e
semplice. Parallelamente si pone il problema dei contenuti associati alle unità di contenu-
to. Abbiamo infatti estratto queste unità dal testo originario; tuttavia, i contenuti a cui si
riferiscono possono essere presentati in forme diverse da quelle del testo scritto. Possiamo
distinguere questi materiali ausiliari in due categorie: rappresentazioni alternative al testo
originario e materiali di contesto. Le rappresentazioni alternative sono oggetti di senso
prodotti da un medium diverso da quello originale. Il testo “cortometraggio Day of the
Fight” ad esempio potrebbe essere sostituito o affiancato da un video che ripropone il
cortometraggio a cui ci si riferisce. Quest’uso della multimedialità aggiunge alla ristruttu-
razione logica del testo anche la sua trasformazione in una collezione di oggetti diversi
che possono trasmettere il significato del testo per mezzo di immagini o suoni e non solo
attraverso la parola scritta. L’altra categoria di oggetti multimediali che possono arricchi-
re la fruizione del nuovo ipertesto è costituita dai materiali di contesto. In questo caso
CastanoWSU cap15 18-12-2008 16:49 Pagina 156

156 Capitolo 15 Organizzazione dei contenuti: ipertestualità e multimedialità

Figura 15.6 Arricchimento del testo per mezzo di informazioni di contesto.

non ci limitiamo a proporre i medesimi contenuti del testo originario in forma diversa,
ma andiamo oltre introducendo collegamenti con altre risorse. Possiamo ad esempio in-
trodurre un collegamento ai siti web dell’accademia di arte cinematografica o alla RKO
associandoli alle unità UB_B e UE_B. Il testo quindi si compendia di nuovi nodi e ri-
mandi (date, concetti generali, riferimenti a informazioni esterne) che trasformano lo
schema come nella Figura 15.6.
Possiamo quindi concludere osservando che l’attività di progettazione di un iperte-
sto è essenzialmente un’attività di scrittura che ha per obiettivo la rappresentazione di un
contenuto entro la rete dei suoi rimandi contestuali. Tale attività non potrà dunque pre-
scindere da una necessaria competenza relativa alle tecnologie e ai metodi di organizzazio-
ne dell’informazione digitale.
CastanoWSU cap16 18-12-2008 16:50 Pagina 157

Capitolo 16

Blog, comunità e social networking

L’evoluzione del Web negli ultimi anni ha visto diffondersi, accanto a una costante evolu-
zione tecnologica, nuove modalità di consultazione e uso della rete. Il Web ha per sua natu-
ra la capacità di mettere in relazione gli utenti e di abbreviare e semplificare i processi di pro-
duzione e diffusione dei contenuti. In origine, infatti, la produzione di un sito web di
grande diffusione era un processo semi-industriale, per il quale erano necessari investimen-
ti tecnologici e risorse economiche rilevanti. Accanto ai siti professionali, nascevano però
una miriade di siti personali, semplici e auto-prodotti dagli utenti. Fra i due circuiti non vi
era però mediazione: i siti personali rimanevano isolati e rivolti a comunità ristrette di uten-
ti, che spesso entravano in contatto fra loro al di fuori del Web. I siti a larga diffusione inve-
ce seguivano una logica che prevedeva un’unica direzione di fruizione, dal produttore di
contenuti all’utente finale. L’emergere di tecnologie e servizi che consentono di produrre fa-
cilmente siti personali e che offrono un contenitore che ne garantisce il funzionamento e la
diffusione ha prodotto una significativa riduzione del divario. L’idea centrale di questo feno-
meno, che va sotto il nome generico di social networking, consiste nel mettere a disposizio-
ne del pubblico piattaforme per la creazione di ampie comunità di utenti, che nascono
spontaneamente sul Web attorno al comune interesse per un tema o per un’attività.
Il successo del social networking è dovuto alla vastissima diffusione di siti web come
LinkedIn, Facebook e MySpace, e al proliferare di fenomeni come i blog e le comunità te-
matiche. In questo capitolo osserveremo da vicino alcuni di questi fenomeni, cercando
soprattutto di individuarne le caratteristiche tecnologiche e il modello di comunicazione.

Autorialità sul Web: blog e spazi di pubblicazione


Un primo, evidente, fenomeno prodotto dal social networking sul Web è la ridefinizione
del rapporto fra autori e processo di pubblicazione. Le potenzialità di ampia diffusione
dell’informazione, unitamente alla disponibilità di strumenti che semplificano la creazione
di contenuti digitali, producono infatti l’effetto di ampliare notevolmente il numero di po-
tenziali autori di contenuti e di creare comunità di lettori e autori che hanno alcuni siti
web come riferimento comune. La principale categoria di strumenti che rende possible
questa evoluzione prende il nome di blog. Il termine blog deriva dall’espressione web-log
che allude all’idea di utilizzare il Web come un luogo in cui registrare (to log) pensieri, opi-
CastanoWSU cap16 18-12-2008 16:50 Pagina 158

158 Capitolo 16 Blog, comunità e social networking

nioni, attività, come in una sorta di diario. I blog conoscono ampia diffusione con il paral-
lelo diffondersi di applicazioni web (come ad esempio Splinder, Blogger, WordPress) che
spesso offrono sia uno spazio web su cui pubblicare il sito, sia un software per la creazione
del sito stesso. Oltre alle funzionalità di creazione semplificata delle pagine del proprio si-
to, i blog offrono solitamente un insieme di strutture di organizzazione e memorizzazione
delle informazioni che facilitano la navigazione dei contenuti e la loro archiviazione. Il
processo di archiviazione, in particolare, è importante per un blog perché realizza concre-
tamente la vocazione di questi strumenti a svolgere un ruolo di memoria storica e colletti-
va dei contenuti on-line. I contenuti tipicamente pubblicati su un blog possono essere le-
gati fra loro in una traccia (thread ) e, generalmente, i lettori hanno la possibilità di
aggiungere commenti visibili all’autore come agli altri lettori. Inoltre, i contenuti sui blog
sono associati a categorie o parole chiave che ne specificano il contenuto e prendono il no-
me di tag. I tag sono volutamente non predefiniti e non organizzati in tassonomie o reti se-
mantiche. In tal modo, ogni utente può scegliere di utilizzare uno dei tag già esistenti o de-
finirne di nuovi. L’insieme dei tag viene poi spesso organizzato a posteriori sulla base della
popolarità di ogni termine e, quindi, sul numero di contenuti a cui esso è associato. Un
esempio di tale organizzazione, tratto dal sito [Link] è visibile nella Fi-
gura 16.1.
In questa peculiare modalità di consultazione, che prende il nome di tagcloud (nu-
vola di tag), le diverse parole chiave utilizzate per marcare i contenuti sono poste in evi-
denza sulla base del consenso che ottengono nella comunità, cioè del numero di contenu-
ti a cui si riferiscono. L’uso del consenso come criterio di organizzazione dell’informazio-
ne è una caratteristica tipica del social networking e contribuisce a rafforzare il senso di
appartenenza a una comunità che è fra gli obiettivi principali di questa tipologia di ap-
plicazioni web.
La presenza di una comunità è enfatizzata anche dal rapporto che si instaura fra un
blog e gli altri blog presenti sulla rete. Tipicamente, infatti, il blogger, ovvero l’utente ge-
store e autore del blog, introduce nel proprio blog un insieme di riferimenti ad altri blog
all’interno della comunità, che prende il nome di blogsphere (sfera dei blog). Questa pra-
tica sistematica rinforza il meccanismo di passaparola fra utenti che, di fatto, è una delle
principali ragioni di successo di un blog.
La struttura tipica di un blog può dunque essere ben rappresentata dall’esempio del-
la Figura 16.2, che si riferisce al blog “Sottotomo”, che ha per argomento il comune inte-
resse degli utenti per la letteratura e la narrativa in particolare.1

Figura 16.1 Esempio di organizzazione dei tag.

1 [Link]
CastanoWSU cap16 18-12-2008 16:50 Pagina 159

Autorialità sul Web: blog e spazi di pubblicazione 159

Figura 16.2 Esempio di struttura e organizzazione di un blog.

I processi di formazione della percezione di appartenenza alla comunità di un blog sono


ulteriormente rafforzati per mezzo dell’uso, nei blog come in tutto il Web 2.0, dei feed
RSS. RSS è un formato XML per la rappresentazione e diffusione di contenuti e notizie
sul Web. Contrariamente alle tradizionali pagine però, i feed RSS costituiscono un flusso
costante di notizie che un sito mette a disposizione degli utenti. Gli utenti possono usare
poi un software per scaricare e visionare tali contenuti periodicamente, in modo analogo
a quanto avviene con la posta elettronica. Quasi ogni browser e ogni programma per la
posta elettronica incorpora oggi un software di aggregazione e consultazione di RSS. In
questo modo è possibile per gli utenti definire una sorta di canale di informazione conti-
nuo con i siti che essi consultano regolarmente, in modo da ricevere notizie e novità quo-
tidianamente.
Se dal punto di vista tecnologico e di usabilità i blog condividono la stessa imposta-
zione comunicativa e gli stessi strumenti tecnologici, sul piano dei contenuti siamo di
fronte a un elevato grado di eterogeneità. In generale, possiamo definire una griglia di
classificazione dei blog avvalendoci di due criteri fra loro ortogonali: la dimensione auto-
riale e la dimensione contenutistica. Dal punto di vista dell’autorialità si possono distin-
guere blog personali, in cui l’autore è unico, blog collettivi, in cui il blog svolge la funzio-
ne di uno spazio di scrittura aperto agli interventi dell’intera comunità di utenti, e blog in
cui l’autore unico è costituito da un’organizzazione, come ad esempio un’azienda o un’i-
stituzione pubblica e in cui il lavoro di produzione del contenuto è tipicamente affidato a
una redazione. Dal punto di vista dei contenuti, la principale distinzione è fra blog gene-
ralisti e blog tematici.
Fin dall’origine, i blog sono caratterizzati prevalentemente dalla presenza di conte-
nuti di tipo testuale, anche se corredati da immagini o video. Accanto a questa tipologia
di strumenti di pubblicazione si è affermata anche la diffusione di strumenti di pubblica-
zione di contenuti multimediali. Questi condividono con i blog la funzione di creazione
di comunità di utenti e gli strumenti di pubblicazione e diffusione del contenuto, ma
non hanno la vocazione a creare uno spazio del discorso omogeneo e continuativo, quan-
to piuttosto la funzione di una bacheca virtuale per la diffusione di immagini e video. Gli
CastanoWSU cap16 18-12-2008 16:50 Pagina 160

160 Capitolo 16 Blog, comunità e social networking

esempi più significativi in questo campo sono il già citato Flickr e YouTube
([Link] Flickr è un servizio di pubblicazione di album fotografici
personali, mentre YouTube ha come tema la diffusione di video. I due servizi condivido-
no l’organizzazione dei contenuti basata su tag e canali tematici definiti sulla base dei tag
e della classificazione dei contenuti richiesta agli autori in fase di inserimento. Nel caso di
immagini e testo, al fianco di contenuti autoprodotti è facile reperire anche riproduzioni
di contenuti estratti da altre fonti, come i canali televisivi o i DVD. Ciò, oltre a porre il
problema rilevante dei diritti di diffusione dei contenuti, tende a creare canali di fruizio-
ne dei contenuti alternativi a quelli abituali. Ciò è dovuto principalmente al fatto che ta-
li strumenti costituiscono sia un mezzo di fruizione, sia una banca dati fruibile nel tem-
po, contrariamente a quanto avviene ad esempio con la televisione, che è invece basata sul
consumo dei contenuti entro un tempo definito e non riproducibile. La disponibilità di
contenuti su richiesta (contenuti on demand) è dunque un tratto caratterizzante delle tec-
nologie sul Web e si diffonde, per una sorta di retro-effetto, anche sui mezzi di trasmissio-
ne tradizionale, come la radio o la televisione. Un’altra caratteristica degli strumenti di
diffusione audiovisiva è il fatto che, mentre per il contenuto testuale i motori di ricerca
sono in grado di effettuare un’indicizzazione del dato, nel caso dei contenuti audiovisivi
tale indicizzazione è basata esclusivamente sui metadati. In altri termini, se un testo viene
pubblicato su un blog, esso diventa ricercabile utilizzando come parole chiave sia la de-
scrizione dell’autore e del testo (metadati) sia il contenuto del testo stesso (dati). Nel caso
di un video, invece, l’unica fonte di chiavi di ricerca sono la descrizione che l’autore for-
nisce del video e gli altri metadati, come il riferimento all’autore, i tag o il titolo, perché
non vi sono tecnologie affermate per l’estrazione di contenuto del video stesso (né dalle
immagini). In questo campo vi è, tuttavia, una fiorente attività di ricerca che ha propria-
mente l’obiettivo di fornire informazioni sul significato delle risorse multimediali (imma-
gini, video, audio) estraendo informazione da esse.
Avendo citato servizi di pubblicazione di contenuti extra-testuali come Flickr e You-
Tube, è opportuno citare il caso di MySpace.2 MySpace offre uno spazio di pubblicazio-
ne relativamente libero di profili utente. Chi si iscrive al servizio può infatti comporre
una propria pagina con una pluralità di contenuti che si estende a immagini e video. In
questo senso MySpace è un fenomeno a cavallo fra la pubblicazione di contenuti e la co-
munità di utenti. Le caratteristiche prevalenti di MySpace sono da ricondurre però alla ti-
pologia di pubblico che raccoglie, prevalentemente giovane e molto orientata al consumo
di musica e arte. Per queste ragioni il sito è diventato il veicolo di affermazione di gruppi
musicali e iniziative culturali che hanno trovato in MySpace uno strumento di accesso al
vasto pubblico che esula dai canali editoriali tradizionali.

Comunità di utenti e interazione sociale


Gli aspetti relativi alla formazione di comunità sono importanti ma non centrali per le
piattaforme di pubblicazione che hanno come obiettivo primario la diffusione di conte-
nuti. Al fianco delle varie forme di blog, nascono dunque servizi che hanno invece come
scopo principale la creazione di reti di utenti che utilizzano servizi informatici per tenersi

2 [Link]
CastanoWSU cap16 18-12-2008 16:50 Pagina 161

Comunità di utenti e interazione sociale 161

Figura 16.3 Esempio della struttura generale di una pagina personale su Facebook.

in contatto, interagire e conoscere nuovi utenti. La più nota, forse, fra queste piattaforme
è Facebook.3 Facebook nasce con l’intento di mettere in contatto persone, soprattutto
persone che si conoscono già al di fuori della rete, come vecchi compagni di scuola o col-
leghi di lavoro, e diviene però rapidamente un fenomeno di massa, grazie alla facilità di
utilizzo e all’integrazione di più strumenti di comunicazione in un’unica piattaforma
software. Un utente iscritto, incoraggiato a fornire quanti più dati personali egli sia dispo-
sto a diffondere, ha come luogo di accesso a Facebook la propria pagina di profilo, che è
uniformemente organizzata come nella Figura 16.3 per tutti gli utenti.
La pagina personale ha lo scopo di presentare agli altri utenti un iscritto al servizio.
Le informazioni principali sono divise in tre categorie.
1. Informazioni personali: relative ai dati anagrafici e alle preferenze di ogni utente, al-
la sua fotografia e all’insieme di contenuti (come ad esempio i video e gli album fo-
tografici) che ogni utente vuole condividere con altri. Nel caso di Facebook, la pub-
blicazione di un contenuto è articolata in modo tale da enfatizzare più che il

3 [Link]
CastanoWSU cap16 18-12-2008 16:50 Pagina 162

162 Capitolo 16 Blog, comunità e social networking

contenuto in sé, la segnalazione di tale contenuto ad altri utenti. In altri termini i


contenuti sono visti come pretesto e occasione di contatto più che come oggetto
della comunicazione.
2. Lista dei contatti: la lista dei contatti (o amici come vengono chiamati su Facebook)
rende visibile alla comunità la rete di contatti già intessuta da ogni utente. Il fatto
che su tale piattaforma ogni utente sia al centro di una rete di amicizie riveste un
ruolo primario per il funzionamento del servizio, poiché esso si basa del tutto sulla
capacità di creare reti di persone collegate fra loro. Un utente invia richieste di ami-
cizia ad altri utenti che possono approvarle. Da quel momento, le due persone com-
paiono nelle rispettive liste di amici e ricevono notifiche costanti l’uno sulle attività
dell’altro.
3. Notizie sull’attività dell’utente: il principio ispiratore di Facebook è che ciò che gli
utenti fanno è in qualche misura pubblico, poiché è visibile a tutti o ai soli utenti
che compaiono nella lista delle amicizie. Sulla pagina del profilo di ogni utente
compare quindi uno spazio (detto wall) che tiene traccia e notifica le diverse azioni
compiute da un utente, come ad esempio l’essere entrato in contatto con un altro
utente o l’aver utilizzato una delle molte applicazioni presenti su Facebook.
Il profilo utente è poi corredato da link che permettono di accedere alla pluralità di stru-
menti di comunicazione e interazione fra utenti che la piattaforma integra. Dal punto di
vista tecnologico, infatti, una delle caratteristiche più interessanti di Facebook è che il ser-
vizio mette a disposizione una vera e propria piattaforma per gli sviluppatori e le aziende
che intendono pubblicare su Facebook le proprie applicazioni, purché realizzate con tec-
nologie compatibili con il Web, come Flash e Ajax. Il risultato di questo sforzo di integra-
zione è che su Facebook, oltre al servizio di posta elettronica e chat integrato, ogni utente
può utilizzare diversi strumenti, dai giochi alle applicazioni di utilità generale, sviluppati
da terze parti e integrati con la piattaforma complessiva, così che ogni applicazione possa
avere accesso alle liste di amici degli utenti e possa funzionare in modo collaborativo.
Oltre a Facebook, il principio della rete di utenti è centrale anche per altre applica-
zioni di successo sul Web, fra cui LinkedIn, in cui la condivisione di profili è orientata al-
la formazione di contatti a scopi professionali, e Orkut.
In questo contesto merita una menzione a parte Second Life.4 Second Life ha l’am-
bizioso obiettivo di ricreare un mondo virtuale simile a un videogioco, in cui ogni utente
gestisce un proprio alter ego digitale (detto avatar) con il quale può muoversi in vasti am-
bienti tridimensionali e interagire con altri utenti, come mostrato nella Figura 16.4.5
La società creatrice di Second Life, la Linden Lab, mette a disposizione di ogni
utente strumenti di programmazione con cui creare ambienti e oggetti interattivi da ag-
giungere al mondo condiviso con gli altri utenti. È interessante il fatto che tali oggetti
possano essere venduti su un mercato interno a Second Life, che utilizza una speciale va-
luta, i Linden Dollar, che può essere convertita in Euro e Dollari statunitensi.
Contrariamente ad ambienti di interazione sociale come i blog o le comunità tradi-
zionali, Second Life è un progetto di grande complessità tecnologica. Più server connessi

4 [Link]
5 Copyright 2008, Linden Research, Inc. All Rights Reserved
CastanoWSU cap16 18-12-2008 16:50 Pagina 163

Directory di contenuti e portali collaborativi 163

Figura 16.4 Interazioni sociali e vita simulata su Second Life.

fra loro consentono infatti agli utenti di accedere al mondo virtuale di Second Life per
mezzo di specifici software client che fanno le veci dei browser nel visualizzare e rendere
interattivi gli ambienti virtuali. Dal punto di vista sociale, invece, Second Life oltre a co-
stituire un enorme laboratorio di interazione (vantando milioni di iscritti) si segnala co-
me un’opportunità per aziende e organizzazioni pubbliche di segnalare la propria presen-
za e mettere a disposizione degli utenti una riproduzione delle proprie sedi e dei propri
servizi.

Directory di contenuti e portali collaborativi


Abbiamo visto come, nel caso dei blog come in quello delle comunità, la collaborazione
fra utenti attivi sul Web sia una ragione primaria dell’evoluzione delle tecnologie e delle
modalità di comunicazione nel contesto della rete. Prenderemo ora in esame un terzo
esempio di uso del Web in cui gli elementi dell’autorialità e della collaborazione svolgono
entrambi un ruolo centrale. L’idea primaria in questo caso è che il lavoro editoriale neces-
sario a comporre una recensione accurata di ampi ambiti del sapere, che richiederebbe a
una qualsiasi organizzazione investimenti e costi insostenibili, può essere svolto per mez-
zo del lavoro volontario di una comunità estremamente ampia di utenti reclutata sul
Web. Per rendere possibile l’implementazione di una simile idea occorre disporre di una
piattaforma di creazione collaborativa di contenuti e di controllo editoriale e di una vasta
comunità di utenti potenzialmente interessati. Lo strumento più diffuso a questo scopo
prende il nome di wiki, termine che significa originariamente “veloce” e che indica ap-
punto un sito web in cui però ogni utente ha il diritto e i mezzi di apportare modifiche in
CastanoWSU cap16 18-12-2008 16:50 Pagina 164

164 Capitolo 16 Blog, comunità e social networking

Figura 16.5 Inserimento di nuovi contenuti in Wikipedia.

modo semplice e, appunto, veloce. In questo modo è possibile lavorare in più soggetti al-
lo stesso testo, ampliandone progressivamente l’estensione e la completezza. I wiki man-
tengono poi una cronologia delle modifiche in modo da poter riportare il sito a una pre-
cedente versione nel caso di modifiche indesiderate o errate. Ciò che prevalentemente
caratterizza i wiki però non è l’aspetto tecnologico, bensì l’approccio libero e aperto alla
circolazione dell’informazione, che ricorda da vicino la filosofia del software libero in
campo informatico: ogni utente può trarre beneficio dalle informazioni diffuse dagli altri
e ricambiare il vantaggio ottenuto diffondendo a sua volta informazioni potenzialmente
utili agli altri utenti.
L’esempio forse più noto di applicazione della tecnologia wiki è Wikipedia6, un’en-
ciclopedia che vanta versioni in quasi tutte le lingue del mondo (l’edizione italiana conta
più di 500.000 voci). Wikipedia è completamente realizzata dagli utenti che hanno a di-
sposizione uno strumento wiki per intervenire su un contenuto esistente o per inserirne
uno nuovo, come mostrato nella Figura 16.5.
Una delle critiche più spesso mosse a Wikipedia riguarda la correttezza e la qualità
dei contenuti. Wikipedia non fa mistero di ospitare contenuti amatoriali, ma applica mi-
sure di controllo sulla pubblicazione che sono in larga misura basate sull’idea che una co-
munità sufficientemente ampia si regoli automaticamente. Il contenuto errato o parziale
viene infatti eliminato o corretto da altri utenti e il lavoro redazionale è minimo. Questo
modello di lavoro collaborativo, con i propri limiti e vantaggi, è caratterizzato intrinseca-
mente da una scommessa sulla capacità di auto-organizzazione degli utenti della rete: ciò
che è certo è che Wikipedia è una realtà consultata da milioni di utenti del Web nel mon-
do ed è quindi uno strumento di circolazione del sapere con cui occorre confrontarsi.

6 [Link]
CastanoWSU cap16 18-12-2008 16:50 Pagina 165

La vastità dei fenomeni sociali sul Web 165

Oltre a Wikipedia, vi sono altre due esperienze di organizzazione collaborativa dei


contenuti sul Web che meritano una citazione: DMoz7 e Delicous8. Entrambi i sistemi
hanno l’obiettivo di costituire un punto di accesso ai contenuti web alternativo ai tradi-
zionali motori di ricerca. Nell’approccio dei motori di ricerca, infatti, l’indicizzazione del-
le pagine web e la loro classificazione è realizzata automaticamente da sistemi software. In
DMoz, invece, le pagine web sono classificate in un sistema di categorie (dette Directory)
dalla comunità degli utenti, che garantisce quindi una classificazione più accurata e più
coerente con le tipologie di ricerca degli utenti umani. L’idea di Delicious è invece legger-
mente diversa: come è noto, tutti noi possiamo tenere traccia di siti di interesse visitati
per mezzo delle funzionalità dei browser (bookmark). L’intento di Delicious è di sostitui-
re questa modalità di memorizzazione locale con un server di memorizzazione centrale
che non solo consente di disporre delle stesse risorse su calcolatori diversi, ma anche di
condividere i propri link preferiti con altri utenti, costituendo una vero e proprio punto
di accesso al Web, nel quale il meccanismo dei tag e della popolarità viene utilizzato per
marcare i bookmark salvati.

La vastità dei fenomeni sociali sul Web


Trarre conclusioni generali circa il social networking è quasi impossibile, poiché si tratta di
un fenomeno complesso, eterogeneo e in continua evoluzione. Anche i dati sulla sua va-
stità vanno presi con molta attenzione: le fonti sono a loro volta messe in discussione e mi-
sure credibili e aggiornate sul Web in generale sono difficilmente attendibili. Fatte queste
doverose premesse, prenderemo in esame alcuni dati forniti pubblicamente dalla società
Compete9, che si occupa di misurare le statistiche di gradimento dei principali siti web.
Nella Figura 16.6 riportiamo i dati relativi alla quantità totale di visitatori di due siti di

Figura 16.6 Dati di diffusione e crescita di alcuni importanti siti web.

7 [Link]
8 [Link]
9 [Link]
CastanoWSU cap16 18-12-2008 16:50 Pagina 166

166 Capitolo 16 Blog, comunità e social networking

larga diffusione generale (Google e Yahoo) e di tre siti rilevanti per la nostra discussione
(Facebook, MySpace e Wikipedia), con i dati di crescita relativi al periodo 2007-2008.
Se i due colossi Google e Yahoo si contendono una quota intorno ai 130 milioni di
visitatori, con una crescita rispettivamente del 6.6% e del -0.5%, è facile verificare come
i tre siti che abbiamo inserito nella categoria del social networking non siano molto di-
stanti, attestandosi fra i 40 milioni di visitatori circa di Facebook e i 60 milioni di
MySpace e Wikipedia, con una crescita, nel caso di Facebook, del 70.3% su base annua.
Il dato è ancor più impressionante se consideriamo che i visitatori di siti di largo consu-
mo come [Link] o [Link] sono per lo stesso periodo 55 e 70 milioni rispettiva-
mente e che un grande produttore di software come Apple totalizza 16 milioni di visita-
tori o che, per venire a un esempio italiano, il sito del Corriere della Sera ha avuto, nello
stesso anno, circa 58 mila visitatori. Considerando poi la lista dei primi 10 siti al mondo
per numero di visitatori, YouTube è al sesto posto, Wikipedia e Myspace occupano rispet-
tivamente il settimo e l’ottavo. Il fenomeno, insomma, ha proporzioni enormi e coinvol-
ge attivamente milioni di utenti. Questo pone nuove sfide e possibilità al Web, sia dal
punto di vista tecnologico sia dal punto di vista delle strategie comunicative. Mai però
come in questo caso è estremamente difficile distinguere quali, fra le novità introdotte da
questo particolare tipo di Web, siano da considerare innovazioni tecnologiche e quali in-
vece costituiscano un uso comunicativo nuovo della tecnologia. Il Web, insomma, prepa-
ra la strada a nuovi utenti e nuovi autori per i quali la distinzione fra queste diverse com-
petenze non sarà più un problema.
CastanoWSU cap17 18-12-2008 16:50 Pagina 167

Capitolo 17

Nuove modalità di fruizione


dei contenuti: topic map e ontologie

Sia il Semantic Web sia l’organizzazione tematica dei contenuti proposta dagli strumenti
di social networking sottendono l’idea che i contenuti sul Web siano sempre più spesso
ricercabili tramite interrogazioni complesse e consultabili sulla base di criteri di classifica-
zione. L’idea fondamentale consiste dunque nell’associare alle tradizionali pagine web in-
siemi di metadati che ne esprimano la semantica e rendano le pagine stesse comprensibi-
li anche ad agenti automatici. In altri termini, le informazioni sul Web dovrebbero essere
corredate di meta-informazioni relative alla relazione fra ogni dato e gli altri dati e all’in-
terpretazione delle diverse informazioni in relazione agli elementi della realtà che esse de-
notano. La rappresentazione esplicita dell’interpretazione associata ai dati prende il nome
di ontologia, a indicare propriamente la collocazione di ogni elemento nei confronti della
realtà che esso rappresenta. L’evoluzione del Semantic Web ha portato nel tempo alla pro-
posta di molteplici linguaggi per la realizzazione di ontologie, non solo da parte del W3C
(World Wide Web Consortium - [Link] In questo capitolo vedremo quali
modelli dei dati si possono usare per realizzare concretamente la descrizione semantica di
una pagina web per mezzo di mappe concettuali e ontologie; in particolare esamineremo
da vicino i tre principali standard attualmente proposti dal W3C, ovvero RDF, RDF-
Schema e OWL, segnalando dove necessario punti di contatto e differenze rispetto ad al-
tri linguaggi. I linguaggi proposti condividono la caratteristica di essere associati a una
sintassi basata su XML e hanno lo scopo di esprimere in modo sempre più ricco e defini-
to la semantica delle informazioni del Web, fornendone una descrizione nei termini dei
metadati a essi associati. In generale, la relazione fra gli standard proposti dal W3C può
essere schematizzata come nella Figura 17.1.
La figura mostra come si possono classificare i linguaggi secondo la funzione che as-
solvono. La base comune è costituita da XML, dall’uso dei namespace e da XML Schema.
Come si è detto, XML fornisce uno standard per mezzo del quale rappresentare la strut-
tura di un documento, ma non la sua semantica. Per quanto infatti i marcatori possano
avere nomi significativi per un lettore umano, i contenuti di tali marcatori continuano a
essere totalmente incomprensibili a un agente automatico. Perché dunque il significato
dei contenuti di una pagina web, come di qualsiasi altra informazione, sia rappresentato
CastanoWSU cap17 18-12-2008 16:50 Pagina 168

168 Capitolo 17 Nuove modalità di fruizione dei contenuti: topic map e ontologie

Figura 17.1 Rappresentazione dei rapporti fra i linguaggi del Semantic Web.

in modo esplicito, occorre associare a essi una descrizione semanticamente ricca che espri-
ma tale significato nei termini di oggetti descritti e relazioni fra essi. Un primo passo in
questa direzione è costituito da RDF, che si basa su XML per definire i propri costrutti,
ma la cui semantica è del tutto indipendente da XML. RDF consente di definire una de-
scrizione delle informazioni presenti sul Web nei termini di relazioni che intercorrono fra
esse. Lo schema di tali relazioni e la loro classificazione in termini di classi è resa possibi-
le da un’estensione di RDF che prende il nome di RDFSchema o RDFS. L’introduzione
di una semantica formalmente definita e di tecniche di ragionamento automatico associa-
te ai metadati avviene però solo al livello successivo, con il linguaggio OWL che rappre-
senta il punto di contatto fra RDF e una particolare classe di linguaggi logici, denomina-
ti logiche descrittive.

Il linguaggio RDF
RDF (Resource Description Framework) è un linguaggio per la descrizione di risorse web in
termini di metadati a esse associati. Oltre alle specifiche del linguaggio, il W3C definisce
una sintassi basata su XML per i costrutti di RDF1 e un linguaggio per specificare lo sche-
ma di tali descrizioni, che prende il nome di RDFSchema o RDFS2 e che verrà descritto
nel paragrafo successivo. Una risorsa web è definita come un qualsiasi oggetto della realtà
che possa essere identificato per mezzo di una URI (Uniform Resource Identifier). Una
URI è una generica stringa utilizzata come identificatore univoco di una risorsa. La forma
più comune di URI è costituita dalle URL (Uniform Resource Locator) che costituiscono
gli indirizzi delle pagine web a cui siamo abituati. Tipicamente, le URI utilizzate in RDF

1 [Link]
2 [Link]
CastanoWSU cap17 18-12-2008 16:50 Pagina 169

Il linguaggio RDF 169

si riferiscono non solo a risorse web indicate da una URL, ma anche a porzioni specifiche
di tali risorse, posponendo alla URL il nome dell’elemento indicato preceduto dal simbo-
lo #. Un esempio è il seguente, in cui la prima URI indica la risorsa desc (il nome, ad
esempio, di una pagina web) e la seconda URI indica l’oggetto name all’interno della ri-
sorsa desc.
[Link]
[Link]
Occorre notare che entrambi gli esempi precedenti sono URI valide e, pertanto, costitui-
scono una risorsa web che è possibile descrivere per mezzo di RDF. Il meccanismo dei
namespace, già introdotto a proposito di XML, è utilizzato per definire il linguaggio
RDF come un linguaggio della famiglia XML. È importante comprendere che XML è
utilizzato soltanto come sintassi per scrivere i costrutti RDF, ma che RDF ha un proprio
modello dei dati che prescinde da XML. In questa sede ci concentreremo sul modello dei
dati di RDF tralasciando la sintassi XML utilizzata per scrivere RDF sottoforma di docu-
mento XML.
Una descrizione RDF è costituita da nodi e proprietà che collegano tali nodi fra lo-
ro. Un nodo può essere una risorsa identificata da una URI, un valore letterale o un no-
do vuoto. Una proprietà è un arco che collega fra loro due nodi e definisce fra essi una re-
lazione. In generale una descrizione RDF si articola in triple, costituite da un soggetto, un
predicato e un oggetto a cui l’azione espressa dal predicato e svolta dal soggetto si applica.
La forma generale di una tripla RDF può dunque essere rappresentata come un grafo, un
cui esempio è mostrato nella Figura 17.2.
La figura mostra una semplice descrizione RDF in cui si associa a un film, rappre-
sentato per mezzo della URI [Link] il regista, rap-
presentato a sua volta dalla URI [Link] Nel nostro

Figure 17.2 Rappresentazione grafica di una tripla RDF.


CastanoWSU cap17 18-12-2008 16:50 Pagina 170

170 Capitolo 17 Nuove modalità di fruizione dei contenuti: topic map e ontologie

esempio le due URI rappresentano effettivamente due pagine web dedicate al film
Scarface e al regista Brian De Palma rispettivamente. È tuttavia importante comprendere
che il fatto che una URI corrisponda effettivamente a una pagina web non è necessario:
l’unica cosa necessaria è che le URI siano univoche e vengano utilizzate per identificare
degli oggetti della realtà che stiamo descrivendo.
La struttura dati fondamentale in RDF è dunque la tripla soggetto-predicato-
oggetto. Il nodo che funge da soggetto denota l’elemento a cui i predicati attribuiscono
una caratteristica o l’oggetto di un’azione. Gli unici oggetti di cui si può predicare in
RDF, ovvero che possono svolgere la funzione di soggetto, sono URI o nodi vuoti, detti
blank node. Un blank node rappresenta un’entità reale che però non è caratterizzata da al-
cun identificatore specifico, ma solo dall’insieme delle sue proprietà. A titolo di esempio,
supponiamo di rappresentare un indirizzo, composto da via, numero civico, CAP e città.
L’indirizzo in sé non è un’entità identificabile, ma solo una collezione di dati. In RDF,
dunque, una simile entità sarà soggetto dei predicati via, numero civico, CAP e città, ma
non avrà alcun identificativo specifico. In questo caso, le triple che descrivono l’indirizzo
sono rappresentate da nodi vuoti. I predicati sono elementi del linguaggio e non oggetti
reali. Essi infatti servono solo a collegare fra loro oggetti reali e non a denotare alcuna en-
tità. Pertanto possono essere costituiti esclusivamente da URI, che rappresentano un cer-
to costrutto del linguaggio che stiamo usando. Nell’esempio, abbiamo introdotto il ter-
mine regista che utilizziamo per collegare fra loro film e registi. Poiché i termini usati
come predicato sono descritti da URI, è possibile riutilizzare la terminologia definita da
sistemi standard di definizione dei metadati, come ad esempio Dublin Core, già presen-
tato nel Capitolo 13 dedicato a XML. I nodi che fungono da oggetto di una tripla, ovve-
ro che costituiscono il valore del predicato, possono essere a loro volta URI, nodi vuoti o
dati atomici, come stringhe, numeri, date, che prendono il nome di literal nella termino-
logia RDF. Utilizzando tutti i costrutti introdotti, possiamo presentare un esempio com-
plessivo che descrive il film Scarface nella Figura 17.3.
La figura mostra come tutti i nodi del grafo possano potenzialmente essere sogget-
to di ulteriori triple. Ad esempio, l’URI [Link] che
rappresenta l’attore Al Pacino è oggetto del predicato attore e soggetto del predicato
nome. Da notare inoltre come l’oggetto del predicato cast sia un nodo vuoto: il senso di

Figura 17.3 Rappresentazione RDF del film Scarface.


CastanoWSU cap17 18-12-2008 16:50 Pagina 171

Il linguaggio RDFS 171

questa rappresentazione è che un elemento del cast di un film è visto come un’entità
astratta caratterizzata da un attore e dal personaggio che interpreta, ma non da un nome
identificativo.

Il linguaggio RDFS
In RDF, ogni descrizione ha per oggetto singole entità, come ad esempio uno specifico
film o uno specifico attore, ma non intere categorie di oggetti, come ad esempio la classe
degli oggetti di tipo film o di tipo attore. RDFS (RDF Schema) è un linguaggio nato per
definire vocabolari RDF in termini di classi di oggetti RDF e relazioni fra tali classi.
RDFS costituisce un’estensione di RDF ed è esso stesso definito per mezzo di un docu-
mento RDF che costituisce anche il namespace necessario per poter utilizzare i costrutti
RDFS in un documento RDF. L’estensione apportata da RDFS a RDF consiste princi-
palmente nell’introduzione di costrutti per la definizione di classi e di proprietà. Una
classe rappresenta la definizione di un insieme di oggetti che prendono così il nome di
istanze di quella classe. Una classe è inoltre identificata da una URI ed è quindi, essa stes-
sa, un oggetto a cui è possibile applicare predicati. In altri termini in RDF e RDFS non
vi è una rigida distinzione fra schema, che contiene la definizione delle classi e dei predi-
cati, e istanza, che contiene la descrizione degli oggetti della realtà di cui predichiamo.
Una risorsa può essere associata a una classe per mezzo dell’attributo RDF rdf:type e per
mezzo del costrutto rdfs:Class. Per chiarire il rapporto che intercorre fra RDF e RDFS
possiamo analizzare l’esempio della Figura 17.4.
Il film rappresentato dalla URI [Link] è asso-
ciato alla classe [Link] per mezzo della proprietà
rdf:type. Questa relazione ci dice che il film in questione è di tipo Film, ovvero è un ele-
mento dell’insieme dei film, rappresentato dall’elemento [Link]
[Link]#Film.
A sua volta, [Link] è una classe di oggetti,
ovvero un insieme. Pertanto questo elemento sarà di tipo Classe o, se si preferisce, sarà
istanza della classe di tutte le classi, rappresentata dall’elemento rdfs:Class (abbreviazio-

Figura 17.4 Relazione fra classi e istanze in RDF e RDFS.


CastanoWSU cap17 18-12-2008 16:50 Pagina 172

172 Capitolo 17 Nuove modalità di fruizione dei contenuti: topic map e ontologie

ne per la URI completa dell’elemento Class in RDFS). Una classe RDFS è caratterizzata
da un’estensione costituita dalle risorse che ne fanno parte. La definizione di una classe
non coincide necessariamente con la sua estensione, dal momento che classi diverse pos-
sono avere la stessa estensione. Ad esempio, si può pensare a un’azienda nella quale tutti i
dipendenti siano coinvolti nella realizzazione di un progetto: la classe dei lavoratori coin-
volti e la classe dei dipendenti sono diverse o possono essere caratterizzate da differenti
proprietà, ma corrispondono allo stesso gruppo di individui. In generale, tutti gli oggetti
rappresentabili in RDF sono istanze della classe rdfs:Resource, la quale è tuttavia una
classe, ed è pertanto istanza della classe rdfs:Class, definita a sua volta come sottoclasse
della classe rdfs:Resource. Questo circolo vizioso è tale solo in apparenza, dal momento
che RDFS consente a una classe di essere istanza di se stessa e dal momento che RDFS
viene utilizzato per descrivere vocabolari RDF, ma è esso stesso un vocabolario RDF ed è
pertanto rappresentato a sua volta per mezzo di RDFS. In generale, l’ambiguità si spiega
con la necessità di definire tutte le risorse RDF valide come un insieme di oggetti, una
classe appunto, e al tempo stesso di definire il concetto di classe come il sottoinsieme del-
le risorse RDF atte a rappresentare classi di oggetti. Il secondo importante gruppo di ri-
sorse RDF è costituito dalle proprietà, che rappresentano relazioni fra un soggetto e un
oggetto. Tali risorse sono rappresentate dall’elemento rdf:Property che costituisce un’i-
stanza dell’elemento rdfs:Class. Pertanto rdf:Property costituisce la classe delle pro-
prietà RDF. Una proprietà RDF è associata in RDFS a un dominio e a un range. Il domi-
nio rappresenta la classe delle risorse a cui si applica una certa proprietà ed è
rappresentato per mezzo dell’elemento rdfs:domain che costituisce un’istanza della clas-
se rdf:Property, ed è dunque una proprietà. In particolare, la tripla P rdfs:domain C
implica che: a) P è una proprietà, ovvero un’istanza della classe rdf:Property; b) C è una
classe, ovvero un’istanza della classe rdf:Class; c) le risorse che sono soggetto di P sono
istanze di C. Il range costituisce invece la classe delle risorse che costituiscono valori validi
di una certa proprietà ed è rappresentato per mezzo dell’elemento rdfs:range che costi-
tuisce un’istanza della classe rdf:Property, ed è dunque una proprietà. In particolare, la
tripla P rdfs:range C implica che: a) P è una proprietà, ovvero un’istanza della classe
rdf:Property; b) C è una classe, ovvero un’istanza della classe rdf:Class; c) le risorse che
sono oggetto di P sono istanze di C.
Le classi RDFS possono essere organizzate in una gerarchia per mezzo della proprietà
rdfs:subClassOf che stabilisce che se una risorsa è istanza di una classe, allora essa è istan-
za anche di un’altra classe. In particolare la tripla C1 rdfs:subClassOf C2 stabilisce che se
una risorsa R è istanza di C1, allora essa è istanza anche di C2. La proprietà rdfs:subClassOf
è di conseguenza transitiva. Una caratteristica importante di RDFS consiste nel fatto che,
oltre a istituire gerarchie fra classi per mezzo della proprietà rdfs:subClassOf, è possibile
anche stabilire gerarchie fra proprietà per mezzo della proprietà rdfs:subPropertyOf. In
particolare, data la tripla P1 rdfs:subPropertyOf P2, se sussiste la relazione R1 P1 R2 allo-
ra sussiste anche la relazione R1 P2 R2. Una relazione gerarchica fra proprietà, in definitiva,
cattura l’idea che alcuni legami fra oggetti possano essere più generali di altri: ad esempio, il
legame essere-figlio-di è un caso specifico del legame essere-parente-di. Se dunque istituia-
mo fra le due relazioni un rapporto gerarchico, ogni relazione essere-figlio-di fra due ogget-
ti A e B, implicherà anche la verità del legame essere-parente-di fra A e B. In altri termini, se
A è figlio di B, allora A è anche parente di B.
CastanoWSU cap17 18-12-2008 16:50 Pagina 173

Semantica formale e ontologie 173

Semantica formale e ontologie


Quanto detto a proposito di RDFS ci consente di intuire come, dato un insieme adegua-
to di regole e tecniche, le descrizioni semantiche di risorse web possano essere processate
automaticamente per inferire informazioni implicite nella descrizione. Supponiamo ad
esempio di descrivere una pagina web P come istanza della classe Attore (P rdf:type
Attore), che rappresenta l’insieme di tutti gli attori presenti nella nostra descrizione.
Supponiamo poi di introdurre la tripla Attore rdfs:subClassOf Persona, in cui dicia-
mo che la classe degli attori è una specializzazione della classe delle persone. In questa de-
scrizione è implicita l’informazione per cui P è anche una persona. In altri termini, la tri-
pla P rdf:type Persona non è stata esplicitamente dichiarata ma è una conseguenza
logica delle triple P rdf:type Attore e Attore rdfs:subClassOf Persona e dell’inter-
pretazione della proprietà rdfs:subClassOf. Il processo che ci consente di derivare auto-
maticamente questa informazione prende il nome di ragionamento automatico e consiste
in un processo deduttivo, nel quale, a partire da alcune premesse (P è un attore e tutti gli
attori sono persone), si perviene a una conclusione (allora anche P è una persona). Perché
però questo processo di ragionamento sia automatizzabile è necessario disporre di una de-
finizione formalmente rigorosa dell’interpretazione dei costrutti del linguaggio utilizzato.
Nel Semantic Web, tale interpretazione è ottenuta combinando RDFS con una famiglia
di linguaggi logici denominati Logiche Descrittive. Tale combinazione dà origine al lin-
guaggio OWL (Ontology Web Language), lo standard W3C per la definizione di ontolo-
gie. In questa sede non entreremo nel merito di OWL e delle Logiche Descrittive, per le
quali rimandiamo a (Baader, 2003). Ciò che ci interessa comprendere è però il modo in
cui nelle Logiche Descrittive si definisce formalmente la nozione di interpretazione e, di
conseguenza, le regole in base alle quali è reso possibile il processo deduttivo.
La teoria su cui le Logiche Descrittive si basano è la teoria della denotazione e dei
modelli. In breve, l’idea è che ogni termine introdotto nel linguaggio, ad esempio una
classe o una relazione, denoti un insieme di individui della realtà descritta o, nel caso del-
le relazioni, un insieme di coppie di individui. Più precisamente, ogni termine descrive
l’insieme di tutti i possibili individui denotati dal termine. In altre parole, se definiamo
un linguaggio stabilendo regole di denotazione per i termini, quel linguaggio descriverà
un insieme di mondi possibili che soddisfano le regole del linguaggio. Ogni mondo coe-
rente con le regole è detto modello del linguaggio. Supponiamo ad esempio di definire la
classe degli attori come l’insieme di tutti gli individui che abbiamo recitato in almeno un
film. Sulla base di questa definizione, tutti gli oggetti della realtà osservata che rispettano
il vincolo, ovvero tutti gli oggetti che hanno una relazione recita con un oggetto di tipo
film, sono classificati come attori. È evidente che vi sono molti possibili mondi, ovvero
molti possibili insiemi di dati, che soddisfano queste caratteristiche. Ogni insieme di que-
sto tipo sarà dunque un modello per la nostra affermazione. Sulla base di questa teoria
possiamo quindi definire un criterio per stabilire la bontà di una deduzione, dicendo che
una deduzione è corretta, se essa è vera in ogni modello. Prendiamo ad esempio l’afferma-
zione Attore rdfs:subClassOf Persona: sia Attore sia Persona denotano due insiemi
possibili di oggetti reali. Definiamo poi la relazione rdfs:subClassOf come una relazio-
ne insiemistica che stabilisce che Attore è un sottoinsieme di Persona. Dalla definizione
di sottoinsieme deriva il fatto che ogni elemento di un sottoinsieme è anche elemento
dell’insieme che lo contiene. Dedurre dunque che l’attore P è anche una persona è una
CastanoWSU cap17 18-12-2008 16:50 Pagina 174

174 Capitolo 17 Nuove modalità di fruizione dei contenuti: topic map e ontologie

deduzione corretta poiché, per definizione, è vero in ogni modello che un elemento di
Attore è anche elemento di Persona.
Questa semplice trattazione non esaurisce naturalmente la gamma di problemi con-
nessi alla teoria dell’interpretazione, ma ci fornisce alcuni elementi per comprendere la
portata di queste tecniche nel contesto del Semantic Web. Se infatti ogni pagina web fos-
se descritta in questi termini, le possibilità di ricerca dell’informazione sul web sarebbero
enormemente accresciute. Prendiamo ad esempio una pagina web che descriva l’attore Al
Pacino. Nella pagina otteniamo molte informazioni su Al Pacino in quanto attore; se tut-
tavia siamo interessati a cercare delle persone, otterremo difficilmente questa pagina per
mezzo di un motore di ricerca tradizionale poiché non c’è evidenza, nell’informazione
originale, del fatto che un attore sia anche una persona. Un’interrogazione semantica-
mente arricchita, invece, è in grado di reperire informazioni su Al Pacino sia in quanto at-
tore (informazione esplicita) sia in quanto persona (informazione implicita).
Per concludere, dunque, la semantica gioca un ruolo chiave nell’evoluzione dall’at-
tuale Web di documenti a un Web di dati. La progettazione di un sito web è coinvolta in
questi cambiamenti nella misura in cui, accanto alle tradizionali problematiche di usabi-
lità e disegno della pagina, all’attenzione cioè al mezzo, divengono centrali i temi dell’or-
ganizzazione concettuale e logica dei contenuti e della rappresentazione della conoscenza.
CastanoWSU cap18 18-12-2008 16:51 Pagina 175

Riferimenti bibliografici

Di seguito, oltre alla lista dei riferimenti bibliografici che compaiono nel testo, riporti-
amo alcuni testi che pensiamo possano essere d’ausilio al lettore che voglia approfondire i
temi trattati o che intenda intraprendere un proprio percorso di letture. Naturalmente,
l’elenco non ambisce a fornire una bibliografia completa, che sarebbe per altro estrema-
mente vasta, ma crediamo possa fornire alcune prime indicazioni.

(Atzeni, 2006) P. Atzeni, S. Ceri, S. Paraboschi, R. Torlone, Basi di dati – Modelli e lin-
guaggi di interrogazione (2 ed.), McGraw-Hill, Milano 2006.
(Bacone, 1620) F. Bacon, Novum Organum, traduzione italiana di E. De Mas, Laterza,
Roma-Bari 1992.
(Baeza-Yates, 1999) R. Baeza-Yates, B. Ribeiro-Neto, Modern Information Retrieval,
Addison-Wesley, 1999.
(Berners-Lee, 2001) T. Berners-Lee, J. Hendler, O. Lassila, The Semantic Web, Scientific
American, Maggio 2001.
(Chen, 1976) P.S. Chen, The Entity-Relationship Model, Toward a Unified View of
Data, ACM Transactions on Database Systems, 1(1), 1976.
(Codd, 1970) E.F. Codd, A relational model of data for large shared data banks, Commu-
nications of the ACM, 13 (6), 1970.
(Elmasri & Navathe, 2007) R. Elmasri, S.B. Navathe, Sistemi di basi di dati – Fondamenti
(5 ed.), edizione italiana a cura di S. Castano, Pearson-Addison Wesley, Milano 2007.
(Genesereth & Nilsson, 1987) M. R. Genesereth, N.J., Nilsson, Logical Foundations of
Artificial Intelligence, Morgan-Kaufman, 1987.
(Gruber, 1993) T.R. Gruber, A Translation Approach to Portable Ontology Specifica-
tions, Knowledge Acquisition, 5(2), 1993.
(Guarino & Giarretta, 1995) N. Guarino, P. Giaretta, Ontologies and Knowledge Bases:
Towards a Terminological Clarification. In N. Mars (ed.) Towards Very Large Knowl-
edge Bases: Knowledge Building and Knowledge Sharing, IOS Press, Amsterdam 1995.
(Johnson, 2007) S. Johnson, Microsoft Access 2007, Pearson Education, Milano 2007.
(Krug, 2005) S. Krug, Don’t make me think!, Tecniche Nuove, Milano 2005.
CastanoWSU cap18 18-12-2008 16:51 Pagina 176

176 Riferimenti bibliografici

(Landow, 1992) G.P. Landow, Hypertext: The Convergence of Contemporary Critical Theo-
ry and Technology, The Johns Hopkins University Press, 1992.
(Landow, 2006) G.P. Landow, Hypertext 3.0: New Media and Critical Theory in an Era of
Globalization, The Johns Hopkins University Press, 2006.
(McLuhan, 1964) M. McLuhan, Gli strumenti del comunicare, Il Saggiatore, Milano 1990.
(Neches, 1991) R. Neches, R. Fikes, T.W. Finin, T.R. Gruber, R.S. Patil, T.E. Senator,
W.R. Swartout, Enabling Technology for Knowledge Sharing, Artificial Intelligence
Magazine, 12(3), 1991.
(Nielsen, 1999) J. Nielsen, Web Usability, Apogeo, Milano 1999.
(Ong, 1982) W.J. Ong, Oralità e scrittura. Le teconologie della parola, Il Mulino, Bologna
1986.
(Preppernau, 2007) J. Preppernau, S. Lambert, Microsoft Office Access 2007 Passo per
Passo, Mondadori Informatica, Milano 2007.
(Piriou, 2007) G. Piriou, M. Tripolini, Access 2007 Guida completa, Apogeo, Milano 2007.
(Salton, 1969) G. Salton, Information Storage and Retrieval, Cornell University Press, 1969.
(Studer, 1998) R. Studer, V.R. Benjamins, D. Fensel, Knowledge Engineering: Principles
and Methods, Data Knowledge Engineering, 25(1-2), 1998.
(Swartout, 1997) W.R. Swartout, Future Directions in Knowledge-Based Systems, ACM
Computing Surveys, 28(4es):13, 1997.
(Tanenbaum, 2003) A.S. Tanenbaum, Reti di calcolatori, Prentice Hall, 2003.
(Uschold, 1996) M. Uschold, The Use of the Typed Lambda Calculus for Guiding Naive
Users in the Representation and Acquisition of Part-Whole Knowledge, Data Knowl-
edge Engineering, 20(3), 1996.

Potrebbero piacerti anche