Research and Development 1/^Archief/2009-2010/10/Pilot/Verslag

Uit Werkplaats
Ga naar: navigatie, zoeken

Zoekresultaten personaliseren aan de hand van profielen op sociale netwerksites

In profielen op sociale netwerksites lijkt veel informatie over mensen te vinden. Met behulp van traditionele zoekmachines is het echter niet mogelijk gebruik te maken van deze enorme hoeveelheid data. Websites als wieowie.nl proberen aan de hand van traditionele zoekmachines zoveel mogelijk informatie over mensen te vinden. Het zoeken gebeurt exclusief op naam. Waarom maakt een zoekmachine als wieowie.nl geen gebruik van de reeds gevonden informatie om bijvoorbeeld de resultaten uit de telefoongids te filteren op de echte woonplaats van de gezochte persoon? Er lijkt nog veel voor verbetering vatbaar op dit gebied, en wij wilden graag aan deze verbeteringen bijdragen.

Onderzoek

Het doel van het onderzoek was het proberen te koppelen van informatie die beschikbaar is op sociale netwerksites aan andere zoekresultaten, om aan de hand daarvan resultaten te optimaliseren. Het was de bedoeling als product een werkend prototype te bouwen. Het prototype moest aan de hand van een hyvesprofiel extra informatie kunnen vinden. Door bijvoorbeeld de combinatie van naam en woonplaats lijkt het eenvoudiger te zijn te bepalen wat iemands echte telefoonnummer is.

Hiervoor hebben we als eerste uitgezocht welke gegevens er nou eigenlijk beschikbaar zijn op sociale netwerksites. Daarbij was het belangrijk te kijken wat openbaar is, en wat alleen met een ingelogde gebruiker mogelijk is. Het lijkt praktisch onmogelijk eerst een zogenaamd vriendenverzoek te sturen dus dit laten we achterwege.


Site Zichtbaar zonder account Zichtbaar met account
Hyves Openbaar profiel:

- Naam, profielfoto, merken, foto’s (alleen foto’s die voor iedereen beschikbaar zijn), vrienden, school, interesses

Privéprofiel:

Alleen naam en profielfoto.

Openbaar profiel:

- Volledig profiel (naam, leeftijd, woonplaats, merken, interesses, school, enz.) foto’s, vrienden, krabbels, tikken, blogs

Privéprofiel:

Nog steeds alleen naam en profielfoto. Dit profiel is alleen zichtbaar als je bevriend bent met deze persoon.

Facebook Vrijwel niks, alleen een paar vrienden van een persoon. Profielgegevens (voor zover ingevuld) , vrienden, berichten, emailadres, foto’s, familielinks.
Youtube Accountpagina van persoon. Hierop is zichtbaar: info over jezelf (als je die hebt ingevuld), abonnementen op andere personen, vrienden, favoriete filmpjes, berichten, filmpjes die je zelf geüploadet hebt. Zelfde als zonder account.


Twitter Je eigen tweets, de mensen die je volgt, het aantal mensen dat jou volgt. Kleine biografie (woonplaats, leeftijd enz. weer voor zover je het zelf invult). Zelfde als zonder account.

Op hyves is sowieso van iedereen de naam en vrienden te zien. De rest van de informatie is afhankelijk van hoeveel de persoon zelf heeft ingevuld en beschikbaar heeft gesteld voor publiek. Bij dit instellen is het ook nog mogelijk dat bepaalde informatie alleen zichtbaar is voor vrienden. Om deze informatie te kunnen zien moet je dus vrienden met deze persoon moeten zijn. Op de meeste profielen zijn ook leeftijd en woonplaats te achterhalen. Interesses en merken zijn op veel profielen te vinden, maar deze zijn vaak niet bijgewerkt en dus veroudert. Hierdoor is het niet zeker of we iets kunnen met deze informatie.

Met Facebook kunnen we zonder ingelogd te zijn vrijwel niets. Als we wel ingelogd zijn hebben we de beschikking tot informatie als naam, vrienden, emailadres, foto's en familielinks. Vergeleken met Hyves zijn hier niet zozeer interesses en merken te achterhalen.

Op Youtube is vrij weinig informatie te vinden. Het maakt hier ook niet uit of je ingelogd bent of niet.

Twitter bevat een kleine biografie van de persoon (voor zover zelf is ingevuld), ook is zichtbaar welke mensen je volgt en wie jou volgt. Ook hier maakt het niet uit of je ingelogd bent of niet.

Hieruit hebben we geconcludeerd dat er redelijk wat informatie van een profiel te halen valt, alhoewel dit afhankelijk is van welke site je het haalt en of je een account hebt of niet. Het is ook erg afhankelijk van de persoon zelf. Als je niet wil dat mensen veel over je weten hoef je niet veel informatie op je profiel te zetten of je zet je profiel privé zodat het voor andere mensen niet zichtbaar is. Bij sommige sites (hier: Youtube en Twitter) is er met en zonder account even veel zichtbaar.

Crawlers

Nadat we gekeken hebben wat voor informatie eigenlijk op profielensites beschikbaar is, zijn we wat meer opgeschoven richting de technische kant. We hadden namelijk problemen verwacht met technische aspect van het geautomatiseerd gegevens verzamelen. Een programma dat webpagina's leest en er informatie afhaalt, wordt een webcrawler of webscraper genoemd. Met crawlen bedoelen we het systematisch ophalen van webpagina's. Ter illustratie: men geeft een beginpagina op en deze wordt (als string HTML) opgehaald. Vervolgens worden alle hyperlinks van de pagina afgehaald. (Meestal alle waarden van "href" attributen.) Deze worden aan een soort van lijst (queue) toegevoegd en één voor één opgehaald, waarna dit proces zich recursief herhaald. De gebruiker kan meestal zelf een stopcriterium opgeven. Met scrapen bedoelen we het extraheren van bruikbare informatie uit deze HTML string. Bijvoorbeeld woonplaats, geboortedatum, etc. Dit gebeurt voornamelijk door StringFind-achtige functies of pattern matching met reguliere expressies. Hoe dit precies gebeurt is sterk afhankelijk van de programmeertaal. Wel is het vaak gebaseerd op het feit dat bepaalde informatie op een vaste plek op een pagina staat, met bijvoorbeeld vaste HTML-tags er omheen waar naar gezocht kan worden. Omdat we niet het wiel opnieuw wilden uitvinden, hebben we naar verschillende open-source webcrawlers/-scrapers gekeken. Na een korte en weinig interessante selectieprocedure hebben we drie programma's gekozen die we verder gaan onderzoeken naar gebruiksmogelijkheden, eenvoudigheid en toepasbaarheid.

  • wget in combinatie met AWK

Wget is een programma om dingen te downloaden. Onder linuxgebruikers is het zeer bekend. Met wget is het bijvoorbeeld mogelijk een website recursief op te halen, waardoor deze helemaal bewaard blijft. Met behulp van AWK is het mogelijk de belangrijke data eruit te filteren. Beide hebben een goede documentatie,

  • Scrapy

Dit programma is geschreven in Python. De documentatie is niet erg goed en er zijn weinig voorbeelden beschikbaar. Het programma heeft als voordeel dat het alles in zich heeft om aan webscraping te doen. Hij kan websites downloaden, zelfs recursief, maar kan zelf ook de gegevens op een site extraheren. Geen van ons heeft echter ervaring met programmeren in Python, wat een behoorlijk nadeel is.

  • Crawler4j

De laatste oplossing die we bekeken hebben is Crawler4j. Crawler4j is geschreven in Java. Aangezien wij allen ervaring hebben met het programmeren in C++ en bovendien het vak object-oriëntatie dit of volgend jaar hebben, leek Java ons een geschikte taal. De software is eenvoudig te gebruiken en binnen zeer korte tijd is het mogelijk een webcrawler en webscraper op te zetten. De nadruk ligt hierbij op het extraheren van de data.

Met elk van deze crawlers zijn we erin geslaagd informatie van testpagina's af te halen.

Problemen

Aan het begin van het project dachten we vooral problemen te krijgen met het schrijven van de software die de informatie van internet haalt. Dit bleek in de praktijk echter veel makkelijker dan we gedacht hadden. Het probleem kwam vanuit een totaal andere hoek. De gegevens bleken namelijk nauwelijks bruikbaar. Veel informatie zegt namelijk heel weinig over een persoon. Zo vullen mensen bij Hyves zaken in als favoriete merken. Vaak is dit een hele lijst met merken. De vraag is wat dit zegt over een bepaalde persoon. Slechts in uitzonderlijke gevallen bleek het mogelijk iets te doen met de opgegeven merken. Zo was soms op foto's merkkleding te zien die ook in de lijst met favoriete merken te zien was. Voor een webscraper is het echter onmogelijk merkkleding op foto's te herkennen. Het is dus niet mogelijk deze gegevens in een geautomatiseerd systeem te gebruiken. Op sommige profielen was wel nuttige informatie te vinden. Het ging dan vooral om de woonplaats en soms de verenigingen waar de persoon lid van is. Ook de geboortedatum kon nog wel eens van pas komen. Helaas zijn veruit de meeste profielen niet volledig ingevuld, of niet volledig publiek toegankelijk. Daarnaast zijn profielen vaak vervuild met onjuiste informatie, bijvoorbeeld nep-woonplaatsen. Ten slotte bleek uit desktop testing dat het zeer moeilijk was om met deze gegevens daadwerkelijk iets te vinden. Door naar de gegevens te kijken als een computer, en vervolgens ook zo te zoeken, onderzochten we in hoeverre het mogelijk is om met deze gegevens geautomatiseerd informatie over mensen te zoeken. Dit bleek helaas alleen in zeer uitzonderlijke gevallen nuttige gegevens op te leveren. Ook bleek het onmogelijk geautomatiseerd te kijken wanneer gegevens betrouwbaar waren, en wanneer niet. Daardoor bleken de gegevens nutteloos. Hierdoor zijn we tot de conclusie gekomen dat we beter een ander onderwerp konden kiezen.

Resultaat pilot

Uiteindelijk hebben we dus besloten om te stoppen met dit onderwerp. Zo zie je maar weer dat een pilot erg nuttig is. Zonder deze pilot waren we aan een project begonnen waar waarschijnlijk niks uit zou komen en waar we alleen maar in zouden vastlopen. Deze pilot is dus ook leerzaam voor ons geweest. We zijn in ieder geval met de juiste dingen begonnen. En we hopen dat we Fase 1 beter kunnen afsluiten.


Idee nieuw onderwerp

Ons nieuwe idee voor een onderwerp is het maken van een touchscreeninterface voor een desktopbrowser. Na de touchscreenrevolutie op mobiele telefoons begint het erop te lijken dat desktopcomputers ook overgaan op touchscreens. de browsers zijn echter nog niet klaar voor deze ontwikkeling. Hetzelfde zagen we in het begin bij mobiele telefoons. De techniek voor touchscreens was klaar, maar er was nog geen geschikte software beschikbaar. De ontwikkeling voor een geschikte interface voor touchscreens op de desktop is dus ook nog in volle gang. De huidige interfaces zijn nog niet geschikt voor touchscreens, er zitten vaak kleine knopjes in die te klein zijn voor vingers. Daarom willen wij gaan kijken wat er precies mis is met de huidige interface, en wat er verandert kan worden. We willen eerst, tijdens de pilot, een onderzoek doen om de belangrijkste problemen vast te stellen. Vervolgens willen we verschillende interfaces gaan ontwerpen. Uiteindelijk is het de bedoeling dat we aan de hand van onze tekeningen ook een werkend prototype bouwen. Het is hierbij niet de bedoeling een volledig functionele browser te maken. De browser moet duidelijk laten zien hoe onze interface eruit ziet en hoe deze werkt. Niet alle functies hoeven dus daadwerkelijk te werken. Wanneer het mogelijk is willen we ook nog graag een experiment uitvoeren, waarin we kijken hoe testpersonen omgaan met onze browser.

Pilot deel 2

Touchscreens bestaan al jaren. De afgelopen jaren zijn ze enorm in populariteit gegroeid, onder andere door touchscreentelefoons zoals de Iphone. Het aandeel smartphones wordt steeds groter, en laten veel van die smartphones nou uitgerust zijn met een touchscreen. Sinds Apple met een totaal nieuw besturingssysteem voor touchscreentelefoons kwam, geheel voor touchscreens ontworpen, zijn ook andere fabrikanten op deze markt ingesprongen. Zo kwam ook Google met een systeem dat afgestemd is op touchscreens.

De Iphone heeft in korte tijd een enorm marktaandeel weten te krijgen. In twee jaar tijd zat het apparaat al boven de 15% marktaandeel onder de smartphones. Daar staat tegenover dat de traditionele systemen, zoals Symbian en Windows Mobile juist marktaandeel aan het verliezen zijn.

Bij gewone computers, desktops en laptops, zijn touchscreens nog een stuk minder populair. Toch lijkt ook hier langzaam beweging in de markt te komen. Zo introduceerde Microsoft enkele nieuwe technieken in Windows 7 speciaal voor touchscreens. Ook kondigde Microsoft, in samenwerking met HP de Courier aan, een soort kleine laptop bestaande uit twee touchscreens. Blijkbaar ziet Microsoft een markt voor touchscreens. Ook Apple is bezig met iets vergelijkbaars. De Ipad. Beide apparaten worden bediend met behulp van aanraking.

Zoals we al bij de telefoons zagen kwam de doorbraak pas toen de apparaten vanaf de grond af gebouwd werden voor aanraakgevoelige schermen. De interface is daarbij erg belangrijk. Daarom onderzoeken wij hoe touchscreens gebruikt worden, en wat er aangepast moet worden aan de 'normale' muis- en toetsenbordinterface.

Hiervoor moeten we eerst de tekortkomingen van touchscreens onderzoeken. In hoeverre worden deze tekortkomingen veroorzaakt door de huidige gebruikersinterfaces, zoals bij bijvoorbeeld browsers.

Om dit te testen hebben we enkele proefpersonen aan een test onderworpen. Elke testpersoon voerde enkele eenvoudige stappen uit in de internetbrowser die hij normaal gesproken ook gebruikt, zodat voor de testpersoon duidelijk was hoe de stappen uitgevoerd moesten worden. Het is dus niet de bedoeling te onderzoeken of interfaces intuïtief in elkaar zitten. Er werd slechts getest in hoeverre met een touchscreen een traditionele interface bediend kan worden. Daarbij werd bijgehouden wat er niet goed lukte, of waarvoor meerdere pogingen nodig waren. Verder vroegen we de testpersoon naar hun ervaring met touchscreens voor zowel desktops als telefoons.

Resultaat

Uit ons experiment is gebleken dat mensen inderdaad problemen ondervinden met het gebruik van de huidige desktop browsers in combinatie met een touchscreen. Knoppen en menu's zijn vaak te klein, workarounds voor een klik met de rechtermuisknop zijn vaak niet intuïtief of voor zichzelf sprekend genoeg en typen gaat erg traag.

Plannen voor Fase 1

Het belangrijkste in Fase 1 is het maken van verschillende ontwerpen voor de interface van onze browser. Hierbij maken we verschillende tekeningen en beredeneren we bij ieder object in de interface waarom dit er staat, en waarom het op deze manier werkt. Het eindresultaat bestaat uit een verzameling interfacedesigns, inclusief een beschrijving waarom we het ontwerp op deze manier gemaakt hebben. Ook willen we aan het einde van fase 1 een prototype hebben van de browser. Nog niet de gehele interface hoeft af te zijn aan het einde van de eerste fase, maar het lijkt ons belangrijk om in ieder geval aan het einde van fase 1 duidelijk te kunnen laten zien welke kant wij op willen.