|Developed by||Graph Drawing|
|Type of format||Graph description language|
GraphML is an XML-based file format for graphs. The GraphML file format results from the joint effort of the graph drawing community to define a common format for exchanging graph structure data. It uses an XML-based syntax and supports the entire range of possible graph structure constellations including directed, undirected, mixed graphs, hypergraphs, and application-specific attributes.
A GraphML file consists of an XML file containing a
graph element, within which is an unordered sequence of
edge elements. Each
node element should have a distinct
id attribute, and each
edge element has
target attributes that identify the endpoints of an edge by having the same value as the
id attributes of those endpoints.
Here is what a simple undirected graph with two nodes and one edge between them looks like:
<?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/1.0/graphml.xsd"> <graph id="G" edgedefault="undirected"> <node id="n0"/> <node id="n1"/> <edge id="e1" source="n0" target="n1"/> </graph> </graphml>
Additional features of the GraphML language allow its users to specify whether edges are directed or undirected, and to associate additional data with vertices or edges.
- yEd, a widespread graph editor that uses GraphML as its native file format (but ports, hypergraphs not supported and limited nested graphs support).
- Gephi, a graph visualization software that supports a limited set of GraphML.
- SocNetV, a social network analysis and visualisation free software application that uses GraphML as native file format for reading and writing social network data.
- DOT (graph description language)
- GraphMatcher, a Java program to align two or more graphs, it uses GraphML as input/output format.
- Official website
- GraphML Primer
- Comparison between XML to SVG Transformation Mechanisms, showing conversions between GraphML and SVG