- Social Movie Map
Transcrição
- Social Movie Map
Social Movie Map - Documentation – Philipp Bender | 856306 Florian Wilhelm | 856303 University of Applied Sciences Kaiserslautern Media-Management and -Production Prof. Hendrik Speck Winter 2008 / 09 INDEX OF CONTENTS User Guide INTRODUCTION ................................................................................................................................................ 8 BASIC SCREEN-LAYOUT..................................................................................................................................... 8 MAIN NAVIGATION .............................................................................................................................................. 9 CONTENT AREA ................................................................................................................................................. 10 PAGE 1 – MOVIES BY GROUP .......................................................................................................................... 11 DEFINITION AREA .............................................................................................................................................. 11 RESULT AREA .................................................................................................................................................... 15 Top-Movie Graph .................................................................................................................................... 15 Top-Keyword Treemap ............................................................................................................................ 17 TAB NAVIGATION .............................................................................................................................................. 17 PAGE 2 – MOVIES STATISTIC ........................................................................................................................... 18 MOVIE SEARCH INPUT ........................................................................................................................................ 19 MOVIE LIST ...................................................................................................................................................... 19 STATISTIC AREA ................................................................................................................................................. 20 SUBPAGE TAB NAVIGATOR .................................................................................................................................. 23 PAGE 3 – CHARTS ........................................................................................................................................... 24 DEFINITION AREA .............................................................................................................................................. 24 CHART AREA..................................................................................................................................................... 26 SUBPAGE TAB NAVIGATOR .................................................................................................................................. 27 PAGE 4 – GENRE STATISTIC ............................................................................................................................. 28 GENRE SELECTOR............................................................................................................................................... 28 STATISTIC AREA ................................................................................................................................................. 29 SUBPAGE TAB NAVIGATOR .................................................................................................................................. 29 PAGE 5 – MOVIE QUESTIONS ......................................................................................................................... 30 QUESTION SELECTOR .......................................................................................................................................... 31 RESULT AREA .................................................................................................................................................... 32 Technische Dokumentation EINLEITUNG .................................................................................................................................................... 36 ZUSAMMENFASSUNG ......................................................................................................................................... 36 FUNKTIONSPRINZIP ............................................................................................................................................ 36 Datenbeschaffung ................................................................................................................................... 36 Technologie und Architektur ................................................................................................................... 37 ADOBE FLEX ................................................................................................................................................... 37 MYSPACE ....................................................................................................................................................... 38 DATENBANKSTRUKTUR .................................................................................................................................. 38 ANALYSE DER MYSPACE PROFILE .......................................................................................................................... 38 ANALYSE DER IMDB DB ..................................................................................................................................... 41 IMDb Lizenz ............................................................................................................................................. 41 DATENAUFBEREITUNG ........................................................................................................................................ 43 DATENABGLEICH................................................................................................................................................ 44 Levenshtein distance ............................................................................................................................... 44 MYSPACE CRAWLER ....................................................................................................................................... 45 PROBLEME ....................................................................................................................................................... 48 PAKETSTRUKTUR VOM MYSPACE CRAWLER ............................................................................................................ 48 DATENBANK SYNCHRONISATION ................................................................................................................... 49 FILMABGLEICH .................................................................................................................................................. 49 STICHWORT ANALYSE ......................................................................................................................................... 50 PROBLEME ....................................................................................................................................................... 51 PAKETSTRUKTUR VON DER DATENBANK SYNCHRONISATION ....................................................................................... 51 SOCIAL MOVIE MAP ....................................................................................................................................... 52 CACHING ......................................................................................................................................................... 54 FRAGESTELLUNGEN ............................................................................................................................................ 54 VISUALISIERUNG PROBLEME ................................................................................................................................ 57 PAKET STRUKTUR VON SOCIAL MOVIE MAP............................................................................................................ 57 WIREFRAMES / SCREEN DESIGN ..................................................................................................................... 58 WIREFRAME ..................................................................................................................................................... 58 SCREENDESIGN .................................................................................................................................................. 59 EVALUIERUNG DER ERGEBNISSE..................................................................................................................... 60 DATEN / FAKTEN ............................................................................................................................................ 60 FAZIT .............................................................................................................................................................. 60 LITERATURVERZEICHNIS ................................................................................................................................. 61 Individuelle Dokumentation LEISTUNGSÜBERSICHT .................................................................................................................................... 64 CRAWLER ....................................................................................................................................................... 65 MAIN KLASSE (PROGRAMMSTEUERUNG)................................................................................................................ 65 Probleme ................................................................................................................................................. 65 SERVER / CLIENT STRUKTUR................................................................................................................................. 65 Probleme ................................................................................................................................................. 65 FRIEND PARSER ................................................................................................................................................. 66 Probleme ................................................................................................................................................. 66 GUI ................................................................................................................................................................ 66 Probleme ................................................................................................................................................. 66 REGEX AUSLAGERUNG IN PROPERTY FILE................................................................................................................ 66 HTML-PARSER FÜR MYSPACE USER- UND BAND-PROFILE ........................................................................................ 67 Probleme ................................................................................................................................................. 67 PAGE IDENTIFIER ............................................................................................................................................... 68 Probleme ................................................................................................................................................. 68 DB SYNC ......................................................................................................................................................... 69 DB ERSTELLUNG UND OPTIMIERUNG ..................................................................................................................... 69 Probleme ................................................................................................................................................. 69 EINBINDUNG DER IMDB ..................................................................................................................................... 69 DB ABGLEICH MOVIES & IMDB & KEYWORDS ....................................................................................................... 69 Probleme ................................................................................................................................................. 69 SOCIAL MOVIE MAP ....................................................................................................................................... 70 BIRDEYE RAVIS GRAPH ....................................................................................................................................... 70 Probleme ................................................................................................................................................. 70 TREEMAP ......................................................................................................................................................... 70 Probleme ................................................................................................................................................. 70 EINBINDUNG VON DESIGN-KOMPONENTEN ............................................................................................................ 71 Probleme ................................................................................................................................................. 71 SONSTIGES ..................................................................................................................................................... 72 ADOBE FLEX 3................................................................................................................................................... 72 KOMMUNIKATION MIT IMDB.COM ....................................................................................................................... 72 Anhang CONFERENCE PAPER....................................................................................................................................... 76 BUSINESS PLAN .............................................................................................................................................. 79 FINANCE PLAN................................................................................................................................................ 92 DATEN-DVD .................................................................................................................................................... 93 Social Movie Map - User Guide - an Open Source web application by Philipp Bender & Florian Wilhelm User Guide Philipp Bender & Florian Wilhelm Introduction “Social Movie Map” is an OpenSource project. It is part of a student research project for the subject "Media-Management & -Production" by Prof. Hendrik Speck, University Of Applied Sciences Kaiserslautern, Germany. It was developed by Philipp Bender and Florian Wilhelm. The web application “Social Movie Map” is embedded into a HTML-page, which contains additional information about the project, link to this documentation as well as an imprint and contact information about the developers. However this documentation deals with not with the HTML content but is concerned with operating the embedded flash file. Basic Screen-Layout The application is primary divided in two parts (Figure 1): 1. Main navigation 2. Content area Figure 1: Division of application screen in main navigation (1) and content area (2). 8 User Guide - Social Movie Map User Guide Philipp Bender & Florian Wilhelm Main Navigation The main navigation can be found at the right hand side of the head. Itself is sectioned into • Button Bar to navigate to all subpages of the application. If “Social Movie Map” is launched the first button to the first page (“Movies by Group”) is preselected. Figure 2: Main Navigation Button Bar Fallowing sub-page can be reached over the button bar: o Movies by Group o Movie Statistic o Charts o Genre-Statistic o Movie-Questions • Fullscreen Button for switching between the windowed and the fullscreen mode. In fullscreen mode the Flash-application uses the full available screen resolution without showing the surrounding HTML-contend • Because the Flash-application can be separated from the HTML-site (which contains the copyright information) the Info Button shows a popup (Figure 3) within the Flash-file with basic information about the project and a weblink to the project related Source Forge page. Figure 3: Pop-up is shown when select the Info-Button Social Movie Map - User Guide 9 User Guide Philipp Bender & Florian Wilhelm Content Area The content area is a non-static area, where the subpages will be shown. If a different page is selected in the main-navigation, the shown subpage in the content area changes and shows the new page. Every subpage has an own but mostly similar style and is again separated in different areas. The specific subpage layout is explained in the appropriate chapter. To increase the usability and provide an intuitive work-flow all subpages use workflow indicators in terms of numeration (in the upper left corner of an operating element) Every number represents a single step in the workflow process of each subpage. Furthermore on some pages there are also advisory labels, which are shown if previous workflow steps not yet accomplished. These advisory labels will be replaced by the results when previous steps are completed. Figure 4: 1+2 are workflow indicators as numbers in operating elements, 3 is a replaceable advisory label Figure 5: 1 is a workflow indicators as number in operating element, 2 is a replaceable advisory label 10 User Guide - Social Movie Map User Guide Philipp Bender & Florian Wilhelm Page 1 – Movies by Group “Movies by Group” is the preselected start page of the application. Two functionalities are supported: the search for Top-Movies and for the movie related Top-Keywords, both for a self defined target group. The Layout is separated in three parts (Figure 6): I. II. III. a definition area, which contains an input form for defining the target group and a control panel for the top movie graph the result area, which shows depending on the selected mode a top-movie graph or a keyword treemap tab navigator for switching between top-movie and top-keyword mode Figure 6: "Movies by Group"-Layout is separated in definition area (I), result area (II) and mode switcher (III) Definition Area The primary function of the definition area is to define a target group. For the configuration of the target group it serves multiple drop down menus, checkboxes and an age slider, which can be selected by the user (Figure 7). By selecting the “Get Data” button, a SQL query with the chosen parameters will be sent to the database. The query result will be shown as Top-Movie Graph or Keyword-Treemap (depending on the selected mode) in the result area. All settings of the target group selection box apply to the TopMovie mode as well as to the Keyword mode. Social Movie Map - User Guide 11 User Guide Philipp Bender & Florian Wilhelm Figure 7: Target Group Settings Figure 8: Graph Control The following attributes for target group‐selection can be specified: Form Field Attributes Gender Country Religion 12 User Guide - Social Movie Map Available Values - male - female - both - All Countries - Germany - Austria - France - Italy - Spain - United Kingdom - United States - …and 230 further countries, states or institutions ordered by name - All religions - Agnostic - Atheist - Buddhist - Catholic - Christian - other - Hindu - Jewish Field Type Checkbox ComboBox ComboBox User Guide Philipp Bender & Florian Wilhelm Children Ethnicity Education Body Type Family Status Sexual Orientation Age - Mormon - Muslim - Other - Protestant - Scientologist - Taoist - Wiccan - Children: all - I don't want kids - Love kids, but not for me - Undecided - Someday - Expecting - Proud parent - Ethnicity: all - Asian - Black / African descent - East Indian - Latino / Hispanic - Middle Eastern - Native American - Pacific Islander - White / Caucasian - Other - Education: all - High school - Some college - In college - College graduate - Grad / professional school - Post grad - Body Type: all - Slim / Slender - Athletic - Average - Some extra baggage - More to love! - Body builder - Familystatus: all - Single - In a Relationship - Engaged - Married - Divorced - Swinger - Sexual Orientation: all - Straight - Bi - Gay/Lesbian - Gay - Lesbian - Not Sure - Ages from 0 to 100 - every possible age range ComboBox ComboBox ComboBox ComboBox ComboBox ComboBox Slider Control with 2 thumbs Table 1: Attributes of Target Group Settings Social Movie Map - User Guide 13 User Guide Philipp Bender & Florian Wilhelm The second functionality of the definition area on the application’s start page is the control of the Top-Movie graph (Figure 8). There are several options for manipulate the shown graph and to change its graphical representation. The Graph control has no effect on form and content presentation of the Keyword Treemap. The following attributes graph control can be specified: Form Field Available values Number of nodes - 1 to 30 nodes available - default value: 10 nodes Degrees of Separation - degree 1 to 3 available - default value: 2 Diagram mode - Concentric Radial (default) - Single Cycle Circle Description Number of nodes shows number of number of Top-Movies. The default value shows the Top10 movies of the selected target group. Degrees of Separation change the shown graph depth. graphical placement of nodes and leafs in the diagram Zoom in/out Scales the node and leaf labels Table 2: Attributes of Graph Control 14 User Guide - Social Movie Map User Guide Philipp Bender & Florian Wilhelm Result Area Depending on the selected mode (top-movies / top-keywords) here the results of the target group search is presented. Top-Movie Graph Is the top-movie mode active, the result area shows an interactive graph (Figure 9) with the topmovies of the selected target group. The following graph elements will be used: Target Group - represents the selected target group Genre Movie - represents a single genre is part of a target group contains one or more top movies the larger the icon the more top movies contained represents a single Top Movie is part of one or more genres Table 3: graph elements Figure 9: Top Movie Graph Social Movie Map - User Guide 15 User Guide Philipp Bender & Florian Wilhelm Every element has a label and – when holding the mouse over the item – a tooltip that provides further information, for example for movies: runtime, IMDB-ranking, votes for the movie in MySpace and so on. By default a “Concentric Radial” visualization is preselected. This means that the target group is the central point of the diagram. It shows in depth level 1 all genres of the top movies of this group. Because a movie can be part of more than one genre, it is possible that more genres are shown than to movies. The larger a genre icon the more movies are part of this genre. In depth level 2 there are the top movies. The thin grey lines show, what genres they are part of. By double clicking on a item, this item will be the central point of the diagram and the related connections for this item are shown. In Figure 10 the genre “Sci-Fi” is central item of the diagram, in Figure 11 it is the movie “Donnie Darko” Depending on the degree of Degrees of Separation more or less data will be shown. The number of shown top movies is depending on the number of nodes in Graph Control. The default value is 10, which means that the Top10 movies are shown. Figure 10: Genre "Sci-Fi" is central element 16 User Guide - Social Movie Map Figure 11: Movie “Donnie Darko” is central element User Guide Philipp Bender & Florian Wilhelm Top-Keyword Treemap Treemapping is a method for displaying tree-structured data using nested rectangles. A leaf node's rectangle has an area proportional to a specified dimension on the data. This treemap shows the Top15 keywords appearing in all movies stated by the target group. The frequency of occurrence of a keyword is symbolized by the size of its rectangle within the treemap. Figure 12: Top-Keyword Treemap Tab Navigation The tab‐navigation (Figure 13) provides the two main functionalities of this site: • • “Top-Movie”-mode, which shows the Movies-Graph in the result area “Keyword Analysis”-mode, which shows the Keyword-Treemap in the result area Figure 13: Tab-Navigation At the beginning “Top Movies” is preselected. Social Movie Map - User Guide 17 User Guide Philipp Bender & Florian Wilhelm Page 2 – Movies Statistic “Movie Statistic” is the second page of this application (see Figure 2). The main functionality of this page is to show static charts and analysis, which are related to a single movie. Basically this is the inverse functionality of the “Movie by Group”-page. The user can select a movie and gets information who or, which group watches this movie. Due to the quantity of information the results are split in four subpages, which can be accessed by using the Subpage Tab Navigator The Layout is separated in four parts (Figure 14): I. II. III. IV. a text input field for searching for movies containing the entered text Movie List, which contains the result of the movie search Statistic Area for all statistics of the in (II) selected movie Tab-Navigator to switch between the different result subpages Figure 14: "Movie Statistic"-Layout is separated in Movie Search Input (I.), Movie List (II.), Statistic Area (III.) and Subpage Tab Navigator (IV.) 18 User Guide - Social Movie Map User Guide Philipp Bender & Florian Wilhelm Movie Search Input The Movie Search Input is a simple text input field (Figure 15). User can enter a single word, multiple words or even a part of a word (not case sensitive). The input will be compared with the all movie titles of the IMDB movie database. On match, the results will be shown in the Movie List. Figure 15: Movie Search Input Field To send a text input, the user can either select the search button on the right side of the input field or just simply hit the enter key. If no text was put in, the user see a warning tooltip (Figure 16) Figure 16: Warning tooltip, if no text was put in Movie List Here are all movies liested that match with the previous input in the Movie Search Input. The list is primary ordered by amount of IMDB votings and secondary by IMDB-rank to promote more popular movies. Figure 17: all movies as result in the Movie List (with tooltip) Social Movie Map - User Guide 19 User Guide Philipp Bender & Florian Wilhelm Additionally a tooltip informs the user when holding the mouse over an entry about IMDB-votes and IMDB-rank helping to make the right choice. To get the information about the selected movie, just press the “Who’s watching this movie?” button. The results will be shown in the Statistic Area. Statistic Area All data to the selected movie will be shown here. The results are ordered thematically and presented in different charts. There are four chart types used for visualizing the specific data in “Social Movie Map”: PieChart The PieChart is a circular chart divided into sectors, illustrating relative magnitudes or percents. In a pie chart, the arc length of each sector is proportional to the quantity it represents. Together, the sectors create a full disk / 100% LineChart The LineChart represents data as a series of points, in Cartesian coordinates, connected by a continuous line. ColumnChart The ColumnChart represents data as a series of vertical columns whose height is determined by values in the data. BarChart The BarChart represents data as a series of horizontal bars whose length is determined by values in the data. 20 User Guide - Social Movie Map User Guide Philipp Bender & Florian Wilhelm The Statistic Area contains at all 11 visualizations charts plus 1 additional graph (due to the quantity of information) divided in 4 subpages, which can be accessed by using the Subpage Tab Navigator. Each chart is about the amount of viewers of the selected movie and deal with one of following attributes you can see below: Attribute Chart Type Subpage origin BarChart “General Statistic” age LineChart “General Statistic” gender PieChart “General Statistic” family status PieChart “Personal Statistic I” religion BarChart “Personal Statistic I” children PieChart “Personal Statistic I” sexual orientation PieChart “Personal Statistic I” education PieChart “Personal Statistic II” ethnicity BarChart “Personal Statistic II” ColumnChart “Personal Statistic II” PieChart “Personal Statistic II” smoke / drink bodytype …also watched movies Visualization Graph “People who like this movie, also watch this” Table 4: Attributes with chart types and subpage While PieCharts and even the LineChart show the proportional amount of all values of an attribute (compare with Table 2), BarCharts show only Top15 (origin) or rather Top7 (religion & ethnicity) of the possible values. All charts – independent of the type – are labeled and provide additional tool-tips, party with individual content. Tool‐tips appear when the mouse cursor is moved over a chart element with a value by the user. Figure 18: Tooltips provided by the charts A special chart is the LineChart “age”. Here it is possible to select 3 various results (male & female, only male, only female) by choosing the according entry in the drop down menu in the upper right corner of the chart (Figure 19). Depending on the choice, the data line has the color orange (for all, male & female), blue (for male only) or red (for female only). This makes it easy to differentiate between the data provider. Social Movie Map - User Guide 21 User Guide Philipp Bender & Florian Wilhelm Figure 19: Colored lines (depending on the selected item: all, only male, only female) for the LineChart "age" On the fourth subpage “people who like this movie also watch this” the user can find a further visualization graph (Figure 20, similar to the graph on the start page) that shows the Top10-Movies of MySpace user, who declared that the in the Movie List (Figure 17) selected movie is one of their favorite movies. Figure 20: Top10 movies of user who declared the selected movie as one of their favorite 22 User Guide - Social Movie Map User Guide Philipp Bender & Florian Wilhelm Subpage Tab Navigator Via the subpage tab navigator (Figure 21) the user reaches the subpages of the statistic area and thus further charts. These are tabs and the charts, which can be reached by this tab: • • • • “General Statistics” – origin, age & gender “Personal Statistic I” – family status, children, religion & sexual orientation “Personal Statistic II” – education, ethnicity, smoke / drink & body type “people who like this movie also watch this” - Figure 21: Subpage Tab Navigator By entering the page the first time the tab “General Statistics” is preselected. Social Movie Map - User Guide 23 User Guide Philipp Bender & Florian Wilhelm Page 3 – Charts The third page of this application (see Figure 2) is “Charts” It shows the user the Top10 MySpace movies for a self defined target group and compares the result with several official Top10 Charts like the IMDB All-Time Worldwide Box-Office Charts or Top10 movies rated by IMDB user. The Layout is separated in three parts (Figure 22): I. II. III. a Definition Area, which contains an input form for defining the target Chart Area, which shows the comparison of the charts Subpage Tab Navigator for switching between the official charts Figure 22: "Charts"-Layout is separated in Definition Area (I.), Chart Area (II.) and Subpage Tab Navigator (III.) Definition Area The primary function of the definition area is to define a target group. It is almost identical in layout and function with the Definition Area on the start page (Figure 7), except for the Graph Controls. For the configuration of the target group it serves multiple drop down menus, checkboxes and an age slider, which can be selected by the user (Figure 23). By selecting the “Get Data” button, a SQL query with the chosen parameters will be sent to the database. The query result will be shown as Top10 MySpace Movies in the Chart Area. All settings of the target group selection box apply to all subpages. 24 User Guide - Social Movie Map User Guide Philipp Bender & Florian Wilhelm Figure 23: Target Group Settings The attributes for target group-selection are identical with the attributes in Table 1. The only additional attribute is “genre” Form Field Attributes Genre Available Values - all Genre - Action - Adult - Adventure - Animation - Biography - Comedy - Crime - Documentary - Drama - Family - Fantasy - Film-Noir - Game-Show - History - Horror - Music - Musical - Mystery - News - Reality-TV - Romance - Sci-Fi - Short - Sport - Talk-Show - Thriller - War - Western Field Type ComboBox Table 5: additional attributes of Target Group Settings Social Movie Map - User Guide 25 User Guide Philipp Bender & Florian Wilhelm Chart Area In the Chart area on every subpage two different charts are compared to each other (Figure 24). The upper chart shows the Top movies of the self defined MySpace user group, while the lower side shows Top Movies of official charts, depending on the subpage. In Table 6 are all different official charts listed: Subpage official charts “All-Time Worldwide Box office” All-Time Worldwide Box Office Charts “Top movies as voted by IMDB users” Top rated Movies by IMDB user (highest rank) “Bottom movies as voted by IMDB users” Bottom movies rated by IMDB users (lowest rank) Table 6: official charts on the subpages Figure 24: Chart comparison 26 User Guide - Social Movie Map User Guide Philipp Bender & Florian Wilhelm Subpage Tab Navigator Via the subpage tab navigator (Figure 25) the user reaches the subpages to the different chart comparisons. These are the tabs and the charts comparisons, which can be reached by each tab: • • • “All-Time Worldwide Box office” – compares Top MySpace Charts (of the selected target group) with All-Time Worldwide Box Office Charts “Top movies as voted by IMDB users” – compares Top MySpace Charts (of the selected target group) with Top movies rated by IMDB users “Bottom movies as voted by IMDB users” – compares Top MySpace Charts (of the selected target group) with Bottom movies rated by IMDB users Figure 25: Subpage Tab Navigator By entering the page the first time the tab “All-Time Worldwide Box office” is preselected. Social Movie Map - User Guide 27 User Guide Philipp Bender & Florian Wilhelm Page 4 – Genre Statistic “Genre Statistic” is the fourth page of this application (see Figure 2). The main functionality of this page is to show static charts and analysis, which are related to a single genre. The page’s result layout is very similar to the second page. Due to the quantity of information the results are split in four subpages, which can be accessed by using the Subpage Tab Navigator The Layout is separated in three parts (Figure 26): I. II. III. Genre Selector Statistic Area for all statistics of the in (I) selected genre Tab-Navigator to switch between the different result subpages Figure 26: "Genre Statistic"-Layout is separated in Genre Selector (I.), Result Area (II.) and Tab Navigator (III.) Genre Selector The Genre Selector is a simple ComboBox, which provides all values listed in Table 5. This ComboBox provides Auto Confirmation on change, which means that no separate button is necessary to validate the selection. 28 User Guide - Social Movie Map User Guide Philipp Bender & Florian Wilhelm Statistic Area The Statistic Area contains at all 12 visualizations charts (due to the quantity of information) divided in 4 subpages, which can be accessed by using the Subpage Tab Navigator. Each chart is about the amount of viewers of the selected genre and deal with one of following attributes you can see below: Attribute Chart Type Subpage Movies per year LineChart “Movie Year Statistic” origin BarChart “General Statistic” age LineChart “General Statistic” gender PieChart “General Statistic” family status PieChart “Personal Statistic I” religion BarChart “Personal Statistic I” children PieChart “Personal Statistic I” sexual orientation PieChart “Personal Statistic I” education PieChart “Personal Statistic II” ethnicity BarChart “Personal Statistic II” ColumnChart “Personal Statistic II” PieChart “Personal Statistic II” smoke / drink bodytype Table 7: Attributes with chart types and subpage The Layout of the Statistic Area is almost identical with the Result Page of the second page “Movie Statistic”. It uses the same design, the same types of charts and $the same ToolTips (like Figure 18). For further questions read the appropriate chapter of “Movie Statistics”. Subpage Tab Navigator Via the subpage tab navigator (Figure 27) the user reaches the subpages of the statistic area and thus further charts. These are tabs and the charts, which can be reached by this tab: • • • • “Movie Year Statistics” - amount of movies in selected genre per year “General Statistics” – origin, age and gender “Personal Statistic I” – family status, children, religion and sexual orientation “Personal Statistic II” – education, ethnicity, smoke / drink and body type Figure 27: Subpage Tab Navigator By entering the page the first time the tab “Movie Year Statistics” is preselected. Social Movie Map - User Guide 29 User Guide Philipp Bender & Florian Wilhelm Page 5 – Movie Questions The last page (see Figure 2) is the “Movie Questions”-page. Here are multiple questions discussed that show profound interrelations of user profiles and their relation to movies. The Layout is separated in two parts (Figure 28): I. II. The question selector, which provide multiple questions The Result Area, which shows the answer to the selected question Figure 28: "Movie Questions"-Layout is separated in Question Selector (I.) and Result Area (II.) 30 User Guide - Social Movie Map User Guide Philipp Bender & Florian Wilhelm Question Selector The Question Selector (Figure 29) is a simple drop down menu, which contains 7 different questions (Figure 30). The first five questions are related to the movie analysis of the MySpace profiles whereas the sixth question is concerned with the topic of providing personal and private information like pictures in the user profile. The last question picks up an actual online report on stuff.co.nz, the online news portal of New Zealand's largest media company Fairfax New Zealand. The article reports about a new trend, that teenagers flaunt sex, drugs and violence in their MySpace profiles. Two students supervised by Dr. Dimitri Christakis of Seattle Children's Research Institute analyzed 500 random profiles of 18-year old MySpace user and searched for keywords with sexual or violent content or deals with substance abuse. The result: 41 percent mentioned substance abuse, 24 percent sexual behavior and 14 percent violence. With already having 6 million user profiles we decided to do a similar research and compared the content of these profiles with a list of 2000 representative keywords. All results will be shown below the Question Selector in the result area. Figure 29: Question Selector closed Figure 30: Question Selector opened with all seven questions Social Movie Map - User Guide 31 User Guide Philipp Bender & Florian Wilhelm Result Area In this area the results or “answers” to the upper selected questions will be shown as charts. Most of the questions have a static result. For this reason they have no additional settings (Figure 31) But all charts - irrespective of having special settings or not – have special customized tooltips, which summarize the given chart information (Figure 32) Figure 31: Static LineChart without any setting; customized tooltip Figure 32: further customized tooltip 32 User Guide - Social Movie Map User Guide Philipp Bender & Florian Wilhelm Social Movie Map - User Guide 33 Social Movie Map - Technische Dokumentation - an Open Source web application by Philipp Bender & Florian Wilhelm Technische Dokumentation Philipp Bender & Florian Wilhelm Einleitung Filme gehören zu den wichtigsten Medien in unserer heutigen Zeit und sind eine der beliebtesten, interkulturellen Quellen für Unterhaltung. Die visuellen Elemente eines Kino-Filmes haben eine einzigartige Art der Kommunikation. Ein Film ist zweifellos ein starkes Medium und wird von allen Menschen auf der Welt gleich betrachtet. Warum also nicht dieses leistungsstarke Medium nutzen, um eine Analyse über die Lieblingsfilme durchzuführen. Es ist kein Problem mit anderen Menschen über Filme zu sprechen, sondern eher das Problem zu Lieblingsfilme zu finden. Unsere Anwendung kann Ihnen dabei helfen, Filme zu finden und analysieren. Auf der anderen Seite können Sie sehen, welche Filme von anderen Personen bevorzugt werden. Haben Sie Interesse was kanadischen weibliche Jugendliche als Lieblingsfilm haben? Oder was sind besonders beeindruckende Filme für Menschen zwischen 40 und 50 Jahren in Großbritannien? Entdecken Sie eine neue Art der Analyse von Lieblingsfilmen. Vielleicht können Sie sich damit identifizieren. Zusammenfassung Ziel des Projektes “Social Movie Map” ist die Visualisierung von gesammelten Lieblingsfilmen von MySpace Benutzern. Die Darstellung kann durch Auswahlkriterien wie Alter, Geschlecht, Herkunft oder Film- Genre entsprechend angepasst werden. Alle Daten basieren auf den Angaben der öffentlichen MySpace Profilen. Für die Darstellung und Visualisierung ist eine Webbasierende Anwendung geplant, auf der ein Benutzer seine benutzerspezifischen Analysen durchführen kann. Des Weiteren kann nach einem gewünschten Filmtitel gesucht werden, für den die zugehörigen Statistiken angezeigt werden. Funktionsprinzip Ein Benutzer kann zwischen fünf Arten von Visualisierungen, bei Social Movie Map, auswählen: Movie by Group, Movie-Statistic, Genre-Statistic und Movie Questions. Jede Kategorie repräsentiert andere Statistiken und hat eigene Diagramme und Visualisierungen. Für die Darstellung der Statistiken werden XML Dateien verwendet. Diese Daten werden aus einer Datenbank gelesen und in entsprechender XML Struktur an die Social Movie Map Anwendung übergeben. Zusätzlich werden die Ergebnisse über eine Cache Funktion zwischengespeichert. Dadurch wird das Datenbanksystem entlastet und der Endnutzer hat eine schnellere Anwendung. Datenbeschaffung Um die benötigten Daten zu sammeln wird ein MySpace Crawler eingesetzt. Insgesamt wurden ca. 6 Millionen öffentliche MySpace Profile erfasst. 36 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm Technologie und Architektur Crawler Der Crawler ist eine Java Server / Client Anwendung. Um den erhaltenen HTML Inhalt (MySpace Öffentliche Profile) zu parsen wird der Jericho HTML Parser, eine Java Bibliothek zum Analysieren und Manipulieren von HTML Dokumenten, in der Version 2.6 verwendet. Entwickelt wurde der Crawler unter der Entwicklungsumgebung Eclipse 3.4. Als Datenbanksystem wird MySQL 5.0.67 eingesetzt. Für die Abfragen wird Standard SQL: 2003 eingesetzt. Database Synchronization Um die gesammelten Daten aufzubereiten wurde eine Java Applikation mit Java 1.5 entwickelt. Um die, von den MySpace Personen, angegebene Lieblingsfilme an die Film Datenbank anzupassen wurden die Filme mit dem Levenshtein Algorithmus verglichen. Als Datenbank wird ebenfalls MySQL 5.0.67 verwendet. Für die Abfragen wird Standard SQL: 2003 eingesetzt. Durch die Entwicklung mit Java ist der Datenabgleich an kein Betriebssystem gebunden. Social Movie Map Social Movie Map ist eine mit Adobe Flex 3.0.2 entwickelte Flash Anwendung. Die Anwendung läuft auf einer Ubuntu Linux Distribution. Als Webserver wird ein Apache Server Version 2.2.11 mit PHP 5.2.8 verwendet. Für die Datenhaltung wird das frei erhältliche Datenbankverwaltungssystem MySQL 5.0.67 verwendet. Als Schnittstelle zwischen PHP und Mysql wird MySQLi mit Standard SQL: 2003 eingesetzt. An Application created with Flex can run in the browser using Adobe Flash Player software. Adobe Flex Flex is a free, open source framework for building highly interactive, expressive web applications that deploy consistently on all major browsers, desktops, and operating systems. It provides a modern, standards-based language and programming model that supports common design patterns. MXML, a declarative XML-based language, is used to describe UI layout and behaviors, and ActionScript 3, a powerful object-oriented programming language, is used to create client logic. Flex also includes a rich component library with more than 100 proven, extensible UI components for creating rich Internet applications (RIAs), as well as an interactive Flex application debugger. RIAs created with Flex can run in the browser using Adobe Flash Player software or on the desktop on Adobe AIR, the cross-operating system runtime. This enables Flex applications to run consistently across all major browsers and on the desktop. And using AIR, Flex applications can now access local data and system resources on the desktop. Social Movie Map – Technische Dokumentation 37 Technische Dokumentation Philipp Bender & Florian Wilhelm MySpace MySpace ist eine mehrsprachige Plattform, die sich über Werbung finanziert und den Nutzern ermöglicht, kostenlose Benutzerprofile mit Fotos, Musik, Videos, Blogs, Gruppen usw. einzurichten. MySpace wird als der bekannteste Vertreter eines als Website realisierten Sozialen Netzwerks (Web 2.0) angesehen. Datenbankstruktur In diesem Kapitel findet die Analyse über die Inhalte von den MySpace Profilen statt sowie die Abbildung der Daten in einem relationalen Datenbankmodell. Analyse der MySpace Profile Als erstes werden alle relevanten Angaben, die eine Person auf einem MySpace Profil angeben kann, betrachtet. Des Weiteren gibt es zu den MySpace Profilen noch MySpace Bands. Diese Unterscheiden sich von den möglichen Angaben, haben jedoch Gemeinsamkeiten wie id, profilename, Freunde, Kommentare etc. Dabei gibt es Attribute die durch ein Selections-Feld vorgegeben sind. Diese sind deutlich besser einzulesen und zu behandeln, als freie Eingabefelder wie AboutMe oder Lieblingsfilme. Die LieblingsBücher, -Music, -Movies, -Television und –Helden werden bei jedem, ; / \ sowie HTMLZeilenumbrüche wie <br> und <br /> getrennt. Dies ist notwendig da die Angaben als ein Textstring vorhanden sind und jeder Benutzer eigene Trennzeichen verwendet. Andere Trennzeichen wie & + oder „and“ konnten nicht verwendet werden, da diese z.T. Teil eines Filmtitels / Buchttitels waren. Daten wie Vorname, Nachname, E-Mail oder Passwort sind geschützte Inhalte und werden auf den Profilen nicht angezeigt und konnten somit nicht eingelesen werden. Alle relevanten Attribute finden Sie inklusive des Field Type auf der nächsten Seite. 38 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm Category Attribute Field Type About Me About Me Who I'd Like to Meet Textarea Textarea Interests General Music Movies Television Books Heroes Textarea Textarea Textarea Textarea Textarea Textarea Basic Info Gender Display Name Headline City Zip-Code Country Region Photo Male / female Input Input Input Input Selection Selection File-Upload Details I am her for Hometown Height Occupation Sexual Orientation Bodytype Ehtnicity Religion Smoker Drinker Children Education Family Status Income Checkbox Input Input Input Selection Selection Selection Selection Selection Selection Selection Selection Selection Selection Schools Country State City Your School Selection Selection Selection Selection MySpace Bands Page Views Member since Label Kind Label Website Band Member Influence Sound like Text Text Text Text Text Text Text Text Sonstiges Friends Comments Text Text Tabelle 1: MySpace Profile-Attribute Social Movie Map – Technische Dokumentation 39 Technische Dokumentation Philipp Bender & Florian Wilhelm Abbildung 1: Entity Relation Modell - Crawler In der Tabelle MYSPACE werden alle von den Bands und Profilen gemeinsamen Attributen gespeichert. Hier zu zählen die Attribute profileType (profile / band), id, city, country, state, lastLogin, profileName, countFriends, countComments und headline. Jedes MySpace Profil hat N Anzahl an Kommentaren und Freunden. Dies entspricht ebenfalls für Bands sowie den Profilen. Die Attribute von einem Profil werden in der PROFILE Tabelle abgespeichert. Eine Person kann zusätzlich noch mehrer Lieblings- Bücher, -Music, -Movies, -Television oder -Helden haben, deshalb werden diese in extra Tabellen verwaltet. Die Attribute für eine Band werden in die BandProfile hinterlegt. Jede Band wird bestimmte Musik Genre zugewiesen. Diese Genre werden in GENRE Tabelle gespeichert. Der Primärschlüssel MySpace.id entspricht der MySpace Profil Nr. Durch diese Datenstruktur ist das Soziale Netz inklusiven alle öffentlichen Angaben, einer Person, komplett in der Datenbank hinterlegt und kann nachgebildet werden. 40 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm Analyse der IMDB DB IMDb Lizenz Limited non-commercial use of IMDb data is allowed, provided the following conditions are met: You agree to all the terms of our copyright/conditions of use statement, located at http://www.imdb.com/conditions. Please also note that IMDb reserves the right to withdraw permission to use the data at any time in its discretion. The data must be taken only from the plain text data made available from our FTP sites (see http://www.imdb.com/interfaces for more details and for links to our FTP servers). You may not use data mining, robots, screen scraping, or similar online data gathering and extraction tools on our website. If the information/data you want is not present in the data files available from our FTP sites, it means it's not available for non-commercial usage. If you do want to use IMDb data for commercial purposes, you must contact our Content Licensing Department at http://www.imdb.com/Licensing/. The data can only be used for personal and non-commercial use and must not be altered/republished/resold/repurposed to create any kind of online/offline database of movie information (except for individual personal use). Please refer to the copyright/license information enclosed in each file for further instructions and limitations on allowed usage. You must acknowledge the source of the data by including the following statement: Information courtesy of The Internet Movie Database (http://www.imdb.com). Used with permission. Social Movie Map – Technische Dokumentation 41 Technische Dokumentation Philipp Bender & Florian Wilhelm Abbildung 2: alle benötigten IMDb Tabellen für Social Movie Map Die Filme und TV-Serien werden in der MOVIES Tabelle gespeichert. Der Primärschlüssel der MOVIES ist die movieid. Des Weiteren wird der Original- Filmtitel und das Erscheinungsjahr mit abgespeichert. Die anders sprachigen Filmtitel werden in der AKATITLES hinterlegt. Jeder Film kann zu bestimmten Keywords zugewiesen werden, sowie Genre. Des Weiteren hat ein Film weitere Informationen: Colorinfo, Runningtimes, Release Dates und Ratings von den IMDB users. Diese Angaben werden in getrennten Tabellen verwaltet. Jedem Film werden über die Movies2Actors die Schauspieler, die im Film mitgewirkt haben, zugewiesen. Der Primärschlüssel MOVIES.movieid ist bei KEYWORDS, GENRES, COLORINFO, AKATITLES, RUNNINGTIMES, RELEASEDATES, RATINGS, MOVIE2ACTORS als Fremdschlüssel deklariert. 42 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm Datenaufbereitung Hier findet die Analyse zu der Datenaufbereitung statt. Es werden alle Tabellen betrachtet, die für den Einsatz in der Social Movie Map Anwendung benötigt werden. Zur Optimierung der Abfragen wurden die Tabellen möglichst zusammengefügt. Die MOVIES Tabelle wurde mit den Informationen wie Rating, Release Dates, Runningtimes und Colorinfo erweitert. Ebenso wurde die Tabelle MySpace und Profile miteinander verbunden. Alle unnützen Tabellen wurden aus Speichergründen nicht in der Social Movie Map Datenbank aufgenommen (z.B. Bandprofile). Somit können alle relevanten Abfragen mit wenigen JOINs realisiert werden. Die Datenstruktur konnte dadurch beibehalten werden ohne dabei großartige Redundanzen zu erzeugen. Da in der IMDB auch viele TV- Serien auftraten und somit den Datenabgleich verfälschten, wurden alle Serien gelöscht. Dies hatte die Folge, dass von den ehemals 1280222 Filmen nur noch 771299 übrig blieben. Für das Live System werden nur die Profile in der Datenbank gehalten, welche auch Lieblingsfilme haben. Dies hat natürlich Vorteile in der Geschwindigkeit sowie Speicherbedarf. Abbildung 3: Entity Relationship Model Social Movie Map – Technische Dokumentation 43 Technische Dokumentation Philipp Bender & Florian Wilhelm Datenabgleich Der Filmabgleich wurde mit dem Levenshtein Algorithmus und dem Minimum Prinzip realisiert. Dabei wird die Levenshtein Distanz von einem Lieblingsfilm und Film berechnet. Der Film der die kleinste Distanz vorzeigt, wird in der Datenbank mit der entsprechenden movieid eingetragen. Wenn eine Distanz jedoch größer als 1 / 3 des kompletten Filmtitels ist, wird dieser nicht eingetragen. Levenshtein distance In information theory and computer science, the Levenshtein distance is a metric for measuring the amount of difference between two sequences (i.e., the so called edit distance). The Levenshtein distance between two strings is given by the minimum number of operations needed to transform one string into the other, where an operation is an insertion, deletion, or substitution of a single character. Favorite Movie (MySpace Profile) Film Title (IMDB) Levenshtein distance Lord of the Rings Lord of the Rings 0 The Lord of the Rings Lord of the Rings 4 The Fellowship of the Ring Lord of the Rings: 19 The Fellowship of the Ring Pulp Fiction Pulp Fiction 0 Plup Fiction Pulp Fiction 2 Plup Fiction Plump Fiction 1 Tabelle 2: Levenshtein Distanz Beispiele Durch den Abgleich über die Levenshtein Distanz können unter Umständen falsche Ergebnisse auftauchen. Ein Großteil der Filme kann nicht zugewiesen werden, da die MySpace Benutzer selten den kompletten Filmtiteln angeben. Bei falsch betitelten Lieblingsfilmen kann je nach Distanz ein anderer Film als Ergebnis erscheinen (Bsp.: Tabelle: Pulp Fiction). Des Weiteren gibt es für manche originalen Filme mehrere Neuverfilmungen und da die MySpace Benutzer keine Jahreszahl angeben, wird von der neusten Verfilmung ausgegangen. Dadurch wird ebenfalls das Ergebnis manipuliert, da viele Benutzer evtl. den Original Titel zitierten. Viele Benutzer haben durch die freie Texteingabe volle Texte angeben: „I like all Action Films“. Diese konnten natürlich nicht synchronisiert werden. Es wurden nur Lieblingsfilme verglichen bei denen die Textlänge maximal 50 Zeichen betrug, da die Wahrscheinlichkeit bei einer größeren Textlänge immer kleiner wird um das entsprechend Ergebnis zu erreichen. 44 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm MySpace Crawler Der MySpace Crawler arbeitet mit dem OpenSource Jericho Java HTML Parser um die HTML Inhalte auszulesen. Die Benutzer bei MySpace haben eine fortlaufende Nummer (http://profile.....viewprofile&friendid=123456789). Durch einfaches inkrementieren der friendid, konnte der Crawler die verschiedenen Profile aufrufen. Durch dieses sequenzielle Vorgehen mussten man folgende Fälle abfangen: • Ungültige FriendID • Privates Profil • Band Profil • Öffentliches Profil Manche friendid’s sind nicht bei MySpace vergeben und geben daher die Rückmeldung „Ungültige FriendID“. Diese Seiten wurden ohne weitere Bearbeitung übersprungen. Jeder Benutzer kann persönlich angeben ob sein Profil öffentlich zugänglich oder privat ist. Die privaten Profile wurden ebenfalls übersprungen, da bei diesen Profilen nur der Profilname entnommen werden konnte. Ausgelesen wurden nur Band Profile und Öffentliche Profile. Der Crawler ist eine Server- Client Java Anwendung. Der Server verwaltet die friendid Bereiche und füttert die Clients (Datensammler) mit einer Liste von freien ID’s. Zusätzlich kann ein Server eine unbegrenzte Anzahl an Clients verwalten. Der Server hat zwei Einstellungsmöglichkeiten bevor der Server gestartet wird (Start-ID, Paket-Größe). Diese werden vor dem Start initialisiert und können während des laufenden Betriebes nicht geändert werden. Start-ID Ist die FriendID bei der, der Crawler das sammeln der Daten beginnt. Paket- Größe Anzahl der FriendID’s die ein Client zugewiesen bekommt. Erst wenn der Client diese Liste abgearbeitet hat, bekommt dieser neue FriendID’s. Social Movie Map – Technische Dokumentation 45 Technische Dokumentation Philipp Bender & Florian Wilhelm Abbildung 4: MS Crawler Server Der Client (Datensammler) baut aus der erhaltenen friendid Liste die MySpace Profil URL zusammen und lädt den Quellcode in ein Source Objekt. Dieses Source Objekt kann nun geparst werden und alle entsprechende Attribute können ausgelesen werden. Für die Identifizierung des Profiles (Ungültige FriendID, Privates Profile, Band Profil, Öffentliches Profil) ist die Klasse PageIdentifier.java zuständig. Diese gibt je nach Identifizierung eine Zahl zurück. Abbildung 5: MS Crawler Client 46 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm Je nach Identifizierung wird der entsprechende Parser aufgerufen (ParseProfile.java oder ParseBand.java). Die Syntaxregeln für die Regulären Ausdrücke werden in einer externen Property Datei gespeichert. Dadurch kann schnell auf Änderungen von MySpace reagiert und agiert werden. Die Freundesliste wird bei MySpace über eine andere URL aufgerufen (http://friends.myspace.com/....viewfriends&friendID=123456789) und beinhaltet 40 Freunde pro Seite. Da MySpace jedoch aus Performance Gründen nur eine begrenzte Anzahl an Freunden anzeigt, ist es nicht möglich den kompletten Freundeskreis einer beliebten Person auszulesen. Diese Grenze liegt bei 40.000 Freunden und wird meist nur von Superstars oder dem MySpace Gründer „Tom (6221)“ erreicht. Für die Kommentare, auf einem Profil, ist die ParseComments.java verantwortlich. Da für das Auslesen aller Kommentare ein Login bei MySpace notwendig ist wurden nur die neusten 50 Kommentare direkt auf der Profilseite ausgelesen. Als Ergebnis einer erfolgreich analysierten Profile Seite wird eine DTO Datei (Data Transfer Objects) an den Server zurück gegeben. Eine DTO bündelt mehrere Daten in einem Objekt, sodass durch einen einzigen Programmaufruf diese übertragen werden können. Der Server speichert nun über die Datenbankschnittstelle diesen erhaltenen Datensatz (DTO) in die Datenbank. Abbildung 6: Sequenzdiagramm Crawler Social Movie Map – Technische Dokumentation 47 Technische Dokumentation Philipp Bender & Florian Wilhelm Probleme Bei der sequenziellen Inkrementierung der friendid ist eine maximale Ausbeutung von 60%- 70% vorhanden, da viele „Ungültige FriendID“ oder „Private Profile“ berücksichtigt werden müssen. Zudem wird das Soziale Netzwerk nicht komplett erfasst, da nicht alle Freundes– Freunde in der Datenbank gespeichert werden. Durch rekursives Auslesen der MySpace Profile wäre die Ausbeutung bis auf die Privaten Profile optimiert. Zudem würden alle erreichbaren Freundes- Freunde in der Datenbank abgebildet. Durch dieses Vorgehen müsste man mehrere Personen aus verschiedenen Herkunftsländern auswählen, um möglichst viele Profile mit unterschiedlichen Kulturen und Herkunftsländer zu bekommen. Keine Einstellmöglichkeiten für die IP Adresse auf die der Client verbinden soll. Diese Adresse steht statisch im Quellcode und muss entsprechend der Server IP angepasst werden. Paketstruktur vom MySpace Crawler Paketname client Kurzbeschreibung Clientspezifische Client Klassen db Crawler spezifische Datenbankobjekte dto Crawler spezifische Data Transfer Objects init Crawler Initial Klassen server Serverspezifische Server Klassen util Crawler spezifische Hilfsklassen Tabelle 3: Paketstruktur In dem Paket „client“ sind alle für den Client benötigten Klassen. Hierzu zählt der eigentliche Client und Client GUI sowie die Klassen zum Analysieren der Band Profile, Öffentliche Profile, Kommentare und Freunden. In dem „db“ Paket sind alle Datenbankklassen die der Crawler benötigt. Gleichermaßen befinden sich alle benötigten Data Transfer Objekte in dem „dto“ Paket. In dem Paket Initial befinden sich die Klassen zum initialisieren von MySpace FriendID’s. Innerhalb des Paket „server“ befinden sich alle Klassen die für den Betrieb des Server zuständig sind. Hierzu zählt die Server Klasse sowie die Server GUI. Die Hilfsklassen für den Crawler sind im „util“ Ordner abgelegt. 48 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm Datenbank Synchronisation Die Datensynchronisation ist dazu zuständig um die gesammelten MySpace Daten logisch mit der IMDb abzugleichen. Filmabgleich Abbildung 7: Quellcode Datenabgleich mit Levenshtein Social Movie Map – Technische Dokumentation 49 Technische Dokumentation Philipp Bender & Florian Wilhelm Für den Abgleich wurden die Filme anhand des Anfangsbuchstaben in kleinere Mengen unterteilt. Durch diese Unterteilung wurde der benötigte Aufwand für das berechnen des richtigen Filmes verkleinert. Jeder von den MySpace Benutzer angegebene Lieblingsfilm wurde mit den Filmen aus der IMDb mit dem Levenshtein Algorithmus verglichen. Sobald eine errechnete Levenshtein Distanz kleiner gleich 2 beträgt, wird die Schleife unterbrochen und der gefundene Film wird eingetragen. Durch diesen gezielten Abbruch wird der Abgleich um ein vielfaches schneller, führt aber in manchen Fällen zu schlechten Ergebnissen. Jedoch kann davon ausgegangen werden das es sich bei einer Levenshtein Distanz von 2 um einen Rechtschreibfehler handelt. Wird kein Film mit einer Levenshtein Distanz von kleiner gleich 2 gefunden, so wird du Suche bis zum Ende durchgeführt. Hat ein Film eine Levenshtein Distanz die kleiner ist als die bereits durchsuchten Filme, so wird dieser Film als optimale Lösung markiert. Aus Toleranzgründen wird nur ein Film eingetragen wenn die kleinste gefundene Levenshtein Distanz kleiner als 1/3 der Textlänge des entsprechenden Filmes beträgt. Wird ein Film eingetragen so wird dieser als „bearbeitet“ markiert um eine wiederholende Bearbeitung zu verhindern. Filme bei denen die Levenshtein Distanz nicht den Toleranz Abfragen entspricht werden extra markiert. Stichwort Analyse Der Inhalt der 6 Millionen gesammelten MySpace Profile wurden mit einem repräsentativen Stichwort Liste über Sex, Drogen und Gewalt analysiert und abgeglichen. Durch diese Analyse konnten die einzelnen Profile auf eins dieser Kriterien charakterisiert werden. Die Durchführung wurde mit dem Bayesian Algorithmus bearbeitet. Als Grundlage für den Algorithmus gibt es drei Listen mit insgesamt rund 2000 Stichworten. Sex Drogen Gewalt african sex free amphetamines cocaine conviction african sex movie amphetamines drugs cop beating african sex pics binge drinking cost of capital punishment african sex video brain heroin court shooting allgangbang caffeine addiction crime amateur cannabis drugs crime murder amateur adult cams cocain criminal arrested amateur adult web cam cocain abuse date rape amateur adult webcam cocain addiction daughter killing amateur adult webcams cocain addictive david killing weitere … weitere … weitere … Tabelle 4: Beispiel Stichworte Sex, Drogen und Gewalt 50 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm Für die Implementierung wurde die Classifier4J (http://classifier4j.sourceforge.net/), eine Java Open Source Library für die Klassifizierung von Texten, verwendet. Classifier4J beinhaltet den Bayesian Algorithmus sowie andere wichtige Funktionen für die Gliederung von Texten. Der Bayesian Algorithmus gibt bei einer erfolgreichen Findung eines Stichwortes eine 0.99 zurück. Ein neutrales Profil wird mit 0.5 gekennzeichnet. Jedes Profil wird mit den drei verschiedenen Listen analysiert. Die Analyse beinhaltet folgende Profil Attribute: ProfileName, Headline, Header, About, LikeToMeet, HereFor, Mood, SexualOrientation und Kommentare. Die Klassifizierung wird anschließend in der Tabelle PROFILEKEYWORD abgespeichert. Probleme Wie schon bereits unter Datenabgleich beschrieben, kann es zu Fehlentscheidungen kommen. Durch die Fehlertoleranz von einer Levenshtein Distanz von 2 können falsche Filme zugewiesen werden. Trotz Toleranz Abfragen ist der Abgleich sehr Zeitaufwendig, da jeder angegeben MySpace Lieblingsfilm mit tausenden Filmen abgeglichen werden muss. Der Aufwand bei der sequenziellen Durchführung beträgt O(N). Paketstruktur von der Datenbank Synchronisation Paketname Kurzbeschreibung (default) Datenabgleich spezifische Klassen data Daten für den Abgleich db Datenabgleich spezifische Datenbankobjekte dto Datenabgleich spezifische Data Transfer Objects util Datenabgleich spezifische Hilfsklassen Tabelle 5: Paketstruktur In dem Paket „(default)“ befinden sich alle ausführenden Klassen, die für den Datenabgleich notwendig sind. Hierzu zählen die Klassen für den Filmabgleich mit dem Levenshtein Algorithmus sowie die Keyword Analyse mit dem Bayesian Algorithmus. Die Stichwortlisten zu Sex, Drogen und Gewalt befinden sich im „data“ Paket. In dem „db“ Paket sind alle Datenbankklassen die für den Datenabgleich benötigt werden. Gleichermaßen befinden sich alle benötigten Data Transfer Objekte in dem „dto“ Paket. Hilfsklassen sind in dem Paket „util“ hinterlegt. Social Movie Map – Technische Dokumentation 51 Technische Dokumentation Philipp Bender & Florian Wilhelm Social Movie Map Social Movie Map ist eine mit Flex erstellen Webanwendung die alle gesammelten Informationen Visuell darstellt. Für die Darstellung von komplexeren Visualisierungen wurde die BirdEye RaVis von Google Code verwendet. Abbildung 8: Flex und PHP (http://learn.adobe.com/wiki/display/Flex/Flex+and+PHP) Adobe Flex kann nicht direkt mit einer Datenbank kommunizieren. Um die Anwendung an eine MySQL Datenbank anzubinden, wird PHP mit MySQLi verwendet. Adobe Flex kann über einen HTTPService externe Daten in die Anwendung laden und einen Request an eine PHP Datei versenden. Die PHP Datei erzeugt aus einem erhaltenen MySQL Result eine XML Datei, diese wird dann über die http Antwort in die Anwendung geladen. Adobe Flex kann nun diese Daten, in der Form einer XML Datei, verarbeiten und diese in Diagrammen, Listen oder andere Komponenten darstellen. Das gleiche Prinzip kann auch mit ASP.NET, ColdFusion oder Java angewandt werden. Die fünf verschiedene Hauptmenüpunkte (Movies by Group, Movie- Statistic, Charts, GenreStatistic und Movie Questions) wurden aus Gründen der Lesbarkeit in separaten MXML 52 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm Dateien ausgelagert und in der main.mxml aufgerufen. Zusätzlich war das gleichzeitige Arbeiten über CVS möglich. MXML Datei Beschreibung Main.mxml Kombiniert alle separaten MXML Dateien mit dem Hauptmenü und beinhaltet die Logik für den Fullscreen Modus. Page1.mxml Page1.mxml beinhaltet die Visualisierung zu „Movies by Group“ (Top-Film Graph und Top- Film Treemap) Page2.mxml Page2.mxml beinhaltet die Visualisierung zu „Movies Statistic“ (Film Suche mit dazugehörigen Statistiken) Page3.mxml Page3.mxml beinhaltet die Visualisierung zu „Charts“ (World-Wide Box Charts, IMDb Top Charts, Bottom Movie Charts) Page4.mxml Page4.mxml beinhaltet die Visualisierung zu „Genre Statistic“ (Filmjahr Graph, Statistiken) Page5.mxml Page5.mxml beinhaltet die Visualisierung zu „Movie Questions“ (7 Fragestellungen inkl. Visualisierung) Tabelle 6: MXML-Seiten der Appikation Die Auswahlfelder (XMLComboBox) erhalten ihre Auswahlmöglichkeiten aus externen XML Dateien. Die XML ist nach folgendem Schema aufgebaut: <?xml version="1.0" encoding="utf-8"?> <root> <nodes label="Label 1" data="1" /> <nodes label="Label 2 data="2" /> </root> Über den httpService von Adobe Flex werden die selektierten Auswahlmöglichkeiten mit der POST oder GET Argumentübertragung an die httpService.php übertragen. Jede MXML Datei hat eine eigene httpService.php Datei sowie die dazugehörige PHP Datenbankdatei. Die eigentliche SQL Abfrage steht in der PHP Datenbankdatei und wird von der httpService.php aufgerufen. Durch die Übergabe der selektierten oder eingegebenen Felder über POST oder GET kann die gewünschte SQL Abfrage gestartet werden. Die httpService.php wandelt das erhaltene SQL Resultat in eine XML Struktur um und gibt diese auf dem Ausgabestream aus. Social Movie Map – Technische Dokumentation 53 Technische Dokumentation Philipp Bender & Florian Wilhelm Für die Darstellung der XML Dateien gibt es folgende Komponenten im Adobe Flex Framework: AreaSeries, BarSeries, BubbleSeries, CandlestickSeries, ColumnSeries, HLOCSeries, LineSeries, PieSeries und PlotSeries. Für die Darstellung der Treemap in Page1.mxml wurde die Flexlib (Open Source Flex Component Library) von Google Code verwendet (http://code.google.com/p/flexlib/). Der Top Film Graph auf der Startseite wurde mit Birdeye (Information Visualization and Visual Analytics Library) umgesetzt (http://code.google.com/p/birdeye/). Für die Navigation wurde die ButtonBar Komponente sowie TabNavigator eingesetzt. Das Farbschema von Social Movie Map wurde mit dem Flex Style Editor (http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html) Version 2.0.1 angepasst. Caching Um die Datenbank im laufenden Betrieb zu entlasten gibt es eine Cache Funktion, welche die Ergebnisse einer Abfrage für einen bestimmten Zeitraum zwischenspeichert. Die Cache Dateien werden in dem Ordner „cache“ gespeichert und können innerhalb des bestimmten Zeitraumes von der PHP geladen werden, ohne eine neue Datenbankabfrage zu starten. Nach Ablauf des Zeitraumes wird die SQL Abfrage gestartet und die alte Cache Datei mit der aktuelleren überschrieben. Fragestellungen Alle dick markierten Fragen wurden umgesetzt und als Visualisierung dargestellt. Alle Fragestellungen beruhen auf den Angaben der MySpace Benutzer und können unter Umständen falsch angegeben sein. (Bsp. jährliches Einkommen). Fragen die sich mit dem Freundeskreis befassen, konnten nicht umgesetzt werden da durch die 6 Millionen Profilen nur kleine oder nicht repräsentative Freundeskreise vorhanden sind. 1. Was sind die Lieblingsfilme einer bestimmten Benutzergruppe (Alter, Herkunft, Geschlecht) 2. Von welchen Benutzergruppen wird ein bestimmter Film als Lieblingsfilm angegeben 3. Welche Film-Genre werden von einer bestimmten Benutzergruppe bevorzugt 4. Bei welcher Benutzergruppe ist ein bestimmtes Genre besonders beliebt. 5. Wie unterscheiden sich die beliebtesten MySpace-Filme von offiziellen TopMovie-Charts (Top250) 6. Bei welcher Benutzergruppe ist ein bestimmter Schauspieler besonders beliebt. 54 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm 7. Gibt es eine Beziehung zwischen Anzahl der Lieblingsfilme und Anzahl der verlinkten Freunde? Führen viele Freunde auch zu mehr Filmkonsum oder hat der vereinsamte Nerd die größte Lieblingsfilme-Sammlung. Oder ist es eher umgekehrt? 8. Gibt es eine Beziehung zwischen Filmlänge und Lieblingsfilmen? Ab welcher Länge hat ein Film ein erhöhtes Potential ein Lieblingsfilm zu werden. 9. Gibt es länderspezifische Unterschiede welche Art von Filmen geguckt werden? Welches Genre ist in einem Land vorherrschend. 10. Wie viel Prozent der User haben Lieblingsfilme, die älter sind als sie selbst. 11. Wie hoch sind die Anteile des verschiedenen Genres bei Männern im Gegensatz zu Frauen. 12. Wie hoch ist die durchschnittliche User-Bewertung von Filmen, die von Frauen als Lieblingsfilme angegeben werden im Gegensatz zur durchschnittlichen User-Bewertung von Filmen, die von Männern als Lieblingsfilme angegeben werden. Gucken Frauen mehr Schrott als Männer? 13. Wie hoch ist der Anteil an Lieblingsfilmen in Abhängigkeit von der Zeit, die bereits seit der Veröffentlichung vergangen ist? 14. Wie sähe der anhand von Vorlieben von MySpace-Usern statistisch errechnete Top-Movie aus (Zusammenstellung eines Filmes mit den Top-Schauspielern, Top-Genre, TopSpielfilmlänge, …) 15. Welchen Bildungsstand haben die Anhänger eines bestimmten Genres? Sind Horror-Fans gebildeter als Schnulzen-Gucker? 16. Wie verändern sich die Film-Vorlieben einer Altersgruppe wenn sie Kinder haben? 17. Gibt es einen Zusammenhang zwischen Filmbewertung und Anzahl der Lieblingsfilme. (Bspw. Viele eher mittelmäßige vs. wenige, aber gut bewertete Lieblingsfilme) 18. Hat die sexuelle Orientierung Einfluss auf die Film-Vorlieben? Haben nicht hetero-sexuelle andere Vorlieben bei den Lieblingsfilmen? 19. Schauen Jugendliche unter 16 oder 18 Jahren Filme, die mit laut FSK nicht für sie freigegeben sind? 20. Welche Auswirkung hat das Einkommen auf die Art der Lieblingsfilme. 21. Haben Freunde eines bestimmten MySpace-Users den gleichen Filmgeschmack wie diese? 22. Was ist die durchschnittliche Anzahl an Lieblingsfilmen 23. Wie ist die durchschnittliche Anzahl an Lieblingsfilmen pro Altersgruppe? Haben ältere Menschen mehr Lieblingsfilme als junge Menschen? 24. Welcher Personenkreis hat keine Lieblingsfilme (angegeben)? 25. Spielt die Religionszugehörigkeit eine Rolle bei der Auswahl der Lieblingsfilme? Social Movie Map – Technische Dokumentation 55 Technische Dokumentation Philipp Bender & Florian Wilhelm 26. Wer sind die Top-Schauspieler bei den MySpace-Usern. 27. Wie hoch ist der prozentuale Anteil alternativer Filmtechniken (bspw. Animationsfilme) bei den Lieblingsfilmen? 28. Wie hoch ist der prozentuale Anteil alter Filmtechniken (bspw. Schwarz-weiß Filme) bei den Lieblingsfilmen? 29. Was sind die Top10 der „Production Companies“ / Producer, die die meisten Lieblingsfilem produziert haben 30. Wie ist das Verhältnis zwischen abgegebenen Votings bei IMDB und der Beliebtheit bei MySpace-Usern? Sind Filme mit vielen Bewertungen auch beliebter? 31. Gucken Menschen mit höherem Einkommen auch höher bewertete Filme als Menschen mit niedrigerem Einkommen? 32. Gucken Menschen mit höherer Bildung auch höher bewertete Filme als Menschen mit geringerer Bildung? 33. Haben Singles mehr Lieblingsfilme als Verheiratete? 34. Wie unterscheiden sich die Lieblingsfilme im direkten Vergleich zweier Länder? 35. Wie wirkt sich die Anzahl der gewonnen Movie Awards auf die Beliebtheit eines Films aus 36. Gucken Menschen die in MySpace auch Lieblingsbücher angegeben haben mehr oder weniger Filme als User, die keine Lieblingsbücher haben? 37. Welche Drehorte sind bei den MySpace-Usern am beliebtesten. 38. Welche Themen (anhand von Keywords) stehen bei den MySpace-Usern hoch im Kurs? 39. Steht der Nickname von Usern in Zusammenhang mit seinen Lieblingsfilmen (bspw. Name der Hauptrollen, Titel) 40. Wie hoch ist die durchschnittliche Anzahl von Lieblingsfilmen 41. Inwieweit unterscheiden sich die Lieblingsfilme von verschiedenen ethnischen Gruppen. 42. Die Einwohner welchen Landes haben die meisten Lieblingsfilme 43. Gucken Menschen mit einer Körpergröße unter 100cm vermehrt Filme aus Genre (Action / Horror / Kriegsfilme …) in denen Normalwüchsige abgeschlachtet werden, oder sind diese Menschen eher besonnener (Komödien / Romanzen / Animationsfilme …) 44. Topfilme / Lieblingsgenre in Abhängigkeit der Größe des Freundeskreises einer Person. (Meinungsbildner) 45. Topfilme / Lieblingsgenre in Abhängigkeit der Anzahl an Kommentaren einer Person. (Meinungsbildner) 46. Haben Personen eines Freundeskreises die gleichen Film-Interessen? 56 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm 47. Gibt es Auffälligkeiten in der Beziehung zwischen Länge des Nicknames und den FilmInteressen einer Person. Liegen die Film-Schwerpunkte von Personen mit einem 40-stelligem Nickname anders als bei Personen mit kurzem Nickname 48. Sind kürzere Filme generell beliebter als lange Filme oder ist es eher umgekehrt? 49. Wie wirkt sich Überlänge auf die Beliebtheit eines Films aus. Visualisierung Probleme Bei dem Versuch eine externe Weltkarte für die Visualisierung der Genreverteilung auf dem Globus einzubinden, gab es Probleme mit Action Script 2. Eine Alternative zu externen Weltkarten ist die Google Maps API für Flash, die auch in Flex eingebunden werden kann. Diese API wurde doch erst gegen Projektende gefunden und fand daher aus zeittechnischen Gründen keinen Platz im Social Movie Map Projekt. Paket Struktur von Social Movie Map Paketname Kurzbeschreibung db httpService PHP Dateien db.db Social Movie Map spezifische Datenbankklassen db.inc Datenbankhilfsklassen src.assets Farbschema (Bilder, Style, Fonts) src.data Daten für die Auswahlfelder sowie Initialdaten src.flexlib Open Source Flex Component Library src.org Erweiterungen, benötigten Komponenten src.reflection Komponente für die Reflection src.renderers Renderer für die Charts src.styles CSS Dateien src MXML Dateien (main, page1, page2, page3. page4 und page5) Tabelle 7: Paketstruktur Die PHP Dateien für die Datenbankabfragen liegen im Ordner „db“, „db.db“ und „db.inc“. Die benötigten Adobe Flex Dateien und Komponenten liegen im Ordner „src“. Social Movie Map – Technische Dokumentation 57 Technische Dokumentation Philipp Bender & Florian Wilhelm Wireframes / Screen Design Wireframe Abbildung 9: Sehr früher konzeptueller Prototyp 58 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm Screendesign Abbildung 10: Fertige Anwendung Social Movie Map – Technische Dokumentation 59 Technische Dokumentation Philipp Bender & Florian Wilhelm Evaluierung der Ergebnisse Die Anforderungen des Projektes wurden erfolgreich nach den Anforderungen des Pflichtenheftes erfüllt. Daten / Fakten Tabellen Zeilen / Einträge Datenlänge MySpace Lieblingsfilme 3169052 161,5 MB MySpace Profile 6037948 1788,1 MB 813363 34 MB 5000000 213,2 MB Filme nach Abgleich Profile Keyword Analyse Tabelle 8: MySpace Tabelle Tabelle Zeilen / Einträge Datenlänge IMDB Filme 771299 63,3 MB Tabelle 9: IMDb Tabelle Fazit Was wurde erreicht? Erreicht wurde eine funktionale und erweiterbare Web Anwendung für die Analyse von MySpace Profilen und deren Lieblingsfilmen nach den Wünschen des Auftraggebers. Erweiterungsmöglichkeiten Das Projekt kann durch weitere gewünschte Statistiken ergänzt werden. Hierbei ist zu achten, dass die gewünschten Informationen im Datenbanksystem zur Verfügung stehen. Die Google Map API für Flash kann integriert werden, um z.b. die Genreverteilung auf der Google Map Weltkarte darzustellen. Natürlich sind auch weitere Visualisierungen auf der Grundlage von Google Maps denkbar. Der MySpace Crawler kann mit zusätzlichen Funktionen, für das Auslesen eines Benutzer Profils, ausgestattet werden. 60 Technische Dokumentation - Social Movie Map Technische Dokumentation Philipp Bender & Florian Wilhelm Literaturverzeichnis • Information Visualization and Visual Analytics Library http://code.google.com/p/birdeye/wiki/RaVis (26.01.2009) • Classifier4J is a Java library designed to do text classification http://classifier4j.sourceforge.net/ (26.01.2009) • Google Map API für Flash http://code.google.com/intl/de-DE/apis/maps/documentation/flash/ (26.01.2009) • Jericho HTML Parser – Java http://jerichohtml.sourceforge.net/doc/index.html (26.01.2009) • MySpace Social Network# http://www.myspace.com/ (26.01.2009) • International Movie DB http://www.imdb.com/ (26.01.2009) • Adobe Flex Getting Started http://learn.adobe.com/wiki/display/Flex/Getting+Started (26.01.2009) • Adobe Flex Style Editor http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html (26.01.2009) • Adobe Flex – Komponenten Explorer http://examples.adobe.com/flex2/inproduct/sdk/explorer/explorer.html (26.01.2009) Social Movie Map – Technische Dokumentation 61 Social Movie Map - Individuelle Dokumentation - an Open Source web application by Philipp Bender & Florian Wilhelm Individuelle Dokumentation Philipp Bender & Florian Wilhelm Leistungsübersicht Philipp Bender Main Klasse (Anwendungslogik) Server / Client Struktur friend Parser GUI Florian Wilhelm Crawler Parser für MySpace Profile Parser für MySpace Bands Regex Auslagerung in Property File Page Identifier DB Sync DB Erstellung und Optimierung Einbindung der IMDB DB Abgleich Movies & IMDB & Keywords Social Movie Map page1.mxml page3.mxml page2.mxml page4.mxml page5.mxml DB Anbindung via PHP Datenbankklassen und Request PHP Dateien Datenbankklassen und Request PHP Dateien RaVis Graph & TreeMap Homepage Einbindung grafischer Komponenten Feinschliff Abgabeversion Installationsanleitung JavaDoc (MSCrawler und DBSync) Techn. Dokumentation Dokumente Businessplan Conference Paper Kommunikation mit IMDb.com Manual Sonstiges Crawlen Einarbeitung in Flex gegenseitige Kontrolle und Ergänzungen 64 Individuelle Dokumentation - Social Movie Map Individuelle Dokumentation Philipp Bender & Florian Wilhelm Crawler Main Klasse (Programmsteuerung) Bestandteil der Main Klasse ist die Entwicklung und Zusammenführung der einzelnen Komponenten zu einem funktionsfähigen Crawler. Dazu zählen die Programmsteuerung und die Funktionsweise des Crawler. Probleme Hierbei war das größte Problem die Absprache der Klassen untereinander. Was sind die Funktionsparameter? Was gibt eine Funktion zurück? Dies konnte durch gemeinsame Klärung im Entwicklungsteam gelöst werden. Weiteres Problem war die unterschiedliche Bearbeitung der Ausnahmen, so dass die Fehler nicht immer direkt in der Programmsteuerung abgefangen werden konnten. Dadurch kann die Logiksteuerung nicht auf alle Ausnahmen reagieren und auch nicht entsprechend handeln. Server / Client Struktur Der Crawler basiert auf einer Kommunikation zwischen einem Server und einem Client. Der Server verwaltet die bereits geparsten Benutzerprofile sowie die Datenbankanbindung. Der Client dient als Datensammler und parst die MySpace Profile nach den Attributen ab. Die Kommunikation wird mit den gegebenen Java Klassen Socket und ServerSocket realisiert. Für den reibungslosen Einsatz war ein Connection Manager notwendig, der mehrere Clients gleichzeitig verwalten konnte. Probleme Bei dem Produktiveinsatz wurden größere Probleme festgestellt. Hierzu zählt insbesondere ein Memory Leak. Dadurch benötigte der Crawler recht viele Ressourcen, aber vor allem viel Arbeitsspeicher. Das Problem wurde letztendlich mit einer Subversion, ohne Server / Client Implementierung gelöst, was zu enormer Performancesteigerung führte. Weitere Problemen tauchten bei der Übertragung auf, hier mussten viele Fälle abgefragt werden. Wurden die Daten erfolgreich übertragen oder ist der Client noch aktiv? Zusätzlich musste der Client dem Server mitteilen, falls ein Fehlerhaftes Profil (Ungültige Friendid) vorhanden war. Um den gleichzeitigen Zugriff auf gemeinsam genutzte Funktionen zu regeln, mussten manche synchronisiert werden, um diesen gleichzeitigen Zugriff zu vermeiden. Dies tauchte vor allem beim Senden und Empfangen vom Server / Client auf. Das Einfügen der Profile benötigte deutlich mehr Zeit, als das analysieren der MySpace Profile. Dadurch tauchten lange Wartezeiten auf der Serverseite auf, die durch parallele Abarbeitung gelöst wurden. Social Movie Map – Individuelle Dokumentation 65 Individuelle Dokumentation Philipp Bender & Florian Wilhelm Friend Parser Jeder MySpace Benutzer hat eine Freundesliste die bei MySpace über den Aufruf einer bestimmten Adresse aufgelistet werden. Diese Liste beträgt 40 Freunde pro Seiten. Probleme MySpace hat als Performanceschutz eine Grenze von 40.000 Freunden eingebaut. Es werden nur die Freunde angezeigt die sich auf den Seiten 1- 999 und der letzten Seite befinden. Dies war natürlich bei vielen großen Persönlichkeiten und Superstars der Fall. Des Weiteren waren Seitenanzahl viele Anfragen auf MySpace von Nöten, um möglichst den kompletten Freundeskreis einer Person auszulesen. Dadurch kam es zu kritischen Punkten beim Produktivlauf, wenn die Freundesanzahl überdurchschnittlich groß war. Aus Performancegründen wurden schließlich nur maximal 8000 Freunde pro Profil ausgelesen, was 200 Anfragen entspricht. GUI Der Server und Client haben für die leichtere und benutzerfreundlichere Bedienung eine mit Java Swing programmierte Oberfläche. Hier war besonders eine Statusbox notwendig um Fehler oder Ausnahmen direkt auszugeben. Zusätzlich gibt es für den Server noch Einstellungsmöglichkeiten für die Start- FriendID und Paket Größe. Die Paket- Größe gibt die Anzahl der FriendID’s an, die ein Client in einem Stück abarbeiten soll. Für die leichtere Wahrnehmung der Informationen, sind diese Farblich markiert. Fatale Fehler sind rot markiert. Probleme Nach längerer Zeit sammelten sich so viele Statusinformationen an, so dass der Crawler wegen zu hoher Speicherauslastung eine Ausnahme geworfen hat. Nach insgesamt 10.000 Statusinformationen wird die Statusbox geleert und das Ressourcenproblem ist dadurch gelöst. Regex Auslagerung in Property File Zur einfacheren Anpassung des Parsers bei Änderungen der Semantik von MySpace-Profile wurden alle regulären Ausdrücke (RegEx) sowie alle id-Attribute in regex.properties Dateien ausgelagert. 66 Individuelle Dokumentation - Social Movie Map Individuelle Dokumentation Philipp Bender & Florian Wilhelm HTML-Parser für MySpace User- und Band-Profile Der HTML Parser analysiert clientseitig den zugrunde liegenden HTML-Quellcode, in diesem Fall einer MySpace Profil-Seite, und extrahiert aus dem Quellcode die für das Projekt relevanten Daten. Dabei ist zu erwähnen, dass die in MySpace vorkommenden Profile-Typen – Band Profile und UserProfile – sich sowohl im inhaltlichen als auch im semantischen Aufbau stark voneinander unterscheiden. Es war daher notwendig für die jeweiligen Profil-Typen eigene Parser Methoden zu entwickeln. Probleme Der semantische Aufbau der HTML-Seiten war bei Band- und User-Profilen z.T. sehr unterschiedlich, weshalb Teile eines Parsers nicht oder nur schlecht im anderen Parser wiederverwendet werden konnten. Während sich das Extrahieren von Informationen bei MySpace-Kategorien, die mit einem idAttribut versehen waren, relativ unkompliziert gestalte, gab es auch diverse Kategorien, bei denen kein id-Attribut vorhanden war. Hier mussten wir uns anhand anderer Tags oder verschiedener Kombinationen von Tag-Attributen orientieren, um die gewünschte Information auszulesen. Aufgrund der individuellen Gestaltungsmöglichkeit (z.T. mit Themes von Drittanbietern) und auch einem MySpace internen Wechsel im generellen Aufbau der Profile (ältere vs. neuere Profile) mussten im Laufe des Crawling-Prozesses mehrere Anpassungen getätigt werden. Besonders kompliziert gestaltete sich das Auslesen der Basis-Informationen wie Geschlecht, Alter, Herkunftsland, Stadt und Region, da diese Informationen alle zusammen und in wechselnder Kombination (z.B. keine Region angegeben) zum Teil in einer Zeile, ohne explizites Label und innerhalb eines HTML-Tags stehen. Ein weiteres Problem stellten Multimedia-Elemente innerhalb der Band- und User-Profile dar, das sich diese Audio-, Video- oder Werbe-Plugins nicht nur außerhalb der für uns interessanten Tags befanden, sondern auch innerhalb der Kategorien (z.B. eingebettete YouTube-Videos in „Filme“, Audio-Player in „Musik“). Die für uns relevanten Informationen mussten daher erst behutsam von allen HTML-Code befreit werden ohne die eigentliche Information zu verwerfen. Gleiches galt für inline StyleElemente von bereits oben erwähnter Design-Anpassung durch Drittanbieter-Themes. Zudem mussten Eingaben in Freitext-Felder wie z.B. „Filme“, „Musik“ und „Bücher“ vom extrahierten String in einzelne Titel gesplittet werden. Als Trennzeichen wurden dabei nur , ; | / \ sowie HTML-Zeilenumbrüche wie <br> und <br /> verwendet. Andere Trennzeichen wie & + - oder „and“ konnten nicht verwendet werden, da diese z.T. Teil eines Filmtitels / Buchttitels waren. Social Movie Map – Individuelle Dokumentation 67 Individuelle Dokumentation Philipp Bender & Florian Wilhelm Page Identifier Da es in MySpace keine gesonderten Bereiche für Band- bzw. User Profile gibt, sondern beide Arten während des Crawling-Prozesses gemischt abgerufen wurden, war es notwendig das Profile erst vom Page Identifier identifizieren zu lassen und bei positiven Übereinstimmung dann an den entsprechenden Parser (Band / User) weiterzuleiten. Probleme Da sich die User-Profile zudem in öffentliche und private Profile unterteilen, mussten Tags gefunden werden, die eine eindeutige Zuweisung erlauben. Ein weiteres Problem war, dass aufgrund der Crawling-Methode, dem inkrementieren der User-ID, immer wieder IDs gecrawlt wurden, die Aufgrund von Account-Löschungen oder nicht vergebenen ID-Bereichen ungültige bzw. nicht existente User Profile enthielten. Private Profile, sowie Seiten mit ungültiger User-ID wurden nicht an einen Parser weitergeleitet und verworfen. User-Profile mit asiatischer Zeichencodierung wurden aufgrund Interpretationsmöglichkeiten wie nicht öffentliche Profile behandelt. 68 Individuelle Dokumentation - Social Movie Map fehlender Individuelle Dokumentation Philipp Bender & Florian Wilhelm DB Sync DB Erstellung und Optimierung Die Daten mussten in der Datenbank so abgebildet werden das wenige Redundanzen entstanden und die Struktur weiterhin bestehen blieb. Zusätzlich mussten die Abfragen mit wenigen JOIN’s realisierbar sein. Für die Optimierung der einzelnen Tabellen wurden Primärschlüssel eingesetzt und Tabellen zusammengefügt. Für Social Movie Map irrelevanten Tabellen wurden entfernt. Probleme Viele movieid’s wurden von IMDb doppelt verwaltet. Um auf diesen Tabellen einen Primärschlüssel anzulegen, mussten die doppelten Einträge gelöscht werden. Einbindung der IMDB Da IMDb eine eigenständige Datenbank bereit stellte, musste diese mit der MySpace Crawler Datenbank logisch miteinander verbunden werden. Hierzu musste eine zusätzliche Tabelle hinzugefügt werden. Um eine performante Tabelle zu bekommen, musste mit den Primärschlüsseln der IMDb und MySpace Crawler Datenbank gearbeitet werden. DB Abgleich Movies & IMDB & Keywords Um die vorher entwickelte Zusatztabelle mit entsprechend korrekten Daten zu füllen, mussten die angegebenen Lieblingsfilme der MySpace Benutzer mit der IMDb abgeglichen werden. Der Abgleich beinhaltet das ignorieren von Rechtschreibfehler bis hin zu ausfiltern von falschen Angaben. Für die Klassifizierung der MySpace Profile nach den Sex, Drogen und Gewalt Mustern, musste ebenfalls ein Abgleich durchgeführt werden. Probleme Für das ignorieren der Rechtschreibfehler wird der Bayesian Algorithmus verwendet. Dieser berechnet die Anzahl der Schritte die notwendig sind um zwei gegebene Texte miteinander anzupassen. Hier zu musste jeder Lieblingsfilm mit insgesamt 800.000 Filmen aus der IMDb verglichen werden. Auf Jahreszahlen der Filme konnte nicht eingegangen werden, daher wurde immer von dem neusten Film ausgegangen. Ein weiteres Problem entstand durch die freien Eingabefelder bei MySpace. Größere Angaben wie komplette Sätze konnten nicht abgeglichen werden. Deshalb wurden alle Angaben, bei denen die Textgröße größer als 40 Zeichen betrug, gelöscht. Für die Klassifizierung der Profile, mussten diese mit einer repräsentativen Stichwort Liste verglichen werden. Dabei war zu achten, dass ein Profil mit mehreren Mustern identifiziert werden kann. Social Movie Map – Individuelle Dokumentation 69 Individuelle Dokumentation Philipp Bender & Florian Wilhelm Social Movie Map Birdeye RaVis Graph Der “Birdeye RaVis Graph” ist eine Open Source Visual Analytics Library, die entwickelt wurde, um komplexe Daten Visulisierungs-Interfaces für die Analyse von relationalen Daten wie beispielsweise Sozialen Netzwerken zu erstellen. In der Applikation „Social Movie Map“ ist der RaVis Graph dafür zuständig Lieblingsfilme einer zuvor ausgewählten Bevölkerungsgruppe und deren Zugehörigkeit zu verschiedenen Genre visuell darzustellen. Probleme Erste Probleme traten bereits bei der Auswahl eines entsprechenden Visualisierungstools auf, da Adobe Flex 3 selbst keinen solchen Graph bereitstellt. Die von uns gefundenen Visualisierungs-Tools waren entweder nicht für Adobe Flex geeignet (da sie nur AS2 und nicht AS3 unterstützten), kostenpflichtig oder als Shareware nur mit Werbeeinblendung nutzbar. Von den wenigen nicht kommerziellen Tools war das Open Source Projekt Birdeye RaVis das einzige das uns zugesagt hatte. Das nächste Problem war, RaVis so umzuschreiben, dass damit auch die Einbindung & Anzeige von dynamisch generierten Daten möglich war. Aufgrund der dynamischen Einbindung der Daten musste zudem auch die PHP-Datei, die die Anfrage des Users an die Datenbank weiterleitet und das Ergebnis der Datenbank-Abfrage dann aufbereitet und dem RaVis Graph zur Verfügung stellt, entsprechend angepasst werden. Die dynamische Konvertierung der Datenbank Ergebnisse in die vom RaVis Graph verlangte XML Formatierung stellte sich dabei als nicht ganz trivial heraus. Treemap Treemapping ist eine Visualisierungs-Methode um (Baum-) strukturierte Daten durch die Verwendung von (ineinenader verschachtelten) Rechtecken anzuzeigen. Die Größe der Rechtecke ist dabei proportional Abhängig vom Wert der entsprechenden Daten. Bei der in „Social Movie Map“ verwendeten TreeMap handelt es sich um das von Josh Tynjala für Flex entwickelte OpenSource Projekt flex2treemap. Probleme Im Gegensatz zum RaVis Graph gestaltete sich die Suche nach einer für Flex geeigneten TreeMap als recht unproblematisch. Auch die Anpassung der Treemap an das Design und vor allem die dynamische Einbindung der Daten verlief ebenfalls recht unkompliziert. 70 Individuelle Dokumentation - Social Movie Map Individuelle Dokumentation Philipp Bender & Florian Wilhelm Einbindung von Design-Komponenten Um das Design der Applikation ansprechender zu gestalten wurden verschiedene DesignKomponenten hinzugefügt. Primär wurde dabei das Default-Design der Flex-Panels graphisch aufgewertet (siehe Bild – vorher/nachher) • Mit Hilfe der Erweiterung Reflection Manager 1.0 von Wietse Veenstra lassen sich Panels vom User verschieben, schließen und schließen (alles in der Application deaktiviert) und zudem erhält das Panel eine Mac-ähnliche Reflektion. • Der Hintergrund des Panels wurde durch das Hinzufügen von Verläufen und einer zusätzlichen Reflektion im Header optisch aufgewertet. Zudem wurden die Ecken abgerundet und der Titel durch Farb- und Schriftanpassungen hervorgehoben • Als Teil des „Work Step Guiding System“, das die Usability durch eine intuitivere Ausführung der Arbeitsschritte erhöhen soll, wurden in allen wichtigen Kontroll-Elementen Hinweise auf die Reihenfolge der Arbeitsschritte in Form von Nummern eingebaut. Abbildung 11: normales Panel und Panel mit Design-Anpassungen Probleme Aufgrund der Diskrepanz zwischen vorhandenem und benötigtem Platzbedarf wurde der Einsatz des Reflection Managers im Laufe der Entwicklung immer weiter reduziert, bis wir uns schließlich dazu entschlossen, auf den Reflection Manager ganz zu verzichten. Social Movie Map – Individuelle Dokumentation 71 Individuelle Dokumentation Philipp Bender & Florian Wilhelm Sonstiges Adobe Flex 3 Auf der Suche nach einem geeigneten Tool für die Visualisierung des Projektes „Social Movie Map“ wurden diverse Tools in Augenschein genommen und auf Funktionalität und insbesondere Erlernbarkeit hin überprüft , da keines der Team-Mitglieder bisher Erfahrung in einem der Programme hatte. Getestet wurden: • Prefuse - http://www.prefuse.org/ • Processing - http://www.processing.org/ • Flare - http://flare.prefuse.org/ • Adobe Flex 3 - http://www.adobe.com/de/products/flex/ Aufgrund der vielseitigen Funktionalität, der ausgezeichneten Dokumentation auf der Herstellerseite, sowie der großen Gemeinde von Flex-Anhängern, die in diversen Blogs viele hilfreiche Tipps, Tricks & Tutorials zur Verfügung stellt, entschieden sich beide Team-Mitglieder für die Realisierung des Projektes mit Adobe Flex 3. Hinzu kam dass der eigentlich kostenpflichtige Flex Builder, der mit den Flex Charting Components weitere hilfreiche Visualisierungs-Features zur Verfügung stellt, für Studenten bei Nachweis als kostenfreie Vollversion zum Download bereitsteht. Aufgrund der bereits bekannten und auf Eclipse aufgebauten Entwicklungsumgebung des Flex Builders wurden recht schnell erste Erfolge beim Aufbau der Applikation erzielt. Dennoch bedurfte es einiger Zeit und intensiver Beschäftigung mit der Dokumentation und diversen Online-Blogs, bis tiefergehende Funktionen wie die Anpassung von Schnittstellen (XML, DB, PHP) oder die Abstimmung des Design zufriedenstellend gelöst waren. Kommunikation mit IMDb.com Ein zentrales Element für die Verwirklichung des Projektes war die Erlaubnis zur Nutzung der IMDb.com Datenbank. Die „Internet Movie Database“ ist die größte frei zugängliche Filmdatenbank im Internet mit derzeit rund 1,3 Millionen Filmtiteln und – insbesondere wichtig für dieses Projekt – mit rund 450.000 internationalen Filmtiteln, sogenannten AKA-Titeln. Zwar ist die Nutzung des Portals und die dort vorhandenen Daten auf IMDb.com zwar zum größten Teil frei zugänglich, jedoch handelt es sich hierbei nicht um ein OpenSource Projekt. IMDb.com ist Teil des Internet-Versandhaus Amazon.com. Da MySpace international genutzt wird und somit auch Filmtitel in der entsprechenden Kategorie mehrsprachig eingegeben werden, mussten wir die internationalen Filmtitel vor der Auswertung und Visualisierung der Daten erst dem jeweiligen Original-Filmtitel zuordnen. 72 Individuelle Dokumentation - Social Movie Map Individuelle Dokumentation Philipp Bender & Florian Wilhelm Da wir beim Abgleich der Filmtitel auf die Unterstützung und Bereitstellung der Rohdaten von IMDb angewiesen waren, hätte ein Nutzungsverbot unsere Arbeit stark zurückgeworfen oder – bei fehlenden Alternativen – das Projekt sogar scheitern lassen. Glücklicherweise erhielten wir auf unsere Anfrage zur Nutzung der IMDb-Datenbank recht schnell eine positive Antwort. Uns wurde gestattet für nicht-kommerzielle und persönliche Projekte die Daten zu nutzen. Wir erhielten dabei Zugriff auf den kompletten IMDb-Datenbestand, der in Form von Plain-Textdateien zum Download zur Verfügung stand. Social Movie Map – Individuelle Dokumentation 73 Social Movie Map - Anhang - an Open Source web application by Philipp Bender & Florian Wilhelm Social Movie Map 5th International Conference on e-Social Science, Cologne Philipp Bender | Florian Wilhelm Students | University of Applied Sciences Kaiserslautern/Zweibrücken, Germany phbe0001 (at) stud.fh-kl (dot) de | flwi0002 (at) stud.fh-kl (dot) de Supervising Tutor: Prof. Hendrik Speck [1] the user data. Questions answered through the application are for example: Abstract “Social Movie Map” is an OpenSource application for graphic visualization of behavior and preferences in movie entertainment of MySpace user. In contrast to free accessible movie charts “Social Movie Map” considers also social aspects like for example origin, age or gender in analyzing favorite movies. Moreover this tool shows also profound interrelations of user profiles and their relation to movies. 2. Keywords Data collection, Data network analysis, Web 2.0 visualization, Social 3. Introduction • By which population group is the movie X is watched? • Which movies are favorites of Spanish females between the ages of 16 and 49, who have at least 1 child? • Do educated people watch more higher ranked movies than less educated people? • and much more... “Social Movie Map” supplies the user with information that usually would cost you a lot of time and money for extensive surveys. Moreover, data of over 200 different countries have been gathered, so “Social Movie Map” also allows an international comparison. 4. Concept The application „Social Movie Map“ is a student research project created in the context of the lesson "Media-Management & -Production”[2] at the University of Applied Sciences of Kaiserslautern [3] Caring professor of this project is Prof. Hendrik Speck. The application was planned and developed by Philipp Bender and Florian Wilhelm. At the beginning of the project the main focus was on the question how to analyze people’s interests and behaviors in the category movie. We had three questions to discuss: Where can we get a representative amount of data, what do we want to analyze and how do we want to visualize the results? Social networks becoming more and more popular in the web. In Germany alone there are more than 140 social networks [4], where people offer personal information, interests and preferences. And most of them are public. For doing interactive social research social networks are – due to the amount of data - a representative and easy to use source. As said before, social networks offer due to the amount of users a lot of information. User can input their interests in thematically sorted categories, what it makes easy to separate the required information for analysis. So we decided to collect the data from the social network MySpace [6], which has more than 200 million user and most of the user profiles are public. The application “Social Movie Map” analyzes the behavior and preferences in movie entertainment of 6 million user of the social network MySpace. In contrast to other network analyzing tools like “studiAnalyse” [5] our application doesn’t analyze the inner structure between those users, but analyzes The next step was the question what to analyze. The application shouldn’t be a simple analysis of the people’s Top movies. It should be a tool, which also illuminates the social background of the people. Their origin, sex, age, religion… We wanted detailed to know, who the people are that declared a single genre as their favorites. Moreover this tool should also show profound interrelations of user profiles and their relation to movies like “How many user have favorite movies which are older than themselves?” or other. All in all the functionality of “Social Movie Map” was founded on about 50 questions that are meant to be visualized and answered by this application. and redundant tables were created to optimize the performance. In further steps the collected data had to be cleaned, prepared and structured in tables for easy database access, which again had to be optimized for optimal performance. On basis of this database the main application was developed. We decided to create the application in Adobe Flex due to the platform-independency of the Flash, so everyone can reach and use the tool. 5. Realizing The first step after gathering the technical requirements was to analyze all available information and the internal structure of the project’s data source – the public MySpace profiles. Available attributes were written into a matrix that determines the basis for possible thesis that can be analyzed. To collect the data automatically from MySpace a Java based webcrawler [7] was implemented that uses the Jericho HTML-Parser [8] to split the wanted attributes from the profile HTML code and stores it into a MySQL-database. The declared aim was to collect and save at least 6 million user profiles. Throughout the crawling process we enhanced the crawler code several times and could increase the crawling speed clearly. For getting clear results in the completed application, it was first necessary to clean and prepare the gathered data for later use. One problem was to assign international movie titles to one specific movie. To solve this problem the “Internet Movie Data Base” [9] provided their complete database to us. Using the Levenshtein algorithm is was now possible to compare the MySpace movie entries with the IMDB database to assign these international movie titles to a single IMDB movie entry. After data preparation, a visualization concept based on the 50 thesis analyzed before - was created. The database was optimized to fulfill the needs of this visualization concept. Unused data was deleted Figure 1: MS Crawler (Server) The visual part of the application was built in Adobe Flex 3 [10], an (partly) open source framework for creating Flash-based web- and rich internet- applications (RIA). The visualization functionality was increased by the open source visual analytics library “BirdEye RaVis” [11] from the “BirdEye Group”, which was developed to create complex data visualization interfaces for the analysis of relational data sets such as social networks. Furthermore the library Flex2TreeMap [12] from Josh Tynjala was built in. Figure 2: LineChart The visualization of the results is primary based on Flex Charting Components with different chart types such as BarCharts, LineCharts, ColumnCharts and PieCharts and secondary based on two interactive graphs (RaVis) and a treemap. To create an intuitive operable system even for people with less technical knowledge a simple to use graphical user interface (GUI) was developed that also provide a “work step guiding system”. As control elements are primary checkboxes and drop down menus used. movies, which are older than themselves – even the younger user. This means that the newest and expensive Hollywood movies not always are the state of affairs. Another trend for example shows, that user with many friends also have more than twice as much favourite movies than user with less friends. This leads to the conclusion that the word-of-mouth by personal recommendation has a strong advertising effect on the popularity of movies. Figure 3: RaVis Graph & control elements The connection to the database is realized by using PHP. Multiple PHP scripts send the requests to the MySQL database and also prepare und convert the database results in XM, which is required for displaying the results in the Flash application. 6. Usage Fields for the software Social Movie Map is a web-application, provided as embedded Flash file on a for this purpose created website. Thus the application is accessible worldwide and by using Flash also platformindependent, so everyone can reach and use from everywhere. The easy-to-use interface with a “work step guiding system” makes is also intuitive operable for people with less technical knowledge. The application is addressed to all people, who are interested in movies and who want to know more about the people watching the movies. Furthermore this application can be the base of movie related consumer advertising for small businesses like for example local video rental shops or movie theatres. 7. Result Movies are a strong medium that unite people worldwide. In nearly every population group all over the world there is still an unwaning popularity of movies. 6 million MySpace users have round about 3.6 million favorite movies, which is much more than books in the correspondent category. The various analyses of the data have shown clear trends: So have 44% of the MySpace user favorite 8. References [1] Prof. Hendrik Speck, Webpage, Hendrik Speck, http://www.hendrikspeck.com, 27.01.2009 Hendrik.Speck (at) fh-kl (dot) de [2] Prof. Hendrik Speck, “Classes”, Webpage, Hendrik Speck, http://www.fh-kl.de/~speck/#classes, 27.01.2009 [3] Fachhochschule Kaiserslautern, http://www.fh-kl.de, 27.01.2009 Webpage, [4] Netzwertig.com - Über 100 Social Networks aus Deutschland, Webpage, Martin Weigert http://netzwertig.com/2007/10/16/zn-uber-100-socialnetworks-aus-deutschland/ 27.01.2009 [5] Studianalyse, Webpage, Florian Moritz and Christoph Gerstle, http://studianalyse.de.vu/, 27.01.2009 [6] Myspace 27.01.2009 ,Webpage, http://www.myspace.com, [7] Source Forge “MySpace Crawler”, Project-Webpage, http://sourceforge.net/projects/mscrawler, 27.01.2009 [8] Source Forge “Jericho HTML Parser”, ProjectWebpage, http://sourceforge.net/projects/jerichohtml/, 27.01.2009 [9] IMDB - Internet Movie Database, http://www.imdb.com/, 27.01.2009 Webpage, [10] Adobe Flex 3, Product-Webpage, http://www.adobe.com/products/flex/, 27.01.2009 [11] BirdEye RaVis, Project-Webpage, http://code.google.com/p/birdeye/wiki/RaVis/, 27.01.2009 [12] Flex2Treemap Library, Webpage , Josh Tynjala, http://code.google.com/p/flex2treemap/, 27.01.2009 Business Plan Team Philipp Bender (856306) Florian Wilhelm (856303) Media Management and Production Prof. Hendrik Speck WS 2008 / 09 Version 1.0 Last update: 21.10.2008 Contents I. Contact......................................................................................................................... 3 II. Copyright .................................................................................................................... 3 1. Introduction ................................................................................................................ 4 2. Executive summary..................................................................................................... 4 3. Target Group............................................................................................................... 5 4. Application Area ......................................................................................................... 5 5. Features ...................................................................................................................... 5 6. Data Procurement ...................................................................................................... 6 6.1 User related data .......................................................................................... 6 6.2 Movie related data ....................................................................................... 7 7. Risks ............................................................................................................................ 8 8. Market Research......................................................................................................... 8 9. Technology.................................................................................................................. 9 9.1 Crawler .......................................................................................................... 9 9.2 Database ....................................................................................................... 9 9.3 Development Environment .......................................................................... 9 9.4 Programming Language & Frameworks ....................................................... 9 10. Marketing ............................................................................................................... 10 11. Schedule & Finance ................................................................................................ 10 12. Finance Plan ............................................................................................................ 13 I. Contact Philipp Bender Student ID No.: eMail: 856306 [email protected] Florian Wilhelm Student ID No.: eMail: 856303 [email protected] II. Copyright The following business plan describes the project “Social Movie Map” being prepared by Philipp Bender and Florian Wilhelm. This project is part of the subject “Media Management and Production” by Prof. Hendrik Speck in the 7th semester of the study course “Digital Media” at the University of Applied Sciences Kaiserslautern, Germany. Copyright 2008 by Philipp Bender and Florian Wilhelm. All rights reserved. Permission to copy and distribute all documents and related graphics from this document is granted subject to the following: The materials provided herein are for internal, non-commercial use only, and any copies of documents contained within this server or portions thereof must include the above copyright notice and contact information. 1. Introduction Movies are considered to be an important art form, a source of popular entertainment and a powerful method for educating citizens. The visual elements of cinema give motion pictures a universal power of communication. Undoubted film is a strong medium that unite people all over the world. So why don’t use this powerful medium to connect to other people worldwide, who suits with your own taste of movies. But the problem is not to talk about movies with other people, the problem is to find them… Our application can help you to find other people interested in the same kind of movie as you are – and that in a very easy way. On the other side you can see what kind of movies other people like. You want to know what the favorite movies of Canadian female teenagers are? Or what are the most impressive movies for people between 40 and 50 years in the UK? Just find it out… 2. Executive summary Aims of the project “Social Movie Map” is a representative visualization of a collection of favorite movies, which shall be sorted by different criteria e.g. age groups, gender, countries, or movie genres. All data are based on public MySpace user profiles. Therefore a web-based application platform is planned, in which user can define specific target groups. In the shown favorite movie to the made selection, the movies will be clustered and even color-highlighted by main genre movies. Additionally the user gets further information by selecting a movie out of the shown favorite movie collection. This information can be movie length, first release date, short synopsis, director or even every other movie related information which is available to this movie. In the opposite way the user can search for a specific movie in the database and gets a visual summary of people or groups which stated this movie as their favorite movie. Also here the user gets additional information about the shown profiles like age, nickname an even hyperlinks to the profile page. 3. Target Group The product addresses itself to all people, who are interested in movies and to them who want to know more about movie viewers and their social background. Furthermore this application can be a quick and favorable alternative for expensive market research if you plan to do some movie related consumer advertising. 4. Application Area The application will be designed as Open-Source software under the GNU General Public License (GNU GPL). It will be presented as free accessible web-based application without access limitation like registration or something else. 5. Features • • • • • • Two different mode: o Search favorite movies for specific criteria like age, origin etc. o Search MySpace user profiles for primary favorite movies and secondary age, origin etc. Statistic diagrams which explain the actual shown distribution of data (age, origin …) in more detail. MySpace Top20ever favorite movie list of the actual criteria selection for quick view MySpace Top250ever favorite movie list of all MySpace profiles worldwide in direct comparison with other official Top-lists like the IMDB Top250 Additional information to selected movies or user on mouseover: o Movies runtime director cover (optional) release date external hyperlink to IMDB.com o User age nickname origin gender external hyperlink to MySpace-profile If no specific genre is selected the shown favorite movies shall be clustered by genre. • • color-highlighting for each genre (movies) and gender (user) separate animated modules for selecting the criteria 6. Data Procurement 6.1 User related data MySpace is a popular social networking website offering an interactive, usersubmitted network of friends, personal profiles, blogs, groups, photos, music and videos for teenagers and adults internationally. In September 2007 the MySpace counted approximately 200 million accounts. To get the user related data the public user profiles of the social network “MySpace” will be crawled by already existing and modified “MySpace”-Crawler. In this way more data from the profiles will be collected than obviously really needed for the planned application. Available information in these profiles is (primary relevant data are marked bold): • • General Information o nickname o gender o birth date (not visible) o age o city o federal state o country o profile-URL o last login Personal Information o short personal summary (about me) o reasons for being in MySpace o “I would become acquainted with…” o family status o sexual orientation o height o bodytyp o religion o children o education o job o income • o descent o employment information o zodiac sign o if the user drinks alcohol o if the user smokes Interests o Music o Movies o Books o TV o personal heroes 6.2 Movie related data The Internet Movie Database (IMDb.com) is an online database of information related to movies, actors, television shows, production crew personnel, and video games. IMDB Stores currently over 1 million movie titles and TV episodes. To get the movie related data the public Internet Movie Database “IMDb.com” will be crawled by already existing and modified “IMDB”-Crawler. In this way more data from the movie pages will be collected than obviously really needed for the planned application. Available information in these movie pages is (primary relevant data are marked bold): • • Overview o movie title o movie URL o directors o user rating o writers o release date o genre o tagline o plot o plot keywords o news desk o user comments o cast Additional details o alternative international movie titles (“also known as”) o parents guide • o runtime o language o country o color o sound mix o certification o filming location o MOVIEmeter o Company Fun Stuff o trivia o quotes o movie connections 7. Risks • • • • The use of different international movie titles in the worldwide MySpace user profiles. To generate a meaningful statistic the international movie titles have to be synchronized with alternative movie titles (“also known as”) in IMDB.com. Movie titles can be misspelled or named in a wrong way. E.g. by naming sequence of a movie (Die Hard I ,II ,III, IV). Therefore we will implement the “Levenshtein Algorithm” which can be found under http://www.merriampark.com/ld.htm Because of the large dimension of data there may be an expensive synchronization of favorite movie titles in MySpace with IMDB’s alternative movie titles. We don’t get the permission of IMDB to use their data, so we had to switch to another movie database. The disadvantage of that: most other movie databases a specialized in regional movies or genre movies and don’t have the spread of international movies like IMDB has. 8. Market Research In the internet there are many platforms which provide different lists of favorite movies. The most of them are click based or look about official movie theatre visitors or total sales. Others are a totally private compilation. One of the most important click-based movie lists is “IMDB Top 250” (http://www.imdb.com/chart/top). But no one of the available movie list regards the dependency of social factors. For this reason our application is a new kind of interactive movie list in which the favorite movies are listed in dependency of self defined social criteria. 9. Technology 9.1 Crawler There are already existing crawlers available for MySpace and IMDB, but which are partial out of date and have to be modified for our specific needs. For IMDB we can for example use the IMDBSearch script by Randy Gerritse (http://phpclasses.half2.nl/browse/package/1253.html). 9.2 Database As database we will use the relational database management system MySQL. The source code of the MySQL-project is available under terms of the GNU General Public License, as well as under a variety of proprietary agreements. Specific tables and data types will be determined in depending on the further crawler development. 9.3 Development Environment For developing the application we will use the powerful Open-Source-Framework Eclipse. 9.4 Programming Language & Frameworks The application itself, responsible for visualization and interpretation of data, will run in a web browser. Therefore and because of its platform independency it will be implemented in Java/J2EE. For visualization we will use the Prefuse framework. Prefuse is an extensible software framework for helping software developers create interactive information visualization applications using the Java programming language. It can be used to build standalone applications, visual components embedded in larger applications, and web applets. Prefuse intends to greatly simplify the processes of representing and efficiently handing data, mapping data to visual representations 10. Marketing The application can solicit in two ways: On the one hand to movie interested people who want to know more about movie viewers and their social background. On the other hand to small and medium businesses that plan to do some movie relates consumer advertising and use our application as a quick and favorable alternative for expensive market research. Because the web application is web-based, a well designed website is obligatory. In solicit our non-commercial application we will restrict on free advertising like entries in Wikipedia, SourceForge, bookmark-pages and so on. Furthermore we try to optimize the website for search engines. All marketing strategy is designed around a strict defined Corporate Identity which will be created in the further developing process. 11. Schedule & Finance The course “Media Management and Production“ is estimated on 7.5 ECTS-Credit Points and the last part of the project (marketing) will end at the end of January 2009. That results in spending on the project about 265 hours per team member. Based on a commercially available salary of 75 Euro/hour, you can expect an effort with a value of ca. 19.875 Euro per team member. Project-budget (2 team members): 2 x 19.875 € = 39.750 € In the MS Project-plan the available resources are spread on the single steps to finish the project. 12. Finance Plan Because this is an Open Source project it is not possible to earn money with the selling of software licenses. To refinance the investor’s expenses for the project there exists some different ways to earn money: • • • • • • • • • • • • giving seminars how to use the program and evaluate the gain data for efficient movie related consumer advertising distribute instructions manuals seminars how to use the program and evaluate the gain data for efficient movie related consumer advertising crawling service: offer to crawl the internet for the relevant data by order of the customer and edit the files for usage with the application take part in Amazon’s affiliate-program “PartnerNet” by selling DVDs via Amazon-links offering periodic compilations of the latest MySpace “Movie-Top100 ever” according to genre or country to interested movie-pages offer customization of the application chargeable support by hotline or eMail convert the web-based software for a fee to a standalone product adding additional interfaces for data import / export redesign of the application or adding individual visualization methods advertising on the website donations On the next page you can see a more detailed finance plan. Media-Management and -Production - Financeplan "Social Movie Map" by Philipp Bender & Florian Wilhelm Task Market and competition analysis setup CVS-Account Database Implementation Crawler and collecting data Implementation of the Main-Application GUI Testing Documentation Marketing Google AdWords Campaign Website Office and Office equipment Earning seminars user defiend documentation take part in Amazon’s affiliate-program “PartnerNet” offering latest MySpace “Movie-Top100 ever” adding extended functions Support Redesign, adding extended visualization Programming new Interfaces for export and import Donation Upgrade to standalone application Crawling Service Cost 2.100,00 € 225,00 € 2.700,00 € 6.900,00 € 9.900,00 € 8.850,00 € 4.500,00 € 4.500,00 € 600,00 € 600,00 € 1.200,00 € 7.400,00 € 49.475,00 € 60.000,00 € 50.000,00 € 40.000,00 € Cost 30.000,00 € Earning 20.000,00 € 10.000,00 € 0,00 € 1st year 2nd year 3rd year Expected sales: 1st year 2nd year 3rd year Cost 300,00 € 3 4 6 50,00 € 1 2 4 1.000,00 € 1 2 2 250,00 € / year 1 5 10 1.000,00 € (averaged) 1 2 1 10,00 € 9 12 20 1.000,00 € (averaged) 1 2 0 850,00 € (averaged) 2 3 4 250,00 € 1 1 2 1.000,00 € 1 2 3 1.800,00 € 2 3 4 10.840,00 € 18.870,00 € 21.800,00 € Costs 1st year 49.475,00 € 2nd year 38.635,00 € 3rd year 19.765,00 € total 3.900,00 € 350,00 € 5.000,00 € 4.000,00 € 4.000,00 € 410,00 € 3.000,00 € 7.650,00 € 1.000,00 € 6.000,00 € 16.200,00 € 51.510,00 € 4th year -2.035,00 € Anhang Philipp Bender & Florian Wilhelm Daten-DVD Die Daten-DVDs enthalten alle Dokumente & Projekt-Dateien zu “Social Movie Map“: • • • • • • • • • • Original Datenbank Dump der gecrawlten MySpace-Rohdaten aufbereiteter Datenbank Dump der für „Social Movie Map“ relevanten Daten DDLs zum Einrichten der Datenbank kompletter Source Code des „MySpace Crawler“ Kompletter Source Code der Applikation “Social Movie Map” JavaDocs zu “MySpace Crawler” & “Social Movie Map” Installations-Anleitung vollständige Dokumentation als PDF kurzes Einführungs-Video über die Funktionen von Social Movie Map alle Dateien der Homepage Social Movie Map – Anhang 93