• Non ci sono risultati.

2.1 Architettura del Museo Virtuale in VR

2.1.1 Selezione dei criteri di ricerca

La prima parte del progetto consiste nella selezione dei parametri per effettuare la ricerca e le interrogazioni ai database desiderati. La schermata iniziale del museo virtuale è una pagina

36

HTML abbastanza semplice che contiene alcuni menu corrispondenti ai campi di ricerca. L’utente da qui può selezionare tre repository diverse per il recupero delle immagini: Google Images, Wikimedia Commons56 e Europeana.

In base alla repository scelta si possono effettuare due tipologie di ricerche: si può inserire il nome dell’artista oppure, nel caso di Wikimedia Commons, una collezione di opere d’arte. In seguito l’utente può scegliere il numero delle opere d’arte che vuole visualizzare all’interno del museo virtuale, fino a un massimo di 30 opere.57

All’interno della casella di testo è possibile inserire il nome dell’artista, tuttavia sono stati implementati dei controlli affinché non venga inizializzato il motore grafico senza parametri o con un nome non valido.58

Per quanto riguarda le collezioni, sono presenti circa 255 collezioni caricate attraverso un un file XML che contiene i nomi delle gallerie d’arte. I dati sono stati presi utilizzando da Wikimedia Commons un’apposita API per prelevare le informazioni riguardanti le opere presenti su Google Cultural Institute divise per collezioni.

56 Si usa Wikimedia Commons perché la versione di Google Cultural Institute al momento è alla versione beta e non

offre delle API per poter fare delle richieste al server. Wikimedia Commons tuttavia contiene le opere che sono presenti nella piattaforma di Google e fornisce delle API per poter fare il fetching dei dati.

57 Si è deciso di scegliere questo limite superiore a causa di eventuali rallentamenti che potrebbero susseguirsi al

caricamento di più immagini, compromettendo la fluidità della visita virtuale del museo.

58 L’implementazione è fatta con le regex all’interno della pagina HTML. Di questo si discuterà nel capitolo

successivo.

37

L’architettura di questa prima soluzione combina assieme i linguaggi di HTML e Javascript. Il primo è stato utilizzato per descrivere sia l’aspetto strutturale della pagina sia , assieme al linguaggio CSS, la parte estetica della soluzione. Per quanto riguarda la parte in Javascript è necessario spendere due parole sull’architettura delle varie componenti costituenti la pagina web che riguardano il controllo relativo alla corretta immissione dei parametri nonché il caricamento dei dati da file XML.

2.1.1.1 Controllo degli elementi della pagina HTML

Il linguaggio Javascript offre varie soluzioni per eseguire diverse operazioni su una pagina web, fra le quali anche quelle relative all’immissione di parametri testuali. Ogni componente della pagina web è controllata dal codice JS per effettuare dei settaggi nelle impostazioni, di modo che si possano effettuare delle regolari ricerche. L’utente per prima cosa deve scegliere fra le

repository che vuole interrogare ed avrà a disposizione tre scelte. In base a tali scelte, nella pagina verranno effettuati dei cambiamenti a livello del corpo: se si sceglie di usufruire della pagina di Wikimedia Commons, ad esempio, verrà sostituito il campo testuale dove inserire il nome dell’artista per far posto a un menu a cascata contenente i nomi delle varie gallerie d’arte recuperate da Wikimedia.

38

Figure 3: Schema riassuntivo sui vari controlli effettuati dal codice javascript sui componenti della pagina HTML.

2.1.1.3 Controllo e preparazione del testo

L’obbiettivo di questi controlli è quello di consentire all’utente di inserire un nome valido per effettuare una corretta ricerca delle opere d’arte. È possibile infatti che inserendo soltanto simboli o una stringa di testo senza senso, la ricerca non possa andare a buon fine, ottenendo quindi pochi dati (o nessun dato) per generare dinamicamente il museo. Inoltre, per fare in modo che i motori di ricerca possano effettuare il loro lavoro senza alcun intoppo è necessario convertire la stringa con la notazione percentuale. Per il controllo del testo vengono inizializzate due condizioni fondamentali:

1. La stringa inserita dall’utente non deve essere una stringa vuota

2. La stringa inserita dall’utente deve essere composta da una sequenza di caratteri (spazi inclusi e numeri esclusi)

39

2.1.1.4 Caricamento della lista delle categorie di Wikimedia Commons

Se l’utente sceglie invece di voler generare un museo con delle opere appartenenti a una collezione d’arte, viene visualizzato un menu a tendina contenente i nomi delle gallerie d’arte. Il menu viene popolato dinamicamente tramite il codice Javascript e una lista di dati contenuti in un file XML, recuperato direttamente da uno script esterno in C++ che sfrutta le API di Wikimedia per poter ottenere una lista di tutte le pagine che sono contenute nella categoria Google Art Project works by Collection.59

Per poter leggere il file XML viene creato un oggetto Activex poiché l’ambiente di fruizione sarà unicamente Internet Explorer60. Con questo oggetto è possibile parsare il file XML e leggerlo riga per riga, ottenendo così il valore ottenuto corrispondente al nome della galleria d’arte, contenuto all’interno del nodo.61

Figura 4: Schema che riassume le operazioni dello script per il popolamento dinamico del menu delle categorie.

2.1.1.5 Incapsulamento dei parametri di ricerca

Una volta che l’utente ha delineato i parametri per effettuare la ricerca non resta che avviare il motore grafico di XVR. Quest’ultimo è incluso nel codice Javascript e viene inserito nella pagina HTML una volta che l’utente ha inserito tutti i campi di ricerca. Nell’oggetto che contiene motore grafico è possibile inserire dei parametri personalizzati grazie a un attributo che va sotto il nome di UserParam, al cui interno va passata la stringa contenente i dati selezionati dall’utente. I dati che vengono estrapolati sono elencati in questa lista:

59 https://commons.wikimedia.org/wiki/Category:Google_Art_Project_works_by_collection

60 Tendenzialmente con i nuovi browsers è necessario creare un oggetto XML DOM per effettuare il parsing di un file

XML, ma per le vecchie versioni di Internet Explorer (dalla versione 5 alla versione 8) non è supportata la compatibilità con l’oggetto DOM Parser, per cui l’unica via per poter trattare l’elaborazione di un file XML è quella di instanziare un oggetto ActiveX.

61 La struttura del file XML è composta da un nodo radice “categories” i cui figli, nominati sotto l’etichetta “cat”,

hanno come valore il nome della galleria d’arte e, come attributo “value”, hanno il nome della galleria d’arte codificato con la notazione percentuale.

40

1. Il primo elemento è un numero (0, 1, 2) che corrisponde alla repository scelta (Google Images, Wikimedia Commons, Europeana);

2. Il secondo elemento è una stringa corrispondente al nome dell’artista o al nome della galleria d’arte;

3. Il terzo elemento è il numero che corrisponde alla quantità di opere che l’utente vuole visualizzare.

Questi elementi vengono concatenati in un’unica stringa di caratteri che viene passata direttamente all’oggetto XVR. Con l’avvio del motore grafico di XVR, si passa alla fase del recupero delle informazioni delle opere d’arte da visualizzare nel museo virtuale.

Figura 5: Schema che rappresenta il processo di incapsulamento dei parametri e passaggio di questi al programma di XVR.