RP:AG Meinungsfindung/DisQussion

Aus Piratenwiki
Wechseln zu: Navigation, Suche

DisQussion

DisQussion ist ein Meinungsfindungstool der RP:AG_Meinungsfindung. Das Projekt versucht ein Diskussions- und Anteragserarbeitungstool zu erzeugen, das ohne Moderation auskommt und Diskussionen automatisch in produktiver Weise strukturiert. Die bisherige Software ist in Django und JavaScript geschrieben und kann ohne nennesnswerte Vorkenntnisse mit allen aktuellen Browsern bedient werden. Der Quelltext findet sich unter [1].

Roadmap für die Entwicklung.

Die Problemstellung

Diskussionen auf Mailinglisten oder in Foren sind oft nicht zielführend, werden emotional aufgeladen und unsachlich geführt. Die Mailingliste ist als Plattform um organisatorische Informationen zu verbreiten durchaus geeignet, bietet aber als Diskussionsmedium zu wenige Möglichkeiten zur Strukturierung. Das Webforum baut auf den gleichen Strukturen auf und hat daher mit den gleichen Problemen zu kämpfen:

  • Es gibt keine thematische Strukturierung. Threads ergeben sich dadurch dass beliebige Überschriften bzw. Betreff-Zeilen gewählt werden und dazu Antoworten gesammelt werden.
  • Eine nachträgliche Strukturierung ist entweder nicht möglich oder kann nur durch Moderatoren durchgeführt werden, die dann auch Beiträge zensieren könnten.
  • Wer längere Beiträge schreibt oder mehr Beiträge schreibt wird stärker wahrgenommen als "leisere" Diskussionsteilnehmer. In der Praxis versuchen aber gerade diejenigen "laut" zu werden, die emotional werden und die sachliche Ebene verlassen haben.
  • Eine Filterung nach der Qualität der Beiträge ist nicht möglich.
  • Für Neueinsteiger ist eine Diskussion im Nachhinein kaum nachvollziehbar, da zu viel Text entsteht, der für Neulinge sehr ungünstig strukturiert ist.
  • Die Struktur begünstigt eine "Eskalation" der Diskussionen: Missverständnisse und extreme Meinungen nehmen viel mehr Platz ein, als produktive Informationen.

Das führen produktiver Diskussionen ist aber eine der wichtigsten Aufgaben für die Piratenpartei, da wir im Gegensatz zu anderen Parteien darauf angewiesen sind, dass die Parteibasis über produktive Diskussionen die politischen Positionen Entwickelt, die dann vom Vorstand oder von Abgeordneten vertreten werden können. Es geht dabei weniger um die Erstellung qualifizierter Meinungsbilder, sondern hauptsächlich um die erarbeitung von Antragstexten, die als Basis für qualifizierte Entscheidungen dienen können.

Die Grundideen

Beim Design von DisQussion waren folgende Ideen und Grundsätze maßgeblich:

  • DisQussion soll die Diskussionen strukturieren:
    • Vorschläge sollen als vergleichbare Texte erstellt werden müssen.
    • Argumente sollen jeweils für sich vorgebracht werden.
    • Argumente sollen klar einem Vorschlag zugeordnet werden können.
    • Äußerungen die weder Argument noch Vorschlag sind, sind flüchtig und dienen dazu Trends und Meinungen wieder zu geben.
    • Vorschläge und Argumente denen viele Piraten zustimmen sind wichtiger als Einzelmeinungen und Minderheitsvorlieben.
  • DisQussion soll die Hürde zur Beteiligung an Diskussionen so niedrig wie möglich ansetzen.
  • DisQussion soll Anreize schaffen sich in eine Diskussion einzubringen.
  • DisQussion soll die Sache in den Vordergrund stellen und nicht auf einzelne sozial starke Meinungsmacher angewiesen sein.
  • DisQussion soll ohne Moderation funktionieren und allen Piraten die gleichen Rechte zugestehen.
  • DisQussion soll keine Beiträge zensieren. Jeder Vorschlag und jedes Argument soll abrufbar sein, damit Minderheiten für Mehrheiten werben können.
  • DisQussion soll einfach zu bedienen sein und möglichst geringe technische Voraussetzungen haben.
  • DisQussion soll schön sein und Spaß machen.

Aus diesen Grundsätzen haben wir folgende Strukturen festgelegt:

Grundsätzlich geht es um die Erstellung und Ausarbeitung von Vorschlägen. Vorschläge sind Texte, die als rohe Ideen initiiert werden und von den Diskussionsteilnehmern zu Anträgen ausgearbeitet werden. Die Ausarbeitung ist nicht destruktiv, so dass eine Erweiterung oder Veränderung auch dazu führen kann, dass der modifizierte Vorschlag zu seiner Vorlage in Konkurrenz tritt. Dadurch muss ein unerfahrener Benutzer keine Angst davor haben einen gut bewerteten Vorschlag zu beschädigen.

Jeder Benutzer hat die Möglichkeit Vorschläge zu bewerten. Dabei kann sowohl die Zustimmung zur Idee hinter dem Vorschlag als auch die Qualität der Formulierung bewertet werden. Die Bewertung wird dazu genutzt Vorschläge mit guter Bewertung bevorzugt anzuzeigen und unsachliche Beiträge auszusortieren. Sie wird bei jedem Vorschlag übersichtlich angezeigt und gibt einen Überblick, welche Vorschläge zu einem Thema wichtig genommen werden.

Den Vorschlägen zugeordnet werden Argumente. Argumente sind nicht Teil des Vorschlagstexts, werden aber zusammen mit diesem angezeigt. Sie können nach dem gleichen Schema wie Vorschläge bewertet werden, sodass sie zu jedem Vorschlag nach Relevanz sortiert und nach Formulierung weiter entwickelt werden.

Wird ein Vorschlag weiter entwickelt, ist es sehr wahrscheinlich, dass die selben Argumente auch für die überarbeitete Fassung gelten. Daher übernimmt ein weiter entwickelter Vorschlag alle Argumente seiner Vorlage, nicht jedoch die Bewertungen. Es kann jedoch für den Fall von Vorschlägen und Argumenten mit wenigen eigenen Bewertungen eine statistisch fundierte Vorhersage getroffen werden, wie die Bewertungen der Vorlage entscheiden könnten, sodass auch für kaum bewertete weiter Entwicklungen eine sinnvolle Anzeige ermöglicht werden kann.

Parallel zu Vorschlagstexten und Argumenten bietet DisQussion eine Microblogging-Platform, über die die Benutzer Konversationen führen können. Vorschläge und Argumente haben jeweils eindeutige #-Tags, sodass die Konversationen über Vorschläge und Argumente automatisch gefunden werden können und passend dazu angezeigt werden können. Die Microblogging-Plattform dient auch dazu, dass Piraten ihre Follower auf interessante Diskussionen aufmerksam machen und für Unterstützung werben können.

Zusätzlich kann das System seine Benutzer über die Aktivität in Diskussionen auf dem laufenden halten, in denen bereits interagiert wurde oder über die Diskussionsaktivitäten von Personen berichten, denen man folgt. Zusätzlich kann das System automatisch dazu anregen sich an vernachlässigten Diskussionen zu beteiligen.

Die Umsetzung

Unsere Implementierung baut auf Django auf, einem Web-Framework in Python. Zur Darstellung der Zusammenhänge zwischen Vorschlägen wird ein auf SVG basierender Graph erzeugt, der über Javascript Interaktionsmöglichkeiten bietet. Mittels AJAX werden Daten zu Vorschlägen dynamisch nachgeladen, sodass ein dynamisches Bedienerlebnis gewährleistet wird.

Bisher lassen sich Vorschläge erzeugen und weiter entwickeln, wobei Creole-Wiki-Syntax zur Formatierung verwendet werden kann. Vorschläge lassen sich auch bewerten, wobei bei bereits bewerteten Vorschlägen auch im nachhinein eine Änderung der Entscheidung möglich ist. Vorschläge werden hirarchisch Strukturiert, indem StructureNodes verwendet werden. Diese bieten die Möglichkeit Textabschnitte in einer bestimmten Reihenfolge zu kombinieren, wobei bei jedem Textabschnitt (Slot genannt) mehrere Alternativen Existieren können. Um den Text eines StructureNode zusammen zu setzen, werden die best bewerten Texte der beteiligten Slots kombiniert. Am Oberen Rand der Webseite wird eine Navigationszeile angeboten, in der diese Struktur dargestellt und navigierbar wird.

Ein Teil dieser Navighation ist der Graph, der immer angezeigt wird, wenn ein Slot ausgewählt ist und verschiedene Alternativen zur Wahl stehen. In diesem Graph werden standardmäßig die fünf am besten bewerten Vorschläge bzw. StructureNodes angezeigt und zusätzlich die Vorschläge, die durch weiterentwicklung mit diesen in Verbindung stehen (sowohl Weiterentwicklungen der fünf gut bewerten Vorschläge als auch Originalvorschläge die für die gut bewertete Weiterentwicklung als Vorbild dienten. Es kann natürlich passieren, dass in dieser Ansicht nicht alle Vorschläge angezeigt werden, weshalb geplant ist den Graphen umschaltbar zu gestalten, sodass es auch eine weniger übersichtliche Ansicht gibt, in der alle Vorschläge angezeigt werden. Auch im Moment schon kann zu allen Vorschlägen gesprungen werden, indem die Adressleiste entsprechend Editiert wird.

In der Adressleiste wird die Hirarchie im Format der am Computer üblichen Ordnernavigation angezeigt, wobei jeweils der Kurztitel des Slots mit der Nummer der gewählten Variante durch einen Punkt kombiniert wird. Es ergeben sich also URLs der Form: /ersterTitel.x/zweiterTitel.y/dritterTitel.z Beim letzten Kurztitel kann auch die Nummer weggelassen werden, sodass dann automatisch die momentan am besten bewertete Variante agezeigt wird. Mit dieser URL-Struktur kann jeder Text im System eindeutig gefunden werden und so leicht ein Aufruf gestartet werden diesen Text zu bewerten.

Bewertungen können momentan nur für atomare Texte (TextNode genannt) abgegeben werden. Eine Bewertungsfunktion für StructureNodes ist geplant, wobei dann eine Warnung angezeigt werden muss, da diese Aktion alle am Text des StructureNode beteiligten TextNodes auf einmal bewerten würde. Um die Bewertungen statistisch stabiler zu machen, werden momentan vom System zehn enthaltungen hinzugerechnet. In einer späteren Ausbaustufe wäre es denkbar stattdessen eine Quarantänephase einzuführen, um auf diesem Weg die Sichtbarkeit von Vorschlägen lange genug garantieren zu können, um genug Bewertungen für ein ausreichend repräsentatives Bewertungsbild zu sammeln.

Argumente fehlen noch im System, wobei noch Fragen zur geeigneten Darstellung und zur Vererbung geklärt werden müssten. Auch Microblogging ist noch nicht implementiert. Ebenfalls fehlen noch sämtliche Vorhersagen zu gering bewerteten Vorschlägen. Es war auch Angedacht weniger gut bewrtete Vorschläge auch weniger Prominent darzustellen, was bisher außer der Top 5 im Standardgraphen nicht umgesetzt ist.

Die Systemvoraussetzungen für DisQussion sind ein Webserver mit Django-Integration und eine passende von Django unterstützte Datenbank. Es gab bisher keine Benchmarks zur erforderlichen Rechenleistung, bisher gibt es aber nur Datenbankabfragen, die eine nennenswerte Rechenzeit beanspruchen. Hier kann mit einem größeren Speicherverbrauch die azahl der Abfragen noch deutlich reduziert werden.

Weitere Informationen

Einführung hier

Viele Ideen wurden in Qlaus Blog DemoQratie bereits dokumentiert. Dort finden sich auch Ideen zur Gameification, um bei der Nutzung von DisQussion gezielte Anzeize zu schaffen und das Nutzung auf Spaß auszulegen.

In den Protokollen der AG-Meinungsfindung finden sich Hintergründe zu Designentscheidungen, die größtenteils implementiert sind:

  • Protokoll der Mumble-Sitzung auf der die Idee geboren wurde.

Auf dem Barcamp 2012 in Prüm wird es einen Vortrag zu DisQussion geben, bei dem auch eine lauffähige Entwicklerversion gezeigt wird.

In die Entwicklung einsteigen

Unter [2] findet sich das öffentliche Git-Repository zu DisQussion.

Installationsanleitung

Unter Ubuntu kann die Testumgebung mit folgenden Schritten installiert werden: sudo apt-get install python-django (Installieren von Django mit allen Dependencies) git clone https://www.github.com/Qwlouse/DisQussion (Klonen des Git-Repository auf dem lokalen System) cd DisQussion (wechseln in das neu erstellte Projektverzeichnis) python manage.py syncdb (erstellen einer SQLite Datenbank mit initialbelegung) python mangae.py runserver (starten des Entwicklungsservers) Nach diesen Schritten steht unter http://localhost:8000/ eine Testversion von DisQussion zum Testen bereit.

Um in die Entwicklung einzusteigen, kannst du ich einfach bei Qlaus melden, und ihm deinen Nutzernamen bei GitHub mitteilen. Er schaltet dann die Rechte zum Commiten deiner Änderungen frei. Natürlich kannst du auch ohne Freischaltung mit deinem lokalen Repository entwickeln.

Hilfe brauchen wir in allen Bereichen:

  • Das Datenbankmodell muss um Argumente und Microblogging erweitert werden.
  • Der Controller muss um eine bequem zu bedienende Nutzerverwaltung und die Views für die fehlenden Datenbankfunktionen erweitert werden.
  • Die AJAX Funktionalität muss noch erweitert werden, um sowohl reloads zu vermeiden, als auch das Nutzungserlebnis konsistent zu anderen Webanwendungen zu halten
  • Die Templates müssen um die neuen Funktionalitäten erweitert werden.
  • Das Design ist bisher sehr reduziert und hat insbesondere im Bereich der Navigationszeile schwächen. Auch müsste die Typografie der Texte noch verfeinert werden.
  • Das Javascript muss sowohl erweitert als auch optimiert werden.
  • Es fehlen automatische Tests für die meisten Programmteile.

Wer Kenntnisse in Python oder Javascript besitzt, kann in die Kernentwicklung einsteigen. SQL-Kenntnisse sind nicht notwendig, da Django für Datenbankabfragen bequeme Wrapper bereit stellt.

Für die Arbeit an den Templates sind HTML und CSS Kenntnisse ausreichend. Die Dajango-Template-Engine ist weitgehend selbsterklärend für Kenner von HTML und wird um wenige leicht verständliche Logik-Elemente erweitert.

Wer am Design arbeiten möchte, muss die Ideen nur irgendwie darstellen können. Auch ohne Kenntnisse von Webdesign können die Ideen ausgearbeitet werden, die dann in HTML und CSS in die Templates integriert werden.

Es sind auch noch zahlreiche Strukturelle und mathematische Fragen offen, die ebenfalls ohne technische Kenntnisse diskutiert werden können. Hier wäre nur die Auseinandersetzung mit den Ideen von Disqussion sowie der bisherigen Umsetzung Voraussetzung.