GXL – Eine XML-Anwendung Martin Sievers
Inhalt Begriffe & Notationen Motivation & Entwicklung von GXL Austausch von Graphen mit GXL GXL in der Praxis; Implementierungen Fazit Ausblick
1. Begriffe & Notationen
Definition Digraph Seien V,E Mengen mit V nichtleer, endlich, E V x V. Dann heißt G:=(V,E) gerichteter Graph (Digraph) mit der Knotenmenge V und der Kantenmenge E.
Eigenschaften von Graphen Ein Graph G=(V,E) heißt ungerichtet (undirected), falls E aus zweielementigen Teilmengen von V besteht geordnet (ordered), falls auf V,E und der Menge der zu einem Knoten inzidenten Kanten eine totale Ordnung definiert ist typisiert (typed), falls V und E aus Objekten eines bestimmten Typs bestehen attribuiert (attributed), falls mindestens einem Graphobjekt ein Paar aus Attributbezeichnung und -wert zugeordnet ist
Definition Hypergraph Seien I Indexmenge, V Knotenmenge und :={E i : i I} Familie von Teilmengen (sog. Hyperkanten) von V. Dann heißt H:=(V, ) Hypergraph, falls i) i I : E i nicht leer ii) i I : E i = V
Eigenschaften von Hypergraphen Zwei Knoten u,v heißen adjazent, falls j I : {u,v} E j Zwei Kanten E 1,E 2 heißen adjazent, falls E 1 E 2 nichtleer Die Zahl r := r(V) := max {|V E i | : i I } heißt Rang von H und gibt an, wieviele Knoten eine Kante in H maximal verbindet. Wir nennen H auch Hypergraph r-ten Grades
Bemerkungen zu Hypergraphen 1.Jeder Graph ist ein Hypergraph zweiten Grades 2.Falls die E i disjunkt sind, heißt H einfach (simple) 3.Hyperkanten werden durch Ellipsen, die die zugehörigen Kanten umschließen, dargestellt
Beispiel (Hypergraph) E5E5 E2E2 E1E1 E4E4 E6E6 E3E3
2. Motivation & Entwicklung von GXL
Motivation von GXL Vielseitigkeit von Graphen führte zu verschiedenen Graph-Formaten in der Praxis Probleme beim Zusammenspiel von Softwarekomponenten Austausch schwierig, Nutzung von Konvertern nötig Notwendigkeit eines universellen Graph-Formats
Fakten G raph e X change L anguage XML - Untersprache 1998 unter Leitung von Andreas Winter an der Uni Koblenz entwickelt Aktuelle Version: GXL 1.0 (Januar 2001) Informationen unter
Entwicklung von GXL (1. Phase) Grundformate GraX TA PROGRES
Entwicklung von GXL (2. Phase) Grundformate Formate des Reengineering GraXATerms TARPA PROGRESRSF
Entwicklung von GXL (3. Phase) Grundformate Formate des Reengineering Formate des Graphzeichnens GraXATermsdaVinci TARPAGML PROGRESRSFGraphlet GRL XGMML GraphXML
Entwicklung von GXL (Schematisch) TAGraXPROGRES GXL GXL GXL 0.7 GXL GXL 1.0 da Vinci GML Graphlet GML XGMML RPA RSF ATerms Barcelona Berlin Budapest Kent GraphXML WCRE 1999 AlGra 2000 GROOM 2000 WoSEF 2000 Graph Drawing workshop on data exchange formats (GD 2000) CASCON 2000 WCRE 2000 Dagstuhl 2001 Interoperability of Reengineering Tools Quelle: [1], Abb. 1
3. Austausch von Graphen mit GXL
Austausch von Graphen Betrachtung typisierter, attribuierter, gerichteter, geordneter Graphen (sog. TGraphs) Zur Verarbeitung von Hyper- bzw. hierarchischer Graphen Erweiterungen um Hyperkanten sowie hierarchische Strukturen nötig
Grundlagen für den Austausch von Graphen per GXL GXL-Dokumente werden stets von umschlossen; jeder im Dokument definierte Graph von jedem Graph muß eindeutiger Name zugewiesen werden zu jedem Graph gehört Graph-Schema Knoten und Kanten werden mit bzw. und optionalem eindeutigen Namen gekennzeichnet
Innerhalb von bzw. werden durch 1.from und to zu einer Kante inzidente Knoten 2.fromorder und toorder die Ordnung der Kanten 3. der aus dem Graph-Schema bekannte Typ für Knoten und Kanten 4. zugehörige evtl. verschachtelte Attribute des Typs,,, u.a. angegeben.
Beispiel (einfacher Graph)
GXL-Darstellung main.c test.c pvqwpq
GXL-Darstellung main.c test.c pvqwpq
GXL-Darstellung main.c test.c pvqwpq
GXL-Darstellung main.c test.c pvqwpq
Austausch von Hypergraphen per GXL Betrachtung typisierter, attribuierter, (un-)gerichteter, geordneter Hypergraphen Notwendigkeit zusätzlicher Tags im GXL-Dokument jede Hyperkante wird durch definiert und evtl. durch und näher erklärt die durch eine Hyperkante verbundenen Knoten werden über angegeben und durch target, role, startorder, endorder, isdirected, direction genauer spezifiziert.
Beispiel (Hypergraph) a = max(a,b)
main max a b 8
main max a b 8
Austausch hierarchischer Graphen Problem: Große Graphen führen schnell zu unübersichtlichen Strukturen Lösung: Zusammenfassung zusammengehöriger Objekte zu eigenständigen Strukturen Umsetzung in GXL durch Verschachtelung von - Elementen
Beispiel (Hierarchischer Graph)
uvtw v
uvtw v
Weitere Aspekte Graphmodell von GXL als XML-DTD Übersetzung manuell durchgeführt nur 18 XML Elemente notwendig
Graph-Schemata Graphen stellen Strukturen zur Beschreibung von Objekten (Knoten) und Zusammenhänge (Hyperkanten) bereit Graphen haben keine eigene Bedeutung Interpretation eines Graphen durch Betrachtung der dahinterliegenden Anwendung
Anwendung entscheidet über Knoten, Kanten, Hyperkanten Beziehungen zwischen Graphobjekten Attributstrukturen Graphhierachien weitere Bedingungen wie Inzidenzordnung, Gradbeschränkung etc.
Darstellung von Graph-Schemata Schematische Daten werden durch UML-Klassen- Diagramme dargestellt UML-Klassen-Diagramme können ebenfalls als Graphen dargestellt werden Konkrete Graphen und Schemata können im selben Dokument beschrieben werden (dies entspricht nicht dem XMI-Ansatz)
Überblick UML-Klassen-Diagramm UML-Objekt-Diagramm GXL Graph GXL- Metaschema GXL-Schema Graph-Klasse Zur Darstellung von Schema-Graphen ist Instanz von wird repräsentiert durch dargestellt alsvisualisiert als ist Instanz von definiert repräsentiert als Nach: [7], Seite 2. nutzt
4. GXL in der Praxis / Implementierungen
GXL in der Praxis GXL bzw. seine direkten Vorgänger wurden schon zur Analyse einiger prominenter Anwendungen benutzt GCC C++ Compiler ( LOC) Linux Kernel ( LOC) Netscape Navigator
Implementierungen Implementierungen zwar angekündigt, jedoch bisher nicht ausreichend umgesetzt Einzelne (studentische) Projekte Stillstand?
Fazit GXL ist akzeptiertes Graph-Austauschformat bietet flexibles, erweiterbares Graphformat ist einfach zu benutzen; intuitiv wird durch Forschung und Wirtschaft unterstützt ist (noch) nicht ausreichend implementiert
Ausblick GXL wird (hoffentlich) immer stärker auch bei bestehenden Softwarepaketen berücksichtigt GXL ist Grundlage für weitere Graph-Austauschformate GXL wird das Zusammenwirken einzelner Softwarekomponenten stark vereinfachen
Literatur / Quellen [1] C.Berge: Graphs and Hypergraphs. North-Holland, Amsterdam, 2.Edition, [2] J.Ebert, A.Franzke. A Declarative Approach to Graph Based Modelling. In: E.Mayr et al. (Hrsg.). Graphtheoretic Concepts in Computer Science, LNCS 903. Springer, Berlin, S [3] J.Ebert, K.Kontogiannis, J.Mylopoulos: Interoperbility of Reengineering Tools /, 2001.
Literatur / Quellen [4] A.Winter: Exchanging Graphs with GXL [5] model). [6] [7] gxl.the_basics/gxl_the_basics.htm.