WEBVTT 00:00:00.000 --> 00:00:19.527 Musik 00:00:19.527 --> 00:00:23.490 Herald: Ja, herzlich willkommen zum nächsten Talk in der Wikipaka WG. Hier 00:00:23.490 --> 00:00:37.284 zeigen uns Simon und P3nny das Projekt Datenguide. Viel Spaß! 00:00:37.284 --> 00:00:43.950 Simon: Hallo. Ok. Hi zusammen. Ja, wie gesagt, P3nny und ich, wir möchten über 00:00:43.950 --> 00:00:47.720 einen Open Data Projekt sprechen, an dem wir arbeiten. Das Projekt heißt 00:00:47.720 --> 00:00:56.170 Datenguide. Findet ihr unter datengui.de. Und unsere Mission ist einfach gesagt, 00:00:56.170 --> 00:01:04.869 Statistiken zugänglicher zu machen für alle. Wenn wir über Statistiken reden, 00:01:04.869 --> 00:01:09.560 dann reden wir über amtliche Statistik. Außerdem werden wir gefördert vom MIZ in 00:01:09.560 --> 00:01:13.580 Babelsberg von einem Programm, das heißt Prototype Fund. Das sind ausgezeichnete 00:01:13.580 --> 00:01:19.260 Programme. Wenn Ihr Funding Möglichkeiten sucht für eure Open Source Projekte, kann 00:01:19.260 --> 00:01:25.100 ich nur empfehlen, euch das mal genauer anzugucken. Unser Sourcecode ist frei auf 00:01:25.100 --> 00:01:30.820 GitHub unter Datenguide. Und wenn wir über Statistiken reden, dann meinen wir 00:01:30.820 --> 00:01:35.850 amtliche Statistik. Amtliche Statistik ist einfach gesagt alle Statistiken zu 00:01:35.850 --> 00:01:39.341 Gesellschaft, Umwelt und Wirtschaft. Und das sind Statistiken, die von den 00:01:39.341 --> 00:01:47.030 Statistischen Ämtern erstellt werden. Und das ist, was die Statistiker deskriptive 00:01:47.030 --> 00:01:53.369 Statistik nennen. Das heißt, es gibt da keine Interpretation, keine Prognosen, 00:01:53.369 --> 00:01:56.619 sondern es ist einfach nur einfache Statistik, die beschreibt, wie irgendwas 00:01:56.619 --> 00:02:04.909 ist. Paar Beispiele sind z.B. Zahlen über Schulen. Also Zahlen zu Schülern und 00:02:04.909 --> 00:02:11.680 Absolventen nach Schulart für eure Stadt z.B. Oder Zahlen zur Abfallentsorgung. 00:02:11.680 --> 00:02:15.500 Also wie viel Hausmüll gibt es in eurer Stadt? Wieviel wird recycelt in eurer 00:02:15.500 --> 00:02:19.900 Stadt? Und Zahlen zu Migration und Einbürgerung, z.B.: Wie viele Menschen 00:02:19.900 --> 00:02:25.370 werden in eurer Stadt eingebürgert? Wie alt sind die? Wie alt waren die? Oder seit 00:02:25.370 --> 00:02:29.590 wie vielen Jahren sind die in Deutschland? Das sind jetzt nur drei Beispiele. Der 00:02:29.590 --> 00:02:37.370 Datensatz oder der Datenpool, mit dem wir uns jetzt im Moment auseinandersetzen, 00:02:37.370 --> 00:02:41.790 sind die Daten von regionalstatistik.de. Was das bedeutet, werde ich nachher 00:02:41.790 --> 00:02:47.500 nochmal ein bisschen erklären. Und da reden wir über 450 Datensätze zu allen 00:02:47.500 --> 00:02:53.280 möglichen Themen. Das heißt, diese drei Sachen sind einfach nur Beispiele. Wenn 00:02:53.280 --> 00:02:57.000 man sich jetzt so anguckt, was die Statistischen Ämter sagen über sich 00:02:57.000 --> 00:03:01.480 selber, dann sagen die, sie sind objektiv unabhängig und machen qualitativ 00:03:01.480 --> 00:03:07.340 hochwertige Statistik. Da gehe ich auch mit, ja. Und dann sagen die noch, sie 00:03:07.340 --> 00:03:11.379 machen es für Politik, Verwaltung, Wirtschaft sowie für Bürgerinnen und 00:03:11.379 --> 00:03:15.940 Bürger. Und wenn man sich anguckt, wie die amtliche Statistik im Moment 00:03:15.940 --> 00:03:22.400 veröffentlicht wird und an wen die so... für wen diese aufbereitet wird, dann gehe 00:03:22.400 --> 00:03:27.420 ich mit, dass das Ziel Politik und Verwaltung ist - Wirtschaft vermutlich auch. 00:03:27.420 --> 00:03:30.700 Bürgerinnen und Bürger, da gibt es ein gewisses Defizit und das ist eben das 00:03:30.700 --> 00:03:37.990 Thema, das wir uns anschauen. Aber erst einmal so ein kleiner Exkurs. Ja, erstmal, 00:03:37.990 --> 00:03:41.850 wo kommen überhaupt diese Daten her? Und ihr habt vielleicht vor kurzem diese 00:03:41.850 --> 00:03:47.870 Geschichte gehört: Das ist die Geschichte einer Volkszählung. Ja, also vor ungefähr 00:03:47.870 --> 00:03:53.630 2000 Jahren hat sich Kaiser Augustus, Herrscher des Römischen Reiches, überlegt, 00:03:53.630 --> 00:04:00.069 dass er bessere Daten braucht über die Bürger in seinem Reich. Also hat er ein 00:04:00.069 --> 00:04:05.480 Zensus angeordnet. Und im Rahmen von diesem Zensus sollte jeder Bewohner des 00:04:05.480 --> 00:04:11.560 Römischen Reichs zu seiner Heimatstadt reisen und sich dort zählen lassen. Und in 00:04:11.560 --> 00:04:14.530 dem Prozess wurde ein kleines Kind geboren. Aber am Ende ist es immer noch 00:04:14.530 --> 00:04:23.470 die Geschichte von einer Volkszählung und ... zum Zwecke der Steuererhebung, genau. 00:04:23.470 --> 00:04:27.990 Also die Römer hatten relativ großen militärischen Komplex, den sie finanzieren 00:04:27.990 --> 00:04:31.950 mussten und deshalb mussten sie wissen, wo, wie viele Menschen leben, damit sie 00:04:31.950 --> 00:04:37.020 wissen, wie viele Steuern sie erheben können. Und genauso ist es bis heute. 00:04:37.020 --> 00:04:44.170 Überall, wo es einen Staat gibt oder eine Verwaltung, braucht die Information 00:04:44.170 --> 00:04:48.800 darüber, wie viele Menschen irgendwo leben, wie viele Kinder zur Schule gehen, 00:04:48.800 --> 00:04:53.660 wie viele Kinder vielleicht demnächst zur Schule gehen. Und deswegen wird relativ 00:04:53.660 --> 00:04:59.590 viel Aufwand betrieben, Daten zu erfassen über uns all. In eigentlich allen 00:04:59.590 --> 00:05:05.190 Industrienationen, sag ich mal, haben wir sowas wie ein 10jährigen Zensus. Und das 00:05:05.190 --> 00:05:08.720 ist eigentlich so ähnlich wie die Geschichte von Kaiser Augustus vorher. Das 00:05:08.720 --> 00:05:12.720 heißt, alle zehn Jahre werden in irgendeiner Form alle Menschen gezählt, 00:05:12.720 --> 00:05:16.870 die in einem Land leben. Heute reisen wir nicht mehr an unseren Geburtsort, sondern 00:05:16.870 --> 00:05:21.240 es gibt Leute, die normalerweise von Tür zu Tür gehen, bei euch klingeln und euch 00:05:21.240 --> 00:05:28.690 dann Fragen stellen. In Deutschland ist das ein bisschen anders. Hier gab es einen 00:05:28.690 --> 00:05:34.919 letzten Zensus 2011 und davor gab's eine Weile keinen Zensus. Hat mit unserer 00:05:34.919 --> 00:05:38.630 Geschichte zu tun und auch mit Protesten, die es gab, in der Vergangenheit. Aber es 00:05:38.630 --> 00:05:41.169 gibt auch verschiedene andere Möglichkeiten, wie eigentlich immer Daten 00:05:41.169 --> 00:05:46.310 erfasst wurden. Außer der richtigen Volkszählung, also dem Makrozensus, gibt's 00:05:46.310 --> 00:05:49.680 einen Mikrozensus. Und beim Mikrozensus wird eben einfach eine Stichprobe 00:05:49.680 --> 00:05:53.160 genommen. Das heißt, eine Handvoll Leute wird genauer betrachtet und davon 00:05:53.160 --> 00:05:58.290 ausgehend wird dann irgendwas hochgerechnet. Und außerdem gibt es etwas, 00:05:58.290 --> 00:06:02.880 was die Statistiker Sekundärstatistik nennen. Das heißt, Daten, die irgendwo an 00:06:02.880 --> 00:06:07.470 anderer Stelle erfasst werden, werden verarbeitet. Für die Statistik, also in 00:06:07.470 --> 00:06:10.940 Deutschland werden irgendwelche Zahlen, z.B. über Landwirthschaft, erfasst, bei 00:06:10.940 --> 00:06:14.810 irgendwelchen Landwirtschaftsämtern. Und diese Zahlen werden dann an die 00:06:14.810 --> 00:06:17.910 statistischen Ämter weitergegeben und dort werden dann eben Statistiken draus 00:06:17.910 --> 00:06:20.140 gemacht, die dann auch von den Statistischen Ämtern veröffentlicht 00:06:20.140 --> 00:06:25.750 werden. Außerdem gibt's bei uns und vielen anderen, ich sag mal so europäischen und 00:06:25.750 --> 00:06:30.830 nordischen Ländern gibt's einen Registerzensus. Und das heißt, die Zahlen, 00:06:30.830 --> 00:06:34.759 die es über euch schon gibt, z.B. im Bevölkerungsregister - weil ihr habt euch 00:06:34.759 --> 00:06:40.120 ja alle ordentlich angemeldet - die Zahlen, die werden dann wiederum verwendet 00:06:40.120 --> 00:06:46.140 und an die statistischen Ämter weitergegeben. Ja, ihr könnt euch ja 00:06:46.140 --> 00:06:50.930 vorstellen, das sind relativ viele Daten. Das sind persönliche Daten über uns alle 00:06:50.930 --> 00:06:58.919 und deswegen wird in Deutschland das Statistikgeheimnis sehr hochgehalten. Also 00:06:58.919 --> 00:07:02.800 das ist tatsächlich ein Begriff aus der amtlichen Statistik. Das bedeutet, dass 00:07:02.800 --> 00:07:07.880 Sie sich extrem viel Mühe geben, Daten zu anonymisieren, die werden in der... also 00:07:07.880 --> 00:07:10.970 Zahlen, die in einem Rahmen vom Zensus erfasst werden, werden normalerweise schon 00:07:10.970 --> 00:07:14.509 anonymisiert, wenn sie erhoben werden. Das heißt, da steht nie irgendwie euer Name 00:07:14.509 --> 00:07:20.259 drauf. Und es werden nur aggregierte Zahlen veröffentlicht. Das heißt, in 00:07:20.259 --> 00:07:24.000 diesen Datensätzen, von denen wir reden, da steht normalerweise drin, wie viel es 00:07:24.000 --> 00:07:29.090 von irgendetwas gibt und nicht, was genau es gibt. Das ist auch ein wichtiger Punkt. 00:07:29.090 --> 00:07:33.610 Außerdem dürfen Menschen und Unternehmen nicht nachträglich identifizierbar sein. 00:07:33.610 --> 00:07:40.660 Und das ist so ein bisschen kontroverses Thema. Und da wird auch nächstes Jahr ein 00:07:40.660 --> 00:07:45.820 bisschen was passieren. Weil gerade für Journalistinnen und Journalisten ist es 00:07:45.820 --> 00:07:51.250 halt auch wichtig, Daten über Unternehmen zu kriegen. Und unsere Hauptzielgruppe im 00:07:51.250 --> 00:07:56.530 Moment ist Journalismus. Und die erste Frage, die uns Leute stellen, ist 00:07:56.530 --> 00:08:00.340 normalerweise: Ja, kann ich jetzt hier Bayer in meiner Stadt genauer 00:08:00.340 --> 00:08:05.340 identifizieren und sehen, was sie machen? Und die Antwort ist nein. Also wenn es 00:08:05.340 --> 00:08:09.280 irgendwo in einer Stadt zum Beispiel nur einen Landwirtschaftsbetrieb gibt, dann 00:08:09.280 --> 00:08:12.869 werdet ihr über diese Stadt keine Zahlen zur Landwirtschaft kriegen, weil 00:08:12.869 --> 00:08:17.639 Statistikgeheimnis. Das ist auch ein wichtiger Aspekt, spielt aber bei vielen 00:08:17.639 --> 00:08:23.509 Zahlen auch keine Rolle, die tatsächlich da drin sind. Ja, jetzt habe ich gerade 00:08:23.509 --> 00:08:28.669 schon gesagt: Volkszählung ist ein kontroverses Thema. Und amtliche Statistik 00:08:28.669 --> 00:08:34.019 insgesamt auch, so gesehen. Wenn ihr, wie ich, noch irgendwie die 80er mitgekriegt 00:08:34.019 --> 00:08:37.019 habt, dann könnt ihr euch vielleicht an solche Graffitis erinnern, weil in den 00:08:37.019 --> 00:08:42.129 80ern gab es tatsächlich einen massiven Protest und 81 wurde der Zensus verhindert 00:08:42.129 --> 00:08:48.611 in der BRD und 87 hat er dann nur sehr eingeschränkt stattgefunden. Und die 00:08:48.611 --> 00:08:55.069 Proteste und die Verfassungsklagen, die es damals gab, die sind auch quasi in 00:08:55.069 --> 00:08:58.839 wichtiger... oder eigentlich die Wurzel auch dieser Idee der informationellen 00:08:58.839 --> 00:09:02.759 Selbstbestimmung, die wir heute haben. Also quasi diese Idee von Datenschutz, mit 00:09:02.759 --> 00:09:05.199 der wir hier rumlaufen und sagen, dass wir selber die Kontrolle über unsere 00:09:05.199 --> 00:09:09.489 persönlichen Daten haben, die sind konkret darauf zurückzuführen. Deswegen ist es auf 00:09:09.489 --> 00:09:16.800 jeden Fall auch eine wichtige Diskussion. Für unser Projekt spielt das keine Rolle. 00:09:16.800 --> 00:09:20.939 Wir sehen es so: Die Daten sind jetzt da und die wurden von euch erfasst mit euren 00:09:20.939 --> 00:09:24.779 Steuergeldern. Und es ist wichtig, dass ihr Zugriff auf diese Daten habt. Und 00:09:24.779 --> 00:09:29.389 deswegen machen wir dieses Projekt. Wenn ihr jetzt mit diesen Zahlen arbeiten 00:09:29.389 --> 00:09:34.699 wollt, dann gibt's eine gute und eine schlechte Nachricht. Die gute Nachricht 00:09:34.699 --> 00:09:39.910 ist: Das ist freies Wissen. Also Open Data. Es gibt die Daten-Lizenz 00:09:39.910 --> 00:09:45.569 Deutschland, unter der diese Daten veröffentlicht werden, die erfordert, wenn 00:09:45.569 --> 00:09:48.470 ihr die Daten quasi verwendet und wiederveröffentlicht, dass ihr die Quelle 00:09:48.470 --> 00:09:51.680 nennt, dass in diesem Fall normalerweise die Statistischen Ämter, dass ihr ein 00:09:51.680 --> 00:09:55.779 Verweis auf die Lizenz macht und ein Verweis auf den Datensatz - also 00:09:55.779 --> 00:09:59.680 normalerweise die URL angebt, von wo ihr das heruntergeladen habt. Das - also wenn 00:09:59.680 --> 00:10:02.880 ihr euch ein bisschen mit offenen Lizenzen befasst - das ist so ähnlich wie eine 00:10:02.880 --> 00:10:10.939 Creative Commons CC-BY Lizenz. Das heißt, je nach Anwendungsfall ist es ein bisschen 00:10:10.939 --> 00:10:13.639 problematisch. Also ich habe gestern gelernt, dass man die Daten z.B. nicht in 00:10:13.639 --> 00:10:18.049 Wikidata einspeisen kann, weil es keine CC0 Lizenz ist. Und für viele Anwendungen 00:10:18.049 --> 00:10:24.310 mit Daten wäre natürlich eine CC0 Lizenz besser. Aber das ist nicht der Punkt, wo 00:10:24.310 --> 00:10:29.680 wir ansetzen können. Also wir gucken, dass die Daten möglichst einfach verwendbar 00:10:29.680 --> 00:10:33.959 sind. Und ihr müsst dann eben beachten, dass sie unter der Datenlizenz Deutschland 00:10:33.959 --> 00:10:39.540 veröffentlicht werden und die dementsprechend angeben. Ja, jetzt gibt es 00:10:39.540 --> 00:10:42.829 aber auch eine schlechte Nachricht und die ist, dass mit diesen Daten zu arbeiten gar 00:10:42.829 --> 00:10:52.369 nicht so einfach ist. Und da übergebe ich jetzt an P3nny. 00:10:52.369 --> 00:10:56.410 P3nny: Ich darf aus dem Leidensdruck des Journalisten berichten. Also es ist nicht 00:10:56.410 --> 00:10:59.839 so, dass es komplettes Neuland wäre, dass es keine offenen Datenportale gäbe. Es 00:10:59.839 --> 00:11:04.689 gibt relativ viele davon. Sie sind alle schön und schön unterschiedlich, alle 00:11:04.689 --> 00:11:10.239 lustig aufgebaut. Zur Übersicht: Es gibt das Statistische Bundesamt, dann gibt es 00:11:10.239 --> 00:11:14.209 Destatis, es gibt 14 statistische Landesämter und da drunter Derby Dragons. 00:11:14.209 --> 00:11:18.149 Also es gibt noch Kommunalstatistik, städtisch statistische Ämter und alle 00:11:18.149 --> 00:11:24.439 haben irgendwie ihre eigenen kleinen Dinge - und da durchzusteigen ist auch immer 00:11:24.439 --> 00:11:30.019 spannend, weil sie meistens quasi diese Verwaltungsakte abbilden. Dann gibt's so 00:11:30.019 --> 00:11:34.149 einzelne Anwendungen, wo Dinge ganz besonders gut aufbereitet werden. Aber oft 00:11:34.149 --> 00:11:37.410 ist es so, hier Zensus 2011 ist für Journalisten meistens schon nicht mehr so 00:11:37.410 --> 00:11:44.249 richtig spannend, weil ist ja schon lang vorbei. Oder es gibt solche schönen 00:11:44.249 --> 00:11:49.500 Beispiele, wo sich Menschen in PDFs austoben und wundervolle Torten, Grafiken 00:11:49.500 --> 00:11:54.360 und 3D Diagramme bauen, ich aber mit den Daten wenig anfangen kann. Also wenn ich 00:11:54.360 --> 00:11:57.239 als Journalistin jetzt sagen würde, die sozialversicherungspflichtig 00:11:57.239 --> 00:12:01.520 Beschäftigten, das möchte ich in meiner Veröffentlichung zitieren und möchte 00:12:01.520 --> 00:12:06.790 einfach nur auf meiner Internetseite dieses Diagramm auch mit zeigen, dann muss 00:12:06.790 --> 00:12:10.798 ich ja da hinschreiben, muss die richtige Stelle finden, die dieses PDF erstellt hat 00:12:10.798 --> 00:12:14.410 und muss die darum bitten, mir die Daten zu schicken. Und es ist schon passiert, 00:12:14.410 --> 00:12:19.529 dass sie mir die dann quasi in der E-Mail... also quasi im E-Mail Text habe 00:12:19.529 --> 00:12:24.449 ich dann Daten bekommen - auch nicht so richtig das Format, mit dem wir was 00:12:24.449 --> 00:12:29.219 anfangen können. Unser Lieblingsportal hat Simon vorhin schon gesagt, das ist 00:12:29.219 --> 00:12:35.519 regionalstatistik.de. Das gibt es. Da finden sich auch tatsächlich auf der 00:12:35.519 --> 00:12:40.649 regionalen Ebene - also Bundesländer und drunter, Regierungsbezirke, 00:12:40.649 --> 00:12:44.470 Gemeindebezirke - finden sich die Daten und die dann auch flächendeckend für ganz 00:12:44.470 --> 00:12:47.949 Deutschland oder für ein ganzes Bundesland. Wenn ich da aber dran kommen 00:12:47.949 --> 00:12:52.429 möchte, dann habe ich Schritt 1: Ich gucke mir den Datenkatalog an. Ich gucke, was da 00:12:52.429 --> 00:12:56.641 drin ist. Suche mich irgendwie da durch. Muss halt deren Logik verstehen, wie sie 00:12:56.641 --> 00:13:00.689 das mal angelegt haben. Finde dann irgendwelche Tabellen meistens - auch so: 00:13:00.689 --> 00:13:04.119 Was unterscheidet jetzt die regionale tiefe Kreise von den regionalen Ebenen, 00:13:04.119 --> 00:13:08.170 und so. Das ist viel, was ich verstehen muss. Dann gibt's noch so eine Variablen- 00:13:08.170 --> 00:13:13.749 Auswahl. Dann muss ich das genauer spezifizieren. Dann kann ich endlich diese 00:13:13.749 --> 00:13:17.170 Tabelle abrufen und kriege dann den Hinweis: Diese können Sie jetzt nicht 00:13:17.170 --> 00:13:20.101 abrufen. Sie wollen zu viele Daten abrufen. Sie müssen sich erst mal Konto 00:13:20.101 --> 00:13:23.809 erstellen. Dann erstelle ich mir dieses Konto. Dann mache ich diesen Werteabruf, 00:13:23.809 --> 00:13:30.790 dann warte ich und irgendwann landet eine Tabelle in meinem Postfach und ich bekomme 00:13:30.790 --> 00:13:36.758 eine Tabelle, die sehr gut dafür geeignet ist, in A4 ausgedruckt zu werden. Das 00:13:36.758 --> 00:13:40.579 heißt, sie hat, das ist mit das Allerschlimmste, sie hat diese komischen 00:13:40.579 --> 00:13:46.179 Header, also so verschachtelte Dinger, wo ich dann quasi, wenn ich als Journalistin 00:13:46.179 --> 00:13:48.949 - also entweder fange ich als Journalistin an und versuche, das irgendwie in Excel 00:13:48.949 --> 00:13:51.509 dann zu bereinigen und so und auch die Journalisten merken langsam, dass das 00:13:51.509 --> 00:13:56.570 nicht der beste Weg ist, alle drei Monate bei - was weiß ich, Quartals Statistiken - 00:13:56.570 --> 00:13:58.609 das immer wieder in Excel machen zu müssen. Das heißt, ich als Journalistin 00:13:58.609 --> 00:14:02.779 geh hin, mache eine Python für Dummies Kurs oder sowas und möchte dann mal was 00:14:02.779 --> 00:14:07.810 mit offenen Daten machen. Treffe dann auf diese Daten, lade mir die runter als CSV- 00:14:07.810 --> 00:14:11.439 Datei und dann kriege ich schon den ersten Error, weil das sind keine CSV Dateien, 00:14:11.439 --> 00:14:14.829 sondern Semikolon separierte Werte, weil Deutsch. Wir haben also einen 1000er 00:14:14.829 --> 00:14:18.610 Trennzeichen, das ein Komma ist. Wenn ich dieses Problem gelöst habe, laufe ich 00:14:18.610 --> 00:14:24.399 gegen die... Also ist das keine UTF 8 sondern eine ISO88591 Kodierung. Das 00:14:24.399 --> 00:14:28.839 heißt, erstmal sind alle Ös und Äs kaputt. Dann muss ich noch das Problem mit dem 00:14:28.839 --> 00:14:33.669 Header lösen. Das heißt, meistens muss ich den Header ganz rausschmeißen und einmal 00:14:33.669 --> 00:14:37.600 die Zeilen irgendwie selber benennen, was auch eine Fehlerquelle ist. Und dann, wenn 00:14:37.600 --> 00:14:42.250 ich jetzt, sagen wir mal, die unter 3 Betreuungskinder auf eine Karte mappen 00:14:42.250 --> 00:14:46.079 wollte, dass ich so eine Karte habe, dass da wo die meisten u3 betreut sind - 00:14:46.079 --> 00:14:49.410 eigentlich will ich ja wahrscheinlich auch den Anteil an der Bevölkerung haben, 00:14:49.410 --> 00:14:52.470 Bevölkerung gesamt ist da nicht drin, die muss ich mir dann von woanders her holen, 00:14:52.470 --> 00:14:57.579 männlich-weiblich zusammenrechnen, den Anteil ausrechnen - es ist ein relativ 00:14:57.579 --> 00:15:03.109 aufwandreicher Prozess, den ich da machen muss. Ach so genau. Und hier sind auch 00:15:03.109 --> 00:15:06.369 tatsächlich nicht nur die Gemeindeebenen drin, sondern meistens auch das Bundesland 00:15:06.369 --> 00:15:09.790 und die darüber liegenden Ebenen, d.h. die muss ich auch erstmal wieder 00:15:09.790 --> 00:15:13.519 rausschmeißen, damit ich nur meine Gemeinden habe und die dann auf die Karte 00:15:13.519 --> 00:15:18.579 bringen kann. Und manchmal sagen die auch: Wir nehmen euch Arbeit ab und machen 00:15:18.579 --> 00:15:22.939 selber Visualisierungen. Da kommen dann manchmal solche Dinge bei raus. Wir haben 00:15:22.939 --> 00:15:26.730 noch nicht ganz rausgekriegt, was uns das sagen soll. Also das funktioniert noch 00:15:26.730 --> 00:15:45.659 nicht so richtig gut. Und da kommt der Datenguide ins Spiel und löst dieses Problem. 00:15:45.659 --> 00:15:48.719 Simon: Genau. Was wir machen, ist: Wir 00:15:48.719 --> 00:15:52.069 lösen dieses Problem für euch. Also dieses Problem, dass Patricia jetzt beschrieben 00:15:52.069 --> 00:15:57.889 hat, hoffentlich, perspektivisch. Was wir machen, ist, wir importieren quasi alle 00:15:57.889 --> 00:16:03.499 Daten und alle Daten, die jetzt in diesem Fall in dem regionalstatistik.de Portal 00:16:03.499 --> 00:16:11.919 sind. Und dann bieten wir sie über eine moderne JSON-API an und bauen dann quasi 00:16:11.919 --> 00:16:15.050 ein - ich sag mal ein alternatives Daten Portal. Das ist eine Website, die bauen 00:16:15.050 --> 00:16:25.470 wir dann quasi on top auf diese Daten- Schnittstelle und diese Plattform, die sieht 00:16:25.470 --> 00:16:30.859 ungefähr so aus. Ich kann euch das auch live zeigen. Ich habe das jetzt nur glaube 00:16:30.859 --> 00:16:37.639 ich nicht offen und wir sind noch nicht online. Es ist alles so ein bisschen frühe 00:16:37.639 --> 00:16:45.169 Alpha. Wir sind so ein bisschen online, aber mit kryptischer URL in so einem 00:16:45.169 --> 00:17:00.357 Preview irgendwo. Muss ich mir grad mal angucken. 00:17:00.357 --> 00:17:07.580 P3nny: Ich schwöre, hier war ein Bug irgendwo. Hier lief ein Bug rum und jetzt 00:17:07.580 --> 00:17:17.380 ist er weg. Wahrscheinlich ist er jetzt bei dir. 00:17:17.380 --> 00:17:20.939 Simon: Okay, also das ist, wie unser Prototyp im Moment aussieht. Es ist 00:17:20.939 --> 00:17:24.569 einfach eine Website, da werden ein paar Orte gefeatured, wo irgendwas interessant 00:17:24.569 --> 00:17:29.520 ist. Ansonsten haben wir hier eine Suche, wo ihr den Namen eurer Stadt oder eures 00:17:29.520 --> 00:17:34.140 Landkreises eingeben könnt. Also für diese Oberfläche arbeiten wir im Moment mit 00:17:34.140 --> 00:17:39.360 Städten und Landkreisen, mit so ungefähr 400 Entitäten oder so in Deutschland und 00:17:39.360 --> 00:17:43.160 in dem Datensatz sind auch Gemeinden drin. Aber dann reden wir gleich über, ich 00:17:43.160 --> 00:17:47.259 glaube, 15 000 oder so. Und im Moment machen wir es uns einfach und gucken uns 00:17:47.259 --> 00:17:52.070 einfach Städte und Landkreise an. Also wenn wir hier einen Ort suchen, zum 00:17:52.070 --> 00:18:01.750 Beispiel Leipzig. Ja, genau, dann sehen wir erst einmal: Es gibt Leipzig Stadt und 00:18:01.750 --> 00:18:05.630 Leipzig Landkreis, also quasi der Landkreis drumrum. Wir gucken uns mal die 00:18:05.630 --> 00:18:12.861 Stadt Leipzig an und dann sehen wir hier Leipzig. Und dann haben wir hier so ein 00:18:12.861 --> 00:18:17.770 bisschen generischen Text. Den importieren wir im Moment von Wikipedia, wollen wir 00:18:17.770 --> 00:18:23.470 aber perspektivisch selber generieren, auf Basis der Daten, die da drin sind. Und 00:18:23.470 --> 00:18:28.990 dann sehen wir hier so ein paar Datensätze, die wir schon, die wir jetzt 00:18:28.990 --> 00:18:32.490 mal so, ich sag mal prototypisch aufbereitet haben. Die sind hier... 00:18:32.490 --> 00:18:38.440 Leipzig hat irgendetwas um die 500 000 Einwohner 2017, 300 Quadratkilometer 00:18:38.440 --> 00:18:44.380 Fläche. Dann haben wir hier eine einfache Visualisierung, wo wir Leipzig mal mit 00:18:44.380 --> 00:18:47.799 München vergleichen. Hier sehen wir, das Münchner deutlich höhere 00:18:47.799 --> 00:18:52.090 Bevölkerungsdichte hat als Leipzig. Und dann können wir hier so ein paar Sachen 00:18:52.090 --> 00:18:56.250 machen. Wir können uns hier die Zahlen zu diesem Datensatz angucken und dann sehen 00:18:56.250 --> 00:18:59.448 wir schon, das ist eine sehr einfache Tabelle, die hat einfach nur ein paar 00:18:59.448 --> 00:19:02.610 Spalten. Jede Spalte hat eine klare Beschriftung und das ist halt was, das 00:19:02.610 --> 00:19:06.460 können wir einfach als CSV runterladen und in beliebigen Programmen weiterverwenden. 00:19:06.460 --> 00:19:17.130 Und gleichzeitig haben wir hier auch eine GraphQL-Query. Das ist quasi eine Daten... 00:19:17.130 --> 00:19:20.779 ich sage mal eine API Abfrage. Also mit GraphQL, also mit so einer 00:19:20.779 --> 00:19:25.289 Datenschnittstelle kann man einfache einfache Queries schreiben. Man kann sich 00:19:25.289 --> 00:19:30.889 das so vorstellen, dass man da eine leere JSON Datei hinschickt, die beschreibt, 00:19:30.889 --> 00:19:34.250 welche Daten ihr wollt. In der sind nur die Keys drin und dann kriegt ihr eine 00:19:34.250 --> 00:19:37.430 JSON Datei zurück, da sind zu den Keys auch die Values drin. Das heißt, es ist 00:19:37.430 --> 00:19:41.659 eine sehr einfache Art und Weise, zu spezifizieren, welche Daten ihr sehen 00:19:41.659 --> 00:19:46.121 wollt. Deswegen experimentieren wir im Moment mit GraphQL. Es ist auch so ein 00:19:46.121 --> 00:19:48.690 bisschen alles im Fluss. Also wir haben schon quasi die Version... also hier sieht 00:19:48.690 --> 00:19:51.750 man die Version 1 unserer Schnittstelle. Wir arbeiten im Moment an einer zweiten 00:19:51.750 --> 00:19:55.120 Version, weil wir halt festgestellt haben, dass verschiedene Dinge dann doch nicht so 00:19:55.120 --> 00:20:00.950 funktionieren, wie wir uns das vorstellen. Aber API Design ist auch nicht einfach. 00:20:00.950 --> 00:20:05.639 Hier gibt's dann eben die Möglichkeit, das CSV runterzuladen oder in so einem 00:20:05.639 --> 00:20:12.240 interaktiven Tool dieses GraphQL zu testen, um quasi... naja, also wenn ihr 00:20:12.240 --> 00:20:18.669 seht: Ah, das ist ja schön, aber ich will Leipzig nicht mit München, sondern mit dem 00:20:18.669 --> 00:20:23.440 Bundesland Sachsen vergleichen. Dann könnt ihr hier quasi unseren Query Builder 00:20:23.440 --> 00:20:28.879 benutzen und euch selber was bauen und direkt das Ergebnis sehen. Darauf gehe ich 00:20:28.879 --> 00:20:32.021 gleich noch ein bisschen ein. Hier sehen wir noch so ein paar andere Beispiele. 00:20:32.021 --> 00:20:35.599 Da haben wir einfach mal experimentiert mit Daten. Hier haben wir noch die 00:20:35.599 --> 00:20:41.100 Bevölkerungsverteilung nach Altersgruppen. Und die Ergebnisse der letzten Europawahl 00:20:41.100 --> 00:20:48.430 Das sind auch so ein paar Beispiele. Sieht man, was da an Daten drinsteckt. Ja. Also 00:20:48.430 --> 00:20:52.820 wie gesagt, das ist einfach nur ein Prototyp im Moment. Da kann man eben 00:20:52.820 --> 00:20:58.030 sehen, wie das grundsätzlich aussehen kann. Wir sehen hier, dass... wir haben 00:20:58.030 --> 00:21:02.210 hier so eine Übersicht über alle Städte und Landkreise in Deutschland, sortiert 00:21:02.210 --> 00:21:06.430 nach Bundesland. Und wenn ich jetzt hier irgendetwas Beliebiges herausgreife - 00:21:06.430 --> 00:21:11.929 Deggendorf in Bayern - dann sehen wir, dass wir ja, hier ist quasi das Gleiche. 00:21:11.929 --> 00:21:18.090 Genauso für Deggendorf. Das ist im Moment, was wir machen. Und das ist so ein 00:21:18.090 --> 00:21:23.409 Komplex, an dem wir arbeiten, der quasi auf der einen Seite zeigen soll, was es an 00:21:23.409 --> 00:21:27.409 Daten da drin gibt, euch einfache Tools geben soll, diese Daten runterzuladen, 00:21:27.409 --> 00:21:31.490 ohne dass ihr euch mit GraphQL auseinandersetzen müsst. Auf der anderen 00:21:31.490 --> 00:21:35.070 Seite soll es auch die Möglichkeit sein, eben den Start zu finden in unsere 00:21:35.070 --> 00:21:40.909 Datenschnittstelle und... P3nny: Perspektivisch würden wir uns da 00:21:40.909 --> 00:21:46.460 schon auch noch vorstellen, dass nicht überall bei allem das Gleiche angezeigt 00:21:46.460 --> 00:21:49.309 wird, sondern wir können ja dann auch eine gewisse Logik dran machen. Also zeig mir 00:21:49.309 --> 00:21:52.759 die Stadt.... also ich habe die Gesamtstatistik über Leipzig und ich zeige 00:21:52.759 --> 00:21:57.830 mir die drei Statistiken, wo Leipzig entweder in den Top5 oder in den Low 5 ist im 00:21:57.830 --> 00:22:03.600 Vergleich zum Bundesland, im Vergleich zum Bundesschnitt oder so.. Ne, um halt 00:22:03.600 --> 00:22:07.110 quasi so für die Journalisten zu sagen: Das sind die spannenden Dinge. Und 00:22:07.110 --> 00:22:10.410 gleichzeitig aber auch den Eisberg darunter: Also das sind alle Daten, weil 00:22:10.410 --> 00:22:14.179 ich jetzt eine bestimmte Frage habe, irgendwie anzubieten. 00:22:14.179 --> 00:22:26.310 Simon: Okay. Ja, jetzt hab ich ja gesagt, wir haben diese Datenschnittstelle. Und 00:22:26.310 --> 00:22:29.891 ich hab euch auch diese Website gezeigt, die wir aus der Datenschnittstelle 00:22:29.891 --> 00:22:35.250 speisen. Aber diese Datenschnittstelle, die ist nicht nur Mittel zum Zweck, um 00:22:35.250 --> 00:22:39.440 diese Website zu bauen, sondern unsere Idee ist eigentlich, dass diese Website, 00:22:39.440 --> 00:22:43.839 die wir haben, dieses Daten-Portal, dass das quasi ein Anwendungsfall ist für diese 00:22:43.839 --> 00:22:46.776 Schnittstelle, um zu zeigen, was man damit machen kann. Aber wir möchten eigentlich, 00:22:46.776 --> 00:22:50.330 dass ihr diese Schnittstelle verwendet für andere Dinge. Auf Basis von dieser 00:22:50.330 --> 00:22:55.070 GraphQL-Schnittstelle sollte man zum Beispiel möglichst… relativ einfach eine 00:22:55.070 --> 00:22:59.500 Python-Bibliothek schreiben können, z.B. damit ihr in euren Datenauswertungen mit 00:22:59.500 --> 00:23:05.059 Python direkt auf amtliche Statistikdaten zugreifen könnt. Oder ein R-Package, damit 00:23:05.059 --> 00:23:09.940 Leute, die quasi statistisch mit R arbeiten, vielleicht an einer Hochschule 00:23:09.940 --> 00:23:16.110 oder Journalisten, dass die quasi auf diese Daten direkt in R zugreifen können, 00:23:16.110 --> 00:23:19.899 ohne dass sie sich jedesmal durch dieses Datenportal klicken müssen und sich eine 00:23:19.899 --> 00:23:24.809 CSV-Datei runterladen, die sie dann erst einmal aufräumen müssen. Und man kann sich 00:23:24.809 --> 00:23:28.077 da alles mögliche überlegen, denke ich, auf Basis dieser API. Wir haben auch 00:23:28.077 --> 00:23:32.279 gestern schon über Twitter Bots gesprochen und alle möglichen anderen lustigen Dinge. 00:23:32.279 --> 00:23:38.340 Und ich würde euch einfach einladen, damit ein bisschen zu experimentieren. Ich zeige 00:23:38.340 --> 00:23:42.971 euch jetzt mal ein bisschen, wie so ein Query funktioniert, weil es tatsächlich 00:23:42.971 --> 00:23:47.499 relativ einfach, es ist zumindest relativ einfach, mal eine einfache Query zu 00:23:47.499 --> 00:23:55.640 schreiben. Hier sehen wir so ein Beispiel für eine Abfrage. Ich werde es jetzt 00:23:55.640 --> 00:23:59.819 gleich mal replizieren. Ich muss mir nur hier nochmal angucken, wie das aussieht. 00:23:59.819 --> 00:24:12.380 Also, wir haben hier diese Schnittstelle oder diese, ich sage mal diese grafische 00:24:12.380 --> 00:24:16.289 Oberfläche für unsere Datenschnittstelle. GraphQL funktioniert normalerweise so, 00:24:16.289 --> 00:24:20.830 wenn man irgendwo ein GraphQL Server betreibt, dann kommt automatisch so ein 00:24:20.830 --> 00:24:25.741 graphisches Interface mit, damit man Queries einfacher ausprobieren kann. Das 00:24:25.741 --> 00:24:29.736 ist quasi ein Debugging-Tool, wenn ihr so wollt oder ein Werkzeug, um euch ein 00:24:29.736 --> 00:24:33.429 bisschen mit eurer API zu befassen. Und das ist normalerweise direkt eingebaut in 00:24:33.429 --> 00:24:36.970 so ne Schnittstelle. Und bei uns ist das auch der Fall und ich habe das hier jetzt 00:24:36.970 --> 00:24:40.710 schon mal ausgefüllt. Sehen wir, wenn wir so eine einfache Query machen, dann fragen 00:24:40.710 --> 00:24:44.431 wir erst einmal nach Regions. Also Regions sind quasi alle Regionen, die wir in 00:24:44.431 --> 00:24:48.210 Deutschland haben. Wenn ich jetzt hier auf Play drücke, also wenn ich hier mal Name 00:24:48.210 --> 00:24:51.720 reinschreibe und hier auf Play drücke, dann dauert es sehr lange, weil er dann 00:24:51.720 --> 00:24:54.980 irgendwie durch unsere Datenbank geht und für 15 000 Entities oder so den Namen 00:24:54.980 --> 00:24:59.149 raussucht. Deswegen werde ich das jetzt erst einmal nicht machen. Ich werde das 00:24:59.149 --> 00:25:04.879 erstmal ein bisschen einschränken. Und jetzt gibt's hier schon eine interessante 00:25:04.879 --> 00:25:10.970 Sache. Und zwar steht hier, stehen zwei Dinge: "parent" und "nuts". Und "nuts" ist 00:25:10.970 --> 00:25:22.070 eine interessante Sache. Das ist ja ein Standard für eindeutige... ein Standard 00:25:22.070 --> 00:25:28.009 dafür, regionale Einheiten zu beschreiben. Das heißt, wenn man in der EU verschiedene 00:25:28.009 --> 00:25:31.679 Städte miteinander vergleichen will, dann gibt's halt so einige Begriffe wie 00:25:31.679 --> 00:25:35.399 Großstadt, Landkreis. Ne, keine Ahnung. In Frankreich gibt es keine Landkreise. 00:25:35.399 --> 00:25:38.379 Aber wenn man Dinge miteinander vergleichen will, dann gibt es dafür eben 00:25:38.379 --> 00:25:42.160 einen Standard. Und da gibt's den NUTS- Standard und da gibt's verschiedene NUTS- 00:25:42.160 --> 00:25:51.190 Levels. Und wenn wir jetzt alle größeren Städte und Landkreise sehen wollen, dann 00:25:51.190 --> 00:25:58.529 ist es z.B. der NUTS-Level 3 in Deutschland. Ich schreib hier "nuts: 3" 00:25:58.529 --> 00:26:04.090 und drücke auf Start. Und dann sehen wir, wir kriegen hier irgendwie alle Städte und 00:26:04.090 --> 00:26:09.009 Landkreise in Deutschland. Ja, Starnberg, schön, Ravensburg, Biberach. Also man 00:26:09.009 --> 00:26:14.491 sieht, die sind auch irgendwie so ein bisschen sortiert da drin. Wenn ich jetzt 00:26:14.491 --> 00:26:19.070 quasi nur alle Städte und Landkreise in einem Bundesland sehen will, dann kann ich 00:26:19.070 --> 00:26:22.649 das auch weiter spezifizieren. Und zwar kann ich immer eine höhere Einheit 00:26:22.649 --> 00:26:30.020 spezifizieren in dieser API. Und das heißt "parent" in der API. Das heißt, ich will 00:26:30.020 --> 00:26:35.960 alles unterhalb von einem Parent. Und ich zeige es jetzt mal anhand vom Saarland. 00:26:35.960 --> 00:26:39.789 Saarland ist mein Lieblings-Bundesland, wenn man mit so statistischen Daten 00:26:39.789 --> 00:26:43.239 arbeitet. Saarland ist immer schön übersichtlich. Gab's nicht so viele 00:26:43.239 --> 00:26:48.989 Gemeindereformen, gibt auch nicht so viele Landkreise. Es ist super, ja, 1a 00:26:48.989 --> 00:26:54.809 Bundesland. So und jetzt sehen wir hier quasi eine Einschränkung: Das sind alle 00:26:54.809 --> 00:26:59.121 Städte und Landkreise im Saarland. Und jetzt können wir uns mal noch so ein 00:26:59.121 --> 00:27:05.100 bisschen andere Dinge angucken. Jetzt gebe ich mal hier... wir haben eine ID für jede 00:27:05.100 --> 00:27:12.039 Einheit und die ID, das sehen wir, die fängt auch immer mit 10 an, genau wie das 00:27:12.039 --> 00:27:15.809 Bundesland. Das ist keine ID, die wir uns überlegt haben, sondern das ist der 00:27:15.809 --> 00:27:20.889 sogenannte Gemeindeschlüssel, den wir in Deutschland haben. Es ist quasi ein 00:27:20.889 --> 00:27:25.460 eindeutiger Bezeichner für jede Stadt, jede Gemeinde, jeden Landkreis. Die haben 00:27:25.460 --> 00:27:31.659 alle solche Nummern. Und anhand von diesen kann man hier sehr gut arbeiten. Also ich 00:27:31.659 --> 00:27:35.399 könnte jetzt auch eine Region anhand von Ihrer ID raussuchen. Mache ich jetzt 00:27:35.399 --> 00:27:38.920 erstmal nicht. Können wir nachher noch machen. Ich will jetzt auch ein paar 00:27:38.920 --> 00:27:45.630 statistische Daten sehen. Und dann habe ich hier in diesem Beispiel, sieht man 00:27:45.630 --> 00:27:51.313 hier: Das wird dann ein bisschen kryptisch. Und da verwenden... haben wir 00:27:51.313 --> 00:27:54.340 uns auch nicht selber etwas ausgedacht. Das heißt, wir haben versucht, uns das 00:27:54.340 --> 00:27:57.580 selber auszudenken in der ersten Version von unserer API und haben dann eben 00:27:57.580 --> 00:28:01.500 festgestellt, dass es sehr viel erstens redaktioneller Aufwand ist und es geht 00:28:01.500 --> 00:28:05.140 dann auch irgendwann ganz schnell kaputt, weil wir uns vielleicht auch nicht so gut 00:28:05.140 --> 00:28:09.559 auskennen wie die Leute, die die amtliche Statistik machen. Weil, naja, wenn es 00:28:09.559 --> 00:28:15.149 einfach wäre, dann hätte man, hätten die es auch einfacher gemacht wahrscheinlich. 00:28:15.149 --> 00:28:18.990 Und deswegen verwenden jetzt in der aktuellen Version von unserer API, an der 00:28:18.990 --> 00:28:22.510 wir jetzt arbeiten, quasi direkt die Identifier, die auch die Statistischen 00:28:22.510 --> 00:28:29.889 Ämter verwenden. Dadurch wird es einfacher, diese Sachen nachzuvollziehen. 00:28:29.889 --> 00:28:33.369 Und auch wenn ihr quasi einen tatsächlichen Datensatz habt, irgendwie in 00:28:33.369 --> 00:28:37.460 regionalstatistik.de, den dann hinterher bei uns rauszusuchen. Das heißt aber auch, 00:28:37.460 --> 00:28:42.159 Ihr müsst irgendwie wissen, wofür diese Codes stehen. Und hier gibt's eine super 00:28:42.159 --> 00:28:48.950 Vorschlagsuche, quasi. Wenn ich hier anfange, irgendetwas zu tippen, dann sehe 00:28:48.950 --> 00:28:54.520 ich hier verschiedene Vorschläge und hier unten sehe ich dann auch eine Erklärung, 00:28:54.520 --> 00:28:58.740 was das ist. Das heißt, wir haben uns schon ein bisschen Mühe gegeben, dass man 00:28:58.740 --> 00:29:02.640 sich das so ein bisschen erschließen kann, was da drin ist. Und ich glaube, das war 00:29:02.640 --> 00:29:08.019 jetzt BEVMK, das sind von Scheidungen betroffene Kinder. Und wenn ich jetzt hier 00:29:08.019 --> 00:29:12.090 draufklicke, dann kriege ich hier auch so eine Doku. Das ist jetzt bei diesem 00:29:12.090 --> 00:29:17.389 Datensatz sehr einfach. Da sehen wir einfach, aus welcher Statistik der kommt. 00:29:17.389 --> 00:29:22.740 Das ist die "Statistik rechtskräftiger Urteile in Ehesachen", Nummer 12631. Das 00:29:22.740 --> 00:29:25.499 heißt, anhand davon könnt ihr die wahrscheinlich dann auch in 00:29:25.499 --> 00:29:29.529 regionalstatistik.de raussuchen. Oder wenn ihr beim Statistischen Bundesamt anrufen 00:29:29.529 --> 00:29:33.539 müsst, dann wissen die auch, worum es geht. Aber wir wollen ja eigentlich, dass 00:29:33.539 --> 00:29:38.870 ihr da nicht anrufen müsst. Deswegen geben wir die jetzt einfach mal so aus. Sehen 00:29:38.870 --> 00:29:45.519 wir, das ist hier rot markiert. Und dann sagt er: Ich hab irgendwas vergessen. Wie 00:29:45.519 --> 00:29:52.440 hieß es? Drei. Und jetzt sehen wir, das ist immer noch rot. Dann sagt er: Das muss 00:29:52.440 --> 00:29:56.679 eine Unterauswahl haben. Also mache ich mal eine Unterauswahl. Und wir sehen schon 00:29:56.679 --> 00:30:02.470 hier auf der von euch aus gesehen linken Seite, dass... von euch aus gesehen 00:30:02.470 --> 00:30:07.240 rechten Seite... ist die gleiche Seite wie bei mir auch am Bildschirm, eigentlich 00:30:07.240 --> 00:30:11.280 easy. Auf der rechten Seite seht ihr, was man da so machen kann und da sehen wir, 00:30:11.280 --> 00:30:15.619 wir können Jahr und einen Wert abrufen und auch die Quelle. Ich mache das jetzt 00:30:15.619 --> 00:30:22.650 einfach mal, geb hier mal Value ein. Drück auf Play und dann sehen wir, wir kriegen 00:30:22.650 --> 00:30:27.001 hier irgendwie so eine Liste, da sind Werte drin. Irgendwie für jede einzelne 00:30:27.001 --> 00:30:30.979 Stadt, jeden einzelnen Landkreis. Da macht es noch nicht so viel Sinn, weil das sind 00:30:30.979 --> 00:30:36.700 halt Werte für ein Jahr. Deswegen geben wir uns zusätzlich noch das Jahr aus und 00:30:36.700 --> 00:30:41.809 dann sehen wir hier quasi einen Datensatz für jedes Jahr. Den könnte man jetzt 00:30:41.809 --> 00:30:46.804 wahrscheinlich auch noch so ein bisschen sortieren und so... Das sind alles jetzt 00:30:46.804 --> 00:30:50.619 nur so API Design Sachen, an denen wir arbeiten. Aber grundsätzlich seht ihr, wie 00:30:50.619 --> 00:30:55.900 das funktioniert. Und genauso könnt ihr eben anhand von diesem Schlüssel, den wir 00:30:55.900 --> 00:31:00.980 hier haben, auch Daten für einen einzelnen, für eine einzelne Stadt 00:31:00.980 --> 00:31:05.419 abrufen. Das heißt, das hier ist mehr so eine Bulkabfrage, wo wir quasi sehr viele 00:31:05.419 --> 00:31:11.240 Daten kriegen über alle Städte und Landkreise in einem Bundesland. Aber wir 00:31:11.240 --> 00:31:18.539 können jetzt auch sehr detailliert nach einem einzelnen Wert fragen. Zum Beispiel 00:31:18.539 --> 00:31:22.120 kann ich hier jetzt das Ganze für Saarbrücken machen. Also wir sehen, 00:31:22.120 --> 00:31:37.039 Saarbrücken hat die ID 10041 und dann kann ich hier eingeben: ID. Whoa. Also ist alles 00:31:37.039 --> 00:31:43.380 auch noch ein bisschen Alpha, ne... 10041 und wir geben jetzt einfach mal 00:31:43.380 --> 00:31:47.580 spaßeshalber die gleichen Werte aus. Und dann sehen wir, wir kriegen jetzt eine 00:31:47.580 --> 00:31:51.780 Antwort, quasi eine JSON Datei und die enthält jetzt nur die Werte für 00:31:51.780 --> 00:31:55.529 Saarbrücken. Und wenn wir jetzt ein genaues Jahr wollen, sagen wir, wir 00:31:55.529 --> 00:32:04.009 wollen 2014, dann kann ich das hier auch weiter nach dem Jahr filtern. Ja, und 00:32:04.009 --> 00:32:10.369 jetzt kriegen wir einfach nur den Wert zurück für 2014. Und so kann man eben 00:32:10.369 --> 00:32:14.320 beliebige andere Statistiken auch abfragen. Es ist sehr einfach für 00:32:14.320 --> 00:32:18.539 Datensätze, die sehr einfach sind, so wie der. Es gibt in der Praxis auch sta– äh, 00:32:18.539 --> 00:32:22.539 statistische Datensätze, die sind irgendwie hoch verschachtelt. Wir haben ja 00:32:22.539 --> 00:32:27.970 vorhin auch so eine Tabelle gesehen, wo sie dann versucht haben, diese Tabelle 00:32:27.970 --> 00:32:31.461 quasi, also diese verschachtelten Daten irgendwie zweidimensional in einer Tabelle 00:32:31.461 --> 00:32:34.730 darzustellen. Und dann kommt irgendwas raus, was man nicht mehr... also was man 00:32:34.730 --> 00:32:38.261 nicht mehr mit einem Computer verarbeiten kann, sondern nur noch auf A4 ausdrucken. 00:32:38.261 --> 00:32:43.119 Und für diese komplexeren Sachen muss man sich das dann ein bisschen genauer 00:32:43.119 --> 00:32:47.029 angucken, wie die Dinge halt ineinander verschachtelt sind. Aber grundsätzlich 00:32:47.029 --> 00:32:52.000 sollte man das alles irgendwie hier aus der API rauskriegen. Also wenn wir hier 00:32:52.000 --> 00:33:00.330 diese BEVMK-Sache suchen. Also ich habe gerade gesehen, da sind jetzt nicht so 00:33:00.330 --> 00:33:04.340 viele Dinge drin, aber wenn wir uns irgendwas anderes raussuchen, dann sehen 00:33:04.340 --> 00:33:08.480 wir, hier gibt's z.B. nen komplexeren Datensatz. Da kann man jetzt noch 00:33:08.480 --> 00:33:13.750 irgendwelche Auswahl treffen. Nur Kinder, die im Januar geboren wurden oder 00:33:13.750 --> 00:33:19.309 nur Kinder, die im Februar geboren wurden und so.. Ja, also ich denke, ihr versteht, 00:33:19.309 --> 00:33:26.360 worum es geht. Wir haben jetzt ein bisschen Zeit. Ich würde das jetzt hier 00:33:26.360 --> 00:33:31.739 für Fragen öffnen und wenn ihr ganz konkrete Fragen habt oder Ideen habt 00:33:31.739 --> 00:33:37.789 dafür, was man damit machen kann - oder wenn ihr vielleicht Interesse habt, an so 00:33:37.789 --> 00:33:42.799 einem Open-Source-Projekt mitzuarbeiten, dann können wir ja gerne nachher ein 00:33:42.799 --> 00:33:47.389 bisschen quatschen. Also da gibt's viele Dinge, die man machen kann oder die wir 00:33:47.389 --> 00:33:54.559 für das nächste Jahr geplant haben. Also wir haben einen fröhlichen Haufen Python- 00:33:54.559 --> 00:34:00.360 und JavaScript-Code und wir haben auch redaktionelle Aufgaben. Also ich sag mal 00:34:00.360 --> 00:34:03.230 so, Fragestellungen, wo man sich mal so ein bisschen Statistik angucken kann oder 00:34:03.230 --> 00:34:06.909 so ein bisschen mit uns überlegen, wie man jetzt irgendwas besonders gut darstellen 00:34:06.909 --> 00:34:10.700 kann oder wie man irgendwas besonders gut erklären kann - das ist dann eher 00:34:10.700 --> 00:34:16.179 Patricias Thema und wir haben für nächstes Jahr geplant, dass wir einen größeren 00:34:16.179 --> 00:34:20.379 Hackathon organisieren. Vermutlich in Berlin und vermutlich irgendwann noch vor 00:34:20.379 --> 00:34:25.230 der Europawahl, eventuell auch mit einem Schwerpunkt auf Daten aus der Europawahl. 00:34:25.230 --> 00:34:29.369 Weil hier drin sind eben auch sehr viele historische Wahlergebnisse und auch so 00:34:29.369 --> 00:34:32.892 Sachen wie Wahlbeteiligung. Und die sind schon aufgelöst nach Gemeinden und 00:34:32.892 --> 00:34:36.091 Städten, d.h. da kann man sehr interessante Dinge damit machen, weil man 00:34:36.091 --> 00:34:42.258 die eben dann sehr gut.... keine Ahnung, Arbeitsmarktstatistik mit Wahlergebnissen 00:34:42.258 --> 00:34:45.447 oder so vergleichen kann. Das macht vielleicht nicht so wahnsinnig viel Sinn, 00:34:45.447 --> 00:34:49.549 aber da kann man sich sicher sinnigere Dinge überlegen. Ihr findet uns auf 00:34:49.549 --> 00:34:54.619 Twitter und auf GitHub unter @datenguide und ihr findet die Slides für diesen 00:34:54.619 --> 00:35:00.160 Vortrag unter dieser URL: downloads.datengui.de/35c3. Ich werde es 00:35:00.160 --> 00:35:05.380 nachher nochmal irgendwie vertwittern oder sonstwie posten und ansonsten - 00:35:05.380 --> 00:35:08.916 Fragen von euch! 00:35:08.916 --> 00:35:16.390 Applaus 00:35:16.390 --> 00:35:20.220 Q: Ja, hört man mich? Vielen Dank erst einmal für den Vortrag. Ich habe gesehen, 00:35:20.220 --> 00:35:24.640 das ist eine Python-Flask-App, wenn ich richtig gesehen habe. Also erst einmal 00:35:24.640 --> 00:35:30.580 Gratulation dafür - eine sehr gute Wahl! Mich würde noch interessieren, man hat ja 00:35:30.580 --> 00:35:33.968 einige Daten gesehen, einige Beispieldaten. Wir hatten z.B. das Jahr, 00:35:33.968 --> 00:35:37.700 das war aber ein String. Verarbeitet ihr die Sachen irgendwie noch weiter oder ist 00:35:37.700 --> 00:35:41.878 das einfach nur dadurch, dass es aus einer CSV kommt, erst einmal als String einfach 00:35:41.878 --> 00:35:45.951 reingepastet? Simon: Ja, also es ist so durch ein paar 00:35:45.951 --> 00:35:49.120 Iterationen gegangen und das, was wir jetzt gesehen haben, das wird tatsächlich 00:35:49.120 --> 00:35:54.360 automatisch generiert auf Basis von den Daten, die da rauskommen. Und ja, es ist 00:35:54.360 --> 00:35:57.470 im Moment noch so ein bisschen inkonsistent. Also man hat auch, wenn man 00:35:57.470 --> 00:36:02.660 noch genauer aufgepasst hat, gesehen, dass dieser NUTS-Level z.B. war ein Integer, 00:36:02.660 --> 00:36:07.640 aber andere Sachen sind halt Zahlen. Ob jetzt ein Jahr eine Zahl ist oder ein 00:36:07.640 --> 00:36:13.599 String... Ja, ich denke, wir sind dabei, das noch auszuknobeln. Wir haben jetzt im 00:36:13.599 --> 00:36:17.799 Moment den Ansatz gewählt, möglichst wenig der Daten irgendwie weiter zu verarbeiten 00:36:17.799 --> 00:36:24.238 und das möglichst direkt abzubilden in einer API, was auch zur Folge hat, dass im 00:36:24.238 --> 00:36:28.370 Moment komplexere Queries auch teilweise sehr umständlich zu schreiben sind. Und 00:36:28.370 --> 00:36:33.180 das ist einfach ein Thema, an dem wir im Moment noch arbeiten. Wir... was man noch 00:36:33.180 --> 00:36:36.799 dazu sagen kann: Wenn jemand von euch sich schon intensiver mit dem Thema 00:36:36.799 --> 00:36:41.760 auseinandergesetzt hat, es gibt ein anderes Projekt, das heißt ReGenesis. Das 00:36:41.760 --> 00:36:47.359 hat Friedrich Lindenberg mal gemacht vor ein paar Jahren. Das ist quasi auch eine 00:36:47.359 --> 00:36:50.800 Webanwendung, die eine Rest-API zur Verfügung stellt für diese Daten. Das 00:36:50.800 --> 00:36:54.130 Projekt ist schon so ein bisschen sehr in die Jahre gekommen und wird auch nicht 00:36:54.130 --> 00:36:58.300 mehr weiter gepflegt. Und wir setzen aber darauf auf. Das heißt, der Code, mit dem 00:36:58.300 --> 00:37:03.950 wir die Daten herunterladen aus diesen offiziellen Portalen, das ist quasi der 00:37:03.950 --> 00:37:09.170 ReGenesis-Code, den wir auch verwenden. Das ist eben auch eine Python-Anwendung. 00:37:09.170 --> 00:37:12.960 Okay, weitere Fragen? P3nny: Ja, und wir müssen halt nochmal 00:37:12.960 --> 00:37:17.019 gucken, weil die Idee ist, welche Schritte man sich vornimmt. Man könnte das relativ 00:37:17.019 --> 00:37:20.630 umfangreich machen, dass man halt jeden einzelnen Datensatz durchgehen muss. Man 00:37:20.630 --> 00:37:23.870 könnte dann definitiv eine bessere Erklärung dazu schreiben, muss das aber 00:37:23.870 --> 00:37:28.719 halt mal recherchieren. Man müsste dann halt quasi diese Untervalues auch 00:37:28.719 --> 00:37:31.973 nochmal... also man könnte versuchen, jeden einzelnen dieser Datensätze besser 00:37:31.973 --> 00:37:35.927 zu machen. Das ist vielleicht ein bisschen viel gewollt, sodass wir jetzt erst gesagt 00:37:35.927 --> 00:37:38.820 haben: Okay, wir gehen den Schritt zurück und machen halt diesen Pain, den ich 00:37:38.820 --> 00:37:43.530 beschrieben habe, weniger schlimm. Also erstmal den ersten Schritt und dann das 00:37:43.530 --> 00:37:46.560 andere auch in Kooperation mit den jeweiligen Ämtern und so, weil man dann 00:37:46.560 --> 00:37:49.190 immer nochmal jemanden fragen muss, der diese Statistik erstellt hat. Weil wenn 00:37:49.190 --> 00:37:52.230 ich dann eine einfachere Beschreibung hin schreibe, schlägt er nachher die Hände 00:37:52.230 --> 00:37:56.760 über dem Kopf zusammen und sagt: Ja, so kann man das aber nicht genau sagen. 00:37:56.760 --> 00:38:00.950 Deswegen - da dazwischen, in diesem Spannungsfeld bewegen wir uns und machen 00:38:00.950 --> 00:38:06.720 jetzt erstmal den ersten Schritt. Q: Ja, wie sieht denn generell euer 00:38:06.720 --> 00:38:10.610 Technologie Stack aus? Python und Flask haben wir jetzt schon gehört. Was ist noch 00:38:10.610 --> 00:38:16.320 im Spiel bei euch? Simon: Also wir benutzen ja wie gesagt 00:38:16.320 --> 00:38:21.630 Python und Flask für die Webanwendungen. Wir benutzen Elastic Search für die... 00:38:21.630 --> 00:38:25.570 quasi als Such-Backend, aber wir arbeiten im Moment mit Elastic Search auch so, dass 00:38:25.570 --> 00:38:31.170 wir einfach diesen kompletten Datensatz, den wir runterladen, einfach reinpumpen, 00:38:31.170 --> 00:38:35.029 damit man auch darüber suchen kann. Ich bin mir auch noch nicht sicher, ob das der 00:38:35.029 --> 00:38:38.400 perfekte Weg ist, aber im Moment funktioniert das für uns ganz gut. Das 00:38:38.400 --> 00:38:42.240 heißt, wir haben keine Postgres-Datenbank oder so, wo das drin ist, sondern wir 00:38:42.240 --> 00:38:50.210 haben einfach nur diesen Postgres... äh, diesen Elastic Search Datenhaufen und 00:38:50.210 --> 00:38:53.321 suchen das dann darin. Das heißt, die Flask-App ist im Moment auch eine sehr 00:38:53.321 --> 00:38:57.950 sehr einfache Flask-App, die einfach nur ein - ich sage jetzt mal so - ein Frontend 00:38:57.950 --> 00:39:01.680 darüber zur Verfügung stellt - also quasi ein technisches Frontend. Die 00:39:01.680 --> 00:39:06.620 Benutzeroberfläche, die ihr sehen könnt, also das grafische Frontend, das 00:39:06.620 --> 00:39:12.870 entwickeln wir mit React und ein bisschen Datenvisualisierungs-Bibliotheken, 00:39:12.870 --> 00:39:19.310 VictoryJS wäre so ein Stichwort. Das ist eine quasi ein React Wrapper um D3. Also 00:39:19.310 --> 00:39:23.640 D3 ist so eine Datenvisualisierungs- Bibliothek, VictoryJS sind quasi 00:39:23.640 --> 00:39:32.600 Datenvisualisierungs-Komponenten, die man in React verwenden kann auf Basis von D3. 00:39:32.600 --> 00:39:39.540 Eine interessante technische Sache, was Patricia gerade angesprochen hat, ist: Es 00:39:39.540 --> 00:39:44.285 gibt so eine Bewegung in der JavaScript- Welt, nicht mehr super komplexe JavaScript 00:39:44.285 --> 00:39:47.790 Anwendungen zu bauen, die nur auf dem Client laufen, sondern Sachen halt 00:39:47.790 --> 00:39:51.980 irgendwie wieder wie früher auf dem Server zu rendern oder idealerweise schon quasi 00:39:51.980 --> 00:39:57.549 zu einem... ich sage mal zum Build- Zeitpunkt wieder als HTML auszugeben. Und 00:39:57.549 --> 00:40:03.390 da gibt es ein fancy Wort dafür, das heißt JAMstack. Was es bedeutet: Das heißt 00:40:03.390 --> 00:40:08.000 einfach nur, man baut eine Anwendung mit JavaScript, in unserem Fall mit React. Die 00:40:08.000 --> 00:40:12.549 baut auf einer API auf. Die API kann auch für andere Dinge wiederverwendet werden 00:40:12.549 --> 00:40:17.609 und wir bauen halt so einen JavaScript Client dafür. Und aus diesem JavaScript 00:40:17.609 --> 00:40:24.200 Client generieren wir dann aber ganz viele HTML-Seiten, damit man quasi eine HTML- 00:40:24.200 --> 00:40:28.059 Seite hat für jede Stadt. Und wenn du die dann... wenn du dann auf diese Seite 00:40:28.059 --> 00:40:32.060 gehst, dann lädtst du die HTML-Seite runter und die kannst du direkt sehen, 00:40:32.060 --> 00:40:36.309 weil es ist halt einfach nur HTML. Aber im Hintergrund wird halt dieser ganze 00:40:36.309 --> 00:40:40.549 JavaScript-Kram initialisiert. Und das klingt jetzt sehr kompliziert, aber da 00:40:40.549 --> 00:40:44.390 gibt es ein Framework, mit dem man sowas machen kann und das heißt Gatsby.js. Und 00:40:44.390 --> 00:40:47.559 das benutzen wir hier und es funktioniert für uns auch sehr gut. Wenn euch... wenn 00:40:47.559 --> 00:40:50.930 ihr da genaueres wissen wollt, ich hänge hier nachher noch ein bisschen rum, da 00:40:50.930 --> 00:40:54.940 kann ich euch auch zeigen, wie das funktioniert. Haben wir noch Zeit für eine 00:40:54.940 --> 00:40:58.440 Frage? Q: Halt, eine noch! Also noch einmal ein 00:40:58.440 --> 00:41:05.740 Lob. Ich fand Konzept, Präsentation und eure Prototypen sehr gut aussehend. Eine 00:41:05.740 --> 00:41:10.619 konzeptionelle Frage: Ihr habt jetzt einen hohen Fokus auf regionale Sachen gelegt. 00:41:10.619 --> 00:41:14.640 Geht ja auch eine Ebene höher. Also Bundesländer und der Bund vielleicht. Ich 00:41:14.640 --> 00:41:18.250 sehe nämlich mittel- bis langfristig auf jeden Fall irgendwie das Potenzial, 00:41:18.250 --> 00:41:22.980 Statista... oder einen starken Konkurrenten zu Statista aufzubauen, wo 00:41:22.980 --> 00:41:28.309 mir einfach gerade ein bisschen Open Source mäßig etwas fehlt. 00:41:28.309 --> 00:41:36.730 Simon: Ja, also der Punkt kommt sehr oft. Also der Punkt kommt sehr oft. Ja, also 00:41:36.730 --> 00:41:41.230 ich finde auch, Statista finde ich extrem schwierig. Vor allem finde ich es 00:41:41.230 --> 00:41:44.982 schwierig, dass man, wenn man jetzt irgendeinen Datensatz googlet, dann findet 00:41:44.982 --> 00:41:48.810 man meistens Statista und es vermittelt einem irgendwie, dass man jetzt bezahlen 00:41:48.810 --> 00:41:53.000 muss, um diesen Datensatz herunterzuladen. Und wenn wir über diese amtliche Statistik 00:41:53.000 --> 00:41:59.140 reden, dann sind das halt freie Daten. Und diese Idee, die ich vorhin beschrieben 00:41:59.140 --> 00:42:02.660 habe, dass wir einzelne HTML-Seiten generieren für jeden Ort und jeden 00:42:02.660 --> 00:42:07.880 Datensatz, der kommt auch daher, dass wir eigentlich so den Long Tail nutzen wollen 00:42:07.880 --> 00:42:11.910 in den Suchmaschinen und eigentlich idealerweise dann irgendwann höher gerankt 00:42:11.910 --> 00:42:16.220 werden als Statista. Zu dem anderen Teil deiner Frage, andere Datensätze da 00:42:16.220 --> 00:42:23.109 reinzunehmen. Die statistischen Ämter benutzen dieses System Genesis, um diese 00:42:23.109 --> 00:42:26.270 Daten zu veröffentlichen. regionalstatistik.de ist quasi eine 00:42:26.270 --> 00:42:30.390 Genesis-Instanz, wo die Daten der Statistischen Landesämter drin sind. Aber 00:42:30.390 --> 00:42:34.010 es gibt eben andere Genesis-Instanzen und mit unserer Technologie kann man 00:42:34.010 --> 00:42:39.054 grundsätzlich auch andere Genesis- Instanzen - die Daten aus anderen Genesis- 00:42:39.054 --> 00:42:43.040 Instanzen laden und zur Verfügung stellen, weil das alles genau gleich funktioniert. 00:42:43.040 --> 00:42:48.069 Das hat halt mit unserem föderalen System, was wir in Deutschland haben, zu tun. 00:42:48.069 --> 00:42:51.849 Wobei das nicht heißt, dass die Software ein föderiertes System ist. Also es ist 00:42:51.849 --> 00:42:57.799 nicht Mastodon-föderiert, dass ich quasi über eine Instanz von dieser Software alle 00:42:57.799 --> 00:43:02.130 Daten abfragen kann, sondern die haben halt einfach einzelne Instanzen, weil halt 00:43:02.130 --> 00:43:06.500 andere Leute zuständig sind für andere Datensätze. Aber perspektivisch wäre es 00:43:06.500 --> 00:43:10.920 schon mein Ziel, mit diesem Konzept auch andere Datensätze, idealerweise halt 00:43:10.920 --> 00:43:14.502 alles, was irgendwie über Genesis veröffentlicht wird, zur Verfügung zu 00:43:14.502 --> 00:43:17.859 stellen. Wir haben uns jetzt eben als einfachen Use Case die 00:43:17.859 --> 00:43:22.440 regionalstatistik.de ausgesucht. Also ich muss dazu sagen, wir arbeiten da schon 00:43:22.440 --> 00:43:28.349 seit einem Jahr dran. Und wir haben am Anfang sehr viel ausprobiert und wir haben 00:43:28.349 --> 00:43:33.680 auch über die Zeit unseren Scope verändert und die Tatsache, dass wir jetzt eben 00:43:33.680 --> 00:43:37.970 diese konkrete, dieses konkrete Produkt entwickeln und uns auf die 00:43:37.970 --> 00:43:41.880 regionalstatistik konzentrieren, das ist eigentlich eine neuere Sache. Aber das ist 00:43:41.880 --> 00:43:45.451 einfach etwas, was wir jetzt machen müssen, damit wir mit irgendetwas mal 00:43:45.451 --> 00:43:50.069 vorankommen. Wir sind auch nur zu dritt und vielleicht so vier, je nachdem, wie 00:43:50.069 --> 00:43:57.210 man das zählt. Und lange zu zweit. Genau deswegen, ja. Wir sind halt auch nicht 00:43:57.210 --> 00:44:02.610 Statista. Aber Open Source Schreibtisch- Hooligan Statista finde ich super. Also 00:44:02.610 --> 00:44:06.230 wenn noch ein paar Leute von euch Lust haben, dann können wir uns sehr gerne 00:44:06.230 --> 00:44:09.919 drüber unterhalten. Herald: Also wir haben auch noch viel Zeit 00:44:09.919 --> 00:44:13.857 übrig, denke ich. Noch eine Viertelstunde oder so. Wenn es noch mehr Fragen gibt, 00:44:13.857 --> 00:44:19.810 supergeil. Ja, gerne weiter. Q: Wie organisiert ihr euch als Projekt 00:44:19.810 --> 00:44:26.990 und wie finanziert ihr euch? Simon: Ja, also vielleicht... genau. 00:44:26.990 --> 00:44:32.839 Patricia geht mal hier zurück, weit zurück. Also wir organisieren uns im 00:44:32.839 --> 00:44:42.750 Moment so ein bisschen über GitHub Issues. Wir haben nen Slack-Channel im OKF-Slack. 00:44:42.750 --> 00:44:47.270 Das ist halt irgendwie das Einfachste für uns, wir sind auch ein verteiltes Team. 00:44:47.270 --> 00:44:52.180 Also ich sage mal, wir arbeiten zeitlich und räumlich verteilt. Patricia ist in 00:44:52.180 --> 00:44:56.540 Köln. Ich bin in Berlin. Mein anderer Kollege Simon Wörpel, der ganz viel an der 00:44:56.540 --> 00:45:01.250 API arbeitet, der ist zwar auch in Berlin, aber Berlin ist eine große Stadt. Wir 00:45:01.250 --> 00:45:07.120 sehen uns jetzt auch nicht jeden Tag. Deswegen halt sehr viel über Slack. Wir 00:45:07.120 --> 00:45:10.720 haben uns jetzt in der Vergangenheit immer mal getroffen. Ich glaube, wir uns zwei 00:45:10.720 --> 00:45:19.240 Mal getroffen, seit wir an dem Projekt arbeiten. Und... also dreimal mit jetzt. 00:45:19.240 --> 00:45:24.671 Nächstes Jahr wollen wir, also wie gesagt, so eine Art Hackathon machen. Da wollen 00:45:24.671 --> 00:45:30.470 wir auch ein bisschen mehr Community zusammenbringen und dann halt in dem 00:45:30.470 --> 00:45:34.151 Zusammenhang auch irgendwie gucken, wie man das Projekt als Open Source Projekt 00:45:34.151 --> 00:45:37.319 weiterentwickeln kann und was für Kommunikationskanäle man dann auch 00:45:37.319 --> 00:45:43.890 braucht. Zur Förderung. Also ich hab ja vorhin gesagt, wir hatten am Anfang eine 00:45:43.890 --> 00:45:50.470 Förderung vom Prototype Fund. Das ist ein sehr gutes Förderprogramm für Open Source 00:45:50.470 --> 00:45:54.910 Projekte, die halt irgendwie eine gesellschaftliche Relevanz haben. Das war 00:45:54.910 --> 00:45:58.406 auch in der in der Bewerbung, in der Durchführung super. Also kann ich nur 00:45:58.406 --> 00:46:01.560 jedem empfehlen. Ich habe tatsächlich inzwischen auch schon ein zweites 00:46:01.560 --> 00:46:06.921 Prototype Fund Projekt hinter mir. Alle da bewerben. Ich muss dazu sagen, ich habe 00:46:06.921 --> 00:46:10.219 mich auch mit viel mehr Kram beworben, der wurde nicht genommen. Gibt wahrscheinlich 00:46:10.219 --> 00:46:16.674 auch viele Bewerber. Aber ich kann auf jeden Fall jedem raten, es auszuprobieren 00:46:16.674 --> 00:46:20.069 und euch am besten vorher mal mit den Leuten vom Prototype Fund zu unterhalten. 00:46:20.069 --> 00:46:22.920 Die sind auch hier irgendwie unterwegs. Wenn ihr die hier anpingt, dann habt ihr 00:46:22.920 --> 00:46:26.470 sicher die Möglichkeit, da noch eine Audienz zu kriegen. Das ist auch ein 00:46:26.470 --> 00:46:30.319 laufendes Programm. Also Prototype Fund könnt ihr euch glaub ich noch das nächste 00:46:30.319 --> 00:46:36.990 Jahr oder so auf ein paar weitere Förderrunden noch bewerben. Unsere 00:46:36.990 --> 00:46:44.039 aktuelle Förderung setzt sich zusammen aus Geld, das wir vom Medien 00:46:44.039 --> 00:46:49.109 Innovationszentrum Babelsberg bekommen haben und so einem Stipendium, das ich 00:46:49.109 --> 00:46:56.020 habe, im Moment. Das Medien Innovationszentrum ist so ein Konstrukt, 00:46:56.020 --> 00:47:01.400 da werden quasi Rundfunkgebühren umverteilt an Innovationsprojekte und die 00:47:01.400 --> 00:47:06.520 haben auch ein großes Interesse dran, so Open Source Projekte zu fördern. Kann man 00:47:06.520 --> 00:47:12.180 sich auch bewerben, ist ein bisschen aufwendiger, so in der Durchführung und 00:47:12.180 --> 00:47:17.653 was den administrativen Aufwand angeht und ist nicht so viel Geld wie der Prototype 00:47:17.653 --> 00:47:21.360 Fund. Deswegen immer erst einmal beim Prototype Fund bewerben und wenn ihr dann 00:47:21.360 --> 00:47:24.920 noch mehr Geld braucht, beim MIZ bewerben. Das wäre so meine Strategie. 00:47:24.920 --> 00:47:28.660 P3nny: Genau. Was wir aber im Rahmen dieses MIZ-Dingens machen, weil der Fokus 00:47:28.660 --> 00:47:32.680 da auf Journalisten und journalistische Produktentwicklung liegt, ist, mit 00:47:32.680 --> 00:47:37.160 Redaktionen zusammenzuarbeiten. Also es gab neulich einen dpa Hack Day, wo schon 00:47:37.160 --> 00:47:43.170 die ersten Journalistinnen mit einem Team die API genutzt haben, um so eine Art 00:47:43.170 --> 00:47:46.649 Newslettersystem... also ich kann mich als Lokalredakteur für meine Stadt 00:47:46.649 --> 00:47:50.560 Flensburg oder so da anmelden und kriege dann halt immer nen Alert, wenn Daten... 00:47:50.560 --> 00:47:55.710 also wenn Flensburg irgendwo top oder low gerankt ist. Sowas kann man sich ja auch 00:47:55.710 --> 00:47:59.490 vorstellen, dass man das als Service anbietet. Und ich selber bin freie 00:47:59.490 --> 00:48:03.130 Mitarbeiterin beim WDR. Geplant ist, dass wir ein Daten-Projekt vielleicht rund um 00:48:03.130 --> 00:48:07.599 die Europageschichte oder so mit dem WDR und so machen. Also um das, was wir da 00:48:07.599 --> 00:48:11.090 tun, auch reinzutragen in etablierte journalistische Unternehmen. 00:48:11.090 --> 00:48:17.299 Simon: Ja also ich vermute mal, dass deine Frage auch mehr so auf Businessmodell 00:48:17.299 --> 00:48:23.150 abgezielt hat dafür. Und das haben wir tatsächlich im Moment nicht. Man muss mal 00:48:23.150 --> 00:48:28.600 gucken. Also jetzt im Moment ist es ja sehr... also es ist sehr billig, das zu 00:48:28.600 --> 00:48:31.910 betreiben für uns im Moment. Die Website wird wahrscheinlich auch relativ 00:48:31.910 --> 00:48:35.510 unproblematisch sein, weil die ist erstmal nur ein Haufen HTML. Das kann man im 00:48:35.510 --> 00:48:39.290 Zweifelsfall umsonst bei Netlify oder so betreiben oder auf GitHub. Interessanter 00:48:39.290 --> 00:48:45.060 ist halt die Sache mit der API. Also ich glaube, wenn wir... also so ein großer 00:48:45.060 --> 00:48:50.400 Elastic Search Cluster kostet richtig Geld. Ich denke mal, wenn wir Power User 00:48:50.400 --> 00:48:55.210 haben, die dafür halt irgendwas... also diese API für irgendetwas benutzen, was 00:48:55.210 --> 00:48:58.439 vielleicht für die auch eine kommerzielle Relevanz hat, dann kann ich mir schon 00:48:58.439 --> 00:49:04.350 vorstellen, dass man da irgendein Modell findet, wo man quasi dafür bezahlt, wenn 00:49:04.350 --> 00:49:08.200 man einen sehr hohen, sehr hohes Datenaufkommen verursacht oder so. Aber 00:49:08.200 --> 00:49:12.859 das ist so ein Problem, mit dem wir uns im Moment noch nicht befassen. Grundsätzlich 00:49:12.859 --> 00:49:18.439 hab ich... Genau. Es gibt ja alle möglichen Ideen, was man da drum machen 00:49:18.439 --> 00:49:21.670 kann. Ich kann mir gut vorstellen, dass man perspektivisch vielleicht etwas über 00:49:21.670 --> 00:49:25.720 Sponsoring macht, also dass man sagt, dass Medienorganisationen, die unsere Daten 00:49:25.720 --> 00:49:31.720 verwenden... keine Ahnung, uns irgendwie fördern oder so. Patrica hat gerade 00:49:31.720 --> 00:49:35.512 gesagt, wir haben auch schon so überlegt, ob man halt ne Brücke baut zu anderen 00:49:35.512 --> 00:49:39.290 Tools, wo man dann vielleicht irgendwas Kommerzielles macht, was nicht der Kern, 00:49:39.290 --> 00:49:43.220 das Kernprojekt ist. Also dass man sagt, es gibt ein Datenvisualisierungstool, das 00:49:43.220 --> 00:49:46.319 heißt Data Wrapper. Naja, dass man sagt, wenn Data Wrapper irgendwie unsere Daten 00:49:46.319 --> 00:49:49.450 benutzen will, dann stellen wir das denen halt in irgendeiner Form zur Verfügung und 00:49:49.450 --> 00:49:54.150 man überlegt sich dann da halt ein Modell dazu. Aber ich will eigentlich nicht so... 00:49:54.150 --> 00:49:56.450 ich sehe mich jetzt nicht als Medienunternehmer und ich will jetzt auch 00:49:56.450 --> 00:50:01.920 nicht den nächsten Statista Datenbroker gründen, gerade hier auf dem Kongress. 00:50:01.920 --> 00:50:07.655 Also idealerweise würde dieses Angebot auch irgendwann sich selber abschaffen, 00:50:07.655 --> 00:50:11.020 weil die statistischen Ämter sehen, wie sie die Daten eigentlich aufbereiten 00:50:11.020 --> 00:50:13.960 müssen, damit Bürger die nutzen und dann machen sie selber ein ähnliches Angebot. 00:50:13.960 --> 00:50:18.330 Das ist jetzt vielleicht sehr utopisch gedacht, aber es gibt durchaus Leute bei 00:50:18.330 --> 00:50:22.339 den statistischen Ämtern, die ein Interesse daran haben, sich breiter zu 00:50:22.339 --> 00:50:26.451 öffnen. Und die sehen auch, dass sie etwas machen müssen. Weil die sind dem 00:50:26.451 --> 00:50:32.109 Innenministerium unterstellt und die sind nicht unbedingt die größte Priorität vom 00:50:32.109 --> 00:50:35.990 Innenministerium gerade. Das heißt, die haben durchaus auch ein Interesse daran, 00:50:35.990 --> 00:50:39.890 mehr Aufmerksamkeit für ihre Arbeit und ihre Daten zu kriegen. Und wir stehen auch 00:50:39.890 --> 00:50:51.190 auf jeden Fall im engen Austausch mit den statistischen Ämtern. 00:50:51.190 --> 00:50:57.060 Q: Ja hi, eine Frage, wie ihr die Daten gewinnt. Ihr habt gesagt, Genesis wäre ein 00:50:57.060 --> 00:51:00.210 Austauschformat? Also ich stelle mir das sehr mühsam vor, wenn ich jetzt überlege, 00:51:00.210 --> 00:51:03.450 wie ich diese ganzen Daten von diesen Seiten aggregieren müsste, das wäre - ich 00:51:03.450 --> 00:51:06.710 würde jetzt schon aufhören. Und es scheint da nen Standard zu geben. Könnt ihr 00:51:06.710 --> 00:51:09.640 darüber was sagen oder wie diese Daten zu euch kommen? 00:51:09.640 --> 00:51:13.760 Simon: Ja, genau. Also ich habe vorhin ja erwähnt, wir sind da schon durch so ein 00:51:13.760 --> 00:51:18.980 paar Iterationen gegangen. Am Anfang haben wir tatsächlich die Daten mehr oder 00:51:18.980 --> 00:51:23.849 weniger gescrapet, was auch nicht so einfach ist, weil eigentlich werden die 00:51:23.849 --> 00:51:29.299 Daten da halt für jeden Abruf generiert, aber da gibt's halt so ein paar... das ist 00:51:29.299 --> 00:51:34.596 alles, ja, also alles so ein bisschen kompliziert. Aber es gibt halt die 00:51:34.596 --> 00:51:37.837 Möglichkeit, da auch statische Daten runterzuladen einfach und das haben wir eine 00:51:37.837 --> 00:51:41.809 Weile gemacht und haben uns dann so ein Schema-System überlegt, mit dem man quasi 00:51:41.809 --> 00:51:47.350 automatisiert diese einzelnen Datensätze aufräumen kann. Da musste man aber immer 00:51:47.350 --> 00:51:52.960 noch für jeden von den 450 Datensätze irgendein Schema beschreiben. Wir sind 00:51:52.960 --> 00:51:57.710 dann im Austausch mit den statistischen Ämtern so weit gekommen, dass es 00:51:57.710 --> 00:52:01.970 tatsächlich eine Daten-Schnittstelle gibt, die ist für regionalstatistik.de nicht 00:52:01.970 --> 00:52:09.654 dokumentiert. Aber sie existiert. Alle Genesis-Instanzen, die betrieben werden, 00:52:09.654 --> 00:52:14.119 die haben eine Daten-Schnittstelle. Die kostet manchmal Geld, manchmal nicht. Bei 00:52:14.119 --> 00:52:18.829 dem offiziellen Angebot von Destatis zum Beispiel, da kostet die ein Haufen Geld 00:52:18.829 --> 00:52:22.859 und ist dokumentiert. Bei regionalstatistik.de kostet die nichts, 00:52:22.859 --> 00:52:27.109 dafür ist auch nirgendwo im Web was drüber geschrieben. Wir benutzen jetzt aber diese 00:52:27.109 --> 00:52:30.800 Datenschnittstelle, das ist eine SOAP- Schnittstelle, wenn des hier jemand was 00:52:30.800 --> 00:52:34.700 sagt. Also es ist mehr so Enterprise Level. Das benutzen halt Banken und 00:52:34.700 --> 00:52:38.710 Versicherungen. Vielleicht heute auch nicht mehr, wenn sie heute nochmal damit 00:52:38.710 --> 00:52:44.300 anfangen würden. Aber es ist halt eine SOAP-Schnittstelle und ist quasi eine 00:52:44.300 --> 00:52:49.540 SOAP-Schnittstelle auf nen OLAP Data Cube. Also das ganze ist ein Datenquader, also 00:52:49.540 --> 00:52:54.204 irgendwie so eine Terabyte große Datenstruktur, die irgendwo steht. Die 00:52:54.204 --> 00:52:57.580 könnte man sich auch komplett runterladen und dann direkt auf diesem OLAP Cube 00:52:57.580 --> 00:53:03.460 operieren. Aber im Moment benutzen wir ReGenesis, das ist eben dieses Open Source 00:53:03.460 --> 00:53:08.670 Tool, was ich vorhin beschrieben habe. Und mit ReGenesis kann man eben diese SOAP API 00:53:08.670 --> 00:53:13.970 relativ einfach aus Python ansprechen. Aber die Idee ist halt, dass wir ein Layer 00:53:13.970 --> 00:53:18.160 drüber ziehen, der einfacher ist. Aber wir räumen jetzt, also Stand jetzt, räumen wir 00:53:18.160 --> 00:53:22.540 nicht mehr manuell Daten auf, die wir gescrapet haben. So viel kann ich sagen. 00:53:22.540 --> 00:53:27.579 Q: So eine Follow up Frage hätte ich dazu noch aus dem Operations-Bereich: Skaliert 00:53:27.579 --> 00:53:31.540 das? Also wenn ihr weitere Datenquellen anbinden wollt, wie Bundes-, whatever? 00:53:31.540 --> 00:53:34.190 Keine Ahnung, wie viel manuelle Arbeit steckt da drin? 00:53:34.190 --> 00:53:37.620 Simon: Naja, also jetzt kann man tatsächlich halt... also es gibt dieses 00:53:37.620 --> 00:53:42.189 Open Source Projekt, kannst du dir angucken, kann man mit mehr oder weniger, 00:53:42.189 --> 00:53:46.830 naja, ich glaube so in 20 bis 30 Minuten kann man sich dieses Backend-Projekt 00:53:46.830 --> 00:53:50.540 aufsetzen und dann auch Daten da rein laden. Also es ist schon alles irgendwie 00:53:50.540 --> 00:53:54.890 so automatisiert, dass man das machen kann jetzt für uns. Naja, inwieweit es skaliert 00:53:54.890 --> 00:53:58.448 Also skalieren hat hier verschiedene Dimensionen. Also einmal pumpen wir die 00:53:58.448 --> 00:54:02.460 Daten halt alle in Elastic Search. Keine Ahnung, ob das skaliert, wird sich noch 00:54:02.460 --> 00:54:09.230 rausstellen. Funktioniert jetzt mit dem Datensatz, den wir haben. Die andere Sache 00:54:09.230 --> 00:54:14.210 ist halt der Download der Daten und das ist im Moment relativ einfach aufgesetzt. 00:54:14.210 --> 00:54:17.569 Also ich hatte vorgestern hier einen technischeren Talk drüben in der Chaos 00:54:17.569 --> 00:54:21.700 Zone und hab darüber geredet, wie das technisch funktioniert. Und dann kam 00:54:21.700 --> 00:54:28.720 gestern jemand zu mir und hat mir erklärt, er hat jetzt einen Docker-Container 00:54:28.720 --> 00:54:32.770 gebaut, der unser Backend enthält mit allem Zeug. Also das heißt, irgendjemand 00:54:32.770 --> 00:54:35.680 hat sich dann hingesetzt und das gemacht. Das ging offensichtlich relativ einfach. 00:54:35.680 --> 00:54:43.090 Ich weiß nicht ob die Person da ist. Nein, auch gut, aber ja. Also mit dem Text-Hack 00:54:43.090 --> 00:54:46.153 zu arbeiten ist relativ einfach, wie es perspektivisch skaliert, ist glaube ich 00:54:46.153 --> 00:54:52.099 eher ein Problem der Datenhaltung. Und ich glaube, wenn man richtig viel damit machen 00:54:52.099 --> 00:54:56.039 wollte, müsste man eigentlich sich mit diesem OLAP Cube befassen. Das sagen auch 00:54:56.039 --> 00:54:59.710 die Leute von den statistischen Ämtern. Also wenn man denen mit einem besonderen 00:54:59.710 --> 00:55:03.430 Problem kommt, dann sagen die: Ja, da müssen sie halt den Datenquader 00:55:03.430 --> 00:55:09.700 runterladen. Also, das heißt Datenquader bei denen. Aber ja, das machen tatsächlich 00:55:09.700 --> 00:55:13.580 auch Leute. Also Statista lädt wahrscheinlich diesen OLAP Cube runter, 00:55:13.580 --> 00:55:16.930 wahrscheinlich irgendwie jede Nacht oder so. Das wäre jetzt so meine Vermutung. Und 00:55:16.930 --> 00:55:20.750 dann haben die halt irgendwelche Prozesse hinten dran, was das in ihre Systeme 00:55:20.750 --> 00:55:23.700 übersetzt. Aber das ist halt so ein Bereich, in dem wir jetzt 00:55:23.700 --> 00:55:28.289 nicht operieren. Also das ist dann auch ein anderes Projekt, glaube ich. 00:55:31.199 --> 00:55:37.279 Q: Gibt es, gibt es irgendwo eine Übersicht von diesen amtlichen 00:55:37.279 --> 00:55:40.359 Kennzeichen, von den Variablen oder den Definitionen dahinter? 00:55:40.359 --> 00:55:45.440 Simon: Ja. Willst du darüber was sagen? P3nny: Also auf regionalstatistik.de 00:55:45.440 --> 00:55:53.349 gibt's einen Daten-Katalog und in dem sind die quasi nach Feldern aufgeschlüsselt. 00:55:53.349 --> 00:56:00.150 Also Wirtschaft, Umwelt, Bevölkerung oder so grob. Und da drunter findest du dann 00:56:00.150 --> 00:56:03.450 die einzelnen Dateien. Wobei so richtig gut zum Durchsteigen ist das nicht. Aber 00:56:03.450 --> 00:56:06.700 wenn man sich damit beschäftigt, dann versteht man das schon. Und dann findet 00:56:06.700 --> 00:56:10.410 man diese Kennziffer und diese Kennziffer kann man ja dann auch wieder in die API 00:56:10.410 --> 00:56:13.040 reinschmeißen. 00:56:13.040 --> 00:56:18.870 Hier vorne noch? Da hinten? 00:56:18.870 --> 00:56:22.040 Simon: Also eine Sache dazu ist auch, dass 00:56:22.040 --> 00:56:30.390 wir auch... also wir haben so ein GitHub Issue offen, diese Übersicht auch da 00:56:30.390 --> 00:56:36.450 rauszuziehen und quasi mit in unsere in unsere Web-Oberfläche einzubinden. Also 00:56:36.450 --> 00:56:42.250 ich habe gerade schon gezeigt, dass wir so eine riesenlange Liste haben von jeder 00:56:42.250 --> 00:56:46.319 Stadt und jeder Gemeinde. Und genauso wollen wir halt auch eine riesenlange 00:56:46.319 --> 00:56:50.796 Liste von jedem Merkmal, das man durchsuchen kann. Das heißt, das ist quasi 00:56:50.796 --> 00:56:55.970 eine Aufgabe, an der wir arbeiten werden in den nächsten Wochen. 00:56:55.970 --> 00:57:01.760 Q: Okay, von mir... okay sorry. Nochmal eine Folgefrage quasi: Habt ihr 00:57:01.760 --> 00:57:06.160 mittelfristig vor, auch manuelle Dateneingabe zu ermöglichen? Weil es gibt 00:57:06.160 --> 00:57:10.080 ja relativ viele Reports von Unternehmensberatungen etc pp, wo 00:57:10.080 --> 00:57:13.850 superspannende Daten drinstehen, was aber glaube ich schwierig zu automatisieren 00:57:13.850 --> 00:57:16.490 ist. Ob ihr da so vorhabt, einen Communityapproach zu fahren, 00:57:16.490 --> 00:57:18.720 dass irgendjemand das einträgt und irgendjemand reviewt das 00:57:18.720 --> 00:57:21.150 und dann passt das schon oder irgendwas in die Richtung? 00:57:21.150 --> 00:57:23.010 Simon: Also ja, das haben wir im Moment 00:57:23.010 --> 00:57:29.660 nicht vor. Also im Moment ist unser Weg der einfache Weg und das ist, quasi Dinge 00:57:29.660 --> 00:57:33.740 verwenden, die irgendwie einheitlich erfasst werden, wo klar definiert ist, wo 00:57:33.740 --> 00:57:36.950 sie herkommen, wo auch die Lizenz- Situation klar ist und die dann halt 00:57:36.950 --> 00:57:40.860 wieder zu veröffentlichen. Also ich hab die Frage auch schon öfter bekommen bei so 00:57:40.860 --> 00:57:44.930 Präsentationen und es ist im Moment, glaube ich, irgendwie komplett out of 00:57:44.930 --> 00:57:48.510 scope für uns, weil es halt dann so viele Fragen aufwirft, mit denen wir uns dann 00:57:48.510 --> 00:57:52.980 befassen müssten. Das ist halt einfach... da haben wir gerade andere Probleme, die 00:57:52.980 --> 00:57:56.420 wir einfacher lösen könnten, so. Aber interessant wäre es auf jeden Fall und das 00:57:56.420 --> 00:58:01.710 wäre dann quasi so ein Gecrowdsourcestes, selber gemachtes Open Data Statista. Also 00:58:01.710 --> 00:58:04.359 ich fände es super interessant, aber das ist glaube ich ein anderes Projekt 00:58:04.359 --> 00:58:07.418 einfach. 00:58:07.418 --> 00:58:12.729 Herald: Ich glaube, wir haben noch Zeit für eine letzte Frage. Gibt's noch eine? 00:58:12.729 --> 00:58:21.390 Simon: Ja, keine Fragen. Ist doch super. Ja, ich bin hier links um die Ecke 00:58:21.390 --> 00:58:24.240 noch ne Weile, wenn ihr irgendwie konkretere Fragen habt 00:58:24.240 --> 00:58:27.339 oder euch nochmal was angucken wollt oder mir noch von eurer Idee 00:58:27.339 --> 00:58:30.990 erzählen wollt, dann kommt gern vorbei und quatscht mich an. Vielen Dank. 00:58:30.990 --> 00:58:32.140 Applaus 00:58:32.140 --> 00:58:33.839 Musik 00:58:33.839 --> 00:58:56.822 Untertitel erstellt von c3subtitles.de im Jahr 2021. Mach mit und hilf uns!