GraphML ist ein XML-basiertes Dateiformat für die Repräsentation von Graphen. GraphML besteht aus einem Sprachkern zur Beschreibung der Struktur eines Graphen und einem Erweiterungsmechanismus für applikationsspezifische Daten. GraphML ist ein freies Dateiformat basierend auf der Creative Commons Attribution 3.0 Lizenz.
Das GraphML Projekt wurde durch das Graph Drawing Steering Committee im Vorfeld zur Graph Drawing 2000 Konferenz in Williamsburg (Virginia) gestartet. Der Vorläufer von GraphML war die Graph Modelling Language (GML), welche auf Grund einer Initiative der Graph Drawing 1995 Konferenz in Passau gestartet wurde.[1]
GraphML unterstützt gerichtete, ungerichtete und gemischte Graphen, Hypergraphen sowie hierarchische Graphen. Es bietet Möglichkeiten zur Beschreibung der graphischen Repräsentation des Graphen, Referenzen auf externe Daten, sowie anwendungsspezifische Attribute.
Der rechts dargestellte einfache ungerichtete Graph mit vier Knoten und vier Kanten sieht in GraphML folgendermaßen aus:
<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://graphml.graphdrawing.org/xmlns
http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd">
<graph id="G" edgedefault="undirected">
<node id="A"/>
<node id="B"/>
<node id="C"/>
<node id="D"/>
<edge id="ab" source="A" target="B"/>
<edge id="bc" source="B" target="C"/>
<edge id="cd" source="C" target="D"/>
<edge id="da" source="D" target="A"/>
</graph>
</graphml>