Существует масса общепринятых стандартов и форматов для различных типов информации (DOC, HTML, TXT, XLS, JPEG, BMP, MP3, AVI и т.д.). Но, как ни странно, до сих пор не существовало самого главного стандарта – единого стандарта структурированных данных. Имеется в виду такой формат данных, который не привязан ни к платформе, ни к конкретному программному пакету, а являлся бы просто общепринятым и совместно используемым стандартом хранения и передачи структурированных данных.
При определенных действиях по внедрению и продвижению, ODA имеет все шансы стать основой для единого формата хранения и передачи структурированных данных.
Глава 2. Стандарт SGML
2.1 Что такое SGML
Стандарт ISO 8879 Information Processing - Text and Office System - Standard Generalized Markup Language (SGML) определяет обобщенный стандартный язык разметки текста, способ описания структуры документа, а также формат вставляемых в документ описательных меток. С точки зрения стандарта SGML, документ рассматривается как совокупность:
3. данных о стиле оформления документа (используемых шрифтах, интервалах, размерах полей, способе нумерации и т.д.).
Структура документа задается при помощи таблицы «Определения типа документа» (DTD) (в терминах стандарта – Document Type Definition), описывающего его структуру. В DTD указывают соответствие символов и их кодов, максимальные длины используемых идентификаторов, способ представления ограничителей для тегов, другие возможные соглашения, синтаксис DTD, а также тип и версию документа. DTD задает взаимосвязь глав, заголовков глав, разделов и других фрагментов текста, образующих документ. Стандарт SGML устанавливает такие множества символов и правил для представления информации, которые позволяют различным системам правильно распознавать и идентифицировать эту информацию, следовательно, SGML можно назвать метаязыком для семейства конкретных языков разметки. В частности, подмножествами SGML можно считать языки разметки XML (Extensible Markup Language - расширяемый язык описания документа) и HTML. При этом XML более удобен, чем SGML: легче воспринимается, приспособлен для использования в современных браузерах, сохраняет возможности SGML.
Для конкретных приложений создаются свои варианты (словари) XML. Известны варианты для математики, химии, медицины. Применение стандарта SGML для создания структурированных документов дает значительные преимущества. Фактически документ преобразуется в базу данных, допускающую манипуляции с элементами документа в соответствии с заданным DTD. В свою очередь, DTD разрабатывается в соответствии с назначением документа.
Стандарт ISO/IEC 10179 Document Style Semantics and Specification Language (DSSSL) определяет язык для описания правил и формата отображения SGML-документов при выводе на экран, печать или иное устройство отображения.
Сегодня все чаще можно встретить аббревиатуру SGML. Многие виды документации поставляются в формате SGML. Популярный язык разметки Web-страниц HTML является приложением SGML.
Стандарт SGML (ISO 8879). SGML - Standard Generalized Markup Language, стандартный обобщенный язык разметки. Разработан компанией IBM в 80-е гг. для составления электронной документации на системы вооружения Министерства обороны США.
Стандарт предназначен для унификации представления документации в автоматизированных системах. Первоначально ориентирован на текстовые данные, но охватывает и гипермедиа.
Появляется все больше прикладных программ для работы с SGML: редакторы, средства форматирования, системы документооборота, использующие SGML в качестве формата хранения документов... SGML-продукты выпускают Adobe, Corel, SoftQuad, Microsoft. В SGML готовятся книги издательства O'Reilly, техническая документация IBM, Sun и OSF. Основывается на SGML информационная технология многих ведущих машиностроительных и авиакосмических фирм всего мира.
Появившаяся в начале восьмидесятых SGML-технология переживает сейчас период расцвета. Что это такое? Что она дает своим пользователям? Как с ней работать? На эти и другие вопросы я пытаюсь ответить этой статьей.
2.2 Терминология
SGML (Generalized Markup Language) разработан в недрах вездесущей корпорации IBM. Его наследник SGML (Standard Generalized Markup Language) принят в 1986 году в качестве международного стандарта[1] для определения независимых от устройств ввода/вывода, независимых от вычислительной среды методов представления текстов в электронной форме. Более точно, SGML -- это метаязык, то есть средство формального описания языка, в данном случае, языка разметки.
Исторически слово разметка использовалось для описаний аннотаций или других обозначений внутри текста, предназначенных для указаний составителю или "верстальщику" того, как именно конкретное место должно быть напечатано или сверстано. Примеры включают подчеркивание волнистой чертой, обозначающее курсив, специальные значки для пропуска фраз или их печати конкретным шрифтом, и так далее. Когда форматирование и печать текстов стали автоматизированными, этот термин стал охватывать все виды специальных кодов разметки, вставляемых в электронные тексты для управления форматированием, печатью или другой обработкой.
Обобщая, разметку, или кодировку, определяют как любое средство сделать явным интерпретацию текста. На банальном уровне все напечатанные тексты кодированы в этом смысле: знаки препинания, использование заглавных букв, расположение букв по странице, даже интервалы между словами можно считать в какой-то степени разметкой, функция которой -- помочь человеку, читающему текст, определить, где кончается одно слово и начинается другое, или как идентифицировать особенности структуры, такие как заголовки, или простые синтаксические единица вроде подчиненных предложений. Кодирование текста для компьютерной обработки, в принципе, как расшифровка манускрипта с пергамента, -- процесс делания явным неявного или подразумеваемого, процесс указания пользователю того, как должно интерпретироваться содержимое текста.
Под языком разметки понимают набор соглашений о разметке, применяемых для кодирования текстов. Язык разметки должен специфицировать, какая разметка допустима, какая разметка обязательна, как отличить разметку от текста и что разметка значит. SGML предоставляет решения для первых трех задач, отдельная документация обычно необходима для последней.
2.3 Особенности SGML
Три характеристики SGML отличают его от прочих языков разметки.
В первую очередь это описательная разметка. Система с описательной разметкой использует коды разметки, которые просто предоставляют названия для категоризации частей документа. Коды разметки, такие как <para> или \end{list}, просто идентифицируют порцию документа и утверждают, что "она является параграфом", или что "это -- конец последним начатого списка" и т.п. С другой стороны, система с процедурной разметкой определяет, какая обработка должна выполняться в конкретной точке документа: "в этом месте вызвать процедуру PARA с параметрами 1, b и x", или "передвинуть левую границу на 2мм левее, правую границу -- на 2мм правее, пропустить одну строку и встать на новую левую границу" и т.п. В SGML инструкции, необходимые для обработки документа с какой-либо конкретной целью (например, для форматирования), четко отделяются от описательной разметки, которая встречается внутри документа. Обычно они собраны вне документа в отдельных процедурах или программах.
С описательной, а не процедурной, разметкой один и тот же документ может быть обработан разнообразными программами, каждая из которых может применять различные инструкции обработки к тем его частям, которые она считает важными. Например, программа анализа содержимого может полностью игнорировать сноски, тогда как программа форматирования может извлекать и собирать их для печать в конце каждой части. Различные виды инструкций обработки могут ассоциироваться с одной и той же частью файла. Например, одна программа может извлекать из документа фамилии людей и географические названия для создания индекса или базы данных, тогда как другая, обрабатывающая тот же самый текст, может печатать фамилии и названия отличающимся шрифтом.
SGML вводит понятие типа документа, и, соответственно, определения типа документа (document type definition, DTD). Документы считаются типизированными, так же, как и другие обрабатываемые компьютерами объекты. Тип документа формально определяется его составными частями и их структурой. Определение, например, отчета может быть таким, что он состоит из заголовка и, возможно, автора, за которыми следует аннотация и последовательность одного или более абзацев. Любой документ в отсутствие заголовка, в соответствии с этим формальным определением, не будет формально являться отчетом, так же как не будет им являться и последовательность абзацев, за которой следует аннотация, невзирая на то, насколько похож на отчет такой документ с точки зрения читателя-человека.
Поскольку документы относятся к известным типам, можно использовать специальную программу, называемую анализатором (parser), для того, чтобы обработать документ, утверждающий, что он относится к конкретному типу, и проверить, действительно ли все элементы, требуемые для данного типа документов, присутствуют и находятся в правильной последовательности. Что еще более важно, разные документы одного типа могут обрабатываться унифицированным образом. Можно писать более интеллектуальные программы, использующие знания, заключенные в информационной структуре документа.