3. Немного поподробнее

3.1. Общие принципы

При выполнении проекта мы старались придерживаться следующего:

С самого начала предполагалось максимально использовать возможности SGML технологии, которая уже успешно применялась у нас около двух лет и идеально подходила для поставленной задачи.

С инструментами тоже особых проблем не возникало -- все использованное в проекте базовое ПО уже было успешно испытано в других проектах.

Надо было просто решиться и начать работу...

3.2. Кое что о SGML

Хорошее представление о том, что такое SGML, дается в статье Бориса Тоботраса http://xtalk.price.ru/SGML/SGML-article.html. Наиболее полное собрание материалов можно найти на http://www.oasis-open.org/. Здесь же мы попытаемся дать лишь самое начальное представление.

SGML (Structured Generalized Markup Language) является стандартом ISO с 1986 года, т.е. документом стабильным по определению, ни одна буква в котором по определению не может быть изменена.

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

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

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

3.3. Почему DOCBOOK?

Как сказано выше, конкретная структура документа не определяется стандартом и есть объект разработки. Вполне естественно, что на первых этапах нами были предприняты попытки создания собственных DTD, предназначенных для описания конкретных информационных конструкций. Однако, довольно скоро выяснилось, что, во-первых, разработка такой схемы (как, впрочем, и любой схемы данных) есть весть не простая; во-вторых, для таких достаточно хорошо определенных классов документов, как техническая документация, уже существуют достаточно продуманные решения.

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

Более того, DOCBOOK оказался даже слишком универсальной структурой. Текст DTD состоит из более шести тысяч строк и содержит описание около трехсот элементов. Не все конструкции поддерживаются имеющимся программным обеспечением, что требует наложения определенных ограничений при разметке документов. Поэтому для облегчения работы занятых разметкой сотрудников нами была выработана упрощенная совместимая версия DTD DOCBOOK, специально предназначенная для описания структуры статей Jet Info.

3.4. Первичный сбор и обработка материала

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

Наследство легко делится на культурные пласты, по которым можно восстановить как пристрастия сменившихся за историю издания технических редакторов, так и пеструю картину электронно-издательского инструментария. Лишний раз убедились, что сказать, что файл имеет "формат Ворд" или в "формат EPS" значит не сказать ничего. Надо еще отыскать "тот самый Ворд" или тот самый QuarkPageIllustrator или PublisherExpressMaker, при помощи которого произведено данное чудо с лэйблом DOC или EPS на борту.

Некоторые пласты и вовсе оказались пустыми, что вынудило нас вынимать из пыльной Леты канувшие туда печатные экземпляры издания. Тогда же узнали, с какой стороны лучше подходить к сканеру и что означит красивое слово OCR.

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

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

3.5. Как оно устроено

А внутри у ей неонка...

С высоты птичьего полета электронный журнал выглядит примерно так:

Таким образом, внешний вид всех страниц сервера определяется всего тремя небольшими документами-шаблонами в полном соответствии с принципом разделения содержания и внешнего представления информации.