Расширенная визуализация связанных данных. Простые инструменты для простых задач

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Даже сложные картинки часто читаются проще чем простые столбики связанных данных (например, взаимосвязанных табличек). Такова особенность восприятия информации человеком. Поэтому он постоянно пытается данные (знания) визуализировать в графике. В принципе любой граф с информацией к его узлам или ребрам (сеть сущностей, их семантические типы, свойства и отношения) можно «громко» назвать графом связанных данных и даже Графом знаний (Knowledge graph).

Точных определений «Связанные данные»@ru и направления Knowledge graph – полагаю, что нет, поэтому не углубляясь в теорию, обозначим лишь базовый принцип «Связанных данных»: «субъект – связь (предикат) - объект» (тройки , triples). Принцип лежит во всех прикладных задачах визуализации этих самых «троек»: анализ больших графов (Gephi, Cytoscape), BPM (ARIS, ARPO), «графовые» Zettelkasten (Roam Research, Obsidian, Loqseq) - Personal Memory Manager / Personal Knowledge Management (TiddlyMap), всевозможные концептуальные - ментальные карты (мозгового штурма, карты разума mind-map) и заканчивая semantic Web. 


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

1 Требования к инструментам

А) «Более, чем граф». Понятно, что речь идет о графической визуализации данных, лежащих в хранилищах (таблички, CSV\JSON\XML файлы, базы данных), но визуализации типовым значком графа «овал» - недостаточно. Вместо «просто граф» (набор связанных кружков) или «просто структурная схема» (набор связанных квадратиков) - интересен инструмент, который может на схеме отображать фигуры (овалы, прямоугольники) в зависимости от типа объекта, включая рисунок, например, фотографию (аватарку), а также отображать свойства объекта (атрибуты, параметры). Понятно, что можно сделать кликабельную ссылку на объект (узел графа) и открывать его «большой полный профиль» в отдельном окне, но минимум данных, включая «иконку», полезно иметь сразу на общей схеме. Поэтому и добавлено уточнение «Расширенная визуализация», что подразумевает некую нотацию, которая определяет тип фигуры (прямоугольник, овал, т.е. способ визуализации) в зависимости от типа визуализируемого объекта. 

Б) «Просто и дешево». Рассматриваем простые инструменты, бесплатные или «народные» (широко распространенные типа MS Office). Еще лучше - Open Source, в идеале FOSS.

В) «Редактируемость графики». Даже если инструмент содержит «автопостроитель схемы» (генератор картинки/ графа по данным), то обычно (в рабочих задачах - всегда) требуется корректировка, т.е. редактирование самой схемы (векторного рисунка). Поэтому нужен инструмент, который хранил бы и координаты объектов нашей схемы (читай редактор векторной графики). 

Г) «Более чем векторный рисунок». Т.е. это не только визуализация связей рисунком, а должен быть доступ к данным с возможностью их анализа (поиск, сортировка, фильтрация и т.п.), т.е., некий графический инструмент «Связанные данные» с удобным доступом к структурированным данным (как минимум, возможность «провалиться» из графа в данные).

Д) On-Premise. Даже для задач «Home Edition» у меня и ранее был негатив к новомодным On-Cloud (они хороши для обучения, демонстрации возможностей, тестирования), т.к. всегда есть риск, что на неконтролируемой стороне что-то «пойдет не так», «что-то отвалится» или тебе просто «отрежут» канал связи (и VPN не поможет) или навсегда забанят твою учётку. После иска Малафеева и банкротства рус-Гугл, риски резко возросли, кроме того, некоторые FOSS-проекты, в том числе на github, уже добавили в описании к репозитарию «черную метку» - сноску «Кроме РФ и Белоруссии». Поэтому только On-Premise или On-Premise + On-Cloud.

2 Связь «Один родитель»

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

Обычно это структура: «объект 1 – связь типа [единственный родитель] - объект 2». Иерархические схемы аналогичны иерархическому меню (компонент treeview): каждому объекту достаточно задать единственного «предшественника» и далее «дело техники».

Хорошо смотрятся такие «Связанные данные» как связка Visio + Excel с использованием штатных мастеров «Орг-диаграмма» или «Мозговой штурм». Пример Мастера Орг-диаграмм: Создание оргструктуры в Visio из Excel

Кроме распознавания типа связи «Parent» (Child) или «Boss» (Subordinate) штатная связка  Visio +  Excel позволяет отображать любые данные, указанные в Excel (должность, телефон и т.п.). Даже без указанных двух мастеров, отдельно штатная связка Visio + Excel – является мощнейшим инструментом.

Visio + Excel Связанные данные на примере Дашборда: Создание простейшего дашборда в Visio — импорт данных из Excel в Visio

Связанные данные на штатной интеграции Visio + Excel выглядят неплохо даже несмотря на то, что давным-давно в интеграции не было нововведений, а сама связка имеет изъяны, например, отсутствие ранжирования в мастере орг-диаграмм: нет ключа (поля) и алгоритма взаимного размещения структур одной иерархии (правее - левее). К тому же Visio не имеет нормальной web-публикации (SharePoint не в счет) и даже нормальной выгрузки в pdf (например, нет всплывающих подсказок), что вынуждает искать сторонние «заплатки», например, Svg Publish, PDFTip

Кстати, штатная связка Visio + Excel имеет автоматическую линковку и двухстороннюю синхронизацию данных («Excel > Visio» + «Visio > Excel»). Microsoft Visio Data Visualizer не рассматриваем, см. пункт “Требования к инструментам”.  

Примерами «Связь Один родитель» будут различные структурные схемы, в которых структура выражена деревом, т.е. кроме орг-штатной, будут:

- «дерево бизнес-процессов» (гуглим), Общий пример иерархии процессов

пример с конкретикой:

Рис.  ITIL Processes/
Рис.  ITIL Processes/

- структурные схемы – иерархии: «дерево информационных систем», «дерево целей», «дерево угроз», а также

- любые «деревья», построенные многочисленными инструментами «мозгового штурма» (Карта мыслей), включая MindMap, FreeMind, XMind и их обширные применения, например, Mind Map в помощь тестировщику

3 Связь «Два родителя»

Классический пример - генеалогическое древо (два родителя) или административное и функциональное подчинение (матричная структура управления). Примеры тут

С учетом “Требования к инструментам” – выбор не велик, десять лет назад лучше, чем упомянутая связка Visio + Excel - не нашел.

При использовании популярных библиотек, «заточенный» под генеалогическое древо не понятно, как быть с редактированием (и сохранением) сгенерированного svg и линковки его с данными, например, сериализированных в json или csv. Библиотеки визуализации графов в JavaScript

Штатного мастера genealogical tree явно не хватает в MS Visio. Кроме «родственной» связности, в промышленных областях возникает проблема отражения двойственности подчинения, например, «административное» и «функциональное» подчинение в матричных структурах управления. Внутреннее устройство движка «генеалогическое древо» можно посмотреть в Bonsai: фамильный вики-движок

4 Связь «N»

4.1 Детективная доска

Подразумевается множественная связь объектов. Если отойти от классических графов, то типовой прикладной задачей можно назвать «Детективная доска», «Detective crime investigation board»: Детективная доска. Как анализ графов применяется в расследовании инцидентов

Такого специализированного ПО с учетом «Требований к инструментам» не нашел.

Подходы. Excel «притягивает» своими возможностями аналитики данных (включая сводные таблицы и VBA), простотой (минимальный порог вхождения в Связанные данные) и обилием учебной информации (массы примеров). Если «опереться» на Excel, то кроме упомянутой связки Visio + Excel есть инструменты визуализации данных: Excel to Graphviz и NodeXL

Они хоть и просты и интересны, но все же не отвечают нашим требованиям (как минимум, редактируемости графа). Встречал на NodeXL примеры, похожие на  «Детективная доска».

Одним из решений задачи может быть «старенький» VUE «Visual Understanding Environment» (не путать с библиотекой VUE.js). Примеры VUE можно посмотреть тут и тут

К сожалению, встроенных возможностей по анализу данных в VUE совсем не много (по сравнению, например, с Gephi и Cytoscape).

4.2 BPM&EA

Другой задачей (кроме «Детективная доска») служит направление BPM&EA (Business Process Management & Enterprise Architecture). Пример визуализации цепочки добавленной ценности (Value Added Chain diagram, VAD) с помощью Excel + Visio приведен на рис. VAD-схема:

Рис. VAD-схема
Рис. VAD-схема

Показаны основные этапы кредитования. Смысл схемы: цепочка процессов (корабликов), каждый из которых производит промежуточный или финальный продукт с указанием исполнителей. Все данные хранятся в табличке, там же хранится много других данных по каждому процессу (средняя длительность этапа, его себестоимость). Фактически каждая строка таблицы – это паспорт этапа (шага) процесса (формуляр, паспорт объекта).

Подобные схемы строятся «в пару кликов», а мощь Excel и Visio позволяет как глубокую аналитику, так и изящную визуализацию.

Если задачу формализации верхнеуровневых процессов еще можно отнести к «простым» (несложная нотация VAD), то их детализация (логика ветвления алгоритма, ресурсы процессы, документы-входы-выходы) требует куда более сложных нотаций. Если на рис. VAD-схема имеет связи типа:

:имя процесса  :тип связи «исполняет процесс» :исполнитель процесса .

:имя процесса  :тип связи «результат процесса» :название продукта процесса .

то для нотаций типа EPC или BPMN номенклатура типов связей будет намного шире. Однако, общий подход не меняется: общая концепция «Расширенной визуализации связанных данных» останется той же (при движении «от данных к схеме»):

1) взять из хранилища (в простейшем случае - таблички) субъект (объект) и в соответствии с его типом и нотацией отобразить на схеме;

2) соединить субъекты (объекты) между собой в соответствии с типом Связи и нотацией (это может быть не линия, а взаимная группировка, например, в рамках одного кластера).

Можно идти путем разработки от «схемы к данным», т.е. рисуя схему автоматически заполнять хранилище данных. Для BPM&EA кроме Archi можно назвать разве что ARPO Freeware

ARPO Freeware в отличие от других «BPM-инструментов с free редакцией» не урезает функциональность (trial по времени не рассматриваем), а ограничивает общее количество объектов (объем модели).

В целом BPM&EA – это такой же Knowledge graph, но со сложной нотацией. Что в BPM&EA, что в Knowledge graph визуальная картинка – это всего лишь видимая часть айсберга, а подводная – это инструменты анализа данных (фильтры, сортировки, запросы). Мы говорим о технической стороне вопроса, т.е. различные идеологические вопросы (фреймворки BPM&EA, эталонные модели и т.п.) не затрагиваем.

5 Перспектива

Есть список систем, но не полный: Список программ для диаграмм связей

Draw.io (JGraph) имеет шансы в будущем заменить связку Visio + Excel если к нему прилинковать какой-либо табличный процессор (тот же Excel, например, через Visual Studio Code) или БД (как вариант fileJSON-БД).

Пример на основе парсинга файлов для «drawio + google sheets», см. Карта процессов верхнего уровня компании и матрица RACI c помощью drawio и google sheets

Если аналоги Excel встречаются: локальные spreadsheets типа EtherCalc, Spread32 и т.п. (не путать с облачными сервисами типа Airtable), то готовой связки их с каким-либо инструментом построения схем (векторным редактором с шаблонами примитивов для разных типов объектов) – не встречал. Популярные графические редакторы FOSS (библиотеки) не имеют встроенных (штатных) механизмов линковки к внешним данным (мастера первичной генерации схемы по данным Dot-graphviz, Mermaid, PlantUML – не в счёт).

Есть графовые БД, SQL и noSQL инструменты, имеющие интеграцию с подсистемой визуализации через граф связей и доступом к информации через выбранный узел или ребро, но сказать, что они «простые» - пока нельзя. Потребуется какое-то время, чтобы имеющуюся сложность «убрать под капот» и предложить простой «народный» продукт, который легко сможет строить: что генеалогическое древо, что граф знаний предприятия, примерно так, как это умеет Visio + Excel (т.е. небольшой порог вхождения).

По тексту использовал название «Связанные данные», а не «Linked Data». Кто-то может сказать, что то, что было показано выше – это совсем не Linked Data, т.к. «настоящая» Linked Data – это w3.org, Semantic Web (RDF, OWL, SPARQL и т. д.). Назвать приведенные в статье примеры и подходы «Несвязанными данными» или «Связанными не данными» - видимо будет неверным.

Пока BPM-системы, у которых «под капотом» скрыты технологии Semantic \ Linked Data – редкость, например, Comindware

Видимо это только «пока» и не «за горами» современный ARIS (Archi) на базе «настоящего» Linked Data, потому что свой semantic – инструментарий («велосипед») изобретать вряд ли целесообразно. И хотелось бы чтобы это было из серии: Простые инструменты для сложных задач. 

Источник: https://habr.com/ru/post/675780/


Интересные статьи

Интересные статьи

Привет. В результате работы с начинающими веб-дизайнерами прослеживаются повторяющиеся ошибки — общие в не зависимости от среды разработки (опыт с figma и photoshop). Обсудим их.Эти советы очень прост...
В первых 2х статьях (раз и два) мы с вами уже взглянули на виды тестирования, применяемые в геймдеве и примеры багов, часто (и не очень) встречаемых в играх. Но в воздухе остался неозвученный вопрос: ...
Разберемся на простейших примерах, когда уместно использовать логарифмическое преобразование целевой переменной в задаче линейной регрессии, а когда можно этого не делать.
Привет, Хабр! В названии этой статьи есть словосочетание «нелинейный мир»… Думаю, что большинство читателей поняли смысл этого словосочетания, но я всё же расшифрую его. Реальные систе...
Привет, меня зовут Павел Савельев, я руководитель отдела автоматизации бизнес-процессов в Lamoda. Мы работаем с очень разными задачами, и стараемся подобрать для каждой наиболее удобный инструмен...