Institut für Informatik MediaQ: Practical Seminar on Big Data for Social Media Hauptseminar WS 2014/15 Ansprechpartner: Dr. Matthias Renz Dr. Tobias Emrich Johannes Niedermayer Ablauf Heute • Was ist MediaQ? • Verwaltete Daten • Ziel des Seminars • Ablauf des Seminars • Einteilung der Gruppen MediaQ Was ist MediaQ? • Media Management Framework der University of Southern California (USC) • Sammeln, organisieren, teilen, suchen und verwalten von Bildern und Videos • Mobile App für Android und iPhone • Homepage: http://mediaq.usc.edu MediaQ Was ist der Unterschied zu YouTube? • Hochgeladene Videos und Bilder sind immer mit Position und Blickrichtung als Metadaten versehen • Suche von Medien anhand von Position und Blickrichtung möglich • Killerapplikation: Spatial Crowdsourcing MediaQ Crowdsourcing Auslagerung von Teilaufgaben (Tasks) durch einen Auftraggeber (Requester) an eine Gruppe freiwilliger Nutzer (Worker) MediaQ Anhai Doan , Raghu Ramakrishnan , Alon Y. Halevy. Crowdsourcing systems on the World-Wide Web. Communications of the ACM, v.54 n.4, April 2011 MediaQ Spatial Crowdsourcing (…in MediaQ) Spatial Task: „Mache ein Video vom Verkehr in der Overland Avenue“ Erstellen von Spatial Tasks durch den Requester Erledigen von Spatial Tasks Mittels einer mobilen App MediaQ MediaQ Server • • Webinterface • http://mediaq.dbs.ifi.lmu.de/MediaQ_MVC_V2/ • Anmeldung erforderlich Datenbank-Backend • Host: mediaq.dbs.ifi.lmu.de • Verwaltung von Video-, Benutzer- und Task- und Workerinformationen • Zugangsdaten • Benutzername: student • Passwort: tneduts MediaQ Datenbankzugriff über mysql • Login (Shell): mysql -h mediaq.dbs.ifi.lmu.de -u student -p MediaQ_V2 • Tabellen anzeigen: SHOW TABLES; • Informationen über Tabelle anzeigen: DESCRIBE <TABLENAME> MediaQ Beispiel: SHOW TABLES mysql> SHOW TABLES; +-----------------------+ | Tables_in_MediaQ_V2 | +-----------------------+ | FRIENDSHIP | | GEOCROWD_STATS | | GROUPS | | INDOOR_VIDEO_METADATA | | REGIONFOLLOWING | | TASKS | | TASKS_INQUIRIES | | TEXT_INFO | | TRANSACTION | | USERGROUPS | | USERS | | USERS_PROFILES | | USERS_SESSIONS | | VIDEO_INFO | | VIDEO_METADATA | | VIDEO_USER | | WORKERS_ASSIGNMENTS | | WORKERS_RESPONSE | +-----------------------+ MediaQ Datenbank Tabelle VIDEO_METADATA Video ID Koordinaten FrameNr Blick-Kegel Zeitstempel (in ms) Keywords (optional) MediaQ Blickkegel ThetaX ThetaZ oben ThetaY N W O rechts links S unten alpha (Plat, Plng) R (radius) MediaQ Datenbank Tabelle USERS_PROFILE Tabelle VIDEO_USER MediaQ Datenbankzugriff von Java aus • Download des JDBC Treibers für MySQL (Jar-Datei, Plattformunabhängig): http://dev.mysql.com/downloads/connector/j • Z.B. „mysql-connector-java-5.1.33-bin.jar“ als Library ins Projekt einbinden • Möglich • aus dem Cip-Pool • aus dem MWN (mittles VPN Client) MediaQ import import import import java.sql.Connection; java.sql.DriverManager; java.sql.ResultSet; java.sql.Statement; Datenbankzugriff von Java aus public class MySqlTest { public static void main(String[] args) throws Exception { Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql://mediaq.dbs.ifi.lmu.de:3306/MediaQ_V2?“ +“user=student&password=tneduts"); Statement stmt = conn.createStatement(); ResultSet rset = stmt.executeQuery("select * from VIDEO_METADATA"); while (rset.next()){ String s = rset.getString("VideoID") + ": " + rset.getInt("FovNum") + " (" + rset.getDouble("Plat") + ", " + rset.getDouble("Plng") + ")"; System.out.println(s); } rset.close(); stmt.close(); conn.close(); } } Ziele Weitere Infos • App : • Android: https://dl.dropboxusercontent.com/u/29802060/MediaQ/MediaQLMU%20Munich.apk • iOS: per E-Mail (Anfrage schicken) • Tutorials: http://mediaq.usc.edu/MediaQ_Info/ (Menüpunkt „More“) • Zugriff auf die Videodateien: http://mediaq.dbs.ifi.lmu.de/MediaQ_MVC_V2/video_content/ Ziele Ziele des Seminars • Einarbeiten in die Themengebiete • (Spatial-) Crowdsourcing • Räumliche/Raumzeitliche Anfragebearbeitung • Kreative Auseinandersetzung mit den gegebenen Daten • Neue Applikationen oder Anfragen entwerfen • Ansprechende Visualisierung • Umsetzung der Ideen • Implementierung • Präsentation Ziele Mögliche Anfragen Auf welchen anderen Videos bin ich zu sehen? Welche anderen Benutzer sind auf einem Video zu sehen? Gib mir nur Videos auf denen ich mindestens 5 Sekunden zu sehen bin? Videos wo ich zu einem fixen Zeitpunkt von X verschiedenen Blickwinkeln zu sehen bin? ? Weitere Ideen sind Willkommen! Ablauf des Seminars Ablauf des Seminars • • • 1. Termin (Heute) • Vorstellung der Thematik • Einteilung der Gruppen 2. Termin (Dezember) • Präsentation (Theoretischer Teil) • Gemeinsame Datensammlung 3. Termin (Anfang Februar) • Präsentation (Praktischer Teil) Ablauf: Theoretischer Teil Ablauf: Theoretischer Teil • Einarbeitung in ein festgelegtes Themengebiet anhand eines vorgegebenen Papers • Anpassung der Inhalte des Papers auf MediaQ • Entwicklung von Applikationsideen anhand der Publikation • Präsentation der Ergebnisse im Seminar (~30 Minuten) Ablauf: Praktischer Teil Ablauf: Praktischer Teil • Einarbeitung in MediaQ • Entwicklung einer (Web-)Applikation, die eine der angesprochenen (oder selbst entwickelte) Anfragen realisiert • Dokumentation der Applikation, sowie Beschreibung der Softwarearchitektur und Algorithmen in einem Webdokument • Präsentation der Applikation und der Umsetzung im Seminar Ziele Anforderungen 1. Einarbeitung in ein Themengebiet anhand eines vorgegebenen Papers und Vortrag zu diesem Themengebiet 2. Aktive Teilnahme an der Datensammlung 3. Entwicklung und Implementierung einer Applikation, die das MediaQFramework nutzt 4. Dokumentation und Veröffentlichung der Applikation in Form eines Webauftritts 5. Präsentation der Applikation im Seminar 6. [Bug-Reporting] Es wird in Gruppen von 3-4 Personen gearbeitet. Ziele Gruppeneinteilung Gruppeneinteilung Vortragsthemen (1) Crowdsourcing 1. Georgios Chatzimilioudis, Andreas Konstantinidis, Christos Laoudias, Demetrios Zeinalipour-Yazti. Crowdsourcing with Smartphones. In Proc. IEEE(2012) 2. Leyla Kazemi, Cyrus Shahabi. GeoCrowd: Enabling Query Answering with Spatial Crowdsourcing. In Proc. GIS (2012). 3. Florian Alt, Alireza Sahami Shirazi, Albrecht Schmidt, Urs Kramer, Zahid Nawaz. Location-based Crowdsourcing: Extending Crowdsourcing to the Real World. In Proc. NordiCHI (2010) Gruppeneinteilung Vortragsthemen (2) Join Processing 4. Petko Bakalov, Vassilis J. Tsotras. Continuous Spatiotemporal Trajectory Joins. In Proc. GSN (2006). 5. Kexin Xie, Ke Deng, Xiaofang Zhou. From Trajectories to Activities: A Spatio-Temporal Join Approach. In Proc. LBSN (2009). 6. Gisli Hjaltason, Hanan Samet. Incremental distance join algorithms for spatial databases. In Proc. SIGMOD (1998) 7. Chen, Yun, and Jignesh M. Patel. Design and evaluation of trajectory join algorithms. In Proc. GIS (2009). Gruppeneinteilung Vortragsthemen (3) Indexing 8. Norbert Beckmann, Hans-Peter Kriegel Ralf Schneider, Bernhard Seeger. The R*-tree: An Efficient and Robust Access Method for Points and Rectangles. In Proc. SIGMOD (1990). 9. Kostas Patroumpas, Timos Sellis. Monitoring Orientation of Moving Objects around Focal Points. In Proc. GIS (2009). Query Processing 10. Panfeng Zhou, Donghui Zhang, Betty Salzberg, Gene Cooperman, George Kollios. Close Pair Queries in Moving Object Databases. In Proc. GIS (2005). 11. Hoyoung Jeung, Man Lung Yiu, Yiaofang Zhou, Christian S. Jensen, Heng Tao Shen. Discovery of Convoys in Trajectory Databases. In Proc. VLDB (2008). Hausaufgaben bis zum nächsten Mal… • Vertraut machen mit den Daten und Plattform • MediaQ Konto anlegen und Anwendung benutzen • Testdaten erzeugen: Pro Teilnehmer sind mindestens 5 Videos à 1 min aufzunehmen und hochzuladen (public). Teilweise sollten auch andere filmende Gruppenmitglieder aufgenommen werden. • (Java/PHP/… Programm schreiben mit einfachen LeseAnfragen auf die Datenbank • Präsentation Erstellen (Präsentationslänge 20 Min.) • Inhalt des Papers (ca. 10 min) • Kreativer Teil (ca. 10 min) • Auswahl einer der o.g. Anfragen oder Entwicklung einer neuen interessanten Anfrage auf den Daten von MediaQ • Anwendung und ggfs. Anpassung der Techniken des Papers auf die ausgewählte Anfrage • Optional: Weitere Anwendungsideen unabhängig vom Paper