GEXF Vizz und die SNA Metriken

2 Jul

Nun wollte ich mich auch mal wieder zurückmelden und in einem kurzen Blogeintrag beschreiben, was sich bei „GEXF Vizz“ in den letzten zwei Wochen geändert  hat und was sich, wie ich hoffe, in der Zukunft noch ändern wird.

Zur Erinnerung: Es geht in meinem Projekt insgesamt darum, dass ich große Forschungsnetzwerke visualisieren können möchte. Insbesondere soll dies durch eine einfache Menüführung für den Benutzer so gestaltet sein, dass er in einen Auswahldialog die Konferenz und die gewünschten Jahre wählen kann und ab diesem Punkt die Webanwendung alles weitere übernimmt (das bedeutet: holen der Daten aus der MySQL Datenbank von KnowAAN und automatische Generierung der dazugehörigen GEXF Datei). Danach soll diese GEXF Datei automatisch durch eine Javascript Bibliothek namens Sigma.js angezeigt werden. Zudem sollen verschiedene Graphmetriken zu dem aktuell angezeigten Forschungsnetzwerk ausgerechnet werden (wahrscheinlich wird es hier noch einige Anpassungen geben, da es sehr gut wäre wenn auch wirklich nur die Metriken zu dem aktuellen Graphen -in diesem Zeitraum- angezeigt werden, denn es wird ja möglich sein die Zeiträume für die aktuelle Anzeige zu verändern und sich somit nur bestimmte Jahre anzeigen zu lassen). Alles in allem ist es in dieser Situation ein wenig ungünstig, wenn man nur die Metriken für den Gesamtgraphen über alle Jahre hinweg anzeigen kann.

Insgesamt funktioniert dies auch schon einigermaßen zuverlässig. Technisch ist die Berechnung der Metriken so gelöst, dass diese von einem Java-Server berechnet und dann per PHP über eine Rest URL abgefragt werden, um diese dem anfragenden Client anzeigen zu können. Allerdings bin ich hier auf das Problem gestoßen, dass es verschiedene Definitionen der so genannten ,closeness centrality‘ gibt. Um darauf eingehen zu können, möchte ich knapp beschreiben was diese eigentlich aussagt und danach kurz auf das Problem eingehen. Die ,closeness centrality‘ beschreibt mathematisch die Position eines einzelnen Knoten in dem gesamten Graphen. Die Idee dahinter ist, dass ein Knoten der sehr zentral in dem Netzwerk liegt, wohl auch in der Summe eine geringe Distanz zu allen anderen Knoten hat. Dafür summiert man für den einzelnen Knoten die Distanzen auf und teilt diesen Wert danach durch die Anzahl der Gesamtknoten. Ein kleines Problem bei dieser Definition ist, dass der Wert „schlechter“ wird, je größer er ist. Dies ist wiederum bei anderen Metriken nicht unbedingt so, wie zum Beispiel bei der ,degree centrality‘ für die ein „großer Wert“ gut ist; denn das bedeutet in diesem Fall, dass ein Knoten einen hohen Grad hat und damit viele Verbindungen in dem Graphen zu anderen Knoten besitzt. Natürlich gilt insbesondere in einem sozialen Netzwerk, dass eine hohe Anzahl an Verbindungskanten gut ist, da die Person dann viele Beziehungen zu anderen Personen in dem Netzwerk besitzt. Daher gibt es auch noch andere Definition von der eben genannten ,closeness centrality‘, die etwa den Kehrwert des gerade beschriebenen Wertes benutzen. In diesem Fall passt auch wieder die Intuition ins mathematische Schema. Nun habe ich ja vorhin schon geschrieben, dass diese Sachen bereits relativ zuverlässig funktionieren (es sind noch keine Tests gelaufen, aber rein von meinem Gefühl her läuft es schon relativ stabil :)).

Als nächstes soll nun die Ausgabe mit Circos implementiert werden. Dadurch werden kreisförmigen Visualisierung möglich, die tatsächlich ein sehr hohes ,data to ink ratio‘ aufweisen können.

Das bedeutet, dass man auf sehr kleinem Raum (beziehungsweise für den Druck die namensgebende Tinte) sehr viele Informationen packen kann; trotzdem bleiben diese Visualisierung meist relativ lesbar. Insgesamt wird es nötig sein, dass mein Java-Server eine Circos Konfigurationsdatei erstellt und dann per Kommandozeile Circos mit dieser Datei als Parameter aufruft. Allerdings sind, bevor ich das vollständig umsetzen kann, noch ein paar Tests nötig, da Circos auch sehr komplexe und schwierig zu lesende Diagramme erzeugen kann und ich erst noch eine Konfiguration der Anwendung finden muss, in der einigermaßen intuitive Visualisierungen erzeugt werden. Dies ist allerdings nicht ganz leicht, da ich zum gegenwärtigen Zeitpunkt noch nicht weiß, welche Art überhaupt von den Betrachter als „intuitiv“ wahrgenommen wird. Abschließend möchte ich das „Problem“ kurz an einem Beispiel zeigen:

An diesem Beispiel kann man schön erkennen, dass man ohne eine wirklich ausführliche Beschreibung über die Art und Weise, wie diese dieses Diagramm zu lesen ist, wohl nicht mehr sonderlich viel erkennt…

[Anmerkung: Die beiden Bilder entstammen dem „Circos practical course“]

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: