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
labelV
andlabelE
, 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