Verborgene Signale · Begleitseite ← Alle Aktivitäten DE·EN
Kapitel 8 · Das unsichtbare Kollegium · Aktivität 8.1

Wer spricht mit wem? — die Bienenkönigin finden

Du holst dir die öffentlichen Beitragsdaten einer Open-Source-Gemeinschaft, zeichnest ihr Netzwerk und berechnest, wer im Zentrum steht — die heimliche Bienenkönigin, die den Schwarm zusammenhält.

Dauer 90 Min Schwierigkeit mittel Gruppe allein oder zu zweit Rein digital S

Kurz gesagt

Was: Aus einer Liste „wer hat auf wen geantwortet“ baust du mit networkx ein Netzwerk und lässt es zeichnen. Dann berechnest du die Betweenness-Zentralität und findest die Person, über die die meisten Verbindungen laufen — den Knotenpunkt, der die Gruppe zusammenhält.

Warum: Ein unsichtbares Kollegium — Open Source, offene Wissenschaft — ist ein Netzwerk, und Netzwerke lassen sich messen. Du erlebst, dass man einer Gruppe ansieht, wo ihre verbindende Führung sitzt — ohne jemanden zu fragen.

Du brauchst: Python mit networkx, pandas und matplotlib. Eine fertige Beispiel-Datenliste liegt im GitHub-Repo; wie du eigene Daten holst, steht in der Erweiterung.

Worum es geht

1614 kündigte eine Flugschrift eine geheime Bruderschaft an, die ihr Wissen über ein unsichtbares Netzwerk teilte — die Rosenkreuzer. Die Bruderschaft war erfunden, doch die Idee wurde wahr: in der Royal Society, die Robert Boyle ein „unsichtbares Kollegium“ nannte, und heute in Open Source und offener Wissenschaft. Solche Gruppen — der Autor nennt sie Collaborative Innovation Networks — sind die lebenden Nachfahren jener erfundenen Bruderschaft.

Und ein Kollegium lässt sich lesen. Zeichnet man auf, wer mit wem schreibt, bekommt das Netz eine charakteristische Form: Die meisten Mitglieder sind mit wenigen anderen verbunden, aber einige wenige — die Knotenpunkte — mit sehr vielen. Diese Knotenpunkte halten den Schwarm zusammen; sie sind, im Bild aus Kapitel 6, die Bienenkönigin: nicht Befehlshaberin, aber das Zentrum, um das sich alles ordnet. Bei Linux sitzt Linus Torvalds an genau dieser Stelle — und mit der Betweenness-Zentralität aus Kapitel 5 kannst du das nicht nur behaupten, sondern berechnen.

Netzwerk einer Open-Source-Gemeinschaft, Knoten nach Betweenness-Zentralität skaliert, die zentrale Person hervorgehoben
Ein unsichtbares Kollegium, sichtbar gemacht. Jeder Punkt ist eine Person, jede Linie eine Antwort. Die Knoten sind nach ihrer Betweenness-Zentralität grösser gezeichnet — je mehr Verbindungen über eine Person laufen, desto grösser. Der hervorgehobene Knoten ist die Bienenkönigin.

Ein bisschen Hintergrund

Woher die Daten? Wir lesen — wie schon in 5.2 — nur das Muster, nicht den Inhalt: eine Kantenliste „A hat auf B geantwortet“. Solche Daten liefern offene Gemeinschaften frei: die Kommentare unter den Issues und Pull-Requests eines Projekts auf einer Plattform wie GitHub, oder das Archiv einer Mailingliste. Für den Einstieg nimmst du die vorbereitete Beispiel-Datei aus dem Repo; die Erweiterung zeigt, wie du dir mit ein paar Zeilen deine eigenen Daten holst.

Was ist Betweenness-Zentralität? Stell dir vor, jede Person will jede andere erreichen und nimmt dafür immer den kürzesten Weg durchs Netz. Die Betweenness einer Person zählt, auf wie vielen dieser kürzesten Wege sie liegt. Eine Person mit hoher Betweenness ist eine Brücke: Nimmt man sie heraus, zerfällt die Gruppe leicht in Inseln. Das ist etwas anderes als „hat viele Verbindungen“ — es heisst „verbindet die anderen miteinander“. Genau das meint die „starke, verbindende Führung“ unter den sechs Signalen.

Öffentlich heisst nicht rücksichtslos

Auch öffentliche Beitragsdaten betreffen echte Menschen. Wir werten Struktur aus, nicht Inhalte, und wir stellen niemanden bloss. „Bienenkönigin“ ist eine Rolle im Netz, kein Werturteil über einen Menschen. Wenn ihr statt Open-Source-Daten euren eigenen Klassen-Chat nehmt (aus 5.2), gilt dasselbe wie dort: Einverständnis einholen, Namen anonymisieren.

Das Netzwerk bauen

  1. Pakete installieren. pip install networkx pandas matplotlib.
  2. Kantenliste holen. Beispiel-Datei kanten.csv aus dem Repo laden (Spalten quelle,ziel = „quelle hat auf ziel geantwortet“) — oder die eigene aus 5.2 bzw. der Erweiterung verwenden.
  3. Graph zeichnen. Skript unten ausführen. Es zeichnet das Netz, Knoten nach Betweenness skaliert.
  4. Bienenkönigin bestimmen. Die Person mit der höchsten Betweenness ablesen — und mit deinem ersten Eindruck vergleichen.

Auswerten mit networkx

Rund fünfundzwanzig Zeilen — der Kern ist eine einzige Funktion, betweenness_centrality. Vollständiger Code und Beispieldaten auf GitHub.

import pandas as pd
import networkx as nx
import matplotlib.pyplot as plt

# Kantenliste: jede Zeile = "quelle hat auf ziel geantwortet"
kanten = pd.read_csv("kanten.csv")               # Spalten: quelle, ziel
G = nx.from_pandas_edgelist(kanten, "quelle", "ziel")

# Das zentrale Mass: wer liegt auf den meisten kuerzesten Wegen?
bc = nx.betweenness_centrality(G)
koenigin = max(bc, key=bc.get)
print(f"Bienenkoenigin (hoechste Betweenness): {koenigin}  ({bc[koenigin]:.3f})")

# Vergleich: reine Anzahl Verbindungen (Grad) — oft NICHT dieselbe Person
grad = dict(G.degree())
print("Top nach Verbindungen:", sorted(grad, key=grad.get, reverse=True)[:3])
print("Top nach Betweenness :", sorted(bc,   key=bc.get,   reverse=True)[:3])

# Zeichnen: Knotengroesse ~ Betweenness (die SocialCompass-Idee)
groessen = [400 + 6500*bc[n] for n in G.nodes()]
farben   = ["#8a5a1a" if n == koenigin else "#2F5D3A" for n in G.nodes()]
pos = nx.spring_layout(G, seed=3)
nx.draw_networkx_edges(G, pos, alpha=0.35)
nx.draw_networkx_nodes(G, pos, node_size=groessen, node_color=farben)
plt.axis("off"); plt.tight_layout(); plt.show()

Was du sehen solltest

Ein Netz mit vielen kleinen Randknoten und einigen grossen im Zentrum — die typische skalenfreie Form. Ein Knoten ragt heraus: die Bienenkönigin. Oft überrascht der Vergleich: Die Person mit den meisten Verbindungen ist nicht immer die mit der höchsten Betweenness. Wer alle miteinander verbindet (Brücke zwischen Gruppen), zählt hier mehr als wer einfach viele Kontakte hat.

Arbeitsblatt

Die verbindende Führung berechnen

  1. Schau dir das gezeichnete Netz an und tippe, bevor du die Zahlen liest: Wer ist die Bienenkönigin? Lag dein Auge richtig?
  2. Erkläre in eigenen Worten den Unterschied zwischen „hat die meisten Verbindungen“ (Grad) und „liegt auf den meisten kürzesten Wegen“ (Betweenness). Gib ein Beispiel, wo beide auseinanderfallen.
  3. Was passiert mit dem Netz, wenn man die Person mit der höchsten Betweenness entfernt? Warum ist das ein Zeichen ihrer Bedeutung?
  4. Warum hat ein solches Netz die skalenfreie Form (wenige grosse, viele kleine Knoten) — und nicht etwa lauter gleich grosse?
  5. Der Autor zeichnete einst aus seinem Deloitte-Postfach so ein Netz — ohne die Mails zu lesen. Was genau kann man aus dem blossen Muster ablesen, und wo ist die Grenze?
Lösung anzeigen

1. Individuell. Meist erkennt das Auge den grössten, zentral liegenden Knoten richtig — aber nicht immer, weil Betweenness die Lage im Netz misst, nicht nur die sichtbare Grösse.

2. Grad zählt die direkten Verbindungen einer Person. Betweenness zählt, auf wie vielen kürzesten Wegen zwischen anderen sie liegt. Beispiel: Eine Person, die zwei sonst getrennte Gruppen als einzige Brücke verbindet, hat vielleicht nur zwei Kontakte (niedriger Grad), aber sehr hohe Betweenness — jeder Weg zwischen den Gruppen läuft über sie.

3. Das Netz zerfällt oft in mehrere Inseln, die nicht mehr verbunden sind. Gerade weil so viele Verbindungen über diese Person laufen, hält sie den Schwarm zusammen — das ist die Bedeutung einer verbindenden Führung.

4. Weil neue Mitglieder sich bevorzugt mit schon gut vernetzten Personen verbinden („wer viel hat, bekommt mehr“). So wachsen wenige Knoten zu grossen Knotenpunkten, während die meisten wenige Verbindungen behalten — die typische skalenfreie Form.

5. Aus dem Muster liest man Struktur: wer verbindet, wer am Rand steht, wie schnell reagiert wird, ob die Führung wandert — also die Signale der Zusammenarbeit. Die Grenze: warum jemand zentral ist, worüber geredet wird und wie es den Menschen geht, sagt das Muster nicht. Dafür braucht es Inhaltsanalyse (Kapitel 7) — und stets die Einwilligung der Beteiligten.

Wenn's klemmt

ProblemWahrscheinliche Ursache & Lösung
Graph ist ein wirres KnäuelZu viele Knoten fürs Auge. Nur die aktivsten behalten (z. B. Personen mit ≥ 3 Verbindungen) oder das Layout mit k= in spring_layout auflockern.
Betweenness überall 0Das Netz zerfällt in isolierte Paare ohne durchlaufende Wege. Mehr Daten sammeln oder prüfen, ob die Kantenliste wirklich Antworten (gerichtete Reaktionen) enthält.
Rechnung sehr langsamBetweenness ist bei grossen Netzen teuer. nx.betweenness_centrality(G, k=100) schätzt sie aus einer Stichprobe von 100 Knoten — für die Rangfolge meist genug.
Namen doppelt (Groß-/Kleinschreibung, Aliase)„Mira“ und „mira“ werden als zwei Personen gezählt. Vor dem Bauen vereinheitlichen (.str.lower().str.strip()).
CSV lädt nichtTrennzeichen oder Spaltennamen weichen ab. pd.read_csv(..., sep=";") testen; Spalten auf quelle,ziel umbenennen.

Zum Nachdenken

Erweiterung

← 5.2 Die sechs ehrlichen Signale 9.1 Der Mimik-Spiegel →