Studie van visualisatie-algortimen voor het vinden en selecteren van audiovisuele content



Vergelijkbare documenten
MyDHL+ Van Non-Corporate naar Corporate

open standaard hypertext markup language internetprotocol transmission control protocol internet relay chat office open xml

General info on using shopping carts with Ingenico epayments

WFS 3.0 De geo-api van de toekomst. Linda van den Brink, Geonovum 13 februari #DataToBuildOn

Classification of triangles

Dit voorbeeldproject beschrijft het gebruik van web services (open standaarden) voor de ontsluiting van kernregistraties bij de gemeente Den Haag.

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT

Software Design Document

2019 SUNEXCHANGE USER GUIDE LAST UPDATED

Veel gestelde vragen nieuwe webloginpagina

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

De grondbeginselen der Nederlandsche spelling / Regeling der spelling voor het woordenboek der Nederlandsche taal (Dutch Edition)

MyDHL+ ProView activeren in MyDHL+

Hoe met Windows 8 te verbinden met NDI Remote Office (NDIRO) How to connect With Windows 8 to NDI Remote Office (NDIRO

Firewall van de Speedtouch 789wl volledig uitschakelen?

De Baseline Informatiebeveiliging En Kleine Gemeenten

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

LONDEN MET 21 GEVARIEERDE STADSWANDELINGEN 480 PAGINAS WAARDEVOLE INFORMATIE RUIM 300 FOTOS KAARTEN EN PLATTEGRONDEN

Introductie in flowcharts

MyDHL+ Tarief berekenen

z x 1 x 2 x 3 x 4 s 1 s 2 s 3 rij rij rij rij

Keuzetwijfels in de Emerging Adulthood rondom Studie- en Partnerkeuze. in Relatie tot Depressie

Zo kan je linken maken tussen je verschillende groepen van gegevens.

informatie architectuur 9 december 2010 IAM V

B1 Woordkennis: Spelling

Engels op Niveau A2 Workshops Woordkennis 1

ICARUS Illumina E653BK on Windows 8 (upgraded) how to install USB drivers

Software Design Document

Borstkanker: Stichting tegen Kanker (Dutch Edition)

My Benefits My Choice applicatie. Registratie & inlogprocedure

Hoe te verbinden met NDI Remote Office (NDIRO): Apple OS X How to connect to NDI Remote Office (NDIRO): Apple OS X

Y.S. Lubbers en W. Witvoet

! GeoNetwork INSPIRE Atom!

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours.

ECHTE MANNEN ETEN GEEN KAAS PDF

Technisch Ontwerp W e b s i t e W O S I

Maillijsten voor medewerkers van de Universiteit van Amsterdam

Handleiding beheer lijst.hva.nl. See page 11 for Instruction in English

Stap 1: Registreer via de link op de G-schijf beschikbaar na inloggen met de teken-account, verzend via Submit. Nadien krijg je een bevestiging op

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

De Invloed van Religieuze Coping op. Internaliserend Probleemgedrag bij Genderdysforie. Religious Coping, Internal Problems and Gender dysphoria

Online Resource 1. Title: Implementing the flipped classroom: An exploration of study behaviour and student performance

Angststoornissen en hypochondrie: Diagnostiek en behandeling (Dutch Edition) Click here if your download doesn"t start automatically

Add the standing fingers to get the tens and multiply the closed fingers to get the units.

RECEPTEERKUNDE: PRODUCTZORG EN BEREIDING VAN GENEESMIDDELEN (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

Ius Commune Training Programme Amsterdam Masterclass 16 June 2016

EM7680 Firmware Update by OTA

University of Groningen Educational value of digital examination

icafe Project Joeri Verdeyen Stefaan De Spiegeleer Ben Naim Tanfous

CBSOData Documentation

Non Diffuse Point Based Global Illumination

Activant Prophet 21. Prophet 21 Version 12.0 Upgrade Information

Handleiding Installatie ADS

Het Huis Van De Moskee Kader Abdolah

Relationele Databases 2002/2003

i(i + 1) = xy + y = x + 1, y(1) = 2.

Understanding and being understood begins with speaking Dutch

Ius Commune Training Programme Amsterdam Masterclass 15 June 2018

Relationele Databases 2002/2003

Begin Bij Het Eind Met Smart Requirements Synergio

SEO & Retail Hoe maak je het verschil?

Usage guidelines. About Google Book Search

Over dit boek. Richtlijnen voor gebruik

NMOZTMKUDLVDKECVLKBVESBKHWIDKPDF-WWUS Page File Size 9,952 KB 29 May, 2016

/ /

Pesten onder Leerlingen met Autisme Spectrum Stoornissen op de Middelbare School: de Participantrollen en het Verband met de Theory of Mind.

L.Net s88sd16-n aansluitingen en programmering.

The first line of the input contains an integer $t \in \mathbb{n}$. This is followed by $t$ lines of text. This text consists of:

Chapter 4 Understanding Families. In this chapter, you will learn

Website beoordeling feedbackvote.com

ATOS Viewer for Dental Frameworks User Manual

Les 10 : Aanmaken van een database (deel2).

TAAL ACTIEF GROEP 8 SPELLING 2 PDF

Een vrouw, een kind en azijn (Dutch Edition)

Datum 15 juni 2006 Versie Exchange Online. Handleiding voor gebruiker Release 1.0

Del.icio.us. Social software voor onderwijs (en persoonlijk gebruik)

GernEdiT The GermaNet Editing Tool

ALL-CRM Gebruikershandleiding AC-DataCumulator

Graphic Design. Keuzevak GD1. Raul Martinez-Orozco / raul@thecombine.nl)

MyDHL+ Exportzending aanmaken

Using Google Maps Engine Connector for QGIS

Risk & Requirements Based Testing

Zo werkt het in de apotheek (Basiswerk AG) (Dutch Edition)

My Inspiration I got my inspiration from a lamp that I already had made 2 years ago. The lamp is the you can see on the right.

Website beoordeling facebook.com

Interaction Design for the Semantic Web

Software Design Document

My Benefits My Choice applicatie. Registratie & inlogprocedure

Wiskunde Boek Getal En Ruimte Havo 2 Download

Gebruikershandleiding GO search 2.0

L.Net s88sd16-n aansluitingen en programmering.

Opgave 2 Geef een korte uitleg van elk van de volgende concepten: De Yield-to-Maturity of a coupon bond.

Oracle Application Server Portal Oracle Gebruikersgroep Holland Oktober 2003

Software Engineering Groep 4

MyDHL+ Duties Taxes Paid

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 22 februari 2013

Transcriptie:

Studie van visualisatie-algortimen voor het vinden en selecteren van audiovisuele content Bart Van Hoecke Promotor: prof. dr. ir. Luc Martens Begeleiders: ir. Tom Deryckere, Toon De Pessemier Scriptie ingediend tot het behalen van de graad van Burgerlijk ingenieur in de computerwetenschappen Vakgroep Informatietechnologie Voorzitter: prof. dr. ir. Paul Lagasse Faculteit Ingenieurswetenschappen Academiejaar 2007-2008

Voorwoord Deze scriptie is geschreven in het kader van mijn afstuderen als Burgerlijk Ingenieur in de Computerwetenschappen aan de Universiteit Gent. Mijn eerste dank gaat uit naar mijn promotor prof. dr. ir. Luc Martens en mijn begeleiders ir. Tom Deryckere, ir. Toon De Pessemier en ir. Michiel Ide voor hun advies, praktische hulp en bijstand tijdens de ontwikkeling van dit werk. Graag wil ik ook mijn ouders bedanken die mij met veel begrip en geduld bijgestaan hebben in het proces. Ik heb altijd een project willen ontwikkelen waarvan ik uiteindelijk een zichtbaar resultaat had. Niets is meer dankbaar dan het opbouwen van een webapplicatie die gebruik maakt van visualisatie methoden om bepaalde zaken voor te stellen. In de eerste weken werd een basisidee grafisch uitgewerkt. Onmiddellijk was mijn enthousiasme gewekt. Daarna ontstond een evolutie met nieuwe ideeën, concepten en volgden de weken elkaar sneller en sneller op. Ik heb veel bijgeleerd tijdens de laatste maanden en ben tevreden over het resultaat. Ik hoop dat mijn scriptie kan bijdragen in een nieuwe trend naar gebruik van visualisatie systemen bij de ontwikkeling van websites op het internet. Bart Van Hoecke, januari 2008 i

Toelating tot bruikleen De auteur geeft de toelating deze scriptie voor consultatie beschikbaar te stellen en delen van de scriptie te kopiëren voor persoonlijk gebruik. Elke ander gebruik valt onder de beperkingen van het auteursrecht, in het bijzonder met betrekking tot de verplichting de bron uitdrukkelijk te vermelden bij het aanhalen van resultaten uit deze scriptie. Bart Van Hoecke, januari 2008 ii

Overzicht Visualisatie algoritmen worden gebruikt om grote hoeveelheden data overzichtelijk weer te geven. In de context van audiovisuele content zullen we een webapplicatie ontwikkelen waarin films voorgesteld worden. Bepaalde eigenschappen van de films worden gebruikt om relaties te leggen tussen elkaar. Op deze manier wordt een datastructuur opgebouwd die visueel op het beeldscherm weergegeven word. De gebruiker zal in staat zijn vlotter informatie terug te vinden en te selecteren. In hoofdstuk 1 wordt een inleiding gegeven als situering van de scriptie. Hoofdstuk 2 beschrijft welke bronnen we zullen gebruiken als dataleveranciers voor de applicatie. Een overzicht van bestaande visualisatie applicaties wordt gegeven in Hoofdstuk 3, waarna een besluit valt over de voorstelling van film data. Hoofdstukken 4, 5 en 6 geven een beschrijving van de client-server architectuur, per onderdeel worden de functionaliteiten beschreven en wordt een beeld gegeven van de ontwikkelde software. Gebruiksvriendelijkheidtesten die na de ontwikkeling plaatsvonden worden behandeld in het volgende hoofdstuk. Tot slot zal een conclusie de uiteindelijke resultaten bespreken in hoofdstuk 8. Kernwoorden: visualisatie van data, personalisatie, recommandatie, film, applicatie ontwikkeling iii

Study of visualization algorithms for finding and selecting audiovisual content. Bart Van Hoecke Supervisor(s): Prof. dr. ir. L. Martens, ir. Tom Deryckere, ir. Toon De Pessemier Abstract: The idea in this article is to develop a web application on which people can find and select films. To give a better overview, the films are presented as a graph on the computer screen by a visualization algorithm. This algorithm adapts the presentation when a user is browsing the data by adding new films to the graph or by forming a completely new graph. A new graph can also be formed by searching films based on certain properties. These properties are analyzed to determine the behavior of the user. As a personalization of the application, it can help the user in finding recommendations. Keywords: visualization, personalization, recommendation, film I. INTRODUCTION The internet landscape is constantly changing and evolving. Today audiovisual content is gaining importance because of evolutions in database storage capacities. Sites like YouTube let users upload their own video data and distribute it over the Internet. It is impossible for an internet user to watch all available data. Finding information, you are interested in, brings users to search engines as Google or Yahoo. Other possibilities are specialized sites who try to categorize content and make it easier to browse similar data. The results of such sites are presented to the user in a textual form by a list of links. Browsing the information is possible by following the links. We try to change this way of browsing by giving a visual presentation of the data by using a visualization algorithm. A new trend in the evolution from the classical site that presents information to interactive web applications is changing the way developers construct websites. Web applications give the user the ability to interact with the site so that it will fulfill his needs in a more accurate way. II. INFORMATION RESOURCES Before developing the system, a choice was made which sources would be used. Websites today make it possible to use their data in your own application by using web services. Four such web services will be consulted to gather the information that is presented to the user. A. Freebase Freebase is an open and free online database with the purpose of organizing information. Different types of B. Van Hoecke is a graduate student at the Ghent University (UGent), Gent, Belgium. E-mail: Bart.vanhoecke@UGent.be. information are available such as Person, Music, Film, etc. And the possibility of using the system through web services makes Freebase[1] a suitable candidate as main source. We will concentrate on the type Film. B. Wikipedia When you search for information the possibility exists that you will encounter one of the thousands articles in the Wikipedia[2] database. DBpedia[3] is an online web service that enables other systems to access the information on Wikipedia. This information will be used in addition to the information from Freebase. C. YouTube The only free video images from films available online are trailers. A trailer gives a better vision of what the film is about. The availability of trailers on YouTube[4] makes the use of their services a good choice. D. Yahoo Two services of Yahoo[5] will be used: the search engine and spelling suggestions. People that are looking for a certain film don t always know what the title is, who directed the film or which actors are starring in it. Instead they know some keywords that describe the film. The possibility to find a film based on some keywords gives the user more freedom in finding content. A second service corrects the misspelled terms formulated by the user as a Did you mean functionality. III. VISUALIZATION Visualization algorithms have the ability to represent large amounts of data in a clear and well-organized way. On the internet some tools are available for giving a dynamic representation of a graph. We have chosen the SpringGraph[6] Flex component developed by Mark Sheperd. We will use a poster to represent the film and the links between the nodes will be determined by relations. The relations are based on three properties of films: director, actor and genre. The color, thickness and opaqueness of the links between films will be changed according to their relationship. Only films with the highest similarity are presented in the graph. This similarity is calculated by discovering the similar properties between the films and returning an average score of similarity. The weights used to calculate the score of similarity can be adapted according to the users needs. You can find similar applications for music data online. iv

I. ARCHITECTURE The best choice to develop this application was a clientserver architecture. The client presents the interface to the user as a web page in his browser. This client is responsible for making the calculations and the presentation of the film data. The server is responsible for all personalization functionalities. II. FUNCTIONALITIES A list of the most important functionalities the system delivers is presented in the following paragraphs. A. Search Searching films in a database is inevitable and necessary in this application. Five different searches are presented to the user. The first searches for films based on their title. The three following searches are based on properties of the films. A search can be formulated by giving the name of a director, the name of an actor or the type of a genre. And the last search uses the Yahoo search engine which let the user search the database by keywords. Spelling corrections help the user in finding the correct data. B. Textual representation The visualization algorithm gives the overview of the films by their posters. The extra information (year, director(s), actor(s), genre(s), abstract) become visible when the user clicks on a film in a separate structured window. The list of films is analyzed and average values are stored for the most important film genres. Based on this information and a history of the user s actions, recommendations can be given to the user. G. Similar users The list of films has a second purpose. A comparison can be made between the users based on this initial profile. Each user has a list of films that each has a value between 0 and 6. These values form a vector for the each user (1) (2). By calculating the cosine of the angle between the different vectors and presenting the smallest angles, a user can see other users with similar interests (3). v 1 = (x 1, x 2,., x n ) (1) v 2 = (x 1, x 2,., x n ) (2) Cosine (v 1, v 2 ) = v 1.v 2 / v 1. v 2 (3) H. Rating system You can read the information about the film in the textual representation. A part of this information is a rating of the film. This value is calculated between all the users that have given a score to the film. You are able to change your own rating at any point and the new average will be visible. C. Settings For improving the overview of the graph, the user can change different settings of the visualization component. The numbers of films presented, the size of the nodes, the size of the links, etc are properties that can be altered. D. Video content If you want to watch the trailer of a film, just select the film and click trailer. A search on the YouTube website looks for a video fragment by using the tags: filmtitle + trailer. It is possible that no trailer is available or that a different fragment is loaded but the overall results are acceptable. E. Browsing The only links available in the application are references to other sites in order to find additional information. You can browse the data by clicking on the nodes. An automated search looks for similar films and makes links with the original film based on their relations. Every browse action extends the graph. After a series of actions, the graph can become quite large. By changing the setting or by dragging the graph, the overview can be recovered. Another option is resetting the graph with the clicked node as the center graph. F. User Profile In interactive applications user profiles are used to give a more customized feeling to the users. The first time a user uses the application he is presented with a list of films. He can give each film a rating between 0 and 6. The value 0 meaning that he is not interested in the film and the value 6 that he wants to see the film. The values 1 to 5 represent a star rating. Figure 1: Graph III. CONCLUSION After testing the usability of the application, positive comments were given about the ease to work with the program. The use of a visual representation helps the user in finding the correct information. Also the integration of different services into one application gives a surplus value to the system. REFERENCES [1] http://www.freebase.com [2] http://www.wikipedia.com [3] http://www.dbpedia.org [4] http://www.youtube.com [5] http://www.yahoo.com [6] Mark Shepherd, SpringGraph Flex Component, http://markshepherd.com/blog/ v

Inhoudsopgave Voorwoord... i Toelating tot bruikleen... ii Overzicht...iii Extended Abstract... iv Inhoudsopgave...vi Figuren...viii Afkortingen... ix Hoofdstuk 1 - Inleiding... 1 Hoofdstuk 2 - Informatiebronnen... 5 2.1 IMDb... 6 2.2 Freebase... 7 2.3 Wikipedia... 11 2.4 YouTube... 13 2.5 Yahoo... 14 Hoofdstuk 3 - Visualisatie... 15 Hoofdstuk 4 - High-level Architectuur... 21 Hoofdstuk 5 - Client... 23 5.1 Technologie gebruikersinterface... 23 5.2 Functionaliteiten... 26 5.2.1 Relaties... 27 5.2.1.1 Gewogen gemiddelde... 27 5.2.1.2 Vectorruimte... 29 5.2.2 Zoekopdrachten... 31 5.2.3 Tekstuele weergave... 34 5.2.4 Grafische weergave... 35 5.2.5 Instellingen... 38 5.2.6 Videobeelden... 40 5.2.7 Gebruikersprofiel... 42 5.2.7.1 Mijn profiel... 43 5.2.7.2 Gelijkaardige gebruikers... 44 5.2.7.3 Suggesties... 45 5.2.7.4 Beoordelingssysteem... 45 5.2.8 Help... 46 5.3 Software... 48 5.3.1 Klassendiagram... 48 5.3.2 Klassen... 49 vi

5.3.2.1 DisplayItem... 49 5.3.2.2 DisplayRelated... 50 5.3.2.3 FreebaseService... 51 5.3.2.4 WikipediaService... 52 5.3.2.5 YahooService... 53 5.3.2.6 YahooServiceKeyword... 54 5.3.2.7 UserInfoService... 55 5.3.2.8 User... 55 5.3.2.9 GraphTest... 56 Hoofdstuk 6 - Server... 61 6.1 Technologie server... 61 6.2 Functionaliteiten... 62 6.2.1 Aanmelden... 62 6.2.2 Mijn profiel... 62 6.2.3 Vergelijkbare gebruikers... 63 6.2.3.1 Gemiddelde... 63 6.2.3.2 Vectorberekening... 65 6.2.4 Suggesties... 66 6.2.5 Beoordelingssysteem... 66 6.3 Database... 67 6.4 Software... 69 6.4.1 Klassendiagram... 69 6.4.2 Klassen... 70 6.4.2.1 UserInfoWSBean... 70 6.4.2.2 Filmdata... 74 6.4.2.3 Userdata... 74 6.4.2.4 Linker en LinkerPK... 75 6.4.2.5 Userprofilesetup... 76 6.4.2.6 UserFilmInfo en UserFilmInfoCompare... 76 6.4.2.7 UserDistance en UserDistanceCompare... 77 6.4.2.8 SimilarUsers, User en UserCompare... 77 Hoofdstuk 7 - Usability... 79 7.1 Resultaten... 80 7.2 Suggesties door de gebruiker... 81 7.3 Uitbreidingen... 82 Hoofdstuk 8 - Conclusie... 83 Bijlagen... 84 Bijlage A...84 Bijlage B...87 Referenties... 90 vii

Figuren Figure 1: Visualisatie van een graaf... 2 Figure 2: Communicatie met een webservice... 6 Figure 3: Voorbeeld van een Topic in freebase... 8 Figure 4: Newsmap... 16 Figure 5: ThinkmapVisual Thesaurus... 16 Figure 6: Musicovery... 17 Figure 7: MusicMap... 18 Figure 8: Maps of Recommendation... 19 Figure 9: FilmSpin... 20 Figure 10: Architectuur... 21 Figure 11: Voorbeeld Springgraph Component... 24 Figure 12: Screenshot van de Applicatie... 26 Figure 13: Zoekopdrachten... 31 Figure 14: Filmdetails... 34 Figure 15: Grafische voorstelling... 35 Figure 16: Legende van de relaties... 36 Figure 17: Instellingen... 38 Figure 18: Video Player... 40 Figure 19: Login... 42 Figure 20: Foutieve Login... 42 Figure 21: Welkomstbericht... 42 Figure 22: Gebruikersprofiel... 43 Figure 23:Gebruikers met gelijkaardige interesses... 44 Figure 24: Help...46 Figure 25: Klassendiagram... 48 Figure 26: Databank... 67 Figure 27: Klassendiagram Server... 69 viii

Afkortingen 2D 3D AJAX API Flex FLV HTTP IMBd JAX-WS JSON MCI MXML PHP REST RDF SOAP SPARQL SQL URL W3C WSDL XML XML-RPC Tweedimensionaal Driedimensionaal Asynchronous JavaScript and XML Application Programmable Interface Adobe Flex Flash Video HyperText Transfer Protocol The Internet Movie Database Java API for XML Web Services JavaScript Object Notation Mens-Computerinteractie Macromedia Flex Markup Language PHP: Hypertext Preprocessor Representational State Transfer Resource Description Framework Simple Object Access Protocol SPARQL Protocol and RDF Query Language Structured Query Language Uniform Resource Locator World Wide Web Consortium Web Service Description Language extensible Markup Language XML-Remote Procedure Call ix

Hoofdstuk 1 Inleiding Een internetgebruiker wordt vandaag geconfronteerd met het altijd toenemend aanbod van audiovisuele content. Steeds meer webapplicaties proberen het dan ook zo gemakkelijk mogelijk te maken voor een gebruiker om informatie terug te vinden. Wanneer je op zoek bent naar een film waarvan je een acteur of regisseur kent, brengen zoekmachines als Google 1 in veel gevallen een oplossing. Toch blijft hun functionaliteit beperkt wanneer je wilt zoeken naar een verwante film. Gespecialiseerde sites, zoals IMDb 2, voldoen in dit geval beter aan de vereisten van de gebruiker. Ze bieden gespecialiseerde zoekopdrachten aan en kunnen je zelfs helpen bij het ontdekken van nieuwe informatie. De weergave van de gevonden informatie wordt in de meeste gevallen op een gestructureerde wijze weergegeven in vorm van lijsten met tekstuele presentatie. Je krijgt een overvloed aan informatie die onoverzichtelijk is en moeilijk te bevatten is. Een zoektocht naar andere presentatievormen brengt ons bij visualisatiemethodes en - algoritmen. Het gaat hier om het voorstellen van grote hoeveelheden data en relaties op een visuele manier in 2D of zelfs 3D. Wanneer een grote hoeveelheid data moet voorgesteld worden, lijkt een graaf een geschikte kandidaat. Het geeft een overzichtelijk beeld van de relaties die tussen de verschillende nodes aanwezig zijn. Specifiek kan je bij een film relaties definiëren op basis van dezelfde acteur, regisseur, genre, populariteit, Een node stelt in dat geval de metadata voor die de film beschrijven. Metadata worden aanzien als gegevens die een beschrijving geven van bepaalde data. Een film is in dit geval de data met als metadata de regisseurs, de acteurs, een korte 1 http://www.google.com 2 http://www.imdb.com 1

inhoud, context, genre, jaartal, Standaarden worden ontwikkeld om een schema te formuleren dat de structuur van de metadata vastlegt. Het Resource Description Framework (RDF) is een standaard die gebruikt wordt om een vast formaat op te leggen aan audiovisuele content. Deze uniforme beschrijving is nodig om de voorstelling te garanderen in geautomatiseerde web applicaties. Door gebruik te maken van een graaf krijgt de gebruiker inzicht in de structuur van grote hoeveelheden filmdata. Dergelijke visuele representaties zijn reeds ontwikkeld voor muziekdata, maar nog niet voor films. Figure 1: Visualisatie van een graaf Het World Wide Web maakt een nieuwe fase in zijn evolutie mee die door sommigen beschreven wordt als Web 2.0. Samengevat gaat het om een verandering van de klassieke websites naar dynamische interactieve webapplicaties. Deze stellen je in staat de website te gebruiken als een applicatie met een grafische gebruikersinterface. Ook stellen nieuwe sites informatie ter beschikking via webservices. Een webservice kan omschreven worden als een applicatie die bepaalde diensten levert aan andere applicaties. Het uitvoeren van een berekening, het leveren van gegevens of het 2

bijhouden van gegevens zijn enkel voorbeelden van dergelijke diensten. Een aantal protocollen als SOAP, REST, XML-RPC, JAX-WS,... staan in voor de communicatie tussen de webservice en de applicatie. Het zijn op XML gebaseerde protocollen die zorgen voor de uitwisseling van asynchrone berichten. De mogelijkheid webservices te gebruiken biedt een waaier aan nieuwe diensten en meer uitgebreide applicaties. Nieuwe technologieën als PHP 3, AJAX 4 en Flex 5 geven de ontwikkelaar de mogelijkheid innovatie te brengen op vlak van websiteontwikkeling. Verschillende webservices kunnen nu gecombineerd worden in één webapplicatie. Data die afkomstig zijn van verschillende bronnen worden opgevraagd, verwerkt en weergegeven aan de gebruiker. Op deze manier krijg je een nieuwe webapplicatie die de beste diensten van andere combineert. Een veelgebruikte dienst in de context van mashup is Google Maps. Een website die bijvoorbeeld informatie ter beschikking geeft over restaurants maakt gebruik van deze dienst door een kaart aan te maken met de locaties van de restaurants. In de filmcontext kan een mashup gemaakt worden van metadata, videofragmenten, korte inhoud, gebruikersinformatie, die door verschillende diensten geleverd worden. Personalisatie is tegenwoordig niet meer weg te denken als we spreken over het internet. Om het gebruikersgemak te verhogen, houden hedendaagse sites een profiel bij. Op basis van de gebruikersgeschiedenis worden de zoekresultaten bijgestuurd en kunnen er recommandaties gedaan worden. Deze recommandaties moeten de gebruiker helpen in het ontdekken van nieuwe informatie[2]. 3 PHP: scripttaal, die bedoeld is om op webservers dynamische webpagina s te creëren 4 AJAX: Asynchronous Javascript And XML 5 Flex: Adobe Flex http://www.adobe.com/nl/products/flex/ 3

De bedoeling is nu een gebruiker toe te laten op een grafische manier te browsen door een filmdatabase met eventuele bijsturing op basis van zijn gebruikersprofiel. Bijsturing kan gebeuren door de gebruiker recommandaties te geven 4

Hoofdstuk 2 Informatiebronnen Uit de overvloed aan informatie, die over het internet verspreid is, volgt nu de opdracht de nuttige gegevens te filteren en overzichtelijk weer te geven. Een teveel aan informatie leidt tot een onoverzichtelijk geheel. Te weinig informatie kan leiden tot een nieuwe zoekopdracht naar meer. Wat nu relevant is en wat niet, als je spreekt over een film, is een vraag die door iedereen verschillend ingevuld kan worden. Uiteindelijk is de beslissing gevallen om vooral over de inhoud van de film zelf gegevens op te halen. Die kunnen gebruikt worden om relaties te leggen tussen verwante films. Volgende eigenschappen zullen verder gebruikt worden om een zo volledig en relevant mogelijk beeld te geven van een film: filmtitel, regisseurs, acteurs, genre, jaartal, videofragment, korte inhoud, rating, Enkele eigenschappen die in deze applicatie buiten beschouwing zijn gebleven zijn: context, producer, lengte van de film, budget, film formaat, schrijvers, Tijd voor de zoektocht naar informatiebronnen die de gewenste informatie kunnen ter beschikking stellen. Nu een beslissing genomen is, welke informatie we wensen, moet gezocht worden naar diensten, die deze ter beschikking stellen. Om niet zelf een database te moeten ontwikkelen en omdat het gaat om de ontwikkeling van een webapplicatie zullen we op zoek gaan naar bestaande webservices. Deze webservices stellen informatie ter beschikking, die door andere applicaties kan gebruikt worden. De communicatie tussen de webservice en de applicatie verloopt via asynchrone berichten. 5

Figure 2: Communicatie met een webservice 2.1 IMDb The biggest, best, most award-wining movie and TV site on the planet. Dit kan je lezen op de website www.imdb.com. In handen van Amazon.com is dit de grootste commerciële Internet Movie Database (IMDb) die vandaag online is. Het is de ideale bron van informatie over films, acteurs, tv-series, trailers, recensies, ratings, top 250 films, Natuurlijk moeten de gegevens ook ter beschikking gesteld worden voor andere applicaties. IMDb stelt geen online webservice ter beschikking die je toelaat hun gegevens te gebruiken. Het stelt wel zijn informatie ter beschikking in verschillende tekstuele formaten. Om dit probleem te ontwijken, bestaan een aantal alternatieven. Een eerste methode is alle data downloaden van de site en een eigen systeem gebruiken om deze aan te spreken. Dit zou het onmogelijk maken een applicatie online aan te bieden zonder logica aan de kant van een server. Een tweede mogelijkheid is een Application Programmable Interface (API) die ter beschikking wordt gesteld door andere organisaties zoals Trynt 6. Maar de gegevens, die over de film worden weergegeven, zijn te beperkt om als informatiebron te worden gebruikt. Beide alternatieven brengen hun tekortkomingen mee en representeren dus geen aanvaardbare oplossing. Een uitweg is te vinden in een relatief nieuwe community site genaamd Freebase. 6 http://www.trynt.com/trynt-movie-imdb-api 6

2.2 Freebase Freebase 7 is een open en gratis database met als doel het organiseren van informatie van bestaande databases. Een eigen ontologie wordt gegeven voor de organisatie van metadata. Er wordt geen gebruik gemaakt van het Resource Description Framework (RDF) dat metadata een drieledig subject-predicaat-object structuur geeft. Het subject stelt de bron die beschreven wordt voor, het predikaat geeft aan welk kenmerk besproken wordt en het object is de waarde van dat kenmerk. Er zijn echter wel drie belangrijke bouwstenen: Topics, Properties en Types. Een Topic kan om het even wat zijn: een persoon, een idee, een film, en is gelijkaardig aan het subject uit RDF. De Properties of eigenschappen geven informatie over een Topic, zoals de naam van een persoon of een acteur uit een film. Deze Properties kan je als de predikaten uit RDF zien. Elke Property zal een Property Name hebben met een bijhorende waarde of een lijst van waarden. Deze waarden stellen de objecten voor bij RDF. Maar, wat het verschil maakt, is de aanwezigheid van een Freebase Type. Dit laatste wordt beschreven als een verzameling van Properties. Het bestaan van deze Types en uiteraard in het bijzonder het Type Film, is wat Freebase zo interessant maakt voor dit onderzoek. Als we nu het Topic bekijken van een persoon, worden alle relevante eigenschappen weergegeven. Een persoon kan natuurlijk verschillende Types hebben, zoals een filmacteur, een auteur of een muziek artiest. Een eigenschap kan op zich ook een Topic worden met opnieuw Properties. Op deze manier worden links gelegd tussen de verschillende Topics, Properties en Types. Onderstaande figuur geeft een voorbeeld van een Topic. 7 http://www.freebase.com 7

Figure 3: Voorbeeld van een Topic in freebase Wat ons nu vooral interesseert is het Type Film. Dit Type maakt deel uit van het domein Film samen met een reeks andere Types. Film actor en Film genre zijn daar twee voorbeelden van. We zullen vanaf nu spreken over het Type Film/Film. Een Topic met als Type Film bevat een aantal eigenschappen waar we gebruik zullen van maken in de toekomst: Initial release date, Directed by, Performances, Genres, IMDb profile page, Poster. Ook daar zullen we de Wikipedia id achterhalen van een bepaalde film en op deze manier een link leggen naar bijkomende informatie. Freebase is in eerste instantie een website waar je moet inloggen om gebruik te maken van de beschikbare gegevens. Het stelt echter ook een krachtige API 8 ter beschikking. Een Application Programmable Interface is een verzameling definities op basis waarvan een computerprogramma kan communiceren met een ander programma. Deze interface zal het mogelijk maken om de film metadata op te vragen via een eigen ontwikkelde applicatie. Het bedrijf Metaweb[1] heeft de Metaweb Query API ontwikkeld die aanspreekbaar is via het HTTP protocol met een GET methode naar een bepaalde 8 API: Application Programmable Interface 8

URL 9. In het geval van freebase wordt deze URL gevormd door: http://www.freebase.com/api/service/mqlread?queries= gevolgd door een correct geformuleerde query. Om een idee te krijgen van het type query dat moet gevormd worden volgt een klein voorbeeld: http://www.freebase.com/api/service/mqlread?queries={"albums":{"query": {"type":"/music/artist","name":"the Police","album":[]}}} Vertaald naar het Nederlands wordt dit: Geef een object uit de database van het type /music/artist met de naam The Police. Geef vervolgens zijn albums als resultaat. De database kan via deze weg aangesproken worden met een query waarin gezocht wordt naar gegevens over een film. Net als de structuur van de query zal het resultaat weergeven worden in JSON 10 formaat. JSON maakt onderdeel uit van JavaScript. Het wordt gebruikt voor het uitwisselen van datastructuren in webapplicaties die asynchroon gegevens ophalen. Het wordt door zijn eenvoud beschouwd als een alternatief voor XML 11. Freebase is een goede kandidaat database waarop de te ontwikkelen applicatie kan gebaseerd worden. Het is vrij, gratis en kan gemakkelijk aangesproken worden via een HTTP request. Wel is, door gebruik te maken van de Metaweb Query API, de intelligentie van de queries beperkt. Bij een SQL 12 database bijvoorbeeld, kan je meer functionaliteit geven aan de query. Een van de beperkingen, die gebleken zijn tijdens het onderzoek, is het ontbreken van een OR operator binnen een query. Als gevolg hiervan moeten meerdere asynchrone aanvragen gedaan worden aan de database en gaat kostbare verwerkingstijd verloren. Onvolledige Topics of onbestaande Topic kunnen ook bijdragen tot onvolledige resultaten in het onderzoek. Maar deze zullen dankzij de 9 URL: Uniform Resource Locator 10 JSON: JavaScript Object Notation 11 XML: extensible Markup Language 12 SQL: Structured Query Language 9

groeiende populariteit van Freebase aangevuld worden en daardoor verminderen in aantal. Ondanks deze opmerkingen is de keuze gevallen om Freebase als database te gebruiken door zijn innovatieve en dynamische structuur. 10

2.3 Wikipedia Als je vandaag denkt aan informatie en databanken, is Wikipedia 13 onvermijdelijk één van je eerste gedachten. Door zijn omvang en populariteit is het dan ook ondenkbaar geen gebruik te maken van zijn beschikbare informatie. Een internetgebruiker die meer over een film te weten wil komen, zal meestal wel terechtkomen bij een van de honderdduizenden artikels van Wikipedia. Ook het feit dat bij Freebase een Wikipedia namespace aanwezig is die voor elk Topic een Wikipedia id bijhoudt, maakt het eenvoudig een link te leggen met de informatie die via Freebase wordt opgehaald. Het is nu de bedoeling via Wikipedia een korte beschrijving van een film op te halen. Een eerste stap is het zoeken van een gepaste API die de nodige gegevens kan opvragen. In eerste instantie lijkt een oplossing gegeven door een API aangeboden op Wikipedia.org: http://en.wikipedia.org/w/api.php. Maar bij nader onderzoek lijkt dit te beperkt om een beschrijving van een film op te halen en worden verwijzingen gegeven naar DBpedia[7][8]. Dit is een alternatief ontwikkeld door een team van Duitse universiteitsonderzoekers. Het laat de gebruiker toe complexe queries te formuleren tegen de datasets die van Wikipedia.org zijn gehaald. DBpedia maakt gebruik van de RDF 14 standaard om metadata te structureren. RDF is een universele W3C 15 standaard die gebruikt wordt om informatie op het Web voor te stellen. Het definieert een vocabulaire dat bestaat uit Classes, Properties, References, om de data te structureren. Aan de hand van deze structuur kunnen we een query opstellen die ons de nodige informatie verschaft. De Virtuoso SPARQL Query 16 Service stelt de gebruiker een API ter beschikking die via een SPARQL 17 Query kan bevraagd worden. SPARQL is 13 http://www.wikipedia.org 14 RDF: Resource Description Framework 15 W3C: World Wide Web Consortium 16 http://dbpedia.org/sparql 17 SPARQL: SPARQL Protocol and RDF Query Language 11