
- •Лекція 8
- •Тема 9. Базові технології формування і представлення інформаційних ресурсів План
- •1. Моделі інформаційних об’єктів
- •2. Текстові документи як цифрові об’єкти
- •7.4. Кодировки символов
- •7.5. Оформление текстов и стили
- •7.6. Языки разметки
- •3. Лінгвістичне забезпечення інформаційних систем
- •4. Метадані
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, они соответствуют стандартам США и других стран в области финансовой отчетности.