图形描述语言GraphML(3):图形元数据

可以为GraphML增加元数据(meta-data),以便于对Graph的分析。GraphML通过在元素上增加属性说明来定义图形的元数据。包括两类源数据,分别表示元素的数量信息和文件格式信息。

可增加的属性如下:

 

适用元素

属性名称

含义

graph(数量信息)

parse.nodes

图中节点的数量

parse.edges

图中边的数量

parse.maxindegree

图中节点的最大“入度”

parse.maxoutdegree

图中节点的最大“出度”

node(数量信息)

parse.indegree

节点的“入度”

parse.outdegree

节点的“出度”

Graph (格式信息)

parse.nodeids

如果值为canonical”,则所有nodeid格式必须为”nx”,其中x的大小表示node节点出现的顺序(x小的先出现);

如果值为free”,nodeid属性可以随意设置。

parse.edgeids

parse.nodeids类似,但边的格式化编码为”ex”

Parse.order

如果值为nodesfirst,则先定义所有的node元素再定义所有的edge元素;

如果值为 adjacencylist,则在定义edge之后定义其相关的node;

如果值为free,则没有限制。


增加了元数据的GraphML的例子如下:

<? xml version="1.0" encoding="UTF-8" ?>
<!--  This file was written by the JAVA GraphML Library. -->
< graphml  xmlns ="http://graphml.graphdrawing.org/xmlns"   
            xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation
="http://graphml.graphdrawing.org/xmlns 
                                http://graphml.graphdrawing.org/xmlns/1.0/graphml.xsd"
>
  
< graph  id ="G"  edgedefault ="directed"  
            parse.nodes
="11"  parse.edges ="12"  
            parse.maxindegree
="2"  parse.maxoutdegree ="3"
            parse.nodeids
="canonical"  parse.edgeids ="free"  
            parse.order
="nodesfirst" >
    
< node  id ="n0"  parse.indegree ="0"  parse.outdegree ="1" />
    
< node  id ="n1"  parse.indegree ="0"  parse.outdegree ="1" />
    
< node  id ="n2"  parse.indegree ="2"  parse.outdegree ="1" />
    
< node  id ="n3"  parse.indegree ="1"  parse.outdegree ="2" />
    
< node  id ="n4"  parse.indegree ="1"  parse.outdegree ="1" />
    
< node  id ="n5"  parse.indegree ="2"  parse.outdegree ="1" />
    
< node  id ="n6"  parse.indegree ="1"  parse.outdegree ="2" />
    
< node  id ="n7"  parse.indegree ="2"  parse.outdegree ="0" />
    
< node  id ="n8"  parse.indegree ="1"  parse.outdegree ="3" />
    
< node  id ="n9"  parse.indegree ="1"  parse.outdegree ="0" />
    
< node  id ="n10"  parse.indegree ="1"  parse.outdegree ="0" />
    
< edge  id ="edge0001"  source ="n0"  target ="n2" />
    
< edge  id ="edge0002"  source ="n1"  target ="n2" />
    
< edge  id ="edge0003"  source ="n2"  target ="n3" />
    
< edge  id ="edge0004"  source ="n3"  target ="n5" />
    
< edge  id ="edge0005"  source ="n3"  target ="n4" />
    
< edge  id ="edge0006"  source ="n4"  target ="n6" />
    
< edge  id ="edge0007"  source ="n6"  target ="n5" />
    
< edge  id ="edge0008"  source ="n5"  target ="n7" />
    
< edge  id ="edge0009"  source ="n6"  target ="n8" />
    
< edge  id ="edge0010"  source ="n8"  target ="n7" />
    
< edge  id ="edge0011"  source ="n8"  target ="n9" />
    
< edge  id ="edge0012"  source ="n8"  target ="n10" />
  
</ graph >
</ graphml >




你可能感兴趣的:(Graph)