You are on page 1of 10

Vanni G.

Rizzo

Archivi Multimediali e Data Mining


Relazione finale

Il progetto da realizzare prevedeva una libreria digitale conntente una collezione di documenti
riguardanti i mondiali di atletica leggera.
Senza soffermarci sulla scelta dei files (spesso inventati e scelti a caso) abbiamo analizzato il
processo di realizzazione di una moderna libreria digitale e, facendo opportune considerazioni
abbiamo elaborato un sistema per la catalogazione dei contenuti e la realizzazione di metadati
in collezioni in cui spesso queste informazioni si incrociano e risultano duplicarsi rendendo il
lavoro di catalogazione (in particolare l’inserimento dei metadati) lungo, noioso e con buone
probabilità di errore (dimenticanze, errori di tipografia, etc.).
Inoltre l’analisi si è soffermata sulla pessima gestione dei template di visualizzazione di
Greenstone e sui limiti di personalizzazione a cui si sono arresi (inevitabilmente) molti degli
utenti di questo strumento: basti sfogliare la pagina “example” del sito greenstone.org che
queste problematiche saltano subito all’occhio.
Il nostro intento è stato quindi quello di trovare una soluzione che riuscisse a migliorare
l’esperienza di utilizzo di Greenstone, sia da parte dell’utente finale che dalla parte di chi
cataloga i documenti.
Il percorso che abbiamo seguito è quindi l’oggetto di questa relazione e consta delle seguenti
fasi di lavoro:
● progettare un database che raccolga in classi/tabelle tutti gli oggetti che vengono
all’interno della raccolta (e quindi atleti, edizioni, allenatori, materiale di merchandising
etc.);
● Aggiungere al databse una tabella (“Collegamenti”) che collega ogni file a un numero
potenzialmente infinito di oggetti del database;
● scrivere uno script in php che genera mediante l’utlizzo di query SQL un file xml
compatibile con il plugin MetadataXMLPlugin di Greenstone;
● Aggiungere MetadataXMLPlugin tra i plugin di Greenstone;
● Impostare le funzioni di navigazione e di ricerca su Greenstone;
● inserire in blocco tutti i files descritti all’interno del database nella raccolta in Greenstone;
● Inserire il file generato dallo script (“metadata.xml”) nella raccolta;
● pubblicare il contenuto compatibilmente ad EmeraldView
● generare ed applicare un nuovo layout CSS e HTML personalizzato in EmeraldView
● pubblicare tutto online.


DB: http://www.rivict.com/amdm/db/ -> rivictco_wrdp1 -> quelle che iniziano con “

Dobbiamo generare un file di questo tipo:

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


<!DOCTYPE DirectoryMetadata SYSTEM "http://greenstone.org/dtd/DirectoryMetadata/1.0/
DirectoryMetadata.dtd">
<DirectoryMetadata>
<FileSet>
<FileName>nugget.*</FileName>
<Description>
<Metadata name="Title">Nugget Point, The Catlins</Metadata>
<Metadata name="Place" mode="accumulate">Nugget Point</Metadata>
</Description>
</FileSet>
<FileSet>
<FileName>nugget-point-1.jpg</FileName>
<Description>
<Metadata name="Title">Nugget Point Lighthouse, The Catlins</Metadata>
<Metadata name="Subject">Lighthouse</Metadata>
</Description>
</FileSet>
<FileSet>
<FileName>kaka-point-dir</FileName>
<Description>
<Metadata name="Title">Kaka Point, The Catlins</Metadata>
</Description>
</FileSet>
</DirectoryMetadata>

DATABASE
Il database realizzato è qui di seguito raffigurato utilizzando il software Mysql Workbench:
Le tabelle create sono le seguenti:
● Collegamenti (amdm_collegamenti): si tratta della tabella più importante poichè consente
di collegare N files a N classi di database, per questo motivo il suo campo TabellaCollegata
è generico ed enumera le classi di dati che stiamo tenendo in considerazione: allenatori,
merchandising, atleti, discipline, record, edizioni, gare, Atleti_FC (Fan Comments), Atleti_BG
(Biografie);
● Files (amdm_files): contiene tutti i files della nostra libreria dando la possibilità di scegliere
l’enumeratore tipo dal momento che tra le specifiche era stato richiesto la possibilità di
restringere la ricerca ad immagini, testi, video e fan comments.
● Atleti (amdm_atleti), contiene tutte le informazioni sugli atleti, da considerare il fatto che manca
la Nazione visto che da specifiche era stato richiesto che un atleta potesse essere iscritto ad
edizioni diverse del mondiali vestendo maglie di nazionali diverse
● Discipline (amd_discipline), l’elenco delle discipline di Atletica Leggera;
● Partecipazioni (amdm_partecipazioni), contiene Nazione (vedi Atleti);
● Edizioni (amd_edizioni), le edizioni dei mondiali, con Nazione, Sede, Periodo;
● Gare (amd_gare), elenco delle gare per ogni disciplina;
● Allenatori (amd_allenatori), l’elenco degli allenatori;
● Vittorie (amd_vittorie), le vittorie degli allenatori;
● Records (amd_record), i record degli atleti;
● Merchandising (amd_merchandising), contiene dettagli sui prodotti commerciali (Se è un DVD,
un libro o altro) che serie è, in che anno è stato realizzato e una descrizione utilizzabile per la
ricerca.

Un esempio di inserimento potrebbe essere il seguente:


Il file “100_metri_piani.html” è collegato con le tutte le gare in cui la discilplina è 100 Metri
piani e quindi automaticamente a tutti gli atleti che hanno partecipato a quelle gare a
tutte le edizioni del mondiale in cui quelle gare sono avvenute.
Inoltre lo stesso file può essere collegato agli allenatori che hanno allenato gli atleti e al
materiale di merchandising che parla dei 100 metri piani!
In questo modo la quantità di Metadati cresce in modo controllato ed efficace.

METADATA.XML
La generazione del file “metada.xml” è avvenuta con uno script in php che leggendo dal
database genera il file XML compatibile con il DTD di Greenstone:

(da http://www.greenstone.org/dtd/DirectoryMetadata/1.0/DirectoryMetadata.dtd)

<!ELEMENT DirectoryMetadata (FileSet*)>


<!ELEMENT FileSet (FileName+,Description)>
<!ELEMENT FileName (#PCDATA)>
<!ELEMENT Description (Metadata*)>
<!ELEMENT Metadata (#PCDATA)>
<!ATTLIST Metadata name CDATA #REQUIRED>
<!ATTLIST Metadata mode (accumulate|override) "override">

Il file è generato con lo script che attualmente si trova su http://www.rivict.com/amdm/


generatore.php ed è abbastanza sempice:

echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";


echo '<!DOCTYPE DirectoryMetadata SYSTEM "http://greenstone.org/dtd/DirectoryMetadata/
1.0/DirectoryMetadata.dtd">'."\n";
echo '<DirectoryMetadata>'."\n";
global $db;

$query = "SELECT * from amdm_files;";


if( $res_file = $db->query($query) or die("Errore DB:" . $db->error)){
while($il_file = $res_file->fetch_assoc()){
echo '<FileSet>';
echo "\n".'<FileName>'.$il_file["nomefile"].'</FileName>';
echo "\n".'<Description>';

get_gerarchia_gara($il_file["IDFile"]);
get_gerarchia_atleta($il_file["IDFile"]);
get_gerarchia_merchandise($il_file["IDFile"]);
get_gerarchia_record($il_file["IDFile"]);
get_gerarchia_biografie_atleti($il_file["IDFile"]);
get_gerarchia_palmares_allenatori

echo "\n".'<Metadata name="amdm.FiltroTipo" mode="accumulate">';


echo $il_file["tipo"];;
echo '</Metadata>';
echo '</Description>';
echo '</FileSet>';
}
}

le funzioni get_gerarchia_gara, get_gerarchia_atleta, get_gerarchia_merchandise,


get_gerarchia_record, get_gerarchia_biografie_atleti, get_gerarchia_palmares_allenatori dato in
ingresso l’IDFile generano dinamicamente elementi <Metadata> per popolare le gerarchie che
sono state richieste dalle specifiche del progetto.
Le funzioni addAtleta, addNazione, addMerchandise, addGara, addEdizione, invece inseriscono
i metadati che servono al filtraggio della ricerca all’occorrenza di una delle classi di ricerca,
come richiesto dalle specifiche del progetto.
Solo per un file avremo un xml di questo tipo:
Si noti che i campi di gerarchia sono separati da “/” e che per ogni campo è impostato la
proprietà mode=”accumulate” che consente di sovrapporre i metadati nel caso in cui ci siano
più metadati uguali per ogni files.

EMERALDVIEW E LAYOUT
EmeraldView è un progetto Open Source realizzato da Ben S. et al. (disponibile all’indirizzo
http://yitznewton.org/emeraldview/index.php?title=EmeraldView) scritto in PHP5 seguendo il
pattern MVC ed è l’unico frontend web di Greenstone realizzato appositamente per i seguenti
motivi (citando dal sito dello sviluppatore):
We are aiming to solve several key weaknesses of the stock front-end:
● Greenstone's cryptic URLs of unusual size are a fail for user comprehensibility, search engine
crawlers, bookmarking, etc.; for example, to display a certain page of a certain collection:
http://greenstone.example.org/gsdl/cgi-bin/library?e=d-00000-00---off-0tidhar--00-2----0-
10-0---0---0direct-10---4-------0-1l--10-en-50---20-about---00-3-1-00-0-0-01-1-0utfZz-8-
00&a=d&c=tidhar&cl=CL1&d=HASH835d74745be9b88f5f6420
● Display customization is handled via a system of tokenized strings, and micro-templates
referred to as macros. This system is so heavily scattered, nested and cross-referenced that it is
quite difficult to conceptualize and modify how any given page is generated.
● Though extensive customization of the display is thus possible, there are some stopping points
where modification and recompilation of the C++ source is required; this goes beyond the
capabilities of the staff of many libraries who would be able to adjust PHP code like EmeraldView's.
● In short, it is impossible to follow the standard process of designing a site progressively
through conception, Photoshop mockup, HTML mockup, etc. because the HTML generation is
severely fragmented.

L’esportazione del progetto di Greenstone è perlopiù immediata, basta effettuare alcune


operazioni:
● - Nella directory bin/script di Greenstone directory, rinominare buildcol.pl in
buildcol.pl.bak
● - Copiare in quella cartella il file “buildcol.pl” dalla directory “greenstone” di EmeraldView
● - Copiare i files rimanenti nella cartella “greenstone” di EmeraldView nella
cartella “perllib”
● - Andare nella cartella della propria collezione e modificare il file GSDLHOME/collect/
NAME/etc/collect.cfg aggiungendo la seguente linea, qualora non ci fosse già:
buildtype :
○ lucene-emeraldview
○ infodbtype : sqlite
● Ricostruire la libreria da greenston (Build Project)
● Rinominare la directory di building in “index”
● Inserirela directory compilata nell’installazione di EmeraldView del webserver
● Specificare nel file di configurazione di emeraldview dove si trova il progetto.
La generazione del nuovo layout è semplicissima e consiste nel duplicare (per comodità)
il tema base di EmeraldView, rinominarne la cartella e impostare il nuovo nome al
file “emeraldview.yml”.
E’ inoltre possibile personalizzare la visualizzazione, impostare le lingue secondo lo standard
i18n.

Considerazioni Finali
Il sistema utilizzato è probabilmente uno dei tanti metodi per realizzare quanto proposto, ma di
certo lo user experience di Greenstone è da migliorare.
Volendo perseguire gli obiettivi citati all’inizio di questo documento bisognerebbe creare
un frontend per l’inserimento dei dati delle classi (per questo progetto abbiamo utilizzato
SQLBuddy che però non consente l’inserimento in base alle foreign key.
Inoltre l’ideale sarebbe stato generare dei file html che descrivessero ogni classe di metadata e
stilizzarla con lo stile dell’archivio online, per fa ciò avremmo dovuto prevedere i seguenti layout:

● Scheda Atleta
○ Informazioni personali e carriera
○ Discipline a cui partecipa
○ Gare a cui ha partecipato e risultati raggiunti
○ Record personali
● Scheda Disciplina
○ Per ogni edizione chi ha vinto
○ Atleti che hanno partecipato
○ il Record ,in quale edizione, da quale atleta
● Scheda Edizione del mondiale
○ tutte le gare fatte, nazione vincitrice, atleta, con primo secondo e terzo
○ tutti gli atleti partecipanti
○ i record fatti
● Scheda Tabella dei Record
● Scheda Nazione
● Scheda Gara
Mondiali di atletica
La collezione riguarda i mondiali di atletica, una competizione sportiva internazionale a
cadenza biennale organizzata dalla IAAF. Essa deve raccogliere informazioni inerenti le nazioni
partecipanti, le informazioni riguardanti gli atleti, le gare disputate e le classifiche.
Si supponga inoltre di possedere una raccolta di documenti (questi si che si possono
catalogare) audio e video (che può essere reale o inventata) che raccolga i commenti dei tifosi.
Questo insieme di documenti è di seguito chiamato fan_comments (->cartella in DATA).

Fonti
● http://it.wikipedia.org/wiki/ Mondiali_di_atletica_leggera

Ricerche
Sono richieste le seguenti tipologie di ricerca:
● Full-text
● Nazioni, che restituisca tutto il materiale relativo ad un nazione (partecipazioni alle varie
edizioni, atleti, allenatori)
● Atleta, che restituisca tutto il materiale relativo ad un atleta (biografia, tempi migliori, gare
disputate, vittorie)
● Gare, che restituisca tutto il materiale relativo ad una gare (specialità, all’aperto o al chiuso,
data, luogo, classifica finale e tempi)
● Edizioni, che restituisca tutto il materiale relativo ad un edizione del campionato del mondo
(paese organizzatore, squadre partecipanti, classifiche finali, record)
● Merchandising, che restituisca tutto il materiale venduto relativo ad un edizione del
campionato del mondo (CD, DVD, poster, altro)
E' necessario poter restringere la ricerca solo a immagini, video, testi o fan_comments.

Navigazioni
● Gare, gerarchia su cinque livelli contenente tutte le risorse testuali relative ad ogni gara
○ Edizione del mondiale
■ Tipo di specialità (all’aperto o al chiuso)
● Specialità
○ Data e luogo della gara
■ Documenti testuali? ordinati in ordine alfabetico
● Atleta, gerarchia su quattro livelli contenente le immagini, i video, la biografia e i
fan_comments relativa agli atleti
○ Nazione
■ Edizione
● Immagini dell’atleta
● Biografia
● Gara
○ Video
○ Fan_comments

N.B. Un atleta può aver partecipato ai mondiali vestendo la maglia di più nazionali
diverse. Se un video contiene immagini dell’atleta e commenti dei fan (cioè rientra anche
nella categoria fan_comments) deve essere rintracciabile due volte.
Numerosi articoli di merchandising sono legati alla competizioni (ad es. Dvd, libri, poster, ecc).
La seguente gerarchia raccoglie informazioni legate al materiale prodotto.
● Merchandising , gerarchia su tre livelli:
● DVD
■ Numero della serie
● Descrizione e immagini del cofanetto
● Romanzi
○ Anno di pubblicazione
● Scheda per ogni romanzo ordinate per titolo

● Altro
○ Anno di produzione
● Informazioni sull'articolo

● Record, gare in cui sono stati stabiliti record mondiali


○ Edizione del mondiale
○ Gara
● Documenti e immagini relativi al vincitore
○ Partecipanti
● Immagini

N.B. Il vincitore non deve comparire

● Biografie, biografie e fan_comments degli atleti e palmares degli allenatori


○ Atleti in ordine alfabetico
● Biografia
● fan_comments
○ Allenatori in ordine alfabetico
○ anno
● Documenti sulle vittorie

N.B. I l nomi di atleti/giocatori presenti nella libreria devono essere opportunamente linkati alla
rispettiva risorsa.

Tutto ciò che viene in mente attinente alla nostra libreria può essere aggiunta; cioè strutturarli
in modo opportuno e motivarle. I metadati possono essere creati in modo piu o meno efficiente;
sia per la struttura dati che per la generazione dati.
Ultima parte della visualizzazione

puo essere opportuno linkare i vari oggetti tra di loro ???

Per CSS possiamo fare riferimento a diverse librerie.

You might also like