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

Перекрестные ссылки и связи

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

Простые перекрестные ссылки

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

<ref>
ссылка на другое место текущего документа, выраженная одним или несколькими идентифицируемыми элементами, причем в эти элементы можно ввести дополнительный текст или комментарий.

<ptr>
ссылка на другое место текущего документа, выраженная одним или несколькими идентифицируемыми элементами.

Эти элементы могут содержать следующие атрибуты:

target
указывает пункт назначения (или цель) данного указателя в виде одного или нескольких идентификаторов SGML.

type
относит данный указатель к определенной категории согласно принятой классификации.

targType
указывает тип (или типы) элемента, на который направлен данный указатель.

crDate
указывает, когда был создан данный указатель.

resp
указывает создателя указателя.

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

Следующие две формы, например, логически эквивалентны (при условии, что точная вербальная форма перекрестной ссылки, представленная в элементе <ptr>, задокументирована где-либо):

Далее смотрите <ref target=SEC12>раздел 12, стр. 34</ref>.
Далее смотрите <ptr target=SEC12>.

Значение атрибута target должно являться идентификатором SGML в текущем документе SGML. Это означает, что отрывок или фраза, на которую ссылаются, должна иметь идентификатор, а следовательно, должна быть отмечена тегом как элемент некоторого типа. В приведенном ниже примере имеется перекрестная ссылка на элемент <div1>:

    ...
    see especially <ptr target=SEC12>.
    ...
    <div1 id=SEC12><head>Concerning Identifiers...
    ...

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

    ...
    this is discussed in <ref target=pspec>the paragraph on links</ref>
    ...
    <p id=pspec>Links may be made to any kind of element
    ...

Атрибут targType можно использовать для указания того, что ссылаются на элемент определенного типа, как это сделано в приведенном ниже примере:

    ...
    this is discussed in <ref target=dspec targType='div1 div2'>
    the section on links</ref>

Эта ссылка окажется ошибочной, если элемент с идентификатором dspec не является элементом <div1> или <div2>. Однако, следует отметить, что нельзя проверить это просто с помощью синтаксического анализатора SGML, поскольку программа синтаксического анализа в SGML указывает только, что элемент dspec существует.

Атрибут type используется для того, чтобы определить тип связи, представляемой указателем, по любой принятой классификации. Также можно воспользоваться атрибутами resp и crDate, чтобы указать лицо или организацию, которые создали данную связь, и дату ее создания, как это сделано в следующем примере:

    ...
   this is discussed in
   <ref type=xref resp=auto crdate=950521 target=dspec targtype='div1 div2'>
   the section on links</ref>

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

Иногда цель перекрестной ссылки невозможно определить как некоторую конкретную особенность текста и, следовательно, нельзя обозначить как элемент определенного типа. Если целью является просто некоторая точка текущего документа, проще всего обозначить такое назначение с помощью элемента <anchor>, который располагается в соответствующем месте. Если цель представляет собой набор слов, не отмеченный никакими другими тегами, можно обозначить этот отрывок с помощью элемента <seg>. Свойства этих двух элементов таковы:

<anchor>
определяет место или точку в документе, чтобы на них можно было сослаться.

<seg>
идентифицирует отрывок или сегмент текста в документе, чтобы на них можно было сослаться. Включает следующие атрибуты:

type
определяет категорию сегмента.

В следующем (искусственном) примере элементы <ref> использованы для обозначения точек в приведенном тексте, которые необходимо связать каким-либо способом с другими его частями; в первом случае с точкой, а во втором с отрывком (набором слов):

  Returning to <ref target=ABCD>the point where I dozed
  off</ref>, I noticed that <ref target=EFGH>three
  words</ref> had been circled in red by a previous reader

При этом способе кодирования необходимо, чтобы элементы с указанными идентификаторами (ABCD и EFGH в примере выше) встречались еще и в другом месте этого документа. В случае, если предполагается, что в тексте больше не окажется элементов с такими идентификаторами, можно воспользоваться элементами <anchor> и <seg>:

  .... <anchor type=bookmark id='ABCD'> ....
   ....<seg type=target id='EFGH'> ... </seg> ...

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

Расширенные указатели

Элементы <ptr> и <ref> можно использовать только для перекрестных ссылок или связей, источник и цель которых находятся в пределах одного и того же документа SGML. Кроме того, с помощью этих элементов можно сослаться только на элементы SGML. В этом разделе описаны элементы, не ограниченные такими признаками.

<xptr>
определяет указатель (ссылку) на другое место текущего документа или другого (внешнего) документа.

<xref>
определяет указатель (ссылку) на другое место текущего документа или другого (внешнего) документа; возможно, с дополнительным текстом или комментарием.

Кроме атрибутов указателей, уже описанных выше в разделе Простые перекрестные ссылки, эти элементы могут иметь дополнительные атрибуты, которые используются для определения цели перекрестной ссылки или связи вместо атрибута target:

doc
указывает документ, в котором следует искать требуемое место; значение по умолчанию текущий документ.

from
отмечает начало пункта назначения (цели) указателя, представленного в виде выражения, соответствующего синтаксису расширенных указателей TEI; значение по умолчанию весь документ, указанный в атрибуте doc.

to
отмечает конец пункта назначения (цели) указателя, представленного в виде выражения, соответствующего синтаксису расширенных указателей TEI; используется только в том случае, если определен атрибут from.

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

Элемент <xptr> (или <xref>) может указывать на какой-либо другой документ в целом, для этого нужно просто указать название нужного объекта в качестве значения атрибута <doc>, как это сделано в следующем примере:

  see <xref doc=P3>The TEI Guidelines, passim</xref>

В этом примере подразумевается, что ранее описана некоторая система или общедоступный объект с именем P3. Это описание может находиться в файле расширения litemods.ent или может быть сделано другим способом, присущим тому конкретному авторскому программному обеспечению SGML, которое используется в данном случае (эти вопросы рассмотрены в разделе Рисунки и графика).

Атрибут from используется для того, чтобы определить конкретное место в документе, который указан в атрибуте doc. В таких спецификациях используется специальный язык, который называется языком расширенных указателей TEI (TEI extended pointer syntax); здесь приводятся только некоторые сведения о нем. С помощью этого языка местонахождение в документе определяется как ряд шагов (steps), каждый из которых идентифицирует определенную часть документа, часто в терминах местонахождений, определенных предыдущим шагом. Например, чтобы указать на третье предложение во втором абзаце главы 2, следует выбрать вторую главу в первом шаге, второй абзац во втором, и третье предложение в последнем шаге. Шаг можно определить в терминах понятий SGML (таких как parent, descendent, preceding и т.д.) или, более свободно, в терминах структуры текста, позиций слов или символов. Можно также использовать иную (не-SGML) систему обозначений или указать место в графическом объекте с помощью связанной с ним системы координат.

Атрибуты from и to используют одну и ту же систему обозначений. Каждый указывает на некоторый отрывок в целевом документе; расширенный указатель как целое указывает на раздел, который начинается с отрывка, указанного в атрибуте from и заканчивается текстом, указанным в атрибуте to.

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

<xptr doc=P3 from='id (SA)'>

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

child
элементы, содержащиеся в данном элементе.

ancestor
элементы, содержащие в себе (прямо или косвенно) данный элемент.

previous
элементы того же уровня в иерархии, что и данный, но предшествующие ему в документе.

next
элементы того же уровня в иерархии, что и данный, но следующие за ним в документе

precending
элементы в документе, начинающиеся перед данным элементом, без учета их уровня в иерархии.

following
элементы в документе, начинающиеся после данного элемента, без учета их уровня в иерархии.

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

Возвращаясь к приведенному выше примеру, видим, что в следующей ссылке будет выбран третий элемент <p>, непосредственно содержащийся в любом элементе с идентификатором SA:

<xptr doc=P3 from='id (SA) child (3 p)'>

Аналогично, если предположить, что объект P3 в действительности является SGML-формой Принципов TEI, то в приведенной ниже ссылке выбран раздел 14.2.2 этой публикации, в котором, кстати, дано формальное определение синтаксиса расширенных указателей:

For full details, see
<ref doc=P3 from='id (SA) child (2 div2) child (2 div3)'>
  TEI Extended pointer syntax definition
</ref>

Обычно позиция перекрестной ссылки точно определяется атрибутом from. Для некоторых документов, однако, может оказаться более удобным определить и начальную, и конечную позицию. Как отмечалось выше, для этой цели служит атрибут to. Например, выражение

  <xptr doc=P1 from='id (xyz)' to='id (abc)'>
представляет собой расширенный указатель, цель которого это последовательность, начало которой совпадает с началом в документе P1 элемента любого типа с идентификатором XYZ, а конец с окончанием (в том же документе) любого элемента с идентификатором ABC. Все элементы между этими двумя также включаются, независимо от структуры; указатель окажется ошибочным, если конец элемента ABC предшествует началу элемента XYZ.

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

<xptr doc=P3 from='id (SA) preceding (1 head lang lat)'>

Если для атрибута doc не определено значение, это означает текущий документ. Таким образом, следующие ссылки семантически одинаковы. Они обе указывают на элемент с идентификатором X1, находящийся в текущем документе:

<ptr target=X1>
<xptr from='id (X1)'>

Атрибуты связывания

Следующие атрибуты связывания определены для каждого элемента в TEI Lite DTD:

ana
связывает элемент и его интерпретацию.

corresp
связывает элемент с одним или несколькими соответствующими элементами.

next
связывает элемент со следующим элементом в совокупности (элементов).

prev
связывает элемент с предыдущим элементом в совокупности (элементов).

Атрибут ana (анализ) следует использовать в тех случаях, когда где-либо в пределах одного документа определено множество абстрактных анализов или интерпретаций, эти вопросы обсуждаются далее в разделе Интерпретация и анализ. Например, лингвистический анализ предложения John loves Nancy (Джон любит Нэнси) можно закодировать следующим образом:

<seg type=sentence ana=SVO>
  <seg type=lex ana=NP1>John</seg>
  <seg type=lex ana=VVI>loves</seg>
  <seg type=lex ana=NP1>Nancy</seg>
</seg>

Такое кодирование подразумевает, что где-либо в документе существуют элементы с идентификаторами SVO, NP1 и VV1, в которых объясняется значение этих конкретных кодов. Следует обратить внимание на использование элемента <seg> для обозначения отдельных компонентов анализа, различаемых с помощью атрибута type.

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

<seg lang=FRA id=FR1 corresp=EN1>Jean aime Nancy</seg>
<seg lang=ENG id=EN1 corresp=FR1>John loves Nancy</seg>

Этот механизм можно использовать для различных целей. Так, в следующем примере он использован для представления анафорных соответствий между "the show" и "Shirley" и между "NBC" и "the network":

<p><title id=shirley>Shirley</title>, which made
its Friday night debut only a month ago, was
not listed on <name id=nbc>NBC</name>'s new schedule,
although <seg id=network corresp=nbc>the network</seg>
says <seg id=show corresp=shirley>the show</seg>
still is being considered.

Использование атрибутов next и prev -- это простой способ связать друг с другом компоненты прерывающегося элемента; ниже приведен пример такого применения этих атрибутов:

<q id=Q1a next=Q1b>Who-e debel you?</q>
&mdash he at last said &mdash
<q id=Q1b prev=Q1a>you no speak-e,
damme, I kill-e.</q>  And so saying,
the lighted tomahawk began flourishing
about me in the dark.

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

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