Продукты, относящиеся к классу систем поддержки принятия решений, ориентированы на работу с данными произвольной предметной области, которые могут быть организованы в виде семантической сети. Формирование графического представления обрабатываемой информации — неотъемлемая часть пользовательского интерфейса аналитических систем. Одно из возможных решений данной задачи реализовано в информационно-аналитической системе НЕВОД.

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

Одна из отечественных разработок в данной области — информационно-аналитическая система (ИАС) НЕВОД. Она предназначена для накопления, хранения и всестороннего анализа различной структурированной информации.

Модель представления данных

В ИАС НЕВОД принята следующая модель представления данных. Предметная область описывается в виде набора типов объектов. Для каждого типа указывается совокупность информационных атрибутов. Данные хранятся в виде объектов заданных типов, имеющих конкретные значения атрибутов (рис. 1).

Рис. 1. Представление данных в ИАС НЕВОД

За каждым информационным атрибутом закреплен тип хранимых значений. Поддерживается широкий набор типов, среди которых есть простые типы (целое число, вещественное число, символьная строка, дата, мультимедиа) и типы-ссылки, позволяющие задавать бинарные отношения между объектами. Кроме этого, между объектами могут существовать неориентированные бинарные связи, состоящие из пары соединяемых объектов и текстового атрибута — «окраски» бинарной связи.

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

Визуализация

Итак, информация, хранимая в базе данных НЕВОД, представлена в виде семантической сети. Узлами сети выступают информационные объекты, а связями между ними — бинарные связи между объектами и значения атрибутов-ссылок.

Рис. 2. Визуализация семантической сети

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

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

  • операции, изменяющие взаиморасположение объектов;
  • простые операции добавления и удаления элементов диаграммы;
  • дополнительные операции добавления и удаления элементов диаграммы.

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

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

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

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

Динамический анализ

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

  • цвет текста;
  • шрифт;
  • цвет и толщина линии;
  • стиль начертания линии (сплошная, пунктирная и т.д.);
  • изображения на концах линии (круг, стрелка и т.д.).

Изменение параметров визуализации диаграммы облегчает ее восприятие, поскольку позволяет произвольным образом выделять любые логически связанные элементы диаграммы. Динамический анализ — автоматическая установка параметров визуализации элементов диаграммы. Метод динамического анализа представляет собой упорядоченный набор правил, каждое из которых состоит из условия (накладываемого на элемент диаграммы) и результата (значений установки параметров визуализации). Каждое правило может устанавливать не все параметры визуализации, а только их часть.

Анализ элемента диаграммы происходит следующим образом: правила просматриваются в порядке их следования в наборе. Сначала проверяется, есть ли такие параметры визуализации, значения которых еще не установлены, а данное правило их устанавливает. Если это так, то проверяется, удовлетворяет ли анализируемый объект условию, которое накладывает на него указанное правило. Если да, то элемент визуализируется со значениями параметров, которые устанавливает данное правило. Если все необходимые параметры визуализации определены или рассмотрены все правила, то динамический анализ элемента диаграммы заканчивается.

Рис. 3. Визуализация и динамический анализ семантической сети

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

Пример диаграммы связей, к которой был применен динамический анализ, приведен на рис. 3.

Динамический анализ объектов

Метод динамического анализа состоит из наборов правил для анализа объектов и правил для анализа связей. Условия, накладываемые на информационные объекты, могут быть трех видов: для всех объектов; для объектов указанного типа; для объектов, входящих в результат запроса, который либо был выполнен ранее, либо должен быть выполнен с указанными значениями параметров в ходе анализа.

Правила анализа экземпляров объектов могут устанавливать следующие атрибуты визуализации:

  • цвет фона;
  • цвет текста;
  • шрифт, используемый для вывода текста;
  • степень закругления углов (в процентах);
  • пиктограмма, которая может либо отсутствовать, либо быть фиксированной, либо загружаться из указанного информационного атрибута анализируемого объекта;
  • размер пиктограммы;
  • текст, который может либо быть аннотацией объекта, либо формироваться из значений указанных информационных атрибутов объекта.

Динамический анализ связей

Аналогично правилам анализа объектов, правило анализа связей состоит из условий, накладываемых на соединяемые объекты, и условия накладываемого на окраску связи (должна ли связь быть окрашена соответствующим образом). Правила анализа связей могут устанавливать следующие параметры ломаных линий, изображающих бинарные связи:

  • цвет линии;
  • цвет текста;
  • шрифт, используемый для вывода текста;
  • стиль линии (сплошная, пунктирная и т.д.);
  • толщина линии;
  • необязательное изображение в начале и конце линии: круг, квадрат, ромб, стрелка.

Обобщение связей

Обобщение связей — это объединение цепочки элементов семантической сети, связанных в указанном порядке связями с указанными окрасками. Цепочка объединяется в одну связь с заданной окраской и визуализируется как одна дуга, соединяющая начальный и конечный экземпляры объектов из цепочки.

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

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

  • указана окраска бинарной связи между ними;
  • указан атрибут-ссылка одного объекта на другой.

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

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

  1. Каждый объект цепочки соответствует одному и только одному элементу из списка обобщаемых объектов и является объектом именно того типа, который указан в списке обобщаемых объектов.
  2. Если элементы списка обобщаемых объектов связаны указанной окраской связи, то соответствующие им объекты должны быть связаны бинарной связью с такой же окраской.
  3. Если элементы списка обобщаемых объектов связаны атрибутом-ссылкой, то один из соответствующих им объектов должен иметь атрибут-ссылку, значение которого указывает на соседний экземпляр цепочки.

Если удается найти такую цепочку, то в диаграмму добавляется связь, соединяющая первый и последний объекты из этой цепочки. Связь имеет указанную в правиле обобщения окраску.

Динамический анализ с помощью скриптов

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

В ИАС НЕВОД скрипт динамического анализа — программа, написанная на языке Visual Basic. Целью ее работы является анализ элементов диаграммы и изменение параметров визуализации некоторых ее элементов (узлов или дуг).

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

Кроме того, скрипт может создавать новые пункты контекстного меню и реагировать на выбор пользователем одного из таких пунктов.

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

Заключение

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

Механизм динамического анализа позволяет настроить «правила раскраски» элементов сети и задать способы объединения цепочек элементов сети в одну линию. Использование этих возможностей увеличивает наглядность изображений, генерируемых системой.

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

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

Константин Селезнев (skostik@relex.ru) — инженер-программист, Виктор Борисов (vict@relex.ru) — руководитель направления информационно-аналитических систем компании РЕЛЭКС (г. Воронеж).