Dati e Web
Dati e Web
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
Informazione,
conoscenza e Web
per le scienze
umanistiche
CastanoWSU cap0 18-12-2008 16:39 Pagina IV
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.
Tutti i marchi citati nel testo sono di proprietà dei loro detentori.
978-88-7192-548-6
Printed in Italy
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
VI Sommario
Sommario VII
VIII Sommario
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.
Introduzione
Il ruolo dell’umanista
XII Introduzione
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
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
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
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
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
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
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.
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
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
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
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
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
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
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.
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.
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
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
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
tro di cui il primo è il rifacimento. La prima porzione di schema ER avrà dunque la se-
guente forma:
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:
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
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.
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
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:
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
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:
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.
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
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
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
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
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
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)))
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)))
Operazioni insiemistiche 37
FILM × CAST
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
Per ottenere poi il risultato richiesto basterà applicare una corretta proiezione, come mo-
strato di seguito:
σfilm = codice(FILM × CAST))
πtitolo, attore, personaggio(σ
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.2 Esempio di schema ER modificato mediante eliminazione delle gerarchie di generalizzazione.
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
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
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
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.
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
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
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
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
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)).
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
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
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.
(a) (b)
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-
Join di tabelle 59
(a) (b)
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
(a) (b)
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)
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
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.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
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
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
Information Retrieval 67
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
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
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
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);
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.
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
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-
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
Capitolo 8
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.
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.
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
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.
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.
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.
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
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
◆ 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.
3 [Link]
CastanoWSU cap8 18-12-2008 16:44 Pagina 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.
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
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.
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
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
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.
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 ò 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
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
<html>
<head>
<title> Esempio di pagina web </title>
</head>
<body>
<div class="Intestazione">
<h1>L'ultima infedeltà</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 è 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ù 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ù triste che non più essere
triste!</span><br>
</p>
</div>
</body>
</html>
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">
<html>
<head>
<title> Esempio di pagina web </title>
</head>
<body>
...
<h1 align="center">L'ultima infedeltà</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à</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
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>
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
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
.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;
}
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;
}
Capitolo 10
I motori di ricerca
◆ 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.
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.
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.
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
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
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
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.
Figura 10.5 Esempi di servizi aggiuntivi di Google. (a) Google Mail (GMail), (b) Google Docs.
Capitolo 11
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à.
1 [Link]
CastanoWSU cap11 18-12-2008 16:47 Pagina 116
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
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.
(a) (b)
Figura 11.4 Punto di vista dell’utente (a) e punto di vista del progettista (b).
(a) (b)
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
Capitolo 12
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.
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
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
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
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.
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.
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
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.
<email>
<a> ferrara@[Link] </a>
<da> [Link]@[Link] </da>
<oggetto> Messaggio </oggetto>
<testo> Questo è un messaggio di esempio </testo>
</email>
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
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
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
Figura 13.3 Rappresentazione ad albero del documento XML della Figura 13.2.
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
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
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
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
<film codice="0060125">
<dc:title> L’armata Brancaleone </dc:title>
<regista> Mario Monicelli </regista>
<anno> 1966 </anno>
</film>
</cinematografia>
3 [Link]
CastanoWSU cap13 18-12-2008 16:48 Pagina 136
<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
</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="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
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
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
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
1 [Link]
2 [Link]
CastanoWSU cap14 18-12-2008 16:48 Pagina 142
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
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.
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
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
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.
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.
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.
1 [Link]
CastanoWSU cap15 18-12-2008 16:49 Pagina 150
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
2 [Link]
CastanoWSU cap15 18-12-2008 16:49 Pagina 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
3 [Link]
CastanoWSU cap15 18-12-2008 16:49 Pagina 152
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.
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.
4 [Link]
CastanoWSU cap15 18-12-2008 16:49 Pagina 154
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:
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
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
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
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.
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
1 [Link]
CastanoWSU cap16 18-12-2008 16:50 Pagina 159
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.
2 [Link]
CastanoWSU cap16 18-12-2008 16:50 Pagina 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
4 [Link]
5 Copyright 2008, Linden Research, Inc. All Rights Reserved
CastanoWSU cap16 18-12-2008 16:50 Pagina 163
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.
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
7 [Link]
8 [Link]
9 [Link]
CastanoWSU cap16 18-12-2008 16:50 Pagina 166
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
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
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
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
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-
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
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
(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.