Назад  Содержание  Вперед

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

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

Для достижения этих целей в TEI Lite включено небольшое число дополнительных элементов как расширение основного списка TEI DTD; упомянутые дополнительные элементы используются для обозначения характерных особенностей технических документов вообще и связанных с SGML документов в частности.

Дополнительные элементы для технических документов

Для обозначения характерных особенностей технических документов можно воспользоваться следующими элементами:

<eg>
содержит простой краткий пример к некоторой обсуждаемой технической теме, например фрагмент программы или пример кодирования SGML.

<code>
содержит краткий фрагмент кода на некотором формальном языке (часто на языке программирования).

<ident>
содержит идентификатор определенного типа, например, имя переменной либо имя элемента или атрибута SGML.

<gi>
содержит конкретный тип идентификатора: идентификатор SGML или имя элемента.

<kw>
содержит ключевое слово на некотором формальном языке.

<formula>
содержит математическую или химическую формулу, которая может быть представлена в некоторой не-SGML системе. Предусмотрены следующие атрибуты:

notation
указывает систему записи, используемую для представления тела формулы. По умолчанию принимается значение tex, означающее, что формула соответствует стандартам системы обработки текстов TeX.

Приведенный ниже пример показывает, как можно использовать эти элементы для кодирования отрывка из вводного курса по программированию на языке ФОРТРАН:

<p>It is traditional to introduce a language with a program like the
following:
<eg>
   CHAR*12 GRTG
   GRTG = 'HELLO WORLD'
   PRINT *, GRTG
   END
</eg></p>
<p>This simple example first declares a variable <ident>GRTG</ident>, in
the line <code>CHAR*12 GRTG</kw>, which identifies <ident>GRTG</ident>
as consisting of 12 bytes of type <kw>CHAR</kw>.  To this variable,
the value <mentioned>HELLO WORLD</mentioned>
is then assigned. This is followed by a <kw>PRINT</kw> statement and an
<kw>END</kw> statement.

Обрабатывая текст, подобный приведенному выше, с помощью форматирующего приложения, можно указать этому приложению приемы правильного форматирования (например, сохранить строки оригинала или использовать другой шрифт). Точно так же, использование таких тегов, как <ident> и <kw>, значительно облегчает построение правильного указателя.

Элемент <formula> используется для того, чтобы включить в текст в качестве отдельной единицы математическую или химическую формулу. Поскольку для представления формул, как правило, используется множество самых разнообразных специальных символов и функций, не встречающихся в обычном тексте, возникает необходимость представить основную часть формулы в специализированной системе записи (в специализированной нотации). Используемую нотацию следует определить с помощью атрибута notation, как это показано на следующем примере:

<formula notation=tex>
  \(E = mc^{2}\)
</formula>

Нотация Tex для TEI Lite DTD является стандартной; можно использовать и другие нотации, но их необходимо сначала определить с помощью объявления notation в DTD.

Внутри элемента <formula> допускается почти любая последовательность символов, если она будет обрабатываться процессором, воспринимающим SGML. Данные, не измененные программой синтаксического разбора, проходят для обработки в приложение, которое определяется заданной нотацией. Единственным исключением из этого правила является то, что программа синтаксического разбора распознает всякую последовательность символов, напоминающую окончание тега SGML, т.е. знак "меньше" (<), за которым сразу же следует знак "косая черта" (/) и алфавитный символ. Ниже приведен пример последовательности символов, которая окажется причиной того, что анализатор SGML обнаружит ошибки:

<formula notation=tex>
  \(E = mc^{2}</a\)
</formula>

К счастью, встретить последовательность символов </ в большинстве используемых на практике математических нотаций крайне маловероятно. Если же это произойдет, следует воспользоваться особыми средствами, описание которых не входит в задачу данного руководства (более подробная информация приведена в полной версии Принципов TEI).

Эта проблема более актуальна, когда темой технического документа является кодирование SGML, а сам документ кодируется в SGML. Очевидно, что в таком документе необходимо четко разграничить разметку SGML, приводимую в качестве примеров, и собственно разметку документа, причем в примерах очень вероятно появление знаков окончания тегов. Наиболее общим решением является выделение тела каждого SGML-примера как содержащего данные, поскольку программа синтаксического разбора не проверяет их соответствие разметке SGML. Это достигается путем выделения примеров в специальную конструкцию SGML, которая называется отмеченная секция CDATA. Ниже приведен пример такой конструкции:

<p>A list should be encoded as follows:
<eg><![ CDATA [
   <list>
   <item>First item in the list</item>
   <item>Second item</item>
   </list>
]]>
</eg>
The <gi>list</gi> element consists of a series of <gi>item</gi>
elements.

Использованный в примере элемент <list> не будет рассматриваться как составная часть самого документа, поскольку он введен в пределах отмеченной секции (которая начинается объявлением специальной разметки <![ CDATA [ и заканчивается символами ]]>).

Следует отметить также использование элемента <gi> для выделения тегами ссылок на имена элементов SGML (или идентификаторы) в основной части текста.

Генерируемые разделы

Большинство современных систем обработки документов способны автоматически генерировать целые разделы, например, содержание или предметный указатель. В системе TEI Lite предусмотрен элемент для обозначения места, где следует разместить такой сгенерированный раздел.

<divGen>
указывает место, где появится текстовый раздел, автоматически сгенерированный приложением для обработки текстов. Предусмотрены следующие атрибуты:

type
указывает тип генерируемого текстового раздела (указатель, содержание и т.п.), который появится в данном месте. Допустимы следующие значения: index (указатель, который будет сгенерирован и вставлен в данном месте), toc (содержание), figlist (список иллюстраций), tablist (список таблиц).

Элемент <divGen> можно разместить в любом месте, где допускается появление элемента подраздела, как это показано в следующем примере:

<front>
<titlePage> ... </titlePage>
<divGen type=toc>
<div type='Preface'><head>Preface</head> ... </div>
</front>
<body> ... </body>
<back>
<div1><head>Appendix</head> ... </div1>
<divGen type=index n='Index'>
</back>

В этом примере продемонстрировано также использование атрибута type для обозначения различных типов генерируемых разделов: в первом случае это содержание (toc), а во втором -- указатель.

Если необходимо закодировать уже существующий указатель или содержание (а не сгенерировать их заново), следует воспользоваться элементом <list>, который описан в разделе Списки.

Генерирование указателя

В то время как автоматическое создание содержания в правильно размеченном тегами документе обычно не является проблемой, создание указателя хорошего качества зачастую требует более тщательной разметки. Может оказаться недостаточным просто составить список всех частей, отмеченных каким-либо определенным тегом, хотя выбор, например, всех случаев появления таких элементов, как <term> или <name> часто оказывается хорошей отправной точкой для формирования указателя.

В TEI DTD предусмотрен специальный тег <index>, которым можно воспользоваться как для обозначения частей документа, которые следует включить в указатель, так и для определения способа его формирования.

<index>
отмечает место, где предполагается ввести указатель. Предусмотрены следующие атрибуты:

level
задает основную форму элемента указателя.

level2
задает форму второго уровня, если этот уровень имеется.

level3
задает форму третьего уровня, если этот уровень имеется.

level4
задает форму ввода четвертого уровня, если этот уровень имеется.

index
указывает, к какому указателю (из нескольких) относится данный элемент указателя.

Например, второй абзац этого раздела мог бы выглядеть следующим образом:

...
В TEI DTD преусмотрен специальный тег <gi>index</gi>,
<index level1='указатель'>
<index level1='index (тег)' level2='использование при генерации указателя'>
которым можно воспользоваться ...

Элемент <index> можно использовать и для того, чтобы зафиксировать некоторые формы пояснений или аналитической информации. Например, при изучении произведений Овидия с целью сравнительного стилистического анализа весьма желательно зарегистрировать ссылки поэта на различных персонажей. В приведенных ниже строках его Метаморфоз подобное исследование должно зафиксировать следующие упоминания поэтом Юпитера (как deus, se, и как подлежащее для сказуемого confiteor [во флективной форме номер 227]), на Юпитера в образе быка (как imago tauri fallacis и как подлежащее для сказуемого teneo) и т.д. (Этот анализ взят с разрешения авторов из работы Вилларда Мак-Карти и Бартона РайтаАналитическая ономастика "Метаморфоз" Овидия(Издание Принстонского университета, в печати). Сделаны некоторые упрощения.)

<l n=3.001>iamque deus posita fallacis imagine tauri
<l n=3.002>se confessus erat Dictaeaque rura tenebat

Это требование можно было бы удовлетворить с помощью элемента <note>, описанного в разделе Примечания, или элемента <interp>, рассмотренного в разделе Интерпретация и анализ. Здесь показано, как можно достичь поставленной цели с помощью элемента <index>.

Предполагается, что конечной целью является генерирование нескольких указателей: одного для имен богов (он назван dn), другого для ономастических ссылок (он назван on), третьего для местоименных ссылок (он назван pr) и т.д. Ниже приведен пример того, как можно решить эту задачу:

<l n=3.001>iamque deus posita fallacis imagine tauri
     <index index="dn" level1="Iuppiter" level2="deus">
     <index index="on" level1="Iuppiter (taurus)"
                       level2="imago tauri fallacis"></l>
<l n=3.002>se confessus erat Dictaeaque rura tenebat
     <index index="pr"    level1="Iuppiter" level2="se">
     <index index="v"     level1="Iuppiter" level2="confiteor (v227)">
     <index index="mons"  level1="Dicte" level2="rura Dictaea">
     <index index="regio" level1="Creta" level2="rura Dictaea">
     <index index="v"     level1="Iuppiter (taurus)"
                          level2="teneo (v9)"></l>

 

Для каждого приведенного выше элемента <index> статья указателя будет создаваться в соответствующем указателе, причем в качестве заглавного слова используется значение атрибута level1, в качестве вторичного ключевого слова значение атрибута level2, которое содержит это слово в именительном падеже. Реальная ссылка будет взята из контекста, в котором появляется элемент <index>, т.е. в данном случае его содержит идентификатор элемента <l>.


Назад  Содержание  Вперед

Последние изменения: Суб Июл 4 20:14:12 MSD 1998
Сгенерировано TEItools