Top Banner
GXL – Eine XML-Anwendung Martin Sievers 27.06.2002
45

GXL – Eine XML-Anwendung

Jan 21, 2016

Download

Documents

maddox

GXL – Eine XML-Anwendung. Martin Sievers 27.06.2002. Inhalt. Begriffe & Notationen Motivation & Entwicklung von GXL Austausch von Graphen mit GXL GXL in der Praxis; Implementierungen Fazit Ausblick. 1. Begriffe & Notationen. Definition Digraph. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: GXL – Eine XML-Anwendung

GXL – Eine XML-Anwendung

Martin Sievers

27.06.2002

Page 2: GXL – Eine XML-Anwendung

Inhalt

Begriffe & Notationen

Motivation & Entwicklung von GXL

Austausch von Graphen mit GXL

GXL in der Praxis; Implementierungen

Fazit

Ausblick

Page 3: GXL – Eine XML-Anwendung

1. Begriffe & Notationen

Page 4: GXL – Eine XML-Anwendung

Definition Digraph

Seien V,E Mengen mit V nichtleer, endlich, E ⊂ VxV.

Dann heißt G:=(V,E) gerichteter Graph

(Digraph) mit der Knotenmenge V und der

Kantenmenge E.

Page 5: GXL – Eine XML-Anwendung

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

Page 6: GXL – Eine XML-Anwendung

Definition Hypergraph

Seien I Indexmenge, V Knotenmenge und ℰ :={Ei :

i ∈ I} Familie von Teilmengen (sog. Hyperkanten)

von V.

Dann heißt H:=(V,ℰ) Hypergraph, falls

i) ∀ i ∈ I : Ei nicht leer

ii) ∪ i ∈ I : Ei = V

Page 7: GXL – Eine XML-Anwendung

Eigenschaften von Hypergraphen

Zwei Knoten u,v heißen adjazent, falls ∃ j ∈ I : {u,v} ⊂ Ej

Zwei Kanten E1,E2 heißen adjazent, falls E1 ∩ E2 nichtleer

Die Zahl r := r(V) := max {|V ∩ Ei| : 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

Page 8: GXL – Eine XML-Anwendung

Bemerkungen zu Hypergraphen

1. Jeder Graph ist ein Hypergraph zweiten Grades

2. Falls die Ei disjunkt sind, heißt H einfach

(simple)

3. Hyperkanten werden durch Ellipsen, die die

zugehörigen Kanten umschließen, dargestellt

Page 9: GXL – Eine XML-Anwendung

Beispiel (Hypergraph)

1

8

5

4

3

76

2E5

E2

E1E4

E6

E3

Page 10: GXL – Eine XML-Anwendung

2. Motivation & Entwicklung von

GXL

Page 11: GXL – Eine XML-Anwendung

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

Page 12: GXL – Eine XML-Anwendung

Fakten

Graph eXchange Language

XML - Untersprache

1998 unter Leitung von Andreas Winter an der

Uni Koblenz entwickelt

Aktuelle Version: GXL 1.0 (Januar 2001)

Informationen unter

http://www.gupro.de/GXL/

Page 13: GXL – Eine XML-Anwendung

Entwicklung von GXL (1. Phase)

Grundformate

GraX

TA

PROGRES

Page 14: GXL – Eine XML-Anwendung

Entwicklung von GXL (2. Phase)

Grundformate

Formate des Reengineerin

g

GraX ATerms

TA RPA

PROGRES RSF

Page 15: GXL – Eine XML-Anwendung

Entwicklung von GXL (3. Phase)

Grundformate

Formate des Reengineerin

g

Formate des Graphzeichne

ns

GraX ATerms daVinci

TA RPA GML

PROGRES RSF Graphlet

GRL

XGMML

GraphXML

Page 16: GXL – Eine XML-Anwendung

Entwicklung von GXL (Schematisch)TA GraX PROGRES

GXL 0.4.2

GXL 0.6.6

GXL 0.7

GXL 0.7.2

GXL 1.0

da VinciGML

GraphletGML

XGMML

RPARSF

ATerms

BarcelonaBerlin

BudapestKent

GraphXML

WCRE 1999AlGra 2000GROOM 2000

WoSEF 2000

Graph Drawing workshop on data exchange formats (GD 2000)

CASCON 2000WCRE 2000

Dagstuhl 2001„Interoperability of Reengineering Tools“Quelle: [1], Abb. 1

Page 17: GXL – Eine XML-Anwendung

3. Austausch von Graphen mit GXL

Page 18: GXL – Eine XML-Anwendung

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

Page 19: GXL – Eine XML-Anwendung

Grundlagen für den Austausch von Graphen per GXL

GXL-Dokumente werden stets von <gxl>

umschlossen; jeder im Dokument definierte Graph

von <graph>

jedem Graph muß eindeutiger Name zugewiesen

werden

zu jedem Graph gehört Graph-Schema

Knoten und Kanten werden mit <node> bzw. <edge>

und optionalem eindeutigen Namen gekennzeichnet

Page 20: GXL – Eine XML-Anwendung

Innerhalb von <node> bzw. <edge> werden durch

1. from und to zu einer Kante inzidente Knoten

2. fromorder und toorder die Ordnung der Kanten

3. <type> der aus dem Graph-Schema bekannte

Typ für Knoten und Kanten

4. <attr> zugehörige evtl. verschachtelte Attribute

des Typs <int>, <bool>, <string>, <float> u.a.

angegeben.

Page 21: GXL – Eine XML-Anwendung

Beispiel (einfacher Graph)

Page 22: GXL – Eine XML-Anwendung

GXL-Darstellung<?xml version="1.0"?>

<!DOCTYPE gxl SYSTEM "../../../gxl-1.0.dtd">

<gxl xmlns:xlink="http://www.w3.org/1999/xlink">

   <graph id="simpleExample"><type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#

simpleExampleSchema"/>

      <node id="p">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Pro

c"/>

         <attr name="file">

             <string>main.c</string>

         </attr>

      </node>

      <node id="q">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Pro

c"/>

         <attr name="file">

             <string>test.c</string>

         </attr>

      </node>

      <node id="v">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Var

"/>

         <attr name="line">

             <int>225</int>

         </attr>

      </node>

      

<node id="w">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Var"/

>

         <attr name="line">

             <int>316</int>

         </attr>

      </node>

      <edge id="r1" from="p" to="v">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#ref"/>

         <attr name="line">

             <int>127</int>

         </attr>

      </edge>

      <edge id="r2" from="q" to="w">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#ref"/>

         <attr name="line">

             <int>27</int>

         </attr>

      </edge>

      <edge id="c" from="p" to="q">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#call"/

>

         <attr name="line">

             <int>42</int>

         </attr>

      </edge>

   </graph>

</gxl>

Page 23: GXL – Eine XML-Anwendung

GXL-Darstellung<?xml version="1.0"?>

<!DOCTYPE gxl SYSTEM "../../../gxl-1.0.dtd">

<gxl xmlns:xlink="http://www.w3.org/1999/xlink">

   <graph id="simpleExample"><type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#

simpleExampleSchema"/>

      <node id="p">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Pro

c"/>

         <attr name="file">

             <string>main.c</string>

         </attr>

      </node>

      <node id="q">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Pro

c"/>

         <attr name="file">

             <string>test.c</string>

         </attr>

      </node>

      <node id="v">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Var

"/>

         <attr name="line">

             <int>225</int>

         </attr>

      </node>

      

<node id="w">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Var"/

>

         <attr name="line">

             <int>316</int>

         </attr>

      </node>

      <edge id="r1" from="p" to="v">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#ref"/>

         <attr name="line">

             <int>127</int>

         </attr>

      </edge>

      <edge id="r2" from="q" to="w">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#ref"/>

         <attr name="line">

             <int>27</int>

         </attr>

      </edge>

      <edge id="c" from="p" to="q">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#call"/

>

         <attr name="line">

             <int>42</int>

         </attr>

      </edge>

   </graph>

</gxl>

Page 24: GXL – Eine XML-Anwendung

GXL-Darstellung<?xml version="1.0"?>

<!DOCTYPE gxl SYSTEM "../../../gxl-1.0.dtd">

<gxl xmlns:xlink="http://www.w3.org/1999/xlink">

   <graph id="simpleExample"><type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#

simpleExampleSchema"/>

      <node id="p">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Pro

c"/>

         <attr name="file">

             <string>main.c</string>

         </attr>

      </node>

      <node id="q">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Pro

c"/>

         <attr name="file">

             <string>test.c</string>

         </attr>

      </node>

      <node id="v">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Var

"/>

         <attr name="line">

             <int>225</int>

         </attr>

      </node>

      

<node id="w">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Var"/

>

         <attr name="line">

             <int>316</int>

         </attr>

      </node>

      <edge id="r1" from="p" to="v">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#ref"/>

         <attr name="line">

             <int>127</int>

         </attr>

      </edge>

      <edge id="r2" from="q" to="w">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#ref"/>

         <attr name="line">

             <int>27</int>

         </attr>

      </edge>

      <edge id="c" from="p" to="q">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#call"/

>

         <attr name="line">

             <int>42</int>

         </attr>

      </edge>

   </graph>

</gxl>

Page 25: GXL – Eine XML-Anwendung

GXL-Darstellung<?xml version="1.0"?>

<!DOCTYPE gxl SYSTEM "../../../gxl-1.0.dtd">

<gxl xmlns:xlink="http://www.w3.org/1999/xlink">

   <graph id="simpleExample"><type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#

simpleExampleSchema"/>

      <node id="p">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Pro

c"/>

         <attr name="file">

             <string>main.c</string>

         </attr>

      </node>

      <node id="q">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Pro

c"/>

         <attr name="file">

             <string>test.c</string>

         </attr>

      </node>

      <node id="v">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Var

"/>

         <attr name="line">

             <int>225</int>

         </attr>

      </node>

      

<node id="w">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#Var"/

>

         <attr name="line">

             <int>316</int>

         </attr>

      </node>

      <edge id="r1" from="p" to="v">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#ref"/>

         <attr name="line">

             <int>127</int>

         </attr>

      </edge>

      <edge id="r2" from="q" to="w">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#ref"/>

         <attr name="line">

             <int>27</int>

         </attr>

      </edge>

      <edge id="c" from="p" to="q">

         <type

xlink:href="../../schema/gxl/simpleExampleSchema.gxl#call"/

>

         <attr name="line">

             <int>42</int>

         </attr>

      </edge>

   </graph>

</gxl>

Page 26: GXL – Eine XML-Anwendung

Austausch von Hypergraphen per GXL

Betrachtung typisierter, attribuierter,

(un-)gerichteter, geordneter Hypergraphen

⇒Notwendigkeit zusätzlicher Tags im GXL-Dokument

jede Hyperkante wird durch <rel> definiert und evtl.

durch <type> und <attr> näher erklärt

die durch eine Hyperkante verbundenen Knoten

werden über <relend> angegeben und durch

target, role, startorder, endorder,

isdirected, direction genauer spezifiziert.

Page 27: GXL – Eine XML-Anwendung

Beispiel (Hypergraph)

a = max(a,b)

Page 28: GXL – Eine XML-Anwendung

<?xml version="1.0"?>

<!DOCTYPE gxl SYSTEM "../../../gxl-1.0.dtd">

<gxl xmlns:xlink="http://www.w3.org/1999/xlink">

   <graph id="hypergraph2"><type

xlink:href="../../schema/gxl/hypergraph2Schema.gxl#

hypergraph2Schema"/>

      <node id="v1">

         <type

xlink:href="../../schema/gxl/hypergraph2Schema.gxl#Functi

on"/>

         <attr name="name">

             <string>main</string>

         </attr>

      </node>

      <node id="v4">

         <type

xlink:href="../../schema/gxl/hypergraph2Schema.gxl#Functi

on"/>

         <attr name="name">

             <string>max</string>

         </attr>

      </node>

      <node id="v6">

         <type

xlink:href="../../schema/gxl/hypergraph2Schema.gxl#Variabl

e"/>

         <attr name="name">

             <string>a</string>

         </attr>

      </node>

      

<node id="v7">

         <type

xlink:href="../../schema/gxl/hypergraph2Schema.g

xl# Variable"/>

         <attr name="name">

             <string>b</string>

         </attr>

      </node>

      <rel id="r1">

         <type

xlink:href="../../schema/gxl/hypergraph2Schema.g

xl# FunctionCall2"/>

         <attr name="line">

             <int>8</int>

         </attr>

         <relend target="v1" role="caller"/>

         <relend target="v4" role="callee"/>

         <relend target="v6" role="output"/>

         <relend target="v6" role="input"

startorder="1"/>

         <relend target="v7" role="input"

startorder="2"/>

      </rel>

   </graph>

</gxl>

Page 29: GXL – Eine XML-Anwendung

<?xml version="1.0"?>

<!DOCTYPE gxl SYSTEM "../../../gxl-1.0.dtd">

<gxl xmlns:xlink="http://www.w3.org/1999/xlink">

   <graph id="hypergraph2"><type

xlink:href="../../schema/gxl/hypergraph2Schema.gxl#

hypergraph2Schema"/>

      <node id="v1">

         <type

xlink:href="../../schema/gxl/hypergraph2Schema.gxl#Functi

on"/>

         <attr name="name">

             <string>main</string>

         </attr>

      </node>

      <node id="v4">

         <type

xlink:href="../../schema/gxl/hypergraph2Schema.gxl#Functi

on"/>

         <attr name="name">

             <string>max</string>

         </attr>

      </node>

      <node id="v6">

         <type

xlink:href="../../schema/gxl/hypergraph2Schema.gxl#Variabl

e"/>

         <attr name="name">

             <string>a</string>

         </attr>

      </node>

      

<node id="v7">

         <type

xlink:href="../../schema/gxl/hypergraph2Schema.g

xl# Variable"/>

         <attr name="name">

             <string>b</string>

         </attr>

      </node>

      <rel id="r1">

         <type

xlink:href="../../schema/gxl/hypergraph2Schema.g

xl# FunctionCall2"/>

         <attr name="line">

             <int>8</int>

         </attr>

         <relend target="v1" role="caller"/>

         <relend target="v4" role="callee"/>

         <relend target="v6" role="output"/>

         <relend target="v6" role="input"

startorder="1"/>

         <relend target="v7" role="input"

startorder="2"/>

      </rel>

   </graph>

</gxl>

Page 30: GXL – Eine XML-Anwendung

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

<graph>-Elementen

Page 31: GXL – Eine XML-Anwendung

Beispiel (Hierarchischer Graph)

Page 32: GXL – Eine XML-Anwendung

               <edge id="e1" from="u" to="v">                  <type xlink:href="../../schema/gxl/ crossingSchema.gxl#E"/>               </edge>         </graph>      </node>      <node id="w">         <type xlink:href="../../schema/gxl/ crossingSchema.gxl#W"/>      </node>      <edge id="e2" from="t" to="w">         <type xlink:href="../../schema/gxl/

crossingSchema.gxl#f"/>      </edge>      <edge id="e3" from="w" to="v">         <type xlink:href="../../schema/

gxl/crossingSchema.gxl#g"/>      </edge>   </graph></gxl>

<?xml version="1.0"?><!DOCTYPE gxl SYSTEM "../../../gxl-1.0.dtd"><gxl xmlns:xlink= "http://www.w3.org/1999/xlink">   <graph id="crossingHierarchies"> <type xlink:href="../../schema/gxl/ crossingSchema.gxl#crossingSchema"/>      <node id="t">         <type xlink:href="../../schema/gxl/ crossingSchema.gxl#T"/>    <graph id="graph2"><type xlink:href="../../schema/gxl/ crossingSchema.gxl#GraphT"/>         <node id="u">             <type xlink:href="../../ schema/gxl/ crossingSchema.gxl#U"/>         </node>         <node id="v">

<type xlink:href= "../../schema/ gxl/crossingSchema.gxl#V"/>         </node>                 

Page 33: GXL – Eine XML-Anwendung

               <edge id="e1" from="u" to="v">                  <type xlink:href="../../

schema/gxl/crossingSchema.gxl#E"/>               </edge>         </graph>      </node>      <node id="w">         <type xlink:href="../../schema/gxl/ crossingSchema.gxl#W"/>      </node>      <edge id="e2" from="t" to="w">         <type xlink:href="../../schema/gxl/

crossingSchema.gxl#f"/>      </edge>      <edge id="e3" from="w" to="v">         <type xlink:href="../../schema/

gxl/crossingSchema.gxl#g"/>      </edge>   </graph></gxl>

<?xml version="1.0"?><!DOCTYPE gxl SYSTEM "../../../gxl-1.0.dtd"><gxl xmlns:xlink= "http://www.w3.org/1999/xlink">   <graph id="crossingHierarchies"> <type xlink:href="../../schema/gxl/ crossingSchema.gxl#crossingSchema"/>      <node id="t">         <type xlink:href="../../schema/gxl/ crossingSchema.gxl#T"/>    <graph id="graph2"><type xlink:href="../../schema/gxl/ crossingSchema.gxl#GraphT"/>         <node id="u">             <type xlink:href="../../ schema/gxl/ crossingSchema.gxl#U"/>         </node>         <node id="v">

<type xlink:href= "../../schema/ gxl/crossingSchema.gxl#V"/>         </node>                 

Page 34: GXL – Eine XML-Anwendung

Weitere Aspekte

Graphmodell von GXL als XML-DTD

Übersetzung manuell durchgeführt

⇒nur 18 XML Elemente notwendig

Page 35: GXL – Eine XML-Anwendung

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

Page 36: GXL – Eine XML-Anwendung

Anwendung entscheidet über

Knoten, Kanten, Hyperkanten

Beziehungen zwischen Graphobjekten

Attributstrukturen

Graphhierachien

weitere Bedingungen wie Inzidenzordnung,

Gradbeschränkung etc.

Page 37: GXL – Eine XML-Anwendung

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)

Page 38: GXL – Eine XML-Anwendung

Überblick

UML-Klassen-Diagramm

UML-Objekt-Diagramm

GXL Graph GXL-Metasche

ma

GXL-Schema

Graph-Klasse

Zur Darstellung von Schema-Graphen

ist Instanz von

wird repräsentiert durch

dargestellt als

visualisiert als

ist Instanz von

definiert

repräsentiert als

Nach: [7], Seite 2.

nutzt

Page 39: GXL – Eine XML-Anwendung

4. GXL in der Praxis /

Implementierungen

Page 40: GXL – Eine XML-Anwendung

GXL in der Praxis

GXL bzw. seine direkten Vorgänger wurden schon

zur Analyse einiger „prominenter“ Anwendungen

benutzt

GCC C++ Compiler (1.000.000 LOC)

Linux Kernel (7.000.000 LOC)

Netscape Navigator

Page 41: GXL – Eine XML-Anwendung

Implementierungen

Implementierungen zwar angekündigt, jedoch

bisher nicht ausreichend umgesetzt

Einzelne (studentische) Projekte

Stillstand?

Page 42: GXL – Eine XML-Anwendung

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

Page 43: GXL – Eine XML-Anwendung

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

Page 44: GXL – Eine XML-Anwendung

Literatur / Quellen

[1] C.Berge: Graphs and Hypergraphs. North-

Holland, Amsterdam, 2.Edition, 1976.

[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. 38 - 50. 1995.

[3] J.Ebert, K.Kontogiannis, J.Mylopoulos:

Interoperbility of Reengineering Tools.

http://www.dagstuhl.de/DATA/Reports/

01041/, 2001.

Page 45: GXL – Eine XML-Anwendung

Literatur / Quellen

[4] A.Winter: Exchanging Graphs with GXL.

http://www.gupro.de/GXL, 2001.

[5] http://www.gupro.de/GXL/(graph model).

[6] http://www.gupro.de/GXL/(DTD).

[7] http://ist.unibw-muenchen.de/GXL/volk/

gxl.the_basics/gxl_the_basics.htm.