xmlhack.ru logo
>> статьи на xmlhack.ru

Введение в архитектуру типизированной информации Darwin (DITA)

Автор: Дон Дэй
Автор: Майкл Пристли
Автор: Дэвид Шелл
Перевод: А.Скробов
Опубликовано на IBM Corporation (28.03.2005, англ.): http://www-128.ibm.com/developerworks/xml/library/x-dita1/
Опубликовано на xmlhack.ru (06.09.2006, рус.): http://xmlhack.ru/texts/06/dita/dita.html
В закладки:   Del.icio.us   reddit

Движение к переносимой технической информации

Архитектура типизированной информации Darwin (Darwin Information Typing Architecture, DITA) — это основанная на XML технология, охватывающая весь цикл разработки, выпуска и доставки технической информации. Эта архитектура составлена из набора принципов, описывающих как создание модулей с «типизированной информацией» на уровне отдельных тем, так и использование этой информации, например в онлайн-справке или на веб-портале технической поддержки.

Основными элементами DITA — кирпичиками, из которых строится архитектура разбитой по темам информации, — являются определения типов XML-документа (DTD), а именно, «DTD тем». Несмотря на это, основополагающим принципом в архитектуре DITA является её расширяемость; DTD тем, как и любые схемы на их основе, — это лишь конкретные реализации принципов этой архитектуры.

Данный документ содержит обзор технологии DITA: что это такое, и как её можно применять в создании технической документации. Заодно он является примером практического приложения этой архитектуры; он был полностью написан в виде XML, с использованием описанных здесь принципов.

Исторический обзор

Архитектура DITA и её DTD были разработаны сборной рабочей группой, образованной специалистами по поддержке пользователей, работающими в различных отделах IBM. После предварительного совещания в конце 1999 г., эта рабочая группа совместно разрабатывала архитектуру типизированной технической информации, общаясь при помощи сообщений в базе данных и еженедельных телеконференций. К 2001 г. разработка была завершена, и архитектура DITA использовалась на веб-сайте IBM developerWorks как альтернативная система XML-документации. Целью было извлечь максимум выгоды из представления документации в виде XML. Сейчас, когда новые разработки существенно улучшили гибкость и согласованность этой архитектуры, можно считать, что DITA успешно прошла этап начального прототипа.

Обмен информацией, управление инструментами и расширяемость

Документация к продуктам IBM занимает миллионы страниц, и с начала 1990-х вся она создавалась на основе IBMIDDoc — чрезвычайно сложного SGML-DTD, являющегося внутренним стандартом IBM. С самого начала рабочая группа оказалась перед вопросом: «Не будет ли достаточным просто сделать XML-DTD из IBMIDDoc, или взять какое-нибудь из уже существующих DTD, таких как DocBook, TEI или XHTML?» Чтобы смочь ответить на этот вопрос, нужно представлять себе сущность технической документации.

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

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

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

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

Основные черты архитектуры DITA

Как и предполагает слово «архитектура» в названии DITA, она включает определённые черты, которые позволяют объединять, организовывать и структурировать информацию:

Тема как основная архитектурная единица

В центре разнообразных архитектур онлайн-доставки информации неизменно стоит понятие о теме как об основной единице этой информации. Тема как единица информации — это описание одной задачи, или понятия, или пункта справки. Категория этой темы (понятие, задача или справка) образует её информационный тип (инфотип). Новый информационный тип вводится при помощи специализации на основе структур в общем DTD тем. Типизированными темами легко управлять из систем управления содержимым (CMS), потому что это автономные блоки информации, готовые к многократному использованию. Например, отобранные темы можно собрать вместе, упорядочить, и обработать в контексте доставки, чтобы сделать их доступными в нескольких доставляемых формах — таких, как набор недавно доработанных тем, передаваемый для проверки; набор тем справки, включаемый в приложение поддержки пользователей; или даже набор глав или разделов в буклете, который печатается по «списку покупок» пользователя или по результатам сделанного им поискового запроса.

Преимущества архитектуры DITA

За счёт разбиения всех данных на отдельные темы и специализации их типа, DITA позволяет применить к информационным массивам следующие преимущества объектно-ориентированной модели:

Архитектуру DITA можно считать объектно-ориентированной, потому что:

При достаточной строгости и изобретательности некоторые из этих преимуществ применительно к наборам тем можно было бы получить и при помощи DTD. В частности, существуют механизмы членения, позволяющие получить по DTD книги её отдельные темы. В DITA возможен и противоположный переход: составление книги из набора DITA-тем. Однако, в обоих этих случаях возможность перехода лишь вторична по отношению к основному предназначению DTD: а именно, если вы создаёте книги, то наиболее разумным было бы использовать DTD, предназначенное для книг; если же вы создаёте темы, то более разумным было бы использовать DTD для тем, причём пригодное даже для больших наборов тем без ограничений на возможность их обработки.

Обзор DITA

Архитектура типизированной информации Darwin определяет ряд взаимоотношений между частями документа, обработчиками и сообществами пользователей информации. Ниже перечислены уровни в DITA, соответствующие целям, заложенным в её основное DTD — topic.

Уровни в архитектуре типизированной информации Darwin (DITA)
Контексты доставки
справочная система печать отдельных глав веб-сайт, информационный портал
Структуры типизированных тем
тема понятие задание справка
Специализация словарей по типам информации
Типизированная тема: понятие задание справка
Включаемые словари: выделение; программы; программирование; пользовательский интерфейс
Универсальные структуры
метаданные таблица OASIS (CALS)

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

Контексты доставки в DITA

В этой области представлен уровень обработчиков тем с информацией. Темы могут обрабатываться по одной, сами по себе, либо в контексте доставки, который соотносит набор тем с определённым информационным продуктом. В контекст доставки также включаются системы управления документами, пакеты для перевода и т.п.

Контексты доставки
справочная система печать отдельных глав веб-сайт, информационный портал

Типизированные темы в DITA

Типизированная тема (тема с инфотипом) — это основной структурный уровень всей информации в DITA. Основа этой архитектуры — это структура темы и её специальные варианты — понятие, задание и справка. Дальнейшая специализация позволяет расширить архитектуру на другие типы тем.

Структуры типизированных тем
тема понятие задание справка

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

Важная возможность, предоставляемая архитектурой DITA, — то, что сообщества владельцев данных могут для представления своей информации объявлять новые инфотипы или расширять существующие. Примерами таких специальных инфотипов могут быть информация о поддержке продуктов, описания программных сообщений и определения элементов пользовательского интерфейса. Кроме возможности создания тем новых типов, чьё содержимое построено по новым моделям, DITA также предоставляет возможность расширять словари тегов, относящихся к какой-либо области знаний. Специализация областей знаний заменила в DITA то, что в её исходном проекте называлось «разделяемыми структурами».

Специализация словарей в DITA

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

Точно так же, как со специализированными темами, DITA позволяет определять для областей знаний специализированные словари, которые могут разделяться рядом типизированных тем. Можно вовсе не пользоваться спецсловарями, и создавать темы только из основных элементов.* Спецсловарь может состоять из фраз, списков или абзацев — любых вещей, допустимых в секции — самой маленькой структурной единице внутри темы.

Специализация словарей по типам информации
Типизированная тема: понятие задание справка
Включаемые словари: выделение; программы; программирование; пользовательский интерфейс

Спецсловари, определённые в этом примере, включают следующие элементы:

Спецсловарь Элементы
выделение b, u, i, tt, sup, sub
программы msgph, msgblock, msgnum, cmdname, varname, filepath, userinput, systemoutput
программирование codeph, codeblock, option, var, parmname, synph, oper, delim, sep, apiname, parml, plentry, pt, pd, syntaxdiagram, synblk, groupseq, groupchoice, groupcomp, fragment, fragref, synnote, synnoteref, repsep, kwd
пользовательский интерфейс uicontrol, wintitle, menucascade, shortcut

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

Чтобы включить спецсловарь, нужно объявить эквивалентную сущность-параметр для каждого элемента, использованного в DTD, — такого, как тема или один из её специализированных вариантов, — и затем использовать в рамках модели содержимого, задаваемой этим DTD, сущности-параметры вместо непосредственных элементов. Потом, после подстановки сущности-параметра, соответствующего элементу, эта сущность переопределяются так, чтобы включать и сам элемент, и все производные от него элементы того же спецсловаря; поэтому всюду, где допускался исходный элемент, будут также допускаться и производные от него. В результате этого любую тему, не привязанную к конкретной области знаний, можно расширить на несколько разных областей одной лишь заменой набора включаемых сущностей, выполняемой при помощи DTD-«оболочки», формализующей расширения словаря на указанное семейство типизированных тем.

Универсальные структуры в DITA

Одной из целей, поставленных перед разработчиками DITA, было извлечение выгоды из многократного использования XML-структур общего назначения. В соответствии с этим, в DTD тем включена табличная модель OASIS (прежде известная как табличная модель CALS). Также включён определённый набор метаданных, непосредственно совместимых с моделями метаданных в некоторых других схемах и DTD.

Универсальные структуры
метаданные таблица OASIS (CALS)

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

Структура таблицы предоставляет семантические средства визуальной разметки содержимого тем. Поддержка табличной модели OASIS/CALS есть во многих популярных XML-редакторах.

Элементы, предназначенные для специализации

Архитектура DITA обеспечивают богатую платформу для специализации, благодаря общей структуре элементов, использованных в её DTD тем, являющемся прототипом для всех остальных DTD.

Например, данные в секции, определённой в базовом DTD тем, могут содержать как текст, так и другие элементы. Но можно создать специальный вариант секции, в котором запрещены узлы типа PCDATA; получающаяся модель будет допускать в содержимом секции только элементы — так же, как это сделано для корневого элемента в большинстве DTD. Можно создать и другой специальный вариант секции, в котором будет запрещено большинство блочных элементов; такая секция будет подходить для описания определений, меток полей, деталей и т.д.

Разработчики DITA постарались выбрать для элементов имена, знакомые по HTML и другим языкам разметки. Некоторые из имён были позаимствованы из промышленных DTD, поддерживающих большие SGML-библиотеки, — таких, как IBMIDDoc и DocBook.

Списки атрибутов, использованных в DTD тем, отражают ту же философию. Например, один из «всеобщих атрибутов», применимых к большинству элементов, — это importance, определяющий значимость или ценность как свойство многих специальных элементов. Так, в некоторых элементах специализированной темы-задачи этот атрибут используется с двумя допустимыми значениями: «optional» и «required». В других областях более уместно размечать элементы по важности как «high» или «low». Все эти возможные значения определены на уровне базовой темы.

Значение специализации

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

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

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

Роль сообществ пользователей в DITA

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

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

Рисунок 1. Соотношение специализированных сообществ и основной архитектуры.

Соотношение специализированных сообществ и основной архитектуры

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

Примечание

* В начальном проекте DITA весь спецсловарь определялся в DTD тем, и поэтому применялся глобально ко всем инфотипам. У этого подхода было два недостатка:

Ссылки



IBM Corporation Copyright © IBM Corporation
Перевод: xmlhack.ru Copyright © 2000-2007 xmlhack.ru