9
154 Касьянов В.Н., Золотухин Т.А. Visual Graph – система визуализации сложно структурированной информации большого объема на основе графовых моделей * В.Н. Касьянов 1,2 , Т.А. Золотухин 1 [email protected]|[email protected] 1 Институт систем информатики им. А.П. Ершова СО РАН, Новосибирск, Россия; 2 Новосибирский государственный университет, Новосибирск, Россия Доклад посвящен создаваемой в лаборатории конструирования и оптимизации программ ИСИ СО РАН универсальной системе Visual Graph для визуализации сложно структурированной информации большого объема на основе графовых моделей. Ключевые слова: атрибутированные иерархические графы, визуализация графов большого размера, ви- зуализация информации на основе графовых моделей, интерактивная визуализация, системы визуализа- ции. Visual Graph – a system for visualization of big size complex structural information on the base of graph models * V.N.Kasyanov 1,2 , T.A.Zolotuhin 1 1 Institute of Informatics Systems, Novosibirsk, Russia; 2 Novosibirsk State University, Novosibirsk, Russia The paper is devoted to the Visual Graph system being under development by the laboratory for program construction and optimization of Institute of Informatics Systems as an universal system for visualization of big size complex structural information on the base of graph models. Keywords: attributed hierarchical graphs, big size graph visualization, information visualization based on graph models, interactive visualization, visualization systems. Введение Визуализация информации играет большую роль в жизни человека. Считается, что около 90% всей по- лучаемой информации человек получает через зре- ние. Человечество за тысячи лет преодолело путь от простейших способов визуализации в виде на- скальных рисунков до карт, схем и диаграмм. В на- стоящее время визуализация на основе теоретико- графовых моделей – неотъемлемый элемент обра- ботки сложной информации о строении объектов, систем и процессов во многих приложениях в на- уке и технике [1-5]. На рынке широко представле- ны наукоемкие программные продукты, использу- ющие методы визуализации информации на осно- ве графовых моделей. В основном это многочис- ленные специализированные системы или встроен- ные компоненты систем, ориентированные на визу- ализацию определенных подклассов графовых мо- делей и/или специальные применения, но есть и универсальные системы, предназначенные для ви- зуализации графов общего вида и широкого назна- чения, такие как Higres [6, 7], aiSee [8], yEd [9] и Cytoscape [10]. Поскольку информация, которую желательно ви- зуализировать, постоянно увеличивается и услож- няется, возникает все больше ситуаций, в которых Работа выполнена при финансовой поддержке РФФИ, грант 15-07-02029 и опубликована при финансовой поддержке РФФИ, грант 15-07-20347. классические графовые модели перестают быть адекватными. Требуются более мощные теоретико- графовые формализмы для представления инфор- мационных моделей, обладающих иерархической структурой. Иерархичность является основой мно- гочисленных методов анализа и синтеза сложных информационных моделей в различных областях применения вычислительных систем. Одним из та- ких формализмов являются иерархические графы и графовые модели [11, 12]. В данном докладе будет рассмотрена универ- сальная система визуализации атрибутированных иерархических графов Visual Graph, которая рас- пространяется под лицензией BSD и создается в рамках ведущегося в лаборатории конструирова- ния и оптимизации программ ИСИ СО РАН проек- та по разработке методов и средств для визуализа- ции сложно структурированной информации боль- шого объема на основе графовых моделей. Область применения При создании экспериментальной версии систе- мы визуализации атрибутированных иерархиче- ских графов Visual Graph мы рассматривали в ка- честве основного ее использование разработчика- ми систем конструирования программ (таких как компилятор) для визуализации структур данных, возникающих при работе этих систем. Структуры данных, возникающие в таких систе- мах, естественным образом представляются в ви- Юбилейная 25-а Международная конференция (GraphiCon2015), Россия, Протвино (Парк Дракино), 22–25 сентября 2015 г. 25th Anniversary International Conference (GraphiCon2015), Russia, Protvino (Park Drakino), September 22–25, 2015

VisualGraph ...уке и технике [1-5]. На рынке широко представле-ны наукоемкие программные продукты, использу-ющие

  • Upload
    others

  • View
    13

  • Download
    0

Embed Size (px)

Citation preview

Page 1: VisualGraph ...уке и технике [1-5]. На рынке широко представле-ны наукоемкие программные продукты, использу-ющие

154 Касьянов В.Н., Золотухин Т.А.

Visual Graph – система визуализации сложно структурированнойинформации большого объема на основе графовых моделей ∗

В.Н. Касьянов1,2, Т.А. Золотухин1

[email protected]|[email protected]Институт систем информатики им. А.П. Ершова СО РАН, Новосибирск, Россия;

2Новосибирский государственный университет, Новосибирск, Россия

Доклад посвящен создаваемой в лаборатории конструирования и оптимизации программ ИСИ СО РАНуниверсальной системе Visual Graph для визуализации сложно структурированной информации большогообъема на основе графовых моделей.

Ключевые слова: атрибутированные иерархические графы, визуализация графов большого размера, ви-зуализация информации на основе графовых моделей, интерактивная визуализация, системы визуализа-ции.

Visual Graph – a system for visualization of big size complex structuralinformation on the base of graph models∗

V.N.Kasyanov1,2, T.A.Zolotuhin1

1Institute of Informatics Systems, Novosibirsk, Russia;2Novosibirsk State University, Novosibirsk, Russia

The paper is devoted to the Visual Graph system being under development by the laboratory for programconstruction and optimization of Institute of Informatics Systems as an universal system for visualization of bigsize complex structural information on the base of graph models.

Keywords: attributed hierarchical graphs, big size graph visualization, information visualization based on graphmodels, interactive visualization, visualization systems.

ВведениеВизуализация информации играет большую роль вжизни человека. Считается, что около 90% всей по-лучаемой информации человек получает через зре-ние. Человечество за тысячи лет преодолело путьот простейших способов визуализации в виде на-скальных рисунков до карт, схем и диаграмм. В на-стоящее время визуализация на основе теоретико-графовых моделей – неотъемлемый элемент обра-ботки сложной информации о строении объектов,систем и процессов во многих приложениях в на-уке и технике [1-5]. На рынке широко представле-ны наукоемкие программные продукты, использу-ющие методы визуализации информации на осно-ве графовых моделей. В основном это многочис-ленные специализированные системы или встроен-ные компоненты систем, ориентированные на визу-ализацию определенных подклассов графовых мо-делей и/или специальные применения, но есть иуниверсальные системы, предназначенные для ви-зуализации графов общего вида и широкого назна-чения, такие как Higres [6, 7], aiSee [8], yEd [9] иCytoscape [10].Поскольку информация, которую желательно ви-зуализировать, постоянно увеличивается и услож-няется, возникает все больше ситуаций, в которых

Работа выполнена при финансовой поддержке РФФИ, грант15-07-02029 и опубликована при финансовой поддержкеРФФИ, грант 15-07-20347.

классические графовые модели перестают бытьадекватными. Требуются более мощные теоретико-графовые формализмы для представления инфор-мационных моделей, обладающих иерархическойструктурой. Иерархичность является основой мно-гочисленных методов анализа и синтеза сложныхинформационных моделей в различных областяхприменения вычислительных систем. Одним из та-ких формализмов являются иерархические графыи графовые модели [11, 12].В данном докладе будет рассмотрена универ-сальная система визуализации атрибутированныхиерархических графов Visual Graph, которая рас-пространяется под лицензией BSD и создается врамках ведущегося в лаборатории конструирова-ния и оптимизации программ ИСИ СО РАН проек-та по разработке методов и средств для визуализа-ции сложно структурированной информации боль-шого объема на основе графовых моделей.

Область примененияПри создании экспериментальной версии систе-мы визуализации атрибутированных иерархиче-ских графов Visual Graph мы рассматривали в ка-честве основного ее использование разработчика-ми систем конструирования программ (таких каккомпилятор) для визуализации структур данных,возникающих при работе этих систем.Структуры данных, возникающие в таких систе-мах, естественным образом представляются в ви-

Юбилейная 25-а Международная конференция (GraphiCon2015), Россия, Протвино (Парк Дракино), 22–25 сентября 2015 г.25th Anniversary International Conference (GraphiCon2015), Russia, Protvino (Park Drakino), September 22–25, 2015

Page 2: VisualGraph ...уке и технике [1-5]. На рынке широко представле-ны наукоемкие программные продукты, использу-ющие

Visual Graph – система визуализации 155

де теоретико-графовых моделей большого размера.Так, например, синтаксические деревья использу-ются в качестве внутреннего представления транс-лируемых программ почти во всех компиляторахили интерпретаторах. Оптимизирующие и реструк-турирующие компиляторы требуют выявление втранслируемой программе управляющих и инфор-мационных связей и их представление в виде болееобщих теоретико-графовых моделей, таких как, на-пример, управляющий граф.Номенклатура этих графовых моделей в той илидругой системе конструирования может своя, от-личная от других. Более того, представления оди-наковых графовых моделей могут различатьсямежду собой в разных системах и даже в раз-ных версиях одной и той же системы. Однаковсе эти теоретико-графовые модели являются част-ными случаями атрибутированных иерархическихграфов.

Рис. 1: Использование системы Visual Graph

Поэтому предполагается следующий сценарий ис-пользования системы Visual Graph. Сначала ком-пилятор (сам либо с помощью вспомогательнойпрограммы) переводит графовую модель из внут-реннего представления в файл одного из поддержи-ваемых системой Visual Graph форматов, как пра-вило, GraphML-файл (Рис. 1). После этого системаVisual Graph сможет прочитать эту графовую мо-дель из файла, визуализировать ее и предоставитьпользователю средства навигации по ней.

Иерархические графы и графовые мо-делиРассмотрим ряд определений из [12].Пусть G обозначает граф произвольного вида,элементы (вершины и ребра) которого отлича-ются один от другого какими-либо пометками,называемыми их именами, например, G можетбыть неориентированным или ориентированнымграфом, мультиграфом (с кратными ребрами) илипсевдографом (с петлями).Граф C называется фрагментом графа G, обозна-чаем C ⊆ G, если C – часть графа G, т. е. C обра-зован подмножеством элементов графа G.F – иерархия фрагментов графа G, если F – та-кое множество фрагментов графа C, что G ∈ F

и для любых двух фрагментов C1 и C2 из F ли-бо фрагменты C1 и C2 не пересекаются, либо одиниз них является частью (подфрагментом) другого.Фрагмент G – основной (главный) фрагмент иерар-хии F . Фрагмент C ∈ F – элементарный, если в Fнет фрагментов G, являющихся подфрагментамифрагмента C.

Пусть задана некоторая иерархия фрагментов Fграфа G. Для любых C1, C2 ∈ F фрагмент C1 –прямой подфрагмент C2 (или, что то же самое,фрагмент, непосредственно вложенный в C2), ес-ли C1 – подфрагмент C2 и не существует такогоC3 ∈ F , отличного от C1 и C2,что C1 ⊆ C3 ⊆ C2.

Иерархический графH = (G,T ) состоит из графа Gи корневого дерева T , вершины которого соответ-ствуют элементам некоторой иерархии в G, а дугиотражают отношение их непосредственной вложен-ности. T называется деревом вложенности, а G –основным графом иерархического графа H.

Важный частный случай иерархических графовобразуют так называемые простые иерархическиеграфы, в которых все фрагменты являются подгра-фами основного графа. В частности, он содержитсоставные и кластерные графы.

Поскольку подграфы однозначно определяютсямножествами своих вершин, есть возможностьопределять простой иерархический граф H как па-ру (G,T ), состоящую из основного графа G и вер-шинного дерева вложенности T , удовлетворяюще-го следующим условиям. Вершины дерева T соот-ветствуют некоторым подмножествам вершин ос-новного графа G таким образом, что подмножествавершин, соответствующие листьям T , образуютразбиение множества всех вершин графа G на од-ноэлементные подмножества. Дуги дерева T отра-жают непосредственную вложенность соответству-ющих подмножеств. Такое представление иерархи-ческого графа называется вершинным (Рис. 2).

Под графовой моделью в общем случае мы понима-ем класс графовых объектов, имеющих вид атрибу-тированных (помеченных) графов, с заданным нанем отношением эквивалентности [12].

При этом при задании графовой модели будем раз-личать статическую (или синтаксическую) частьописания, определяющую класс помеченных гра-фов, образующих указанную модель, и динамиче-скую (или семантическую) часть, задающую разби-ение данного класса графов на подклассы попарноэквивалентных.

Page 3: VisualGraph ...уке и технике [1-5]. На рынке широко представле-ны наукоемкие программные продукты, использу-ющие

156 Касьянов В.Н., Золотухин Т.А.

Рис. 2: Вершинное представление простого иерар-хического графа с двумя нетривиальными фраг-ментами: сплошные линии – это ребра основногографа, штриховые линии – ребра вершинного де-рева вложенности

Пусть имеется множество объектов V , называемыхметками, распадающееся на попарно непересека-ющиеся подмножества классов меток. В качествеклассов меток могут использоваться определенныемножества чисел, символов, строк (цепочек симво-лов), формул, графов и объектов других видов.Пусть задано множество объектов W , называемыхтипами, и пусть каждому элементу w ∈ W по-ставлено в соответствие множество пометок V (w),имеющее вид декартового произведения Vi1 ×Vi2 ×× . . . × Vis , где Vij ∈ V – некоторый класс метокдля любого j.Со статической точки зрения иерархическая графо-вая модель – это тройка (H,M,L), гдеH – иерархи-ческий граф, M – функция типа, приписывающаякаждому элементу (вершине, ребру и фрагменту)h иерархического графа H его тип M(h) ∈ W , а L– функция меток, приписывающая каждому эле-менту h графа H его пометку – некоторый элементL(h) ∈ V (M(h)).При изображении графовой модели тип ее эле-ментов может быть связан с определенной геомет-рической формой соответствующих представленийи/или их цветовой гаммой, а также местом и спо-собом представления пометок, относящихся к эле-ментам соответствующего типа.Что касается динамической части иерархическойграфовой модели, то она привносит в визуализа-цию графовых моделей различные анимационныеаспекты.Обычно используется два основных подхода к за-данию семантической части графовой модели: пу-тем явного задания набора инвариантов (свойств,

присущих всем эквивалентым между собой моде-лям), который различает классы эквивалентностиграфовых моделей, либо через так называемые эк-вивалентные преобразования графовых моделей,которые сохраняют указанный набор инвариантов.Оба подхода к заданию семантической части гра-фовой модели опираются на преобразования гра-фов и активно развиваются в рамках теории схемпрограмм.

Язык GraphMLДолгое время среди используемых форматов пред-ставления графов не находилось ни одного, кото-рый был бы достаточно широко принятым в каче-стве стандартного. По-существу, инструменты ра-боты с графами поддерживали (да и сейчас многиеиз них поддерживают) лишь некоторую часть изсуществующих клиентских форматов, обычно со-стоящую из видов графовых представлений, огра-ниченных по выразимости и специфике конкретнойобластью применения.Поэтому не случайно в 2000 г. наблюдательныйкомитет симпозиума по рисованию графов (GraphDrawing Steering Committee) инициировал работыпо выработке формата обмена графами GraphML,который, в конечном счете, должен лечь в основустандарта описания графовых моделей.Основную цель, которую ставили перед собой раз-работчики языка, они сформулировали следующимобразом. Формат обмена графами должен бытьв состоянии представлять произвольные графы спроизвольными дополнительными данными, вклю-чая укладку и графическую информацию. Допол-нительная информация должна сохраняться в фор-мате, подходящем для заданного конкретного при-ложения, но не должна усложнять представлениеданных из других приложений или мешать ему.GraphML проектировался с ориентацией на этуцель, а также с учётом следующих более прагма-тических требований:1) Простота (Simplicity). Формат должен быть

простым для разбора и интерпретации каклюдьми, так и машинами. В качестве обще-го принципа формулируется отсутствие неод-нозначностей и таким образом существованиеединственной хорошо-определенной интерпре-тации для каждого валидного (valid) GraphML-документа.

2) Общность (Generality). Не должно существо-вать ограничений по отношению к графовой мо-дели, т. е. гиперграфы , иерархические графы ит. д. должны быть выразимы с помощью одногои того же базисного формата.

3) Расширяемость (Extensibility). Должна су-ществовать возможность расширять форматхорошо-определёным способом для представле-ния дополнительных данных, требуемых произ-

Page 4: VisualGraph ...уке и технике [1-5]. На рынке широко представле-ны наукоемкие программные продукты, использу-ющие

Visual Graph – система визуализации 157

вольными приложениями или более сложнымиспользованием (например, посылая алгоритмраскладки вместе с графом).

4) Робастность (Robustness). Система, не способ-ная обработать весь диапазон графовых моде-лей или дополнительной информации, должнабыть в состоянии легко распознавать и извле-кать то подмножество, которое она может обра-ботать.

Разработанный язык описания графов GraphMLбазируется на XML [13]. Он позволяет описы-вать ориентированные, неориентированные и сме-шанные графы, гиперграфы и иерархические гра-фы, а также любые специфичные для конкрет-ных приложений атрибуты. В частности, языкGraphML полностью поддерживает атрибутиро-ванные иерархические графы. Благодаря XML син-таксису, GraphML может использоваться в ком-бинации с другими форматами, основанными наXML. С другой стороны, свой собственный меха-низм расширения позволяет прикреплять <data>метки со сложным содержимым (возможно требу-емый для исполнения с другими моделями XMLсодержимого) элементов GraphML.

Возможности системыПользовательский интерфейс системы изображенна рис. 3. Он включает рабочий стол, миникар-ту, навигационную панель, а также атрибутную па-нель.

Рис. 3: Пользовательский интерфейс системыVisual Graph

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

Миникарта. Данный инструмент позволяет обо-зревать целиком весь граф, показанный в текущейвкладке, а также помогает перемещать и масшта-бировать видимую его область – ту часть графа,которая видна в текущей вкладке.

Навигационная панель. Навигационная понельпредназначена для визуализации всех графов, скоторыми работает пользователь, в виде изобра-жения с помощью отступов деревьев вложенностифрагментов этих графов. Для быстрого поиска подеревьям реализована строка поиска, которая поз-воляет пользователю без труда найти интересую-щие его элементы, используя регулярные выраже-ния. После чего пользователь может выделить ин-тересующие его элементы и открыть их в новойвкладке.

Атрибутная панель. Атрибутная панель – ин-струмент, который позволяет управлять визуали-зацией атрибутов для выбранных вершин и ребер втекущей вкладке. Для этого пользователю необхо-димо выделить у графа из текущей вкладке те вер-шины и ребра, которые ему интересны, после че-го отметить в атрибутной панели галочками те ат-рибуты, которые он хочет визуализировать у этихэлементов.

Так же с помощью данного инструмента можно за-дать набор атрибутов, которые будут видны у эле-ментов графа, открытых в новой вкладке.

Фильтр. Фильтр – инструмент, который поддер-живает поиск в текущей вкладке элементов (вер-шин и ребер) графовой модели по их атрибутам.Условия поиска задаются пользователем с исполь-зованием имен атрибутов и их значений (Рис. 4).Заданные пользователем условия могут быть объ-единены в выражения с помощью логических опе-раций и скобок. Результатом работы фильтра яв-ляется набор всех тех элементов графовой модели,которые удовлетворяют заданным условиям (Рис.5).

Рис. 4: Фильтр

Page 5: VisualGraph ...уке и технике [1-5]. На рынке широко представле-ны наукоемкие программные продукты, использу-ющие

158 Касьянов В.Н., Золотухин Т.А.

Рис. 5: Результат работы фильтра

Блокнот. Блокнот – инструмент, позволяющийзагружать дополнительную информацию в видетекстовых файлов и связывать ее с графовой моде-лью. После этого пользователь может переходитьот элементов графовой модели к связанной с ни-ми дополнительной текстовой информации. Напри-мер, это можно использовать для связи синтакси-ческого дерева с исходным кодом.

Средства структурного анализа. К этим сред-ствам относятся различные алгоритмы работы сграфовыми моделями, которые помогают пользо-вателю выделять и визуализировать нужную емуинформацию в их изображениях. К ним относятся,например, такие средства, как подсветка кратчай-шего пути, циклов, обязательных предшественни-ков и т. д., а также поиск максимального общегоподграфа двух графов [14]. Результат работы та-кого поиска изображен на Рис. 6.

Рис. 6: Пример работы алгоритма поиска макси-мального общего подграфа двух графов

Заметим, что задача нахождения максимально-го общего подграфа двух графов является NP-трудной, но возникает перед разработчиком компи-лятора довольно часто. Например, когда он хочетнайти разницу в поведении разных версий одного итого же компилятора. Эту разницу можно увидетьблагодаря графам, возникающим внутри компиля-тора в момент компиляции. В частности, благодаряним можно узнать какие оптимизации были сдела-ны или не сделаны в одной версии в отличии отоптимизаций, реализованные в другой версии.

При небольших графах (порядка 5 вершин), поль-зователь может визуально пытаться решить эту за-дачу, не прибегая к дополнительному инструмента-рию. Но стоит увеличить количество вершин до 15– 20 и эта задача уже не будет столь тривиальной.

Раскладчики. Задача раскладки графа на плос-кости не имеет и не может иметь оптимального ре-шения в связи с тем, что наборы критериев дляоценки качества раскладки различны для различ-ных приложений [1 – 5]. Известно, что для техили других приложений одни критерии могут вно-сить большую значимость в наглядность графа,чем другие. Тем не менее, для конкретных задач(и связанных с ними классов визуализируемых гра-фов) обычно можно подобрать виды раскладок, ихпримерные параметры и алгоритмы.

Основные графы, с которыми работает компиля-тор, имеют относительно небольшое количествоэлементов при их представлении в виде иерархи-ческих графов, когда надо визуализировать в от-дельных вкладках фрагменты, в которых вложен-ные фрагменты свернуты в вершины. Как прави-ло, алгоритм поуровневой укладки (иерархическийраскладчик) хорошо справляется с такими вида-ми графов. В зависимости от размера графа в немможно использовать различные эвристики для ми-нимизации ширины или высоты получаемой рас-кладки, а также для уменьшения числа пересече-ний между ребрами. Система Visual Graph предо-ставляет пользователю возможность использова-ния нескольких раскладчиков, основным из кото-рых является иерархический раскладчик (Рис. 7).При включении в систему он был максимальноадаптирован для работы с графами, используемы-ми в компиляторах. Но при желании этот (и любойдругой) раскладчик системы может всегда быть из-менен и/или настроен под другие типы задач.

Page 6: VisualGraph ...уке и технике [1-5]. На рынке широко представле-ны наукоемкие программные продукты, использу-ющие

Visual Graph – система визуализации 159

Рис. 7: Примеры раскладок управляющего графа

Особенности Реализации

Хранение графовых моделей внутри систе-мы. Размер файла с входной графовой модельюможет достигать сотни мегабайт, что не позволяетиспользовать оперативную память компьютера дляхранения визуализируемых графов в системе. По-этому было решено использовать кэширование дан-ных на жесткий диск, используя для этого реляци-онную базу данных. В качестве реляционной базыданных была выбрана встраиваемая база данныхSQLite [15]. В отличии от большинства популярныхреляционных баз данных, для SQLite не требуетсяустановка сервера, а вся клиент-серверная архитек-тура сводится к работе с файлами.В системе Visual Graph часть данных расположе-на в базе данных, а часть в оперативной памяти,благодаря чему достигается высокая скорость приработе с графовыми моделями большого размера.

Расширяемость системы. Все возможности си-стемы Visual Graph, в том числе по навигации,визуализации и структурному анализу, реализова-ны (и предоставляются пользователям системы) спомощью набора средств, который может расши-ряться как самими разработчиками системы VisualGraph, так и сторонними разработчиками.Для достижения простой расширяемой системыбыло принято решение об использовании продук-та Apache Felix [16], который в свою очередь яв-ляется реализацией спецификации OSGi [17]. Дан-ное решение является де-факто стандартным дляподобного типа задач и позволяет разработчикамлегко расширять систему за счет написания новыхплагинов.

Основные аналоги системыВ настоящее время на рынке представлен достаточ-но широкий круг систем для визуализации графо-вых моделей. Наиболее известными из них являют-ся: aiSee[8], yEd[9], Cytoscape[10] и Higres[6, 7].

Область применения, этих систем, частично совпа-дает с областью применения системы Visual Graph,но в целом несколько шире. Так многие из нихрассчитаны на редактирование существующих гра-фов и создание новых. В то время как системаVisual Graph предназначена, исключительно, дляпросмотра уже существующих графовых моделейбез возможности их редактирования.Основными задачами, решаемыми системой VisualGraph, являются отображение графовых моделей иинструменты навигации по ним.Поэтому в рамках этих двух задач и будем в ос-новном рассматривать особенности каждой из пе-речисленных систем.

Система aiSee. Это – коммерческая система, ко-торая автоматически строит раскладку исходногографа, описанного на специально разработанномязыке GDL. Затем пользователь может интерак-тивно исследовать данный граф (без возможностиредактирования), отпечатать его и сохранить в раз-личных форматах. Первоначально система быларазработана для визуализации структур данных,обрабатываемых компиляторами. На сегодняшнийдень ее используют десятки тысяч людей по всемумиру в самых разных прикладных областях, в томчисле:— бизнес-менеджмент (структурные схемы пред-

приятий, визуализация бизнес-процессов),— генеалогия (генеалогические деревья, эвалюци-

онные диаграммы),— разработка программного обеспечения (блок-

схемы, управляющие графы, графы вызововфункций),

— веб-дизайн и оптимизация сайтов (карты сай-тов, графы движения пользователей, визуали-зация графов на страницах вики),

— спорт (турнирные деревья) и др.

В aiSee присутствует несколько раскладчиков, имножество настроек для них, которые в разной сте-пени влияют на получаемый результат. Качествораскладок определенных типов графов системойвесьма высокое.В качестве инструментов навигации, aiSee предо-ставляет:1. Рабочий стол – инструмент, который визуализи-

рует графовую модель целиком, выдавая поль-зователю статичную картинку, которую нельзяизменять, например, передвигая элементы.

2. Поисковик – инструмент, позволяющий пользо-вателю искать элементы графовой модели с по-мощью их имен. Он поддерживает задание ре-гулярных выражений, выбор категорий элемен-тов для поиска и сохранение предыдущих поис-ковых запросов.

Система yEd. Данная система предназначенадля быстрого создания и редактирования высоко-

Page 7: VisualGraph ...уке и технике [1-5]. На рынке широко представле-ны наукоемкие программные продукты, использу-ющие

160 Касьянов В.Н., Золотухин Т.А.

качественных диаграмм. Создание диаграмм про-исходит вручную или с помощью импортированияиз внешних данных. После чего к полученной диа-грамме можно применить богатый набор алгорит-мов для проведения анализа с последующим полу-чением необходимой информации.В системе yEd присутствует большое количествораскладчиков и опций для них, которые предостав-ляют возможность тонкой настройки визуализациикаждого графа пользователем.В качестве инструментов навигации система yEdпредоставляет следующие:1. Рабочий стол, схожий с рабочим столом, кото-

рый предоставляет система aiSee. Но в отли-чие от aiSee здесь есть возможность работатьс несколькими графами одновременно в одномэкземпляре программы (создается вкладка длякаждого графа), а также есть возможность ре-дактирования элементов графа, начиная от сме-ны их положения и размеров до задания атри-бутов, влияющих на их визуализацию.

2. Навигатор – инструмент, отображающий граф,находящийся в текущей вкладке.

3. Миникарта – инструмент, показывающий весьграф, находящийся в текущей вкладке, и выде-ляющий ту его часть, которая видна на вкладке.

Система Cytoscape. Cytoscape – свободная си-стема с открытым исходным кодом для визуали-зации и анализа сетей. Основная область приме-нения данной системы является биоинформатика.Данная система стала очень популярной благодарятому, что легко расширяется, позволяя стороннимразработчикам писать для нее различные плагины.Cytoscape имеет как собственные алгоритмы рас-кладки, так и сторонние, среди которых можноотметить присутствие алгоритмов из yFiles. Сто-ит также отметить, что результаты, получаемые всистеме yEd намного лучше, чем аналогичные ре-зультаты, получаемые в системе Cytoscape, с на-стройками раскладчиков по умолчанию. Выделимосновные средства навигации, которые предостав-ляет система Cytoscape для решения данной зада-чи:1. Рабочий стол, схожий с рабочим столом, кото-

рый предоставляет система yEd. Отличие за-ключается в том, что система Cytoscape не уме-ет работать с иерархическими графами.

2. Миникарта, идентичная миникарте в системеyEd.

3. Атрибутная панель – инструмент, позволяющийотображать текущие атрибуты и задавать но-вые. Данный инструмент выглядит в виде таб-лицы, по горизонтали, которой расположеныимена атрибутов, по вертикали список выделен-ных вершин, а в ячейках соответствующие зна-чения того или иного атрибута для той или инойвершины.

4. Фильтр – инструмент, позволяющий осуществ-лять поиск вершин и ребер по заданным усло-виям на атрибутах.

Система Higres. Higres – первый отечествен-ный универсальный визуализатор и редактор гра-фовых моделей. Созданная в ИСИ СО РАН систе-ма Higres ориентирована на многооконную работу спростыми иерархическими графами (Рис. 8). Каж-дому фрагменту иерархического графа соответ-ствует некоторый прямоугольник плоскости, внут-ри которого располагаются все его вершины. Кро-ме того, для каждого фрагмента можно открытьотдельное окно, в котором видны только вершиныданного фрагмента и его подфрагменты. При этомкаждый подфрагмент можно объявить закрытым –тогда изображаются только его контуры, либо от-крытым – тогда изображаются все его вершины иинцидентные им дуги. Для изображения контуровфрагментов в системе используется прием созда-ния эффекта тени. Закрытые фрагменты выглядятслегка выступающими вверх – как будто они за-крыты крышками, открытые же слегка утопленывниз.Важным отличием системы Higres от других уни-версальных систем визуализации является ее спо-собность сохранять во внутреннем представлениии визуализировать не только сам граф, но и егосемантику, представленную в виде системы типоватрибутированных вершин, дуг и фрагментов гра-фа, а также библиотеки алгоритмов обработки –так называемых внешних модулей. Причем поль-зователь системы может легко управлять метода-ми визуализации графовой модели, а также кор-ректировать и доопределять ее семантику. Такойподход обеспечивает, с одной стороны, универсаль-ность системы Higres, с другой – возможность ееспециализации. Он также позволяет использоватьсистему как платформу для исполнения и анима-ции алгоритмов работы с иерархическими графа-ми. Запустив внешний модуль, пользователь мо-жет регулировать параметры обработки графовоймодели, прерывать алгоритм на любом шаге, про-сматривать в любую сторону последовательностьизображений промежуточных результатов шаговработы алгоритма как в форме анимации, так ив покадровом режиме.В качестве инструментов навигации Higres предо-ставляет:1. Рабочий стол, который хотя и аналогичен ра-

бочему столу системы aiSee, но в отличие отнего дает возможность редактировать элементывизуализируемого иерархического графа, начи-ная от смены их положения, формы и размеровдо задания типов и атрибутов элементов графа,влияющих на их визуализацию, а также закры-вая или открывая те или другие фрагменты.

Page 8: VisualGraph ...уке и технике [1-5]. На рынке широко представле-ны наукоемкие программные продукты, использу-ющие

Visual Graph – система визуализации 161

2. Миникарта, аналогичная миникарте в системеyEd.

Рис. 8: Система Higres

ВыводыВ докладе была рассмотрена система Visual Graph,которая создается в лаборатории конструированияи оптимизации программ ИСИ СО РАН для визу-ализации сложно структурированной информациибольшого объема на основе графовых моделей.В отличие от зарубежных аналогов, таких как aiSeeсистема Visual Graph поддерживает обработку про-извольных атрибутированных иерархических гра-фов (в том числе составных и кластерных графов)и использование для спецификации входного (ви-зуализируемого) графа стандартного языка описа-ния графов GraphML, ориентирована на пошаго-вое построение многооконного изображения графо-вой модели, состоящего из укрупненных изображе-ний интересных пользователю фрагментов модели,и предоставляет богатые возможности для навига-ции по графовой модели и ее структурного анали-за, работы с атрибутами ее элементов, а также про-стого расширения и настройки системы на нуждыконкретного пользователя.Созданная экспериментальная версия системыVisual Graph ориентирована на визуализациюструктур данных, возникающих в компиляторах,позволяет одновременно работать с ними как в гра-фовой, так и в текстовой форме, и обеспечиваетплавность выполнения основных операций над гра-фами, содержащими до 100000 элементов (вершини дуг). Система проходит тестовое использование вкомпании Intel.Ведется работа по встраиванию системы VisualGraph в визуальную среду параллельного програм-мирования, создаваемую в рамках проекта по под-держке облачных супервычислений на базе языкаCloud Sisal [17, 18]. Цель проекта – дать возмож-ность широкому кругу лиц, находящихся в уда-

ленных населенных пунктах или в местах с недо-статочными вычислительными средствами, разра-батывать параллельные программы на доступныхперсональных компьютерах, имеющих выход в Ин-тернет, и оперативно дистанционно использоватьдля их исполнения вычислительные мощности, со-средоточенные в крупных вычислительных цен-трах.Создаваемая среда должна любому пользователю,имеющему выход в Интернет, позволить без уста-новки дополнительного программного обеспеченияна своем рабочем месте в визуальном стиле со-здавать и отлаживать переносимые параллельныепрограммы на языке Cloud Sisal, а также в обла-ке осуществлять эффективное решение своих за-дач, исполняя на некотором супервычислителе, до-ступном ему по сети, созданные и отлаженные пе-реносимые Cloud-Sisal-программы, предваритель-но адаптировав их под используемый супервычис-литель с помощью облачного оптимизирующегокросс-компилятора, предоставляемого средой.Среда использует внутреннее представление Cloud-Sisal-программ, которое имеет вид атрибутирован-ных иерархических графов.Предоставляемые системой возможности по визуа-лизации внутреннего представления программ бу-дут позволять пользователю получать изображе-ние структуры программы и отслеживать процес-сы конструирования, отладки и преобразованияCloud-Sisal-программы с помощью графических об-разов.

Литература[1] Di Battista G., Eades P., Tamassia R., Tollis I. G.

Graph Drawing: Algorithms for Visualization ofGraphs. – PrenticeHall, 1999.– 397 p.

[2] Herman I., Melancon G., Marshall M. S. Graphvisualization and navigation in informationvisualization: a survey// IEEE Trans. on Visualizationand Computer Graphics. – 2000.– Vol. 6. – pp. 24-43.

[3] Касьянов В. Н., Евстигнеев В. А. Графы в про-граммировании: обработка, визуализация и приме-нение. – СПб.: БХВ-Петербург, 2003.–1104 с.

[4] Касьянов В. Н., Касьянова Е. В. Визуализация гра-фов и графовых моделей. – Новосибирск: Сибир-ское Научное Издательство, 2010. – 123 с.

[5] Касьянов В. Н., Касьянова Е. В. Визуализация ин-формации на основе графовых моделей// Научнаявизуализация – 2014. – Т. 6, N 1. – C. 31 - 50.

[6] Lisitsyn I. A., Kasyanov V. N. Higres – visualizationsystem for clustered graphs and graph algorithms //Lecture Notes in Computer Science. – 1999. – Vol.1731.– pp. 82-89.

[7] http://pco.iis.nsk.su/higres – Система Higres.[8] http://www.aisee.com – Система aiSee.[9] http://www.yworks.com – Система yEd.

Page 9: VisualGraph ...уке и технике [1-5]. На рынке широко представле-ны наукоемкие программные продукты, использу-ющие

162 Касьянов В.Н., Золотухин Т.А.

[10] http://www.cytoscape.org – Система Cytoscape.[11] Kasyanov V. N. Hierarchical graphs and visual

processing // ICM 1998 International Congress ofMathematicians. Abstracts of Short Communicationsand Poster Sessions. – Berlin, 1998. – p. 292.

[12] Касьянов В. Н. Иерархические графы и графовыемодели: вопросы визуальной обработки// Пробле-мы систем информатики и программирования.– Но-восибирск, ИСИ СО РАН, 1999. – С. 7-32.

[13] http://graphml.graphdrawing.org/specification.html – Спецификация языкаGraphML.

[14] Золотухин Т. Алгоритм поиска максимальногоподграфа двух графов и его реализация в рам-ках системы VisualGraph // Инновационные тех-нологии: теория, инструменты, практика (InnoTech2013). Материалы V Международной Интернет-конференции молодых ученых, аспирантов и сту-дентов. – Пермь: ПНИПУ, 2014. – С. 190-196.

[15] http://www.sqlite.org – SQLite.[16] http://felix.apache.org – Apache Felix.[17] http://www.osgi.org/Main/HomePage – OSGi

Alliance.[18] Касьянов В.Н., Идрисов Р.И., Касьянова Е.В.,

Стасенко А.П. Методы и средства параллельногопрограммирования на основе языка Sisal// Мате-риалы XV Международной конференции “Инфор-матика: проблемы, методология, технология”. – Во-ронеж: ВГУ, 2015. – Том 3. – С. 166-170.

[19] Kasyanov V.N., Kasyanova E.V. Cloud system offunctional and parallel programming for computerscience education// Proceedings of 2015 2ndInternational Conference on Creative Education(ICCE-2015), June 27-28, 2015, London, UK. –SMSSI, 2015. – pp. 270-275. –(Advances in EducationSciences, Vol. 10).