B.2 GraphMLデータ形式
GraphMLファイル形式では、XMLを使用してグラフを記述します。
-
このトピックの最初の例は、プロパティ・グラフとはに示すプロパティ・グラフのGraphMLの記述を示しています。
-
このトピックの2番目の例では、Tinkerpop 3に対する同じグラフのGraphMLの説明を示しています。頂点およびエッジ・ラベルがそれぞれ
labelVおよびlabelEとして追加されていることに注意してください。
例B-3 単純なプロパティ・グラフのGraphMLの記述
<?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>
例B-4 単純なプロパティ・グラフのTinkerpop 3 GraphMLの記述
<?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>
GraphML形式でグラフをインポートおよびエクスポートするメソッドが用意されています。
次のコードのフラグメントは、Tinkerpop 2およびTinkerpop 3バージョンでGraphMLデータをインポートおよびエクスポートする方法を示しています。
// 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);
関連トピック
親トピック: プロパティ・グラフのデータ形式について