Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Язык представления документов SGML



Вследствие возникшего многообразия способов представления текстовой и графической информации, связанных с применением разнородных программ­ных средств, технологий форматирования и верстки текста, методов кодировки и поддержки национальных языков, появилась потребность в разработке уни­фицированных решений. Одно из них содержится в стандарте ISO 8879 Standard Generalized Markup Language (SGML), определяющем обобщенный стандарт­ный язык разметки текста.

Язык разметки SGML был разработан в 60-х гг. XX в. группой энтузиастов из компании IBM, которых интересовали вопросы переноса документов между раз­личными платформами и операционными системами. В результате возник язык разметки GML (General Markup Language), предназначенный для использования на ЭВМ семейства IBM. Создатели GML спустя несколько лет поняли, что нашли решение, позволяющее делать документы, легко переносимые с компьютера на компьютер и обрабатываемые не только на машинах IBM. Co временем GML попал под патронаж Международной организации по стандартизации ISO и в 1986 г. был утвержден как международный стандарт ISO 8879 (SGML).



214
215


УПРАВЛЕНИЕ ЖИЗНЕННЫМ ЦИКЛОМ ПРОДУКЦИИ
Глава 5. ТЕХНОЛОГИЯ УПРАВЛЕНИЯ ДАННЫМИ ОБ ИЗДЕЛИИ



5.2.1. Введение в SGML

SGML является международным стандартом на описание размеченного элек­тронного текста. Точнее, SGML — это метаязык (metalanguage), то есть средство формального описания языка, в данном случае языка разметки (markup language).: Прежде чем продолжать, определим эти термины.

Исторически слово разметка (markup) использовалось для аннотаций или | отметок в тексте, указывающих машинистке или наборщику, как именно должна | быть напечатана или набрана определенная фраза. Например, волнистое подчер-, кивание для обозначения курсива, специальные символы для пропуска отдель- j ных предложений или их печати определенным шрифтом и т. п. С автоматизацией ] форматирования и печати текстов значение термина было расширено, оно охваты- j вает сейчас всяческие коды разметки (markup codes), вставляемые в электронные } тексты для управления форматированием, печатью или иной обработкой.

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

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








Особенности SGML

Существуют три характеристики SGML, отличающие его от других языков разметки: его упор на описательную, а не на процедурную разметку; концепция; типа документа (document type); независимость от конкретной системы в пред-ставлении текста. Эти аспекты кратко обсуждаются ниже.

Описательная разметка

Система описательной разметки использует коды разметки, предоставляю-; щие названия для классификации частей документа. Код, такой как < рага>, иден­тифицирует часть документа и утверждает про нее: «следующий элемент—пара­граф». Напротив, система процедурной разметки определяет, какая обработка должна производиться в конкретной точке документа: «здесь вызвать процедуру PARA с параметрами 1, Ь и х» или «сдвинуть левую границу на 2 см влево, правую — на 2 см вправо, пропустить строку и встать на новую левую границу» и т. д. В SGML инструкции, необходимые для обработки документа с определен­ными целями (например, для его форматирования), четко отделяются от описа­тельной разметки, встречающейся внутри него. Обычно они собираются вне до­кумента в отдельных процедурах или программах.

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


Типы документов

SGML вводит понятие типа документа и, как следствие, определения типа документа (document type definition, DTD). Тип документа формально зависит от его составных частей и их структуры. Например, определение отче­та показывает, что он состоит из заголовка и, возможно, имени автора, а даль­ше следуют аннотация и один или несколько абзацев. Все, что не имеет заго­ловка, в соответствии с этим формальным определением отчетом не является, так же как не является им последовательность абзацев, за которой следует аннотация, вне зависимости от того, насколько такие документы похожи на отчет для читателя.

Для проверки документа, утверждающего свою принадлежность к опреде­ленному типу, можно использовать специальную программу, называющуюся анализатором (parser). Анализатор проверяет присутствие и расположение в правильном порядке всех элементов, требуемых типом документа. Что более важ­но, разные документы одного и того же типа могут обрабатываться одинаковым образом. Для этого конструируются программы, использующие знание структу­ры документа, которые действуют в более осмысленной манере.

Независимость данных

Основная цель создания SGML заключалась в том, чтобы обеспечить транс­портабельность закодированных документов из одной аппаратной и программ­ной среды в другую без потери информации. Два из описанных выше свойств решают эту задачу на абстрактном уровне; третье — на уровне строк байтов (символов).

SGML предоставляет универсальный механизм строковой подстановки (string substitution), то есть простой машинно-независимый способ обозначить, что некоторая последовательность символов в документе должна заменяться при его обработке другой последовательностью. Одно очевидное применение данного механизма — обеспечение согласованности номенклатуры; другое, бо­лее важное, — противодействие печально известной неспособности различных компьютерных систем понимать наборы символов друг друга. Это способ в любой системе предоставить все графические символы, необходимые для конк­ретного приложения, путем использования описательных обозначений непере­носимых символов. Строки, определенные механизмом подстановки, называют­ся объектами (entities) и рассмотрены ниже.



216
217


УПРАВЛЕНИЕ ЖИЗНЕННЫМ ЦИКЛОМ ПРОДУКЦИИ
Глава 5. ТЕХНОЛОГИЯ УПРАВЛЕНИЯ ДАННЫМИ ОБ ИЗДЕЛИИ



5.2.6. Структура текста

Текст не является просто однородной последовательностью слов или, тем 1 более, байтов. Для различных целей он может быть разделен на множество единиц I разных типов или размеров. Текст в прозе разбивают на разделы, главы, абзацы и | предложения. Стихотворный текст делится на песни, строфы и строки. Изданные | проза и поэзия подразделяются на тома, сборники, страницы.

Такого рода структурные единицы чаще всего используют для идентифика-1 ции конкретной позиции или ссылки внутри текста (например, «третье предложе-"! ние второго абзаца десятой главы» и т. п.), но они также применяются в делении] текста на осмысленные сегменты для аналитических целей («отличаются ли сред-1 ние длины предложений раздела 2 и раздела 5? »; «сколько абзацев разделяют ] появления слова ремонт? »; «сколько страниц? »).








SGML -структуры

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

Элементы

В стандарте SGML для текстовых единиц, рассматриваемых как структурные j компоненты, используется термин элемент (element). Разным типам элементов I даются различные названия, но SGML не предлагает никаких способов выразить значение конкретного типа, кроме его отношения к другим. То есть все, что можно сказать про элемент, называющийся < blort >, это то, что его экземпляры могут \ встречаться (а могут и не встречаться) внутри элементов типа < farble > и он рас­кладывается (или не раскладывается) на элементы типа < ЫогШе>. Следует под­черкнуть, что стандарт SGML совершенно не заботит семантика текстовых эле­ментов: она зависит от приложения. В настоящий момент идет работа по созданию, с использованием синтаксиса SGML определения стандартного «языка семантики и спецификации стилей документов (document style and semantics specification language, DSSSL)». Дело создателей SGML-совместимых наборов разметок —'■ выбрать осмысленные имена идентификаторов элементов и документировать их правильное использование в разметке текстов. От необходимости выбора назва­ний элементов, кодирующих их функцию, образован технический термин обоб­ щенный идентификатор (generic identifier) — GI.

В размеченном тексте {экземпляре документа, document instance) каждый элемент должен быть некоторым образом отмечен. Стандарт предоставляет не­сколько разных способов это сделать, наиболее часто используемый из них — вставить метки (tag) в начале (открывающая метка, start-tag) и в конце элемента (закрывающая метка, end-tag). Пара открывающей и закрывающей меток ис­пользуется для выделения элементов в тексте так же, как разные скобки или кавычки в обычной пунктуации. Например, элемент цитирования может быть отмечен в тексте так:
...модуль данных < codeDM> РЭ214.030.000.00. < /codeDM> содержит инфор­мацию о...

Как показывает данный пример, открывающая метка имеет вид < название>, где открывающая угловая скобка обозначает ее начало, «название» — обобщенный идентификатор отмечаемого элемента, а закрывающая угловая скобка—конец мет­ки. Закрывающая метка выглядит аналогично, за исключением того, что за откры­вающей угловой скобкой стоит символ косой черты, поэтому соответствующая зак­рывающая метка: < /название>. (На самом деле символы, используемые в качестве ограничителей (угловые скобки, косая черта, восклицательный знак) могут переоп­ределяться, но удобнее применять символы, приведенные в этом описании.) Модели содержимого элемента: пример.

Элемент может быть пустым (empty), то есть не содержать вообще ничего или содержиать просто текст. Чаще, однако, элементы одного типа целиком нахо­дятся внутри элементов другого типа (embed).

Для иллюстрации рассмотрим следующую структурную модель. Предполо­жим, что в техническом руководстве мы хотим идентифицировать системы, подсис­темы, темы и их заголовки, а также параграфы, из которых они состоят. В терминах SGML тип нашего документа—техническое руководство (manual), и оно состоит из последовательности систем (system) и заголовков систем (systitle). Каждая система содержит элементы подсистемы (subsystem) и их заголовки (subsystitle). Внутри подсистемы находятся тема (topic) и ее заголовок (topictitle), каждая тема содержит несколько абзацев (paragraph). Полностью размеченный текст, отвечающий этой модели, может выглядеть так: < manual>

< system> < systitle> Противообледенительная система (ПОС) < /systitle>. < subsystem> < subsystitle> ПОС предкрылков < /subsystitle>. < topiO < topictitle> Общие сведения < /topictitle>:

< paragraph> 1.1. Противообледенительная система (ПОС) предкрыл­ков предназначена для защиты их от обледенения в полете. < /paragraph> < paragraph> 1.2. По принципу действия ПОС предкрылков — элект­ротепловая (ЭТ), обеспечивает комбинированный обогрев постоянно­го и циклического действия. < /paragraph>

< paragraph> 1.3. Нагревательные элементы (НЭ) установлены симмет­рично на левой и правой частях крыла внутри электрообогреваемых обшивок II и IV предкрылков, рис. 3. (030.00.00). < /paragraph> < /topic>

<! - здесь могут быть другие темы или комментарии ->
< /subsystem>                      i

<! - здесь могут быть другие подсистемы или комментарии -> < /system>

<! - здесь могут быть другие системы или комментарии   -> < /manual>

Пробелы и возвраты каретки здесь нужны только для облегчения чтения; они не несут определенного смысла в SGML-кодировании. Кроме того, строка <! - здесь могут быть комментарии ->



218
219


УПРАВЛЕНИЕ ЖИЗНЕННЫМ ЦИКЛОМ ПРОДУКЦИИ
Глава 5. ТЕХНОЛОГИЯ УПРАВЛЕНИЯ ДАННЫМИ ОБ ИЗДЕЛИИ



называется комментарием (comment) SGML и не считается частью текста.

В этом примере нет никаких предположений о правилах, устанавливающих, ] например, могут ли заголовки встречаться в других местах, кроме как предше-, ствуя подсистеме, теме или абзацу, или допустимы ли абзацы, не являющиеся час-» 1 тью темы; поэтому разметка выглядит такой многословной. В подобных случаях | начало и конец каждого элемента должны быть явно отмечены из-за отсутствия | ясных правил их разрешенного появления. Однако на практике обычно формули-! руют правила, позволяющие уменьшить число меток. Например, рассмотрев нашу | упрощенную модель стихотворения, мы можем установить следующие правила:

1. Руководство состоит из описаний систем, системы содержат описания под* \
систем, а подсистемы включают темы.

2. Система всегда имеет единственный заголовок, который предшествует J
подсистеме и не содержит других элементов.

■ 3. Подсистема также имеет единственный заголовок, который предшествует ] теме и не содержит других элементов.

4. Тема имеет заголовок.

5. Кроме заголовка, тема состоит только из элементов абзаца.

6. За абзацем не может следовать ничего, кроме другого абзаца или конца темы.

На основе этих правил констатируется отсутствие необходимости явно отме­чать концы систем, подсистем, тем или абзацев. Из правил 2-5 ясно, что нам не нужно отмечать концы заголовков — они подразумеваются началом подсистемы, темы или абзаца. С данными упрощениями то же руководство размечено так:

< manual>

< system> < systitle> Противообледенительная система (ПОС). < subsystem> < subsystitle> ПОС предкрылков. < topic> < topictitle> Общие сведения:

< paragraph> 1.1. Противообледенительная система (ПОС) предкрыл­ков предназначена для защиты их от обледенения в полете. < paragraph> 1.2. По принципу действия ПОС предкрылков — элект­ротепловая (ЭТ), обеспечивает комбинированный обогрев постоянно­го и циклического действия.

< paragraph> 1.3. Нагревательные элементы (НЭ) установлены симмет­рично на левой и правой частях крыла внутри электрообогреваемых обшивок II и IV предкрылков, рис. 3. (030.00.00). < /manual>

Использование правил, устанавливающих, какие элементы могут быть вло­жены в другие, — очень важное свойство SGML. He переходя к их дальнейше­му разбору, попытаемся рассмотреть, как можно обработать размеченный вы­шеприведенным образом текст. Простая индексирующая программа выделяет только значимые элементы для генерации списка заголовков систем, подсистем, тем; простая программа форматирования вставляет пустые строчки между аб­зацами, начиная с красной строки первую строчку каждого абзаца или вставляя его номер. Различные части технического руководства набираются по-разному. И конечно, представленный выше текст может быть перенесен с одного компью­тера на другой и обработан любой программой, понимающей смысл внесенных в
него меток, безо всяких преобразований и трансляций, необходимых обычно для перемещения файлов текстовых процессоров.


Поделиться:



Последнее изменение этой страницы: 2019-03-29; Просмотров: 333; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.028 с.)
Главная | Случайная страница | Обратная связь