Нестандартные обозначения, используемые для точечного языка

Я изучал исследовательскую работу по Graph. Моделирование грамматики (проверка модели). Чтобы лучше понять, я начал исследование экспериментов, проведенных исследователи.

Они использовали точечную нотацию для указания структур графа и использовали такие атрибуты, как labelangle=-35 и type = "rt|re|node".

Я не могу найти в Интернете хорошую ссылку на точечный язык, ни одна из них не начинается с точки зрения новичка. Когда я искал stackoverflow, у меня возникло ощущение, что не существует стандартного способа указания вещей через точку, поскольку некоторые обозначения устарели, но все еще существуют в литературе.

Может кто-нибудь объяснить мне, какова цель атрибутов type или labelangle, по крайней мере, в этом контексте.

Примечание: кажется, что ни type, ни labelangle не имеют значения в графике, сгенерированном graphviz.

Например, рассмотрим следующий график, который был процитирован в подробное описание формирования топологии на странице 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;
}

Выходной график из файла с точками выше

Исходя из того, что я понял до сих пор, я даже не уверен, что этот график должен быть выходным файлом вышеприведенного точечного файла, поскольку сопоставление ребер и узлов не совпадает с указанным в точечном файле и выходном графике.

Пожалуйста помоги.


person Harshdeep    schedule 07.10.2013    source источник


Ответы (1)


Обзор Graphviz доступен по адресу Рисование графиков точками. Ссылка на атрибуты находится по адресу Атрибуты узла, края и графика — Graphviz.

type не является обычным атрибутом, но язык поддерживает произвольные пользовательские атрибуты, которые он передает для дальнейшей обработки. Возможно, есть последующий шаг в эксперименте, который использует это — он не используется механизмом компоновки.

person Pekka    schedule 23.10.2013