- 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

Documentos relacionados