可以为GraphML增加元数据(meta-data),以便于对Graph的分析。GraphML通过在元素上增加属性说明来定义图形的元数据。包括两类源数据,分别表示元素的数量信息和文件格式信息。
可增加的属性如下:
适用元素
|
属性名称
|
含义
|
graph(数量信息)
|
parse.nodes
|
图中节点的数量
|
parse.edges
|
图中边的数量
|
parse.maxindegree
|
图中节点的最大“入度”
|
parse.maxoutdegree
|
图中节点的最大“出度”
|
node (数量信息)
|
parse.indegree
|
节点的“入度”
|
parse.outdegree
|
节点的“出度”
|
Graph (格式信息)
|
parse.nodeids
|
如果值为” canonical”, 则所有 node 的 id 格式必须为” nx” ,其中 x 的大小表示 node 节点出现的顺序( x 小的先出现) ;
如果值为 ”free”,则node的id属性可以随意设置。
|
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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架