Старая версия xmlhack.ru


[XML][Тусовка]  Язык разметки словарных статей
  16.03.03 Паращенко Олег

Язык разметки словарных статей

Появление проекта

Александр Савенков, автор сайта "русские переводы спецификаций W3C", предложил создать проект по спецификации языка разметки словарных статей.

На сегодняшний день накопилось досточно много переводов и оригинальных материалов на тему XML. Некоторые из них используют разные переводы для одних и тех же английских терминов. Из-за этого могут возникнуть проблемы при сборе информации из разных источников. Например, не сразу очевидно, что и "веб-служба", и "технология WS" - это одно и то же (web service). Перевод терминологии неоднократно обсуждался как в XML-форумах, так и в fido7.ru.xml, и каждый раз проскальзывала идея, что хорошо бы иметь словарь.

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

Выдержки из письма

Что вы думаете о проведении полноценного проекта a la W3C по созданию спецификации языка разметки словарной статьи и применении его в популярной словарной программе Lingvo?

Предыстория

Олег сделал запись в WiKi (внутренний раздел сервера) о необходимости создания шаблона/DTD словарной статьи. Я начал поиски подходящего языка разметки, но сперва ничего не обнаружил кроме малоприемлемых обрывков и наработок, большинство из которых отбрасывались сразу, остальные - после более близкого знакомства.

В этой связи я подумал о языке, который используется внутри популярной словарной программы Lingvo (кто не знает, что это такое - могу объяснить, или http://www.lingvo.ru/) . Я попытался наладить контакт со службой поддержки для получения последней версии спецификации языка DSL. С наскока ничего не вышло: им требовался лицензионный ключ, которого у меня не было.

Но не это главное. Едва ли произошли какие-то революционные изменения по сравнению с тем, что есть у меня. А есть немного. Текущий примерный упрощённый шаблон вы можете видеть в соответствующем разделе WiKi (копия приведена ниже). Небогато и отсутствует практическая ценность в плане расширяемости.

Обоснование

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

Альтернатива

Впервые за долгое время у меня возникли трудности с поиском нужного материала в "Гугле". "Dictionary" сплошь и рядом переплетается с "XML" (это и понятно), но - к сожалению, не в том значении, которое нужно нам. Я был бы очень рад, если бы вы помогли мне с поиском чего-либо подобного. Пока же есть кое-что, что вполне может претендовать на целостность и законченность.

Text Encoding Initiative

Никогда не обращал на неё внимания (http://www.tei-c.org/), но в ней обнаружился целый раздел (12), посвящённый разметке для создания печатных словарей. Разметка чрезвычайно богата, но по первому впечатлению и черезчур запутана. С другой стороны, в её создании принимали участие лингвисты, так что может это и никакая не запутанность.

Собственно предложение

Во-первых, хотя бы бегло ознакомьтесь с указанным разделом. Одобрите или отклоните предложение в целом, поправьте меня. Третьим шагом будет установление нового контакта с ABBYY (фирма, производящая Lingvo, FineReader и др.). Конкретнее: предложить фирме буквальное сотрудничество. Мы разрабатываем язык разметки на базе XML, вы встраиваете его в программу и получаете 1, 2, 3 преимущества (перечислить реальные преимущества или придумать - тоже хорошо). Несомненно, что главное препятствие будет в убеждении компании. Очень непростое для них решение. Однако, кто не рискует... В принципе для самого больших временных ресурсов не требуется - только грамотный подход.

Технология

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

Примерный упрощённый шаблон

2003-02-23. Первый блин комом.

<?xml version="1.0" encoding=""?>
<?xml-stylesheet type="text/css" href="" media="all"?>
<!-- Modified 2003-02-22T21:58:06+03:00 croll -->
<xentry version="1.0"
  xmlns="httphttp://xmlhack.ru/ns/xentry10"
  xmlns:xlink="httphttp://www.w3.org/1999/xlink"
  id="XLink"
  xml:lang="ru">

  <!-- Sample XEntry File - словарная статья, примерно соответствующая
    Lingvo 7.0 (за исключением зон вторичного отображения и некоторых
    других нюансов, противоречащих XML), стилистические элементы были
    преобразованы в структурные - это ещё одно отличие -->

  <!-- Заголовок(-и) словарной статьи -->
  <caption>

    <!-- Различные варианты заголовков, которые ведут к одной статье -->
    <line>XLink</line>
    <!-- Несортируемая часть не учитывается при сортировке и пишется
      лишь в заголовке самой статьи -->
    <line><unsorted>An </unsorted>XML Linking Language</line>
    <!-- Необязательная часть образует различные варианты слов, все они
      приводятся в указателе -->
    <line><unsorted>An </unsorted>Extensible Markup Language Linking
      Language<optional> (XLink)</optional></line>
    <!-- Суммируя всё вышеописанное, трансорфмация в результате должна
      выдать следующие слова, каждое из которых будет вести к одной и
      той же статье:
      * XLink
      * XML Linking Language
      * Extensible Markup Language Linking Language
      * Extensible Markup Language Linking Language (XLink) -->
  </caption>
  <body>
    <p>Язык связей <abbr title="Extensible Markup Language"
      xml:lang="en">XML</abbr>.</p>
    <!-- Непонятно, как вставлять ссылки на другие статьи, что именно
      должно служить идентификатором? Он должен быть единым для всех
      вариантов заголовка статьи -->
    <p>Рекомендация <abbr href="W3C" title="World Wide Web
      Consortium">W3C</abbr> вышла 27 июня 2001 года</p>

    <!-- Для удобство использования статьи могут содержать любое
      количество подстатей, разметка внутри которых полностью
      соответствует разметке большой статьи. При сортировке такая
      татья выносится как отдельное слово, при нажатии на неё в теле
       большой статьи должна открываться соответствующая страница -->
    <subentry>
      <!-- w(ord) служит альтернативой тильды (нужно ли нумеровать
        тильды и, соответственно строки в заголовке статьи?) в бумажных
        словарях, например, после трансформации следующий текст должен
        стать XLink Working Group. Что это будет xlink
        (xlink:href="..." xlink:show="embed" xlink:actuate="onLoad")
        или xinclude (xi:include xi:href="...").
        Слишком запутанно для быстрого составления? -->
      <caption><w/> Working Group</caption>
      <body>
        <p>Рабочая группа по <w /></p>
      </body>
    </subentry>
    <!-- Другие возможности, задействованные в Lingvo 7 -->
    <!-- Пометы. Обозначают используемые сокращения. В Lingvo при
      наведении появляется расшифровка сокращения, можно сделать
      через простую abbr, можно через xlink, можно через xi -->
    <label expansion="glagol" /> <!-- после трансформации: гл. -->
    <!-- В L7 разрещено вставлять звуки, картинки, ссылки...
      за образец здесь можно взять XHTML2... или что?.. -->
    <!-- Форматирование текста должно позволить исключительно с
      помощью языков листов стилей... но style - не есть хорошее
      решение... разрешить только определённые классы? (class) -->
    <samp><!-- Пример здесь играет особую роль, отличную от HTML -->
      An important application of <w /> is in hypermedia systems that
      have hyperlinks.
    </samp>
    <com><!-- Равно как и комментарий -->
      XML Linking Language (XLink) allows elements to be inserted
      into XML documents in order to create and describe links
      between resources.
    </com>
  </body>

</xentry>

Публичное обсуждение

Статья обсуждается в XML-форумах.