Vermijd overbodige data-integratie
Het internet biedt enorme hoeveelheden data die gebruikt kunnen worden voor veel interessante toepassingen. Maar elke keer dat u een unieke analyse en presentatie van informatie maakt die u niet zelf beheert, loopt u het risico dat de eigenaar op een bepaald moment in de toekomst dezelfde informatie aanbiedt, waardoor uw toepassing direct overbodig wordt.
Precies wat er met het Groupon API-data-analyseproject is gebeurd, waar we oorspronkelijk over schreven in augustus 2011. Gelukkig is de kern van ons project een grafische data-omzettingstool genaamd MapForce. We kunnen de omzetting snel en eenvoudig aanpassen en hergebruiken om een compleet andere dataset te presenteren, die nieuwe waarde biedt.

Ons project begon toen we opmerkten dat Groupon-aanbiedingen slechts in een beperkt aantal locaties beschikbaar waren, maar dat je deze online kon gebruiken om fysieke producten te bestellen die vervolgens bijna overal konden worden bezorgd.
We hebben MapForce gebruikt om de Groupon API te bevragen en alle aanbiedingen van alle Groupon-locaties op te halen. Vervolgens hebben we de aanbiedingen die als online aanbiedingen waren geclassificeerd, gefilterd en ze gepresenteerd op een HTML-pagina, elegant opgemaakt met Altova StyleVision voor zowel desktop- als mobiele apparaten.
De nieuwe "Producten"-tab, die recentelijk bovenaan de Groupon-website is toegevoegd, maakt onze oorspronkelijke data-indeling overbodig, omdat deze direct toegang biedt tot producten die online te koop zijn, vanuit verschillende locaties.

Wat nog erger is, is dat omdat veel van dezelfde producten worden aangeboden op bijna elke Groupon-locatie, onze kaart nu tientallen dubbele vermeldingen genereert.
Hergebruik de applicatie
Als we het eens wat breder bekijken, blijft de rechtvaardiging voor ons oorspronkelijke project geldig: Groupon organiseert en presenteert aanbiedingen op basis van een geografische zoekopdracht, maar er zijn gevallen waarin de aanbieding zelf aantrekkelijker is dan de locatie. Stel bijvoorbeeld dat een reis naar Allentown, Pennsylvania, niet op uw verlanglijst staat, maar wat als u wist van een Groupon-aanbieding om een Ferrari, Lamborghini of Aston Martin vijf of tien rondjes te rijden op het Pocono-circuit voor de helft van de normale prijs?
Het aanbod van Ferrari is geen online aanbieding, dus het staat niet vermeld onder het tabblad "Producten" en wordt ook niet geselecteerd door onze MapForce-datamapping. Laten we als nieuw doel voor ons mapping-ontwerp alle Groupon-aanbiedingen verzamelen van alle locaties die niet als online aanbiedingen zijn geclassificeerd. Er zijn waarschijnlijk veel interessante dingen te doen op plaatsen waar je misschien niet direct aan denkt. Hieronder staat het gedeelte van onze oorspronkelijke datamapping dat de gegevensrespons van de API filterde om online aanbiedingen te selecteren:

De functie "contains" in het midden van de screenshot controleert of een element met de naam "redemptionLocation" in de beschrijving van de aanbieding het woord "Online" bevat, wat aangeeft dat het een online aanbieding is. De aanbieding wordt alleen doorgegeven voor verdere verwerking als het resultaat "waar" is.
De logische "en"-functie rechtsboven combineert online aanbiedingen met een controle van het element "isSoldOut" om alleen de aanbiedingen te selecteren die nog beschikbaar zijn ( isSoldOut = onwaar).
We kunnen de verzameling gegevens eenvoudig omkeren door een logische "niet"-functie toe te voegen na de "contains"-functie. De nieuwe filterselectie omvat alle aanbiedingen die GEEN "Online" bevatten in het element redemptionLocation.

Aangezien de structuur van de data niet verandert, alleen de inhoud, hoeven we niets anders te doen voordat we de nieuwe versie van de mapping uitvoeren. Hieronder een fragment van de XML-output dat de deal met Ferrari weergeeft:

We kunnen dit uitvoerbestand direct verwerken met StyleVision, met behulp van onze oorspronkelijke stylesheet, om een HTML-document te creëren. Maar aangezien we nu in MapForce zitten, laten we nog twee verbeteringen toevoegen.
Verwijder dubbele gegevens
We krijgen nog steeds enkele dubbele resultaten, omdat dezelfde aanbiedingen vaak in verschillende wijken van grote steden worden aangeboden. Een van de voorbeelden die met MapForce is geïnstalleerd, is een mapping genaamd DistinctArticles.mfd, die laat zien hoe u duplicaten kunt verwijderen uit een invoerbron waarin XML-elementen herhaalde gegevens bevatten.
We kunnen het ontwerp eenvoudig kopiëren van het voorbeeld en toepassen op onze Groupon-pagina

Het element "Titel" fungeert als een unieke sleutel om dubbele overeenkomsten te identificeren, en de variabele "bereken wanneer" stuurt alleen het eerste exemplaar voor verdere verwerking.
Natuurlijk kunnen we deze strategie om dubbele vermeldingen te verwijderen ook toepassen op de oorspronkelijke lijst van online aanbiedingen, om te achterhalen of het tabblad "Producten" voor een bepaalde locatie daadwerkelijk alle beschikbare online aanbiedingen bevat. (Dat is niet het geval.)
Gegevens sorteren
Een nieuwe functie die is toegevoegd aan MapForce 2012 Release 2, stelt ons in staat om de gegevens te sorteren voordat ze in het uitvoerbestand terechtkomen. Hier is een deel van de mapping die eerst sorteert op de namen van de divisies, die de locaties van Groupon zijn voor aanbiedingen, en vervolgens op de titel van de aanbieding binnen elke locatie.

Nu kunnen we de voltooide mapping verwerken en een HTML-document genereren door het XML-uitvoerbestand te transformeren met onze oorspronkelijke StyleVision-stijlvolgorde

Misschien kunnen we zelfs een goede deal krijgen op een lekker Italiaans snackje, nadat we een snelle Italiaanse auto hebben gereden! MapForce en StyleVision zijn beide beschikbaar in de Altova MissionKit, die tegen een speciale prijs wordt aangeboden. Ontdek zelf hoe eenvoudig het is om de MissionKit te gebruiken om data van een web-API te integreren -- Download een gratis proefversie van 30 dagen!