Архивы: по дате | по разделам | по авторам

Нефритовое оружие пролетариата

Архив
автор : Павел Протасов   24.12.2003

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

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

Стратегия

Вселенная — некоторые называют ее Библиотекой — состоит из огромного, возможно, бесконечного числа шестигранных галерей, с широкими вентиляционными колодцами, огражденными невысокими перилами.
Х. Л. Борхес.
«Вавилонская библиотека»

GreenStone Digital Library (www.greenstone.org) предназначается как раз для страдальцев-недоМошковых, ввязавшихся в подобную авантюру. «Greenstone» переводится как «нефрит». Мочить супостата нефритовыми глыбами — вроде бы роскошь, но с этой программой такую роскошь можно себе позволить. Собственно, не совсем это и программа, а нечто из самых глубин юникс-вея: обло, стозевно и лаяй… GSDL представляет собой набор утилит, макросов и скриптов для работы с текстовыми файлами. И может она вот что:

- создавать подборки (в терминологии программы — коллекции), пригодные для веб-публикации, причем работа с коллекциями (создание и добавление файлов) возможна как на отдельном компьютере, так и онлайн;
- производить поиск по текстам коллекции, менять настройки поиска и интерфейса;
- создавать индексы коллекции по заданным метаданным: автору, тематике, названию, структуре документа (индексы сохраняются в отдельных веб-страницах);
- индексировать не только текстовые данные, но и картинки, аудио- и видеофайлы, ссылки на которые помещаются в текст документа;
- конвертировать документы, находящиеся в файлах самых разнообразных форматов (в дистрибутив входят модули для конвертации текстов MS Word, PostScript, писем электронной почты, PDF).
С сайта GSDL, который, кстати, и сам работает под ее же управлением, можно получить, кроме виндового, дистрибутивы для Unix, Mac OS, а также исходные коды, поскольку распространяется пакет на условиях GNU GPL.
Существует и набор скриптов для создания CD-ROM с текстами, оболочка которых представляет собой все ту же GSDL. Только имейте в виду: в дистрибутив этого набора какая-то добрая душа запихала Netscape Navigator 4.5, предназначающийся, по идее, для просмотра страниц, причем — аж две версии, 16- и 32-разрядную. И зачем-то Win32s. Спасибо тебе, неизвестный друг…
С сайта можно скачать руководство по инсталляции пакета, руководство для разработчиков коллекций с описанием процесса их создания, инструкцию для пользователей и т. п. Руководства, правда, несут на себе явные следы машинного перевода, но читать можно. И даже нужно, поскольку они содержат много полезной информации, а с дистрибутивом, лежащим на сайте, документация не поставляется.

Тактика

Во-вторых: число знаков для письма равно двадцати пяти.
Х. Л. Борхес.
«Вавилонская библиотека»

«Движок», с помощью которого осуществляется чтение и конвертация текстов, — это, в первую очередь, локальный веб-сервер плюс скрипты, которые работают под его управлением. Скриптов два вида: на Perl и на внутреннем языке программы (файлы *.dm). Первые в основном заняты сбором и приведением информации в единый формат — внутренний, с которым, собственно, и работает программа, представляющий собой разновидность XML. При этом определение формата документа производится одним скриптом, который затем вызывает другие, предназначенные для разбора конкретного формата. Если текст упрятан внутри архива, то соответствующий скрипт может туда влезть и достать что надо1. И, разумеется, можно добавлять в число скриптов свои, для других документов.

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

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

Второй эшелон — макросы на внутреннем языке, предназначенные для формирования HTML-страниц. Работают они с выделенными метаданными, а также с элементами оформления гипертекста: навигационными иконками, кнопками и прочим. Элементы оформления для коллекций на разных языках можно делать разными, что очень полезно для изображений с надписями. Макросы весьма просты — даже я, гуманитарий-пролетарий, легко разобрался, как все это хозяйство работает. Но вместе с тем GSDL предоставляет достаточно богатые возможности для управления конвертированием и индексацией текстов, особенно если изучить руководство разработчика, да еще и покопаться в самих скриптах.

Вскрытие генерируемых программой HTML-страниц показало, что чукча умер от вскрытия: никаких болезней, столь характерных для автоматических средств создания гипертекста, там нет — за исключением необходимых для GSDL команд XML, помещаемых внутри HTML-комментариев. Ни тегов font face для каждого абзаца, ни нарушений вложенности2.


1 (назад) Под Windows эта функция, к сожалению, не работает.
2 (назад) В теге Generator тестовой коллекции, входящей в дистрибутив, правда, прописано «Microsoft Word 97», но это — наглая ложь: манеру Word’а создавать гипертекст я знаю и мусор после него вычищал многократно. Скорее всего, Word использовался для создания исходных текстовых файлов, прошедших через горнило конвертации, но память о родном формате сохранивших.

Я специально начал с упоминания Perl и призывов копаться в скриптах. Это чтобы вы прониклись и попросили чего попроще. На самом деле, в GSDL существует несколько интерфейсов для более или менее «визуальной» работы с коллекциями. Номер раз — тот самый локальный веб-сервер, под управлением которого происходит формирование коллекции. Задача стандартной программы, запускающейся при клике по ярлыку GSDL (рис. 1), — обеспечить работу сервера и скриптов. При нажатии кнопки Enter Library происходит запуск браузера со страницей веб-интерфейса (рис. 2). Первая ссылка — Collector, туда и направимся. Но сначала с помощью страницы Preferences установим русский язык в настройках интерфейса3.

Формирование коллекции осуществляется в несколько этапов. Сначала определяется ее описание: название, e-mail администратора, краткая аннотация. Затем формируется список текстов (рис. 3). Кнопка для вызова диалога выбора локального файла на жестком диске не предусмотрена, для включения текста в список необходимо указать полный путь к нему. Это можно объяснить тем, что веб-интерфейс предназначен главным образом для работы в онлайне и сбора документов из Сети.

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

После того как список сформирован, файлы конвертируются и строится коллекция. Процесс сопровождается репортажем о выполнении.

Для тех, кто тоскует по диалоговым окнам, есть второе стандартное приложение — Greenstone Librarian Interface (рис. 4), написанное на Java и требующее для работы Java Virtual Machine. GLI представляет собой окно с вкладками для формирования подборки текстов (как и положено, с диалогом выбора файлов). Можно конфигурировать коллекцию точно так же, как и при использовании конфигурационного файла — определять описание, название, список используемых плагинов и другие параметры.

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

И, наконец, для счастливых обладателей Самой Популярной Операционной Системы существует программа Organizer (рис. 5), по функциям близкая к GLI, за исключением, разве что, возможности конфигурации внешнего вида веб-страниц, от которой, как я уже говорил, толку все равно мало. Organizer может работать с несколькими коллекциями, выводить статистические данные о них, редактировать списки организаций-издателей документа и тематики текстов, условий распространения (copyright status) и т. д.

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

Вкус победы

Я утверждаю, что Библиотека беспредельна.
Х. Л. Борхес.
«Вавилонская библиотека»

А теперь — о главном: что же мы увидим, открыв в браузере страницу коллекции, созданную с помощью GSDL?

Запуск GSDL пользователем осуществляется точно так же, как и администратором, — тем самым окошком с тремя кнопками. После этого на странице (рис. 2) нужно выбрать коллекцию (в данном случае — Greenstone demo).

Как я уже писал, интерфейс пользователя коллекции может настраиваться так же, как и администраторский. В числе настроек — язык, кодировка и формат — пользователи Linux могут выставить «текстовый» и наслаждаться. Настраивается и поиск: простой или с булевыми операторами, с учетом регистра и окончаний слов, с историей запросов или без нее.

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

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

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


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

© ООО "Компьютерра-Онлайн", 1997-2024
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.