Visualisierung semantischer Information – Gliederung – Graph Drawing – Visualisierung – Graphen Einführung in Graphenvisualisierung Christoph Stollwerk Graphentypen Zeit: Mi. 12‚00 - 15‚30 Raum: PC72 Praktischer Umgang mit Graphen Ein praktisches Beispiel DBdraw Visualisierung semantischer Information Graph Drawing 1 2 Visualisierung semantischer Information Visualisierung semantischer Information – Graphen– Graphen– 2 Graphen… Graphen… Graphen – Einfü Einführung – ... gleichen Inhalts Graph Drawing Graph Drawing Graph drawing is the art to draw a graph in such a way, that the relationships between the objects are easily understood by looking at the picture. The nodes are usually drawn as circles or rectangles while the edges are drawn as curves connecting two of these shapes. A graph is a mathematical structure that is widely used to describe the relationships between different objects. The objects are called the nodes of the graph and the relationships are called edges. Every edge connects two nodes. One example for a structure that can be described as a graph are relationships between people. Suppose there is a group of people, some of which know each other; this can be expressed this using a graph in which the nodes are the people and there is an edge connecting two people if they know each other. 3 4 Visualisierung semantischer Information Visualisierung semantischer Information – Graphen– Graphen– Graphen – Typen – Graph Drawing Graph Drawing Problematiken andeuten: Studien haben gezeigt, dass wenig Kreuzungen sehr gut sind, gefolgt von wenig Knicken, Kurzen Kanten, Vermeidung von Spitzen Winkeln Graph drawing is the art to draw a graph in such a way, that the relationships between the objects are easily understood by looking at the picture. The nodes are usually drawn as circles or rectangles while the edges are drawn as curves connecting two of these shapes. Viele Programme haben eine Graphen funktion und somit einen algorithmus zur graphenzeichnung. Oft sind diese algorithmen bei großen datenmengen uneffektiv und das ergebnis nicht ausreichen/überschaubar 5 6 Visualisierung semantischer Information Ungerichteter Graph Visualisierung semantischer Information – Graphen– Graphen– – Graphen– Graphen– Typen im 2 dimensionalen Compound Graphs Clustered Graph Gerichteter Graph 1 a 3 2 b 5 c Compound Graph Baum Graph 1 2 7 3 6 8 9 4 5 7 9 + 4 6 8 1 3 5 1 = 2 5 3 Graph Drawing 6 4 2 9 4 8 7 Graph Drawing -ungerichtete graphen unterscheiden gerichtete nur von den Pfeilen -es gibt zyklische und azyklische graphen -clustered graphs besteht meist aus ungerichtetem Graph , der durch wurzelbaum definiert wird ; rückläufige strukturen von knoten( vertices) 7 8 Visualisierung semantischer Information Visualisierung semantischer Information – Graphen – Beschreibung von (un-) gerichteten Graphen Graphen Adjazenzmatrizen – Praktischer Umgang – Graph Drawing Graph Drawing Graph drawing is the art to draw a graph in such a way, that the relationships between the objects are easily understood by looking at the picture. The nodes are usually drawn as circles or rectangles while the edges are drawn as curves connecting two of these shapes. Auch nachbarschaftliste oder matriz genannt. 9 10 Visualisierung semantischer Information Visualisierung semantischer Information – Graphen – – Graphen – Planare Graphen Planarity von Clustered Graphs Kanten dürfen sich nicht schneiden planer (planarity.net) Method for Visualizing Complicated Structures Based on Unified Simplification Strategy maximal planar Graph Drawing Graph Drawing - Method for Visualizing Complicated Structures Based on Unified Simplification Strategy Eine Methode zur Visualisierung komplexer Strukturen basierend auf einheitlicher Vereinfachungsstrategy 11 12 Visualisierung semantischer Information Visualisierung semantischer Information – Graphen – – Graphen – Preorder Layered Styles Zeichnen von Baumstrukturen 1. PreOrder 2. InOrder 3. PostOrder auch als Traversierung bekannt. Graph Drawing Graph Drawing - einfachste Möglichkeit '''Funktion''' ''Preorder''(Baum) - andere sind bspw. Rheingold & Tilford oder Sugiyama-style Layout W '''<-''' Baum.Wurzel '''//'''''W:= Wurzel des übergebenen Baumes'' '''If''' Baum.Links '''<>''' '''NULL''' linker Unterbaum?'' '''//'''''Existiert ein L '''<-''' ''Preorder''(Baum.Links) ''dann: L:= Preorder von linkem Unterbaum'' '''//''' '''If''' Baum.Rechts '''<>''' '''NULL''' '''//'''''Existiert ein rechter Unterbaum?'' R '''<-''' ''Preorder''(Baum.Rechts) ''dann: R:= Preorder von rechtem Unterbaum'' '''//''' '''Return''' W°L°R '''//'''''Rückgabe: Verkettung aus W, L und R'' 13 14 Visualisierung semantischer Information Visualisierung semantischer Information – Graphen – – Graphen – Inorder Postorder Graph Drawing Graph Drawing '''Funktion''' ''Inorder''(Baum) '''Funktion''' ''Postorder''(Baum) W '''<-''' Baum.Wurzel '''//'''''W:= Wurzel des übergebenen Baumes'' '''If''' Baum.Links '''<>''' '''NULL''' linker Unterbaum?'' '''//'''''Existiert ein L '''<-''' ''Inorder''(Baum.Links) ''dann: L:= Inorder von linkem Unterbaum'' '''If''' Baum.Rechts '''<>''' '''NULL''' rechter Unterbaum?'' W '''<-''' Baum.Wurzel '''//'''''W:= Wurzel des übergebenen Baumes'' '''If''' Baum.Links '''<>''' '''NULL''' linker Unterbaum?'' '''//''' L '''<-''' ''Postorder''(Baum.Links) ''dann: L:= Postorder von linkem Unterbaum'' '''//'''''Existiert ein R '''<-''' ''Inorder''(Baum.Rechts) ''dann: R:= Inorder von rechtem Unterbaum'' '''//'''''Existiert ein '''//''' '''If''' Baum.Rechts '''<>''' '''NULL''' '''//'''''Existiert ein rechter Unterbaum?'' R '''<-''' ''Postorder''(Baum.Rechts) ''dann: R:= Postorder von rechtem Unterbaum'' '''//''' '''//''' '''Return''' L°R°W '''//'''''Rückgabe: Verkettung aus L, R und W'' '''Return''' L°W°R 15 16 Visualisierung semantischer Information Visualisierung semantischer Information – Graphen – – Graphen – In Kü Kürze: Vertrag Person Produktbestand In Kü Kürze: Produktvorgang Provisionssatz Konditionbestand Vertragsinhaber / Vertrag Vertreter /Vorgang Provisionssatz/ Produktvorgang Vermittler /Vorgang Struktur Normalvertrag Vertragsinshaber Bausparvertrag Vermittler Preis ZKVertrag Konto KLVertrag Einlagenvertrag Buchung Vorgang Immobilienvermittl. UnbekVertrag Darlehensvertrag Vertreter RLVertrag Datenmodell Kräfteverfahren Graph Drawing Graph Drawing Dem Betrachter soll durch ein Diagramm Übersciht verschafft werden. teilweise unnötige kreuzungen, nicht datenbank geeignet Kanten und Knoten werden dann meist mit solange herumgeschoben bis zufriedenstellendes Ergebnis in entsprechender Zeit. herausforderung bei mehreren Hundert Knoten. 17 18 Visualisierung semantischer Information Visualisierung semantischer Information – Graphen – – Graphen – In Kü Kürze: In Kü Kürze: Hierarchisches Verfahren Planarisierungsverfahren Graph Drawing Graph Drawing Nur noch 4 Kreuzungen , alle Pfeile von oben nach unten Ist die Hierarchie unwichtig und minimierung von Kreuzungen wichtig wird planasiert, zum Teil mit quasi-orthogonalem Stil. Keine Kreuzungen mehr . 19 20 Visualisierung semantischer Information Visualisierung semantischer Information – Graphen – Planarisierung: 1 2 DBdraw 3 4 Planarisierungsverfahren Graph Drawing Graph Drawing Grundidee = 3 Phasen ( Topologie – Form – Metrik ) Giuseppe Di Battista ; Walter Didimo ; Maurizio Patrignani ; Maurizio Pizzonia ( Uni Rom) 1. Entfernen der Markierten Kante Möglichst kleine Menge von Kanten entfernen ; planar machen ( heisst auf einer bekreuzungsfrei Zeichenbar) -Ermöglicht automatisches Layouten von Datenbank-Schemata. 2. Planare Layout Skizze -Relationen sind Boxen, tabellen attribute sind unterschiedliche Streifen 3. Wiedereinfügung der entfernten Kante mit Hilfsknoten Topologie der Zeichnung wird klar -Attribute unterschiedliche Tabellen die verbunden sind Referenzbedingungen 4. Form wird durch orthogonalstil festgelegt Anzahl der Kantenknicke wird minimiert/ Längen werden vereinbart / Künstliche Knoten wird entfernt -Ist inspiriert von topology –shape-metrics und wird über planarization angegangen 5. fertig! 21 22 Visualisierung semantischer Information Visualisierung semantischer Information Relationen = Knoten Verbindungen = Kanten 1. Constrained Planarization 2. Left-to-Right Orientation 3. Orthogonalization 4. Compaction Graph Drawing Graph Drawing 1) gezwungene Plättung alle Tabellen werden Vertexe & Verbindungen zu Kanten 2) Kanten werden unterschieden in (Links zu Rechts-Kanten & U-Turns) umso mehr U-Turns umso weiter nach rechts 3) Orthogonalisierung Alle Kanten werden durch Vorlagen ersetzt und verbunden 4) exakte Kantenlänge wird bestimmt und nach Möglichkeit gekürzt Kanten überschneiden sich nicht wegen Schritt 1 23 24 Visualisierung semantischer Information ? Visualisierung semantischer Information ? Fragen?! ? ? Herzlichen Dank! ? Graph Drawing Graph Drawing 25 26