Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8л.Базові технології формування і представлення...doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
138.75 Кб
Скачать

7.6. Языки разметки

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

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

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

Во-вторых, на следующем уровне абстракции всякий текст рассма­тривается как совокупность объектов различного свойства. Данные объекты появляются в тексте закономерно в определенном отношении к прочим. Объекты могут включать друг друга, иметь связи или быть представлены последовательно. На этом уровне описания текст со­ставлен из структурно определенных объектов, называющихся "эле­ментами". Однако тексты не являются простой чередой слов или бай­тов. Они содержат примеры объектов, такие, как параграфы, заголов­ки, имена, даты, представленные последовательностью "явлений". Все схемы разметки текстов в большей или меньшей степени направ­лены на описание этих компонентов. Можно указать по крайней мере три важных аспекта текстовых объектов, которые нуждаются в распоз­навании. Прежде всего, это "протяжение", т. е. позиции в текстовом потоке, на которых формы объекта начинаются и заканчиваются. За ними следует "тип" — категория, с которой соотнесены формы объек­та, после которой возникает "контекст" — связи текстовых объектов с формами другого объекта в документе.

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

Различаются два основных типа языка разметки текстов: процедур­ный и декларативный (описательный).

Процедурный язык состоит из знаков, которые изначально ясно указывали на то, как размеченные элементы текста должны быть рас­печатаны. Документы, размеченные процедурным языком, обыкно­венно имеют начальную секцию, заголовок, который иногда хранится в отдельном файле. Заголовок определяет характер знаков, допущен­ных для описания текста, и значки, указывающие на отличие знаков процедурного языка от текста источника — оригинала. Например, ис­пользуются значки {...}, \...\, <...>. Заголовки также могут содержать заданные пользователем условные символы, с помощью которых сложные последовательности знаков процедурного языка можно со­кратить для облегчения использования. Подобная разметка текста нуждается в специальном программном обеспечении, которое изна­чально разрабатывалось для издательских целей. Поэтому можно ут­верждать, что процедурный язык разметки является языком програм­мирования.

Различие между процедурным и описательным языками заключает­ся в том, что описательный определяет структуру и характерные черты документа, а не процедуры обработки. Задачами этого языка являют­ся определение различных феноменов в тексте, например парагра­фов, иноязычных вставок, речи действующих лиц, выделения темати­ческих, стилевых, предметных или иных фрагментов, а также установ­ление связей между ними. Фактически язык разметки сближается в некоторых своих функциях с языками, входящими в состав лингвисти­ческого обеспечения электронных библиотек, а именно информацион­но-поисковыми.

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

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

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

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

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

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

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

Стандартный обобщенный язык разметки SGML. Для того что­бы было можно переформулировать тексты, размеченные разными языками, был создан универсальный Standard Generalized Markup Language (SGML) — стандартный обобщенный язык разметки. В 1986 г

SGML как инструмент описания текстов в электронных системах полу­чил официальное признание Международной организации по стандар­тизации (ISO) в качестве стандарта ISO 8879:1986.

SGML — это метаязык, т. е. средство формального описания при­кладных языков разметки, предназначенных для кодирования структу­рированных документов. Разметка, определяемая в рамках SGML, ос­новывается на двух постулатах: она описывает структуру документа, а не указывает, что должно происходить с документом или его частями; • она должна быть строгой, чтобы программы и базы данных мог­ли быть использованы для хранения и обработки размеченных документов.

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

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

Важным достоинством SGML является то, что он не определяет за­ранее имена элементов и их атрибуты. Например, если автор докумен­та считает, что семантически корректнее определить в тексте два типа списков: фамилий и компаний, то он может ввести два элемента: listof-people и listof companies. В дальнейшем эти элементы могут обрабаты­ваться как различные семантические единицы.

Чтобы документ являлся синтаксически корректным с точки зрения SGML, необходимо осуществлять его разметку, подчинялась некоторо­му набору правил, определяемых стандартом ISO. Одно из правил со­стоит в том, что допускается лишь полная вложенность одного элемен­та в другой. Таким образом, в каждом документе всегда будут один кор­невой и некоторое количество иерархически вложенных элементов.

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

Структурная разметка не предназначена для обеспечения удобочи­таемости документов. Для этого существует разметка представления. Соответствующие программные средства преобразуют структурную разметку в разметку представления. Эти и другие программы, обраба­тывающие документ, должны уметь распознавать элементы структуры и атрибуты элементов и применять к определенным элементам необ­ходимые операции.

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

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

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

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

SGML представляет собой достаточно емкий и в то же время слож­ный метаязык. На его основе создаются языки разметки, используе­мые в различных областях: подготовка книг, документации, построе­ние систем визуализации данных и т. д., такие, как HTML, XML, MathML, CML и др.

Вместе с тем широта охвата порождает и недостатки. Так, напри­мер, создание единого DTD для подготовки документации в рамках од­ной организации, несомненно, имеет преимущества, такие, как уни­фикация исходного кода, возможность автоматического индексирова­ния данных, ведение единого словаря терминов, написание стандартных средств обработки документов, получение стандартного бумажного представления и т. п. Но как только мы выходим за рамки организации, проекта или отрасли, то все упирается в утверждение данного DTD в качестве общего стандарта. Кроме того, как только при­нимается стандарт на некоторый DTD, сразу начинается борьба за его расширение, и так может продолжаться до бесконечности.

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

Гипертекстовый язык разметки HTML. Язык разметки HTML разработан в Лаборатории физики высоких энергий (CERN) в Женеве в 1990 г. Первоначально HTML был предназначен для разметки научных документов и их последующего совместного использования сотрудни­ками разных институтов и лабораторий. HTML состоял из небольшого фиксированного набора элементов, заголовков нескольких уровней, абзацев, списков и др. Но главной его особенностью было использова­ние гиперссылок и специальных меток для указания точек перехода. Все это позволяло достаточно легко размечать простые документы и устанавливать связи как между ними, так и между компонентами одно­го документа. Человек всегда обрабатывает и анализирует информа­цию нелинейным образом. Поэтому возможности нелинейного хране­ния информации, простота использования языка разметки и широкие возможности применения привели к тому, что популярность HTML ста­ла быстро расти и вне академических рамок. Как это часто бывает с любыми гениальными открытиями, успех превзошел все ожидания со­здателей.

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

В целях регулирования процесса развития и стандартизации пред­лагаемых решений для WWW в октябре 1994 г. была создана коорди­нирующая рабочая группа World Wide Web Consortium (W3C), которая сегодня объединяет представителей более чем 370 организаций. Ос­новными задачами W3C являются накопление информации о WWW, необходимой как разработчикам, так и пользователям, подготовка и утверждение стандартов на технологии, связанные с WWW.

Положительная роль W3C в судьбе HTML очевидна. Этот язык уда­лось сохранить от разделения на несколько диалектов, правда, ценой постоянного принятия все новых и новых расширенных спецификаций, которые сменяют друг друга с периодичностью раз в два года. Борьба между двумя крупнейшими разработчиками Web-навигаторов в конце концов привела к тому, что стандарты утратили четкость и однознач­ность, а пользователям приходилось часто менять программное обес­печение. Сами же пользователи все больше и больше становились за­висимы от разработчиков программных продуктов, у них не было воз­можности добавлять собственные расширения в языки разметки, ч

За время своего существования HTML претерпел множество изме­нений, что весьма неприятно для создателей документов и разработ­чиков программ. Но гораздо большей неприятностью стало то, что, из­начально задуманный как язык структурной разметки, в результате своего развития HTML превратился в язык разметки представления. Исходный текст таких документов становится практически нечитае­мым, а доля полезной информации составляет лишь несколько про­центов. К счастью, ситуация постепенно начинает улучшаться. В вер­сии языка HTML 4.0 содержится около 80 элементов. Темп роста их числа заметно уменьшился. Этому способствовало прежде всего вве­дение атрибута CLASS во все элементы. Используя этот атрибут, мож­но определить новые семантические единицы без изменения синтак­сиса языка в целом.

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

Несмотря на массовое признание и использование HTML, а также на разумные шаги, предпринятые W3C, в HTML все еще имеются суще­ственные недостатки. Отсутствие жесткой иерархии элементов приво­дит к тому, что один и тот же документ может быть размечен и соответ­ственно будет интерпретироваться программным обеспечением раз­личными способами. Для некоторых областей деятельности HTML не предоставляет возможностей ни структурно размечать требуемые элементы, ни правильным образом выводить их на экран или принтер. Математикам необходима возможность работы с формулами, хими­кам нужно отображать структуру химических соединений, и вместе с тем всем разработчикам и пользователям WWW необходимы наличие единых принципов разметки документов, универсальность их обра­ботки и отображения.

Таким образом, языки разметки составили две крайности: SGML и HTML. С одной стороны, максималистский подход при создании SGML привел к чрезмерной сложности языка и соответствующих программ­ных продуктов, что неприемлемо для массового потребления. С дру­гой — простота и ограниченность HTML создала трудности при описа­нии сложных информационных объектов, поиске необходимой инфор­мации, создании приложений, обменивающихся данными через Интернет. Поэтому в 1996 г. была сформирована рабочая группа W3C, основной задачей которой являлось создание нового языка разметки. Этот язык должен был включать в себя гораздо больше возможностей SGML, чем HTML, но в то же время оставаться подходящим для ис­пользования в WWW. Чуть позже этот язык стал известен как XML (extensible Markup Language, расширяемый язык разметки).

Расширяемый язык разметки XML. Разработка нового языка разметки велась около двух лет, и в начале февраля 1998 г. W3C утвер­дила в качестве рекомендации первую спецификацию XML — XML версии 1.0. За сравнительно недолгий срок с момента своего по­явления на свет XML сумел завоевать огромную популярность среди разработчиков интернет-технологий. Число созданных и разрабатыва­емых программных продуктов на основе XML, число компаний, включа­ющих поддержку XML в свои уже готовые продукты, количество публи­каций в компьютерной прессе велики и продолжают расти.

Как и SGML, XML является метаязыком для формального описания прикладных языков разметки, предназначенных для кодирования структурированных документов. Спецификация XML определяет, как стандартным способом разметить документ, выделяя все семантичес­ки значимые компоненты.

При разработке нового языка разметки учитывались достоинства и недостатки уже существующих, а также то, что основным местом при­менения XML является Интернет. Основные требования к создаваемо­му языку были сформулированы следующим образом:

  • XML должен быть годен к непосредственному применению в Ин­тернете;

  • XML должен быть совместим с SGML (XML-документ одновре­менно является и SGML-документом без внесения каких-либо изменений или дополнений);

  • число необязательных свойств в XML обязано быть минималь­ным, в идеале нулевым (любая XML-программа умеет читать лю­бой XML-документ);

  • XML-документы должны быть легко читаемы с помощью про­стейших текстовых процессоров;

• XML-разметка призвана быть простой для понимания. Формальное описание нового языка разметки состоит из несколь­ких взаимосвязанных частей:

  • спецификации extensible Markup Language (XML) 1.0, которая определяет синтаксис языка;

  • спецификаций XML Pointer Language (XPointer) и XML Linking Language (XLink), которые определяют стандартные механизмы установления связей между компонентами XML-документов;

  • спецификации extensible Style Language (XSL), которая опреде­ляет механизмы для внешнего представления ХМL-документов.

Для классификации правильно составленных (с точки зрения XML) документов вводятся понятия структурной и синтаксической коррект­ности. XML-документ является структурно корректным, если отвечает следующим требованиям:

  • конструкция документа должна соответствовать общим прави­лам его составления, определенным в спецификации;

  • некоторые конструкции могут присутствовать только в опреде­ленных местах документа;

  • никакой атрибут не используется более одного раза в одном маркере элемента;

  • значения атрибутов не ссылаются на внешние объекты;

  • все непустые элементы удовлетворяют принципу вложенности;

  • все используемые объекты продекларированы;

  • отсутствуют ссылки на бинарные объекты непосредственно из тек­ста: такие ссылки возможны лишь в момент декларации объекта;

• текстовые объекты не являются рекурсивными.

При наличии у документа DTD возможна его проверка на синтакси­ческую корректность. При этом XML-документ считается синтаксичес­ки корректным, если он, во-первых, является структурно корректным, а во-вторых, полностью соответствует всем правилам, изложенным в

соответствующем DTD.

Все элементы XML имеют специально зарезервированный атрибут XML-LINK. Его присутствие в элементе определяет наличие ссылки, а значение атрибута указывает, какой тип ссылки в данном месте ис­пользуется. В XML в отличие от HTML возможно создание не только од­нонаправленных гипертекстовых ссылок по типу "один-к-одному", но и других, а именно:

  • двунаправленных ссылок;

  • ссылок с возможностью перехода к одному или нескольким объ­ектам ("один-ко-многим");

• ссылок к объектам, размещенным в базах данных.

Используя XML, автор документа может самостоятельно опреде­лять тот набор элементов, который наиболее точным образом соответ­ствует его структурным компонентам. Но свобода выбора имеет свою цену; набор используемых элементов не обладает предопределенной семантикой. Для совместной работы с XML-документами необходим стандартный механизм получения внешнего представления. Таким ме­ханизмом для XML является XSL (extensible Style Language, расширяе­мый язык стилей).

Работа с XML начинается с обработки исходного текста програм­мой-анализатором (parser). Эта программа проверяет структурную и синтаксическую корректность XML-документа и создает дерево эле­ментов исходного документа. Далее вступает в действие XSL-процес-сор, который в качестве исходных данных берет построенное дерево и соответствующий стиль. Шаг за шагом, начиная с корневого элемента, XML-процессор по шаблону, определенному в таблице стилей, обра­батывает всю структуру документа. Полученное в результате дерево элементов может состоять из форматирующих объектов, которые и описывают внешнее представление документа. Форматирующие объ­екты являются описанием, независимым от устройства представле­ния, и, следовательно, конечный документ может быть использован различными устройствами вывода.

Основными преимуществами XSL над другими механизмами нало­жения стилей помимо возможности работы с элементами непредо-пределенной семантики являются:

  • возможность изменения порядка следования элементов в ре­зультирующем документе;

  • возможность сортировки и сравнения элементов текста (список используемых терминов, упомянутых авторов);

  • повторная обработка некоторых элементов (например, для пе­чати разными стилями названия главы в начале страницы, в ко­лонтитуле, оглавлении);

  • возможность генерации вспомогательного текста ("Глава", "Ог­лавление", "Список иллюстраций" и т. п.);

  • подавление вывода некоторого текста (удаление редакторских примечаний или вывод только предисловия, а не полного доку­мента).

Диалекты XML. XML получает очень широкое распространение при обработке определенных классов текстов в различных предмет­ных областях. Такие версии XML иногда называют его диалектами.

Большое количество проектов ведется в научных кругах. Например, для осуществления обмена стандартизованными данными на основе XML в астрономии был создан язык разметки AML (Astronomical Markup Language). AML поддерживает работу со следующими объектами: ста­тьями, таблицами, наборами таблиц, изображениями астрономических объектов, персоналиями. Это означает, что все они могут быть описаны с помощью единого языка разметки, что облегчает установление свя­зей между объектами и создание программных продуктов, поддержи­вающих их в рамках единого пользовательского интерфейса.

Другим примером является создание математического языка раз­метки MathML (Mathematical Markup Language). Еще одно научное приложение — CML (Chemical Markup Language), предназначенный для представления химических текстов, прежде всего формул.

Создан также язык разметки географических данных GML (Geography Markup Language), который позволяет кодировать геогра­фическую информацию, в частности геометрические характеристики объектов в форме XML-документов.

Однако основное направление развития приложений XML — это электронный бизнес и электронная торговля. Например, разработан международный формат ONIX, являющийся приложением XML для электронной торговли книгами. Далее кратко описываются некоторые другие стандарты на основе XML для деловой и коммерческой инфор­мации.

Язык разметки финансовых продуктов FPML (Financial Products Markup Language) предназначен для обеспечения электронной интег­рации широкого перечня финансовых услуг — от электронного трей­динга до спецификаций инвестиционного портфеля для анализа рис­ков. Первая версия языка была создана в июне 1999 г. В его создании участвовали крупнейшие банки США и Европы.

Спецификация для обмена бизнес-сообщениями IFX (Interactive Financial exchange) предназначена для определения форматов сооб­щений и протокола их передачи в процессе электронного обмена дан­ными. В апреле 1999 г. образован комитет по созданию IFX. В нем так­же представлены крупнейшие банки и финансовые компании, а также Ассоциация стандартов обмена данными, Сообщество банковского обслуживания и другие организации.

Язык для кодировки финансовых отчетов XBRL (extensible Business Reporting Language) основан на общепринятых стандартах статистиче­ской и финансовой отчетности и предназначен для обмена между про­граммами через Интернет. Международный комитет, который занима­ется этим языком, был создан в 1999 г. На сегодняшний день разрабо­таны способы описания формальных требований к отчету, представленному в формате XBRL, они соответствуют стандартам США и других стран в области финансовой отчетности.