РВБ лого
Русская виртуальная библиотека
Основана 1 декабря 1999 г.
Последнее обновление: 12.09.2023 10:59
 
Новости
Публикации
Авторы
Указатели
Ссылки
Программы
Друзья
Вокруг РВБ
Сотрудники
О проекте
Карта сайта

Специальные проекты
Philologica
Мандельштамовское общество

О Русской виртуальной библиотеке

Технологическое обеспечение

Общие сведения

Речь далее пойдет о технологическом обеспечении проекта Русской Виртуальной Библиотеки (РВБ). В отсутствие формального технического проекта данный документ будем рассматривать как его неформальный аналог.

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

Содержание

Архитектура

Основной единицей информации, с которой работает система, является документ. Таким документом может являться книга, пьеса, комментарий -- любое электронное издание, входящее в РВБ.

Документы, известные системе, хранятся в репозитории. С репозиторием работает все программное обеспечение (ПО), обрабатывающее документы и предоставляющее результаты своей работы пользователям РВБ.

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

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

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

Таким образом, пользовательских интерфейсов у системы фактически два: интерфейс для автора и интерфейс для читателя.

Сердцем системы является сервер. На нем:

  • хранится репозиторий и осуществляется доступ к нему;
  • находится WWW-сервер, предоставляющий пользователям доступ в РВБ;
  • запускаются SGML-процессоры, обрабатывающие хранимые в репозитории документы по запросам пользователей.

Сервер предоставляет доступ по стандартным протоколам Интернет (HTTP, FTP и др.) и существует в домене rvb.ru.

Разметка текстов

Метаязык SGML

Технологическим обеспечением РВБ является система SGML[1]. Технология SGML чрезвычайно привлекательна для задач РВБ по многим причинам. Основными, на мой взгляд, являются:

  • открытость и стандартность формата файлов, делающие их пригодными для долговременного хранения и не зависящими от используемого ПО и/или платформы;
  • тот факт, что SGML является "метаязыком", позволяет в рамках выбранной технологии иметь разнообразные языки разметки, каждый из которых оптимизирован для своей предметной области;
  • возможность кодировать сколь угодно сложную метаинформацию о документе, не входящую в его текст, но доступную для работы читателю;
  • полное разделение текста и его визуального представления (подробнее см. ниже, Содержимое документа и его представление), позволяющее иметь один файл с оригиналом документа, несущем всю необходимую информацию о тексте, его структуре и проч., и не зависящем от того, как именно показывается этот документ читателю. Отсюда вытекает возможность разнообразных способов показа текста, в том числе, и тех, которые возникнут после создания самого документа (см., например, "eBooks" http://www.openebook.org, раздел "Supporters").

Введений в SGML существует множество, я рекомендую Gentle introduction to SGML, русский перевод которого доступен по адресу http://xtalk.price.ru/SGML/p3sg.html. Авторам РВБ необходимо базовое понимание SGML. Если этого достичь невозможно, то придется использовать средства импорта (см. Импорт текстов), которые с необходимостью потребуют правки результирующего текста вручную. Что хуже, автор окажется оторванным от авторского оригинала документа, хранимого в репозитории в SGML-виде.

Содержимое документа и его представление

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

Структура документа задается путем привязки каждого документа к определенному типу документа (определяемому по его DTD, Document Type Definition). DTD содержит информацию о том, какие элементы и в какой иерархии составляют документ. Например, гипотетический DTD для книги может утверждать, что книга состоит из глав, главы -- из разделов, те -- из абзацев, а последние содержат только текст.

Представление документа, то есть его внешний вид и формат, в котором он попадает к читателю, отделяется от документа. Оно существует в виде программы, называемой стилем. Стиль одинаково обрабатывает любые документы, относящиеся к одному DTD. Стилевые программы выполняются на сервере РВБ и формируют выходные файлы, предназначенные для выдачи читателям.

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

Такой подход имеет множество достоинств. С точки зрения РВБ основной плюс -- возможность по необходимости менять способы представления документов читателю и их оформление, не меняя файлов с документами.

Используемый язык разметки

Для использования в РВБ выбрана схема разметки, разработанная в рамках Text Encoding Initiative (TEI). Она основывается на языке разметки, заданном соответствующим DTD. Этот язык позволяет размечать электронные аналоги печатных книг с произвольной степенью детальности. Ввиду его большой сложности для работы в рамках РВБ предлагается подмножество полного TEI DTD, называемое TEI Lite. Оно описано в документе TEI U5: Encoding for Interchange: an introduction to the TEI, русский перевод которого доступен по адресу http://xtalk.price.ru/SGML/tei_ed-koi.html. Желательно, чтобы автор был в состоянии разметить свой документ самостоятельно в соответствии с принципами, изложенными в этом руководстве. Однако не обязательно требовать от автора полного понимания и использования всех элементов, предусмотренных TEI, и даже TEI Lite. Тем не менее, следует понимать, что детальность и "глубина" разметки будет определять ценность размечаемого текста с академической точки зрения. На эту тему я бы рекомендовал посмотреть статью TEI Text Encoding in Libraries, которую я не переводил, поэтому даю адрес оригинала (на английском): http://www.indiana.edu/~letrs/tei/.

От автора к читателю

Работа автора

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

Созданный автором документ регистрируется в репозитории. Функции доступа к репозиторию доступны из интерфейса для авторов.

Когда документ размечен автором и зарегистрирован в репозитории, он становится доступен читателям. Рассмотрим более подробно, какие возможности получает при этом читатель.

Импорт текстов

Часто документ не пишется с нуля в SGML-редакторе, а уже существует в электронном виде в каком-либо формате, зачастую, RTF или HTML. Задачу импорта документа в библиотеку решают конвертеры из этих форматов в TEI Lite. Эти конвертеры доступны из интерфейса для авторов. Следует, однако, понимать, что, в отличие от экспорта текста, импорт требует обязательного участия человека: полученный TEI Lite файл придется править вручную. Причина этого -- в том, что импорт требует от конвертера "угадывания" того, как именно во входном тексте отмечены элементы текста. Этот процесс обязательно пройдет с ошибками, которые придется устранять вручную.

Серверные приложения

На сервере РВБ выполняются различные программы, работающие с документами. Их могут запускать авторизованные на сервере пользователи, но, по большей части, их запускает WWW-сервер, отрабатывая запросы читателей, работающих через Web.

Экспорт текстов

Большая часть этих программ -- конвертеры. Как правило, читателю документ интересен в формате, отличном от TEI Lite. Это может быть HTML (для быстрого просмотра), PDF (для распечатки качественного текста, print-on-demand), RTF (для вставки в текстовые процессоры), другие форматы. При этом документ необходимо преобразовать из TEI Lite в требуемый выходной формат. Такое преобразование обычно выполняется "на лету" соответствующим конвертером. Эти конвертеры доступны из интерфейса для авторов.

Поисковая система

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

Работа с документами

По мере реализации проекта будет выясняться, какие дополнительные функции можно возложить на сервер РВБ. Однако уже сейчас понятно, что разметка TEI позволит ПО отрабатывать разнообразные аналитические запросы читателей.

Используемое ПО

Читатели

Любой Web-навигатор, Acrobat Reader (свободно распространяемые).

Авторы

Любой Web-навигатор, Acrobat Reader (свободно распространяемые).

SGML- или XML-редактор. Предлагаемые варианты:

XEmacs
Самый мощный и удобный для активной работы с большими текстами. Требует минимум нескольких дней на обучение. Желательно понимание автором синтаксиса SGML. Бесплатен. Работает на Unix или NT, возможно, Win'95.
XMetaL
Простой, с привычным пользователям Windows интерфейсом. $540. Работает на Windows.
XML Spy
Примитивный и маленький. Пригоден для корректуры, неудобен для первичного ввода и активного редактирования (не читает DTD и, следовательно, не подсказывает имена элементов и атрибутов). $54. Windows.
Любой текстовый редактор
В крайнем случае, SGML и XML можно редактировать как обычный текст. Требуется понимание автором синтаксиса SGML.

Серверное ПО

Web-сервер: Apache. SGML-процессор: CoST. CGI-программирование: Tcl, shell. Обработка SGML файлов: TEItools и специально для РВБ написанные программы. Пользовательские интерфейсы: HTML-формы и CGI-программирование. Конвертер из RTF в XML: omlette, требуется Omnimark engine. Верстка в PDF: PDFLaTeX. Search engine: glimpse. Все компоненты бесплатны.

Борис Тоботрас
Октябрь 1999


Примечания

Последние изменения: вт 5 окт 1999 16:41:46 MSD
Сгенерировано TEItools

© Русская виртуальная библиотека, 1999—2024. РВБ
[an error occurred while processing this directive]