27.1.4.3 エッジ・リスト(EDGE_LIST)
エッジ・リスト形式は、1行当たり1つの頂点を含むセクションから始まるテキスト・ファイル形式であり、その後に1行当たり1つのエッジを含むセクションが続きます。頂点にラベルまたはプロパティが存在しない場合、最初のセクションでは頂点を省略できますが、2番目のセクションでは引き続き頂点のエッジを指定します。
EdgeList := {Vertex '\n'}* '\n' {Edge '\n'}*
Vertex := VertexId '*' VertexLabels? PropertyValue*
VertexId := Integer | Long | String
VertexLabels := '{' String* '}'
Edge := SrcVertex DstVertex EdgeLabel? PropertyValue*
SrcVertex := VertexId
DstVertex := VertexId
EdgeLabel := String
PropertyValue := Integer | Long | Double | Float | Boolean | String | Date頂点は識別子(VertexId)で始まり、その後に*、オプションの頂点ラベル・セット(VertexLabels?)および頂点プロパティ(PropertyValue*)が続きます。頂点識別子は、Integer、LongまたはStringのいずれかです。さらに、頂点ラベルは、中カッコに囲まれたゼロ個以上のString ('{' String* '}')です。
エッジは、出力および入力頂点の識別子(SrcVertex DstVertex)で始まり、その後にオプションのエッジ・ラベル(EdgeLabel?)およびエッジ・プロパティ(PropertyValue*)が続きます。エッジ・ラベルはStringです。
例27-4 エッジ・リスト形式のグラフ
次の例は、2つの頂点と2つのエッジを含むグラフを、ラベルとプロパティとともに示しています。
1 * { "Person" "Male" } "Mario" 15
2 * { "Person" "Male" } "Luigi" 14
1 2 "likes" 3.5
2 1 "likes" 2.12つの頂点(1-2行目)には識別子1と2があり、どちらの識別子にもラベル"Person"と"Male"、文字列プロパティ("Mario"と"Luigi")および整数プロパティ(15と14)があります。頂点1から頂点2へのエッジ(行3)には、ラベル"likes"と値が3.5のdoubleプロパティが、頂点2から頂点1への別のエッジには、ラベル"likes"と値が2.1のdoubleプロパティがあります。
次に、対応するグラフ構成を示します。
{
"format":"edge_list",
"uri":"example.edgelist",
"vertex_id_type":"long",
"vertex_labels":true,
"edge_label":true,
"vertex_props":[
{
"name":"name",
"type":"string"
},
{
"name":"age",
"type":"int"
}
],
"edge_props":[
{
"name":"rating",
"type":"double"
}
],
"loading_options": {
"load_vertex_labels":true,
"load_edge_label":true
},
"separator":" "
}親トピック: プレーン・テキスト形式