Математика в Internet

Статьи

РЕДАКТОР МАТЕМАТИЧЕСКИХ ТЕКСТОВ MathTEXT©
(Группа VGT)
Автор: Анатолий Вовк

       Итак, все твердят о MathML... Здесь мы хотели бы обратить ваше внимание на одну из проблем общения на математические темы в Internet: простоте нотации для обыкновенного пользователя.
       В конце 2001 года в Internet появился продукт, который, на наш взгляд, мог бы заинтересовать людей, для которых в общении необходимо прибегать к математическим выкладкам. Речь идет о разработке, демоверсия которой представлена на сайте, www.liraonline.com.ua/formula. Программный продукт представляет собой ActiveX, позволяющий браузеру с помощью языка, нотация которого подобна BASIC, Pascal, C, представлять формулы в виде графических обьектов на стороне клиента. Приведем пример, ставший уже традиционным при сравнении различных интерпретаторов математических формул:

На языке MathML эта формула будет описана следующим образом (разметка представления)

<mrow>
  <mi>x</mi>
  <mo>=</mo>
  <mfrac>
    <mrow>
      <mrow>
        <mo>-</mo>
        <mi>b</mi>
      </mrow>
      <mo>± </mo>
      <msqrt>
        <mrow>
          <msup>
            <mi>b</mi>
            <mn>2</mn>
          </msup>
          <mo>-</mo>
          <mrow>
            <mn>4</mn>
            <mo>⁢ </mo>
            <mi>a</mi>
            <mo>⁢</mo>
            <mi>c</mi>
          </mrow>
        </mrow>
      </msqrt>
    </mrow>
    <mrow>
      <mn>2</mn>
      <mo>⁢</mo>
      <mi>a</mi>
    </mrow>
  </mfrac>
</mrow>

       С помощью MathTEXT эта формула запишется следующим образом:

  $$x=(-b+-sqrt(b^2-4*a*c))/(2*a)$$

Нотация чем-то напоминает нотацию TEX-редактора:

    $$\x=\frac{-\bpm\sqrt{\b^{2}-4\a\c}}{2\a}$$

однако имеет главное отличие от последней: четко прослеживается математическая структура формулы. Таким образом, в предлагаемой разработке наряду с простотой нотации особое внимание уделено вопросу "понимания" входного языка формул (особенно их внутреннего представления) для возможных дальнейших математических преобразований. Этим предлагаемое решение отличается от редакторов типа ТЕХ, являющих собой мощные издательские средства для создания математических текстов, которые однако далеки от представления формул как математических объектов. Эта концепция проявляется повсеместно. Рассмотрим хотя бы индексные переменные, например

По своей математической нагрузке индексы мало отличаются от переменных. И те и другие можно представлять как аргументы функции от четырех переменных. Это и отражается в нотации этого выражения на языке MathTEXT:

            $$F(_k,^j,x,y)$$

Аналогичным образом записываются и формулы c "многоэтажными индексами". Ничем не отличается подход в записи интегралов,сумм и произведений. Здесь мы опять попробуем сравнить MathTEXT c MathML. Рассмотрим интеграл

На языке MathML этот интеграл запишется следующим образом (разметка содержания)

   <apply>
      <eq/>
      <ci> J </ci>
       <apply>
           <int/>
          <bvar>
                <ci> x </ci>
          </bvar>
          <lowlimit>
                <cn> 0 </cn>
          </lowlimit>
          <uplimit>
                <ci> t </ci>
          </uplimit>
          <apply>
              <ci> f </ci>
              <ci> x </ci>
           </apply>
      </apply>
   </apply>

На языке MathTEXT запись интеграла примет вид

           $$J=Int(0,t,f(x)*dx)$$
в старой редакции или
           $$J=Int(f(x)*dx,0,t)$$
в новой редакции.

       Ничем не отличается написание интеграла с одним пределом или неопределенного интеграла. Можно, умело расставляя скобки, семантически отличить двойной от повторного интеграла и вообще записать сложный многомерный интеграл. Естественно, в языке MathTEXT различаются символы объединения множеств и логическая связка ИЛИ, много внимания уделено нотации для изображения систем уравнений, нумерации формул, матрицам, векторам и другим математическим обьектам. Таких обьектов уже более 100. Немного слов о применении греческого алфавита. Для этого достаточно перейти на кириллицу: так выражение  примет вид $$п~=3.14$$. При этом не ограничивается возможность для применения и "русскоязычных" формул, поскольку две русские буквы, написанные подряд, воспринимаются как буквы кириллицы. Естественно не забыто при этом англоязычное население (но это не нашло отражение в демоверсии).
       Предлагаемая вашему вниманию демоверсия демонстрирует две возможности использования языка MathTEXT:

       Для написания статических сайтов необходимо зарегистрировать компонент MathTEXT на своем компьютере, а далее все очень просто, взгляните на фрагмент HTML-кода

<object ID="obj5"
  CLASSID=
    "CLSID:729818C7-259B-4FF5-930B-35B6A3B45DAF"
>
    <param
      NAME="Data"
    VALUE=" Теорема Ферма:  $$x^n+y^n=z^n$$">
</object>

при этом первая длинная строка фрагмента HTML-кода не несет никакой нагрузки математического характера, а потому не усложняет процесс кодирования. Что же касается математического содержания в этом фрагменте, то оно прозрачно и лаконично. Фигурные скобки отделяют математический текст от остального текста сайта (при этом можно выражение " Теорема Ферма:" вынести и за пределы математического текста, но бывают сложные многоэтажные конструкции, где присутствие текста необходимо). В новой версии (при использовании вьювера MathTextView) фигурные скобки вообще не используются. Скобки $$$$ выделяют собственно формулу (систему уравнений и т.п.).
       В режиме форума пользователю необходимо работать в редакторе типа RichEdit и при написании математического текста использовать вышеупомянутые скобки. В этот же момент автоматически подключается система WYSIWYG, которая позволяет видеть результат написания фрагмента формулы в графическом виде. Насколько это возможно, работает система ненавязчивого сервиса, связанного с правильной расстановкой скобок. Кроме того, поскольку скобки в MathTEXT несут семантическую нагрузку, то в результате некоторыиз них на графике можно и не увидеть, если не сделать их обязательными. Тоже самое можно сказать и о знаке умножения, который по умолчанию часто опускается, где это корректно с точки зрения понимания формулы. Два щелчка на графическом обьекте и вы фиксируете формулу в тексте сообщения. И обратно: два щелчка на формуле в тексте сообщения и переходите в режим редактирования данной формулы. Режим WYSIWYG при этом подспудно выполняет еще одну важную функцию: формула, отредактированная таким образом, будет структурно верифицирована, что гарантирует отсутствие исключений на приемной стороне.

       Несколько слов о возможном расширении функциональных возможностей MathTEXT. За пределами демоверсии осталась система переноса громоздких формул. Кроме того, вне демоверсии осталась функция представления схематических рисунков для интерпретации математических текстов (линии, стрелки, углы, обозначения) и рисования графиков суперпозиции любых элементарных функций (при этом на одном графике можно представить до 10 фрагментов каждой из 10 функций различной расцветки, толщины, стиля).
       Редактор математических текстов MathTEXT задумывался в начале как средство для написания и чтения учебников с математическими текстами на электронных носителях, для чего были дополнительно проработаны функции хранения, чтения и скроллинга, гипертекста, мультимедиа (например, голосовое сопровождение текста). Здесь необходимо отметить два момента: резкое уменьшение обьемов хранимой текстовой информации по сравнению с Word в сочетании c MathType и хорошие эргономические показатели при скроллинге. Формулы, рисунки и графики не "выпрыгивают" с опозданием, как это часто можно наблюдать на экране при чтении такого рода текстов. Все происходит быстро, синхронно с обычным текстом.

Мы предлагаем посетить страницу, www.liraonline.com.ua/formula, где вы можете протестировать продукт. Предлагаемая бесплатно на сайте демоверсия по своим возможностям может вполне удовлетворить ваши аппетиты при организации нормального общения на математические темы. Скачав здесь и зарегистрировав ActiveX на своем компьютере (для чего надо нажать Пуск, потом Выполнить..., потом набрать текст "regsvr32 C:\WINDOWS\SYSTEM\MathTextView.ocx"), вместо заставок на данной странице вы должны получить формулы в графическом исполнении. Желаем удачи.

       В заключение хочется поблагодарить Webmaster'a сайта Mashiah'a Davidson'a за предоставленную возможность разместить данную информацию на его сайте а также всяческую помощь при подготовке статьи.
       Также хочется поблагодарить завотделом НИИ Владимира Вышнякова за постоянную поддержку данного проекта административным ресурсом.




HOME

webmaster
Copyright © Anatoliy Vovk