用于点语言的非标准符号

时间:2013-10-07 17:00:42

标签: graphviz dot model-checking

我在图语法建模(模型检查)上研究research paper。为了更好地理解,我开始exploring the experiments由研究人员运作。

他们使用点表示法来指定图表结构,并使用labelangle=-35type = "rt|re|node"

等属性

我在互联网上找不到任何关于点语言的好参考,没有一个从新手的角度出发。当我搜索stackoverflow时,我感觉没有标准的方法来指定点中的东西,因为几个符号已经过时但仍然存在于文献中。

有人可以向我解释至少在这种情况下属性typelabelangle的目的是什么。

注意:typelabelangle似乎都不会对graphviz生成的图形产生影响。

例如,考虑下面的图表,它在detailed description of topology formation on page 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;
}

Output graph from above dot file

根据我迄今为止开发的理解,我甚至不确定此图应该是上述点文件的输出,因为边和节点映射与点文件和输出图中指定的不一样。

请帮忙。

1 个答案:

答案 0 :(得分:0)

有关Graphviz的概述,请访问Drawing graphs with dot。对属性的引用位于Node, Edge and Graph Attributes - Graphviz

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