Nell’ultima componente verrà esposto come il modulo presentato aggiornerà il valore della reputation dopo un utilizzo della sorgente di dati considerata. Le formule considerate a tale riguardo sono due, una da applicare nell’e- ventualità in cui l’impiego del data set all’interno della applicazione non abbia violazioni riguardanti le dimensioni di qualità dei dati o di qualità del servizio, l’altra nel caso in cui almeno un vincolo venga violato.
Nel primo caso il valore di questa componente subirà un incremento, con il valore di quest’ultimo declinato da una formula in cui codesto valore è in funzione del precedente valore della reputation.
In caso contrario, una seconda equazione determinerà la penalità inflitta alla reputation della sorgente di dati.
I 3 coefficienti che compongono questa seconda equazione sono rispettiva- mente la classe di utilizzo, un coefficiente legato all’affidabilità passata della sorgente di dati e un terzo valore che rappresenta la gravità complessiva di una o più violazioni avvenute.
Il primo valore corrisponde al livello di servizio che l’utente richiede e al quale sono associati diversi coefficienti. Aumentando la classe di servizio au- menterà la soglia di prestazioni da esso richieste, il prezzo pagato dall’utente e la penalità in caso di mancato rispetto dei vincoli assegnati.
Il secondo termine è legato alle performance passate della sorgente di dati considerata, nello specifico al rapporto tra gli utilizzi a cui sono associati una o più violazioni e il numero totale di utilizzi di tale sorgente di dati.
Infine, l’ultimo elemento è il valore delle violazioni, cioè la sommatoria che racchiude tutte le differenze tra il valore atteso per una determinata dimen- sione di Data Quality/Service Quality ed il valore effettivamente ottenuto dall’utente.
Nel caso in cui almeno uno delle differenze all’interno della sommatoria sia diversa da zero, si avrà una violazione, la cui gravità è determinata dal valore totale delle diverse sottrazioni.
Per ogni dimensione di data quality o di service quality considerata, si possono avere diversi tipi di violazioni; nello specifico, per l’accuratezza si possono considerare due possibili casi:
• usando l’accuratezza di tipo booleana è considerata una violazione un valore di un attributo che non corrisponde al valore reale. Come esem- pio, si può considerare il numero di cfu di un esame del Politecnico, se il valore reale è 10 cfu e il valore restituito come risultato è un qualsiasi numero diverso da 10, si avrà una violazione.
• un valore è considerato errato, e quindi comporta una violazione, se non rientra in un intervallo di valori considerato accettabile per un determinato attributo del risultato.
In particolare, per ogni attributo di ogni elemento del data set si verifica se il valore corrisponde a quello reale; in caso positivo verrà associato a quel determinato attributo un valore true, f alse altrimenti.
L’accuratezza complessiva verrà calcolata come il rapporto tra il numero di attributi con un valore true ad essi associato diviso il numero complessivo di attributi presenti nel data set considerato.
Passando alla completezza, si ha una violazione se il risultato mostrato ha delle tuple mancanti e/o se queste possiedono degli attributi di tipo NULL o mancanti.
Anche in questo caso, si contano quanti valori del risultato mancano; successivamente, per i risultati presenti si controlla se per ogni riga siano presenti tutti gli attributi associati.
Il valore di completezza verrà calcolato come il rapporto tra il numero di attributi che non siano vuoti e il numero totale di attributi presenti nel risultato.
Infine, si ha una violazione sul response time quando la piattaforma in seguito ad una richiesta di un utente non risponde a tale richiesta in un lasso di tempo minore o uguale ad una certa soglia fissata.
I 3 coefficienti all’interno della formula verranno descritti più nel dettaglio nel prosieguo del paragrafo.
In definitiva, Rexè dipendente da eventuali violazioni dei vincoli concor- dati con l’utente, legati alla qualità dei dati e sulla qualità del servizio.
Tale valore è così definito:
Rex= min(3, Rex+ N ) (3.4)
dove N rappresenta la variazione della reputation dopo un utilizzo del data set e 3 rappresenta il valore massimo che questa componente della reputation può avere. Il valore minimo di questa componente è fissato a 0.
Nello specifico, se l’utilizzo del data set è avvenuto senza alcuna vio- lazione, N assumerà valore positivo, con l’aumento della reputation legato al valore attuale della stessa. In questo modo, se il valore attuale della reputation risulta elevato, l’incremento sarà ridotto e viceversa.
Viene usato questo tipo di equazione, nello specifico un ramo di iperbole equilatera, per assegnare diversi valori di crescita in funzione del valore stesso di Rex. In particolare, se il valore di Rexè basso l’incremento della reputation
sarà più elevato che nel caso in cui questa componente della reputation sia vicina al suo massimo, 3.
La motivazione alla base di tale comportamento è quella di volere aiutare i data set che hanno effettuato delle violazioni nelle fasi iniziali del proprio utilizzo a recuperare in maniera abbastanza rapida la propria reputazione. Allo stesso modo, l’aumento di reputation si riduce all’aumentare del valore di Rex fino ad un valore massimo per la componente di 3.
N = min(0.25, 0.25/Rex) (3.5)
Il valore 0.25 sia come incremento massimo sia come numeratore alla base della formula è stato scelto dopo aver analizzato diversi coefficienti tramite una analisi di sensibilità atta a verificare l’impatto dei diversi possibili valori sull’andamento della reputazione.
Infatti, un valore troppo basso avrebbe penalizzato eccessivamente una sorgente dati che successivamente ad un errore ha rispettato i vincoli.
Al contrario, un coefficiente troppo elevato avrebbe avuto l’effetto oppo- sto, togliendo importanza ad eventuali violazioni.
In caso di violazioni di uno o più vincoli sulle dimensioni di data quality e/o data service, N avrà valore negativo:
N = −(Cu∗ Fv∗ V ) (3.6)
Nel caso in cui il data set non sia stato ancora utilizzato, il valore iniziale di Rex risulterà pari a quello di Rq.
In caso di violazione, oltre alla frequenza ci sarà da verificare la gravità della violazione, cioè la differenza tra il valore concordato per ogni dimensione della data quality/QoS e il valore effettivamente riscontrato, con un massimo di zero.
Per il calcolo di V sono dette dn i valori delle dimensioni di data quality
o service quality considerate, vn il valore atteso (il vincolo) per ciascuna dimensione e wn il peso associato alle dimensioni tramite l’applicazione su
cui sarà utilizzata la sorgente dati.
Quest’ultimo, come spiegato alla sezione 3.3, dipende dal contesto in cui opera l’applicazione richiedente il data set, e al variare della sua tipologia varieranno di conseguenza i pesi assegnati ad ogni dimensione di qualità dei dati e di service quality.
Il valore complessivo V legato alle violazioni è calcolato come la som- matoria delle differenze tra il valore atteso dall’utente e il valore effettiva- mente riscontrato da quest’ultimo, moltiplicate per il peso che ha ciascuna
dimensione: V = n X i=1 wn(vn− dn) (3.7)
Come secondo elemento, ad Rex è associato un parametro variabile, Fv, legato all’affidabilità complessiva del data set. Questo valore è dipendente dal rapporto tra il numero di volte in cui è stato usato il data set e il numero di casi in cui all’utilizzo è avvenuta una violazione ad uno/più vincoli.
Ad ogni esecuzione viene aggiornato il valore legato al numero di utilizzi della sorgente dati e, in caso di violazione, viene aggiornato anche il valore relativo agli errori. Successivamente a queste operazioni, viene ricalcolato il valore di Fv.
Questo valore può essere visto come una sorta di indice riguardante il comportamento passato di un data set; se durante le esecuzioni precedenti ha dimostrato di avere una bassa percentuale di violazioni, nell’eventualità che nel corso dell’utilizzo non rispetti i vincoli imposti dall’utente il modulo decide di non punirlo eccessivamente.
Al contrario, se nelle esecuzioni precedenti il data set ha dimostrato di non rispettare i vincoli sulle dimensioni di qualità dei dati o di qualità del servizio assegnategli dall’utente, esso verrà punito in maniera più severa.
Il valore di Fv aumenta in maniera proporzionale all’intervallo della per-
centuale di violazioni sul totale delle esecuzioni, con un valore minimo di 0.3 e un valore massimo di 1.2:
• 0.3, se la percentuale delle violazioni è inferiore allo 0.01% del totale delle esecuzioni
• 0.6, se la percentuale delle violazioni è maggiore dello 0.01% ma infe- riore allo 0.1% del totale delle esecuzioni
• 0.9, se la percentuale delle violazioni è maggiore dello 0.1% ma inferiore all’1% del totale delle esecuzioni
• 1.2, se la percentuale delle violazioni è superiore all’1% del totale delle esecuzioni
I coefficienti sono stati scelti in base alla percentuale di violazioni sul totale delle esecuzioni passate. Si è notato che solitamente il tasso di affidabilità è superiore al 99%, quindi si è presa una percentuale pari all’1% come so- glia di errore massimo, oltre il quale la sorgente di dati considerata avrà il parametro, e quindi la penalità, più alto.
Per stabilire i valori delle altri coefficienti si è stabilito di avere come soglie dei valori dieci e cento volte più bassi di quello più elevato, in maniera da avere degli scalini tra un valore e quello successivo.
Infine, si ha la “classe di servizio” (o classe di utilizzo) Cu, un parametro che indica il livello di qualità dei dati e del servizio che un utente si aspetta da tale sorgente di dati.
Ad una classe minore sono associate delle aspettative minori, cioè l’u- tilizzatore si potrebbe aspettare che usando il data set selezionato ci siano delle violazioni ai vincoli sulle dimensioni di qualità dei dati e di qualità del servizio da lui richiesti.
Al contrario, selezionando una classe di utilizzo elevata tale utente si aspetta che l’impiego della sorgente di dati avvenga senza problema alcuno e, in caso di violazione, tale errore assumerebbe valenza maggiore proprio a causa delle aspettative del fruitore.
Un utente può decidere di pagare maggiormente per avere un servizio qua- litativamente migliore; in caso di violazione dei vincoli, la classe di servizio costituirà un moltiplicatore al malus di questo parametro.
Per la scelta dei coefficienti numerici è stata effettuata una analisi di sensibilità allo scopo di trovare dei valori adatti per ogni classe di utilizzo. Dopo aver fissato il valore di Fv, sono state effettuate delle prove, dello stesso
tipo del test che si vedrà al paragrafo 4.2, su un campione ridotto di valori, nello specifico 25, allo scopo di analizzare la variazione della reputation al variare dei vari coefficienti e delle diverse classi di utilizzo.
Tali valori devono consentire di evidenziare la differenza tra le diverse classi di utilizzo, simulando le diverse esigenze degli utenti.
Inoltre, suddetti valori devono essere abbastanza elevati da riuscire ad ap- prezzare la penalità inflitta alla reputazione del data set in caso di violazione di una o più dimensioni di data quality/service quality.
In particolare, per trovare i valori per ciascuna classe di utilizzo, si sono attuati due procedimenti:
• Nella prima parte dell’analisi si sono ipotizzati i valori delle classi di uti- lizzo presi singolarmente. Per ogni valore si è cercato di trovare il giusto compromesso tra il penalizzare in maniera adeguata la reputation e il non punirla in maniera eccessiva.
• Successivamente, per ogni valore si è cercato di trovare il giusto com- promesso tra il penalizzare in maniera adeguata la reputation e il non punirla in maniera eccessiva
• Infine si è preso il set di valore candidato a diventare i coefficienti delle classi di utilizzo e lo si è "traslato" verso valori più o meno elevati per vedere l’impatto di tali operazioni sul valore complessivo di Rex
Altresì, c’è anche da considerare il contesto in cui è inserito questo modulo: le sorgenti di dati prese in considerazione potrebbero essere utilizzate anche per migliaia di volte, e i coefficienti delle classi di utilizzo non devono consentire di abbassare significativamente il valore di reputation in caso di errori isolati, per quanto essi possano essere gravi.
Al termine di questa analisi, si è scelto da salire progressivamente da un coefficiente minimo di 0.4 per simulare le aspettative che un utente ha sul comportamento della piattaforma: se decide di scegliere una classe più bassa ci si aspetta che sia più transigente in caso di violazioni ai suoi vincoli; al contrario, se sceglie la classe più alta è normale credere che lo stesso utente sia disposto a perdonare eventuali problemi nel soddisfare le sue richieste.
Come classi di servizio si possono scegliere 4 valori: • classe standard, a cui viene attribuita un peso di 0.4 • classe silver, a cui viene attribuita un peso di 0.7 • classe gold, a cui viene attribuita un peso di 0.9 • classe platinum, a cui viene attribuita un peso di 1.2
La componente Rini è legata direttamente al data set mentre Rchoice e Rex sono legate ai metodi di quel determinato data set; per avere un valore di reputation legato al data set si può pensare di aggregare i valori di Rchoice e Rex dei vari metodi di un data set in un unico valore, usando la media aritmetica.
Nel prossimo paragrafo si sono messi alla prova i valori esposti in prece- denza in un contesto reale, simulando l’utilizzo della piattaforma DITAS da parte di alcuni utenti tramite una applicazione.
I risultati di tale esperimento forniranno delle risposte sulla correttezza dei valori ipotizzati in precedenza.