1

我正在研究关于 Graph Grammar Modeling(模型检查)的研究论文。为了更好地理解,我开始探索研究人员进行的实验

他们使用点符号来指定图形结构并使用属性,例如labelangle=-35type = "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;
}

上述点文件的输出图

根据我到目前为止的理解,我什至不确定这个图应该是上面点文件的输出,因为边和节点映射与点文件和输出图中指定的不一样。

请帮忙。

4

1 回答 1

0

Graphviz 的概述可在使用 dot 绘制图形中获得。对属性的引用位于节点、边缘和图形属性 - Graphviz

type不是常规属性,但该语言支持任意用户属性,它通过这些属性进行进一步处理。也许实验中的后续步骤会使用它 - 布局引擎不使用它。

于 2013-10-23T12:33:02.317 回答