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);
関連トピック
親トピック: プロパティ・グラフのデータ形式について