Evitare la ridondanza nell'integrazione dei dati

Internet rende disponibili enormi quantità di dati per numerose applicazioni interessanti. Tuttavia, ogni volta che si progetta un'analisi e una presentazione uniche di informazioni che non si controllano direttamente, si corre il rischio che il proprietario offra la stessa visualizzazione in futuro, rendendo istantaneamente la propria applicazione obsoleta.

Esattamente quello che è successo al progetto di analisi dei dati dell'API di Groupon, di cui abbiamo scritto originariamente il 1° agosto 2011. Fortunatamente, il cuore del nostro progetto è una mappa grafica dei dati realizzata con MapForce. Possiamo modificare rapidamente e facilmente la mappa e riutilizzarla per presentare un set di dati completamente diverso, che offre un valore aggiunto.

Il nostro progetto è nato quando abbiamo notato che le offerte di Groupon erano disponibili solo in alcune località specifiche, ma potevano essere utilizzate online per acquistare prodotti fisici che potevano essere spediti quasi ovunque.

Abbiamo utilizzato MapForce per interrogare l'API di Groupon e ottenere tutte le offerte disponibili in ogni località di Groupon. Abbiamo quindi filtrato le offerte classificate come offerte online e le abbiamo presentate in una pagina HTML, formattata in modo elegante da Altova StyleVision per dispositivi desktop e mobili.

La nuova sezione "Prodotti" recentemente aggiunta nella parte superiore della pagina web di Groupon rende completamente superflua la nostra precedente mappatura dei dati, poiché offre un accesso immediato ai prodotti in vendita online provenienti da numerose località.

Ancora peggio, dato che la maggior parte degli stessi prodotti sono offerti in quasi tutte le sedi di Groupon, il nostro sistema di mappatura ora genera decine di duplicati.

Riutilizzare l'applicazione

A un livello più generale, la giustificazione del nostro progetto originale rimane valida: Groupon organizza e presenta offerte in base a una ricerca geografica, ma ci sono casi in cui l'offerta è più interessante della località. Ad esempio, un viaggio ad Allentown, in Pennsylvania, potrebbe non essere nella vostra lista dei desideri, ma cosa accadrebbe se sapeste di un'offerta Groupon per guidare una Ferrari, una Lamborghini o un'Aston Martin per cinque o dieci giri sul circuito di Pocono a metà del prezzo abituale?

L'offerta di Ferrari non è un'offerta online, quindi non è elencata nella sezione "Prodotti" e non viene selezionata dalla nostra mappatura dei dati MapForce. Come nuovo obiettivo per la nostra progettazione di mappatura, raccogliamo tutte le offerte di Groupon da tutte le località che NON sono classificate come offerte online. Probabilmente ci sono molte cose interessanti da fare in luoghi che potrebbero non venire subito in mente. Ecco la sezione della nostra mappatura dei dati originale che filtrava i dati ricevuti dall'API per selezionare le offerte online:

La funzione "contains" presente al centro dello screenshot verifica se un elemento chiamato "redemptionLocation" nella descrizione dell'offerta contiene la parola "Online", indicando così un'offerta online. L'offerta viene inoltrata per ulteriori elaborazioni solo se il risultato della verifica è positivo.

La funzione logica "e" situata nell'angolo in alto a destra combina le offerte online con un controllo sull'elemento chiamato isSoldOut per selezionare solo le offerte che sono ancora disponibili ( isSoldOut = falso).

È possibile invertire facilmente l'insieme dei dati raccolti inserendo una funzione "non" logica dopo la funzione "contiene". La nuova mappatura seleziona tutte le offerte che NON contengono la parola "Online" all'interno dell'elemento "redemptionLocation".

Poiché la struttura dei dati non viene modificata, ma solo il contenuto, non è necessario eseguire alcuna operazione aggiuntiva prima di eseguire la nuova versione della mappatura. Di seguito è riportata una parte dell'output XML che mostra l'accordo relativo a Ferrari:

Potremmo prendere questo file di output e elaborarlo immediatamente con StyleVision, utilizzando il nostro foglio di stile originale per creare un documento HTML, ma mentre siamo in MapForce, aggiungiamo altre due funzionalità.

Eliminare i dati duplicati

Stiamo ancora riscontrando alcuni risultati duplicati, poiché le stesse offerte vengono spesso proposte in diversi quartieri delle grandi città. Uno degli esempi inclusi in MapForce è una mappatura chiamata DistinctArticles.mfd, che illustra come eliminare i duplicati da un flusso di dati in cui i nodi XML contengono dati ripetuti.

Possiamo facilmente copiare il design dall'esempio e applicarlo alla nostra mappa di Groupon

L'elemento "Titolo" funge da chiave univoca per identificare transazioni duplicate, e la variabile "calcola quando" invia solo la prima copia per ulteriori elaborazioni.

Naturalmente, possiamo applicare questa strategia di eliminazione delle duplicazioni anche alla mappatura originale delle offerte online, per verificare se la sezione "Prodotti" per una determinata località offre effettivamente tutte le offerte online disponibili. (Non lo fa.)

Ordinamento dei dati

Una nuova funzionalità aggiunta alla versione 2 di MapForce 2012 ci permette di ordinare i dati prima che raggiungano il file di output. Ecco la sezione della mappatura che ordina prima i dati in base ai nomi delle divisioni, che rappresentano le sedi di Groupon per le offerte, e poi in base al titolo dell'offerta all'interno di ciascuna sede.

Ora possiamo elaborare la mappatura completata e generare un documento HTML trasformando il file di output XML con il nostro foglio di stile StyleVision originale

Forse potremmo anche ottenere uno sconto su un gustoso snack italiano dopo aver guidato una veloce auto italiana! **MapForce e StyleVision sono entrambi disponibili insieme nel pacchetto Altova MissionKit, offerto a un prezzo speciale. Scoprite di persona quanto è facile utilizzare MissionKit per integrare dati da un'API web: ** scaricate una versione di prova gratuita di 30 giorni!