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 and labelE, 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