Bachelor-Arbeit: ADORE

3 Jun

Nun ist es endlich auch bei mir soweit – ich schreibe meine Abschlussarbeit! „ADORE – An Application for Drawing Object RElations“ soll das gute Stück heißen und es künftig vereinfachen, Verbindungen zwischen Objekten darzustellen. Kennen tut man sowas schon in der speziellen Ausprägung „Über-wen-kenne-ich-Person-X?“ aus dem ein oder anderen Sozialen Netzwerk wie z.B. StudiVZ oder XING: hier kann man in einer Art Mini-Graph sehen, ob man eine Person noch über andere als den direkten Pfad kennt.

Meine Anwendung soll diese Funktion nun verallgemeinern – statt nur Freundschaften zwischen Personen darzustellen, möchte ich einen Ansatz schaffen, um mit möglichst wenig Aufwand Verbindungen in anderen Anwendungsszenarios darzustellen. Hier kann man sich außer Sozialen Netzwerken so etwas vorstellen wie die Verbindungen zwischen Autoren, Papers, Tagungen und Zitaten in einem Research Network. Dabei soll der Ansatz so flexibel wie möglich bleiben, d.h. die Anwendung hat keine domänenspezifische „Intelligenz“. So sind auch exotische Szenarios wie z.B. die Beeinflussung von verschiedenen Musikstilen untereinander denkbar. Dazu lege ich ein Modell mit Knoten und Kanten zu Grunde, die typisiert sind. So kann ich die Kante zwischen einem Autor-Knoten und einem Paper-Knoten als „Autorenschaft“ oder die Kanten von einem Paper A zu einem Paper B als „Zitat“ klassifizieren.

Technisch soll das Ganze als Webapplikation in HTML5 und JavaScript implementiert werden, die ohne jegliche Server-seitige Verarbeitung auskommt. Die Applikation nimmt ein JSON-Datenfragment entgegen, dass Knoten, Kanten und Pfade enthält und zeichnet diese auf ein gegebenes HTML-Element (z.B. in einen <div>-Tag). Die typisierten Knoten (die auch nur <div>s sind) und Kanten werden per CSS formatiert. Die Kanten werden mittels des tollen jsPlumb gezeichnet. Die Idee ist es dann, für ein neues Anwendungsszenario entsprechend der typisierten Knoten und Kanten nur neue CSS-Regeln anlegen zu müssen.

Der aufmerksame Leser bemerkt hier natürlich, dass noch etwas fehlt: der eingegebene JSON-Datensatz muss natürlich zuerst einmal erzeugt werden. D.h. wir müssen die Daten aus dem Format der Fremd-Anwendung, z.B. aus der Facebook Open Graph API oder der DBLP erst einmal in unser Format konvertieren und die Daten evtl. aufbereiten (z.B. Pfade finden, wenn nur Knoten und Kanten gegeben sind) – dies soll jedoch vorerst nicht Teil dieser Arbeit sein.

Ein weitere Teil der Arbeit wird es sein, einmal zu schauen, welche Möglichkeiten, Objektrelationen mittel JavaScript zu zeichnen, es schon gibt – das sind nämlich eine Menge. Zudem unterscheiden sich diese in ihrer Flexibilität (entweder zu speziell auf ein Anwendungsszenario bezogen oder so elementar, das es ein „JavaScript-Zeichenprogramm“ ist) und der Ausgefeiltheit der Implementierung (z.B. wie stark das Paradigma Trennung von Daten, Logik und Darstellung eingehalten wurde). Dieser Teil der Arbeit ist vielleicht mit der schwierigste: die Masse an vorhandenen JavaScript-Bibliotheken zu sichten und dann ein gute Begründung finden, warum denn jetzt mein Ansatz überhaupt besser ist :-)

Weitere Details werde ich regelmäßig hier auf dem Blog bekannt geben und natürlich werde ich auch über das Fortkommen der Arbeit berichten, der Quellcode wird außerdem immer auf GitHub zu finden sein.

2 Antworten to “Bachelor-Arbeit: ADORE”

  1. wollepb 5. Juni 2012 um 12:12 #

    Ich bin echt gespannt auf die ersten Prototypen der Visualisierungen. Es ist ja immer so, dass man als „Auftraggeber“ etwas bestimmtes vor dem geistigen Auge hat, das dann entsprechend auch erst mal vom „Kunden“ umgesetzt werden will. Aber ich bin guter Dinge!

Trackbacks/Pingbacks

  1. ADORE wird sichtbar « Studentenblogs DDI@UPB - 5. Juli 2012

    […] Programmierung ein. Und genau davon möchte in in diesem Blogpost ein wenig zeigen. In meinem ersten Blogpost vor ein paar Wochen hatte ich ja schon geschrieben, dass ich als Eingabedatenformat […]

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: