· Resource_Resource_Attribute - таблица, содержащая информации об атрибутах сайта: Resource_ID - идентификатор ресурса; Resource_Attribute_ID - идентификатор атрибута.
Представленный фрагмент схемы БД является одним из наиболее простых и удобных вариантов проектирования каталога, хотя существуют и другие не менее оригинальные методы для представления иерархических данных. В принципе, с помощью этих структур можно разрабатывать информационные системы различной степени сложности.
1.3 Ведение каталога
Каталог веб-сайтов является публичным ресурсом Интернет. Более того, многие каталоги поддерживают различного рода сервисы, связанные с распространением данных своим подписчикам. Сказанное означает, что к качеству описания ресурсов, представленных в каталоге, предъявляются повышенные требования. Для достижения поставленной цели образуется редакторский коллектив, в обязанности которого входит поиск и подготовка материалов для их публикации на страницах каталога. Процесс обработки описаний веб-сайтов является итеративным, и редактор обязан постоянно отслеживать все существенные изменения происходящие с ресурсами и вносить соответствующие исправления в их описания.
В компаниях, бизнес которых связан с ведением и публикацией каталогов, для автоматизации редакторского процесса создаются специализированные рабочие места - АРМ (Автоматизированное Рабочее Место). Как правило типовой АРМ обеспечивает выполнение следующих функций:
· Ввод новых описаний веб-сайтов и сохранение их в БД. Для этого редактор заполняет карточку с описанием аналогичную той, что представлена на Рис. 3, а также классифицирует ресурс, связывая его с тематическими и географическими рубриками.
· Поиск ранее введенных описаний с целью их просмотра и коррекции. К числу атрибутов, по которым выполняется поиск, можно отнести: http-адрес ресурса (URL); его идентификатор в БД; состояние обработки описания веб-сайта; рубрики (географические и тематические); ключевые слова в названии, описании веб-сайта; дата создания и обновления описания. В результате выполнения запроса на поиск редактор получает порционный список релевантных записей. Каждый элемент списка представляет собой краткое сведение о веб-сайте (URL, название, аннотация, состояние обработки). Редактор может выбрать из списка любое описание (раскрыть элемент списка) и перейти к редактированию.
· Удаление описаний из БД. Обычно эта операция выполняется по отношению к веб-сайтам, которые прекратили свое существование, перестали отвечать тематике (или требованиям) каталога.
· Помещение описания в Архив. Архивирование описаний производится на определенный срок, когда действующий веб-сайт становится временно недоступным, например, при смене хостинговой площадки или по каким-то другим причинам.
· Ведение древовидного рубрикатора. Как правило, данная функция возлагается на главного редактора, который отвечает за пополнение рубрикатора, его реструктуризацию, отслеживание сбалансированности дерева и позиционированных в нем описаний. К числу операций, связанных с ведением древовидного рубрикатора относятся: создание рубрик, установление иерархических и ассоциативных связей между ними; перемещение поддеревьев (смена родителя); редактирование названий и других атрибутов рубрик; удаление неактуальных узлов (выполнение этой операции возможно только в том случае, если с рубрикой и всеми ее подрубриками вплоть до листовых элементов не связано не одного ресурса).
· Поддержка рабочих очередей для редакторов. В обязанности главного и старших редакторов входит подготовка «пула работ» для младшего персонала. Для этого в АРМ должна быть предусмотрена функция - передать описание веб-сайта на обработку. Одним из способов реализации данной возможности является заведение служебных непубликуемых рубрик (названиями которых являются фамилии редакторов) в классификаторе, с которыми старшие редактора связывают «сырые» описания (обычно оно содержит только URL веб-сайта). Кроме того, в классификаторе обычно заводится еще одна служебная рубрика - Очередь заявок внешних пользователей, куда попадают заявки от самих хозяев интернет-сайтов (сюда же попадают заявки, созданные автоматически, программой, сканирующей Интернет).
· Получение разнообразной статистики, отражающей как состояние каталога в целом (например, распределение описаний веб-сайтов по состояниям), так и деятельности отдельного редактора (например, выдача гистограмм по количеству обработанных описаний сотрудниками во временном разрезе и т.п.).
В процессе обработки описания веб-сайтов проходят сложный технологический цикл, который отражается в смене их состояний. Так, например, сначала описание веб-сайта регистрируется в очереди редактора в виде заявки. Поступившая заявка обрабатывается редактором, причем в процессе работы она может неоднократно сохраняться в БД и принимать состояние «в работе». Завершив составление описания, редактор может его опубликовать или, если у сотрудника нет прав на публикацию, отправить обработанный ресурс на одобрение своего непосредственного начальника. В последнем случае, старший редактор проверяет корректность составленного описания и либо публикует его, либо отправляет на доработку и т.д.
Ориентировочный список состояний может выглядеть следующим образом:
Заявка на включение в каталог - заявка, находящаяся в очереди редактора или общей очереди;
В работе - описание веб-сайта обрабатывается редактором (готовится к публикации);
Опубликовано - описание веб-сайта составлено и может публиковаться на страницах каталога;
В архиве - описание веб-сайта отправлено в архив на определенный срок, по истечении которого описание возвращается в очередь редактора или общую очередь;
Из архива - описание веб-сайта, поступившее в очередь редактора или в общую очередь из архива;
Запрещен - публикация описания веб-сайта запрещено на страницах каталога. Обычно в это состояние переводятся описания веб-сайтов, тематика которых противоречит существующему законодательству и общепринятым нормам морали (такие описания умышленно не удаляются из каталога, чтобы предотвратить их повторную регистрацию);
Удален - описание веб-сайта помечено как удаленное, физическое удаление выполняется обычно хранимой процедурой чуть позже по истечению некоторого срока (описания, находящиеся в данном состояние могут быть возвращены в работу и опубликованы)
На доработку - описание веб-сайта составлено недостаточно точно и должно быть переработано, обычно в такое состояние описание переводится старшими редакторами в процессе контроля деятельности младших сотрудников - стажеров;
Предварительно опубликован, Предварительно удален, Предварительно запрещен - эти три состояния моделируют для младших сотрудников ход редакторского процесса. Описания веб-сайтов, находящиеся в данных состояниях, требуют утверждения старшего персонала, которое может снять признак «предварительно» или отправить описание на доработку.
Существенным требованием, которое должно быть выполнено при реализации АРМ'а редактора, является обеспечение разграничение доступа по ресурсам. В рамках каталога с описаниями веб-сайтов зоной ответственности каждого редактора обычно является набор рубрик, за наполнение которых он отвечает.
С целью минимизации затрат на программирование и последующее сопровождение АРМ'ы предпочтительнее всего реализовывать в виде самостоятельных серверных веб-приложений. Работа с таким АРМ выполняется с помощью штатного броузера, входящего в поставку операционной системы, установленной на компьютере редактора. Подобное решение не требует выполнения инсталляции на рабочих местах дополнительного программного обеспечения, а также существенно облегчает внесение и распространение изменений в модули, поскольку выполняется в одном месте, на Веб-сервере.
2. Многоцелевое использование каталога метаданных
Из сказанного в предыдущем разделе несложно сделать вывод, что ведение качественного каталога метаданных является сложным и дорогостоящим процессом. Поэтому организаторы каталога заинтересованы в создании и развитии разнообразных сервисов (в том числе и платных), которые бы обеспечили возможность многоцелевого использования подготовленного контента. Успех подобных проектов в значительной степени определяется тем, насколько удобно и эффективно реализованы механизмы обслуживания широкого круга подписчиков.
2.1 Реструктуризация данных
Одна из главных проблем, возникающих при многоцелевом варианте использования каталога, является многообразие взглядов на метаданные со стороны подписчиков. Такая постановка объективно вытекает из того, что на практике подписчики специализируются не только по типам ресурсов, но и по целевым группам пользователей, запросы которых они обслуживают.
Прежде всего, каталог должен обладать механизмами, с помощью которых подписчик мог бы специфицировать свой персональный взгляд на структуру каталога. В простейших случаях это достигается за счет создания соответствующих образов (view) в структуре базы данных. С помощью этого средства могут быть реализованы функции переименования атрибутов, несложное конвертирование их значений, исключение из взгляда не интересующих подписчика атрибутов и т.п. Таким способом обслуживается большинство клиентов, которых удовлетворяет содержание каталога, но не устраивает формат представления метаданных.
Однако, со стороны подписчиков зачастую возникает потребность в изменении (дополнении) атрибутного состава в метаописании. Например, разные подписчики предъявляют свои требования к размеру текста в поле «Аннотация ресурса». Кто-то считает, что аннотация должна быть сжатой (не более 80 символов), а кто-то, наоборот, предпочитает иметь в этом поле развернутое описание. В подобных случаях, когда в структуре каталога не хватает нужных атрибутов, подписчик должен иметь возможность инициировать процедуру расширения атрибутов. В принципе, подобная процедура не может быть автоматизирована, однако архитектура каталога (его программная реализация) должна позволять «безболезненно» (в частности, для редакторского процесса) пополнять структуру метаописания.
Другой сложной ситуацией, с которой сталкиваются разработчики многоцелевого каталога, является наличие у подписчиков собственных массивов нормативных данных (рубрикаторов, словарей и т.п.), которые они хотели бы связать с метаданными каталога.
Эта ситуация может быть разделена на два случая. В первом случае, когда в структуре каталога нет соответствующих по смыслу атрибутов или рубрикаторов, задача сводится к их добавлению в существующую структуру. С этой целью в составе программного обеспечения каталога должны быть предусмотрены средства импортирования нормативных данных от подписчика и их последующей инкрементальной актуализации (если подписчик не делегирует права на ведение своих нормативных данных персоналу каталога). Во втором случае, когда в структуре каталога уже существуют аналогичные нормативные данные, возникает задача установления их отображения на нормативные данные подписчика.
Одним из вариантов решения задачи отображения (мэппинга) рубрикаторов друг на друга является создание утилиты, при помощи которой можно установить соответствие между рубриками двух рубрикаторов (рубрики исходного рубрикатора отображаются на рубрики целевого). Экранная форма утилиты представляет собой фрейм, разделяющий экран на три области (см. рис. 5). В левую часть будет загружен целевой рубрикатор, а в правую часть - исходный. Центральная область - область мэппинга - разделена на секции. Каждая секция соответствует отдельной рубрике целевого (расположенного слева) рубрикатора и начинается с заголовка, в котором представлено название рубрики. Под заголовком секции будет располагаться тело секции, в которое можно перемещать рубрики исходного (расположенного справа) рубрикатора, связываемые с данной целевой рубрикой. После перемещения рубрик в тело секции мэппинга можно дополнительно указать уточняющие атрибуты (например, переносить только объекты, непосредственно связанные с данной рубрикой, либо все объекты, связанные с рубрикой и всеми ее подрубриками).
Рис. 5 Экранная форма утилиты отображения (мэппинга) рубрикаторов
На основании подобного меппинга можно автоматически отобразить связи объектов с рубриками исходного рубрикатора на связи объектов с рубриками целевого рубрикатора (т.е. выполнять автоматическую перерубрикацию). Понятно, что установление меппинга несравнимо по трудоемкости с выполнением ручной рубрикации объектов.
2.2 Фильтрация информации и интеграция с данными подписчика
Часто оказывается, что подписчика интересует не весь контент, имеющийся в каталоге, а лишь небольшая его часть. Например, значительную часть подписчиков каталога веб-ресурсов составляют веб-сайты, специализирующиеся на определенной тематике (бизнес порталы, спортивные порталы и т.п.). При оформлении подписки на получение ресурсов из каталога пользователь должен иметь возможность сформировать собственные фильтры для отбора интересующих его веб-ресурсов. Такой фильтр может быть задан как для рубрик (отбор ресурсов по тематическому и/или географическому принципу), так и для атрибутов ресурсов (отбор ресурсов по доступности, популярности, приоритету, дате создания/обновления метаописания и т.д.). В принципе, поддержка фильтрации контента является несложной с технической точки зрения задачей до тех пор, пока режим фильтрации и передачи данных имеет четко выраженный односторонний характер (от поставщика к потребителю).