Механизм визуализации
фасетной классификации
Санкт-Петербургский государственный университет
Санкт-Петербург
Введение
Древовидные классификационные схемы используются в Интернете уже около 20 лет: сначала для организации навигации в телеконференциях [1], а затем и в поисковых системах видимой части Интернета — «Всемирной паутины» (см., например, [2, 3]). Известно, однако, что для организации эффективного поиска в документальном массиве единственной классификационной схемы может оказаться недостаточно [4], но может потребоваться комбинация классификаций. Для комбинирования классификаций [5] был предложен подход, названный им «фасетная классификация». Другим примером фасетной классификации является Универсальная десятичная классификация (УДК, [6]). И подход Ранганатана, и УДК используют неочевидные для неспециалиста формализмы, связывающие классификационные индексы, принадлежащие различным классификациям (фасетам) в единый строковый индекс (фасетную формулу).
В настоящей работе предложен способ визуализации фасетной классификации, использующий одновременное представление двух фасетов как координат на плоскости с возможностью дальнейшего уточнения фасетной формулы последующим выбором следующих классификационных рубрик из линейных и/или древовидных представлений фасета.
Дальнейшее изложение организовано следующим образом.
В первом разделе описаны потребности в визуализации фасетных классификаций и программные механизмы, которые должны поддерживать визуализацию: эффективное хранение иерархически организованных данных, возможность выбора пользователем последовательности фасетов в фасетной формуле, компактность визуального представления каждой из частных классификаций, участвующей в фасетной классификации.
Во втором разделе представлены решения, обеспечивающие как эффективное хранение данных для последующей их визуализации, так и для удобного наполнения хранилища данных.
В третьем разделе обсуждаются реализованные способы представления фасетов и параметризация представления классификаций в каждом из них.
Четвертый раздел кратко описывает механизм, обеспечивающий собственно представление данных, соответствующих конкретной фасетной формуле.
В Заключении обсуждаются возможные пути развития предложенного подхода и его применение.
1. Предпосылки визуализации фасетной классификации
И классификация, использованная Ранганатаном, и, тем более, УДК, — большие классификации, насчитывающие многие десятки и сотни тысяч рубрик. Их основные классификационные деревья имеют одновременно большие глубину и ширину. Визуализация таких классификаций, видимо, представляет чрезвычайно тяжелую задачу (при небольшой глубине, но большой ширине классификационного дерева, однако, возможны эффективные визуализационные решения, см., например, сайт библиотеки документации компании Майкрософт [7]).
В то же время в практике создания информационных систем часто встречаются небольшие фасетные классификации. Так, например, при работе с научной электронной коллекцией любой проблемной области возможны классификации по трем фасетам:
— методикам этой проблемной области;
— сферам применения этих методик (в том числе и в других проблемных областях);
— видам источников информации.
Визуализация подобной классификации на странице веб-сайта информационной системы той или иной предметной области может существенно облегчить поиск информации специалисту этой предметной области, не знакомому с формализмами записи фасетных формул.
Какой именно фасет будет выбран пользователем в качестве главного (первым в фасетной формуле), заранее неизвестно. Система визуализации должна позволять осуществлять такой выбор и эффективно работать при любой последовательности выбора фасетов.
Даже при небольшом количестве рубрик в каждом фасете общее количество фасетных ячеек велико (например, для трех фасетов по 10 рубрик общее количество фасетных ячеек, образованных всеми возможными сочетаниями рубрик, составляет 1000). Сами данные внутри фасетной ячейки могут отсутствовать; в таком случае пользователь как можно раньше должен получить информацию о бесполезности дальнейшего уточнения фасетной формулы.
В случае, если данные в фасетной ячейке есть, внутри ячейки возможно существование дополнительной классификации, зависящей от ячейки и/или необходимость различных сортировок данных. Система визуализации должна поддерживать эти возможности.
2. Хранение данных
Хранение данных для эффективного поиска по иерархическим классификациям может быть реализовано, например, в реляционной СУБД. В докладе обсуждаются достоинства и недостатки применения СУБД для хранения множественных классификаций.
Предложенный подход использует файловую систему как среду хранения. Одна из иерархий кодируется в виде имен каталогов, другая — в виде имен вложенных каталогов. Связи и точки повторного разбора [8] не используются. Последняя (наименее широкая) классификация представлена просто в виде имен файлов. Для отделения содержания классификации от механизмов доступа к ней имена каталогов задаются десятичными числами, а отображения классификации на каталожную структуру файловой системы задано в файле manifest. xml в виде значений атрибута id:
|
Рис. 1. Фрагмент файла описания структуры хранимых данных manifest.xml
Собственно файловая структура области хранения представлена на Рис. 2. Сами данные, как уже было сказано, хранятся в файлах, имена которых определяет наименее широкая классификация (как правило, в нашем случае она соответствует четвертому фасету, структура которого зависит от первых трех). Имена этих файлов заданы значениями элементов <file>. Атрибут subtitle этого элемента задает имя рубрики. Сами файлы имеют табличную структуру. Каждая строка такого файла соответствует одной записи данных; разделителем полей является знак табуляции. Создание подобных файлов не требует специального графического интерфейса и может быть выполнено в любом табличном процессоре (например, для информационной системы по сложным системам это делается в Excel). Если данных в фасетной ячейке нет, то соответствующий файл отсутствует.

Рис. 2. Файловая структура области хранения данных.
![Подпись: @data = glob("$DATA*/*/*.txt") ;
@nonEmpty = (0) x $titleKeys ;
for ( my $j=0; $j<=$titles; ++$j) { # Одна строка
next if $i eq $#leftCategories and $leftCategories[$i] eq '' ;
$grep = $viewByField
? "\ /${$fields[$i]}{'Code'}\ /$indexOrderedTitleKeys[$j]\ /"
: "\ /$indexOrderedTitleKeys[$j]\ /"
."(?:".join('|',@{$infoSectionFnames[$i]}).")" ;
$nonEmpty[$j] = grep(/$grep/, @data) ;
}](/text/80/402/images/image002_5.gif)
Обработка хранимых данных осуществляется программой, написанной на Perl. Этот язык обладает встроенной функцией glob, позволяющей получить массив строк, соответствующих именам файлов сразу в целом дереве каталогов и, тем самым, быстро выяснить, какие фасетные ячейки заполнены (Рис. 3).
Рис. 3. Получение информации о заполненных фасетных ячейках.
3. Представления фасетов
Разработанная информационная система имеет веб-интерфейс. На плоскости веб-страницы программно создается таблица, демонстрирующая заполненность фасетных ячеек (Рис. 4). Входами в таблицу служат две из трех классификаций, участвующих в фасетной формуле; третья отображается справа от таблицы и является гиперссылкой, меняющей ее местами с классификацией, образующей ряды таблицы (Рис. 5). Там же могут располагаться четвертая и последующие классификации.
Расположение рубрик классификаций соответствует их последовательности в файле manifest. xml. Исключение составляет классификация, образующая столбцы таблицы. Поскольку длинные названия рубрик этой классификации необходимо располагать горизонтально, то из соображений экономии площади они расположены в два столбца, и в файле manifest. xml предусмотрены средства, обеспечивающие необходимое распределение этих рубрик по левому и правому столбцам (атрибут index элемента title, Рис. 1).

Рис. 4. Пример отображения заполненности фасетов.

Рис. 5. Другая проекция тех же фасетных ячеек.
4. Представление данных

Представлением данных также управляет файл manifest. xml. В нем для каждой рубрики самого внутреннего классификатора указано количество столбцов файла данных, которые следует отобразить, какие сортировки возможны и т. д. (Рис. 6).
Рис. 6. Представление данных в фасетной ячейке
В верхней строке страницы фасетной ячейки отображается начальная часть фасетной формулы (через двойное двоеточие), завершающую часть пользователь может выбрать из строки меню, расположенной под началом фасетной формулы; при этом активными являются те позиции меню, для которых имеются данные — в этом случае перечень непустых рубрик фасетной ячейки отображается при наведении курсора на соответствующую позицию меню.
Заключение
В разработанной информационной системе использованы три классификатора, но лишь один из них — источники информации — является двухуровневым (остальные два — линейны). Однако предложенный подход будет эффективным и когда все классификации — древовидные. В этом случае изменится схема именования каталогов, а для визуализации самих классификаций придется использовать широко распространенный подход, аналогичный примененному на уже упомянутом сайте Майкрософт [1].
Число классификаторов, участвующих в фасетной формуле, обычно невелико, и все ссылки на те из них, с которых может начинаться фасетная формула, могут быть размещены рядом с таблицей, демонстрирующей заполненность фасетных ячеек для выбранных двух начальных фасетов. Таким образом, предложенный подход к визуализации фасетных классификаций может быть применен в широком круге информационных систем, связанных с управлением научными электронными коллекциями.
Благодарности
Автор признателен и В. Сартан за предоставленные данные и многочисленные обсуждения, — за исходный (статический) дизайн веб-интерфейса.
Работа частично поддержана Российским фондом фундаментальных исследований (грант 03-07-90299) и Федеральной целевой программой «Интеграция науки и высшего образования России на 2002–2006 годы».
Литература
1. http://groups. /
2. Yahoo! [http://www. /]
3. Апорт [http://www. aport. ru/]
4. Информационные системы (документальный поиск). — СПб., 2002. ISBN 5‑87403‑034‑4. С. 49.
5. Классификация двоеточием /Основная классификация. — М., 1970. С.213–215.
6. Universal Decimal Classification. [http://www. udc. org/]
7. Microsoft Development Network Library. [http://msdn. /library/]
8. Соломон. Д., Внутренне устройство Microsoft Windows 2000. Мастер-класс. — СПб.: Питер, 2001. С.575–629.


