B.2 GraphML Data Format
The GraphML file format uses XML to describe graphs.
-
The first example in this topic shows a GraphML description of the property graph shown in What Are Property Graphs?.
-
The second example in this topic shows the GraphML description of the same graph for Tinkerpop 3. Notice the addition of vertex and edge labels referred as
labelVandlabelE, respectively.
Example B-3 GraphML Description of a Simple Property Graph
<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns">
<key id="name" for="node" attr.name="name" attr.type="string"/>
<key id="age" for="node" attr.name="age" attr.type="int"/>
<key id="type" for="edge" attr.name="type" attr.type="string"/>
<graph id="PG" edgedefault="directed">
<node id="1">
<data key="name">Alice</data>
<data key="age">31</data>
</node>
<node id="2">
<data key="name">Bob</data>
<data key="age">27</data>
</node>
<edge id="3" source="1" target="2" label="knows">
<data key="type">friends</data>
</edge>
</graph>
</graphml>
Example B-4 Tinkerpop 3 GraphML Description of a Simple Property Graph
<?xml version="1.0" encoding="UTF-8"?>
<graphml xmlns="http://graphml.graphdrawing.org/xmlns">
<key id="labelV" for="node" attr.name="labelV" attr.type="string" />
<key id="name" for="node" attr.name="name" attr.type="string" />
<key id="age" for="node" attr.name="age" attr.type="int" />
<key id="labelE" for="edge" attr.name="labelE" attr.type="string" />
<key id="type" for="edge" attr.name="type" attr.type="string" />
<graph id="PG" edgedefault="directed">
<node id="1">
<data key="labelV">person</data>
<data key="name">Alice</data>
<data key="age">31</data>
</node>
<node id="2">
<data key="labelV">person</data>
<data key="name">Bob</data>
<data key="age">27</data>
</node>
<edge id="3" source="1" target="2">
<data key="labelE">knows</data>
<data key="type">friends</data>
</edge>
</graph>
</graphml>
Methods are provided to import and export graphs from and into GraphML format.
The following fragments of code show how to import and export GraphML data in Tinkerpop 2 and Tinkerpop 3 versions.
// Get graph instance
OraclePropertyGraph opg = OraclePropertyGraph.getInstance(oracle, graphName);
// Import graph in GraphML format
String fileName = "./mygraph.graphml";
PrintStream ps = new PrintStream("./output");
OraclePropertyGraphUtils.importGraphML(opg,fileName,ps);
// Export graph into GraphML format
String fileName = "./mygraph.graphml";
PrintStream ps = new PrintStream("./output");
OraclePropertyGraphUtils.exportGraphML(opg,fileName,ps);
// Import graph into Tinkerpop 3 GraphML format
String fileName = "./mygraphT3.graphml";
PrintStream ps = new PrintStream("./output");
OraclePropertyGraphUtils.importGraphMLTinkerpop3(opg,fileName,ps);
// Export graph into Tinkerpop 3 GraphML format
String fileName = "./mygraphT3.graphml";
PrintStream ps = new PrintStream("./output");
OraclePropertyGraphUtils.exportGraphMLTinkerpop3(opg,fileName,ps);
Related Topics
Parent topic: About Property Graph Data Formats