我正在研究关于 Graph Grammar Modeling(模型检查)的研究论文。为了更好地理解,我开始探索研究人员进行的实验。
他们使用点符号来指定图形结构并使用属性,例如labelangle=-35
和type = "rt|re|node"
我在互联网上找不到任何关于点语言的好的参考资料,它们都不是从新手的角度开始的。当我搜索 stackoverflow 时,我感觉没有标准的方式来指定 dot 中的内容,因为一些符号已经过时但仍然存在于文献中。
有人可以向我解释属性的目的是什么,type
或者labelangle
至少在这种情况下。
注意:graphviz 生成的图形似乎也type
没有区别。labelangle
例如,考虑下图,它在第 58 页的拓扑形成的详细描述中被引用为坏模式(不要担心坏模式是什么,这是研究人员在他们的论文中定义的),使用这个点文件创建:
graph bad_pattern
{
splines = true;
node1 [shape=circle, style = filled, width=.15, label = "1", type = "rt"];
node2 [shape=circle, style = filled, width=.15, label = "2", type = "re"];
node3 [shape=circle, style = filled, width=.15, label = "3", type = "node"];
node4 [shape=circle, style = filled, width=.15, label = "4", type = "rt"];
node5 [shape=circle, style = filled, width=.15, label = "5", type = "node"];
node6 [shape=doublecircle, style = filled, width=.15, label = "6", type = "re"];
RouteEntry0 [shape = box, style = filled, label = RouteEntry]
RouteEntry0 -- node1 [taillabel = 0, labelangle=-35, labeldistance=1];
RouteEntry0 -- node2 [taillabel = 1, labelangle=-35, labeldistance=1];
RouteAddress0 [shape = box, style = filled, label = RouteAddress]
RouteAddress0 -- node2 [taillabel = 0, labelangle=-35, labeldistance=1];
RouteAddress0 -- node5 [taillabel = 1, labelangle=-35, labeldistance=1];
RouteNextHopAddress [shape = box, style = filled]
RouteNextHopAddress -- node2 [taillabel = 0, labelangle=-35, labeldistance=1];
RouteNextHopAddress -- node3 [taillabel = 1, labelangle=-35, labeldistance=1];
RouteTable [shape = box, style = filled]
RouteTable -- node3 [taillabel = 0, labelangle=-35, labeldistance=1];
RouteTable -- node4 [taillabel = 1, labelangle=-35, labeldistance=1];
RouteEntry1 [shape = doubleoctagon, style = filled, label = RouteEntry]
RouteEntry1 -- node4 [taillabel = 0, labelangle=-35, labeldistance=1];
RouteEntry1 -- node6 [taillabel = 1, labelangle=-35, labeldistance=1];
RouteAddress1 [shape = doubleoctagon, style = filled, label = RouteAddress]
RouteAddress1 -- node6 [taillabel = 0, labelangle=-35, labeldistance=1];
RouteAddress1 -- node5 [taillabel = 1, labelangle=-35, labeldistance=1];
label = ""
fontsize=20;
}
根据我到目前为止的理解,我什至不确定这个图应该是上面点文件的输出,因为边和节点映射与点文件和输出图中指定的不一样。
请帮忙。