PHP-Anwendung für die Tagesschau-Datenbank

Screenshot der PHP-Anwendung für das Tagesschau-ArchivDamit eine Datenbank mit den Tagesschau-Meldungen einfacher nutzbar ist, habe ich eine sehr schlichte PHP-Anwendung geschrieben, die den Zugriff auf die und die Suche in den 192.868 Meldungen aus dem Zeitraum vom 24. August 1999 bis zum 21. Juli 2010 ermöglicht – einschließlich einer Volltextsuche (siehe Screenshot). Diese Software veröffentliche ich unter den Bedingungen der Piratenlizenz.

Download-Link: Gzip-komprimiertes tar-Archiv.

Die Daten sind natürlich nicht darin enthalten, die Weitergabe der Tagesschau-Meldungen wäre ja auch ein Verstoß gegen das Urheberrecht. Wer gewillt ist, sich diese Daten zu beschaffen, kann dies über den verfügbaren Torrent tun und die XML-Dateien mit meinem Skript konvertieren. Ich bitte allerdings darum, dass beachtet wird, was auch auf der Startseite meiner kleinen Anwendung angezeigt wird:

Das Urheberrecht an den Meldungen liegt bei der Tagesschau-Redaktion der ARD. Diese Anwendung ist nicht dazu gedacht, über das öffentliche Internet zugänglich gemacht zu werden, obwohl dies sehr bequem möglich wäre. Sie soll einzig persönlichen Zwecken dienen und auf exquisit lokal verwendeten Webservern eingesetzt werden, wo immer ein Zugriff auf die archivierten Meldungen der Tagesschau aus persönlichem Interesse oder aus dem Wunsch nach politisch-analytischer Arbeit als nützlich erachtet wird. Jede andere Verwendung wäre auch ein Verstoß gegen das Urheberrecht und gegen geltende Gesetze.

Der Quelltext dieser Anwendung ist unter den Bedingungen der Piratenlizenz veröffentlicht worden, die Verbreitung und Anpassung an individuelle Wünsche liegt damit völlig außerhalb meiner Hand. Ich bitte allerdings darum, dass diese Anwendung nicht zusammen mit einer Datenbank verbreitet wird, die urheberrechtlich geschützte Inhalte enthält und damit nicht legal verbreitet werden kann. Diese Anwendung stellt aber meiner Meinung nach kein Problem dar und darf für sich allein beliebig angepasst, genutzt und verbreitet werden, so lange ich dafür nicht verklagt werde.

Share and enjoy, but don’t sue me… 😉

Veröffentlicht unter Download | Verschlagwortet mit , , | Schreib einen Kommentar

Die Tagesschau in der Datenbank

Vor einiger Zeit ist ja ein Torrent aufgetaucht, der ein Archiv der inzwischen auf Drängen der Zeitungs-Lobby zum großen Teil gelöschten Tagesschau-Website enthält. Dieses Archiv liegt zwar scheinbar leicht benutzbar in Form einer XML-Datei für jede einzelne Meldung vor, ist aber dennoch kaum brauchbar. Sicher, es handelt sich um wohlgeformtes XML, dieses erweckt allerdings den Eindruck, dass es als Export aus einer Software entstanden ist, die »mal eben« um die Möglichkeit zum XML-Export erweitert wurde, weil dieses Thema gerade so gehyped wurde, ohne dass besondere konzeptuelle Überlegungen bei dieser Funktionalität angestellt wurden, wie ein solcher Export in nützlicher und leicht verarbeitbarer Weise aufbereitet werden könnte. Oder kurz gesagt: Was einem aus diesen XML-Dateien entgegenschaut, das mag vielleicht für eine Handvoll spezieller Anwendungen – mit Sicherheit für das CMS, aus dem heraus sie entstanden sind – nützlich sein, nicht jedoch für eine »normale« Datenverarbeitung.

Ich bin in den letzten Tagen mehrfach aus recht unterschiedlicher Richtung angesprochen worden, ob ich diesen XML-Export nicht in ein »zugänglicheres« Format bringen könnte, das gezielte Suchen nach Themen und generell die Arbeit mit diesem recht riesigen (als tar.bz2-Archiv immerhin 133 MiB, ausgepackt gut 2 GiB) Textkörper ermöglicht. In diesen Gesprächen hätten sich die meisten Menschen eine einfache Datenbank mit den reinen Meldungstexten gewünscht, die frei von Ballast und Verwaltungsinformationen ist und sich gut für den Aufbau eines Webfrontends im lokalen Netzwerk eignet.

Deshalb habe ich ein Python-Skript geschrieben, das die Texte der Meldungen in eine MySQL-Datenbank importiert. Dieses Skript steht hier zum freien Download und ist von mir unter den Bedingungen der Piratenlizenz veröffentlicht, damit es den größtmöglichen Nutzen entfalte.

Download: Tagesschau-Importer.

Kurzanleitung

Ich setze bei den Interessierten voraus, dass sie wissen, wie eine Datenbank auf einem MySQL-Server angelegt wird und wie darin Nutzerrechte vergeben werden, oder dass sie doch zumindest wissen, wie sich solche Grundlagen nachlesen lassen. Ebenso setze ich voraus, dass sie wissen oder nachzulesen verstehen, wie man sich einen MySQL-Server, einen Python-Interpreter und das benötigte Python-Modul MySQLdb für sein Betriebssystem installiert. Sowohl Python als auch das RDBMS MySQL stehen für jedes moderne Betriebssystem zur Verfügung, so dass das Skript beinahe überall nutzbar sein sollte. Ich habe es allerdings nur mit MySQL 5.0.x und Python 2.6.2 getestet, bei älteren Versionen kann es durchaus Probleme geben.

Nachdem die Datenbank angelegt wurde, ist der Rest recht einfach. Im oberen Teil des Skriptes stehen fünf Variablen, die an die lokalen Gegebenheiten angepasst werden müssen, in meiner Testumgebung sieht das so aus:

DBNAME="tagesschau"
DBUSER="tagesschau"
DBPASS="tagesschau"
DBHOST="localhost"
XMLDIR="./xml"

Die Variablen DBNAME, DBUSER, DBPASS und DBHOST sind die Zugangsdaten für die Verbindung zu verwendeten Datenbank, die Variable XMLDIR gibt an, in welchem Verzeichnis die entpackten XML-Dateien liegen; es kann natürlich auch ein absoluter Pfad verwendet werden.

Nachdem diese Variablen mit dem jeweiligen Lieblingseditor an die lokalen Bedingungen angepasst wurden, kann das Skript gestartet werden – wie ein Skript gestartet wird, ist von Betriebssystem zu Betriebssystem unterschiedlich, ich mache das einfach an der Kommandozeile. Nach dem Start ist der Rechner mehrere Stunden lang damit beschäftigt, XML zu parsen und Meldungen in die Datenbank zu befördern.

Die gegenwärtige Version des Skriptes schlägt für einen kleinen Anteil der Meldungen aus verschiedenen Gründen fehl, und sie nimmt nur Meldungen mit Text (also keine reinen Video- oder Bildbeiträge aus dem CMS der Tagesschau) in die Datenbank auf, da die multimedialen Inhalte durch die umfangreichen Löschungen auf der ARD-Site verloren sind.

Die drei Datenbanktabellen werden automatisch angelegt, und wenn vorher Tabellen des gleichen Namens in der Datenbank existierten, denn werden diese Tabellen gelöscht. Bitte vorher darüber nachdenken und am besten eine eigene Datenbank für die alten Tagesschau-Meldungen benutzen!

Datenbank

Die Datenbank besteht aus drei Tabellen.

Tabelle: meldung

Die Meldungen.

  • meld_id INT(10) UNSIGNED NOT NULL
    Primärschlüssel
  • meld_pubdatum DATETIME NOT NULL
    Publikationszeitpunkt
  • meld_kurztitel VARCHAR(255)
    Ein kurzer Text, der bei Tagesschau-Meldungen gewöhnlich in kleinerem Schriftgrad über dem Titel steht
  • meld_internal_id VARCHAR(16)
    Eine interne ID aus den XML-Dateien, die ich für Debugging-Zwecke aufgenommen habe.
  • meld_kurztext TEXT
    Ein meist kurzer Absatz, der den Meldungstext anreißt, manchmal leer
  • meld_text TEXT
    Der Text der Meldung. Die einzelnen Absätze habe ich mit jeweils einer Leerzeile getrennt.
  • meld_titel VARCHAR(255)
    Der Titel der Meldung, entspricht etwa dem, was man unter einer Schlagzeile versteht.

Auf den Feldern meld_kurztext und meld_text ist ein FULLTEXT-Index gelegt, um Volltextrecherchen zu ermöglichen. Auch weitere Indizes sind für die meisten Anwendungen hoffentlich sinnvoll angelegt.

Tabelle: kategorie

Bei den Tagesschau-Meldungen wurde ein System der Verschlagwortung benutzt, das ähnlich den »Tags« in typischen Blogsystemen ist. Diese Schlagwörter können auch für Recherchen nützlich sein, deshalb wurden sie in die Datenbank aufgenommen.

  • kat_id INT(10) UNSIGNED NOT NULL
    Primärschlüssel
  • kat_name VARCHAR(64) NOT NULL
    Der Name der Kategorie, grundsätzlich in Kleinbuchstaben umgewandelt.
  • kat_count INT(10)
    Die Anzahl Meldungen für diese Kategorie, dies kann nützlich sein, um die häufigsten Kategorien in einer Software oder einer Webanwendung anzuzeigen.

Tabelle: v_kat_meld

Verbindertabelle, welche die N-zu-N-Beziehung zwischen Meldungen und Kategorien abbildet.

  • v_kat INT(10) UNSIGNED NOT NULL
    Foreign Key für die Beziehung zu kategorie.kat_id
  • v_meld INT(10) UNSIGNED NOT NULL
    Foreign Key für die Beziehung zu meldung.meld_id

Abschließender Hinweis (und Warnung)

Das Urheberrecht für die Meldungen der Tagesschau liegt bei der Tagesschau-Redaktion. Es ist ein Verstoß gegen das Urheberrecht, wenn man diese Meldungen – so bequem dies mit einer MySQL-Datenbank auch gehen mag – in das öffentlich zugängliche Internet stellt, und es wird völlig sicher einen sehr unerfreulichen Schriftverkehr mit der Rechtsabteilung der ARD und den juristischen Beauftragten jener Verleger- und Baumbestempler-Lobby haben, die so viel Mühe darauf verwendet haben, diese von Gebührenzahlern finanzierten Inhalte von ihren Freunden und Speichelleckern aus der classe politique aus dem deutschen Internet entfernen zu lassen. Neben dem unerfreulichen Schriftverkehr wird es zu zivilrechtlichen Forderungen kommen, die finanziell schmerzhaft werden können. Deshalb sollten die alten Meldungen der Tagesschau niemals im Internet veröffentlicht werden, auch wenn ein paar hundert Zeilen PHP für diesen Zweck ein leichter Hack sind, wenn diese Meldungen erst einmal in einer MySQL-Datenbank vorliegen.

Ich habe zu diesem Vorgang natürlich auch eine marginalisierte und möglicherweise irrelevante Meinung, die natürlich nichts an der Illegalität einer Zweitveröffentlichung der alten Tagesschau-Inhalte ändert.

Der Versuch der Verleger- und Zeitungs-Lobby, die Löschung solcher Inhalte aus dem Internet zu erzwingen, die von der Allgemeinheit über die Rundfunkgebühren bezahlt wurden, nur damit die Verleger- und Zeitungs-Lobby im Internet mit ihren Archiven so etwas wie ein »Alleinstellungsmerkmal« hat, drückt eine Verachtung gegenüber den Menschen in Deutschland aus, welche die Menschen in Deutschland der Verleger- und Zeitungs-Lobby zurückgeben sollten. Übrigens bemerkt die Verleger- und Zeitungs-Lobby die Verachtung am schnellsten, wenn diese finanziell spürbar wird; und so ein Zeitungsabo ist schnell abbestellt und auf die Morgenlektüre von größtenteils aus dem NITF-Ticker der großen Agenturen abgeschriebenen Meldungen kann man leicht und ohne besonderen Schmerz verzichten. Sollte sich die Journaille allerdings jemals darauf besinnen, dass im Zeitalter quasi lichtschneller Medien nicht die Jagd nach dem Selbstzweck der Aktualität ein angemessener Maßstab für die Qualität ist, sondern das Erschließen von Hintergründen und größeren Zusammenhängen (natürlich ist so etwas niemals frei von Meinung, und das soll es auch gar nicht sein – aber die jetzige scheinbare »Sachlichkeit« ists ja auch nicht), denn braucht sie auch kein mit politischer Einflussnahme, Gewalt und Verachtung gegenüber den Menschen in Deutschland durchgesetztes »Alleinstellungsmerkmal« mehr, da sie ihr Alleinstellungsmerkmal aus der geänderten Haltung heraus selbst entwickeln wird. Ob es jemals dazu kommen wird? Es hängt wesentlich davon ab, wie sehr der Journaille die so breit ausgeteilte Verachtung der Menschen in Deutschland zurückgegeben wird, indem auf den Kauf ihrer Produkte verzichtet wird.

Veröffentlicht unter Download | Verschlagwortet mit , , , | 4 Kommentare

Kleine Designänderungen

Das Design dieser Homepage war über viele Monate hinweg ein schlechtes Provisorium – bekanntlich halten solche Provisorien ja am längsten. Ich hatte es ursprünglich von meinem alten Blogdesign abgeleitet. Dieses war zwar recht gut für mein Blog geeignet, aber die Navigation in einer Website mit mehreren Seiten und Unterseiten war doch eher ein bisschen schäbig.

Nun habe ich mich endlich einmal aufgerafft, für diese Site ein geeigneteres Design zu entwerfen, das die Inhalte über ein leicht durchschaubares Menü zur Verfügung stellt. Dabei habe ich die betont schlichte Gestaltung nicht verändert, denn ich glaube immer noch nicht, dass ein Streben nach unnötigem Ausschöpfen technischer Möglichkeiten und grafischer Exzellenz der richtige Weg ist, eine Website aufzuwerten. (Mein am simpelsten gestaltetes Blog, das Blah-Blog, ist auch gleichzeitig das erfolgreichste geworden.) Tatsächlich ist der Unterschied auf dem ersten Blick kaum zu sehen, wenn man einmal davon absieht, dass ich eher noch ein bisschen grafischen Ballast abgeworfen habe.

Technisch ist das neue Design übrigens ein child theme vom WordPress-3.0-Standard-Theme twenty ten. Mit dieser Vorgehensweise hat es mich nur zwei Stunden meiner Lebenszeit gekostet, möglichst viel vom alten Design in die neuen Techniken zu retten.

Zurzeit habe ich das »neue« Design noch nicht mit jedem Browser testen können. Ich gehe aber davon aus, dass es keine besonderen Darstellungsprobleme verursachen wird. Auch werde ich in den nächsten Wochen wohl noch die eine oder andere kleine Anpassung hier vornehmen, um die letzten kleineren Schwächen auszuräumen – ich habe das mal wieder mit etwas heißer Nadel stricken müssen und werde kleinere Fehler erst durch die Benutzung lernen. Trotz solcher kleineren Fehler ist es jetzt bereits ein echter Gewinn für diese kleine, unbeachtete Homepage im Internet.

Veröffentlicht unter Allgemeines | Verschlagwortet mit , , , | Schreib einen Kommentar

Niemand will »das Schöne« im Internet

Ich finde es wirklich faszinierend, welche meiner Projekte viele Leser anziehen und welche eben nicht. Wenn ich über die Dinge abjauche, wenn ich dabei sogar in zuweilen unflätige Sprache verfalle, denn bekommt solches Schreiben eine (in Zugriffszahlen gemessen) enorme Aufmerksamkeit – ganz so, als ob die Menschen keine eigenen Schimpfwörter kennten. Und auch das immer wieder ins Gallige und zuweilen Unreflektierte und Hingeklatschte abdriftende Blahblog erfreut sich einer geradezu erschreckenden Leserzahl, obwohl es kaum mehr ist als eine beinahe inhaltslose Linkschleuder mit kurzen Kommentaren, oder, wie ich es gern nenne, mein persönliches Twitter.

So bald ich eher verhalten, zweideutig (manchmal bis zur Schwammigkeit) und ruhig schreibe, ist es hingegen uninteressant, wenn ich nach den Leserzahlen gehe. Und wenn ich gar meiner eigentlichen Lust nachgehe und versuche, etwas nur Schönes zu machen und ein Blog mit ästhetisch ansprechenden Fraktalen fülle (und dabei nur selten so etwas schwergängiges wie die mathematischen Hintergründe und die verwendeten Formeln behandle), zeigen mir die Zugriffszahlen, dass es völlig am »Bedarf« der Internetnutzer vorbeigeht.

»Fraktale Welten« ist unter allen meinen Projekten das Unbeachteste. (Gut, meine Musik wird noch seltener angehört, aber das ist auch sehr speziell.)

»Das Schöne« scheint nicht das zu sein, was jemand sucht oder sehen möchte, wenn er im Internet unterwegs ist.

Und das ist auch das ganze Dilemma dieses Mediums.

Veröffentlicht unter Bloggen | Verschlagwortet mit , , , , | 3 Kommentare

Es gibt ein paar »Themen«…

Es gibt ein paar »Themen« in den Suchbegriffen, die scheinen unsterblich zu sein, die tauchen genau so immer wieder von Neuem auf wie die damit verbundenen Spiele der Marke »Ruf mich für relativ hohe Kosten an und beantworte eine einfache Frage und hoffe darauf, dass du in diesem intransparenten Spiel durchgestellt wirst und gewinne einen Haufen Geld für diese Nullleistung«. Eines dieser Themen, das immer wieder Leser in das Blahblog führt…

Tiere mit f am Ende in diversen Kombinationen

…ist zum Beispiel die Suche nach einem Tier mit »f« am Ende, die vorgestern ein paar Leutchen über Google auf einen inzwischen uralten Eintrag gelotst hat… neuerdings ist das Spiel aber »erschwert« durch die Erweiterung, dass die Tiere auch ohne »a« sein müssen, so dass die ganzen Schafe da draußen sich mal weitere Tiernamen ausdenken müssen, während ihr Geld von den Wölfen der Contentindustrie aufgegessen wird… :mrgreen:

Unfassbar allerdings, dass wohl immer noch genug Leute auf diese inzwischen etwas ausgelutschte Nummer hereinfallen. Denn der einzige Gewinner sind die Deutsche Telekom und die Veranstalter dieser wenig spielerischen Spiele, die sich die Einnahmen durch die Telefongebühren teilen.

Veröffentlicht unter Bloggen | Verschlagwortet mit , , , | Schreib einen Kommentar