Я изучал исследовательскую работу по 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;
}
Исходя из того, что я понял до сих пор, я даже не уверен, что этот график должен быть выходным файлом вышеприведенного точечного файла, поскольку сопоставление ребер и узлов не совпадает с указанным в точечном файле и выходном графике.
Пожалуйста помоги.