Rivva-Logo

»Everything and its Hashtag«

Es ist Zeit, die alten Kategorien zu überdenken und ihnen ein modernes Klassifizierungssystem zur Seite zu stellen: Hashtags sind das überlegene Content-Discovery-Tool. Flexibler. Dynamischer. Tagsonomischer :)

Damit Rivva wieder bunter wird, habe ich nebst neuem Webcrawler noch einen Klassifizierer zum maschinellen Hashtaggen entwickelt.

Tauchen nun mehrere Artikel zum Hashtag auf, teilt sich der Nachrichtenstrom und ein neuer Strom/Fluss/Bach und meinetwegen auch Rinnsal entsteht. Alles ist ein Fluss… wie schon unter »Everything is a Stream« skizziert.

Es ist ein Neuanfang. Überflüssig werden die großen Schubladen (#technik, #medien, #politik, usw.) dennoch nicht. Ich sehe die Hashtags mehr als Container orthogonal zu den bestehenden Kategorien und langfristig ungefähr als Auffangbecken für die Living Stories/Structured News.

∀ Nerds: Technisch sind Hashtags Vektoren und bilden einen Wald (disjunkte Bäume).

Auf Wunsch als nächstes: Dunkler Modus

Rivvabot/2.0: Nach 14 Jahren ein neuer Webcrawler

Ich habe die Zeit seit dem Spendenruf also damit verbracht, unter anderem einen neuen Webcrawler zu schreiben.

Nummer eins war das allererste Commit ins Git-Repository (* welches an diesem 22.1.2007 bloß »memetracker« hieß) und verfolgte das Grundprinzip, dass Vertrauen transitiv vererbt wird: „Von einer Menge vertrauenswürdiger Quellen ausgehend, folge ihren Empfehlungen (Outlinks) und zähle die so gefundenen Seiten – je nach Eigenschaft – zur vertrauten Menge. (Wiederhole unendlich.)“

Der neue Bot kombiniert nun ein gutes Dutzend solcher Strategien. Am wichtigsten für den neuen Ansatz war jedoch, auf welche Weise die Community und Vernetzung – jede Seite umgebend – ausschlaggebender würde. Wie das dann künftig zu mehr Vielfalt führen soll, dazu morgen in »Everything and its Hashtag«.

Rivva: Ohne eure Spende geht es nicht mehr

Ich bin ab jetzt auf die freiwillige Leser:innenfinanzierung angewiesen. Deine Spende hilft, das Projekt in Schuss zu halten, zu verbessern und auszubauen.

Liebe Leserin, lieber Leser,

seit 2007 versucht Rivva, euch einen flotten aktuellen Netz-Überblick zu geben über die am meisten geteilten Artikel und diskutierten Themen – regelmäßig auch jenseits des bequemen Tellerrands.

So eine Seite zu finanzieren, ist und war nie einfach:

Je besser sie funktioniert, desto schneller schickt sie seine Leser:innen weg zu anderen Seiten.

Es fehlt die menschliche Stimme, die man als Nutzer:in mit dem Projekt verbindet. (Der gesprochene Podcast und das persönliche Blog sind hier gegenüber einem suchmaschinenartigen Dienst weit im Vorteil.)

Es entsteht das häufige Missverständnis, dass ja alles automatisch läuft.

Wozu also braucht das Projekt Geld?

In Wahrheit macht ein Projekt wie dieses eine Mordsarbeit – allein deshalb, weil sich das Internet und das Verhalten der Menschen im Internet ständig ändert… und Rivva immer mitziehen muss.

Es gibt dafür den schönen Begriff der Red-Queen-Hypothese: Alice (im Wunderland) trifft im Fortsetzungsbuch auf die Rote Königin, die ihr erklärt: „Hierzulande musst du so schnell rennen, wie du kannst, wenn du am gleichen Fleck bleiben willst.“

Die meiste Arbeit ist daher leider gar nicht direkt sichtbar: eine eigene Webcrawler-Infrastruktur (zum Abgrasen der vielen Quellen), hausinterne Machine-Learning-Modelle (für Dutzende verschiedener Aufgaben und Statistiken), mehrere gemietete Server (zur Verteilung des Ganzen), eine riesige Datenbank (als Abbild des Internets der vergangenen bald 14 Jahre).

Warum Rivva auf deine Mithilfe angewiesen ist

Im Moment sieht leider alles danach aus, als wäre es ohne breitere Unterstützung nicht mehr zu wuppen.

2020 hat mich (wie viele) voll erwischt. Im Frühjahr habe ich meine letzten Aufträge verloren: Projekte, die von Rivva-Technologien profitiert und sie teils mitfinanziert haben.

Ich finde ja, dass es mindestens einen solchen Dienst speziell für den deutschsprachigen Raum geben sollte.

Aber ohne eure Hilfe geht es nicht mehr. Überlegt doch bitte mal, ob ihr das Projekt nicht mit einem für euch passenden Betrag unterstützen möchtet.

Das ist entweder möglich durch eine Mitgliedschaft über Steady oder eure PayPal-Spende an meine E-Mail frank.westphal@gmail.com Wirklich jeder Beitrag hilft.

Leider kann ich euch keine Spendenbescheinigung ausstellen. Rivva ist nicht gemeinnützig; als finanzielle Zuwendung wird die Spende ordnungsgemäß als Einnahme versteuert.

Wenn ihr bereits eine Steady-Mitgliedschaft abgeschlossen habt, meinen größten Respekt! Überlegt doch bitte mal, ob ihr nicht auf das nächst größere Paket "aufrunden" möchtet. Schreibt mir gerne, was ihr euch als Gegenleistung für die verschiedenen Paketpreise wünschen würdet. Vielleicht lässt sich da was machen.

Von Herzen Dank für deinen Support,

Frank

Anomaly detection for News: Finding new insights while combating misinformation

Leider bin ich in der letzten Google-DNI-Runde ebenfalls gescheitert. Fürs Logbuch… hier die Projektskizze:

Project title: Anomaly detection for News: Finding new insights while combating misinformation

Brief overview:

From a news standpoint, anomalies are extremely interesting because unexpected events, patterns and trends are very newsworthy in the best case or a sign of error and manipulation in the worst case.

Anomaly detection is the identification of rare items, events or observations which should raise suspicion (and curiosity) by differing significantly from the majority of the data. Anomalies are also referred to as outliers, novelties, noise, deviations and exceptions. [according to Wikipedia]

Implementing anomaly detection for news would help finding new insights while combating misinformation.

Detailed description:

Interesting is what is unexpected. Automatic anomaly detection can help identify what's the norm to flag the unexpected. The proposed tool works on a language level but mainly and most importantly on the information content, i.e. on facts hidden in deeper layers of story text.

It builds on my DNI project from round 2 (Structured News: Atomizing the news into a browsable knowledge base for structured journalism) to extract and transform all kinds of information contained in news text into normalized and highly structured data structures that intelligent algorithms are able to utilize.

The goal would be to monitor and track fast-paced news feeds and news wire for outliers, that is changes in the underlying phenomenon that is out of the ordinary but could not be observed without the comparison with larger background information that only automation can process.

The prototype would start with data types I have already worked with during the before mentioned DNI project. Reacting on the following types of changes would be my first and primary focus:

Anomaly detection could be an assistent tool for the newsroom and the individual journalist. It could be a new factor in ranking news and prioritizing effort. It could be of great value to generate novel ideas for news stories and data journalism. It could be a further component in the anti-fakenews campaign.

What makes your project innovative?

Anomaly detection is well-known for time series data, e.g. fluctuating numbers over time, like stock prices. It is also known for log file analysis, e.g. network security. I have not found many examples that take natural text as raw input. Applying the ideas to the news context seems to be a relatively unexplored and therefore worthwhile idea.

To make the tool as useful as possible it has to be able to look much deeper into story text and comparison than usually possible. It has to look beyond the language level into the actual information content. But this problem has been solved to the most part during my former DNI project (Structured News: Atomizing the news into a browsable knowledge base for structured journalism) so I can build on this.

The tool will learn from history but also uses external sources like Wikipedia for background checks. To establish a kind of fact database I will use a number of natural language processing and machine learning approaches I'm already familiar with and I'd also like to try some newer deep learning techniques that seem very promising.

My goal is to deliver a service to analyze an existing article collection as a baseline to compare new incoming stories against. The tool would flag and evaluate before mentioned changes in the underlying data. An additional user interface allows the user to define criteria in different categories (s)he is particularly interested in.

Basis for the project will be 12 years worth of web news crawl data collected by my service rivva.de.

How will your Project support and stimulate innovation in digital news journalism? Why does it have an impact?

This project adds a new dimension to identify novel information buried in a news stream while at the same time flagging probably false information by looking much deeper into an article's text than usually feasible.

It should be a great addition to the repertoire of tools at the fingertips of journalists and newsrooms. It cuts and filters through news feeds, news wire and individual articles in a very special manner. It takes information theoretic measures to quantify the interestingness of news to uncover most unexpected info.

Therefore, it should be a great source for new insights, story ideas and data journalism projects. Of course it should also help flag human error or consumer manipulation.

Because the tool looks for unexpected events, patterns and trends, it plays an important role as a monitoring/alarming system. That's where anomaly detection has traditionally been used for. So, integration with other systems used for this purpose (e.g. a dashboard, Slack agent or Twitter bot) could be worthwhile.

Competition:

I have only found a research paper from 2014 (http://www.aclweb.org/anthology/C14-1134) that takes part of the suggested approach. My project is much more interested in movement in data buried in news texts in forms and magnitude that only automated tasks can handle the flow of new information.

Hilfe benötigt: Bitte unterstützt Rivva über Steady

Kann ich Euch irgendwie mit ins Boot holen, um Rivva.de als (auch integralen) Teil des offenen Internets zu retten?

Liebe Leserin, lieber Leser,

Rivva bittet um Deine Unterstützung.

Leider steht das Projekt einmal wieder auf der Kippe. Ich könnte wirklich dringend Eure Hilfe gebrauchen:

Über Steady kannst Du Projekten, die Dir richtig und wichtig erscheinen, mit einem monatlichen oder jährlichen Obolus unter die Arme greifen.

Mit drei, fünf oder zehn Euro im Monat ist viel getan – wenn sich nur genug Menschen für die Sache einsetzen.

Nach gut 12 Jahren sind alle anderen Versuche, den Dienst auf eine finanzielle Basis zu stellen, bedauerlich gescheitert. Meine Finanzreserven sind restlos aufgebraucht.

Um die Seite wenigstens aufrechtzuerhalten, im bestmöglichen Fall zu verbessern und auszubauen, möchte ich daher auf Steady zurückgreifen und hoffe hier auf Euren Rückhalt.

Die Seite dafür lautet: https://steadyhq.com/rivva

Von Herzen Dank,

Frank

Hilfe benötigt: Bitte unterstützt Rivva über Steady

Toxic Comments: Hosting better news discussions

Als ich diesen Projektvorschlag für den Google DNI Fund eingereicht habe, war ich so zuversichtlich – und meinte: „Das ist wichtig, das kann gar nicht abgelehnt werden.“ Leider doch!

Project title: Toxic Comments: Hosting better news discussions

Brief overview:

The internet is broken and we have to fix it. Recent years have seen an alarming increase in "toxic" communication in comments sections all around.

People wishing to express themselves are leaving the conversation because of abusive, hateful or otherwise anti-social speech. Several prominent news sites have shut down their discussions forums entirely, seemingly having given up on thoughtful audience feedback altogether.

I'd like to develop a tool for publishers that helps like a spam filter so that the civil exchange of ideas and different opinions becomes possible yet again.

Detailed description:

Todays tone and behaviour in news discussions is reaching toxic levels, ultimately driving intelligent people away. This happens at a great loss for societal progress because the story and discussion around the fireplace is an age-old tradition of our species.

The assumption being tested with this prototype is that the careful application of the so-called "broken windows theory" supported by a bag of matching moderation tools could help restore our values in online conversation. According to the broken windows theory, "visible signs of crime, anti-social behavior and civil disorder create an urban environment that encourages further crime and disorder […]. The theory thus suggests that policing methods that target minor crimes […] help to create an atmosphere of order and lawfulness […]." (source: Wikipedia)

Carefully moderated comments sections offer rich debate and useful information for both journalists and readers. And who is not pleasently surprised when the comments below an article turn out to be even more useful than the original article? Even though content moderation poses substantial time investment on the publishers' side, it saves a multitude of this time on the consumers' side to sort through comment columns. Equipped with better tool support, moderators could keep these democratically so important discussion spaces alive and at a lower cost, but not so lively that they have to be turned off. As we know, the dosage makes the poison.

The prototype will do a job comparable to your spam filter and predict the probability that a user comment demonstrates abusive or in other regards offensive language. Flagged comments could then be sorted in ranked order according to "toxicity" indicators or trending topic to point moderators to the most controversial or fastest developing poisonous comment threads that deserve their attention first. Nobody would dispense with their email spam filter but when it comes to content moderation we could do with much more and better tool support as well.

The same functionality could be provided to readers and commenters on the news site. Readers could choose themselves via slider interface to filter out comments above a certain threshold of profanity, while commenters would get immediate feedback on the consequences of their writing.

Comments that would likely register at toxic levels would include those that contain hate speech, are off-topic, contain name-calling, are without substance or fit other offensive criteria for being sent to moderation. Perspective API (see below) currently recommends that no comment be automatically banned by the algorithm. Human judgement should be the basis for the final decision. The tool would guide the moderator by ranking the comments in order of attention needed, and the moderator would guide the tool by making the final call that the tool can learn from for scoring future comments.

What makes your project innovative?

This project will supply a prototype implementation for identifying, classifying and managing toxic comments.

Because I am not a content provider myself this project would be transformative to me if I could become a technology provider in the respected area. Through the web crawl corpus that my service rivva.de has archived over the last 11+ years I'm in the unique position to compare and contrast conversational tonality and behaviour online over long periods of time. My goal is to sample this corpus of comments from news sites, blogs, forums, Twitter and Facebook to create the initial dataset for experimentation. Ideally the community would submit and flag even more training examples. I could include the possibility to label comments and therefore create a valuable dataset directly on rivva.de. It would fit. The site's focus has always been about the aggregation of different perspectives on the news. This repository of data then could establish a baseline and playground to evaluate the ideas described and implicated.

The technology built for this project will mainly include several natural language processing and understanding tasks.

Since language is highly ambiguous, advanced natural language understanding will be most crucial to the problem. This project would help me familiarize myself more with state-of-the-art deep learning models like convolutional and long-short-term-memory neural networks.

Key deliverables will be a new dataset of manually labelled comments for the machine learning task of classifying user generated content into different bins of toxicity as well as an API for easy integration of this task into benefitting systems.

It's essential that we account for multiple degrees of toxicity and possibly overlapping classes. What types of user comments are appropriate on a given site is usually highly dependent on its content and intended audience.

Although a team led by Google (Jigsaw) is experimenting on the very same frontier, the German language poses some unique problems in text analysis and therefore bears overlapping efforts. Especially since Germany has spearheaded the effort by its new law against hate speech.

How will your Project support and stimulate innovation in digital news journalism? Why does it have an impact?

Better tool support for the task of content moderation allows to host better conversations online.

When comments sections can be managed more effectively and more efficiently, more stories can be opened up to comments in less time. When commenters can directly get feedback on the comment they are producing, tonality and behaviour online should improve, because they want their thoughts to be published, not rejected. When readers can themselves sort comments by their toxic level, better comments sections translate into more user engagement and therefore more advertising revenue. All in all, trust in news organizations can be regained.

But most importantly, discussion spaces are way too important to leave to the big social networks. They are one of the pillars of the internet and we should fight for (almost) everyone of them. They act as a medium for change. Just think of Apple's famous "Think different" campaign: "Because they change things. They push the human race forward."

Competition:

Perspective API by Jigsaw and Google's Counter Abuse Technology team is part of a collaborative research project called Conversation AI. Its alpha version is currently being used by Wikipedia, The New York Times, The Economist, The Guardian and the Coral Project. A Kaggle data science competition on the subject and sponsored by Jigsaw has just ended.

Communities that have been operating on manual moderation with quite a success and for quite some time, often assisted by karma points, up- and down-voting systems and community ground rules, include MetaFilter, Hacker News and Reddit.

Structured News, Monat 6: Visualisierung als Karte, Konzeptdiagramm und Sozialgraph, Klassifizierung von Textsorten

Widmete sich die erste Projekthälfte dem Problem, Text in schön strukturierte Daten zu transformieren, will ich auf der letzten Etappe einige Möglichkeiten evaluieren, aus den Datenstrukturen Lego-artig wieder ganz neue Nachrichtenprodukte zu generieren.

Mein Ziel ist es, wei­test­mög­lich das Living-Stories-Format zu adaptieren, dessen Prinzipien noch heißen:

Visualisierung als Karte, Konzeptdiagramm und Sozialgraph

Das Format ist einfach wie genial, ermöglicht es sowohl, sich einem unbekannten Thema zu nähern, als auch, an Themen längere Zeit dran zu bleiben.

Gleichermaßen sollten verschiedene Visualisierungsformen behilflich zur Seite stehen, um komplexere Zusammenhänge zu erforschen. Etwa kartographisch, konzeptionell oder konnektiv. Und dann intra Story wie inter Story.

Klassifizierung von Textsorten

Eine Unterscheidung in Textarten (und andere feingranulare Artikelmerkmale) erscheint intelligent, sobald Leser ihre Interessen gezielt selbst lenken können sollen. (Also eigentlich immer.)

Harte Grenzen zu ziehen, entpuppte sich dabei in der Praxis als knifflige Sache. Man muss weiche Klassen bilden.

Klassifizierung von Textsorten

Nachtrag:

Auf der letzten Projektetappe ging mir leider zunehmend die Puste aus für die monatlichen Reports. Vielleicht hole ich das aber irgendwann nach… Nur kurz fürs Logbuch:

Structured News, Monat 5: Relationsextraktion

Welche Verwandtschaft und Beziehungen bestehen zwischen benannten Entitäten? Diesen Monat wurden die Informationsschnipsel vorangegangener Monate zum Wissensgraph verknüpft.

Relationsextraktion ist die Aufgabe, Verbindungen zwischen Entitäten zu erkennen. Bringt man so in Erfahrung, dass zwei Entitäten in Beziehung stehen, könnte jeder andere Satz, der sie enthält, ebenfalls diese Relation ausdrücken. Der Wissensbaum wächst…

Verbindungen

Relationen können binärer Natur sein, etwa (PERSON, ist-Mitglied-in, ORGANISATION), oder komplexer Zusammensetzung, möchten wir beispielsweise Geschehnisse detailliert abbilden können.

Auch die Faktenextraktion aus Monat 2 verfolgte den Zweck, Wissens-Slots zu füllen. Beim Extrahieren von Relationen kann nur zusätzlich ein Informationsschema mit ins Spiel kommen, je nach Abstraktheit der Fragestellung.

Aus den bisher extrahierten Entity-Beziehungen fand ich eine besonders spannend: (PERSON, sagte, ZITAT) fußt noch auf der Zitatdatenbank aus Monat 1, in der man nach Wer-sagt-was-über-ein-Thema recherchieren kann, wobei die sagte-Relation natürlich in viele verschiedene Ausdrucksformen aufgefächert werden kann:

Zitatrelation

Structured News, Monat 4: Begriffsklärung benannter Entitäten, Normalisierung, Verknüpfung

Mehrdeutigkeit, in Sprache in hohem Maße gegeben und in Schlagzeilen und Kurznachrichten vielfach sogar mit Vorsatz verwendet, stellt sprachverarbeitende Programme vor schwierigste Probleme. Mithilfe großer Wissensbasen und statistischer Inferenz können wir jedoch fehlende Weltkenntnis und gesunden Menschenverstand in Teilen simulieren.

Dieser Monat ging allein an die Datenbereinigung. Die letztes Mal extrahierten Entitäten wollten noch vereindeutigt, standardisiert und semantisch annotiert werden.

Für verlässliche Daten zu sorgen, gehört zu den wichtigsten und auch lohnenswertesten Aufgaben. Schlechte Datenqualität zieht im Allgemeinen gravierende Folgewirkungen auf anschließende Prozesse nach sich, immerhin kann jede Aus- und Verwertung nur so gut sein wie die zuvor erhobenen Daten.

Begriffsklärung benannter Entitäten

Problem Nummer eins war, dass Begriffe mehrere Bedeutungen haben und aus dem Kontext heraus auf eine Interpretation geschlossen werden muss. Identische Zeichen bezeichnen hier also unterschiedliche Objekte.

Normalisierung

Der umgekehrte Fall tritt ein, wenn die selbe Sache mehrere Bezeichnungen kennt. Wir möchten diese Duplikate erkennen, normieren und zusammenlegen (dafür Identifikator vereinbaren).

Verknüpfung

Zu guter Letzt wollen wir alle unsere Datensätze möglichst tief in einer existierenden Ontologie oder Wissensbasis verankern. Als Ressourcen dienen sich hier Wikipedia oder Linked-Open-Data-Projekte wie DBpedia an.

Diese Wikifizierung schafft den Zugang zu einer Vielzahl impliziter Informationen, die im annotierten Text nicht explizit sind, und ermöglicht somit auch, eine Reihe von Aufgaben zu lösen, die sich aufgrund des alleinigen Textes eben nicht beantworten ließen.

Begriffsklärung benannter Entitäten

Ein simpler Trick zur Verbesserung eigens betriebener Suchfunktionen ist allgemein, die einleitenden Wikipedia-Paragraphen aller im Dokument erwähnten Begriffe als Mini-Dokument verkettet mit angemessenem Gewicht einfach mit in den Suchindex zu werfen.

Structured News, Monat 3: Eigennamenerkennung, facettierte Suchabfragen

Welche Personen, Organisationen, Orte und Produkte werden im Text erwähnt? In diesem Monat machen wir ein Häkchen an die wichtigsten Named Entities. Wobei uns stets die Mehrdeutigkeit von Sprache in die Quere kommt. Weshalb wir nächsten Monat noch unsere Daten bereinigen und annotieren werden.

Nicht ohne Sprachwitz titelte Google zur Einführung seiner semantischen Knowledge-Graph-Technologie einst "Things, not strings". Die Identifikation und Klassifikation von Eigennamen zählt von je her zu den Standardaufgaben in der Informationsextraktion.

Eigennamenerkennung

Ein Eigenname ist eine Folge von Wörtern, die sich auf eine real existierende Entität bezieht. Von Interesse sind zum Beispiel:

Doch selbst die im vergangenen Monat behandelten numerischen Typen fallen im Information Retrieval gewöhnlich in das weite Themenfeld der sogenannten Named Entities:

Sobald wir diese Informationen automatisiert in Freitexten ein jeder Couleur entdecken können, lassen sich darüber schon verhältnismäßig genau die journalistischen W-Fragen einkreisen: wer? was? wo? wann? wie? warum?

Eigennamenerkennung

Wir können sogar noch weiter gehen und jede Zeichenkette, die jemandem oder etwas einen Namen gibt, als Named Entity auslegen – je nach Anwendungskontext: chemische Formeln, gestalterische Arbeiten, historische Ereignisse, musikalische Werke, Filme, Gesetzestexte, Krankheitsbilder, Kunstwerke, Publikationen, Rezepte uvm.

Das Potenzial ist nahezu unerschöpflich, insbesondere wenn wir unsere Daten anschließend mit einem Schema – einem formalen Modell für die Struktur der Daten – ausstatten, um dieses dann kumulativ mit Metadaten auszuschmücken.

Eine Problematik ergibt sich daraus, sprachliche Zeichen (Eigennamen) auf eine Interpretation hin (das Bezeichnete) aufzulösen.

Sprache kann mehrdeutig sein (zum Teil gewollt). Nicht selten bezeichnen unterschiedliche Worte das selbe Objekt (gilt es zu normalisieren) oder es meinen identische Worte gänzlich verschiedene Objekte (zu disambiguieren).

Hinzu kommen die pathologischen Beispiele. Die Europäische Union können wir vorrangig gewiss als Organisation kategorisieren, als Wirtschaftsraum betrachtet könnte man sie jedoch gleichermaßen als Ort einordnen. Im Einzelfall und ohne Kontext meist selbst für Menschen unentscheidbar.

Facettierte Suchabfragen

Die Suchfunktion wurde indes zum Drilldown um eine Facettennavigation erweitert.

Facettierte Suchabfragen

Wie wir sofort einsehen müssen, treten die oben genannten Schwierigkeiten zutage: Dubletten, die sich nur in ihrer Oberflächenstruktur voneinander unterscheiden, semantisch allerdings die selbe Sache repräsentieren.

Solche Koreferenzen zu berücksichtigen, wird eine der Aufgaben im nächsten Monat sein.

 

Archiv: 2021 (2)   2020 (1)   2019 (2)   2018 (5)   2017 (3)   2016 (3)   2015 (1)   2014 (2)   2013 (8)   2012 (11)   2011 (4)   2010 (8)   2009 (18)   2008 (12)   2007 (17)   alle (97)